Ir para conteúdo
  • Cadastre-se

Posts Recomendados

Coloquei em meu Servidor um NPC que vende montarias, muito parecido com o sistema de addon!

Adaptei e criei o NPC que da  mount dos Horses (cavalos), Aqui surge o problema

Atualmente o NPC oferece ao player as 3 mounts dos Rented Horses.

Rented_Horse.gif  Rented_Horse_Thais.gif  Rented_Horse_Grey.gif

O que eu quero: Que o player so possa comprar uma vez a montaria e quando comprar venha um dos tres horses aleatoriamente.



Caso não entenderam podem me perguntar explico melhor


segue o Script que eu uso.

 

 

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
 
npcHandler:setMessage(MESSAGE_GREET, "Ola |PLAYERNAME|. Voce pode me ajudar? Se voce me ajudar, vou te recompensar com lindas montarias! Basta dizer {mounts} ou {ajuda} se voce não sabe o que fazer.")
 
function playerBuyMountNPC(cid, message, keywords, parameters, node)
if(not npcHandler:isFocused(cid)) then
return false
end
if (parameters.confirm ~= true) and (parameters.decline ~= true) then
if(getPlayerPremiumDays(cid) >= 1) and (parameters.premium == true) then
npcHandler:say('Desculpe, mas esta montaria e apenas para jogadores premium!', cid)
npcHandler:resetNpc()
return true
end
if (getPlayerStorageValue(cid, parameters.storageID) ~= -1) then
npcHandler:say('Voce ja tem esta montaria!', cid)
npcHandler:resetNpc()
return true
end
local itemsTable = parameters.items
local items_list = ''
if table.maxn(itemsTable) > 0 then
for i = 1, table.maxn(itemsTable) do
local item = itemsTable
items_list = items_list .. item[2] .. ' ' .. getItemNameById(item[1])
if i ~= table.maxn(itemsTable) then
items_list = items_list .. ', '
end
end
end
local text = ''
if (parameters.cost > 0) and table.maxn(parameters.items) then
text = items_list .. ' and ' .. parameters.cost .. ' gp'
elseif (parameters.cost > 0) then
text = parameters.cost .. ' gp'
elseif table.maxn(parameters.items) then
text = items_list
end
npcHandler:say('Trouxeste-me ' .. text .. ' por ' .. keywords[1] .. '?', cid)
return true
elseif (parameters.confirm == true) then
local mountNode = node:getParent()
local mountinfo = mountNode:getParameters()
local items_number = 0
if table.maxn(mountinfo.items) > 0 then
for i = 1, table.maxn(mountinfo.items) do
local item = mountinfo.items
if (getPlayerItemCount(cid,item[1]) >= item[2]) then
items_number = items_number + 1
end
end
end
if(getPlayerMoney(cid) >= mountinfo.cost) and (items_number == table.maxn(mountinfo.items)) then
doPlayerRemoveMoney(cid, mountinfo.cost)
if table.maxn(mountinfo.items) > 0 then
for i = 1, table.maxn(mountinfo.items) do
local item = mountinfo.items
doPlayerRemoveItem(cid,item[1],item[2])
end
end
doPlayerAddMount(cid, mountinfo.mountid)
setPlayerStorageValue(cid,mountinfo.storageID,1)
npcHandler:say('Aqui esta.', cid)
else
npcHandler:say('Voce nao tem os items necessarios ou dinheiro!', cid)
end
npcHandler:resetNpc()
return true
elseif (parameters.decline == true) then
npcHandler:say('Este nao lhe interessa? Experimente outro!', cid)
npcHandler:resetNpc()
return true
end
return false
end
 
local noNode = KeywordNode:new({'no'}, playerBuyMountNPC, {decline = true})
local yesNode = KeywordNode:new({'yes'}, playerBuyMountNPC, {confirm = true})
 
-- Rented Horse (done)(custom)
local mount_node = keywordHandler:addKeyword({'rented horse 1'}, playerBuyMountNPC, {premium = false, cost = 10000, items = {}, mountid = 22, storageID = 10059})
mount_node:addChildKeywordNode(yesNode)
mount_node:addChildKeywordNode(noNode)
local mount_node = keywordHandler:addKeyword({'rented horse 2'}, playerBuyMountNPC, {premium = false, cost = 10000, items = {}, mountid = 25, storageID = 10060})
mount_node:addChildKeywordNode(yesNode)
mount_node:addChildKeywordNode(noNode)
local mount_node = keywordHandler:addKeyword({'rented horse 3'}, playerBuyMountNPC, {premium = false, cost = 10000, items = {}, mountid = 26, storageID = 10061})
mount_node:addChildKeywordNode(yesNode)
mount_node:addChildKeywordNode(noNode)
 
 
keywordHandler:addKeyword({'mounts'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Posso te dar {blazebringer}, {donkey}, {rented horse} de 1 a 3, {shadow draptor}, {stampor}, {uniwheel} e a {tin lizzard}.'})
keywordHandler:addKeyword({'ajuda'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Para ter a montaria fale um dos nomes da lista (falando {mounts}) e consiga os items nescessários.'})
keywordHandler:addKeyword({'rented horse'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Existem 3 tipos de rented horse, para compra-los é {rented horse 1}, {rented horse 2} e {rented horse 3} eles são por tempo ilimitado.'})
 
npcHandler:addModule(FocusModule:new())

 

Meus Trabalhos:

 

*Spell Rajada de Flechas: http://migre.me/eI3aE

 

 

 

 

gif1705.gif

 

Link para o post
Compartilhar em outros sites

@up, Alguém pelo menos olha meu tópico aiii nenhuma visualização...

Meus Trabalhos:

 

*Spell Rajada de Flechas: http://migre.me/eI3aE

 

 

 

 

gif1705.gif

 

Link para o post
Compartilhar em outros sites

Eu nao to no computador, depois vou dar uma olhada e vejo se consigo te dar uma ajuda mano.

Mas ve se nao e porque todas as keywords de rented horse nao se confundem com a ketword rented horse... Eu nao mexo muito com NPCs entao nao entendi algumas funcoes... Depois que eu estudar mais eu posso ver se consigo te ajudar!

[TalkAction] Comando !stamina e stamina potion.

http://www.tibiaking.com/forum/topic/38953-talkaction-stamina-recupera-stamina-e-d%C3%A1-uma-potion-de-stamina/

Krell Gaming, OTServer estará ONLINE em breve!

Training Offline

Tasks, Mounts, Addons, Outfits

Quests baú, Quests lógicas, Quests misteriosas

Mistery Box (Itens Aleatórios), Upgrade your Itens(Melhorar os atributos dos itens), Frag Remover, Monster Cards

Stamina System e Stamina Potion

Castle com sistema próprio

Área Free com variadas e equilibradas hunts.

Mapa RPG porém equilibrado às rates do servidor.

Rates Variadas (Stages que podem variar de exp alta pra baixa, não baixando sempre como a maioria)

Drop rate: variando entre 3 ou mais x

Skills e ML: 20/10

Houses apenas para premium accounts.

Premium Account = 15 reais um mês.

Aproveite!

Link para o post
Compartilhar em outros sites

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.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

  • Conteúdo Similar

    • Por Bruxo Ots
      Fala queridos, estarei compartilhando o npc de addon que ja é bem antigo, porém não achei em local nenhum atualizado, esse esta lindo de bonito, acredito que seja destinado a servidores baiak ou qualquer outro tipo de server.
      Ambos os NPC'S estão por gold, e as storages são em sequencia pra facilitar a vida.
       
      Os codigos estão em spoiler pra não pesar, mas caso queiram se adiantar no fim do post tem o link do github.
      Imagem meramente Ilustrativa:
       
      Script Do addon:
       
      Montarias
       
       
       
      Sempre que atualizar os addons e mounts no global estarei adicionando aos NPC'S.
       
       
      GITHUB
       
       
           Creditos
      Comedinha (scripts das montarias) Zbizu (acredito que tenha atualizado para 1.1) E ao criador do npc Varkhal, realmente não faço ideia de quem seja.  
       
       
       
       
    • Por Thiago Virtuoso
      Ola galera, como podem ver eu estou precisando de um srcript que se o player estiver usando um certo outfit, ele não poderá usar mounts.
    • Por Rafaelk36
      Quero um script que ao clicar no item exemplo:
      um book clico e ele da um doCreatureSay(cid, "", TALKTYPE_ORANGE_1) aleatorio (configuravel ava)
      eu sei que é simples mas não sei usar math.random
       
    • Por Pedriinz
      Depois da atualização da TFS, esses scripts ficaram assim:
       
      [Warning - Event::checkScript] Can not load script: scripts/alladdons.lua
      data/talkactions/scripts/alladdons.lua:1: unexpected symbol near '�'
      [Warning - Event::checkScript] Can not load script: scripts/allmounts.lua
      data/talkactions/scripts/allmounts.lua:1: unexpected symbol near '�'
       
       
      Alguem poderia ajudar ?
       
      alladddons.lua
      function onSay(cid, words, param) local femaleOutfits = { ["citizen"]={136}, ["hunter"]={137}, ["knight"]={139}, ["noblewoman"]={140}, ["warrior"]={142}, ["barbarian"]={147}, ["druid"]={148}, ["wizard"]={149}, ["oriental"]={150}, ["pirate"]={155}, ["assassin"]={156}, ["beggar"]={157}, ["shaman"]={158}, ["norsewoman"]={252}, ["nightmare"]={269}, ["jester"]={270}, ["brotherhood"]={279}, ["demonhunter"]={288}, ["yalaharian"]={324}, ["warmaster"]={336},["wayfarer"]={366}, ["afflicted"]={431}, ["elementalist"]={433}, ["deepling"]={464}, ["insectoid"]={466}, ["red baron"]={471}, ["crystal warlord"]={513}, ["soil guardian"]={514}, ["demon"]={542} } local maleOutfits = { ["citizen"]={128}, ["hunter"]={129}, ["knight"]={131}, ["nobleman"]={132}, ["warrior"]={134}, ["barbarian"]={143}, ["druid"]={144}, ["wizard"]={145}, ["oriental"]={146}, ["pirate"]={151}, ["assassin"]={152}, ["beggar"]={153}, ["shaman"]={154}, ["norsewoman"]={251}, ["nightmare"]={268}, ["jester"]={273}, ["brotherhood"]={278}, ["demonhunter"]={289}, ["yalaharian"]={325}, ["warmaster"]={335}, ["wayfarer"]={367}, ["afflicted"]={430}, ["elementalist"]={432}, ["deepling"]={463}, ["insectoid"]={465}, ["red baron"]={472}, ["crystal warlord"]={512}, ["soil guardian"]={516},["demon"]={541} } local player, param = Player(cid), string.lower(param) local addondoll_id = 9693 if player:getItemCount(addondoll_id) > 0 then if param ~= "" and maleOutfits[param] and femaleOutfits[param] then local outfit = player:getSex() == 0 and femaleOutfits[param][1] or maleOutfits[param][1] if not player:hasOutfit(outfit, 3) then player:removeItem(addondoll_id, 1) player:sendTextMessage(MESSAGE_INFO_DESCR, "Seu Addon full foi adicionado!") Position(getThingPos(cid)):sendMagicEffect(CONST_ME_GIFT_WRAPS) player:addOutfitAddon(outfit, 3) else player:sendTextMessage(MESSAGE_INFO_DESCR, "Voce ja tem este addon") end else player:sendTextMessage(MESSAGE_INFO_DESCR, "Digite novamente, algo esta errado!") end else player:sendTextMessage(MESSAGE_INFO_DESCR, "Voce nao tem addon doll!") end end allmounts.lua
      function onSay(cid, words, param) local table = { -- ["mount"] = {price = x, id = x}, ["black sheep"] = {price = 0, id = 4}, ["crystal wolf"] = {price = 0, id = 16}, ["draptor"] = {price = 0, id = 6}, ["dromedary"] = {price = 0, id = 20}, ["gnarlhound"] = {price = 0, id = 32}, ["hellgrip"] = {price = 0, id = 39}, ["kingly deer"] = {price = 0, id = 18}, ["lady bug"] = {price = 0, id = 27}, ["manta ray"] = {price = 0, id = 28}, ["midnight panther"] = {price = 0, id = 5}, ["racing bird"] = {price = 0, id = 2}, ["rapid boar"] = {price = 0, id = 10}, ["scorpion king"] = {price = 0, id = 21}, ["panda"] = {price = 0, id = 19}, ["tiger slug"] = {price = 0, id = 14}, ["tin lizzard"] = {price = 0, id = 8}, ["titanica"] = {price = 0, id = 7}, ["uniwheel"] = {price = 0, id = 15}, ["widow queen"] = {price = 0, id = 1} } local player, param = Player(cid), string.lower(param) local mountdoll_id = 13030 -- id do addon doll local t = table[param] if player:getItemCount(mountdoll_id) > 0 then if param ~= "" and t then if not player:hasMount(t.id) then player:sendTextMessage(MESSAGE_INFO_DESCR, "Sua mount foi adicionada!") player:removeItem(mountdoll_id, 1) Position(getThingPos(cid)):sendMagicEffect(CONST_ME_GIFT_WRAPS) player:addMount(t.id) else player:sendTextMessage(MESSAGE_INFO_DESCR, "Voce ja tem esta mount.") end else player:sendTextMessage(MESSAGE_INFO_DESCR, "Digite novamente, algo está errado!") end else player:sendTextMessage(MESSAGE_INFO_DESCR, "Voce não tem um mount doll!") end end
    • Por Tomaxx
      Olá Amigos estou com uma duvida já vi em alguns server no site Gesior a venda a quela mount ou aquela addon não queria mount doll ou addon doll exemplo quero por a venda a Mount (Dragonling) como faço ?
       
      ou o Outfits (Beastmaster) como faço ?
       
       
       
       
      VALENDDO REP ><
       
       
       
      Solução > http://www.tibiaking.com/forum/topic/50629-addonmount-para-shopsystem-por-storage/
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo