Reward E Vip [Talkaction]

Diego Rulez
em Scripts

Diego Rulez

avatar
Artesão
Artesão

INFOS

Grupo: ArtesãoRegistrado: 01/10/06Posts: 121Gênero: Masculino

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.

Leoxtibia

avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 22/06/08Posts: 489Gênero: Masculino

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.

sergiped.gif

Diego Rulez

avatar
Artesão
Artesão

INFOS

Grupo: ArtesãoRegistrado: 01/10/06Posts: 121Gênero: Masculino

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.

Vodkart

Sumus Validus
avatar
Herói
Herói

INFOS

Grupo: HeróiRegistrado: 21/05/10Posts: 3406Gênero: Masculino
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

bossisg.png

Diego Rulez

avatar
Artesão
Artesão

INFOS

Grupo: ArtesãoRegistrado: 01/10/06Posts: 121Gênero: Masculino

Não Funcinou

Vodkart

Sumus Validus
avatar
Herói
Herói

INFOS

Grupo: HeróiRegistrado: 21/05/10Posts: 3406Gênero: Masculino

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.

bossisg.png

Leoxtibia

avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 22/06/08Posts: 489Gênero: Masculino

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.

sergiped.gif

Diego Rulez

avatar
Artesão
Artesão

INFOS

Grupo: ArtesãoRegistrado: 01/10/06Posts: 121Gênero: Masculino

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>

Vodkart

Sumus Validus
avatar
Herói
Herói

INFOS

Grupo: HeróiRegistrado: 21/05/10Posts: 3406Gênero: Masculino

dá algum erro?

bossisg.png

Diego Rulez

avatar
Artesão
Artesão

INFOS

Grupo: ArtesãoRegistrado: 01/10/06Posts: 121Gênero: Masculino

Nenhum Erro.

Vodkart

Sumus Validus
avatar
Herói
Herói

INFOS

Grupo: HeróiRegistrado: 21/05/10Posts: 3406Gênero: Masculino

posta o seu login.lua

bossisg.png

Diego Rulez

avatar
Artesão
Artesão

INFOS

Grupo: ArtesãoRegistrado: 01/10/06Posts: 121Gênero: Masculino

Edited.

 

Consegui já, podem fechar o tópico.