Player Spell Experience

Administrador
em Mods, funções e outros

Administrador

xTibia 2017
avatar
Administrador
Administrador

INFOS

Grupo: AdministradorRegistrado: 09/07/05Posts: 5780Gênero: Outro

Créditos:

Codex NG
Athern
function Player:getCustomSkill(storage)
    return self:getStorageValue(storage)
end
function Player:addCustomSkill(skillName, storage)
    local skillStorage = math.max(10, self:getStorageValue(storage))
    local skillTries =  math.max(0, self:getStorageValue(storage + 1))
    self:setStorageValue(storage, skillStorage + 1)
    self:sendTextMessage(MESSAGE_EVENT_ADVANCE, "You advanced to " .. string.lower(skillName) .. " level "..self:getCustomSkill(storage)..".")
    self:setStorageValue(storage + 1, 0)
end
function Player:addCustomSkillTry(skillName, storage)
    local skillStorage = math.max(10, self:getStorageValue(storage))
    local skillTries =  math.max(0, self:getStorageValue(storage + 1))
    self:setStorageValue(storage + 1, skillTries + 1)
    if skillTries > math.floor(20 * math.pow(1.1, (skillStorage - 11)) / 10) then
        self:addCustomSkill(skillName, storage)
    end
end
function Player:getCustomSkillPercent(storage)
    local skillStorage = math.max(10, self:getStorageValue(storage))
    local skillTries =  math.max(0, self:getStorageValue(storage + 1))
    local triesNeeded = math.floor(20 * math.pow(1.1, (skillStorage - 11)) / 10)
    local percent = math.floor(100 * (1 - skillTries / triesNeeded))
    if percent > 1 and percent <= 100 then
        return percent
    else
        percent = 1
        return percent
    end
end

Usando a magia "Haste" como um exemplo, você vai ter que aplicar sua própria formula de aumento de dano, velocidade, etc...

 local name = "haste"
    local storage = 15000
  
    local combat = Combat()
    combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_GREEN)
    combat:setParameter(COMBAT_PARAM_AGGRESSIVE, 0)
  
    local function x(creature, var)
        local condition = Condition(CONDITION_HASTE)
        condition:setParameter(CONDITION_PARAM_TICKS, 33000)
        condition:setFormula(0.3, -24, 0.3, -24)
        combat:setCondition(condition)
        creature:addCustomSkillTry(name, storage)
        return combat:execute(creature, var)
    end
  
    function onCastSpell(creature, var)
        return x(creature, var)
    end

22:08 You advanced to haste level 11.
22:09 You advanced to haste level 12.

DICA

Utilize botão @UP, no início de seu tópico, para atualizar o destaque de seu tópico em "Tópicos Recentes" na index, fará com que mais pessoas o vejam.

 

 

shept

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 22/05/15Posts: 72

Daniel, não entendi muito bem o que o script faz, outra coisa, essa tag deixa o conteúdo com uma identação meio estranha o que complica mais

teakwondo

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 20/08/15Posts: 13

Como que usa isso o.O

Deadpool

!!!
avatar
Herói
Herói

INFOS

Grupo: HeróiRegistrado: 25/10/11Posts: 2175Gênero: MasculinoChar no Tibia: Sociopata

É tipo upar as magias de level, como se fosse um skill :p

Não respondo PMs solicitando suporte. Já existem seções no fórum para isto.

 

 

 

 

DICA

Utilize botão @UP, no início de seu tópico, para atualizar o destaque de seu tópico em "Tópicos Recentes" na index, fará com que mais pessoas o vejam.

teakwondo

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 20/08/15Posts: 13

É tipo upar as magias de level, como se fosse um skill :p

Ate ai eu entendi eu quero sabe aonde coloca os scripts e as tags, com excessão da tag da spell

Deadpool

!!!
avatar
Herói
Herói

INFOS

Grupo: HeróiRegistrado: 25/10/11Posts: 2175Gênero: MasculinoChar no Tibia: Sociopata

lib Oo

Não respondo PMs solicitando suporte. Já existem seções no fórum para isto.

 

 

 

 

DICA

Utilize botão @UP, no início de seu tópico, para atualizar o destaque de seu tópico em "Tópicos Recentes" na index, fará com que mais pessoas o vejam.

teakwondo

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 20/08/15Posts: 13

lib Oo

Eu soh vou entender se explicar passo a passo i.i

Deadpool

!!!
avatar
Herói
Herói

INFOS

Grupo: HeróiRegistrado: 25/10/11Posts: 2175Gênero: MasculinoChar no Tibia: Sociopata

ué, cria qualquer arquivo na lib e coloca isso ae dentro, pra usar é só chamar a função q, mas nao tenho certeza, é tfs 1.2, deve ser um creaturescript ;s

Não respondo PMs solicitando suporte. Já existem seções no fórum para isto.

 

 

 

 

DICA

Utilize botão @UP, no início de seu tópico, para atualizar o destaque de seu tópico em "Tópicos Recentes" na index, fará com que mais pessoas o vejam.

shept

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 22/05/15Posts: 72

Como que usa isso o.O

 

 

ué, cria qualquer arquivo na lib e coloca isso ae dentro, pra usar é só chamar a função q, mas nao tenho certeza, é tfs 1.2, deve ser um creaturescript ;s

eu entendi como usa ... neste caso o primeiro code pode ir no global.lua, no caso de tfs 1.2, bom é tfs 1.2 é metamethod

e o segundo script é o script de uma spell, no caso é o haste, e ele está dizendo que tem que editar cada atributo de cada spell, neste caso teria que fazer pra todas as magias as edições parecidas com o segundo script

Administrador

xTibia 2017
avatar
Administrador
Administrador

INFOS

Grupo: AdministradorRegistrado: 09/07/05Posts: 5780Gênero: Outro

Exato @@shept

Obrigado pela explicação

DICA

Utilize botão @UP, no início de seu tópico, para atualizar o destaque de seu tópico em "Tópicos Recentes" na index, fará com que mais pessoas o vejam.

 

 

shept

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 22/05/15Posts: 72

de nada, é sempre bom tentar compreender e ajudar a comunidade ;)

teakwondo

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 20/08/15Posts: 13

 

 

eu entendi como usa ... neste caso o primeiro code pode ir no global.lua, no caso de tfs 1.2, bom é tfs 1.2 é metamethod

e o segundo script é o script de uma spell, no caso é o haste, e ele está dizendo que tem que editar cada atributo de cada spell, neste caso teria que fazer pra todas as magias as edições parecidas com o segundo script

aonde acho esse global.lua, e como faço pra saber se meu server eh tsf 1.2 i.i

Eu sou tipo um dinossauro pra mecher em server de tibia e.e

rohfagundes

avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 10/02/11Posts: 377

tentei converte esses sistema pra versao tfs 0.3.7

ficou assim

function getPlayerCustomSkill(cid, storage)
    return getPlayerStorageValue(cid, storage)
end
function addPlayerCustomSkill(cid, skillName, storage)
    local skillStorage = math.max(10, getPlayerStorageValue(cid, storage))
    local skillTries =  math.max(0, getPlayerStorageValue(cid, storage + 1))
    setPlayerStorageValue(cid, storage, skillStorage + 1)
    doPlayersendTextMessage(cid, MESSAGE_EVENT_ADVANCE, "You advanced to " .. string.lower(skillName) .. " level "..getPlayerCustomSkill(cid, storage)..".")
    setPlayerStorageValue(cid, storage + 1, 0)
end
function addPlayerCustomSkillTry(cid, skillName, storage)
    local skillStorage = math.max(10, getPlayerStorageValue(cid, storage))
    local skillTries =  math.max(0, getPlayerStorageValue(cid, storage + 1))
    setPlayerStorageValue(cid, storage + 1, skillTries + 1)
    if skillTries > math.floor(20 * math.pow(1.1, (skillStorage - 11)) / 10) then
        addPlayerCustomSkill(cid, skillName, storage)
    end
end
function getPlayerCustomSkillPercent(cid, storage)
    local skillStorage = math.max(10, getPlayerStorageValue(cid, storage))
    local skillTries =  math.max(0, getPlayerStorageValue(cid, storage + 1))
    local triesNeeded = math.floor(20 * math.pow(1.1, (skillStorage - 11)) / 10)
    local percent = math.floor(100 * (1 - skillTries / triesNeeded))
    if percent > 1 and percent <= 100 then
        return percent
    else
        percent = 1
        return percent
    end
end

e na spell eu coloquei isso

addPlayerCustomSkillTry(cid, "Teste", 73874)

só q quando eu uso a spell da esse erro

[5/3/2016 12:23:37] [Error - Spell Interface] 
[5/3/2016 12:23:37] data/spells/scripts/teste.lua:onCastSpell
[5/3/2016 12:23:37] Description: 
[5/3/2016 12:23:37] data/lib/104-function experience spell.lua:12: bad argument #3 to 'max' (number expected, got nil)
[5/3/2016 12:23:37] stack traceback:
[5/3/2016 12:23:37] 	[C]: in function 'max'
[5/3/2016 12:23:37] 	data/lib/104-function experience spell.lua:12: in function 'addPlayerCustomSkillTry'
[5/3/2016 12:23:37] 	data/spells/scripts/teste.lua:143: in function <data/spells/scripts/teste.lua:133>

alguem aqui q ja testou esse sistema saberia se tem como converte
se sim o q eu fiz de errado?

Skulls

Coordenador de Eventos
avatar
Herói
Herói

INFOS

Grupo: HeróiRegistrado: 26/02/07Posts: 859Gênero: Masculino

Cara que código confuso. Ele cria funções pra facilitar busca e envio de informações mas não usa, lol.

Uma duvida, ta tao confuso que eu nao consegui ver: no fim das contas o que esse script faz exatamente? Ele so guarda uma *experiencia pra cada magia e quando atinge ele evolui? Na pratica, vc ter haste 100 ou haste 1 nao vai fazer diferença nesse codigo ai, ne?

rohfagundes

avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 10/02/11Posts: 377

Cara que código confuso. Ele cria funções pra facilitar busca e envio de informações mas não usa, lol.

Uma duvida, ta tao confuso que eu nao consegui ver: no fim das contas o que esse script faz exatamente? Ele so guarda uma *experiencia pra cada magia e quando atinge ele evolui? Na pratica, vc ter haste 100 ou haste 1 nao vai fazer diferença nesse codigo ai, ne?

 

Bem estranho ele msm

creio eu q fiz a conversão certa porem n funciona

e sim pela logica ele so iria aumentar o nivel mas n ia mudar nd na spell em si

mas nd q uma formula diferente n resolva