• TibiaFace

    Tibiaface | Una comunidad Open Tibia donde encontras : mapas, scripts, Otserver, npc y amigos etc ...

    .
    demo menumenu

    Afiliados



    Votar:

    [Sistema] Baul De eventos (Otx 2 y tfs 0.3.7 y .0.4.0)

    Compartir:

    Ir a la página : Precedente  1, 2

    Ver el tema anterior Ver el tema siguiente Ir abajo  Mensaje (Página 2 de 2.)

    [Admin] God Maya

    [Admin] God Maya
    Administrador
    Administrador
    [Tienes que estar registrado y conectado para ver este vínculo] escribió:
    Código:
    [3/5/2019 14:23:32] [Error - Action Interface]
    [3/5/2019 14:23:32] In a timer event called from:
    [3/5/2019 14:23:32] domodlib('ultimatelib')
    [3/5/2019 14:23:32] function onUse(cid, item)
    [3/5/2019 14:23:32]  if getPlayerStorageValue(cid, USurvival.storage_ex) <= os.time() then
    [3/5/2019 14:23:32]  if #getPlayersInArea(USurvival.posi, USurvival.posf) == 0 then
    [3/5/2019 14:23:32]  doCleanArena()
    [3/5/2019 14:23:32]  doTeleportThing(cid, USurvival.posc)
    [3/5/2019 14:23:32]  doPlayerSendTextMessage(cid, 21, 'The Ultimate Survival will Start in 10 seconds! Be ready to face your destiny!')
    [3/5/2019 14:23:32]  addEvent(doStartWave, 10000, 1, cid)
    [3/5/2019 14:23:32]  setPlayerStorageValue(cid, USurvival.storage_wave, 1)
    [3/5/2019 14:23:32]  setPlayerStorageValue(cid, USurvival.storage_ex, os.time() + USurvival.exhaust)
    [3/5/2019 14:23:32]  if item.itemid % 2 == 1 then
    [3/5/2019 14:23:32]  doTransformItem(item.uid, item.itemid+1)
    [3/5/2019 14:23:32]  else
    [3/5/2019 14:23:32]  doTransformItem(item.uid, item.itemid-1)
    [3/5/2019 14:23:32]  end
    [3/5/2019 14:23:32]  else
    [3/5/2019 14:23:32]  doPlayerSendCancel(cid, 'Someone is already in the arena.')
    [3/5/2019 14:23:32]  doSendMagicEffect(getThingPos(cid), 2)
    [3/5/2019 14:23:33]  end
    [3/5/2019 14:23:33]  else
    [3/5/2019 14:23:33]  local left = getPlayerStorageValue(cid, USurvival.storage_ex) - os.time()
    [3/5/2019 14:23:33]  left = {hour = math.floor(left/3600), minutes = math.ceil((left % 3600)/60)}
    [3/5/2019 14:23:33]  doPlayerSendCancel(cid, 'You have to wait '.. left.hour ..'h and '..left.minutes..'min.')
    [3/5/2019 14:23:33]  doSendMagicEffect(getThingPos(cid), 2)
    [3/5/2019 14:23:33]  end
    [3/5/2019 14:23:33]  return true
    [3/5/2019 14:23:33] end
    [3/5/2019 14:23:33] :onUse
    [3/5/2019 14:23:33] Description:
    [3/5/2019 14:23:33] [string "USurvival = {..."]:58: attempt to call global 'DoCreateMonster' (a nil value)
    [3/5/2019 14:23:33] stack traceback:
    [3/5/2019 14:23:33] [string "USurvival = {..."]:58: in function 'doSpawnMonsters'
    [3/5/2019 14:23:33] [string "USurvival = {..."]:114: in function <[string "USurvival = {..."]:110>


    Erro mudou

    amigo porfavor cuando publique un codigo coloquelo bajos las tag code

    ahora pruebe asi

    Código:

    <?xml version="1.0" encoding="UTF-8"?>
    <!--
                    ULTIMATE SURVIVAL - Codigo feito por Omega / Pedido por vinnevinne
                   
                          Informacoes: http://www.xtibia.com/forum/topic/221415-ultimate-survival/
    -->
     
    <mod name="Ultimate Survival" version="1.0" author="Omega" enabled="yes">
    <config name="ultimatelib"><![CDATA[
    USurvival = {
       posi = {x=104, y=210, z=7}, -- parte esquerda superior da arena
       posf = {x=115, y=221, z=7}, -- parte direita inferior da arena
       posc = {x=109, y=215, z=7}, -- onde o player entra na arena
       
       waves = {
       [1] = {monsters = {"dragon", "dragon lord"}, count = 30, reward = {exp = 0, item = 2148, amount = 1, money = 100}},
       [2] = {monsters = {"dragon lord", "frost dragon"}, count = 6, reward = {exp = 0, item = 2152, amount = 1, money = 1000}},
       [3] = {monsters = {"hydra", "serpent spawn"}, count = 10, reward = {exp = 0, item = 2160, amount = 1, money = 10000}},
       },
       exhaust = 1 * 24 * 60 * 60, -- Tempo em segundos ate poder entrar novamente na arena (1 * 24 * 60 * 60 = 1 dia)
       
       final_reward = {item = 2160, amount = 100, exp = 10000, money = 100000},
       
       storage_ex = 607069,
       storage_wave = 607089,
    }

    function isWalkable(pos)-- by Nord / editado por Omega
        if getTileThingByPos({x = pos.x, y = pos.y, z = pos.z, stackpos = 0}).itemid == 0 then
            return false
        elseif isCreature(getTopCreature(pos).uid) then
            return false
        elseif getTileInfo(pos).protection then
            return false
        elseif hasProperty(getThingFromPos(pos).uid, 3) or hasProperty(getThingFromPos(pos).uid, 7) then
            return false
        end
    return true
    end

    function doSpawnMonsters(monsters, pos, radius, limit)
       if not pos.x or not pos.y or not pos.z or not type(monsters) == 'table' then
          return false
       end
          local radius = tonumber(radius)
       if radius > 5 then
          radius = 5
       elseif radius < 2 then
          radius = 2
       end
       if not limit or limit < 1 then
          limit = 1
       elseif limit > radius ^ 2 then
          limit = math.floor((radius*1.5) ^ 2)
       end
       
       local k = 0
       local tries = 0
       repeat
          for x = pos.x - radius, pos.x + radius do
             for y = pos.y - radius, pos.y + radius do
                if isWalkable({x=x, y=y, z=pos.z}) then
                   local monster = monsters[math.random(1, #monsters)]
                   local chance = math.random(1, 100)
                   if k == limit then
                      break
                   elseif chance <= 8 and doSummonCreature(monster, {x=x, y=y, z=pos.z}) then
                      k = k + 1
                   end
                end
             end
          end
          tries = tries + 1
       until k >= limit or tries >= 500
       return k >= limit and true or false
    end

    function getPlayersInArea(pos1,pos2)
       local players = {}
       if pos1.x and pos1.y and pos2.x and pos2.y and pos1.z == pos2.z then
          for a = pos1.x, pos2.x do
             for b = pos1.y,pos2.y do
                local pos = {x=a,y=b,z=pos1.z}
                if isPlayer(getTopCreature(pos).uid) then
                   table.insert(players,getTopCreature(pos).uid)
                end
             end
          end
          return players
       else
          return false
       end
    end   

    function getMonstersInArea(pos1,pos2)
       local players = {}
       if pos1.x and pos1.y and pos2.x and pos2.y and pos1.z == pos2.z then
          for a = pos1.x, pos2.x do
             for b = pos1.y,pos2.y do
                local pos = {x=a,y=b,z=pos1.z}
                if isMonster(getTopCreature(pos).uid) then
                   table.insert(players,getTopCreature(pos).uid)
                end
             end
          end
          return players
       else
          return false
       end
    end

    function doCleanArena()
       local monsters = getMonstersInArea(USurvival.posi, USurvival.posf)
       for _, cid in pairs(monsters) do
          doRemoveCreature(cid)
       end
    end

    function doStartWave(waveID, cid)
       if not isCreature(cid) then return false end
       if USurvival.waves[waveID] then
          wave = USurvival.waves[waveID]
          doSpawnMonsters(wave.monsters, USurvival.posc, 5, wave.count)
          doPlayerSendTextMessage(cid, 21, 'Wave '..waveID..' has started! FIGHT!')
       end
    end
    ]]></config>

    <action actionid="4599" event="script" override="yes"><![CDATA[
    domodlib('ultimatelib')
    function onUse(cid, item)
       if getPlayerStorageValue(cid, USurvival.storage_ex) <= os.time() then
          if #getPlayersInArea(USurvival.posi, USurvival.posf) == 0 then
             doCleanArena()
             doTeleportThing(cid, USurvival.posc)
             doPlayerSendTextMessage(cid, 21, 'The Ultimate Survival will Start in 10 seconds! Be ready to face your destiny!')
             addEvent(doStartWave, 10000, 1, cid)
             setPlayerStorageValue(cid, USurvival.storage_wave, 1)
             setPlayerStorageValue(cid, USurvival.storage_ex, os.time() + USurvival.exhaust)
             if item.itemid % 2 == 1 then
                doTransformItem(item.uid, item.itemid+1)
             else
                doTransformItem(item.uid, item.itemid-1)
             end
          else
             doPlayerSendCancel(cid, 'Someone is already in the arena.')
             doSendMagicEffect(getThingPos(cid), 2)
          end
       else
          local left = getPlayerStorageValue(cid, USurvival.storage_ex) - os.time()
          left = {hour = math.floor(left/3600), minutes = math.ceil((left % 3600)/60)}
          doPlayerSendCancel(cid, 'You have to wait '.. left.hour ..'h and '..left.minutes..'min.')
          doSendMagicEffect(getThingPos(cid), 2)
       end
       return true
    end
    ]]></action>

    <event type="login" name="US Login" event="script"><![CDATA[
    domodlib('ultimatelib')
    function onLogin(cid)
       registerCreatureEvent(cid,'UltimateSurvival1')
       registerCreatureEvent(cid,'UltimateSurvival2')
       if isInArea(getThingPos(cid), USurvival.posi, USurvival.posf) then
          doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)))
          doSendMagicEffect(getThingPos(cid), 10)
       end
       return true
    end
    ]]></event>

    <event type="kill" name="UltimateSurvival1" event="script"><![CDATA[
    domodlib('ultimatelib')
    function onKill(cid, target)
       if isInArea(getThingPos(cid), USurvival.posi, USurvival.posf) then
          if #getMonstersInArea(USurvival.posi, USurvival.posf) == 1 then
             local wave = getPlayerStorageValue(cid, USurvival.storage_wave)
             if USurvival.waves[wave+1] then
                setPlayerStorageValue(cid, USurvival.storage_wave, wave + 1)
                addEvent(doStartWave, 5000, wave + 1, cid)
                doPlayerSendTextMessage(cid, 22, 'Congratulations! Next wave will start in 5 seconds!')
             else
                doPlayerSendTextMessage(cid, 22, 'CONGRATULATIONS! YOU HAVE BEATEN THE ULTIMATE SURVIVAL!')
                local reward = USurvival.final_reward
                if reward.item then
                   doPlayerAddItem(cid, reward.item, (reward.amount or 1), false)
                end
                if reward.exp then
                   doPlayerAddExp(cid, reward.exp)
                end
                if reward.money then
                   doPlayerAddMoney(cid, reward.money)
                end
                local medal = doPlayerAddItem(cid, 5785, 1, false)
                if medal then
                   doItemSetAttribute(medal, 'description', 'This was awarded to '..getCreatureName(cid)..' for completing the Ultimate Survival.')
                   doItemSetAttribute(medal,'name', 'Ultimate Survival Medal')
                end
                doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)))
             end
          end
       end
       return true
    end

    ]]></event>

    <event type="preparedeath" name="UltimateSurvival2" event="script"><![CDATA[
    domodlib('ultimatelib')
    function onPrepareDeath(cid, killers)
       if isInArea(getThingPos(cid), USurvival.posi, USurvival.posf) then
          doCreatureAddHealth(cid, getCreatureMaxHealth(cid), 65535, 256, true)
          doRemoveConditions(cid, false)
          doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)))
          doPlayerSendTextMessage(cid, 21, 'Too bad, you couldn\'t defeat the Ultimate Survival... Better luck next time.')
          local reward = USurvival.waves[getPlayerStorageValue(cid, USurvival.storage_wave)].reward
          if reward.item then
             doPlayerAddItem(cid, reward.item, reward.amount or 1)
          end
          if reward.exp then
             doPlayerAddExp(cid, reward.exp)
          end
          if reward.money then
             doPlayerAddMoney(cid, reward.money)
          end
          return false
       end
       return true
    end
    ]]></event>

    </mod>



    [Sistema] Baul De eventos (Otx 2 y tfs 0.3.7 y .0.4.0) - Página 2 YNU5B25
    https://www.tibiaface.com

    diegogacit

    diegogacit
    Nuevo Miembro
    Nuevo Miembro
    En el Battlefield event cual es el minimo de jugadores y donde se cambia? no me anda el evento. Ajustando la hora tampoco me anda. cambiando el 12 a 2, con 2 jugadores online tampoco.

    diegogacit

    diegogacit
    Nuevo Miembro
    Nuevo Miembro
    Como hago para que en el Rush Event los players no puedan hacerse invisible? hacen eso en el OT y matan el evento

    [Admin] God Maya

    [Admin] God Maya
    Administrador
    Administrador
    [Tienes que estar registrado y conectado para ver este vínculo] escribió:Como hago para que en el Rush Event los players no puedan hacerse invisible? hacen eso en el OT y matan el evento

    hastele que te entregue un storage al entraral evento y cuando termine le remueva el storage

    claroe sta que tu spells de invibilidada tiene que tener ese storage verificando negativo y si lo tuvieron no funcionaria



    [Sistema] Baul De eventos (Otx 2 y tfs 0.3.7 y .0.4.0) - Página 2 YNU5B25
    https://www.tibiaface.com

    diegogacit

    diegogacit
    Nuevo Miembro
    Nuevo Miembro
    Gracias, me parece super bien, pero me faltaría saber en qué parte del MOD exactamente se pone lo del storage para cuando empieza y cuando termina, ya que el script es bien confuso y cuesta entenderlo

    [Admin] God Maya

    [Admin] God Maya
    Administrador
    Administrador
    [Tienes que estar registrado y conectado para ver este vínculo] escribió:Gracias, me parece super bien, pero me faltaría saber en qué parte del MOD exactamente se pone lo del storage para cuando empieza y cuando termina, ya que el script es bien confuso y cuesta entenderlo


    esta parte donde reparte a blue como red

    Código:

    doCreatureChangeOutfit(pid, red)
    setPlayerStorageValue(pid, t.h, 0)
    doTeleportThing(pid, t.d_1)
    setPlayerStorageValue(pid, t.f, 1)
    setPlayerStorageValue(pid, t.f_1, 0)
    setPlayerStorageValue(pid, t.f_2, 1)
    doSendMagicEffect(getCreaturePosition(pid), 10)
    doPlayerSendTextMessage(pid, MESSAGE_EVENT_ADVANCE, "You are in RED TEAM!\nThis battle will continue up to ".. t.v .." frags!")
    else
    doCreatureChangeOutfit(pid, blue)
    doTeleportThing(pid, t.d_2)
    setPlayerStorageValue(pid, t.h, 0)
    setPlayerStorageValue(pid, t.f, 1)
    setPlayerStorageValue(pid, t.f_1, 1)
    setPlayerStorageValue(pid, t.f_2, 0)
    doSendMagicEffect(getCreaturePosition(pid), 10)
    doPlayerSendTextMessage(pid, MESSAGE_EVENT_ADVANCE, "You are in BLUE TEAM!\nThis battle will continue up to ".. t.v .." frags!")
    end
    end
    end



    [Sistema] Baul De eventos (Otx 2 y tfs 0.3.7 y .0.4.0) - Página 2 YNU5B25
    https://www.tibiaface.com

    Contenido patrocinado


    Ver el tema anterior Ver el tema siguiente Volver arriba  Mensaje (Página 2 de 2.)

    Ir a la página : Precedente  1, 2

    Permisos de este foro:
    No puedes responder a temas en este foro.

     

    BienvenidosTibiaFace es una comunidad de Open Tibia. Para participar debes estar registrado (click para Regístrate).