Vodkart 1515 Postado Março 26, 2012 Share Postado Março 26, 2012 (editado) lib/functions.lua function getItemsFromList(items) -- by vodka local str = '' if table.maxn(items) > 0 then for i = 1, table.maxn(items) do str = str .. items[i][2] .. ' ' .. getItemNameById(items[i][1]) if i ~= table.maxn(items) then str = str .. ', ' end end end return str end function doRemoveItemsFromList(cid,items) -- by vodka local count = 0 if table.maxn(items) > 0 then for i = 1, table.maxn(items) do if getPlayerItemCount(cid,items[i][1]) >= items[i][2] then count = count + 1 end end end if count == table.maxn(items) then for i = 1, table.maxn(items) do doPlayerRemoveItem(cid,items[i][1],items[i][2]) end else return false end return true end Data/NPC Mount Seller.xml <?xml version="1.0"?> <npc name="Mount Seller" script="data/npc/scripts/buymount.lua" walkinterval="50000" floorchange="0"> <health now="100" max="100"/> <look type="129" head="95" body="116" legs="121" feet="115" addons="3"/> <parameters> <parameter key="message_greet" value="Hello |PLAYERNAME|.I have many {mounts} to sell for you!" /> </parameters> </npc> Data/Npc/script buymount.lua 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 AddMount(cid, message, keywords, parameters, node) --by vodka if(not npcHandler:isFocused(cid)) then return false end if (isPlayerPremiumCallback == nil or isPlayerPremiumCallback(cid) == true or parameters.premium == false) then if(parameters.level ~= nil and getPlayerLevel(cid) < parameters.level) then npcHandler:say('You must reach level ' .. parameters.level .. ' to buy this mount.', cid) elseif canPlayerRideMount(cid, parameters.mountid) then npcHandler:say('you already have this mount!', cid) elseif not doRemoveItemsFromList(cid,parameters.items) then npcHandler:say('Sorry You need '..getItemsFromList(parameters.items)..' to buy this mount!', cid) else doPlayerAddMount(cid, parameters.mountid) npcHandler:say('Here is your mount!', cid) npcHandler:resetNpc() end else npcHandler:say('I can only allow premium players to buy this mount.', cid) end npcHandler:resetNpc() return true end local mounts = { {"widow queen", items = {{2124,1},{2393,2}}, mountid = 1, level = 10, premium = false}, {"racing bird", items = {{2494,1},{2393,2}}, mountid = 2, level = 15, premium = true}, {"mounts", text = "I sell these mounts: {widow queen},{racing bird},{war Bear},{black sheep},{midnight panther},{draptor},{titanica},{tin lizzard}.{blazebringer},{rapid boar},{stampor} or {undead cavebear}!"} } for i = 1, #mounts do local get = mounts[i] if type(get.items) == "table" then local node = keywordHandler:addKeyword({get[1]}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = "You want to buy the mount " .. get[1] .. " for "..getItemsFromList(get.items).." ?"}) node:addChildKeyword({"yes"}, AddMount, {items = get.items,mountid = get.mountid, level = get.level, premium = get.premium}) node:addChildKeyword({"no"}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = "Ok, then.", reset = true}) else keywordHandler:addKeyword({get[1]}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = get.text}) end end mounts = nil npcHandler:addModule(FocusModule:new()) configuração: local mounts = { {"widow queen", items = {{2124,1},{2393,2}}, mountid = 1, level = 10, premium = false}, {"racing bird", items = {{2494,1},{2393,2}}, mountid = 2, level = 15, premium = true}, {"mounts", text = "I sell these mounts: {widow queen},{racing bird},{war Bear},{black sheep},{midnight panther},{draptor},{titanica},{tin lizzard}.{blazebringer},{rapid boar},{stampor} or {undead cavebear}!"} } "nome da montaria" items = {} -- é os items que precisa ter trocar pela mount mountid -- é o id da montaria level -- level necessario para comprar premium -- se precisa ser premium para comprar text -- n precisa mexer,é para saber que montaria ele pode comprar,pode adicionar + nome na lista se quiser adicionando mount então por exemplo war bear: local mounts = { {"widow queen", items = {{2124,1},{2393,2}}, mountid = 1, level = 10, premium = false}, {"racing bird", items = {{2494,1},{2393,2}}, mountid = 2, level = 15, premium = true}, {"war bear", items = {{2123,2},{2124,1},{2173,1}}, mountid = 3, level = 20, premium = false}, {"mounts", text = "I sell these mounts: {widow queen},{racing bird},{war Bear},{black sheep},{midnight panther},{draptor},{titanica},{tin lizzard}.{blazebringer},{rapid boar},{stampor} or {undead cavebear}!"} } Editado Março 26, 2012 por Vodkart Link para o comentário https://xtibia.com/forum/topic/183233-npc-mount-seller-por-items-87/ Compartilhar em outros sites More sharing options...
alissonfgp 98 Postado Março 27, 2012 Share Postado Março 27, 2012 Vlwss mto bom mano REP+ Link para o comentário https://xtibia.com/forum/topic/183233-npc-mount-seller-por-items-87/#findComment-1225842 Compartilhar em outros sites More sharing options...
Vodkart 1515 Postado Março 28, 2012 Autor Share Postado Março 28, 2012 De nada, qualquer dúvida só postar Link para o comentário https://xtibia.com/forum/topic/183233-npc-mount-seller-por-items-87/#findComment-1226682 Compartilhar em outros sites More sharing options...
Beeki 284 Postado Março 31, 2012 Share Postado Março 31, 2012 Ótimo script Vodkart espero que continue sempre contribuindo com a Comunidade, até Link para o comentário https://xtibia.com/forum/topic/183233-npc-mount-seller-por-items-87/#findComment-1228669 Compartilhar em outros sites More sharing options...
conolly 1 Postado Abril 6, 2012 Share Postado Abril 6, 2012 Vod nao teria como por algumas montarias do 8.70 no 8.60 ? Link para o comentário https://xtibia.com/forum/topic/183233-npc-mount-seller-por-items-87/#findComment-1233479 Compartilhar em outros sites More sharing options...
Beeki 284 Postado Abril 6, 2012 Share Postado Abril 6, 2012 Vod nao teria como por algumas montarias do 8.70 no 8.60 ? Irei responder pelo Vodkart, não vou dizer que isso é impossivel, mais é bem dificil tem que ser um ótimo programador não só mexer no server mais também saber editar o cliente, até Link para o comentário https://xtibia.com/forum/topic/183233-npc-mount-seller-por-items-87/#findComment-1233497 Compartilhar em outros sites More sharing options...
PsyMcKenzie 150 Postado Abril 23, 2012 Share Postado Abril 23, 2012 Ei Vodkart teria como colocar pra invés do NPC te dar a montaria, Você comprar o Item pra domar a mount? Abraço!! Link para o comentário https://xtibia.com/forum/topic/183233-npc-mount-seller-por-items-87/#findComment-1247276 Compartilhar em outros sites More sharing options...
Posts Recomendados