Ir para conteúdo
  • Cadastre-se

(Resolvido)[Ajuda] setPlayerStorageValue Lendo variáveis


Ir para solução Resolvido por Adriano SwaTT,

Posts Recomendados

Teste assim:

            function onDeath(cid, corpse, killer)
            
local msg = 'Voce matou "..get.." orcs ateh agora.'
local msg_completed = 'Voce completou sua task de Orcs.'
local monster = "Orc"
local strg = 9755
local strg_c = 9756 -- Storage ao completar missão
local qtdd = 3 -- Quantidade que ele precisa matar.        
local get = getPlayerStorageValue(killer, strg)
 
        if isMonster(cid) and getCreatureName(cid):lower() == monster:lower() then
        if get < qtdd then
            setPlayerStorageValue(killer, strg, (get + 1))
            doCreatureSay(killer, msg, TALKTYPE_ORANGE_1)
        else
            setPlayerStorageValue(killer, strg_c, 1)
            doCreatureSay(killer, msg_completed, TALKTYPE_ORANGE_1)
        end   
    end
return true
end

Boa sorte.

Editado por Adriano SwaTT (veja o histórico de edições)

Gosta do meu trabalho?

Curta e siga a página do meu projeto de 2016 e 2017 (Lab Z Games) que trará vários servidores OTServs.

 

Atenciosamente,
Adriano Swatt'

 

Para ver meus tutoriais acesse meu perfil.

 

cbCyOSZ.png

Link para o post
Compartilhar em outros sites
function onDeath(cid, corpse, killer)
 
local monstName = "Orc" 
local Storage = 9755 
local stor = getPlayerStorageValue(cid, 9755)+1
 
        if isMonster(cid) then
            if string.lower(getCreatureName(cid)) == string.lower(monstName) then
               setPlayerStorageValue(killer, Storage, stor)
               doCreatureSay(killer,'Você completou sua task de Orcs.',TALKTYPE_ORANGE_1)
            end   
         end 
return TRUE
end

 

Tenta agora

Editado por Alencar123 (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

Boa noite.
Vacilo meu, mas a função deveria ser onKill e não onDeath.
onDeath é quando você está morrendo e onKill quando está matando. (quase certeza)

 

Ou seja, teste assim:

            function onKill(cid, target, lastHit)
            
local msg = 'Voce matou '..get..' orcs ateh agora.'
local msg_completed = 'Voce completou sua task de Orcs.'
local monster = "Orc"
local strg = 9755
local strg_c = 9756 -- Storage ao completar missão
local qtdd = 3 -- Quantidade que ele precisa matar.        
local get = getPlayerStorageValue(killer, strg)
 
        if isMonster(target) and getCreatureName(target):lower() == monster:lower() then
        if get < qtdd then
            setPlayerStorageValue(cid, strg, (get + 1))
            doCreatureSay(cid, msg, TALKTYPE_ORANGE_1)
        else
            setPlayerStorageValue(cid, strg_c, 1)
            doCreatureSay(cid, msg_completed, TALKTYPE_ORANGE_1)
        end   
    end
return true
end

Boa sorte.

 

____________________________________________________________________

 

#OFF TOPIC

E o que o Alencar postou acima, usando "setPlayerStorageValue" você define o valor e não adiciona.

Ou seja, da maneira que está, você estará adicionando o valor +1 ao invés de somar ao existente.
Isso funcionaria se fosse algo como "doAddStorageValue" aí sim ele adicionaria.

 

Quando é set é igual a "mudar" o valor, e se coloca o valor que deseja que seja.

Editado por Adriano SwaTT (veja o histórico de edições)

Gosta do meu trabalho?

Curta e siga a página do meu projeto de 2016 e 2017 (Lab Z Games) que trará vários servidores OTServs.

 

Atenciosamente,
Adriano Swatt'

 

Para ver meus tutoriais acesse meu perfil.

 

cbCyOSZ.png

Link para o post
Compartilhar em outros sites

Mudei de <event type="death" name="NPC" event="script" value="npcquest.lua"/>
para <event type="kill" name="NPC" event="script" value="npcquest.lua"/>

coloquei seu novo script,

E agora dá isso
jzH3Mqa.png



 tumblr_mwfeg45FIV1qk4cb3o4_500.gif

Link para o post
Compartilhar em outros sites

Mals, estou de saída.

 

Teste assim:

 

            function onKill(cid, target, lastHit)
            
local msg_completed = 'Voce completou sua task de Orcs.'
local monster = "Orc"
local strg = 9755
local strg_c = 9756 -- Storage ao completar missão
local qtdd = 3 -- Quantidade que ele precisa matar.        
local get = getPlayerStorageValue(killer, strg)
 
        if isMonster(target) and getCreatureName(target):lower() == monster:lower() then
        if get < qtdd then
            setPlayerStorageValue(cid, strg, (get + 1))
            doCreatureSay(cid, 'Voce matou '..get..' orcs ateh agora.', TALKTYPE_ORANGE_1)
        else
            setPlayerStorageValue(cid, strg_c, 1)
            doCreatureSay(cid, msg_completed, TALKTYPE_ORANGE_1)
        end   
    end
return true
end

 

Se não funcionar agora, precisará declarar no monstro o Evento.

Gosta do meu trabalho?

Curta e siga a página do meu projeto de 2016 e 2017 (Lab Z Games) que trará vários servidores OTServs.

 

Atenciosamente,
Adriano Swatt'

 

Para ver meus tutoriais acesse meu perfil.

 

cbCyOSZ.png

Link para o post
Compartilhar em outros sites

1PjR9pk.png

 

 

beleza

 

@Edit: Na primeira função eu ja tava tendo que registrar o evento no monstro, não tirei dele

Editado por Danves (veja o histórico de edições)



 tumblr_mwfeg45FIV1qk4cb3o4_500.gif

Link para o post
Compartilhar em outros sites
  • Solução

Teste assim:

 

O arquivo npcquest.lua ficará assim:

local msg_completed = 'Voce completou sua task de Orcs.'
local monster = 'Orc'
local strg = 9755
local strg_c = 9756 -- Storage ao completar missão
local qtdd = 3 -- Quantidade que ele precisa matar.  

        function onKill(cid, target, lastHit)
local get = getPlayerStorageValue(cid, strg)
 
        if isMonster(target) and getCreatureName(target):lower() == monster:lower() then
        if get < qtdd then
            setPlayerStorageValue(cid, strg, (get + 1))
            doCreatureSay(cid, 'Voce matou '..get..' orcs ateh agora.', TALKTYPE_ORANGE_1)
        else
            setPlayerStorageValue(cid, strg_c, 1)
            doCreatureSay(cid, msg_completed, TALKTYPE_ORANGE_1)
        end   
    end
return true
end

        function onCombat(cid, target)
    if getPlayerStorageValue(cid, strg) >= 1 then
    if isMonster(target) and getCreatureName(target):lower() == monster:lower() then
        registerCreatureEvent(target, "NPCQuest")
    end
    end
    return true
end

 

Em CreatureScripts.xml as tags abaixo:

<event type="kill" name="NPCQuest" event="script" value="npcquest.lua"/>
<event type="combat" name="NPCQuest" event="script" value="npcquest.lua"/>

 

E em Login.lua, adicione a tag:

registerCreatureEvent(target, "NPCQuest")

 

Boa sorte.

Gosta do meu trabalho?

Curta e siga a página do meu projeto de 2016 e 2017 (Lab Z Games) que trará vários servidores OTServs.

 

Atenciosamente,
Adriano Swatt'

 

Para ver meus tutoriais acesse meu perfil.

 

cbCyOSZ.png

Link para o post
Compartilhar em outros sites

Show cara, muito obrigado.

PS: Só edita seu post, erro de digitação sua aqui, trocar target por cid 

registerCreatureEvent(target, "NPCQuest")
 

Editado por Danves (veja o histórico de edições)



 tumblr_mwfeg45FIV1qk4cb3o4_500.gif

Link para o post
Compartilhar em outros sites

Hmm,, que bom que funcionou.

Eu coloquei TARGET porque era pra registrar no Monstro, sendo que CID já registra automaticamente por estar em Login.lua.

 

Enfim, que bom que funcionou².

 

Faça bom aproveito.

Gosta do meu trabalho?

Curta e siga a página do meu projeto de 2016 e 2017 (Lab Z Games) que trará vários servidores OTServs.

 

Atenciosamente,
Adriano Swatt'

 

Para ver meus tutoriais acesse meu perfil.

 

cbCyOSZ.png

Link para o post
Compartilhar em outros sites

Então está ótimo.

 

Faça bom aproveito'

Até breve.

Gosta do meu trabalho?

Curta e siga a página do meu projeto de 2016 e 2017 (Lab Z Games) que trará vários servidores OTServs.

 

Atenciosamente,
Adriano Swatt'

 

Para ver meus tutoriais acesse meu perfil.

 

cbCyOSZ.png

Link para o post
Compartilhar em outros sites

O problema é que mesmo após matar outro monstro, continuava dando 0, ou seja, ele não atualizava o storage para o novo(que já tava 0)



 tumblr_mwfeg45FIV1qk4cb3o4_500.gif

Link para o post
Compartilhar em outros sites

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo