-
Quem Está Navegando 0 membros estão online
Nenhum usuário registrado visualizando esta página.
-
Conteúdo Similar
-
Por Renato
O que é?
O script é assim, ele conta quantos monstros você já matou até o momento, consultando por [ !monsters ]
Agora com a versão 2.0 você pode consultar monstro específico, pela talk [ !monsters Demon ] por exemplo. SE O MONSTRO ESTIVER CONFIGURADO.
Ahh, e você também configura a recompensa que ele ganhará ao matar X de determinado monstro =p
Vamos lá.
Se você já instalou o Killed Monsters Count 1.0 é só abrir o mesmo arquivo e substituir.
Caso não, vá em server/data/mods ou server/mods crie o arquivo monsterskill.xml e coloque dentro:
<?xml version="1.0" encoding="UTF-8"?>
<mod name="Monsters Kill Count and Awards" version="2.0" author="Renato Ribeiro" enabled="yes">
<config name="config-monsterskill"><![CDATA[
local monters = {
['demon'] = { id = 1, qtKill = 250, itemId = xxxx, qtItem = 1 },
['hydra'] = { id = 2, qtKill = 500, itemId = yyyy, qtItem = 1 },
['frost dragon'] = { id = 3, qtKill = 750, itemId = zzzz, qtItem = 1},
}
storage = 1647
killedMonsters = getPlayerStorageValue(cid, storage)
]]></config>
<event type="look" name="monsterLook" event="script"><![CDATA[
domodlib("config-monsterskill")
function onLook(cid, thing, position, lookDistance)
if(isPlayer(thing.uid)) then
doPlayerSetSpecialDescription(thing.uid, "\n Killed Monsters: " .. killedMonsters)
end
return TRUE
end
]]></event>
<event type="kill" name="monsterKill" event="script"><![CDATA[
domodlib("config-monsterskill")
function onKill(cid, target)
if (isMonster(target)) then
setPlayerStorageValue(cid, storage, math.max(1, getPlayerStorageValue(cid, storage) + 1))
end
if (monsters[string.lower(getCreatureName(target))]) then
mName = getCreatureName(target)
mId = monsters[string.lower(mName)].id
mqtKill = monsters[string.lower(mName)].qtKill
mItemId = monsters[string.lower(mName)].itemId
mqtItem = monsters[string.lower(mName)].qtItem
getMStorage = getPlayerStorageValue(cid, storage + mId)
setPlayerStorageValue(cid, storage + mId, math.max(0, getMStorage + 1))
if (getMStorage == mqtKill) then
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Congratulations! You earned " .. mqtItem .. " " .. getItemNameById(mItemId) .. ".")
adding = doPlayerAddItem(cid, mItemId, mqtItem)
doSetItemSpecialDescription(adding, "\n Reward to " .. getPlayerName(cid) .. " to kill " .. qtKill .. " " .. mName .. "s")
end
end
return TRUE
end
]]></event>
<event type="login" name="monsterLogin" event="script"><![CDATA[
function onLogin(cid)
registerCreatureEvent(cid, "monsterLook")
registerCreatureEvent(cid, "monsterKill")
return TRUE
end
]]></event>
<talkaction words="!monsters" event="script"><![CDATA[
domodlib("config-monsterskill")
function onSay(cid, words, param, channel)
if (monsters[string.lower(param)] or monsters[param]) then
killedMonstersX = getPlayerStorageValue(cid, storage + monsters[string.lower(param)] and monsters[string.lower(param)] or monsters[param])
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You have killed " .. killedMonstersX .. " " .. param .. "s at the moment.")
elseif (param) then
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Do not have a " .. param .. " task.")
else
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You have killed " .. killedMonsters .. " monsters at the moment")
end
return TRUE
end
]]></talkaction>
</mod>
[/code]
[b]Talkactions:[/b]
!monsters - consulta quantos monstros você já matou ao total (também aparece no seu look)
!monsters NOME - consulta quantos monstros 'NOME' você já matou
[b]Pra adicionar novos monstros siga o padrão:[/b]
['frost dragon'] = { id = 3, qtKill = 750, itemId = zzzz, qtItem = 1},
['nome do monstro'] = { o id tem que ser sequencial, ou seja, se o ultimo for 3, o proximo é 4, depois 5 etc. o qtKill é q quantidade que o cara tem que matar pra ganhar o item. itemId é o id do item que o cara ganha e qtItem é a quantidade que ele ganha. Por exemplo você pode por o id da arrow e na qtItem você poe 100, ele ganha 100 arrows. Agora se for um item que não da pra juntar, mesmo você colocando 100 ele só vai ganhar 1. }
[b]Enfim, script não testado, qualquer erro POSTE AQUI![/b]
Abraços.
-
Por Renato
Créditos no script
Explicação: ao clicar no baú pela primeira vez você será teletransportado (opcional) para a 'ppos' e um monstro aparecerá em 'mpos', ao clicar pela segunda vez você ganhará o item 'itemid', e ao clicar pela terceira ou mais vezes aparecerá 'This chest is empty'
em Data > Actions > Scripts, cria 1 arquivo lua chamado questmonster.lua e cole-o dentro:
--[Created by Renato Ribeiro to www.TibiaKing.com and others]--
function onUse(cid, item, fromPosition, itemEx, toPosition)
teleport = "yes" -- teleportar player? yes para sim ou no para não
stg = 5123
itemid = 2160
desc = getItemNameById(itemid)
monster = "Demon" -- qual monstro aparecerá
ppos = {x=1005, y=1028, z=7} -- pra onde o player irá (só se teleport for yes)
mpos = {x=1006, y=1028, z=7} -- onde o monstro irá aparecer
if getPlayerStorageValue(cid, stg) < 1 then
if teleport == "yes" then
doTeleportThing(cid, ppos)
doSendMagicEffect(ppos,10)
doCreateMonster(monster, mpos)
doSendMagicEffect(mpos,10)
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Oh no! You raised the ire of the "..monster.."!")
setPlayerStorageValue(cid, stg, 1)
return TRUE
else
doCreateMonster(monster, mpos)
doSendMagicEffect(mpos,10)
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Oh no! You raised the ire of the "..monster.."!")
setPlayerStorageValue(cid, stg, 1)
return TRUE
end
elseif getPlayerStorageValue(cid, stg) == 1 then
doPlayerAddItem(cid, itemid)
setPlayerStorageValue(cid, stg, 2)
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You have found a "..desc..".")
return TRUE
else
return doPlayerSendCancel(cid, "This chest is empty.")
end
end
[/code] agora em [color=#FF0000]Data > Actions > Actions.XML[/color] [code]
<action actionid="2545" event="script" value="questmonster.lua"/>
Status: SCRIPT TESTADO E FUNCIONANDO (15/11/2011)
-
Por Renato
Créditos no script.
Explicação: simples, o player fala !sellvial e ele venderá todos os potions vazios que ele tem por X gps cada um.
• Crie um arquivo LUA com o nome sellvial.lua em data/talkactions/scripts e ponha:
--[Created by Renato Ribeiro to www.TibiaKing.com and others]--
function onSay (cid, words, param, channel)
local preco = 5 -- gold coins
local count = getPlayerItemCount(cid, 7636) + getPlayerItemCount(cid, 7634) + getPlayerItemCount(cid, 7635)
local result = count*preco
if count == 0 then
doSendMagicEffect(getPlayerPosition(cid), 2)
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você não tem potions para vender.")
else
doSendMagicEffect(getPlayerPosition(cid), 12)
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você vendeu "..count.." potions por "..result.." gold coins.")
doPlayerAddMoney(cid, result)
return TRUE
end
end[/code] Altere o valor de cada potion em [i]local preco = 5 (substuindo 5)[/i] [b]• Depois em [color=#0000FF]data/talkactions/talkactions.xml[/color] ponha a tag em qualquer lugar:[/b] [code]<talkaction log="yes" words="!sellvial" access="0" event="script" value="sellvial.lua">
E prontinho!
OBS: Script não testado</talkaction>
-
Por Renato
Créditos no Script
Explicação: Simples comando pra teleportar o player para qualquer lugar
Exemplo: /tt Renato, 350, 147, 7
Sem bugs! 100%
Vá em data/talkactions/scripts copie qualquer arquivo, renomeie para teleportthing.lua e cole dentro:
--[by Renato Ribeiro to TibiaKing.com]--
function onSay(cid, words, param, channel)
if(param == '') then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "É necessário um paramêtro.")
return TRUE
end
local prm = string.explode(param, ",")
local plr = getPlayerByName(prm[1])
if (plr == nil) then
return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "O player está offline ou não existe.")
elseif (prm[4] == nil or prm[4] == '') then
return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "É necessário todas as coordenadas x, y, z, respectivamente separada por vírgulas.")
else
doTeleportThing(plr, {x=prm[2], y=prm[3], z=prm[4]})
doSendMagicEffect(getCreaturePosition(cid), 10)
return TRUE
end
end
[/code] Va em data/talkactions/talkactions.xml e ponha em gamemaster ou em qualquer lugar: [code]<talkaction log="yes" words="/tt" access="3" event="script" value="teleportthing.lua">
Não retire o acess="3", IMPORTANTE!
Bjundas</talkaction>
-
Por Renato
Créditos no script.
Explicação: A talkaction de alguns otservers você não escolhe quantos dias de premium você deseja. E sim é algo pré-configurado no server. Então aqui neste script você escolhe quantos dias de premium você quer pagando 1k por cada dia dizendo !addpremium DIAS.
Exemplo: !addpremium 50 -- comprará 50 dias de p.a
Você não pode possuir mais que 360 dias de p.a então coloquei algumas checagens. Tal como adicionar mais de 360 dias de uma vez e também somando seus dias atuais com o tanto desejado assim se o resultado for maior que 360 aparecerá uma mensagem falando que não é possível junto ao número de dias que você poderá comprar calculado por 360 menos dias atuais.
• Crie um arquivo LUA com o nome addpremium.lua em data/talkactions/scripts e ponha:
-- Author: Renato Ribeiro
-- Thanks for help: thalia, mkalo
-- Url: www.tibiaking.com
function onSay(cid, words, param, channel)
local prm = tonumber(param)
local maxdays = 360
local precopordia = 1000
if (prm == nil) then
doSendMagicEffect(getPlayerPosition(cid), 2)
return doPlayerSendCancel(cid, "Diga quantos dias deseja comprar.")
elseif (prm == 0) then
doSendMagicEffect(getPlayerPosition(cid), 2)
return doPlayerSendCancel(cid, "Você não pode comprar 0 dias de premium.")
elseif (prm > maxdays) then
doSendMagicEffect(getPlayerPosition(cid), 2)
return doPlayerSendCancel(cid, "Você não pode comprar mais que "..maxdays.." dias de premium de uma só vez.")
else
if getPlayerPremiumDays(cid)+prm > maxdays then
doSendMagicEffect(getPlayerPosition(cid), 2)
return doPlayerSendCancel(cid, "Você só pode ter "..maxdays.." dias de premium, no entanto você só poderá comprar no máximo "..maxdays-getPlayerPremiumDays(cid).." dias.")
else
if getPlayerMoney(cid) >= prm*precopordia then
doSendMagicEffect(getPlayerPosition(cid), 12)
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você comprou "..prm.." dias de premium account por "..prm*precopordia.." gold coins.")
doPlayerAddPremiumDays(cid, prm)
doPlayerRemoveMoney(cid, prm*precopordia)
return TRUE
else
doSendMagicEffect(getPlayerPosition(cid), 2)
return doPlayerSendCancel(cid, "Você precisa de "..prm*precopordia .." gold coins para comprar "..prm.." dia(s) de premium.")
end
end
end
end[/code] [b]• Depois em data/talkactions/talkactions.xml ponha a tag em qualquer lugar:[/b] [code]<talkaction log="yes" words="!addpremium" access="0" event="script" value="addpremium.lua">
Testado e funcionando!</talkaction>
-