Updates for Unit Controller Script Commands
* Follow up to 2cee5b6. * Fixes #516 - Base stats (STR, AGI, etc) will now stick after the unit's statuses are recalculated. * Statuses are directly modifiable now (ATK, DEF, etc) * Created constant values so it's a lot easier to read. * Updated script command documentation to reflect changes.
This commit is contained in:
parent
27858bd43d
commit
e276970723
@ -7149,71 +7149,97 @@ Changing a homunculus or pet name will be permanent.
|
|||||||
|
|
||||||
This is used to get and set special data related to the unit.
|
This is used to get and set special data related to the unit.
|
||||||
With getunitdata, the array given will be filled with the current data. In setunitdata
|
With getunitdata, the array given will be filled with the current data. In setunitdata
|
||||||
the indexes in the array would be used to set that data on the unit.
|
the indexes in the array would be used to set that data on the unit.
|
||||||
|
|
||||||
|
Note: When adjusting a unit's stat (STR, AGI, etc) the unit's respective statuses are
|
||||||
|
recalculated (HIT, FLEE, etc) automatically. Keep in mind that some stats don't
|
||||||
|
affect a unit's status and will have to directly be modified.
|
||||||
|
|
||||||
Parameters (indexes) for monsters are:
|
Parameters (indexes) for monsters are:
|
||||||
|
UMOB_SIZE UMOB_Y UMOB_HAIRSTYLE UMOB_WEAPON UMOB_LUK UMOB_MDEF UMOB_ELELEVEL
|
||||||
|
UMOB_LEVEL UMOB_SPEED UMOB_HAIRCOLOR UMOB_LOOKDIR UMOB_SLAVECPYMSTRMD UMOB_HIT UMOB_AMOTION
|
||||||
|
UMOB_HP UMOB_MODE UMOB_HEADBOTTOM UMOB_STR UMOB_DMGIMMUNE UMOB_FLEE UMOB_ADELAY
|
||||||
|
UMOB_MAXHP UMOB_AI UMOB_HEADMIDDLE UMOB_AGI UMOB_ATKRANGE UMOB_PDODGE UMOB_DMOTION
|
||||||
|
UMOB_MASTERAID UMOB_SCOPTION UMOB_HEADTOP UMOB_VIT UMOB_ATK UMOB_CRIT
|
||||||
|
UMOB_MAPID UMOB_SEX UMOB_CLOTHCOLOR UMOB_INT UMOB_MATK UMOB_RACE
|
||||||
|
UMOB_X UMOB_CLASS UMOB_SHIELD UMOB_DEX UMOB_DEF UMOB_ELETYPE
|
||||||
|
|
||||||
0 - size (big, small, normal) 7 - y 14 - hair style 21 - weapon 28 - LUK
|
-----
|
||||||
1 - level 8 - speed 15 - hair color 22 - looking dir 29 - for slave to copy master's mode
|
|
||||||
2 - HP 9 - mode 16 - head gear bottom 23 - STR 30 - immune from attacks state
|
|
||||||
3 - max HP 10 - special AI state 17 - head gear middle 24 - AGI
|
|
||||||
4 - master AID 11 - SC option 18 - head gear top 25 - VIT
|
|
||||||
5 - map ID 12 - sex 19 - cloth color 26 - INT
|
|
||||||
6 - x 13 - class (Monster ID, Job ID) 20 - shield 27 - DEX
|
|
||||||
|
|
||||||
Parameter (indexes) for homunculi are:
|
Parameter (indexes) for homunculi are:
|
||||||
|
UHOM_SIZE UHOM_MAPID UHOM_CANMOVETICK UHOM_DMGIMMUNE UHOM_FLEE UHOM_ADELAY
|
||||||
|
UHOM_LEVEL UHOM_X UHOM_STR UHOM_ATKRANGE UHOM_PDODGE UHOM_DMOTION
|
||||||
|
UHOM_HP UHOM_Y UHOM_AGI UHOM_ATK UHOM_CRIT
|
||||||
|
UHOM_MAXHP UHOM_HUNGER UHOM_VIT UHOM_MATK UHOM_RACE
|
||||||
|
UHOM_SP UHOM_INTIMACY UHOM_INT UHOM_DEF UHOM_ELETYPE
|
||||||
|
UHOM_MAXSP UHOM_SPEED UHOM_DEX UHOM_MDEF UHOM_ELELEVEL
|
||||||
|
UHOM_MASTERCID UHOM_LOOKDIR UHOM_LUK UHOM_HIT UHOM_AMOTION
|
||||||
|
|
||||||
0 - size (big, small, normal) 7 - map ID 14 - canmove_tick 21 - immune from attacks state
|
-----
|
||||||
1 - level 8 - x 15 - STR
|
|
||||||
2 - HP 9 - y 16 - AGI
|
|
||||||
3 - max HP 10 - hunger 17 - VIT
|
|
||||||
4 - SP 11 - intimacy 18 - INT
|
|
||||||
5 - max SP 12 - speed 19 - DEX
|
|
||||||
6 - master Character ID 13 - looking dir 20 - LUK
|
|
||||||
|
|
||||||
Parameter (indexes) for pets are:
|
Parameter (indexes) for pets are:
|
||||||
|
UPET_SIZE UPET_Y UPET_AGI UPET_ATK UPET_CRIT
|
||||||
|
UPET_LEVEL UPET_HUNGER UPET_VIT UPET_MATK UPET_RACE
|
||||||
|
UPET_HP UPET_INTIMACY UPET_INT UPET_DEF UPET_ELETYPE
|
||||||
|
UPET_MAXHP UPET_SPEED UPET_DEX UPET_MDEF UPET_ELELEVEL
|
||||||
|
UPET_MASTERAID UPET_LOOKDIR UPET_LUK UPET_HIT UPET_AMOTION
|
||||||
|
UPET_MAPID UPET_CANMOVETICK UPET_DMGIMMUNE UPET_FLEE UPET_ADELAY
|
||||||
|
UPET_X UPET_STR UPET_ATKRANGE UPET_PDODGE UPET_DMOTION
|
||||||
|
|
||||||
0 - size (big, small, normal) 7 - y 14 - AGI
|
-----
|
||||||
1 - level 8 - hunger 15 - VIT
|
|
||||||
2 - HP 9 - intimacy 16 - INT
|
|
||||||
3 - max HP 10 - speed 17 - DEX
|
|
||||||
4 - master AID 11 - looking dir 18 - LUK
|
|
||||||
5 - map ID 12 - canmove_tick 19 - immune from attacks state
|
|
||||||
6 - x 13 - STR
|
|
||||||
|
|
||||||
Parameter (indexes) for mercenaries are:
|
Parameter (indexes) for mercenaries are:
|
||||||
|
UMER_SIZE UMER_KILLCOUNT UMER_VIT UMER_MATK UMER_RACE
|
||||||
|
UMER_HP UMER_LIFETIME UMER_INT UMER_DEF UMER_ELETYPE
|
||||||
|
UMER_MAXHP UMER_SPEED UMER_DEX UMER_MDEF UMER_ELELEVEL
|
||||||
|
UMER_MASTERCID UMER_LOOKDIR UMER_LUK UMER_HIT UMER_AMOTION
|
||||||
|
UMER_MAPID UMER_CANMOVETICK UMER_DMGIMMUNE UMER_FLEE UMER_ADELAY
|
||||||
|
UMER_X UMER_STR UMER_ATKRANGE UMER_PDODGE UMER_DMOTION
|
||||||
|
UMER_Y UMER_AGI UMER_ATK UMER_CRIT
|
||||||
|
|
||||||
0 - size (big, small, normal) 7 - kill count 14 - VIT
|
-----
|
||||||
1 - HP 8 - life time 15 - INT
|
|
||||||
2 - max HP 9 - speed 16 - DEX
|
|
||||||
3 - master Character ID 10 - looking dir 17 - LUK
|
|
||||||
4 - map ID 11 - canmove_tick 18 - immune from attacks state
|
|
||||||
5 - x 12 - STR
|
|
||||||
6 - y 13 - AGI
|
|
||||||
|
|
||||||
Parameter (indexes) for elementals are:
|
Parameter (indexes) for elementals are:
|
||||||
|
UELE_SIZE UELE_X UELE_STR UELE_ATKRANGE UELE_PDODGE UELE_DMOTION
|
||||||
|
UELE_HP UELE_Y UELE_AGI UELE_ATK UELE_CRIT
|
||||||
|
UELE_MAXHP UELE_LIFETIME UELE_VIT UELE_MATK UELE_RACE
|
||||||
|
UELE_SP UELE_MODE UELE_INT UELE_DEF UELE_ELETYPE
|
||||||
|
UELE_MAXSP UELE_SPEED UELE_DEX UELE_MDEF UELE_ELELEVEL
|
||||||
|
UELE_MASTERCID UELE_LOOKDIR UELE_LUK UELE_HIT UELE_AMOTION
|
||||||
|
UELE_MAPID UELE_CANMOVETICK UELE_DMGIMMUNE UELE_FLEE ELE_ADELAY
|
||||||
|
|
||||||
0 - size (big, small, normal) 7 - x 14 - STR
|
-----
|
||||||
1 - HP 8 - y 15 - AGI
|
|
||||||
2 - max HP 9 - life time 16 - VIT
|
|
||||||
3 - SP 10 - mode 17 - INT
|
|
||||||
4 - max SP 11 - speed 18 - DEX
|
|
||||||
5 - master Character ID 12 - looking dir 19 - LUK
|
|
||||||
6 - map ID 13 - canmove_tick 20 - immune from attacks state
|
|
||||||
|
|
||||||
Parameter (indexes) for NPCs are:
|
Parameter (indexes) for NPCs are:
|
||||||
|
UNPC_DISPLAY UNPC_LOOKDIR UNPC_PLUSALLSTAT UNPC_HIT UNPC_AMOTION
|
||||||
|
UNPC_LEVEL UNPC_STR UNPC_DMGIMMUNE UNPC_FLEE UNPC_ADELAY
|
||||||
|
UNPC_HP UNPC_AGI UNPC_ATKRANGE UNPC_PDODGE UNPC_DMOTION
|
||||||
|
UNPC_MAXHP UNPC_VIT UNPC_ATK UNPC_CRIT
|
||||||
|
UNPC_MAPID UNPC_INT UNPC_MATK UNPC_RACE
|
||||||
|
UNPC_X UNPC_DEX UNPC_DEF UNPC_ELETYPE
|
||||||
|
UNPC_Y UNPC_LUK UNPC_MDEF UNPC_ELELEVEL
|
||||||
|
|
||||||
0 - display 7 - looking dir
|
*Notes:
|
||||||
1 - level 8 - STR
|
- *_SIZE: small (0); medium (1); large (2)
|
||||||
2 - HP 9 - AGI
|
- *_MAPID: this refers to the map_data index (from src/map/map.c), not the mapindex_db index (from src/common/mapindex.c)
|
||||||
3 - max HP 10 - VIT
|
-- For 'setunitdata', map name can also be passed in as a valid value instead of map ID
|
||||||
4 - map ID 11 - INT
|
- *_SPEED: 20 - 1000
|
||||||
5 - x 12 - DEX
|
- *_MODE: see doc/mob_db_mode_list.txt
|
||||||
6 - y 13 - LUK
|
- *_LOOKDIR: north (0), northwest (1), west (2), etc
|
||||||
|
- *_CANMOVETICK: seconds * 1000 the unit will be unable to move
|
||||||
|
- *_DMGIMMUNE: unit will be immune to damage (1), or will receive damage (0)
|
||||||
|
- *_HUNGER: 0 - 100
|
||||||
|
- *_INTIMACY: 0 - 1000
|
||||||
|
- *_LIFETIME: seconds * 1000 the unit will be 'alive' for
|
||||||
|
- *_AMOTION: see doc/mob_db.txt
|
||||||
|
- *_ADELAY: see doc/mob_db.txt
|
||||||
|
- *_DMOTION: see doc/mob_db.txt
|
||||||
|
|
||||||
*Notes: For mode, see doc/mob_db_mode_list.txt
|
- UMOB_AI: none (0); attack (1); marine sphere (2); flora (3); zanzou (4); legion (5); faw (6)
|
||||||
For map ID, this refers to the map_data index (from src/map/map.c), not the mapindex_db index (from src/common/mapindex.c)
|
- UMOB_SCOPTION: see the 'Variables' section at the top of this document
|
||||||
For 'setunitdata', map name can also be passed in as a valid value instead of map ID
|
- UMOB_SLAVECPYMSTRMD: make the slave copy the master's mode (1), or not (0)
|
||||||
|
|
||||||
|
- UNPC_PLUSALLSTAT: same as 'bAllStats'; increases/decreses all stats by given amount
|
||||||
|
|
||||||
Example:
|
Example:
|
||||||
// Spawn some Porings and save the Game ID.
|
// Spawn some Porings and save the Game ID.
|
||||||
@ -7228,7 +7254,7 @@ Example:
|
|||||||
getunitdata .GID,@por_arr;
|
getunitdata .GID,@por_arr;
|
||||||
|
|
||||||
// Set the max HP of the Poring to 1000 (current HP will also get updated to 1000).
|
// Set the max HP of the Poring to 1000 (current HP will also get updated to 1000).
|
||||||
setunitdata .GID,3,1000;
|
setunitdata .GID,UMOB_MAXHP,1000;
|
||||||
|
|
||||||
---------------------------------------
|
---------------------------------------
|
||||||
|
|
||||||
|
939
src/map/script.c
939
src/map/script.c
File diff suppressed because it is too large
Load Diff
237
src/map/script.h
237
src/map/script.h
@ -297,6 +297,243 @@ enum script_parse_options {
|
|||||||
SCRIPT_RETURN_EMPTY_SCRIPT = 0x4// returns the script object instead of NULL for empty scripts
|
SCRIPT_RETURN_EMPTY_SCRIPT = 0x4// returns the script object instead of NULL for empty scripts
|
||||||
};
|
};
|
||||||
|
|
||||||
|
enum unitdata_mobtypes {
|
||||||
|
UMOB_SIZE = 0,
|
||||||
|
UMOB_LEVEL,
|
||||||
|
UMOB_HP,
|
||||||
|
UMOB_MAXHP,
|
||||||
|
UMOB_MASTERAID,
|
||||||
|
UMOB_MAPID,
|
||||||
|
UMOB_X,
|
||||||
|
UMOB_Y,
|
||||||
|
UMOB_SPEED,
|
||||||
|
UMOB_MODE,
|
||||||
|
UMOB_AI,
|
||||||
|
UMOB_SCOPTION,
|
||||||
|
UMOB_SEX,
|
||||||
|
UMOB_CLASS,
|
||||||
|
UMOB_HAIRSTYLE,
|
||||||
|
UMOB_HAIRCOLOR,
|
||||||
|
UMOB_HEADBOTTOM,
|
||||||
|
UMOB_HEADMIDDLE,
|
||||||
|
UMOB_HEADTOP,
|
||||||
|
UMOB_CLOTHCOLOR,
|
||||||
|
UMOB_SHIELD,
|
||||||
|
UMOB_WEAPON,
|
||||||
|
UMOB_LOOKDIR,
|
||||||
|
UMOB_STR,
|
||||||
|
UMOB_AGI,
|
||||||
|
UMOB_VIT,
|
||||||
|
UMOB_INT,
|
||||||
|
UMOB_DEX,
|
||||||
|
UMOB_LUK,
|
||||||
|
UMOB_SLAVECPYMSTRMD,
|
||||||
|
UMOB_DMGIMMUNE,
|
||||||
|
UMOB_ATKRANGE,
|
||||||
|
UMOB_ATK,
|
||||||
|
UMOB_MATK,
|
||||||
|
UMOB_DEF,
|
||||||
|
UMOB_MDEF,
|
||||||
|
UMOB_HIT,
|
||||||
|
UMOB_FLEE,
|
||||||
|
UMOB_PDODGE,
|
||||||
|
UMOB_CRIT,
|
||||||
|
UMOB_RACE,
|
||||||
|
UMOB_ELETYPE,
|
||||||
|
UMOB_ELELEVEL,
|
||||||
|
UMOB_AMOTION,
|
||||||
|
UMOB_ADELAY,
|
||||||
|
UMOB_DMOTION,
|
||||||
|
};
|
||||||
|
|
||||||
|
enum unitdata_homuntypes {
|
||||||
|
UHOM_SIZE = 0,
|
||||||
|
UHOM_LEVEL,
|
||||||
|
UHOM_HP,
|
||||||
|
UHOM_MAXHP,
|
||||||
|
UHOM_SP,
|
||||||
|
UHOM_MAXSP,
|
||||||
|
UHOM_MASTERCID,
|
||||||
|
UHOM_MAPID,
|
||||||
|
UHOM_X,
|
||||||
|
UHOM_Y,
|
||||||
|
UHOM_HUNGER,
|
||||||
|
UHOM_INTIMACY,
|
||||||
|
UHOM_SPEED,
|
||||||
|
UHOM_LOOKDIR,
|
||||||
|
UHOM_CANMOVETICK,
|
||||||
|
UHOM_STR,
|
||||||
|
UHOM_AGI,
|
||||||
|
UHOM_VIT,
|
||||||
|
UHOM_INT,
|
||||||
|
UHOM_DEX,
|
||||||
|
UHOM_LUK,
|
||||||
|
UHOM_DMGIMMUNE,
|
||||||
|
UHOM_ATKRANGE,
|
||||||
|
UHOM_ATK,
|
||||||
|
UHOM_MATK,
|
||||||
|
UHOM_DEF,
|
||||||
|
UHOM_MDEF,
|
||||||
|
UHOM_HIT,
|
||||||
|
UHOM_FLEE,
|
||||||
|
UHOM_PDODGE,
|
||||||
|
UHOM_CRIT,
|
||||||
|
UHOM_RACE,
|
||||||
|
UHOM_ELETYPE,
|
||||||
|
UHOM_ELELEVEL,
|
||||||
|
UHOM_AMOTION,
|
||||||
|
UHOM_ADELAY,
|
||||||
|
UHOM_DMOTION,
|
||||||
|
};
|
||||||
|
|
||||||
|
enum unitdata_pettypes {
|
||||||
|
UPET_SIZE = 0,
|
||||||
|
UPET_LEVEL,
|
||||||
|
UPET_HP,
|
||||||
|
UPET_MAXHP,
|
||||||
|
UPET_MASTERAID,
|
||||||
|
UPET_MAPID,
|
||||||
|
UPET_X,
|
||||||
|
UPET_Y,
|
||||||
|
UPET_HUNGER,
|
||||||
|
UPET_INTIMACY,
|
||||||
|
UPET_SPEED,
|
||||||
|
UPET_LOOKDIR,
|
||||||
|
UPET_CANMOVETICK,
|
||||||
|
UPET_STR,
|
||||||
|
UPET_AGI,
|
||||||
|
UPET_VIT,
|
||||||
|
UPET_INT,
|
||||||
|
UPET_DEX,
|
||||||
|
UPET_LUK,
|
||||||
|
UPET_DMGIMMUNE,
|
||||||
|
UPET_ATKRANGE,
|
||||||
|
UPET_ATK,
|
||||||
|
UPET_MATK,
|
||||||
|
UPET_DEF,
|
||||||
|
UPET_MDEF,
|
||||||
|
UPET_HIT,
|
||||||
|
UPET_FLEE,
|
||||||
|
UPET_PDODGE,
|
||||||
|
UPET_CRIT,
|
||||||
|
UPET_RACE,
|
||||||
|
UPET_ELETYPE,
|
||||||
|
UPET_ELELEVEL,
|
||||||
|
UPET_AMOTION,
|
||||||
|
UPET_ADELAY,
|
||||||
|
UPET_DMOTION,
|
||||||
|
};
|
||||||
|
|
||||||
|
enum unitdata_merctypes {
|
||||||
|
UMER_SIZE = 0,
|
||||||
|
UMER_HP,
|
||||||
|
UMER_MAXHP,
|
||||||
|
UMER_MASTERCID,
|
||||||
|
UMER_MAPID,
|
||||||
|
UMER_X,
|
||||||
|
UMER_Y,
|
||||||
|
UMER_KILLCOUNT,
|
||||||
|
UMER_LIFETIME,
|
||||||
|
UMER_SPEED,
|
||||||
|
UMER_LOOKDIR,
|
||||||
|
UMER_CANMOVETICK,
|
||||||
|
UMER_STR,
|
||||||
|
UMER_AGI,
|
||||||
|
UMER_VIT,
|
||||||
|
UMER_INT,
|
||||||
|
UMER_DEX,
|
||||||
|
UMER_LUK,
|
||||||
|
UMER_DMGIMMUNE,
|
||||||
|
UMER_ATKRANGE,
|
||||||
|
UMER_ATK,
|
||||||
|
UMER_MATK,
|
||||||
|
UMER_DEF,
|
||||||
|
UMER_MDEF,
|
||||||
|
UMER_HIT,
|
||||||
|
UMER_FLEE,
|
||||||
|
UMER_PDODGE,
|
||||||
|
UMER_CRIT,
|
||||||
|
UMER_RACE,
|
||||||
|
UMER_ELETYPE,
|
||||||
|
UMER_ELELEVEL,
|
||||||
|
UMER_AMOTION,
|
||||||
|
UMER_ADELAY,
|
||||||
|
UMER_DMOTION,
|
||||||
|
};
|
||||||
|
|
||||||
|
enum unitdata_elemtypes {
|
||||||
|
UELE_SIZE = 0,
|
||||||
|
UELE_HP,
|
||||||
|
UELE_MAXHP,
|
||||||
|
UELE_SP,
|
||||||
|
UELE_MAXSP,
|
||||||
|
UELE_MASTERCID,
|
||||||
|
UELE_MAPID,
|
||||||
|
UELE_X,
|
||||||
|
UELE_Y,
|
||||||
|
UELE_LIFETIME,
|
||||||
|
UELE_MODE,
|
||||||
|
UELE_SPEED,
|
||||||
|
UELE_LOOKDIR,
|
||||||
|
UELE_CANMOVETICK,
|
||||||
|
UELE_STR,
|
||||||
|
UELE_AGI,
|
||||||
|
UELE_VIT,
|
||||||
|
UELE_INT,
|
||||||
|
UELE_DEX,
|
||||||
|
UELE_LUK,
|
||||||
|
UELE_DMGIMMUNE,
|
||||||
|
UELE_ATKRANGE,
|
||||||
|
UELE_ATK,
|
||||||
|
UELE_MATK,
|
||||||
|
UELE_DEF,
|
||||||
|
UELE_MDEF,
|
||||||
|
UELE_HIT,
|
||||||
|
UELE_FLEE,
|
||||||
|
UELE_PDODGE,
|
||||||
|
UELE_CRIT,
|
||||||
|
UELE_RACE,
|
||||||
|
UELE_ELETYPE,
|
||||||
|
UELE_ELELEVEL,
|
||||||
|
UELE_AMOTION,
|
||||||
|
UELE_ADELAY,
|
||||||
|
UELE_DMOTION,
|
||||||
|
};
|
||||||
|
|
||||||
|
enum unitdata_npctypes {
|
||||||
|
UNPC_DISPLAY = 0,
|
||||||
|
UNPC_LEVEL,
|
||||||
|
UNPC_HP,
|
||||||
|
UNPC_MAXHP,
|
||||||
|
UNPC_MAPID,
|
||||||
|
UNPC_X,
|
||||||
|
UNPC_Y,
|
||||||
|
UNPC_LOOKDIR,
|
||||||
|
UNPC_STR,
|
||||||
|
UNPC_AGI,
|
||||||
|
UNPC_VIT,
|
||||||
|
UNPC_INT,
|
||||||
|
UNPC_DEX,
|
||||||
|
UNPC_LUK,
|
||||||
|
UNPC_PLUSALLSTAT,
|
||||||
|
UNPC_DMGIMMUNE,
|
||||||
|
UNPC_ATKRANGE,
|
||||||
|
UNPC_ATK,
|
||||||
|
UNPC_MATK,
|
||||||
|
UNPC_DEF,
|
||||||
|
UNPC_MDEF,
|
||||||
|
UNPC_HIT,
|
||||||
|
UNPC_FLEE,
|
||||||
|
UNPC_PDODGE,
|
||||||
|
UNPC_CRIT,
|
||||||
|
UNPC_RACE,
|
||||||
|
UNPC_ELETYPE,
|
||||||
|
UNPC_ELELEVEL,
|
||||||
|
UNPC_AMOTION,
|
||||||
|
UNPC_ADELAY,
|
||||||
|
UNPC_DMOTION,
|
||||||
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* used to generate quick script_array entries
|
* used to generate quick script_array entries
|
||||||
**/
|
**/
|
||||||
|
Loading…
x
Reference in New Issue
Block a user