clebao666 6 Postado Outubro 13, 2015 Share Postado Outubro 13, 2015 ola galera! gostaria de uma ajuda na criação de um npc que troca x item por 1 pokemon exemplo: escence zard x 50 >shiny charizard escence toise x 50 >shiny blastoise estarei colocando uns 40 pokes nesse npc . agradeço dmais a ajuda dos companheiros ae do forum. vlw uso base cyan by senhor Link para o comentário Compartilhar em outros sites More sharing options...
0 Bluester 205 Postado Outubro 13, 2015 Share Postado Outubro 13, 2015 pode ser por box ? por exemplo, você dá 50x Essence Zard por uma box que dá um Charizard... Link para o comentário Compartilhar em outros sites More sharing options...
0 Refe 320 Postado Outubro 13, 2015 Share Postado Outubro 13, 2015 (editado) Foi mal, eu li depois pode ser por box ? por exemplo, você dá 50x Essence Zard por uma box que dá um Charizard... tem como sem ser por Box, mas eu tô meio ocupado... Editado Outubro 13, 2015 por Danny0 Link para o comentário Compartilhar em outros sites More sharing options...
0 Bluester 205 Postado Outubro 13, 2015 Share Postado Outubro 13, 2015 Foi mal, eu li depois tem como sem ser por Box, mas eu tô meio ocupado... Também estou sem tempo, por isso vou fazer um com box, se ele quiser, ele pega... Link para o comentário Compartilhar em outros sites More sharing options...
0 Refe 320 Postado Outubro 13, 2015 Share Postado Outubro 13, 2015 Também estou sem tempo, por isso vou fazer um com box, se ele quiser, ele pega... Blz '-' Link para o comentário Compartilhar em outros sites More sharing options...
0 Bluester 205 Postado Outubro 13, 2015 Share Postado Outubro 13, 2015 (editado) Estou meio que sem tempo, então vou te passar um rápido aqui ! Em data/actions/scripts crie um arquivo chamado boox.lua e cole isso: local a = { [iDDABOX] = {pokemons = {"Shiny Charizard"}} local happy = 1000 function onUse(cid, item, frompos, item2, topos) local b = a[item.itemid] if not b then return true end local pokemon = b.pokemons[math.random(#b.pokemons)] if not pokes[pokemon] then return true end doPlayerSendTextMessage(cid, 27, "You opened a pokemon prize box +"..item.itemid - (11637).."!") doPlayerSendTextMessage(cid, 27, "The prize pokemon was a "..pokemon..", congratulations!") doSendMagicEffect(getThingPos(cid), 29) addPokeToPlayer(cid, pokemon, 0, nil, btype) --alterado v1.9 doRemoveItem(item.uid, 1) if useOTClient then doCreatureExecuteTalkAction(cid, "/salvar") end return true end Em data/actions/actions.xml cole essa tag: <action itemid="IDDABOX" event="script" value="boox.lua"/> Data/npc: Crie um arquivo com o nome do NPC que quiser, vou usar Ruby como exemplo, e dentro do arquivo cole isso: <?xml version="1.0" encoding="UTF-8"?> <npc name="Ruby" script="RUBYTRADE.lua" walkinterval="350000" floorchange="0" speed="0"> <health now="100" max="100"/> <look type="2335" head="20" body="100" legs="50" feet="0"/> <parameters> <parameter key="message_greet" value="Hello |PLAYERNAME|.I need {help}...you help me?"/> </parameters> </npc> Em data/npc/scripts crie um arquivo chamado RUBYTRADE.lua e cole isso dentro: 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 msg = string.lower(msg) --------- local need = { {id = ID DAS ESSENCES, qt = 50}, --ID DAS ESSENCES ZARD, QUANTIDADE } local rewards = { {id = IDDABOX, qt = 1}, --charizard BOX } local stoFinish = 92120 -- USE ESSA OU A STORAGE QUE QUISER --------- if msgcontains(msg, 'help') or msgcontains(msg, 'ajuda') then if getPlayerStorageValue(cid, stoFinish) >= 500 then selfSay("Sorry, you already had done this quest.", cid) talkState[talkUser] = 0 return true end selfSay("Olá meu amigo, sou o NPC de trocas de Essences, me dê 50 Essences e lhe darei 1 Box que virá seu Pokemon! Diga YES para trocarmos.",cid) talkState[talkUser] = 1 return true elseif msgcontains(msg, 'yes') or msgcontains(msg, 'sim') and talkState[talkUser] == 1 then if getPlayerItemCount(cid, need[1].id) < need[1].qt then selfSay("Você não me trouxe todas as Essences...", cid) selfSay("Lembre-se, eu preciso de 50 Essences...", cid) talkState[talkUser] = 0 return true end for i = 1, #need do doPlayerRemoveItem(cid, need.id, need.qt) end for i = 1, #rewards do doPlayerAddItem(cid, rewards.id, rewards.qt) doPlayerAddExperience(cid, 0) end selfSay("Obrigado, tchau!", cid) setPlayerStorageValue(cid, stoFinish, 1) talkState[talkUser] = 0 return true end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) OBS: Não testei Editado Outubro 13, 2015 por Bluester Link para o comentário Compartilhar em outros sites More sharing options...
0 SkyLigh 453 Postado Outubro 14, 2015 Share Postado Outubro 14, 2015 Tópico movido para área correta verifique a seção antes de postar. Tópico MovidoEste tópico foi movido de "OTServ → Suporte OTServ → Suporte Spriting"para "OTServ → Suporte OTServ → Suporte Derivados". Link para o comentário Compartilhar em outros sites More sharing options...
0 clebao666 6 Postado Outubro 14, 2015 Autor Share Postado Outubro 14, 2015 (editado) Estou meio que sem tempo, então vou te passar um rápido aqui ! Em data/actions/scripts crie um arquivo chamado boox.lua e cole isso: local a = { [iDDABOX] = {pokemons = {"Shiny Charizard"}} local happy = 1000 function onUse(cid, item, frompos, item2, topos) local b = a[item.itemid] if not b then return true end local pokemon = b.pokemons[math.random(#b.pokemons)] if not pokes[pokemon] then return true end doPlayerSendTextMessage(cid, 27, "You opened a pokemon prize box +"..item.itemid - (11637).."!") doPlayerSendTextMessage(cid, 27, "The prize pokemon was a "..pokemon..", congratulations!") doSendMagicEffect(getThingPos(cid), 29) addPokeToPlayer(cid, pokemon, 0, nil, btype) --alterado v1.9 doRemoveItem(item.uid, 1) if useOTClient then doCreatureExecuteTalkAction(cid, "/salvar") end return true end Em data/actions/actions.xml cole essa tag: <action itemid="IDDABOX" event="script" value="boox.lua"/> Data/npc: Crie um arquivo com o nome do NPC que quiser, vou usar Ruby como exemplo, e dentro do arquivo cole isso: <?xml version="1.0" encoding="UTF-8"?> <npc name="Ruby" script="RUBYTRADE.lua" walkinterval="350000" floorchange="0" speed="0"> <health now="100" max="100"/> <look type="2335" head="20" body="100" legs="50" feet="0"/> <parameters> <parameter key="message_greet" value="Hello |PLAYERNAME|.I need {help}...you help me?"/> </parameters> </npc> Em data/npc/scripts crie um arquivo chamado RUBYTRADE.lua e cole isso dentro: 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 msg = string.lower(msg) --------- local need = { {id = ID DAS ESSENCES, qt = 50}, --ID DAS ESSENCES ZARD, QUANTIDADE } local rewards = { {id = IDDABOX, qt = 1}, --charizard BOX } local stoFinish = 92120 -- USE ESSA OU A STORAGE QUE QUISER --------- if msgcontains(msg, 'help') or msgcontains(msg, 'ajuda') then if getPlayerStorageValue(cid, stoFinish) >= 500 then selfSay("Sorry, you already had done this quest.", cid) talkState[talkUser] = 0 return true end selfSay("Olá meu amigo, sou o NPC de trocas de Essences, me dê 50 Essences e lhe darei 1 Box que virá seu Pokemon! Diga YES para trocarmos.",cid) talkState[talkUser] = 1 return true elseif msgcontains(msg, 'yes') or msgcontains(msg, 'sim') and talkState[talkUser] == 1 then if getPlayerItemCount(cid, need[1].id) < need[1].qt then selfSay("Você não me trouxe todas as Essences...", cid) selfSay("Lembre-se, eu preciso de 50 Essences...", cid) talkState[talkUser] = 0 return true end for i = 1, #need do doPlayerRemoveItem(cid, need.id, need.qt) end for i = 1, #rewards do doPlayerAddItem(cid, rewards.id, rewards.qt) doPlayerAddExperience(cid, 0) end selfSay("Obrigado, tchau!", cid) setPlayerStorageValue(cid, stoFinish, 1) talkState[talkUser] = 0 return true end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) OBS: Não testei acho que esse da certo sim vo testar aq vlw jaja posto se funciono. so como pedi la sera varios pokes mesmo que eu crie uma box pra cada shiny que eu quero trocar tem como esse npc trocar todas as box. tipo 50 ecence zard > 1 box zard 50 escence toise > 1 box toise tendeu o mesmo npc trocar varios itens por varias box. agradeço dmais a ajuda de vcs ae vlw galera. Foi mal, eu li depois tem como sem ser por Box, mas eu tô meio ocupado... ola amigo. pode ser por box sim amis como falei ae teria que o mesmo npc tipo pedir me de 50 escence zard e te do > uma box shiny charizard se me der 50 escence toise te do > uma box toise e assim por diante. tera uns 30 shiny ou mais pra ele fazer. desde ja agradeço a qquer ajuda vlw. Editado Outubro 14, 2015 por clebao666 Link para o comentário Compartilhar em outros sites More sharing options...
0 Bluester 205 Postado Outubro 14, 2015 Share Postado Outubro 14, 2015 acho que esse da certo sim vo testar aq vlw jaja posto se funciono. so como pedi la sera varios pokes mesmo que eu crie uma box pra cada shiny que eu quero trocar tem como esse npc trocar todas as box. tipo 50 ecence zard > 1 box zard 50 escence toise > 1 box toise tendeu o mesmo npc trocar varios itens por varias box. agradeço dmais a ajuda de vcs ae vlw galera. ola amigo. pode ser por box sim amis como falei ae teria que o mesmo npc tipo pedir me de 50 escence zard e te do > uma box shiny charizard se me der 50 escence toise te do > uma box toise e assim por diante. tera uns 30 shiny ou mais pra ele fazer. desde ja agradeço a qquer ajuda vlw. Testa o script que postei acima.Faltou o REP né ? rs, mas fico feliz em ter ajudado de alguma forma. Link para o comentário Compartilhar em outros sites More sharing options...
0 clebao666 6 Postado Outubro 14, 2015 Autor Share Postado Outubro 14, 2015 Testa o script que postei acima. testado e aprovado. script sem erro e funfando legau apenas teria que ser refeita pra o mesmo npc poder trocar mais itens diferentes por pokes diferentes. se puder me ajudar agradeço muito vlww ja dei rep++ Link para o comentário Compartilhar em outros sites More sharing options...
0 Bluester 205 Postado Outubro 14, 2015 Share Postado Outubro 14, 2015 testado e aprovado. script sem erro e funfando legau apenas teria que ser refeita pra o mesmo npc poder trocar mais itens diferentes por pokes diferentes. se puder me ajudar agradeço muito vlww ja dei rep++ Só adicionar mais boxes no script boox.lua, e trocar os itens de trocas e as falas do NPC ^^ Link para o comentário Compartilhar em outros sites More sharing options...
0 clebao666 6 Postado Outubro 14, 2015 Autor Share Postado Outubro 14, 2015 Só adicionar mais boxes no script boox.lua, e trocar os itens de trocas e as falas do NPC ^^ tipo man se nao entendeu . as box e de boas criar mais umas 200 o foda e enfia um npc pra cada troca de itens por box tendeu. eu queria um npc que o cara fala hi help yes se ele tive o item escence zard ele ganha uma box de shiny zard , ja se ele tiver por exenplo um escence toise ae o proprio npc da pra ele uma box de shiny toise. tendeu senao vo ter que criar um npc e uma box pra cada shiny que eu va por pra trocar e pretendo por todos do server. se souber me ajudar agradeço dmaissss vlw ae man. Link para o comentário Compartilhar em outros sites More sharing options...
0 Refe 320 Postado Outubro 14, 2015 Share Postado Outubro 14, 2015 tipo man se nao entendeu . as box e de boas criar mais umas 200 o foda e enfia um npc pra cada troca de itens por box tendeu. eu queria um npc que o cara fala hi help yes se ele tive o item escence zard ele ganha uma box de shiny zard , ja se ele tiver por exenplo um escence toise ae o proprio npc da pra ele uma box de shiny toise. tendeu senao vo ter que criar um npc e uma box pra cada shiny que eu va por pra trocar e pretendo por todos do server. se souber me ajudar agradeço dmaissss vlw ae man. local need = { {id = ID DAS ESSENCES, qt = 50}, --ID DAS ESSENCES ZARD, QUANTIDADE } local rewards = { {id = IDDABOX, qt = 1}, --charizard BOX } local need = { {id = ID DAS ESSENCES, qt = 50}, --ID DAS ESSENCES ZARD, QUANTIDADE {id = ID DAS ESSENCES2, qt = 50}, --ID DAS ESSENCES Blastoise, QUANTIDADE } local rewards = { {id = IDDABOX, qt = 1}, --charizard BOX {id = IDDABOX2, qt = 1}, --blastoise BOX } já tentou ? Link para o comentário Compartilhar em outros sites More sharing options...
0 clebao666 6 Postado Outubro 14, 2015 Autor Share Postado Outubro 14, 2015 local need = { {id = ID DAS ESSENCES, qt = 50}, --ID DAS ESSENCES ZARD, QUANTIDADE } local rewards = { {id = IDDABOX, qt = 1}, --charizard BOX } local need = { {id = ID DAS ESSENCES, qt = 50}, --ID DAS ESSENCES ZARD, QUANTIDADE {id = ID DAS ESSENCES2, qt = 50}, --ID DAS ESSENCES Blastoise, QUANTIDADE } local rewards = { {id = IDDABOX, qt = 1}, --charizard BOX {id = IDDABOX2, qt = 1}, --blastoise BOX } já tentou ? desse jeito ae se o cara tem apenas 50 de um item o npc ja da todas as box de uma ves que tao na parte de baixo no caso testei apenas duas do zard e toise e so tiro 50 das escences e ja foi dando as 2 box tem que mudar a script ae so nao sei como Link para o comentário Compartilhar em outros sites More sharing options...
0 zipter98 1101 Postado Outubro 15, 2015 Share Postado Outubro 15, 2015 (editado) local trade_pokes, options = { ["Shiny Charizard"] = {itemid = ID_do_item, count = quantidade}, ["Shiny Blastoise"] = {itemid = ID_do_item, count = quantidade}, }, {} for poke_name, trade_info in pairs(trade_pokes) do table.insert(options, poke_name.." - "..trade_info.count.."x "..getItemNameById(trade_info.itemid)) end 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 if msgcontains(msg:lower(), "help") or msgcontains(msg:lower(), "trade") then selfSay("I can trade the following pokemons for the subsequent items. Which one do you wanna buy?", cid) doPlayerPopupFYI(cid, "*** TRADEABLE POKEMONS ***\n\n"..table.concat(options, "\n")) talkState[talkUser] = 1 elseif talkState[talkUser] == 1 then local poke = trade_pokes[msg] if poke then if doPlayerRemoveItem(cid, poke.itemid, poke.count) then selfSay("It was a pleasure to make bussiness with you! Make a good use of your new "..msg..".", cid) addPokeToPlayer(cid, msg, 0, nil, "normal") talkState[talkUser] = 0 else selfSay("You do not have enough itens to buy this pokemon, sorry.", cid) end else selfSay("Sorry, you probably wrote this pokemon's name wrong or I don't sell it. Make sure you're typing it in case-sensitive.") end end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) Editado Outubro 15, 2015 por zipter98 Link para o comentário Compartilhar em outros sites More sharing options...
0 clebao666 6 Postado Outubro 16, 2015 Autor Share Postado Outubro 16, 2015 local trade_pokes, options = { ["Shiny Charizard"] = {itemid = ID_do_item, count = quantidade}, ["Shiny Blastoise"] = {itemid = ID_do_item, count = quantidade}, }, {} for poke_name, trade_info in pairs(trade_pokes) do table.insert(options, poke_name.." - "..trade_info.count.."x "..getItemNameById(trade_info.itemid)) end 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 if msgcontains(msg:lower(), "help") or msgcontains(msg:lower(), "trade") then selfSay("I can trade the following pokemons for the subsequent items. Which one do you wanna buy?", cid) doPlayerPopupFYI(cid, "*** TRADEABLE POKEMONS ***\n\n"..table.concat(options, "\n")) talkState[talkUser] = 1 elseif talkState[talkUser] == 1 then local poke = trade_pokes[msg] if poke then if doPlayerRemoveItem(cid, poke.itemid, poke.count) then selfSay("It was a pleasure to make bussiness with you! Make a good use of your new "..msg..".", cid) addPokeToPlayer(cid, msg, 0, nil, "normal") talkState[talkUser] = 0 else selfSay("You do not have enough itens to buy this pokemon, sorry.", cid) end else selfSay("Sorry, you probably wrote this pokemon's name wrong or I don't sell it. Make sure you're typing it in case-sensitive.") end end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) eaw zipter blz man. tipo nao entendi a script sua porq onde fica pra por o id dos itens que o npc pede e onde fica o id da box que o npc vai dar em troca do item. seria um npc so que trocaria itens por shiny box especificas uma pra cada shiny exemplo. se me der 50 pot of fire te dou uma shiny box de charizard se me der 50 ice clow te dou uma box de jynx tendeu se essa scrript que tu posto ae estiver assim ja peço desculpas pela minha falta de exp em script. senao ajuda eu ae man por favor vlw. s2 como sempre reputado por ajudar. Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
clebao666 6
ola galera!
gostaria de uma ajuda na criação de um npc que troca x item por 1 pokemon exemplo:
escence zard x 50 >shiny charizard
escence toise x 50 >shiny blastoise
estarei colocando uns 40 pokes nesse npc .
agradeço dmais a ajuda dos companheiros ae do forum. vlw
uso base cyan by senhor
Link para o comentário
Compartilhar em outros sites
20 respostass a esta questão
Posts Recomendados