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.
Postado em agosto 09, 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.
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
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.
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())
Atenciosamente,
Antharaz
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)
nao deucerto aki, eu falo hi e ele nao fas nada só anda, mas vo da rep+ pra vcs , oq vale é a intençao.