Ir para conteúdo
  • 0

Reward E Vip [Talkaction]


Diego Rulez

Pergunta

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.

Editado por Diego_o
Link para o comentário
Compartilhar em outros sites

11 respostass a esta questão

Posts Recomendados

  • 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 para o comentário
Compartilhar em outros 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.

Editado por Diego_o
Link para o comentário
Compartilhar em outros 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

Editado por Vodkart
Link para o comentário
Compartilhar em outros 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.

Editado por Vodkart
Link para o comentário
Compartilhar em outros 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 para o comentário
Compartilhar em outros 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>

Editado por Diego_o
Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...