• There is NO official Otland's Discord server and NO official Otland's server list. The Otland's Staff does not manage any Discord server or server list. Moderators or administrator of any Discord server or server lists have NO connection to the Otland's Staff. Do not get scammed!

[tfs 1.2] Add experience when player log in

pepito999

New Member
Joined
Jul 19, 2011
Messages
34
Solutions
1
Reaction score
0
Hellp guys, I'm having problems with my script.

I need that when ever a player that is lvl < 100 log in, it will give him the experience to get lvl 100. Thank you!


Code:
function onLogin(player)
if player:getLevel() < 100 then
     player:addExperience(getExpForLevel(getExpForLevel(100)) - player:getExperience(), false)
  end
return true
end

data/creaturescripts/scripts/level100.lua:3: attempt to call global 'getExpForLevel' (a nil value)
stack traceback:
[C]: in function 'getExpForLevel'
data/creaturescripts/scripts/level100.lua:3: in function <data/creaturescripts/scripts/level100.lua:1>
 
Solution
Lua:
local function getExp(level) return ((50 * level * level * level) - (150 * level * level) + (400 * level)) / 3 end

function getExpForLevel(level, offsetLevel)
    level       = level - 1
    offsetLevel = offsetLevel and offsetLevel - 1 or nil

    local total = getExp(level)
    local offset = offsetLevel and offsetLevel < level and getExp(offsetLevel) or 0
    return total - offset
end

function Player:addLevel(amount, round, ...)
  local exp    = 0
  local level  = self:getLevel()

  exp = math.abs(getExpForLevel(level + amount) - (round and self:getExperience() or getExpForLevel(level)))
  return amount >= 0 and self:addExperience(exp, ...) or self:removeExperience(exp, ...)
end

function Player:setLevel(level, round, ...)...
Lua:
local function getExp(level) return ((50 * level * level * level) - (150 * level * level) + (400 * level)) / 3 end

function getExpForLevel(level, offsetLevel)
    level       = level - 1
    offsetLevel = offsetLevel and offsetLevel - 1 or nil

    local total = getExp(level)
    local offset = offsetLevel and offsetLevel < level and getExp(offsetLevel) or 0
    return total - offset
end

function Player:addLevel(amount, round, ...)
  local exp    = 0
  local level  = self:getLevel()

  exp = math.abs(getExpForLevel(level + amount) - (round and self:getExperience() or getExpForLevel(level)))
  return amount >= 0 and self:addExperience(exp, ...) or self:removeExperience(exp, ...)
end

function Player:setLevel(level, round, ...)
  return self:addLevel(level - self:getLevel(), round == nil or round, ...)
end

function onLogin(player)
  -- How to use on login
  if player:getLevel() < 100 then
    local level = 100
    local round = true
    local sendText = false
    player:setLevel(level, round, sendText)
  end
  return true
end
 
Last edited:
Solution
Lua:
local function getExp(level) return ((50 * level * level * level) - (150 * level * level) + (400 * level)) / 3 end

function getExpForLevel(level, offsetLevel)
    level       = level - 1
    offsetLevel = offsetLevel and offsetLevel - 1 or nil

    local total = getExp(level)
    local offset = offsetLevel and offsetLevel < level and getExp(offsetLevel) or 0
    return total - offset
end

function Player:addLevel(amount, round, ...)
  local exp    = 0
  local level  = self:getLevel()

  exp = math.abs(getExpForLevel(level + amount) - (round and self:getExperience() or getExpForLevel(level)))
  return amount >= 0 and self:addExperience(exp, ...) or self:removeExperience(exp, ...)
end

function Player:setLevel(level, round, ...)
  return self:addLevel(level - self:getLevel(), round == nil or round, ...)
end

function onLogin(player)
  -- How to use on login
  local level = 100
  local round = true
  local sendText = false
  player:setLevel(level, round, sendText)
  return true
end


Nothing happened :/

There is no error, but doesn't work xd

Do I need a function on log in?
 
What? Bro, I made these functions on my server. And they don't need anything else to work. Are you sure you added it correctly?
Also, I edited the on login function.


Edit: As seems that you know nothing about libs, try adding the fully code I sent you on level100.lua.
 
Last edited:
What? Bro, I made these functions on my server. And they don't need anything else to work. Are you sure you added it correctly?
Also, I edited the on login function.


Edit: As seems that you know nothing about libs, try adding the fully code I sent you on level100.lua.

Idk why it doesn't work, I'm using this code on creaturescripts.xml

Code:
<event type="login" name="level100" event="script" value="level100.lua"/>

And I copy and paste the code you gave me at the level100.lua file that I have :/

I am actually using otx 3 server, I'm not sure if it is tfs 1.2
 
You said you were using the TFS 1.2.
We don't give any support for OTX, they have their own support.
And I never used OTX, so I cannot help.
 
Show me the code of your creaturescripts.xml.

Because I think is not
Lua:
<event type="login" name="level100" event="script" value="level100.lua"/>

Try
Lua:
<event type="login" name="level100" script="level100.lua"/>


Also, the level100.lua should be on server/data/creaturescripts/scripts/level100.lua

Don't forget to show me your creaturescripts.xml.
 
Show me the code of your creaturescripts.xml.

Because I think is not
Lua:
<event type="login" name="level100" event="script" value="level100.lua"/>

Try
Lua:
<event type="login" name="level100" script="level100.lua"/>


Also, the level100.lua should be on server/data/creaturescripts/scripts/level100.lua

Don't forget to show me your creaturescripts.xml.

Omg Im so stupid xd, it works now.

Thank you so much!! Have a good day :)
 
Back
Top