Postado Setembro 20, 2017 7 anos @Nogard Cara peguei um script seu que achei muito interessante para poder colocar no final de uma quest de meu otserv...porém no seu script o npc fazia a troca de apenas 2 itens e para minha quest seria nescessário ele trocar 6 itens então eu sem entender nada de programação... tentei modifica para ele troca 6 X item por outros 6 X item igualzinho o seu apenas almentei o tanto de itens e acabo que deu errado xD.. fica dando um erro quando inicia o servidor e o NPC não aparece. Você poderia consertar a burrada que eu fis e deixa de acordo com oque tentei fazer? O script ja esta com todas as ids dos itens que sera usado para trocar por outros itens so precisava fazer da certo. O erro que da e o seguinte: [Error - LuaInterface::loadFile] data/npc/scripts/upgradeitems.lua:134: 'end' expected (to close 'if' at line 24) near '<eof>' [20/9/2017 4:41:29] [Warning - NpcEvents::NpcEvents] Cannot load script: data/npc/scripts/upgradeitems.lua [20/9/2017 4:41:29] data/npc/scripts/upgradeitems.lua:134: 'end' expected (to close 'if' at line 24) near '<eof>' e o script fico assim: 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 function creatureSayCallback(cid, type, msg) if(not npcHandler:isFocused(cid)) then return false end local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid local swords = getPlayerWeapon(cid) local pos = getPlayerLookPos(cid) local valuegoldningot = getPlayerItemCount(cid, 9971) local valuephoeniegg = getPlayerItemCount(cid, 2328) if(msgcontains(msg, 'melhorar')) then if (swords.itemid == 0) then selfSay ('Voce nao esta empunhando nenhuma arma no momento', cid) else if (swords.itemid == 2342) then selfSay ('Oh, entao voce carrega um Helmet of the ancients com voce, bom helmet.. Posso fazer uma melhoria nele, por 30 phoenix egg e 90kk {ok}?', cid) else if (swords.itemid == 8865) then selfSay ('Hm... Vejamos, entao voce empunha uma Dark Lord cape, com o material certo, posso transforma-la em uma armadura muito melhor. Tenha 50 phoenix egg, e a quantia de 100kk, {ok}?', cid) else if (swords.itemid == 8888) then selfSay ('Hm... Vejamos, entao voce empunha uma Archer armor, com o material certo, posso transforma-la em uma armadura muito melhor. Tenha 50 phoenix egg, e a quantia de 100kk, {ok}?', cid) else if (swords.itemid == 8883) then selfSay ('Hm... Oh, Wimdborn Colossu armor...Admiravel, com o material certo, posso transforma-la em uma armadura ainda melhor. Tenha 50 phoenix egg, e a quantia de 100kk, {ok}?', cid) else if (swords.itemid == 7462) then selfSay ('Oh, Ragnir Helmet...Havia tempo que nao via um desses, pois bem, posso transforma-la em algo do seu interesse. Tenha 30 phoenix egg, e a quantia de 90kk, {ok}?', cid) else if (swords.itemid == 5924) then selfSay ('O meu deus, isso e uma sucata...Vamo la, acho que posso fazer algo por voce..quer melhora-lo? Tenha 30 phoenix egg, e a quantia de 90kk, {ok}?', cid) end end end -------- --------------------------------------------------------- if (msgcontains(msg, 'ok')) then if (swords.itemid == 0) then selfSay('Voce nao esta portando nenhum item de upgrade no momento', cid) end if (swords.itemid == 2342) then if getPlayerItemCount(cid, 2328) <= 30 or getPlayerItemCount(cid, 9971) <= 90 then selfSay('Voce nao tem o material necessario. Você tem '.. valuegoldingot ..' Gold Ingots, e '.. valuephoenixegg .. ' Phoenix Eggs, Eu preciso de 90 gold ingot e 30 phoenix egg.', cid) else doPlayerRemoveItem(cid, 2342, 1) --- 'Item 2' doPlayerRemoveItem(cid, 2328, 30) --- Aqui é feita a remoção dos items necessários. (30 phoenix egg) doPlayerRemoveItem(cid, 9971, 90) --- Aqui é feita a remoção dos items necessários. (90 gold ingot) doSendMagicEffect(pos, 36) doCreateItem(5903, 1, pos) selfSay ('O seu helmet foi melhorad0, a transformei em um Ferumbras Hat, Porém nada dura para sempre...!', cid) end end if (swords.itemid == 8865) then if getPlayerItemCount(cid, 2328) <= 50 or getPlayerItemCount(cid, 9971) <= 100 then selfSay('Voce nao tem o material necessario. Você tem '.. valuegoldingot ..' Gold Ingots, e '.. valuephoenixegg .. ' Phoenix Eggs, Eu preciso de 100 gold ingot e 50 phoenix egg.', cid) else doPlayerRemoveItem(cid, 8865, 1) --- 'Item 2' doPlayerRemoveItem(cid, 2328, 50) --- Aqui é feita a remoção dos items necessários. (30 phoenix egg) doPlayerRemoveItem(cid, 9971, 100) --- Aqui é feita a remoção dos items necessários. (90 gold ingot) doSendMagicEffect(pos, 36) doCreateItem(8890, 1, pos) selfSay ('O sua Robe foi melhorada, a transformei em uma robe of the underworld, Porem nada dura para sempre...!', cid) end end if (swords.itemid == 8888) then if getPlayerItemCount(cid, 2328) <= 50 or getPlayerItemCount(cid, 9971) <= 100 then selfSay('Voce nao tem o material necessario. Você tem '.. valuegoldingot ..' Gold Ingots, e '.. valuephoenixegg .. ' Phoenix Eggs, Eu preciso de 100 gold ingot e 50 phoenix egg.', cid) else doPlayerRemoveItem(cid, 8888, 1) --- 'Item 2' doPlayerRemoveItem(cid, 2328, 50) --- Aqui é feita a remoção dos items necessários. (30 phoenix egg) doPlayerRemoveItem(cid, 9971, 100) --- Aqui é feita a remoção dos items necessários. (90 gold ingot) doSendMagicEffect(pos, 36) doCreateItem(2500, 1, pos) selfSay ('O sua Armadura foi melhorada, a transformei em uma Amazon Armor, Porem nada dura para sempre...!', cid) end end if (swords.itemid == 8883) then if getPlayerItemCount(cid, 2328) <= 50 or getPlayerItemCount(cid, 9971) <= 100 then selfSay('Voce nao tem o material necessario. Você tem '.. valuegoldingot ..' Gold Ingots, e '.. valuephoenixegg .. ' Phoenix Eggs, Eu preciso de 100 gold ingot e 50 phoenix egg.', cid) else doPlayerRemoveItem(cid, 8883, 1) --- 'Item 2' doPlayerRemoveItem(cid, 2328, 50) --- Aqui é feita a remoção dos items necessários. (30 phoenix egg) doPlayerRemoveItem(cid, 9971, 100) --- Aqui é feita a remoção dos items necessários. (90 gold ingot) doSendMagicEffect(pos, 36) doCreateItem(2503, 1, pos) selfSay ('O sua Armadura foi melhorada, a transformei em uma Dwarven Armor, Porem nada dura para sempre...!', cid) end end if (swords.itemid == 5924) then if getPlayerItemCount(cid, 2328) <= 30 or getPlayerItemCount(cid, 9971) <= 90 then selfSay('Voce nao tem o material necessario. Voce tem '.. valuegoldingot ..' Gold Ingots, e '.. valuephoenixegg .. ' Phoenix Eggs, Eu preciso de 90 gold ingot e 30 phoenix egg.', cid) else doPlayerRemoveItem(cid, 5924, 1) --- 'Item 2' doPlayerRemoveItem(cid, 2328, 30) --- Aqui é feita a remoção dos items necessários. (30 phoenix egg) doPlayerRemoveItem(cid, 9971, 90) --- Aqui é feita a remoção dos items necessários. (90 gold ingot) doSendMagicEffect(pos, 36) doCreateItem(2499, 1, pos) selfSay ('O sua sucata foi melhorada, a transformei em um Amazon helmet, Porem nada dura para sempre...!', cid) end end if (swords.itemid == 7462) then if getPlayerItemCount(cid, 2328) <= 30 or getPlayerItemCount(cid, 9971) <= 90 then selfSay('Voce nao tem o material necessario. Voce tem '.. valuegoldingot ..' Gold Ingots, e '.. valuephoenixegg .. ' Phoenix Eggs, Eu preciso de 90 gold ingot e 30 phoenix egg.', cid) else doPlayerRemoveItem(cid, 7462, 1) --- 'Item 2' doPlayerRemoveItem(cid, 2328, 30) --- Aqui é feita a remoção dos items necessários. (30 phoenix egg) doPlayerRemoveItem(cid, 9971, 90) --- Aqui é feita a remoção dos items necessários. (90 gold ingot) doSendMagicEffect(pos, 36) doCreateItem(2502, 1, pos) selfSay ('O seu helmet foi melhorad0, a transformei em um Dwarven Helmet, Porem nada dura para sempre...!', cid) end end end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) Editado Setembro 20, 2017 7 anos por Vim Rusha (veja o histórico de edições)
Postado Setembro 20, 2017 7 anos Autor 5 horas atrás, victor4312 disse: 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 talkState = {} local talkUser = NPCHANDLER_CONVbehavior == CONVERSATION_DEFAULT and 0 or cid local shopWindow = {} local moeda = 6527 -- id do item o moeda que ele vai pedir local t = { [8981] = {price = 500}, id do item e o preço [7443] = {price = 700}, [7440] = {price = 300}, [11250] = {price = 400}, [5468] = {price = 350}, [2346] = {price = 200} } local onBuy = function(cid, item, subType, amount, ignoreCap, inBackpacks) if t[item] and not doPlayerRemoveItem(cid, moeda, t[item].price) then selfSay("You don't have "..t[item].price.." "..getItemNameById(moeda), cid) else doPlayerAddItem(cid, item) selfSay("Here are you.", cid) end return true end if (msgcontains(msg, 'trade') or msgcontains(msg, 'TRADE'))then for var, ret in pairs(t) do table.insert(shopWindow, {id = var, subType = 0, buy = ret.price, sell = 0, name = getItemNameById(var)}) end openShopWindow(cid, shopWindow, onBuy, onSell) end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) eu n quero um npc que vende itens tipo aquele script que eu mostrei ali n é de comprar item de npc Você precisaria ter na bp 30 phoenix egg(configurável) + 90 gold ingot (configurável)+ um helmet (configurável) para trocar por um outro helmet evoluído que seria o ferumbras Hat entendeu? @Nogard será que tu não conseguiria ajeitar o script pra min ?
Postado Setembro 20, 2017 7 anos Autor 2 minutos atrás, victor4312 disse: não consigo adaptar mas vou verificar acho que tenho u script parecido aqui Eu usei esse script aqui eu queria igualzinho a esse só que em vez de trocar apenas 2 itens precisava trocar 6
Postado Setembro 21, 2017 7 anos Solução @Vim Rusha Dá uma olhada: Contato: Email: [email protected] Discord: Dwarfer#2715
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.