Jump to content
  • 0

Reward E Vip [Talkaction]


Diego Rulez

Question

Tipo do script: Talkaction

Protocolo (versão do Tibia): 8.60

Servidor utilizado: TFS 0.4

Nível de experiência: Médio

 

Gostaria de pedir 2 scripts diferentes.

 

O primeiro um script de recompensa, aquele que entrega gold ou item automáticamente quando se chega em um determinado level. Mas ao invés disso acontecer apenas no level 45, eu gostaria de um que fosse fáci de configurar para vários leveis diferentes.

 

O segundo, um script que adiciona 1 dia de vip na account do players level 300+

A condição é a seguinte, ao chegar no level 300 o player pode usar a talkaction para ganhar 1 dia de vip para testar a area vip do servidor, mas essa talkaction ele só poderar utilizar 1 vez por CONTA não por char.. A storage da vip que eu uso é 15000.

 

Obrigado.

Edited by Diego_o
Link to comment
Share on other sites

11 answers to this question

Recommended Posts

  • 0

Amigo, esse primeiro script já existe aqui no fórum. O script é da AnneMotta. Em data/creaturescripts/scripts crie um arquivo.lua e cole isto dentro:

 

function onAdvance(cid, skill, oldLevel, newLevel)

local config = {
[20] = {item = 2160, count = 2},
[25] = {item = 2160, count = 1},
[35] = {item = 2160, count = 5}
}

if skill == 8 then
for level, info in pairs(config) do
if newLevel >= level and (getPlayerStorageValue(cid, 30700) == -1 or not (string.find(getPlayerStorageValue(cid, 30700), "'" .. level .. "'"))) then
doPlayerAddItem(cid, info.item, info.count)
doPlayerSendTextMessage(cid, 27, "Parabéns você atingiu o level "..newLevel.." e ganhou "..info.count.." "..getItemNameById(info.item)..".")
local sat = getPlayerStorageValue(cid, 30700) == -1 and "Values: '" .. level .. "'" or getPlayerStorageValue(cid, 30700) .. ",'" .. level .. "'"
setPlayerStorageValue(cid, 30700, sat)
end
end
end

return TRUE
end

 

Configuração: [LEVEL QUE IRÁ GANHAR] = {item = IDDOITEM, count = QUANTIDADE}

 

Em data/creaturescripts/login.lua, cole antes do return true: registerCreatureEvent(cid, "levelitem")

 

Em data/creaturescripts.xml cole a tag: <event type="advance" name="levelitem" event="script" value="NOMEDOSEUARQUIVO.lua"/>

 

Espero ter ajudado, abraços. Sobre o segundo script, qual o seu sistema vip? Vlw.

Link to comment
Share on other sites

  • 0

Bom, eu tenho um pouco de conhecimento e posso garantir que não estou digitando nada errado nem colocando nas pastas erradas. Mas não funcionou o script.. E a pasta que você se referiu não seria: data/creaturescripts/scripts/login.lua ??

Sobre o sistema vip que utilizo é do Kydrai.

Edited by Diego_o
Link to comment
Share on other sites

  • 0
function onAdvance(cid, skill, oldlevel, newlevel)
local config = {repeatAfterDeath = false, storage = 30700}  
local t = {
[20] = {2160,2},
[22] = {2160,3},
[30] = {2160,5}
}
if skill ~= SKILL__LEVEL or not t[newlevel] or (not config.repeatAfterDeath and getPlayerStorageValue(cid, config.storage) >= newlevel) then
return true
end
doPlayerAddItem(cid, t[newlevel][1], t[newlevel][2])
doPlayerSendTextMessage(cid, 27, "grats you atingiu o level "..newlevel.." e ganhou "..t[newlevel][2].." "..getItemNameById(t[newlevel][1])..".")
setPlayerStorageValue(cid, config.storage, newlevel)
return true
end

Edited by Vodkart
Link to comment
Share on other sites

  • 0

nome do seu script.lua

function onAdvance(cid, skill, oldlevel, newlevel)
local config = {repeatAfterDeath = false, storage = 30700}  
local t = {
[20] = {2160,2},
[22] = {2160,3},
[30] = {2160,5}
}
if skill ~= SKILL__LEVEL or not t[newlevel] or (not config.repeatAfterDeath and getPlayerStorageValue(cid, config.storage) >= newlevel) then
return true
end
doPlayerAddItem(cid, t[newlevel][1], t[newlevel][2])
doPlayerSendTextMessage(cid, 27, "grats you atingiu o level "..newlevel.." e ganhou "..t[newlevel][2].." "..getItemNameById(t[newlevel][1])..".")
setPlayerStorageValue(cid, config.storage, newlevel)
return true
end

 

creaturescript.xml

<event type="advance" name="lvlreward" script="nome do seu script.lua"> 

 

creaturescript/script/login.lua

registerCreatureEvent(cid, "lvlreward")

</event>

 

 

 

 

testei aqui e funcionou:

 

18:27 grats you atingiu o level 30 e ganhou 5 crystal coin.

Edited by Vodkart
Link to comment
Share on other sites

  • 0

O script funciona perfeitamente, e já o testei aqui no meu servidor. Se você tem um pouco de conhecimento, já sabe que a pasta é essa mesma que você falou. Tente rever o que você fez de errado, ou se preferir, use o do vodkart que creio que vá funcionar também.

Link to comment
Share on other sites

  • 0

Creaturescripts.xml

<event type="advance" name="lvlreward" event="script" value="reward2.lua"/>

 

=========================

 

Final do Login.lua

-- Level Reward --

registerCreatureEvent(cid, "lvlreward")

 

return true

end

 

=========================

 

E no arquivo reward2.lua o script que você passou, mas não está funcionando aqui.</event>

Edited by Diego_o
Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...