Ir para conteúdo

Projeto Tutores de Scripting


Killua

Posts Recomendados

n2c26q.png




Introdução



Neste tópico, eu e os outros responsáveis da área de scripting (@zipter98 e Omega) vamos auxiliar aqueles que querem aprender a scriptear, seja dando dicas, ajudando com códigos e até mesmo dando explicações. A intenção deste projeto é incentivar todos aqueles que têm vontade de aprender a scriptear.




Como vai funcionar?



Diferentemente da Fábrica do Garou, nós não iremos fazer os códigos para vocês. Nós vamos ajudá-los a fazer vocês mesmos. Para ser auxiliado, basta postar aqui o código que está fazendo e dizer onde está sua dificuldade. Se você tem uma idéia de código/sistema para fazer e não sabe nem como começar, você pode postar aqui sua idéia que iremos ajudá-lo a começar e a desenvolver seu código/sistema.




Resumindo



Aqui nós iremos te ajudar a fazer seu código/sistema, vamos te dar dicas e explicações sobre como fazer e até indicar tutoriais para vocês lerem.




Espero realmente que tenham interessados, ficarei feliz em ajudar todos.


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

Bom estou desenvolvendo um Sistema que quando chegar ao Certo nível de skill ganha-se um item.



local getitem = {
[10] = {item, "Voce ganhou uma espada nivel 2 por seu desempenho."}, --[skill necessaria] = {id do item, mensagem},
[20] = {item, "Legal! Voce ganhou uma espada nivel 3."},
[30] = {item, "Parabens! Voce ganhou uma espada nivel 4."},
[40] = {item, "Woow! Voce ganhou uma espada nivel 5."},
[50] = {item, "Wooooooooooooow!!! Voce ganhou uma espada nivel 6."},
[80] = {item, "Excellent!!! Voce conseguiu a espada suprema nivel 7."},
}
if getitem[getPlayerStorageValue(cid, 12348)] then
local tab = getitem[getPlayerStorageValue(cid, 12348)]
doPlayerAddItem(cid, tab[1], 1)
doSendMagicEffect(getCreaturePosition(cid), 15)
doPlayerSendTextMessage(cid, 27, tab[2])
if doPlayerRemoveItem(cid, 3630, 1)
else
return doPlayerSendCancel(cid, "Voce nao possui pontos suficientes")
else
return doPlayerSendCancel(cid, "Voce nao possui pontos suficientes")
end

(Foi o Zipter que fez a maior parte)


Oque eu quero no script: Gostaria que verifica-sem e reviza-sem pra ver se errei algo na parte do else, e me fala-sem oque eu errei, e também queria trocar o Storage por skill, a quantidade de certa skill.

Link para o comentário
Compartilhar em outros sites

Oi amigo, vamos lá:

 

Primeiramente vc deixou de usar uma função "mãe", que no caso acho que a que mais se adequa é function onAdvance(cid, skill, oldLevel, newLevel).

 

A parte de trocar o storage por skill, é só mudar o getPlayerStorageValue(cid, 12348) para getPlayerSkillLevel(cid, skillId). Mas para fazer um script como esse, eu particularmente prefiro usar um loop para facilitar, se vc quiser, eu mostro como ficaria com o loop.

 

A parte do else vc fez errado. Vou te explicar o princípio do if/else usando um exemplo em LUA e um traduzido em português.

É o seguinte, quando vc usa um if, vc está impondo uma condição (se for assim, então faça isso) e o else serve para você dizer oq acontecerá no caso de sua condição não ser cumprida. Por exemplo:

if getPlayerItemCount(cid, 3630) >= 1 then
      doPlayerRemoveItem(cid, 3630, 1)
      doPlayerAddItem(cid, itemid, count)
      doPlayerSendTextMessage(cid, 22, "Voce recebeu um item.")
else
      doPlayerSendCancel(cid, "Voce não possui o item necessário.")
end

Traduzindo esse código para o português, ficaria assim:

se getPlayerItemCount(cid, 3630) >= 1 então
     doPlayerRemoveItem(cid, 3630, 1)
     doPlayerAddItem(cid, itemid, count)
     doPlayerSendTextMessage(cid, 22, "Voce recebeu um item.")
se não
     doPlayerSendCancel(cid, "Voce não possui o item necessário.")
end

Ou seja, se o player não tiver pelo menos um item de id 3630, ele receberá a mensagem "Você não possui o item necessário.".

 

 

 

O seu erro foi deixar o if doPlayerRemoveItem(cid, 3630, 1) then no final, o local correto seria acima de local tab = getitem[getPlayerStorageValue(cid, 12348)].

 

Espero ter ajudado, continue perguntando :)




			
		
Link para o comentário
Compartilhar em outros sites

Parabéns cara iniciativa foda de vocês era o que faltava no xtibia.

Eu tenho muita dificuldade com scripting apesar de gostar e não ter muito tempo.

 

Tenho esse script que transforma um ninja normal em um genin.Queria que ele também transformasse em 2 outras vocations, ex:chunin,jounin.

 

 

 

local keywordHandler = KeywordHandler:new()

local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)
local talkState = {}
function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end
function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end
function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end
function onThink() npcHandler:onThink() end
function creatureSayCallback(cid, type, msg)
if(not npcHandler:isFocused(cid)) then
return false
end
local vocation = 2
local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid
if (msgcontains(msg, 'ninja')) or (msgcontains(msg, 'promotion')) then
talkState[talkUser] = 1
selfSay('Are you prepared to become a genin?', cid)
elseif (msgcontains(msg, 'yes') and talkState[talkUser] == 1) then
if (getPlayerLevel(cid) >= 8) then
if (getPlayerVocation(cid) ~= vocation) then
doPlayerSetVocation(cid, vocation)
doSendMagicEffect(getThingPos(cid), 1)
else
talkState[talkUser] = 0
selfSay('You already became a genin,you can leave...', cid)
end
else
talkState[talkUser] = 0
selfSay('I can not promote you yet. Must be very experienced, with level 8. There are only '..tostring(8 - getPlayerLevel(cid))..' level(s).', cid)
end
return true
end
return true
end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())

 

Também queria saber como fazer um NPC de uma maneira simples começado do 0 se puder.

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

Bom, primeiramente temos que ler e entender o script.

Oq ele faz?

 

Quando o player usa as palavras "ninja" ou "promotion" e depois "yes" com esse NPC, o script checa o level e a vocação do player. Se o player tiver vocação diferente de 2 e level maior ou igual 8, sua vocação passará a ser 2.

 

Para adicionar mais opções, você deverá dar ao player a possibilidade de usar outras palavras (Exemplo: "ninja", "chunin", "jounin") e fazer o script atuar baseado nessas palavras.

Para fazer isso de forma mais curta e bonita, nós usariamos um loop. Mas vamos fazer o jeito mais simples mesmo, que é assim:

 

Para facilitar, crie uma tabela para encurtar o script, exemplo:

local tabela = {"chunin", "jounin", "hokage", "senin", "sanin"}

Depois, você irá fazer várias checagens com if e elseif, exemplo:

if msgcontains(msg, "chunin") then
      doPlayerSetVocation(cid, x)
elseif msgcontains(msg, "jounin") then
     doPlayerSetVocatio(cid, y)

E ir continuando.Vou deixar aqui o início do código para você

 

 


local tabela = {"chunin", "jounin", "hokage", "senin", "sanin"}
   
if (msgcontains(msg, 'promotion')) then
  talkState[talkUser] = 1
  selfSay('Wich vocation do you choose? chunin, jounin, hokage, sanin or senin?', cid)
end

if isInArray(tabela, msg) then
    if getPlayerLevel(cid) >= 8 then
        if msgcontains(msg, 'chunin') and talkState[talkUser] == 1 then
            doPlayerSetVocation(cid, 1)
            doSendMagicEffect(getThingPos(cid), 1)
        elseif msgcontains(msg, 'jounin') and talkState[talkUser] == 1 then
            doPlayerSetVocation(cid, 2)
            doSendMagicEffect(getThingPos(uid), 1)

 

Para fazer um NPC do 0, digamos que existe um molde:

O início do seu script deve conter isso no início:

local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)
local talkState = {}
 
function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end
function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end
function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end
function onThink() npcHandler:onThink() end
 
function creatureSayCallback(cid, type, msg)
if(not npcHandler:isFocused(cid)) then
return false
end

local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid

E isso no final:

npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())

Existem também outros moldes, mas pode usar sempre esse.

 

Depois basta construir um script normalmente usando

if msgcontains(msg, "blablabla")

para checar oq o player fala e

talkState para ajudar na organização (ordem em que as palavras devem ser ditas pelo player).

 

Como usar o talkState?

Basicamente, você pode pensar que ele é uma variável global à qual pode-se atribuir qualquer valor. Vou usar seu NPC como exemplo de uso do talkUser:

if (msgcontains(msg, 'promotion')) then
  talkState[talkUser] = 1
  selfSay('Wich vocation do you choose? chunin, jounin, hokage, sanin or senin?', cid)
end

Essa parte faz o seguinte: Se o jogador disser "promotion" ao NPC, talkState[talkUser] ganhará valor 1.

if msgcontains(msg, 'chunin') and talkState[talkUser] == 1 then

Essa parte vai checar duas coisas: Se a palavra dita foi "chunin" e se o valor de talkState[talkUser] é 1. Se o valor não for 1, não adiantará nada dizer a palavra certa e vice-versa.

 

É basicamente isso, vc pode ir dando os valores para talkState[talkUser] conforme vc quer que seja a ordem das falas.

 

 

 

Espero que tenha dado para entender, ainda não sou muito bom explicando =S




			
		
Link para o comentário
Compartilhar em outros sites

Vlw cara por ajudar você explicou direitinho

Vou fazer essas modificações e posteriormente trarei outros scripts e etc.

 

Rep+

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

Eae tentei fazer esse 1º script sozinho mais ficou meio bugado

Quando eu falo "yes" ou "no" pra aceitar o pao ele fala as duas frases ao mesmo tempo e o pao nao vem pra min.

 

 

local keywordHandler = KeywordHandler:new()

local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)
local talkState = {}
function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end
function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end
function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end
function onThink() npcHandler:onThink() end
function creatureSayCallback(cid, type, msg)
if(not npcHandler:isFocused(cid)) then
return false
end
local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid
if (msgcontains(msg, 'bread')) or (msgcontains(msg, 'pao')) then
talkState[talkuser] = 1
selfSay('Voce quer um pao?',cid)
elseif (msgcontains(msg, 'yes') and talkState[talkUser] == 1)then
doPlayerAddItem(cid, 3600, 1)
doSendMagicEffect(getThingPos(cid), 1)
else
talkState[talkUser] = 0
selfSay('Pao quentinho entregue',cid)
end
talkState[talkUser] = 0
selfSay('O pao vai esfriar')
return true
end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())
Também fiz esse 2º e tenho uma dúvida:todos os npcs tem que ter uma "greet message"? porque da um erro no client quando eu tento colocar o npc no ot.

 

local keywordHandler = KeywordHandler:new()

local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)
local talkState = {}
function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end
function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end
function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end
function onThink() npcHandler:onThink() end
function creatureSayCallback(cid, type, msg)
if(not npcHandler:isFocused(cid)) then
return false
end
local vocation = 2
local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid
if (msgcontains(msg, 'hi'))then
talkState[talkUser] = 1
selfSay('Do you want a mission?', cid)
if (msgcontains(msg, 'yes'))then
doSendMagicEffect(getThingPos(cid), 1)
else
talkState[talkUser] = 0
selfSay('Voce ainda não pode pegar missões',cid)
end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())

 

VLw abraços

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

Nossa, adorei a iniciativa. Era isso que estava faltando, um tópico de tutores mesmo, onde pessoas interessadas pelo Scripting pudessem tirar suas dúvidas.

 

Parabéns e se precisarem da minha ajuda em algo, só mandar PM.

Link para o comentário
Compartilhar em outros sites

 

 

Eae tentei fazer esse 1º script sozinho mais ficou meio bugado

Quando eu falo "yes" ou "no" pra aceitar o pao ele fala as duas frases ao mesmo tempo e o pao nao vem pra min.

 

 

local keywordHandler = KeywordHandler:new()

local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)
local talkState = {}
function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end
function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end
function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end
function onThink() npcHandler:onThink() end
function creatureSayCallback(cid, type, msg)
if(not npcHandler:isFocused(cid)) then
return false
end
local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid
if (msgcontains(msg, 'bread')) or (msgcontains(msg, 'pao')) then
talkState[talkuser] = 1
selfSay('Voce quer um pao?',cid)
elseif (msgcontains(msg, 'yes') and talkState[talkUser] == 1)then
doPlayerAddItem(cid, 3600, 1)
doSendMagicEffect(getThingPos(cid), 1)
else
talkState[talkUser] = 0
selfSay('Pao quentinho entregue',cid)
end
talkState[talkUser] = 0
selfSay('O pao vai esfriar')
return true
end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())
Também fiz esse 2º e tenho uma dúvida:todos os npcs tem que ter uma "greet message"? porque da um erro no client quando eu tento colocar o npc no ot.

 

local keywordHandler = KeywordHandler:new()

local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)
local talkState = {}
function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end
function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end
function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end
function onThink() npcHandler:onThink() end
function creatureSayCallback(cid, type, msg)
if(not npcHandler:isFocused(cid)) then
return false
end
local vocation = 2
local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid
if (msgcontains(msg, 'hi'))then
talkState[talkUser] = 1
selfSay('Do you want a mission?', cid)
if (msgcontains(msg, 'yes'))then
doSendMagicEffect(getThingPos(cid), 1)
else
talkState[talkUser] = 0
selfSay('Voce ainda não pode pegar missões',cid)
end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())

 

VLw abraços

 

 

Desculpe estar demorando, estou bem corrido hoje. Amanhã garanto que vou responder suas dúvidas, abraços.

 

 

Nossa, adorei a iniciativa. Era isso que estava faltando, um tópico de tutores mesmo, onde pessoas interessadas pelo Scripting pudessem tirar suas dúvidas.

 

Parabéns e se precisarem da minha ajuda em algo, só mandar PM.

 

Muito obrigado Garou, sua ajuda vai ser sempre bem-vinda no projeto :)

 

Resposta:


@Madarada seu primeiro erro foi usar talkState[talkuser] ao invés de talkState[talkUser]. A linguagem LUA diferencia letras minúsculas de maiúsculas, por isso é preciso prestar atenção.

Segundo: Este else:


else 
talkState[talkUser] = 0 
selfSay('Pao quentinho entregue',cid) 
end

Está dizendo ao script oq fazer se as condições dessa linha não forem atendidas:


if (msgcontains(msg, 'bread')) or (msgcontains(msg, 'pao')) then

Ou seja, se o player usar alguma palavra que não seja "pao" ou "bread", ele não receberá nenhum item e receberá uma mensagem dizendo "Pao quentinho entregue". Esta mensagem deveria estar junto com o doPlayerAddItem(cid, 3600, 1) e no else deveria estar algo assim: "Nao entendi.". Mas isso são só detalhes que não influenciam no funcionamento do código, só deixam ruim o entendimento in-game.

 

Terceiro:

Essa parte de baixo

 talkState[talkUser] = 0
 selfSay('O pao vai esfriar')
  return true
  end

É executada toda vez que alguem fala hi para o NPC, pois ela não está sob condição nenhuma. Por isso ele usa 2 mensagens ao mesmo tempo.

 

Outra dica é colocar um talkState[talkUser] = 0 junto com o doPlayerAddItem(cid, 3600, 1) para obrigar o player a falar "pao", "yes" novamente casso queira outro pão.

 

O script corrigido ficaria assim:

local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)
local talkState = {}
 
function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end
function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end
function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end
function onThink() npcHandler:onThink() end
 
function creatureSayCallback(cid, type, msg)
if(not npcHandler:isFocused(cid)) then
return false
end
 
local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid
 
if msgcontains(msg, 'bread') or msgcontains(msg, 'pao') then
    talkState[talkUser] = 1
    selfSay('Voce quer um pao?',cid)
elseif msgcontains(msg, 'yes') and talkState[talkUser] == 1 then
    doPlayerAddItem(cid, 3600, 1) 
    doSendMagicEffect(getThingPos(cid), 1)
    selfSay('Pao quentinho entregue',cid)
    talkState[talkUser] = 0
else
    selfSay('Nao entendi', cid)
    talkState[talkUser] = 0
end
return true
end
 
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())

 

Leia ele e compare com seu código para entender seus erros.

 

Sua segunda dúvida:

Não precisa por greet message, pois já existe uma padrão (Welcome, playername! I have been expecting you.). Sempre que vc deixar de colocar uma greet message, essa mensagem vai ser enviada ao dizer Hi para o NPC.

O erro deve ter acontecido devido aos erros nesse segundo script, que são bem parecidos com o do primeiro. Se vc entender a explicação do primeiro, vai conseguir fazer o segundo.

Além disso estão faltando dois ends e um return true no final, oque já é suficiente para aparecerem erros.

 

Abraços, espero que consiga entender.

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

Quero fazer um script assim O player clica numa alavanca e é teleportado para um local onde começa a surgir monstros e mais monstros, dependendo do tempo que ele aguenta lá ele ganha prêmios por exemplo de 0 a 1 minuto ele ganha 1kk de 1 a 3 minutos 2kk e assim por diante, ele só pode clicar nessa alavanca de 3 em 3 horas se possuir item X e se um player já estiver dentro desse evento outro player não consiga entrar lá (Cê o player aguentar 5 minutos na arena, ele é teleportado para o templo com o prêmio e seu nome anunciado para todo servidor "O player "Ziriguidum" venceu na arena e ganhou "Nome do item".

 

PS: não sei nem como começar =\

Link para o comentário
Compartilhar em outros sites

Quero fazer um script assim O player clica numa alavanca e é teleportado para um local onde começa a surgir monstros e mais monstros, dependendo do tempo que ele aguenta lá ele ganha prêmios por exemplo de 0 a 1 minuto ele ganha 1kk de 1 a 3 minutos 2kk e assim por diante, ele só pode clicar nessa alavanca de 3 em 3 horas se possuir item X e se um player já estiver dentro desse evento outro player não consiga entrar lá (Cê o player aguentar 5 minutos na arena, ele é teleportado para o templo com o prêmio e seu nome anunciado para todo servidor "O player "Ziriguidum" venceu na arena e ganhou "Nome do item".

 

PS: não sei nem como começar =\

o tópico é pra ajudar a fazer o script

n fazer pra ti

¬¬

 

de qlqr forma

parabéns :33

Link para o comentário
Compartilhar em outros sites

Realmente isso tá parecendo mais um pedido... Amigo, se vc é iniciante e quer aprender a fazer scripts, sugiro que comece com algo mais simples. Esse script será um pouco complexo, mas vou deixar umas dicas de como fazê-lo, mesmo achando que vai ser difícil para você entender, já que é um iniciante.

 

Você poderia criar uma tabela contendo todos os intervalos de tempo (de 1 a 60 segundos) para que os monstros nasçam e outra com os nomes dos monstros, exemplo:

local monstros = {"Demon", "Rat", "Hydra", "Dragon"}
local tempos = {1000, 1500, 2000, 2500, 3000, 3500, 4000, 4500, etc} -- até 60000

Onde 1000 equivale a 1 segundo.

 

Daí vc iria criar vários addEvent (com intervalo de 60 segundos) dentro de um loop que usaria a tabela, mais ou menos assim:


for i = 1, (#tempos) do
 addEvent(doCreateMonster, tempos[i], monstros[math.random(1, #monstros)], pos)
 addEvent(function()
    addEvent(doCreateMonster, tempos[i], monstros[math.random(1, #monstros)], pos)
 end, 60000)
 addEvent(function()
    addEvent(doCreateMonster, tempos[i], monstros[math.random(1, #monstros)], pos)
 end, 120000)

Mas dessa maneira não seria checado o tempo que o player permaneceu lá, já que o addEvent estaria ocorrendo de qualquer forma. Portanto, a idéia que eu tive foi fazer da seguinte forma:

Cada addEvent checaria se existem players na área e adicionaria uma storage pra todos os players da área, por exemplo, o primeiro addEvent (com intervalo de 60 segundos) setaria o storage XXXX com valor 1 para todos os players da área, o segundo (com intervalo de 120 segundos) setaria o mesmo storage, mas com valor 2 para todos os players da área e assim por diante.

Depois, usando uma function onPrepareDeath (creaturescripts) vc checaria primeiro se o jogador estava na área determinada no momento da morte, depois o valor de sua storage e daria os prêmios dependendo da storage. É claro que essa onPrepareDeath deverá também setar o storage XXXX do player para 0, para que da próxima vez que o jogador participar do evento, não ocorram problemas.


Essas são as idéia que eu tive para fazer o código que vc disse... Ele não é fácil de fazer e eu recomendaria que vc começasse com códigos mais simples, mas não custa nada tentar :)

Espero que tenha conseguido entender, abraços.

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

×
×
  • Criar Novo...