BR
poketibia

[Encerrado] (Pedido) Ganha Premios Ao X LeveL

Por BrunooMaciell, 13 de nov. de 2013 em Tópicos Sem Resposta

pedido - poketibia
resolvido
tibia
script
otserv
17
3.9k
BrunooMaciellB
13 de novembro de 2013 às 15:44

Vim aqui pra pedir um systema que estava procurando mais nao achei !!

 

O systema de que um player chega ao x level ganha um premio se possivel versao poketibia e se possivel a script pode-se add nao so um premio sei la 3 a 5 lvls que ganhara premio ^^

 

 

GuhPkG
13 de novembro de 2013 às 16:00

Opa, desculpa, peguei errado... pera ai! kkk

 

Agora sim, ta aqui:

 

http://www.xtibia.com/forum/topic/216128-recompensa-por-level/

Editado Novembro 13 por GuhPk

zipter98Z
13 de novembro de 2013 às 19:10

O prêmio será apenas 1 item específico e uma quantidade x de level? Você poderia informar o(s) ID(s) do(s) do(s) item(s), a quantidade de levels que o player irá receber e o level que o player irá receber os prêmios?

E, suponhamos que o level necessário para receber os prêmios seja 45. Se o player estiver, por exemplo, no level 44, e avançar 2 levels, irá mesmo assim receber o prêmio? Ou apenas se avançar para 45, exato?

Editado Novembro 13 por zipter98

BrunooMaciellB
13 de novembro de 2013 às 19:11

tipo o systema ta ate certo porem eu quero este systema so que tenha a funçao de eu add premio no lvl 100 lvl 300 lvl 500 este script pelo que vi so tem pra um lvl !!

zipter98Z
13 de novembro de 2013 às 19:28

Quais serão os prêmios?

BrunooMaciellB
13 de novembro de 2013 às 19:32

Tabela:

 

LvL 100 - 100HD

LvL: 300 - Boost Stone/300HD

LvL: 500 - Boost Stone/500HD

 

Ids:

 

HD - 2152

Boost Stone - 12618

 

OBS: quando for mi manda a script e tudo mais se puder fala como posso add mais premios caso eu quera futuramente ^^

zipter98Z
13 de novembro de 2013 às 19:56

Tenta:

data/creaturescripts/scripts.

function onAdvance(cid, skill, oldLevel, newLevel)
 
local t = {
    [100] = {items = {2160}, quantidade = {1}, storage = 110291},
    [300] = {items = {2160, 12618}, quantidade = {3, 1}, storage = 110292},
    [500] = {items = {2160, 12618}, quantidade = {5, 1}, storage = 110293},
}
 
local item = t[newLevel].items
local quantidade = t[newLevel].quantidade
 
    if skill == 8 then
        for a, b in pairs(t) do
            if newLevel >= a and getPlayerStorageValue(cid, b.storage) < 1 then
                for i = 1, #item do
                    doPlayerAddItem(cid, item[i], quantidade[i])
                    setPlayerStorageValue(cid, b.storage, 1)
                end
            end
        end
    end
    return true
end

Não se esqueça de registrar no login.lua.

Você deve alterar apenas a tabela t.
local t = {
    [100] = {items = {2160}, quantidade = {1}, storage = 110291},
    [300] = {items = {2160, 12618}, quantidade = {3, 1}, storage = 110292},
    [500] = {items = {2160, 12618}, quantidade = {5, 1}, storage = 110293},
}
"Traduzindo" uma linha dela, ficaria assim:
[Level] = {items = {IDs do(s) item(s)}, quantidade = {quantidade do(s) item(s)}, storage = 110291},
Na parte quantidade =, você deve colocar em ordem, igual à items. Por exemplo, no lv 300, items está {2160, 12618}. O primeiro ID, é o do thousand dollar (prefiri utilizá-lo, como dica de um amigo, já que 100 HDs = 1 TD, mais fácil); o segundo, Boost Stone. No quantidade, está {3, 1}. O primeiro valor (3), está relacionado ao primeiro valor de items (o TD). O segundo, (1), está relacionado ao segundo valor de items; no caso, a Boost Stone.

Editado Novembro 13 por zipter98

BrunooMaciellB
13 de novembro de 2013 às 19:58

Tenta:

function onAdvance(cid, skill, oldLevel, newLevel)
 
local t = {
    [100] = {items = {2160}, quantidade = {1}, storage = 110291},
    [300] = {items = {2160, 12618}, quantidade = {3, 1}, storage = 110292},
    [500] = {items = {2160, 12618}, quantidade = {5, 1}, storage = 110293},
}
 
local item = t[newLevel].items
local quantidade = t[newLevel].quantidade
 
    if skill == 8 then
        for a, b in pairs(t) do
            if newLevel >= a and getPlayerStorageValue(cid, b.storage) < 1 then
                for i = 1, #item do
                    doPlayerAddItem(cid, item[i], quantidade[i])
                    setPlayerStorageValue(cid, b.storage, 1)
                end
            end
        end
    end
    return true
end

jaja edito com a explicação.

ok se mi mando a script mais eu nao tenho ela toda eu uso como base aqui o guhok mi mando pq nao tenho nada da script se mi mando so a script sendo que nao tenho nada usa a que o guh mando so que em vez de usa a script deles usa a sua ??

zipter98Z
13 de novembro de 2013 às 20:07

Este meu script está completo. A explicação, editei acima.

BrunooMaciellB
13 de novembro de 2013 às 20:33

Ok !!

 

ja ja tido resposta vou testa aqui ^^


BUG

 

[13/11/2013 20:28:43] [Error - CreatureScript Interface]
[13/11/2013 20:28:43] data/creaturescripts/scripts/onadvanced.lua:onAdvance
[13/11/2013 20:28:43] Description:
[13/11/2013 20:28:43] data/creaturescripts/scripts/onadvanced.lua:9: attempt to index field '?' (a nil value)
[13/11/2013 20:28:43] stack traceback:
[13/11/2013 20:28:43] data/creaturescripts/scripts/onadvanced.lua:9: in function

 

zipter98Z
13 de novembro de 2013 às 22:02

 

function onAdvance(cid, skill, oldLevel, newLevel)
 
local t = {
    [100] = {items = {2160}, quantidade = {1}, storage = 110291},
    [300] = {items = {2160, 12618}, quantidade = {3, 1}, storage = 110292},
    [500] = {items = {2160, 12618}, quantidade = {5, 1}, storage = 110293},
}
 
    if t[newLevel] then
        item = t[newLevel].items
        quantidade = t[newLevel].quantidade
    end
 
    if skill == 8 then
        for a, b in pairs(t) do
            if newLevel >= a and getPlayerStorageValue(cid, b.storage) < 1 then
                for i = 1, #item do
                    doPlayerAddItem(cid, item[i], quantidade[i])
                    setPlayerStorageValue(cid, b.storage, 1)
                end
            end
        end
    end
    return true
end
BrunooMaciellB
13 de novembro de 2013 às 22:19

Continua bugado =(

 

[13/11/2013 22:16:20] [Error - CreatureScript Interface]
[13/11/2013 22:16:20] data/creaturescripts/scripts/onadvanced.lua:onAdvance
[13/11/2013 22:16:20] Description:
[13/11/2013 22:16:20] data/creaturescripts/scripts/onadvanced.lua:17: attempt to get length of global 'item' (a nil value)
[13/11/2013 22:16:20] stack traceback:
[13/11/2013 22:16:20] data/creaturescripts/scripts/onadvanced.lua:17: in function

 

zipter98Z
13 de novembro de 2013 às 22:31

Tenta upar seu char exatamente pra um dos levels da tabela:

 

function onAdvance(cid, skill, oldLevel, newLevel)
 
local t = {
    [100] = {items = {2160}, quantidade = {1}, storage = 110291},
    [300] = {items = {2160, 12618}, quantidade = {3, 1}, storage = 110292},
    [500] = {items = {2160, 12618}, quantidade = {5, 1}, storage = 110293},
}
 
    if skill == 8 then
        if t[newLevel] then
            item = t[newLevel].items
            quantidade = t[newLevel].quantidade
            for a, b in pairs(t) do
                if newLevel >= a and getPlayerStorageValue(cid, b.storage) < 1 then
                    for i = 1, #item do
                        doPlayerAddItem(cid, item[i], quantidade[i])
                        setPlayerStorageValue(cid, b.storage, 1)
                    end
                end
            end
        end
    end
    return true
end
BrunooMaciellB
14 de novembro de 2013 às 10:35

zipter - pronto agora foi ^^

 

Curti+ ^^

 

VLW

GuhPkG
14 de novembro de 2013 às 13:26

Reportado para quem feche.