Ir para conteúdo
  • 0

Izanagi - Naruto Online


yoh

Pergunta

Bom dia Galera Prcso de 1 Scritp um pouco complexo !

 

Seguinte o Player Usa 1 magia e se ele dentro de 30 segundo ele morrer, o player não morre ele é teleportado para 1 area e volta pra onde ele tinha morrido e só pode usar 1 x a cada 2 min

 

 

Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0

Yoh Tenho essa akie Mangekyou kamui me:

 

local toPos = {x = 1195, y = 738, z = 6} --pos para onde o player vai ser teleportado
local tempo = 10 --tempo q ele vai ficar la... em segs
local function teleport(cid, pos)
if isCreature(cid) then
doSendMagicEffect(pos, 118)
doTeleportThing(cid, pos, false)
end
end
function onCastSpell(cid, var)
local pos = getPlayerPosition(cid)
doTeleportThing(cid, toPos, false)
doSendMagicEffect(pos, 118) --efeito
addEvent(teleport, tempo*1000, cid, pos)
return true
end
se ajudar :)
Link para o comentário
Compartilhar em outros sites

  • 0

é +/- isso no caso seria 1 PrepareonDeath e em creaturescripts para só ativar quando o player tve-se usado a magia e na hr de ele morrer n perde nd


Alguem ?

Link para o comentário
Compartilhar em outros sites

  • 0

O exausted, você coloca na tag da spell. Fiz rápido ambos os códigos, pois logo estarei saindo.

PS: Suponho que você saiba fazer as tags (não se esqueça de registrar o evento em login.lua).

Spell:

function onCastSpell(cid, var)
local msg = "If you die while Izanagi's effect (%d seconds) is activated, you'll be teleported to an place, then teleported to your death's position."
local time = 30   --Duração do efeito do Izanagi.
local msg_two = "In %d seconds, the Izanagi's effect will end."
local IZANAGI_STORAGE = 91831
    if getPlayerStorageValue(cid, IZANAGI_STORAGE) > os.time() then
        return doPlayerSendCancel(cid, msg_two:format(getPlayerStorageValue(cid, IZANAGI_STORAGE)))
    else
        doPlayerSendTextMessage(cid, 27, msg:format(time))
        setPlayerStorageValue(cid, IZANAGI_STORAGE, os.time() + time)
    end
    return true
end
Prepare death:
local time = 5    --Depois de quanto tempo o jogador será teleportado para o local da morte (já que quando "morrer" será teleportado para outro local, como você disse no tópico).
local pos = {x = x, y = y, z = z}  --Para onde será teleportado.
local IZANAGI_STORAGE = 91831
local function Revive(cid, id)
    addEvent(function()
        if not isCreature(cid) then 
            if id then
                local pos = db.getResult("SELECT value FROM player_storage WHERE player_id = "..id.." AND key = 91832")
                if pos:getID() == -1 then return true end
                local x = pos.x
                local y = pos.y
                local z = pos.z
                return db.executeQuery("UPDATE players SET posx = "..x..", posy = "..y..", posz = "..z.." WHERE id = "..id)
            end
        else
            local posis = {}
            posis.x = getPlayerStorageValue(cid, 91832).x
            posis.y = getPlayerStorageValue(cid, 91832).y
            posis.z = getPlayerStorageValue(cid, 91832).z
            doTeleportThing(cid, posis)
            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "You have been teleported to your death's place.")
        end
    end, time * 1000)
end
function onPrepareDeath(cid)
    if isPlayer(cid) and getPlayerStorageValue(cid, IZANAGI_STORAGE) > os.time() then
        doCreatureAddHealth(cid, getCreatureMaxHealth(cid))
        doCreatureAddMana(cid, getCreatureMaxMana(cid))
        setPlayerStorageValue(cid, 91832, getThingPos(cid))
        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, string.format("You have been revived by Izanagi. In %d, you will be teleported to your death's place.", time)
        doTeleportThing(cid, pos)
        Revive(cid, getPlayerGUID(cid))
    end
    return true
end
Editado por zipter98
Link para o comentário
Compartilhar em outros sites

  • 0
[0:41:54.560] mysql_real_query(): SELECT value FROM player_storage WHERE player_id = 5223 AND key = 91832 - MYSQL ERROR: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'key = 91832' at line 1 (1064)
[0:42:57.127] [Error - Action Interface]
[0:42:57.127] (Unknown script file)
[0:42:57.127] Description:
[0:42:57.127] attempt to call a nil value
[0:42:57.127] stack traceback:

Consegui Fazer a Tecnica.

 

Segue:

 

Creaturescripts.

function restore(cid, pos, seconds)
 if not isCreature(cid) then return true end
 if seconds == 0 then
  doTeleportThing(cid, pos)
  doCreatureAddHealth(cid, getCreatureMaxHealth(cid))
 end
 addEvent(setPlayerStorageValue, 6000, cid, 56982, 0)
 addEvent(mayNotMove, 5000, cid, false)
 addEvent(restore, 1000, cid, pos, seconds -1)
end

function onPrepareDeath(cid, deathList)
 local posArena = {x = 302, y = 45, z = 5} --´posição da area la q vc falo
 if getPlayerStorageValue(cid, 56982) == 1 then
  restore(cid, getThingPos(cid), 5)
  doTeleportThing(cid, posArena)
  mayNotMove(cid, true)
  return false
 end
 return true
end

Spell :

function onCastSpell(cid, var)
        setPlayerStorageValue(cid, 56982, 1)
    return true
end

Simples! Funciona 1 x e depois precisa usa-la dnv ! quando o player morrer ele remove a storage e fica normal !

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...