Postado Julho 26, 2014 10 anos Ola mas uma vez galerinha do TK. Estou precisando de um NPC que troque major token (Editavel) por itens...exemplo: ItempriceID = [18423 ,1] Itens ID = [12360 ,1] - [iTEM ,COUNT] [Editavel] -- Item a ser recebido. [12360 ,1] -- Prismatic Legs -- Itens exemplos. [12360 ,1] -- Prismatic Helmet [12360 ,1] -- Gill Legs [12360 ,1] -- Gill Gugel [12360 ,1] -- Glow Wine [12360 ,1] -- Ironload stone ...... Que eu possa adicionar mas itens...REP+ para quem mim ajudar.
Postado Julho 26, 2014 10 anos tem esse aki. 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 items = { item1 = {2346, 2349}, -- item1 item que será pedido e que será dado na primeira troca item2 = {2033, 15515} -- item2 item que será pedido e que será dado na segunda troca } local counts = { count1 = {1, 1}, -- count1 quantidade que será pedido e que será dado na primeira troca count2 = {10, 1} -- count2 quantidade que será pedido e que será dado na segunda troca } 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, 'blue note') then selfSay('You want to swap '.. counts.count1[1] ..' '.. getItemNameById(items.item1[1]) ..' for '.. counts.count1[2] ..' '.. getItemNameById(items.item1[2]) ..'.',cid) talkState[talkUser] = 1 elseif talkState[talkUser] == 1 then if msgcontains(msg, 'yes') then if getPlayerItemCount(cid, items.item1[1]) >= counts.count1[1] then doPlayerRemoveItem(cid, items.item1[1], counts.count1[1]) doPlayerAddItem(cid, items.item1[2], counts.count1[2]) selfSay('You just swap '.. counts.count1[1] ..' '.. getItemNameById(items.item1[1]) ..' for '.. counts.count1[2] ..' '.. getItemNameById(items.item1[2]) ..'.', cid) talkState[talkUser] = 0 else selfSay('You need '.. counts.count1[1] ..' '.. getItemNameById(items.item1[1]) ..'.', cid) end else selSay('Ok then!', cid) talkState[talkUser] = 0 end elseif msgcontains(msg, 'bar of gold') then selfSay('You want to swap '.. counts.count2[1] ..' '.. getItemNameById(items.item2[1]) ..' for '.. counts.count2[2] ..' '.. getItemNameById(items.item2[2]) ..'.', cid) talkState[talkUser] = 2 elseif talkSate[talkUser] == 2 if msgcontains(msg, 'yes') then if getPlayerItemCount(cid, items.item2[1]) >= counts.count2[1] then doPlayerRemoveItem(cid, items.item2[1], counts.count2[1]) doPlayerAddItem(cid, items.item2[2], counts.count2[2]) selfSay('You just swap '.. counts.count2[1] ..' '.. getItemNameById(items.item2[1]) ..' for '.. counts.count2[2] ..' '.. getItemNameById(items.item2[2]) ..'.', cid) talkState[talkUser] = 0 else selfSay('You need '.. counts.count2[1] ..' '.. getItemNameById(items.item2[1]) ..'.', cid) end else selfSay('Ok then!', cid) talkState[talkUser] = 0 end end return TRUE end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new())
Postado Julho 26, 2014 10 anos Esse não serve infelizmente. "Lendas jamais voltam pois são apenas lendas. eu, eu sou real." Attr:// [GM] Eddy. 2013 ~ 2014 R.I.P O retorno da lenda....
Postado Julho 26, 2014 10 anos Autor @Macalo Cara obrigado por tentar ajuda mas essa script ja testei e não posso adicionar mas itens...ela não funciona pelo menos no meu servidor não funcionou (Baiak Vills)
Postado Julho 26, 2014 10 anos e esse aki. ja testou ? local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) 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 -- Config -- local configs = { FirstItemId = 2455, FirstItemCount = 5, SecondItemId = 2321, SecondItemCount = 1, isQuest = "false", questStorage = 17890, msgMeet = 'Você deseja trocar '..FirstItemCount .. ' '.. getItemName(FirstItemId) ..' por '.. SecondItemCount ..' '.. getItemName(SecondItemId) ..'?', msgQuestCompleted = "Você já fez essa quest.", msgQuestNotItem = "Voce não tem o item necessario.", } function npcTroca(cid, message, keywords, parameters, node) if(not npcHandler:isFocused(cid)) then return false end if (configs.isQuest == "true") then if (getPlayerStorageValue(configs.questStorage) <= 0) then if (getItemCount(cid, configs.FirstItemId) == configs.FirstItemCount) then doRemoveItem(configs.FirstItemId, config.FirstItemCount) doPlayerAddItem(cid, configs.SecondItemId, configs.SecondItemCount) else return doPlayerSendTextMessage(cid, 27, configs.msgQuestNotItem) end else return doPlayerSendTextMessage(cid, 27, configs.msgQuestCompleted) end else if (getItemCount(cid, configs.FirstItemId) == configs.FirstItemCount) then doRemoveItem(configs.FirstItemId, config.FirstItemCount) doPlayerAddItem(cid, configs.SecondItemId, configs.SecondItemCount) else return doPlayerSendTextMessage(cid, 27, configs.msgQuestNotItem) end end end itemTrade = keywordHandler:addKeyword({'offer'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = configs.msgMeet}) itemTrade:addChildKeyword({'yes'}, npcTroca, {}) itemTrade:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Alright then.', reset = true}) npcHandler:addModule(FocusModule:new())
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.