-
Notifications
You must be signed in to change notification settings - Fork 1
builtin life
This document describes functions available to life type objects (characters, mobs, NPCs).
- message
- hp
- mp
- heal
- damage
- mp_up
- mp_down
- action
- spell
- spells
- cast
- cc
- add_cc
- remove_cc
- attack
- damage_rate
- damage_derate
- skill_damage_rate
- paralysis
- invincible
- cover
- base_hp
- buff_hp
- maxhp
- base_mp
- buff_mp
- maxmp
- base_str
- buff_str
- str
- base_dex
- buff_dex
- dex
- base_int
- buff_int
- int
- base_phydef
- buff_phydef
- phydef
- base_magdef
- buff_magdef
- magdef
- base_dam
- buff_dam
- dam
- base_hit
- buff_hit
- hit
- normal_attack_damage
- update
-
Description:
Sends a message to the life object. Only works for character objects. -
Parameters:
-
text:string: Message text to send -
[type:MESSAGE_TYPE]: Message type (default: MESSAGE_TYPE.STATE)
-
-
Return Value:
- None
-
Example:
-- This is a real usage example from game scripts me:message("Hello world!") me:message("Important message", MESSAGE_TYPE.NOTIFY)
Provides functionality to get or set the life object's HP.
-
Description:
Returns the current HP of the life object. -
Parameters:
- None
-
Return Value:
-
number: Current HP value
-
-
Example:
-- This is a real usage example from game scripts local current_hp = me:hp() me:message("Your HP: " .. current_hp)
-
Description:
Sets the life object's HP to the specified value. -
Parameters:
-
value:number: HP value to set
-
-
Return Value:
- None
-
Example:
-- This is a real usage example from game scripts me:hp(me:maxhp()) -- Set to full HP
Provides functionality to get or set the life object's MP.
-
Description:
Returns the current MP of the life object. -
Parameters:
- None
-
Return Value:
-
number: Current MP value
-
-
Example:
-- This is a real usage example from game scripts local current_mp = me:mp() me:message("Your MP: " .. current_mp)
-
Description:
Sets the life object's MP to the specified value. -
Parameters:
-
value:number: MP value to set
-
-
Return Value:
- None
-
Example:
-- This is a real usage example from game scripts me:mp(me:maxmp()) -- Set to full MP
-
Description:
Heals the life object by the specified amount of HP. -
Parameters:
-
amount:number: Amount of HP to heal
-
-
Return Value:
- None
-
Example:
-- This is a real usage example from game scripts me:heal(100) -- Heal 100 HP
-
Description:
Deals damage to this life object. -
Parameters:
-
amount:number: Amount of damage to deal -
[from:fb.game.life]: Life object that is dealing the damage -
[critical:boolean]: Whether this is a critical hit (default: false)
-
-
Return Value:
- None
-
Example:
-- This is a real usage example from game scripts target:damage(50) -- Deal 50 damage target:damage(50, me) -- Deal 50 damage from me target:damage(50, me, true) -- Deal 50 critical damage from me
-
Description:
Increases the life object's MP by the specified amount. -
Parameters:
-
amount:number: Amount of MP to add
-
-
Return Value:
- None
-
Example:
-- This is a real usage example from game scripts me:mp_up(50) -- Restore 50 MP
-
Description:
Decreases the life object's MP by the specified amount. -
Parameters:
-
amount:number: Amount of MP to reduce
-
-
Return Value:
- None
-
Example:
-- This is a real usage example from game scripts me:mp_down(30) -- Consume 30 MP
-
Description:
Makes the life object perform an action. -
Parameters:
-
action:ACTION: Action to perform -
[duration:DURATION]: Duration of the action (default: DURATION.SPELL) -
[sound:number]: Sound effect ID to play (default: 0)
-
-
Return Value:
- None
-
Example:
-- This is a real usage example from game scripts me:action(ACTION.PICKUP) -- Default duration me:action(ACTION.PICKUP, DURATION.PICKUP) -- Custom duration me:action(ACTION.PICKUP, DURATION.PICKUP, 1) -- With sound effect
Provides functionality to get a known spell by slot index, name, or model.
-
Description:
Returns the spell in the given slot index. -
Parameters:
-
slot:number: Spell slot index
-
-
Return Value:
-
fb.game.spell|nil: Spell object or nil if the slot is empty
-
-
Example:
-- This is a real usage example from game scripts local spell = me:spell(1)
-
Description:
Returns the spell with the given name if the life object knows it. -
Parameters:
-
name:string: Spell name
-
-
Return Value:
-
fb.game.spell|nil: Spell object or nil if not found
-
-
Example:
-- This is a real usage example from game scripts local spell = me:spell("비영사천문") if spell then me:message("Found spell: " .. spell:model():name()) end
-
Description:
Returns the spell matching the given spell model if the life object knows it. -
Parameters:
-
model:fb.model.spell: Spell model object
-
-
Return Value:
-
fb.game.spell|nil: Spell object or nil if not found
-
-
Example:
-- This is a real usage example from game scripts local model = name2spell("비영사천문") local spell = me:spell(model)
-
Description:
Returns a table containing all spells known by the life object. -
Parameters:
- None
-
Return Value:
-
table: Table with slot indices as keys and spell objects as values
-
-
Example:
-- This is a real usage example from game scripts for slot, spell in pairs(me:spells()) do me:message("Slot " .. slot .. ": " .. spell:model():name()) end
-
Description:
Casts a spell on a target or self. -
Parameters:
-
spell:string: Spell name to cast -
[target:fb.game.life]: Target to cast the spell on (defaults to self for self-target spells)
-
-
Return Value:
- None
-
Example:
-- This is a real usage example from game scripts me:cast("생명의기원") -- Cast on self me:cast("생명의기원", target) -- Cast on target
Provides functionality to get or set crowd control effects.
-
Description:
Returns the current crowd control state. -
Parameters:
- None
-
Return Value:
-
number: Current CC state value
-
-
Example:
-- This is a real usage example from game scripts local cc_state = me:cc() me:message("CC state: " .. cc_state)
-
Description:
Sets the crowd control state. -
Parameters:
-
value:number: CC state value to set
-
-
Return Value:
- None
-
Example:
-- This is a real usage example from game scripts me:cc(0) -- Remove all CC effects
-
Description:
Adds a crowd control effect to the life object. -
Parameters:
-
cc_type:CROWD_CONTROL: Type of CC effect to add
-
-
Return Value:
- None
-
Example:
-- This is a real usage example from game scripts me:add_cc(CROWD_CONTROL.STUN)
-
Description:
Removes a crowd control effect from the life object. -
Parameters:
-
cc_type:CROWD_CONTROL: Type of CC effect to remove
-
-
Return Value:
- None
-
Example:
-- This is a real usage example from game scripts me:remove_cc(CROWD_CONTROL.STUN)
-
Description:
Performs a basic attack on the current target. -
Parameters:
-
[duration:DURATION]: Attack duration type (default: DURATION.ATTACK)
-
-
Return Value:
- None
-
Example:
-- This is a real usage example from game scripts me:attack() -- Basic attack with default duration me:attack(DURATION.ATTACK) -- Explicit duration
Provides functionality to get or set the life object's damage rate.
-
Description:
Returns the current damage rate of the life object. -
Parameters:
- None
-
Return Value:
-
number: Current damage rate value
-
-
Example:
-- This is a real usage example from game scripts local rate = me:damage_rate() me:message("Current damage rate: " .. rate)
-
Description:
Sets the life object's damage rate to the specified value. -
Parameters:
-
value:number: Damage rate value to set
-
-
Return Value:
- None
-
Example:
-- This is a real usage example from game scripts me:damage_rate(150) -- Set damage rate to 150%
Provides functionality to get or set the life object's damage reduction rate.
-
Description:
Returns the current damage reduction rate of the life object. -
Parameters:
- None
-
Return Value:
-
number: Current damage reduction rate value
-
-
Example:
-- This is a real usage example from game scripts local rate = me:damage_derate() me:message("Current damage reduction: " .. rate)
-
Description:
Sets the life object's damage reduction rate to the specified value. -
Parameters:
-
value:number: Damage reduction rate value to set
-
-
Return Value:
- None
-
Example:
-- This is a real usage example from game scripts me:damage_derate(50) -- Set damage reduction to 50%
Provides functionality to get or set the life object's skill damage rate.
-
Description:
Returns the current skill damage rate of the life object. -
Parameters:
- None
-
Return Value:
-
number: Current skill damage rate value
-
-
Example:
-- This is a real usage example from game scripts local rate = me:skill_damage_rate() me:message("Current skill damage rate: " .. rate)
-
Description:
Sets the life object's skill damage rate to the specified value. -
Parameters:
-
value:number: Skill damage rate value to set
-
-
Return Value:
- None
-
Example:
-- This is a real usage example from game scripts me:skill_damage_rate(150) -- Set skill damage rate to 150%
Provides functionality to get or set the life object's paralysis state.
-
Description:
Returns whether the life object is paralyzed. -
Parameters:
- None
-
Return Value:
-
boolean: True if paralyzed, false otherwise
-
-
Example:
-- This is a real usage example from game scripts if me:paralysis() then me:message("You are paralyzed!") end
-
Description:
Sets the life object's paralysis state. -
Parameters:
-
value:boolean: True to paralyze, false to remove paralysis
-
-
Return Value:
- None
-
Example:
-- This is a real usage example from game scripts me:paralysis(true) -- Paralyze me:paralysis(false) -- Remove paralysis
Provides functionality to get or set the life object's invincibility state.
-
Description:
Returns whether the life object is invincible. -
Parameters:
- None
-
Return Value:
-
boolean: True if invincible, false otherwise
-
-
Example:
-- This is a real usage example from game scripts if me:invincible() then me:message("You are invincible!") end
-
Description:
Sets the life object's invincibility state. -
Parameters:
-
value:boolean: True to make invincible, false to make vulnerable
-
-
Return Value:
- None
-
Example:
-- This is a real usage example from game scripts me:invincible(true) -- Make invincible me:invincible(false) -- Make vulnerable
Provides functionality to get or set the life object's cover state.
-
Description:
Returns whether the life object is in cover. -
Parameters:
- None
-
Return Value:
-
boolean: True if in cover, false otherwise
-
-
Example:
-- This is a real usage example from game scripts if me:cover() then me:message("You are in cover!") end
-
Description:
Sets the life object's cover state. -
Parameters:
-
value:boolean: True to enter cover, false to exit cover
-
-
Return Value:
- None
-
Example:
-- This is a real usage example from game scripts me:cover(true) -- Enter cover me:cover(false) -- Exit cover
Provides functionality to get or set base HP.
-
Description:
Returns the base HP value (without buffs or equipment). -
Parameters:
- None
-
Return Value:
-
number: Base HP value
-
-
Example:
-- This is a real usage example from game scripts local base_hp = me:base_hp() me:message("Base HP: " .. base_hp)
-
Description:
Sets the base HP value. -
Parameters:
-
value:number: Base HP to set
-
-
Return Value:
- None
-
Example:
-- This is a real usage example from game scripts me:base_hp(1000)
Provides functionality to get or set the life object's HP buff value.
-
Description:
Returns the current HP buff value of the life object. -
Parameters:
- None
-
Return Value:
-
number: Current HP buff value
-
-
Example:
-- This is a real usage example from game scripts local buff = me:buff_hp() me:message("Current HP buff: " .. buff)
-
Description:
Sets the life object's HP buff value. -
Parameters:
-
value:number: HP buff value to set
-
-
Return Value:
- None
-
Example:
-- This is a real usage example from game scripts me:buff_hp(1000) -- Add 1000 HP from buffs
-
Description:
Returns the maximum HP (base HP + buff HP + equipment bonuses). -
Parameters:
- None
-
Return Value:
-
number: Maximum HP value
-
-
Example:
-- This is a real usage example from game scripts local max_hp = me:maxhp() me:message("Max HP: " .. max_hp)
Provides functionality to get or set base MP.
-
Description:
Returns the base MP value (without buffs or equipment). -
Parameters:
- None
-
Return Value:
-
number: Base MP value
-
-
Example:
-- This is a real usage example from game scripts local base_mp = me:base_mp() me:message("Base MP: " .. base_mp)
-
Description:
Sets the base MP value. -
Parameters:
-
value:number: Base MP to set
-
-
Return Value:
- None
-
Example:
-- This is a real usage example from game scripts me:base_mp(500)
Provides functionality to get or set the life object's MP buff value.
-
Description:
Returns the current MP buff value of the life object. -
Parameters:
- None
-
Return Value:
-
number: Current MP buff value
-
-
Example:
-- This is a real usage example from game scripts local buff = me:buff_mp() me:message("Current MP buff: " .. buff)
-
Description:
Sets the life object's MP buff value. -
Parameters:
-
value:number: MP buff value to set
-
-
Return Value:
- None
-
Example:
-- This is a real usage example from game scripts me:buff_mp(500) -- Add 500 MP from buffs
-
Description:
Returns the maximum MP (base MP + buff MP + equipment bonuses). -
Parameters:
- None
-
Return Value:
-
number: Maximum MP value
-
-
Example:
-- This is a real usage example from game scripts local max_mp = me:maxmp() me:message("Max MP: " .. max_mp)
Provides functionality to get or set base strength.
-
Description:
Returns the base strength value (without buffs or equipment). -
Parameters:
- None
-
Return Value:
-
number: Base strength value
-
-
Example:
-- This is a real usage example from game scripts local base_str = me:base_str() me:message("Base strength: " .. base_str)
-
Description:
Sets the base strength value. -
Parameters:
-
value:number: Base strength to set
-
-
Return Value:
- None
-
Example:
-- This is a real usage example from game scripts me:base_str(50)
Provides functionality to get or set the life object's STR buff value.
-
Description:
Returns the current STR buff value of the life object. -
Parameters:
- None
-
Return Value:
-
number: Current STR buff value
-
-
Example:
-- This is a real usage example from game scripts local buff = me:buff_str() me:message("Current STR buff: " .. buff)
-
Description:
Sets the life object's STR buff value. -
Parameters:
-
value:number: STR buff value to set
-
-
Return Value:
- None
-
Example:
-- This is a real usage example from game scripts me:buff_str(10)
-
Description:
Returns the total strength value (base + buff combined). -
Parameters:
- None
-
Return Value:
-
number: Total strength value
-
-
Example:
-- This is a real usage example from game scripts local total_str = me:str() me:message("Total STR: " .. total_str)
Provides functionality to get the base dexterity value.
-
Description:
Returns the base dexterity value (without buffs). -
Parameters:
- None
-
Return Value:
-
number: Base dexterity value
-
-
Example:
-- This is a real usage example from game scripts local base_dex = me:base_dex() me:message("Base DEX: " .. base_dex)
Provides functionality to get or set the DEX buff value.
-
Description:
Returns the current DEX buff value. -
Parameters:
- None
-
Return Value:
-
number: Current DEX buff value
-
-
Example:
-- This is a real usage example from game scripts local buff = me:buff_dex() me:message("DEX buff: " .. buff)
-
Description:
Sets the DEX buff value. -
Parameters:
-
value:number: DEX buff to set
-
-
Return Value:
- None
-
Example:
-- This is a real usage example from game scripts me:buff_dex(5)
-
Description:
Returns the total dexterity value (base + buff combined). -
Parameters:
- None
-
Return Value:
-
number: Total dexterity value
-
-
Example:
-- This is a real usage example from game scripts local total_dex = me:dex() me:message("Total DEX: " .. total_dex)
Provides functionality to get the base intelligence value.
-
Description:
Returns the base intelligence value (without buffs). -
Parameters:
- None
-
Return Value:
-
number: Base intelligence value
-
-
Example:
-- This is a real usage example from game scripts local base_int = me:base_int() me:message("Base INT: " .. base_int)
Provides functionality to get or set the INT buff value.
-
Description:
Returns the current INT buff value. -
Parameters:
- None
-
Return Value:
-
number: Current INT buff value
-
-
Example:
-- This is a real usage example from game scripts local buff = me:buff_int() me:message("INT buff: " .. buff)
-
Description:
Sets the INT buff value. -
Parameters:
-
value:number: INT buff to set
-
-
Return Value:
- None
-
Example:
-- This is a real usage example from game scripts me:buff_int(10)
-
Description:
Returns the total intelligence value (base + buff combined). Note: the Lua function name isint. -
Parameters:
- None
-
Return Value:
-
number: Total intelligence value
-
-
Example:
-- This is a real usage example from game scripts local total_int = me:int() me:message("Total INT: " .. total_int)
Provides functionality to get the base physical defense value.
-
Description:
Returns the base physical defense value (without buffs). -
Parameters:
- None
-
Return Value:
-
number: Base physical defense value
-
-
Example:
-- This is a real usage example from game scripts local base_phydef = me:base_phydef() me:message("Base PHYDEF: " .. base_phydef)
Provides functionality to get or set the physical defense buff value.
-
Description:
Returns the current physical defense buff value. -
Parameters:
- None
-
Return Value:
-
number: Current physical defense buff value
-
-
Example:
-- This is a real usage example from game scripts local buff = me:buff_phydef() me:message("PHYDEF buff: " .. buff)
-
Description:
Sets the physical defense buff value. -
Parameters:
-
value:number: Physical defense buff to set
-
-
Return Value:
- None
-
Example:
-- This is a real usage example from game scripts me:buff_phydef(15)
-
Description:
Returns the total physical defense value (base + buff combined). -
Parameters:
- None
-
Return Value:
-
number: Total physical defense value
-
-
Example:
-- This is a real usage example from game scripts local total_phydef = me:phydef() me:message("Total PHYDEF: " .. total_phydef)
Provides functionality to get the base magical defense value.
-
Description:
Returns the base magical defense value (without buffs). -
Parameters:
- None
-
Return Value:
-
number: Base magical defense value
-
-
Example:
-- This is a real usage example from game scripts local base_magdef = me:base_magdef() me:message("Base MAGDEF: " .. base_magdef)
Provides functionality to get or set the magical defense buff value.
-
Description:
Returns the current magical defense buff value. -
Parameters:
- None
-
Return Value:
-
number: Current magical defense buff value
-
-
Example:
-- This is a real usage example from game scripts local buff = me:buff_magdef() me:message("MAGDEF buff: " .. buff)
-
Description:
Sets the magical defense buff value. -
Parameters:
-
value:number: Magical defense buff to set
-
-
Return Value:
- None
-
Example:
-- This is a real usage example from game scripts me:buff_magdef(10)
-
Description:
Returns the total magical defense value (base + buff combined). -
Parameters:
- None
-
Return Value:
-
number: Total magical defense value
-
-
Example:
-- This is a real usage example from game scripts local total_magdef = me:magdef() me:message("Total MAGDEF: " .. total_magdef)
Provides functionality to get the base damage bonus value.
-
Description:
Returns the base damage bonus value (without buffs). -
Parameters:
- None
-
Return Value:
-
number: Base damage bonus value
-
-
Example:
-- This is a real usage example from game scripts local base_dam = me:base_dam() me:message("Base DAM: " .. base_dam)
Provides functionality to get or set the damage bonus buff value.
-
Description:
Returns the current damage bonus buff value. -
Parameters:
- None
-
Return Value:
-
number: Current damage bonus buff value
-
-
Example:
-- This is a real usage example from game scripts local buff = me:buff_dam() me:message("DAM buff: " .. buff)
-
Description:
Sets the damage bonus buff value. -
Parameters:
-
value:number: Damage bonus buff to set
-
-
Return Value:
- None
-
Example:
-- This is a real usage example from game scripts me:buff_dam(5)
-
Description:
Returns the total damage bonus value (base + buff combined). -
Parameters:
- None
-
Return Value:
-
number: Total damage bonus value
-
-
Example:
-- This is a real usage example from game scripts local total_dam = me:dam() me:message("Total DAM: " .. total_dam)
Provides functionality to get the base hit rate value.
-
Description:
Returns the base hit rate value (without buffs). -
Parameters:
- None
-
Return Value:
-
number: Base hit rate value
-
-
Example:
-- This is a real usage example from game scripts local base_hit = me:base_hit() me:message("Base HIT: " .. base_hit)
Provides functionality to get or set the hit rate buff value.
-
Description:
Returns the current hit rate buff value. -
Parameters:
- None
-
Return Value:
-
number: Current hit rate buff value
-
-
Example:
-- This is a real usage example from game scripts local buff = me:buff_hit() me:message("HIT buff: " .. buff)
-
Description:
Sets the hit rate buff value. -
Parameters:
-
value:number: Hit rate buff to set
-
-
Return Value:
- None
-
Example:
-- This is a real usage example from game scripts me:buff_hit(3)
-
Description:
Returns the total hit rate value (base + buff combined). -
Parameters:
- None
-
Return Value:
-
number: Total hit rate value
-
-
Example:
-- This is a real usage example from game scripts local total_hit = me:hit() me:message("Total HIT: " .. total_hit)
-
Description:
Calculates the normal attack damage that would be dealt based on mob size. -
Parameters:
-
[size:MOB_SIZE]: Target mob size (default: MOB_SIZE.SMALL)
-
-
Return Value:
-
number: Calculated normal attack damage
-
-
Example:
-- This is a real usage example from game scripts local damage_small = me:normal_attack_damage(MOB_SIZE.SMALL) local damage_large = me:normal_attack_damage(MOB_SIZE.LARGE) me:message("Damage to small: " .. damage_small) me:message("Damage to large: " .. damage_large)
-
Description:
Sends a stat update packet to synchronize the life object's current stats with the client. By default updates HP/MP and base stats. The optional level parameter controls which stats are sent. -
Parameters:
-
[level:UPDATE_STATE_LEVEL]: Update level flags (default: HP_MP | BASED)
-
-
Return Value:
- None
-
Example:
-- This is a real usage example from game scripts me:base_str(me:base_str() + 5) me:update()