Postado Março 2, 2018 7 anos Alguém pode me ajudar com esse script, era pra ele retorna o level do meu pet system só que tem algo errado e não sei o que é !! OBS: No pet aparece Level -1 e o certo é aparecer o level do 0 + Spoiler local config = { storage = 489061564, tempo = 6000, -- tempo, em segundos que o efeito demorará para sair. } local eggo = { ["Holy Pet"] = {id = 6541, mon = "Holy Pet", cor = TEXTCOLOR_YELLOW, efeito = 21}, ["Fire Pet"] = {id = 6542, mon = "Fire Pet", cor = TEXTCOLOR_RED, efeito = 6}, ["Ice Pet"] = {id = 6543, mon = "Ice Pet", cor = TEXTCOLOR_TEAL, efeito = 43}, ["Terra Pet"] = {id = 6544, mon = "Terra Pet", cor = TEXTCOLOR_LIGHTGREEN, efeito = 45}, ["Phoenix Pet"] = {id = 2695, mon = "Phoenix Pet", cor = TEXTCOLOR_GREY, efeito = 17}, ["Draug Pet"] = {id = 6544, mon = "Draug Pet", cor = TEXTCOLOR_BROWN, efeito = 37}, ["Many Pet"] = {id = 2695, mon = "Many Pet", cor = TEXTCOLOR_TEAL, efeito = 37}, ["Energy Pet"] = {id = 6545, mon = "Energy Pet", cor = TEXTCOLOR_PURPLE, efeito = 22}, ["Jester Pet"] = {id = 9693, mon = "Jester Pet", cor = TEXTCOLOR_DARKPURPLE, efeito = 31}, ["Ferumbras Pet"] = {id = 11715, mon = "Ferumbras Pet", cor = TEXTCOLOR_DARKRED, efeito = 29} } function onThink(cid, interval) local function Macabro(cid) for k, v in pairs(eggo) do if isCreature(cid) and getCreatureName(cid) == k then doSendMagicEffect(getThingPos(cid), v.efeito) doSendAnimatedText(getThingPos(cid), "Level: " ..(getPlayerStorageValue(cid,489061564)).. "", v.cor) addEvent(function() Macabro(cid) end, 6000) end end end if (getPlayerStorageValue(cid, 70079)) <= 0 then -- storage que guarda o tempo do efeito. Macabro(cid) setPlayerStorageValue(cid, 70079, config.tempo + os.time()) else return true end return TRUE end
Postado Março 2, 2018 7 anos Essa primeira storage, serve para o quê? O código comenta algumas coisas, mas esqueceu de falar sobre ela. Edit 1: Certamente é pra pegar o level, mas onde ela é trabalhada em outro script? Preciso dá uma olhada, porque aparentemente tá tudo ok no código. Editado Março 2, 2018 7 anos por lordzetros (veja o histórico de edições) Feliz daquele que ensina o que sabe, e aprende o que ensina.
Postado Março 2, 2018 7 anos Autor A primeira storage é a mesma que a segunda é que esqueci de tirar ela só. Ela é trabalhada no NPC que troca a storage por x item, até ai esta tudo ok, por talkaction ele checa o level certinho agr nesse script ai, acho que ta dando conflito com a storage do level e a storage que guarda o tempo do efeito, não sei rsrs
Postado Março 5, 2018 7 anos É porque acontece o seguinte: Todos storages, quando declarados, recebem o valor de -1, e de alguma maneira, em outro script que seta o level do seu pokemon, ao invés de definir como 0, o mesmo permanece como padrão, pois não foi setado como outro valor. Repare nesta parte do código: doSendAnimatedText(getThingPos(cid), "Level: " ..(getPlayerStorageValue(cid,489061564)).. "", v.cor) o storage 489061564 provavelmente é o que guarda o valor do level do pokemon, certo? E por padrão, quando ele foi declarado, recebeu -1, ou seja, se não houver modificação no level do pokemon, ele vai tá sempre com -1 por não ter sido declarado com valor nulo. É por isso que falei que o código que você está postando, aparentemente, está tudo ok (tirando algumas coisas de configurável ao usuário). Feliz daquele que ensina o que sabe, e aprende o que ensina.
Postado Março 5, 2018 7 anos Autor Então @lordzetros pra ver se o player estava recebendo a storage eu criei um Book no Creaturescripts e esta contando os níveis normalmente. Apenas aqui esta ficando -1: Citar doSendAnimatedText(getThingPos(cid), "Level: " ..(getPlayerStorageValue(cid,489061564)).. "", v.cor) NPC: Spoiler 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 local msg = msg:lower() local config = { effectonuse = 14, -- efeito que sai levelsorte = 10, --- leveis que terão item = 10563, quant = 1, storagesorte = 489061564 -- storage que será verificado } if(msgcontains(msg, 'sim' )) then if getPlayerStorageValue(cid, config.storagesorte) < config.levelsorte then if getPlayerItemCount(cid, config.item) >= config.quant then doPlayerRemoveItem(cid, config.item, config.quant) doSendAnimatedText(getPlayerPosition(cid), "SABEDORIA!", TEXTCOLOR_YELLOW) doBroadcastMessage("[MENSAGEM]: O jogador (" .. getCreatureName(cid) .. ") recebeu um nivel de sabedoria da NPC Emily.", 19) selfSay('Você recebeu pontos de sabedoria, verifique seu nível no pet elemental.', cid) setPlayerStorageValue(cid, config.storagesorte, getPlayerStorageValue(cid, config.storagesorte)+1) elseif getPlayerStorageValue(cid, config.storagesorte) >= config.levelsorte then else selfSay('Você não tem o item necessario {Book of Player}.', cid) end else selfSay('Você ja esta no level maxímo.' , cid) end end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) Book: Spoiler function onLook(cid, thing, position, lookDistance) if thing.itemid == 1961 then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Habilidades:") doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Sorte: "..(getPlayerStorageValue(cid,489061563).. ""))") doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Coragem: "..(getPlayerStorageValue(cid,489061562).. ""))") doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Sabedoria: " ..(getPlayerStorageValue(cid,489061564).. "")) end return TRUE end
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.