laravita 4 Postado Agosto 9, 2011 Share Postado Agosto 9, 2011 Queria um npc que venda um item por outro, exemplo.O npc vende uma dsm por 5 red gem, ou um crusader por 10 diamonds. Link para o comentário Compartilhar em outros sites More sharing options...
kmmyrawr 6 Postado Agosto 9, 2011 Share Postado Agosto 9, 2011 (editado) Exemplo: Editando o NPC Oldrak: 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 creatureSayCallback(cid, type, msg) if(not npcHandler:isFocused(cid)) then return false end --------------------------------------------------------------------------------- ATÉ AQUI NÃO MODIFIQUE local talkUser = NPCHANDLER_CONVbehavior == CONVERSATION_DEFAULT and 0 or cid if msgcontains(msg, 'dragon scale mail') then ---------------------- NOME DO ITEM QUE VOCE QUER VENDER selfSay('Do you want to buy a Dragon Scale Mail from me?', cid) --- PERGUNTA talkState[talkUser] = 1 elseif msgcontains(msg, 'yes') and talkState[talkUser] == 1 then local qntd = XXX ------------------------------------------------- QUANTIDADE DO DETERMINADO ITEM local itemid = XXXX ---------------------------------------------- ID DO ITEM if getPlayerItemCount(cid, itemid) > qnt then selfSay('Voce comprou TAL item!', cid) ----------- CONFIRMAÇAO DA COMPRA doPlayerRemoveItem(cid, itemid, qntd) doPlayerAddItem(cid, YYYY, 1) -------------------- ID DO ITEM QUE RECEBERA talkState[talkUser] = 0 else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você precisa de "..qnt.." "..getItemNameById(itemid).." para comprar.") end return TRUE end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) Veja o que deseja modificar e pronto Editado Agosto 9, 2011 por Kmmy Link para o comentário Compartilhar em outros sites More sharing options...
laravita 4 Postado Agosto 9, 2011 Autor Share Postado Agosto 9, 2011 Cara deu erro aki disse que tem um valor errado na linha 38, algo assim dis que ela tenque fechar a linha 10 com end. Link para o comentário Compartilhar em outros sites More sharing options...
Antharaz 93 Postado Agosto 9, 2011 Share Postado Agosto 9, 2011 (editado) seria melhor fazer um com tables fica mais fácil configurar, botei o end onde precisava: 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 creatureSayCallback(cid, type, msg) if(not npcHandler:isFocused(cid)) then return false end --------------------------------------------------------------------------------- ATÉ AQUI NÃO MODIFIQUE local talkUser = NPCHANDLER_CONVbehavior == CONVERSATION_DEFAULT and 0 or cid if msgcontains(msg, 'dragon scale mail') then ---------------------- NOME DO ITEM QUE VOCE QUER VENDER selfSay('Do you want to buy a Dragon Scale Mail from me?', cid) --- PERGUNTA talkState[talkUser] = 1 elseif msgcontains(msg, 'yes') and talkState[talkUser] == 1 then local qntd = XXX ------------------------------------------------- QUANTIDADE DO DETERMINADO ITEM local itemid = XXXX ---------------------------------------------- ID DO ITEM if getPlayerItemCount(cid, itemid) >= qnt then selfSay('Voce comprou TAL item!', cid) ----------- CONFIRMAÇAO DA COMPRA doPlayerRemoveItem(cid, itemid, qntd) doPlayerAddItem(cid, YYYY, 1) -------------------- ID DO ITEM QUE RECEBERA talkState[talkUser] = 0 else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você precisa de "..qnt.." "..getItemNameById(itemid).." para comprar.") end end return TRUE end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) Editado Agosto 9, 2011 por Antharaz Link para o comentário Compartilhar em outros sites More sharing options...
kmmyrawr 6 Postado Agosto 9, 2011 Share Postado Agosto 9, 2011 (editado) Só esqueceu de arrumar a linha 38 .-. 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 creatureSayCallback(cid, type, msg) if(not npcHandler:isFocused(cid)) then return false end --------------------------------------------------------------------------------- ATÉ AQUI NÃO MODIFIQUE local talkUser = NPCHANDLER_CONVbehavior == CONVERSATION_DEFAULT and 0 or cid if msgcontains(msg, 'dragon scale mail') then ---------------------- NOME DO ITEM QUE VOCE QUER VENDER selfSay('Do you want to buy a Dragon Scale Mail from me?', cid) --- PERGUNTA talkState[talkUser] = 1 elseif msgcontains(msg, 'yes') and talkState[talkUser] == 1 then local qntd = XXX ------------------------------------------------- QUANTIDADE DO DETERMINADO ITEM local itemid = XXXX ---------------------------------------------- ID DO ITEM if getPlayerItemCount(cid, itemid) >= qnt then selfSay('Voce comprou TAL item!', cid) ----------- CONFIRMAÇAO DA COMPRA doPlayerRemoveItem(cid, itemid, qntd) doPlayerAddItem(cid, YYYY, 1) -------------------- ID DO ITEM QUE RECEBERA talkState[talkUser] = 0 else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você precisa de "..qnt.." "..getItemNameById(itemid).." para comprar.") end end return TRUE end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) Editado Agosto 9, 2011 por Kmmy Link para o comentário Compartilhar em outros sites More sharing options...
laravita 4 Postado Agosto 10, 2011 Autor Share Postado Agosto 10, 2011 nao deucerto aki, eu falo hi e ele nao fas nada só anda, mas vo da rep+ pra vcs , oq vale é a intençao. Link para o comentário Compartilhar em outros sites More sharing options...
Posts Recomendados