Ir para conteúdo

[Creatureevents] Onkill


2694943kkkk

Posts Recomendados

Olá galerinha Xtibiana!

Hoje eu estou aqui para ajudar a você um modo facil de entender um script, mas é muito facil mesmo!

Vamos lá...

Peguei esse script de um lugar qualquer...

 

function onKill(cid, target, lastHit)
local mName = "Nature Witch" -- monstername
local storage = 15598
       if(isPlayer(cid) and getCreatureName(target) == mName) then
       doPlayerAddItem(cid,12662,1)
       setPlayerStorageValue(cid, storage, 1)
               return true
       end
       elseif(isPlayer(cid) and getCreatureName(target) == mName  and getPlayerStorageValue(cid, storage) == 1) then
       end
               return true
end

 

Vou traduzir esse script facil :

function onKill(cid, target, lastHit)

A função funciona em Matar (Cid, target, LastHit)...

Então, para quem não sabe o "Cid" é o protagonista do script, no caso desse script é o Player.

Target, é aquele o que está dentro do onKill, ou seja o protagonista vai ser todos que tiverem dando TARGET em um monstro (como diz o script)

...

Depois vem a configuração com um comando lua "Local" isso eu não vou explicar...

 

if(isPlayer(cid) and getCreatureName(target) == mName) then

Bem, aqui é simples,

Se o player protagonista do script e o monstro selecionado no "mName" (Local config) está tomando target, Acontece:

doPlayerAddItem(cid,12662,1) --> Vai dar ao player protagonista o item 12662

setPlayerStorageValue(cid, storage, 1) --> Vai entregar ao player protagonista o storage, uma vez

Ai vem o end <-- Esse End indica o fim de uma função, neste caso ele ta dizendo que é o

fim da função if(isplayer.....) then

Da vem...

elseif(isPlayer(cid) and getCreatureName(target) == mName and getPlayerStorageValue(cid, storage) == 1) then

mas se o player protagonista do script e o monstro selecionado no "mName" (Local config) está tomando target e estiver o storage entregue Acontece:

Nada porque ali não tem nenhuma função pra acontecer...

 

Pronto agora pra regista é facil:

<event type="kill" name="nature_witch" event="script" value="nature_witch.lua"/>

O Event type é a mesma coisa que "fuction onKILL"

 

Lá no monstro que vai ser execultado o script você add

<script>
<event name="nature_witch"/>
</script>

 

Lembre-se:

Não esqueça de registra o evento no login.lua

registerCreatureEvent(cid, "nature_witch")

 

Muito obrigado, espero ter ajudado

Att. Kibe

Link para o comentário
Compartilhar em outros sites

Meu caro, mesmo que ele tenha o storage com o valor 1, o item será adicionado, pois não há a verificação do storage na primeira condição.

 

O script correto seria:

 

function onKill(cid, target, lastHit)

local mName = "Nature Witch" -- monstername
local storage = 15598

if isPlayer(cid) and getCreatureName(target) == mName and getPlayerStorageValue(cid, storage) ~= 1 then
   doPlayerAddItem(cid,12662,1)
   setPlayerStorageValue(cid, storage, 1)
   return true
end

end

 

Abraço.

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...