Postado Outubro 5, 2017 7 anos Eai, galera do TK! Então, eu to com um egg system aqui e parece que ele está incompleto... Quando eu falo "care" para o npc cuidar do ovo, ele pega meu dinheiro e não pega nenhum ovo para "cuidar", dps disso o tempo para chocar corre normalmente, mas na hora de pedir o ovo devolta, (depois do tempo) ele devolve nada... Mostrar conteúdo oculto 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 onCreatureSayCallback(cid, type, msg) local config = { price = 50000, delay = 5 * 60, control = {10555, 10556}, eggn = 4850 } if not npcHandler:isFocused(cid) then return false end local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid if msgcontains(msg, "care") then local p = (config.price % 1000 == 0 and (config.price / 1000) or config.price) if getPlayerStorageValue(cid, config.control) > os.time() then selfSay("Sorry, but I am already caring one of your eggs.", cid) else selfSay("Do you want me to take care of your egg for ".. p .." ".. (p == config.price and "" or "k") .."?", cid) talkState[talkUser] = 1 end elseif msgcontains(msg, "back") then if getPlayerStorageValue(cid, config.control[2]) == 1 then selfSay("Hello, do you came to pick up your egg?", cid) talkState[talkUser] = 2 else selfSay("Sorry, but I am not caring eggs from you.", cid) end elseif msgcontains(msg, "check") then local t = getPlayerStorageValue(cid, config.control[1]) if getPlayerStorageValue(cid, config.control[2]) == -1 then selfSay("Sorry, but I am not caring eggs from you.", cid) else if t < os.time() then selfSay("Yay, your egg has started to hatch, take it.", cid) setPlayerStorageValue(cid, config.control[1], -1) setPlayerStorageValue(cid, config.control[2], -1) else selfSay("I will be caring your egg for more ".. (math.floor((t - os.time()) / 60) > 0 and "".. math.floor((t - os.time()) / 60) .." minutes and" or "") .." ".. (t - os.time()) % 60 .." seconds.", cid) end end end if talkState[talkUser] == 1 then if msgcontains(msg, "yes") then if getPlayerStorageValue(cid, config.control[2]) == -1 then if doPlayerRemoveMoney(cid, config.price) then setPlayerStorageValue(cid, config.control[2], 1) setPlayerStorageValue(cid, config.control[1], os.time()+config.delay) selfSay("Okay! Check back soon.", cid) else selfSay("Sorry, you don't have enough money. You need more ".. (config.price - getPlayerMoney(cid)) .." coins.", cid) end else selfSay("I am already taking care of a egg for you.", cid) end elseif msgcontains(msg, "no") then selfSay("Too pricey for you, heh?", cid) end elseif talkState[talkUser] == 2 then local x = getPlayerStorageValue(cid, config.control) local t = getPlayerStorageValue(cid, config.control[1]) if msgcontains(msg, "yes") then if x > os.time() then local item = doPlayerAddItem(cid, config.eggn, 1) doItemSetAttribute(item, "description", "A hatched egg.") selfSay("Take it!", cid) setPlayerStorageValue(cid, control[2], -1) setPlayerStorageValue(cid, control[1], -1) else selfSay("Sorry, but your egg need care for more ".. (math.floor((t - os.time()) / 60) > 0 and "".. math.floor((t - os.time()) / 60) .." minutes and" or "") .." ".. (t - os.time()) % 60 .." seconds.", cid) end end end return true end npcHandler:setMessage(MESSAGE_GREET, "Hello, |PLAYERNAME|. I am a pet egg carer. Do you want me to {care} your pet eggs? Also you can {check} the egg status and if you have any egg here, you can get it {back}.") npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, onCreatureSayCallback) npcHandler:addModule(FocusModule:new())
Postado Outubro 5, 2017 7 anos Mostrar conteúdo oculto 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 local config = {eggId = 1111, -- id do ovo para remover price = 50000, delay = 1 * 60, eggn = 4850, -- id do ovo para entregar control = {10555, 10556} } function creatureSayCallback(cid, type, msg) local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid local msg = string.lower(msg) if not npcHandler:isFocused(talkUser) then if isInArray({"hi", "hello"}, msg) then npcHandler:addFocus(cid) selfSay("Hello, "..getPlayerName(cid).."! I am a pet egg carer. Do you want me to {care} your pet eggs? Also you can {check} the egg status and if you have any egg here, you can get it {back}.", cid) talkState[talkUser] = 1 else return false end elseif msgcontains(msg, "care") and talkState[talkUser] == 1 then local p = (config.price % 1000 == 0 and (config.price / 1000) or config.price) if getPlayerStorageValue(cid, config.control[1]) > os.time() then selfSay("Sorry, but I am already caring one of your eggs.", cid) talkState[talkUser] = 0 else selfSay("Do you want me to take care of your egg for ".. p .." ".. (p == config.price and "" or "k") .."?", cid) talkState[talkUser] = 2 end elseif msgcontains(msg, "back") and talkState[talkUser] == 1 then if getPlayerStorageValue(cid, config.control[2]) == 1 then selfSay("Hello, do you came to pick up your egg?", cid) talkState[talkUser] = 3 else selfSay("Sorry, but I am not caring eggs from you.", cid) talkState[talkUser] = 0 end elseif msgcontains(msg, "check") and talkState[talkUser] == 1 then local t = getPlayerStorageValue(cid, config.control[1]) if getPlayerStorageValue(cid, config.control[2]) == -1 then selfSay("Sorry, but I am not caring eggs from you.", cid) talkState[talkUser] = 0 else if t > os.time() then selfSay("I will be caring your egg for more ".. (math.floor((t - os.time()) / 60) > 0 and "".. math.floor((t - os.time()) / 60) .." minutes and" or "") .." ".. (t - os.time()) % 60 .." seconds.", cid) talkState[talkUser] = 0 else selfSay("Yay, your egg has started to hatch, take it.", cid) talkState[talkUser] = 0 end end elseif msgcontains(msg, "yes") and talkState[talkUser] == 2 then if getPlayerStorageValue(cid, config.control[2]) == -1 then if getPlayerItemCount(cid, config.eggId) >= 1 then if doPlayerRemoveMoney(cid, config.price) then doPlayerRemoveItem(cid, config.eggId, 1) setPlayerStorageValue(cid, config.control[1], os.time()+config.delay) setPlayerStorageValue(cid, config.control[2], 1) selfSay("Okay! Check back soon.", cid) talkState[talkUser] = 0 else selfSay("Sorry, you don't have enough money. You need more ".. (config.price - getPlayerMoney(cid)) .." coins.", cid) talkState[talkUser] = 0 end else selfSay("You don't have any egg.", cid) talkState[talkUser] = 0 end else selfSay("I am already taking care of a egg for you.", cid) talkState[talkUser] = 0 end elseif msgcontains(msg, "no") and talkState[talkUser] == 2 then selfSay("Too pricey for you, heh?", cid) talkState[talkUser] = 0 elseif msgcontains(msg, "yes") and talkState[talkUser] == 3 then local t = getPlayerStorageValue(cid, config.control[1]) if t < os.time() then local item = doPlayerAddItem(cid, config.eggn, 1) doItemSetAttribute(item, "description", "A hatched egg.") setPlayerStorageValue(cid, config.control[1], -1) setPlayerStorageValue(cid, config.control[2], -1) selfSay("Take it!", cid) talkState[talkUser] = 0 else selfSay("Sorry, but your egg need care for more ".. (math.floor((t - os.time()) / 60) > 0 and "".. math.floor((t - os.time()) / 60) .." minutes and" or "") .." ".. (t - os.time()) % 60 .." seconds.", cid) talkState[talkUser] = 0 end elseif msgcontains(msg, "bye") then selfSay("Bye.", cid) npcHandler:releaseFocus(cid) else selfSay("WHAT?", cid) talkState[talkUser] = 0 end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
Postado Outubro 6, 2017 7 anos Autor Em 05/10/2017 em 23:52, Dwarfer disse: Mostrar conteúdo oculto Mostrar conteúdo oculto 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 local config = {eggId = 1111, -- id do ovo para remover price = 50000, delay = 1 * 60, eggn = 4850, -- id do ovo para entregar control = {10555, 10556} } function creatureSayCallback(cid, type, msg) local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid local msg = string.lower(msg) if not npcHandler:isFocused(talkUser) then if isInArray({"hi", "hello"}, msg) then npcHandler:addFocus(cid) selfSay("Hello, "..getPlayerName(cid).."! I am a pet egg carer. Do you want me to {care} your pet eggs? Also you can {check} the egg status and if you have any egg here, you can get it {back}.", cid) talkState[talkUser] = 1 else return false end elseif msgcontains(msg, "care") and talkState[talkUser] == 1 then local p = (config.price % 1000 == 0 and (config.price / 1000) or config.price) if getPlayerStorageValue(cid, config.control[1]) > os.time() then selfSay("Sorry, but I am already caring one of your eggs.", cid) talkState[talkUser] = 0 else selfSay("Do you want me to take care of your egg for ".. p .." ".. (p == config.price and "" or "k") .."?", cid) talkState[talkUser] = 2 end elseif msgcontains(msg, "back") and talkState[talkUser] == 1 then if getPlayerStorageValue(cid, config.control[2]) == 1 then selfSay("Hello, do you came to pick up your egg?", cid) talkState[talkUser] = 3 else selfSay("Sorry, but I am not caring eggs from you.", cid) talkState[talkUser] = 0 end elseif msgcontains(msg, "check") and talkState[talkUser] == 1 then local t = getPlayerStorageValue(cid, config.control[1]) if getPlayerStorageValue(cid, config.control[2]) == -1 then selfSay("Sorry, but I am not caring eggs from you.", cid) talkState[talkUser] = 0 else if t > os.time() then selfSay("I will be caring your egg for more ".. (math.floor((t - os.time()) / 60) > 0 and "".. math.floor((t - os.time()) / 60) .." minutes and" or "") .." ".. (t - os.time()) % 60 .." seconds.", cid) talkState[talkUser] = 0 else selfSay("Yay, your egg has started to hatch, take it.", cid) talkState[talkUser] = 0 end end elseif msgcontains(msg, "yes") and talkState[talkUser] == 2 then if getPlayerStorageValue(cid, config.control[2]) == -1 then if getPlayerItemCount(cid, config.eggId) >= 1 then if doPlayerRemoveMoney(cid, config.price) then doPlayerRemoveItem(cid, config.eggId, 1) setPlayerStorageValue(cid, config.control[1], os.time()+config.delay) setPlayerStorageValue(cid, config.control[2], 1) selfSay("Okay! Check back soon.", cid) talkState[talkUser] = 0 else selfSay("Sorry, you don't have enough money. You need more ".. (config.price - getPlayerMoney(cid)) .." coins.", cid) talkState[talkUser] = 0 end else selfSay("You don't have any egg.", cid) talkState[talkUser] = 0 end else selfSay("I am already taking care of a egg for you.", cid) talkState[talkUser] = 0 end elseif msgcontains(msg, "no") and talkState[talkUser] == 2 then selfSay("Too pricey for you, heh?", cid) talkState[talkUser] = 0 elseif msgcontains(msg, "yes") and talkState[talkUser] == 3 then local t = getPlayerStorageValue(cid, config.control[1]) if t < os.time() then local item = doPlayerAddItem(cid, config.eggn, 1) doItemSetAttribute(item, "description", "A hatched egg.") setPlayerStorageValue(cid, config.control[1], -1) setPlayerStorageValue(cid, config.control[2], -1) selfSay("Take it!", cid) talkState[talkUser] = 0 else selfSay("Sorry, but your egg need care for more ".. (math.floor((t - os.time()) / 60) > 0 and "".. math.floor((t - os.time()) / 60) .." minutes and" or "") .." ".. (t - os.time()) % 60 .." seconds.", cid) talkState[talkUser] = 0 end elseif msgcontains(msg, "bye") then selfSay("Bye.", cid) npcHandler:releaseFocus(cid) else selfSay("WHAT?", cid) talkState[talkUser] = 0 end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) Ocorreu um ero... eu vou falar com o NPC e ele fica "What?" toda hora... ja falei hi, hello e nada....
Postado Outubro 6, 2017 7 anos Não ocorreu erro nenhum, se falar fora de ordem ele vai falar isso aí. Aqui um arquivo.xml para você ter como base: <?xml version="1.0" encoding="UTF-8"?> <npc name="Egger" script="NOMEDOSEUARQUIVO.lua" walkinterval="2000" floorchange="0"> <health now="100" max="100"/> <look type="139" head="20" body="39" legs="45" feet="7" addons="0"/> </npc>
Postado Outubro 6, 2017 7 anos Autor Em 06/10/2017 em 01:33, Dwarfer disse: Não ocorreu erro nenhum, se falar fora de ordem ele vai falar isso aí. Aqui um arquivo.xml para você ter como base: <?xml version="1.0" encoding="UTF-8"?> <npc name="Egger" script="NOMEDOSEUARQUIVO.lua" walkinterval="2000" floorchange="0"> <health now="100" max="100"/> <look type="139" head="20" body="39" legs="45" feet="7" addons="0"/> </npc> Ocorre esse erro:
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.