Ir para conteúdo
  • 0

(Creaturescript) Ondeath become imortal for 5 sec


textoy

Pergunta

Eai glr ,quero pedir ajuda em um script que to tentando criar:

 

se o player tiver storage e morrer ele fica imortal por 5 segundos, isso só pode acontecer uma vez a cada 2 minutos.

 

Eu tentei desenvolver o script mas nao consegui, por isso peço ajuda:

 

 

 

function onStatsChange(cid, attacker, type, combat, value)
local race = getPlayerStorageValue(cid, 50508)
local hp = getCreatureHealth(cid)
-- UNDEAD PASSIVE --
if race == 5 then
if value >= hp and (type == STATSCHANGE_HEALTHLOSS) then
return false
else
return true
end
end
end

valeu
Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

Cara... Vão dá 04:50 da manhã... Então, não vou testar, tava passando rápido e ví o pedido aí ..

Bom, testa aí, se não funcionar, vejamos oque podemos fazer (se bem que só vou ter tempo agora, na quinta feita huahauha), mas alguém deve ajudar aí, é coisa simples.. '-'

 

Tente em creaturescript/script

checagemimortal.lua

local config = {
storagelocal = 50508, --Storage que ele tem que ter, para quando morrer, virar imortal.
storageimortal = 39473, --Storage de tempo, não mexe.. :V rsrs
tempo = 3600                    --Tempo em segundos, que o player vai ficar imortal.
}
function onPrepareDeath(cid, corpse, deathlist)
if getPlayerStorageValue(cid, config.storagelocal) >= 1 then
setPlayerStorageValue(cid, config.storageimortal, 1)
exhaustion.set(cid, config.storageimortal, config.time)
end
return true
end
 
function onCombat(cid, target)
if isPlayer(cid) and isPlayer(target) then
if getPlayerStorageValue(target, config.storageimortal) >= 1 then
if exhaustion.check(cid, config.storageimortal) then
return doPlayerSendCancel(cid, "O player "..getCreatureTarget(cid).." se mantem imortal ainda por "..exhaustion.get(cid, storage)..".")
end
end
end
return true
end
Tags:
     <event type="combat" name="CombatImortal" event="script" value="checagemimortal.lua"/>
      <event type="preparedeath" name="MorteImortal" event="script" value="checagemimortal.lua"/>
Registers em login.lua

    registerCreatureEvent(cid, "CombatImortal")
    registerCreatureEvent(cid, "MorteImortal")
Se tiver algum erro, perdão.. Não testei e são quase 05 da manhã .-.

 

Link para o comentário
Compartilhar em outros sites

  • 0

no caso seria getPlayerStorageValue(cid, config.storagelocal) == 5 then

 

mas de qualquer forma não funcionou, só q pelo seu script me parece não estar executando nada, só adicionando storage

 

@edit não há necessidade do atacante ser player, pode ser bixo, qualquer coisa, o que vale é que quando o player com storagevalue 50508 == 5 morrer ele vai ficar imortal por 5 segundos, não tomando dano.

 

no seu script oncombat voce não ta retornando nada para os danos, deveria ter um return false, mas aqui não ta funcionando

Editado por textoy
Link para o comentário
Compartilhar em outros sites

  • 0

Cara, tá.. Outra hora eu paro pra fazer o script pra ele não morrer pra qualquer tipo de criatura, sendo monstros ou players.

Mas, agora eu só terminei esse que eu já tinha começado a fazer.. Que roda em torno de dois players se atacando. Aaahh.. E desculpa aew, o erro, sim, falta o 'returns false' e também eu não podia ter criado aquele local config. Mas como eu tinha relatado, nem conseguindo pensar eu não estava.. rsrs'

Bom, aqui está o script funcionando, ele manda uma mensagem em segundos, para o player que está tentando atacar.. E quando acaba os segundos, o player consegue atacar. Mas isso, só vai acontecer, se o player morrer com a storage..

 

Bom, primeiramente, arquivo.lua, pro creaturescript:

local storagelocal = 50508 --Storage que ele tem que ter, para quando morrer, virar imortal.
local storageimortal = 394734534 --Storage de tempo, não mexe.. :V rsrs
local tempo = 40                    --Tempo em segundos, que o player vai ficar imortal.
 
function onPrepareDeath(cid, corpse, deathlist)
if (isPlayer(cid)) then
if getPlayerStorageValue(cid, storagelocal) >= 1 then
exhaustion.set(cid, storageimortal, tempo)
end
end
return true
end
 
 
function onCombat(cid, target)
if isPlayer(target) then
if exhaustion.check(target, storageimortal) then
doPlayerSendTextMessage(cid, 27,"O player "..getCreatureName(target).." ainda está imortal. Por: "..exhaustion.get(target, storageimortal).." ")
return false
end
end
 
return true
end
Com as Tags:

      <event type="preparedeath" name="MorteImortal" event="script" value="checagemimortal.lua"/>
      <event type="combat" name="AttackImortal" event="script" value="checagemimortal.lua"/>
E os registros, pro login.lua:

    registerCreatureEvent(cid, "MorteImortal")
    registerCreatureEvent(cid, "AttackImortal")
Lembrando que não precisa alterar os nomes, pra não correr o risco de erros, muda só o nome do arquivo, deixa o nome da tag. rs'
Flw, até dps.

 

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...