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
- Fórum
- OTServ
- Recursos
- Scripting
- Mods, funções e outros
- Player Spell Experience
Player Spell Experience
Por Administrador, 17 de nov. de 2015 em Mods, funções e outros
Como que usa isso ![]()
info
Grupo: Herói
Registrado: 25/10/11
Posts: 2.2k
Reputação: +862
Gênero: Masculino
Char no Tibia: Sociopata

É tipo upar as magias de level, como se fosse um skill ![]()
É tipo upar as magias de level, como se fosse um skill
Ate ai eu entendi eu quero sabe aonde coloca os scripts e as tags, com excessão da tag da spell
info
Grupo: Herói
Registrado: 25/10/11
Posts: 2.2k
Reputação: +862
Gênero: Masculino
Char no Tibia: Sociopata

lib Oo
lib Oo
Eu soh vou entender se explicar passo a passo i.i
info
Grupo: Herói
Registrado: 25/10/11
Posts: 2.2k
Reputação: +862
Gênero: Masculino
Char 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
Como que usa isso
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
info
Grupo: Administrador
Registrado: 08/07/05
Posts: 5.8k
Reputação: +1.4k
Gênero: Outro

Exato @@shept
Obrigado pela explicação
de nada, é sempre bom tentar compreender e ajudar a comunidade ![]()
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
info
Grupo: Visconde
Registrado: 10/02/11
Posts: 377
Reputação: +78

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?
info
Grupo: Herói
Registrado: 25/02/07
Posts: 859
Reputação: +331
Gê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?
info
Grupo: Visconde
Registrado: 10/02/11
Posts: 377
Reputação: +78

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





info
Grupo: Administrador
Registrado: 08/07/05
Posts: 5.8k
Reputação: +1.4k
Gênero: Outro
Créditos:
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 endUsando 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) end22:08 You advanced to haste level 11.
22:09 You advanced to haste level 12.