Postado Agosto 28, 2014 10 anos Olá Galera! Bom dia. Vim aqui pedir uma ajudinha de vocês novamente . Bom, preciso de um npc de shop, que venderá items Premium em troca de um certo item. Resumindo, você irá comprar items nesse NPC só se tiver um certo item (id: 6527). Mas não seria um npc de Shopsystem normal, esse npc deverá vender os items só no dialogo, não no "Npc Trade". Ex: ~|NPC| Olá Player, eu vendo items Donate, diga "ofertas" para saber seus precos. ~|Player| Ofertas. ~|NPC| Eu vendo blessed ring, scale armor e royal helmet. Diga o que quer para saber seu valor. ~|Player| Blessed ring. ~|NPC| O blessed ring custa 5 VIP Coin, se deseja comprar diga "aceito". ~|Player| aceito. ~|NPC| Aqui esta seu item, aproveite ele. Bom, é basicamente isso, esse é um exemplo do dialogo. Agradeço desde já. Rep+ por quem me ajudar. Oi
Postado Agosto 28, 2014 10 anos acho que só pegar npc que vende alguma coisa, edita os id dos item e as frases.... Gente, não dou suporte via mp, caso queira ajuda crie um tópico no fórum!!! Ajudei? Clicar em gostar não vai te matar
Postado Agosto 28, 2014 10 anos Autor Não, esses npcs normais eles usam funções de moeda, e não de item, eles tiram moedas do player e dão o item, esse npc será de tirar item e dar item. Oi
Postado Agosto 28, 2014 10 anos Adicione troca.lua a pasta seu sever/data/npc/scripts --// 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 = { --item id....quantidade {id = 12579, qt = 1}, {id = 12580, qt = 1}, {id = 12581, qt = 1}, } local storage = 83497 local pokemon = "Aerodactyl" -- nome do poke ----- if msgcontains(string.lower(msg), 'help') or msgcontains(string.lower(msg), 'help') then if getPlayerStorageValue(cid, storage) == 1 then selfSay("você já completou minha quest!", cid) return true end --// selfSay("olá, você gostaría de trocar alguns itens e em troca eu dou um pokémon? os items necessaríos são {Old amber, Dome Fossil, Helix Fossil}!", cid) talkState[talkUser] = 2 return true elseif msgcontains(msg, 'yes') and talkState[talkUser] == 2 then if getPlayerItemCount(cid, need[1].id) < need[1].qt or getPlayerItemCount(cid, need[2].id) < need[2].qt or getPlayerItemCount(cid, need[3].id) < need [3].qt then selfSay("você não tem todos itens necessaríos que eu pedi, volte aqui quando tive-los todos!", cid) talkState[talkUser] = 0 return true end if not addPokeToPlayer(cid, pokemon, 0, -1, "normal", true) then selfSay("You don't have space in your bag or already are with 6 pokemons!! Back here when you 'fix' that!", cid) talkState[talkUser] = 0 return true end for i = 1, #need do doPlayerRemoveItem(cid, need.id, need.qt) end addPokeToPlayer(cid, pokemon, 0, 1, 'normal', true) selfSay("nossa muito bom, obrigado e faça um bom proveito do seu novo pokémon!", cid) setPlayerStorageValue(cid, storage, 1) talkState[talkUser] = 0 return true end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) Pode ser este ? só que dai vc edita... Editado Agosto 28, 2014 10 anos por oiuhygwueuho (veja o histórico de edições) Gente, não dou suporte via mp, caso queira ajuda crie um tópico no fórum!!! Ajudei? Clicar em gostar não vai te matar
Postado Agosto 28, 2014 10 anos Autor Algumas dessas funções não funcionam em meu servidor. E também onde estão os ids dos items que são necessários? Editado Agosto 28, 2014 10 anos por NathanAmaro (veja o histórico de edições) Oi
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.