Postado Setembro 29, 2018 6 anos Eai pessoal do TK eu queria saber como resolver esse seguinte problema, toda vez que eu matar um monstro quero que minha storage 52800 aumente em +1 eu tentei fazer o seguinte: setPlayerStorageValue(cid, Storage, getPlayerStorageValue(cid, Storage) +1) mas não funciona se eu por só setPlayerStorageValue(cid, Storage, 1) ele funciona mas só conta até 1 pois não estou incrementando e sim setando.. segue o Script: Mostrar conteúdo oculto function onDeath(cid, corpse, deathList) local Storage,monstName = 52800, "bandit swordman" local count = 31 local value = getPlayerStorageValue(cid, 52800) for _, check in pairs(deathList) do if isPlayer(check) then if getPlayerStorageValue(cid, Storage) < count then setPlayerStorageValue(check, Storage, 1) end end end return true end
Postado Setembro 30, 2018 6 anos Diretor Em 29/09/2018 em 21:31, matheus1234567 disse: Eai pessoal do TK eu queria saber como resolver esse seguinte problema, toda vez que eu matar um monstro quero que minha storage 52800 aumente em +1 eu tentei fazer o seguinte: setPlayerStorageValue(cid, Storage, getPlayerStorageValue(cid, Storage) +1) mas não funciona se eu por só setPlayerStorageValue(cid, Storage, 1) ele funciona mas só conta até 1 pois não estou incrementando e sim setando.. segue o Script: Mostrar conteúdo oculto Mostrar conteúdo oculto function onDeath(cid, corpse, deathList) local Storage,monstName = 52800, "bandit swordman" local count = 31 local value = getPlayerStorageValue(cid, 52800) for _, check in pairs(deathList) do if isPlayer(check) then if getPlayerStorageValue(cid, Storage) < count then setPlayerStorageValue(check, Storage, 1) end end end return true end Olha amigo não sei se vai te ajudar mais se for isso acho que vai ser GG, to mexendo pouco com scripts, a intenção é te ajudar mesmo. local monster = 'bandit swordman' -- nome do monstro local storage = 52800 -- storage function onKill(cid, target, lastHit) if(isMonster(cid)) and getCreatureName(cid):lower() == monster then setPlayerStorageValue(lastHit, storage, +1) end return true end tag creaturescripts.xml>> <event type="kill" name="killsto" event="script" value="killdeath.lua"/> login.lua>> registerCreatureEvent(cid, "killsto") tag no mostro que vai morrer em nodomonstro.xml colcoa no final <script> <event name="killsto"/> </script> Editado Setembro 30, 2018 6 anos por L3K0T (veja o histórico de edições) Eu sou um entusiasta da programação apaixonado por ajudar a comunidade open source a crescer. Sempre em busca de novos desafios e oportunidades para contribuir com meu código. #OpenSource #Programação #Contribuição
Postado Setembro 30, 2018 6 anos Autor Em 30/09/2018 em 02:07, L3K0T disse: Olha amigo não sei se vai te ajudar mais se for isso acho que vai ser GG, to mexendo pouco com scripts, a intenção é te ajudar mesmo. local monster = 'bandit swordman' -- nome do monstro local storage = 52800 -- storage function onKill(cid, target, lastHit) if(isMonster(cid)) and getCreatureName(cid):lower() == monster then setPlayerStorageValue(lastHit, storage, +1) end return true end tag creaturescripts.xml>> <event type="kill" name="killsto" event="script" value="killdeath.lua"/> login.lua>> registerCreatureEvent(cid, "killsto") tag no mostro que vai morrer em nodomonstro.xml colcoa no final <script> <event name="killsto"/> </script> deu isso: [833:25:408] [Warning - Monster::Monster] Unknow event name - killBanditSwordman registrei non login: registerCreatureEvent(cid "killBanditSwordman") no monstro.xml: <script> <event name="killBanditSwordman"/> </script> no creaturescripts.xml: <event type="kill" name="killBanditSwordman" event="script" value="task/banditswordman.lua"/>
Postado Setembro 30, 2018 6 anos .. Seu erro foi checar a storage na creature morta e não nos jogador que a mataram, assim nunca contabilizava o valor da storage +1, isso aqui que você fez está correto só faltaria coloca no lugar do cid os players que mataram. setPlayerStorageValue(cid, Storage, getPlayerStorageValue(cid, Storage) +1) Mostrar conteúdo oculto function onDeath(cid, corpse, deathList) local Storage,monstName = 52800, "bandit swordman" local count = 31 for _, check in pairs(deathList) do if isPlayer(check) then local value = getPlayerStorageValue(check, Storage) -- a storage tem que ser checada pelo jogador e não pelo monstro morto... você estava checando a storage no monstro por isso não contava corretamente if value == -1 then -- toda storage é iniciada com -1 aqui eu seto o 1° valor que seria 1 setPlayerStorageValue(check, Storage, 1) elseif value < count then setPlayerStorageValue(check, Storage, value + 1) -- aqui é adicionado + 1 ao valor da storage end end end return true end Te ajudei ?? Que tal fazer uma contribuição ?
Postado Setembro 30, 2018 6 anos Autor Em 30/09/2018 em 13:55, DboExplorer disse: .. Seu erro foi checar a storage na creature morta e não nos jogador que a mataram, assim nunca contabilizava o valor da storage +1, isso aqui que você fez está correto só faltaria coloca no lugar do cid os players que mataram. setPlayerStorageValue(cid, Storage, getPlayerStorageValue(cid, Storage) +1) Mostrar conteúdo oculto Mostrar conteúdo oculto function onDeath(cid, corpse, deathList) local Storage,monstName = 52800, "bandit swordman" local count = 31 for _, check in pairs(deathList) do if isPlayer(check) then local value = getPlayerStorageValue(check, Storage) -- a storage tem que ser checada pelo jogador e não pelo monstro morto... você estava checando a storage no monstro por isso não contava corretamente if value == -1 then -- toda storage é iniciada com -1 aqui eu seto o 1° valor que seria 1 setPlayerStorageValue(check, Storage, 1) elseif value < count then setPlayerStorageValue(check, Storage, value + 1) -- aqui é adicionado + 1 ao valor da storage end end end return true end já corrigi amigo é o +1 não funciona se não me engano de acordo com o script não era pra eu usar "cid" e sim "check" ficando da seguinte forma setPlayerStorageValue(check, Storage, getPlayerStorageValue(check, Storage)+1)
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.