Comparte
Ver el tema anteriorIr abajoVer el tema siguiente
avatar
Miembro
Mensajes Mensajes : 120
Ver perfil de usuario

[MoveEvent] Captura la bandera system [8.54-8.60]

el Vie Nov 11, 2011 9:17 pm
Aqui les dejo el script empezemos

El script que modifique funciona sin equipos.

En MoveEvents/script crean flag.lua y agregan esto:
Código:

local t = {
  flag = 15000
}
local function repeatFlagOnPlayer(cid)
  local p = getThingPos(cid)
  local poss = {
      {pos = {x = p.x + 2, y = p.y - 2, z = p.z}, delay = 300},
      {pos = {x = p.x + 2, y = p.y + 2, z = p.z}, delay = 300},
      {pos = {x = p.x - 2, y = p.y + 2, z = p.z}, delay = 300},
      {pos = {x = p.x - 2, y = p.y, z = p.z}, delay = 300},
      {pos = {x = p.x - 2, y = p.y - 2, z = p.z}, delay = 300},
      {pos = {x = p.x, y = p.y - 2, z = p.z}, delay = 300}
  }
local effects = {27, 28, 29, 30}
if isPlayer(cid) then
if getPlayerStorageValue(cid, t.flag) == 1 and getGlobalStorageValue(t.flag) == 1 then
for i = 1, 6 do
addEvent(doSendDistanceShoot, poss[i].delay, poss[i].pos, p, CONST_ME_FIREWORK_YELLOW)
end
for i = 1, 4 do
addEvent(doSendMagicEffect, 1000, getThingPos(cid), effects[i])
end
return addEvent(repeatFlagOnPlayer, 1000, cid)
  else
      return false
  end 
end
end     
function onStepIn(cid, item, position, fromPosition, toPosition, lastPosition, actor)
  if isPlayer(cid) then
      if item.actionid == 6000 then
      if getPlayerStorageValue(cid, t.flag) == 1 and getGlobalStorageValue(t.flag) == 1 then
  doPlayerSendCancel(cid,'you have the flag.')
  doTeleportThing(cid, fromPosition, false)
  else
      setPlayerStorageValue(cid, t.flag, 1)
      setGlobalStorageValue(t.flag, 1)
      repeatFlagOnPlayer(cid)
      doBroadcastMessage(getCreatureName(cid) .. " has stolen the Flag!")
      end
else
doPlayerSendCancel(cid,'The flag is not at home.')
doTeleportThing(cid, fromPosition, false)
end
end
if item.actionid == 6002 then
if getPlayerStorageValue(cid, t.flag) == 1 then
setGlobalStorageValue(t.flag, -1)
setPlayerStorageValue(cid, t.flag, -1)
doBroadcastMessage(getCreatureName(cid) .. " is great put the flag in the base!")
else
doPlayerSendCancel(cid,'You dont have the flag.')
doTeleportThing(cid, fromPosition, false)
end
end
  return true
end

En movevent.xmlagregan esto:
Código:

<!-- Flag -->
  <movevent type="StepIn" actionid="6000;6002" event="script" value="flag.lua"/>



Aqui les dejo el script original:
Código:

local t =  {
        redStorage = 15000,
        blueStorage = 15001,
        redFlag = 18000,
        blueFlag = 18001,
        redGoal = 19000,
        blueGoal = 19001,
        fromPos = {x = 982, y = 1022, z = 7},
        toPos = {x = 993, y = 1033, z = 7}
}
local function getPlayers()
        local thisTable = {}
        for x = t.fromPos.x, t.toPos.x do
                for y = t.fromPos.y, t.toPos.y do
                        for z = t.fromPos.z, t.toPos.z do
                                local myPos = {x = x, y = y, z = z}
                                local player = getTopCreature(myPos).uid
                                if player > 0 then table.insert(thisTable, player) else table.remove(thisTable, player) end
                        end
                end
        end
        return {thisTable = thisTable}
end
local function repeatFlagOnPlayer(cid)
        local k = getThingPos(cid)
        local r = {
                {pos = {x = k.x + 2, y = k.y - 2, z = k.z}, delay = 300},
                {pos = {x = k.x + 2, y = k.y + 2, z = k.z}, delay = 300},
                {pos = {x = k.x - 2, y = k.y + 2, z = k.z}, delay = 300},
                {pos = {x = k.x - 2, y = k.y, z = k.z}, delay = 300},
                {pos = {x = k.x - 2, y = k.y - 2, z = k.z}, delay = 300},
                {pos = {x = k.x, y = k.y - 2, z = k.z}, delay = 300}
        }
        local effects = {27, 28, 29, 30}
        if isPlayer(cid) then
                if getPlayerStorageValue(cid, t.blueStorage) == 1 and getPlayerStorageValue(cid, t.redFlag) == 1 and getGlobalStorageValue(t.redFlag) == 1 then
                        for i = 1, 6 do
                                addEvent(doSendDistanceShoot, r[i].delay, r[i].pos, k, CONST_ME_FIREWORK_YELLOW)
                        end
                        for i = 1, 4 do
                                addEvent(doSendMagicEffect, 1000, getThingPos(cid), effects[i])
                        end
                        return addEvent(repeatFlagOnPlayer, 1000, cid)
                elseif getPlayerStorageValue(cid, t.redStorage) == 1 and getPlayerStorageValue(cid, t.blueFlag) == 1 and getGlobalStorageValue(t.blueFlag) == 1 then
                        for i = 1, 6 do
                                addEvent(doSendDistanceShoot, r[i].delay, r[i].pos, k, CONST_ME_FIREWORK_YELLOW)
                        end
                        for i = 1, 4 do
                                addEvent(doSendMagicEffect, 1000, getThingPos(cid), effects[i])
                        end
                        return addEvent(repeatFlagOnPlayer, 1000, cid)
                else
                        return false
                end
        else
                return false
        end
end
function onStepIn(cid, item, position, fromPosition, toPosition, lastPosition, actor)
        if isPlayer(cid) then
                if item.actionid == 6000 then
                        if getPlayerStorageValue(cid, t.redStorage) == 1 then
                                if getPlayerStorageValue(cid, t.blueFlag) == -1 and getGlobalStorageValue(t.blueFlag) == -1 then
                                        setPlayerStorageValue(cid, t.blueFlag, 1)
                                        setGlobalStorageValue(t.blueFlag, 1)
                                        repeatFlagOnPlayer(cid)
                                        doBroadcastMessage(getCreatureName(cid) .. " has stolen the Blue Flag!")
                                else
                                        doCreatureSay(cid, "The flag is not at home.", 19)
                                        doTeleportThing(cid, fromPosition, false)
                                end
                        else
                                doCreatureSay(cid, "You may only pick up the opposite team flag.", 19)
                                doTeleportThing(cid, fromPosition, false)
                        end
                elseif item.actionid == 6001 then
                        if getPlayerStorageValue(cid, t.blueStorage) == 1 then
                                if getPlayerStorageValue(cid, t.redFlag) == -1 and getGlobalStorageValue(t.redFlag) == -1 then
                                        setPlayerStorageValue(cid, t.redFlag, 1)
                                        setGlobalStorageValue(t.redFlag, 1)
                                        repeatFlagOnPlayer(cid)
                                        doBroadcastMessage(getCreatureName(cid) .. " has stolen the Red flag!")
                                else
                                        doCreatureSay(cid, "The flag is not at home.", 19)
                                        doTeleportThing(cid, fromPosition, false)
                                end
                        else
                                doCreatureSay(cid, "The flag is not at home.", 19)
                                doTeleportThing(cid, fromPosition, false)
                        end
                end
                if item.actionid == 6002 then
                        if getPlayerStorageValue(cid, t.redStorage) == 1 then
                                if getPlayerStorageValue(cid, t.blueFlag) == 1 and getGlobalStorageValue(t.blueFlag) == 1 then
                                        setGlobalStorageValue(t.blueFlag, -1)
                                        setPlayerStorageValue(cid, t.blueFlag, -1)
                                        setGlobalStorageValue(t.redGoal, getGlobalStorageValue(t.redGoal)+1)
                                        doBroadcastMessage("Current CTF Game Score:\nRed Team: " .. getGlobalStorageValue(t.redGoal) .. "\nBlue Team: " .. getGlobalStorageValue(t.blueGoal) .. "\nTen Scores to win!", 20)
                                        doBroadcastMessage(getCreatureName(cid) .. " has scored 1 point for the Red Team!")
                                else
                                        doCreatureSay(cid, "You dont have the flag.", 19)
                                        doTeleportThing(cid, fromPosition, false)
                                end
                        elseif getPlayerStorageValue(cid, t.blueStorage) == 1 then
                                if getPlayerStorageValue(cid, t.redFlag) == 1 and getGlobalStorageValue(t.redFlag) == 1 then
                                        setGlobalStorageValue(t.redFlag, -1)
                                        setPlayerStorageValue(cid, t.redFlag, -1)
                                        setGlobalStorageValue(t.blueGoal, getGlobalStorageValue(t.blueGoal)+1)
                                        doBroadcastMessage("Current CTF Game Score:\nRed Team: " .. getGlobalStorageValue(t.redGoal) .. "\nBlue Team: " .. getGlobalStorageValue(t.blueGoal) .. "\nTen Scores to win!", 20)
                                        doBroadcastMessage(getCreatureName(cid) .. " has scored 1 point for the Blue Team!")
                                else
                                        doCreatureSay(cid, "You dont have the flag.", 19)
                                        doTeleportThing(cid, fromPosition, false)
                                end
                        end
                        if getGlobalStorageValue(t.blueGoal) == 10 and getGlobalStorageValue(t.redGoal) < 10 then
                                for _, cid in ipairs(getPlayersOnline()) do
                                        if getPlayerStorageValue(cid, t.blueStorage) == 1 then
                                                setPlayerStorageValue(cid, t.blueStorage, -1)
                                                doPlayerAddItem(cid, 9020, math.random(1, 6))
                                        elseif getPlayerStorageValue(cid, t.redStorage) == 1 then
                                                setPlayerStorageValue(cid, t.redStorage, -1)
                                        end
                                        doRemoveCondition(cid, CONDITION_OUTFIT)
                                        setGlobalStorageValue(t.redGoal, 0)
                                        setGlobalStorageValue(t.blueGoal, 0)
                                end
                                local FF = getPlayers().thisTable
                                if #FF > 1 then
                                        for _, hh in ipairs(FF) do
                                                doTeleportThing(hh, getTownTemplePosition(getPlayerTown(hh)), true)
                                        end
                                end
                        elseif getGlobalStorageValue(t.redGoal) == 10 and getGlobalStorageValue(t.blueGoal) < 10 then
                                for _, cid in ipairs(getPlayersOnline()) do
                                        if getPlayerStorageValue(cid, t.redStorage) == 1 then
                                                setPlayerStorageValue(cid, t.redStorage, -1)
                                                doPlayerAddItem(cid, 9020, math.random(1, 6))
                                        elseif getPlayerStorageValue(cid, t.blueStorage) == 1 then
                                                setPlayerStorageValue(cid, t.blueStorage, -1)
                                        end
                                        doRemoveCondition(cid, CONDITION_OUTFIT)
                                        setGlobalStorageValue(t.redGoal, 0)
                                        setGlobalStorageValue(t.blueGoal, 0)
                                end
                                local F = getPlayers().thisTable
                                if #F > 1 then
                                        for _, h in ipairs(F) do
                                                doTeleportThing(h, getTownTemplePosition(getPlayerTown(h)), true)
                                        end
                                end
                        end
                end
        else
                doRemoveCreature(cid)
        end
        return true
end

Creditos:
100% Morrisan
avatar
Moderador
Mensajes Mensajes : 312
Ver perfil de usuariohttp://www.otsuporter.com/

Re: [MoveEvent] Captura la bandera system [8.54-8.60]

el Sáb Nov 12, 2011 11:47 am
wuuuuii este scripter me gusta para un evento llamado halo flag mm mereses un rep D:

__________________________________________________
avatar
Miembro
Mensajes Mensajes : 21
Ver perfil de usuario

Re: [MoveEvent] Captura la bandera system [8.54-8.60]

el Jue Mayo 31, 2012 1:48 pm
oye podrias hacerle para que sean de equipos porfavor rojos contra azulez pls te lo agradeceria mucho
avatar
Miembro
Mensajes Mensajes : 54
Ver perfil de usuario

Re: [MoveEvent] Captura la bandera system [8.54-8.60]

el Jue Mayo 31, 2012 2:09 pm
ese system no esta chido esta mejor el que edite (: tiene errores
Miembro
Mensajes Mensajes : 17
Ver perfil de usuario

Re: [MoveEvent] Captura la bandera system [8.54-8.60]

el Lun Jun 25, 2012 12:21 pm
Reputación del mensaje :0% (1 voto)
Pff
pero este script no hace
que aga equipos, yo lo tengo
Red vs. Green, hasta dice los
puntos de cada equipo y todo
we, este esta pff
7/10
Contenido patrocinado

Re: [MoveEvent] Captura la bandera system [8.54-8.60]

Ver el tema anteriorVolver arribaVer el tema siguiente
Permisos de este foro:
No puedes responder a temas en este foro.