Ir para conteúdo
  • Cadastre-se

Posts Recomendados

E ae galera, não sei se eta no local certo.

Eu queria a script de um npc que você possa alugar uma mount por um certo numero e coins, valendo rep+

Web Master 100%

Scripter 20%

Spriter 20%

Mapper 5%

Hoster 0%

Link para o post
Compartilhar em outros sites

Créditos: Vodkart

Em Mods:

AluguelMount.xml


<?xml version="1.0" encoding="UTF-8"?> 

<mod name="Aluguel Mounts" version="1.0" author="Vodkart" contact="#####.com" enabled="yes"> 

<config name="aluguel_func"><![CDATA[

Aluguel_mounts = {

["war horse"] = {price = 10000, days = 2, mountid = 17, level = 10, premium = false, storage = 500561},

["fire war horse"] = {price = 30000, days = 1, mountid = 23, level = 20, premium = false, storage = 500562},

["sandstone scorpion"] = {price = 50000, days = 1, mountid = 21, level = 30, premium = true, storage = 500563}

}

function doRemovePlayerMount(cid, mountId)

doPlayerRemoveMount(cid, mountId)

return doCreatureChangeOutfit(cid,{lookType = getCreatureOutfit(cid).lookType, lookHead =  getCreatureOutfit(cid).lookHead, lookBody = getCreatureOutfit(cid).lookBody, lookLegs = getCreatureOutfit(cid).lookLegs, lookFeet = getCreatureOutfit(cid).lookFeet, lookAddons = getCreatureOutfit(cid).lookAddons})

end

function CheckRentMount(cid)

for var, ret in pairs(Aluguel_mounts) do

if canPlayerRideMount(cid, ret.mountid) and getPlayerStorageValue(cid, ret.storage) ~= -1 and getPlayerStorageValue(cid, ret.storage) <= os.time() then

doRemovePlayerMount(cid, ret.mountid)

doPlayerSendTextMessage(cid,18,"O tempo da sua montaria "..var.." acabou, para adquirir ela novamente volte ao npc.")

end

end

end

]]></config>

<globalevent name="CheckMount" interval="60000" event="script"><![CDATA[

domodlib('aluguel_func')

function onThink(interval, lastExecution)

local on = getPlayersOnline()

if #on > 0 then

for i = 1, #on do

CheckRentMount(on[i])

end

end

return true

end]]></globalevent>

</mod>

obs: Checar duas coisas em mods, primeira: Se a função que checa se tem a mount é 'canPlayerRideMount' ou 'getPlayerMount', caso for 'getPlayerMount' trocar: canPlayerRideMount(cid, ret.mountid) por: getPlayerMount(cid, ret.mountid) segunda: o intervalo de tempo na tag do globalevents, no meu server era em mile segundos: interval="60000" -- caso o seu não seja em mile segundos troque 60000 por 60. Data/Npc Peach.xml

<?xml version="1.0"?>

<npc name="Peach" script="data/npc/scripts/aluguelmounts.lua" walkinterval="50000" floorchange="0">

<health now="1000" max="1000"/>

<look type="130" head="0" body="114" legs="114" feet="0" addons="0"/>

<parameters>

<parameter key="message_greet" value="Hello |PLAYERNAME|. You want to {rent} a {mount}?"/>

</parameters>

</npc>

Data/Npc/Script aluguelmounts.lua

domodlib('aluguel_func')

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 talkUser = NPCHANDLER_CONVbehavior == CONVERSATION_DEFAULT and 0 or cid

local msg = string.lower(msg)

if isInArray({'aluguel','alugar', 'rent', 'mounts', 'mount'}, msg) then

npcHandler:say("Você pode comprar {war horse}, {fire war horse} e {sandstone scorpion}!", cid)

talkState[talkUser] = 1

elseif talkState[talkUser] == 1 then

if Aluguel_mounts[msg] then

if Aluguel_mounts[msg].premium == true and not isPremium(cid)  then

npcHandler:say('Você precisa ser premium para alugar essa montaria.', cid) return true

elseif getPlayerLevel(cid) < Aluguel_mounts[msg].level then

npcHandler:say('você precisa ter level ' .. Aluguel_mounts[msg].level .. ' ou mais para alugar essa montaria.', cid) return true

elseif getPlayerStorageValue(cid, Aluguel_mounts[msg].storage) >= os.time() then

npcHandler:say('você já alugou essa montaria!', cid) return true

end

name,price,stor,days,mountid = msg,Aluguel_mounts[msg].price,Aluguel_mounts[msg].storage,Aluguel_mounts[msg].days,Aluguel_mounts[msg].mountid

npcHandler:say('Você quer alugar a montaria '..name..' por '..days..' dia'..(days > 1 and 's' or '')..' no preço de '..price..' gps? {yes}', cid)

talkState[talkUser] = 2

else

npcHandler:say('Desculpe, eu não vendo essa montaria.', cid)

end

elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 2) then

if doPlayerRemoveMoney(cid, price)  then

doPlayerAddMount(cid, mountid)

setPlayerStorageValue(cid, stor, os.time()+days*86400)

npcHandler:say('Aqui está sua montaria '..name..', ela irá durar até '..os.date("%d %B %Y %X", getPlayerStorageValue(cid,stor))..'.', cid)

else

npcHandler:say('você não tem dinheiro suficiente para alugar a montaria!', cid)

talkState[talkUser] = 0 

end

elseif msg == "no" then 

selfSay("Then not", cid) 

talkState[talkUser] = 0 

npcHandler:releaseFocus(cid) 

end

return TRUE

end

npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)

npcHandler:addModule(FocusModule:new())

Configuração:

Em mods tem uma tabela chamada 'Aluguel_mounts'

Aluguel_mounts = {

["war horse"] = {price = 10000, days = 2, mountid = 17, level = 10, premium = false, storage = 500561},

["fire war horse"] = {price = 30000, days = 1, mountid = 23, level = 20, premium = false, storage = 500562},

["sandstone scorpion"] = {price = 50000, days = 1, mountid = 21, level = 30, premium = true, storage = 500563}

}

["war horse"] dentro dos [""] fica o nome da montaria, em minusculo o nome da montaria

price = 10000 -- preço que vai custar para alugar

days = 2 -- por quantos dias ele vai alugar a montaria

mountid = 17 -- é o id da montaria, você olha em mounts.xml

level = 10 -- level que precisa para alugar a montaria

premium = false -- se precisa ser premium, true ou false.

storage = 500561 -- storage você coloca uma aleatória, ex: 500565 obs: não pode repetir a storage

Versão testada: 9.1

Descrição: É um npc simples que tem como função alugar determinadas montarias por certo tempo, dias para ser exato.

------------------------------------

Esse script tem em outro forum, nao sei se aqui no tibia king tem também, é so procurar brow, espero ter ajudado ^^

Link para o post
Compartilhar em outros sites

Vlw daniel, irei testar rep+

Editado por Gratos (veja o histórico de edições)

Web Master 100%

Scripter 20%

Spriter 20%

Mapper 5%

Hoster 0%

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 LasseXeterno
      Então, estou tentando adicionar uma nova "race" no meu Ot de base Cyan, tentei seguir 3 tutoriais aqui do tibiaking, um sobre race, porém nos códigos do meu servidor não tem o constant.h e nem o monster.cpp. E o outro tutorial, eu fiz tudo que ele pediu e quando entrei no game para testar, funcionava os golpes e as imunidades, porém não aparecia o número do dano e nem a cor.  Usei esse tutorial como base: 
      Pois ele é derivado. E o outro tutorial que usei foi: 
      Porém nesse, não consegui achar a const.h, e quando fui nos arquivos do creaturescript e adicionei uma cor nova a "COLOR_FAIRY", quando abro o jogo, os pokemons que seriam teoricamente "fada", o que eu usei de teste foi a Clefable. A Clefable tomava IK e dava IK no seu atk do tipo fada. 
      Além de que, o meu erro principal é esse: Warning - Monsters::loadMonster] Unknown race type fairy. (data/monster/pokes/geracao 1/Clefable.xml)
       Pois como eu já disse, não consigo achar onde adicionar uma nova race.

    • Por yuriowns
      Salve rapazes, tranquilo? Preciso de ajuda pra colocar para os npc's que vendem pots verificarem quantos itens possuem no tile em que o player está e se tiver com +80 itens no sqm, o npc avisa e não vende nada até o player ir em um sqm com menos de 80 itens no chão.
       
    • Por A.Mokk
      .Qual servidor ou website você utiliza como base? 
      TFS 0.4
      Qual o motivo deste tópico? 
      Bom pessoal, a algumas semanas atras eu joguei um servidor que havia sistema de imbuimento sendo 8.60, no servidor se utilizava a spellwand para encantar as armas, os comandos eram dado no canal Imbuiment... Gostaria de saber se alguém teria como disponibilizar algum sistema de imbuimento, já procurei pra caramba aqui no fórum mas tudo que encontro é pra versões acima da que eu uso.
       
    • Por Mateus Robeerto
      Não sei se aqui é a área ou algum local para solicitar a alteração do email antigo... Não lembro mais a senha dele, nem a resposta secreta para acessar. Peço a algum administrador ou moderador para, por favor, alterar o email para o novo.
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo