00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00031 typedef struct _level_color
00032 {
00034 int green;
00035
00037 int blue;
00038
00040 int yellow;
00041
00043 int orange;
00044
00046 int red;
00047
00049 int purple;
00050 }_level_color;
00051
00052 extern _level_color level_color[201];
00053
00055 enum
00056 {
00058 FIRE_MODE_NONE = -1,
00060 FIRE_MODE_BOW,
00062 FIRE_MODE_SPELL,
00064 FIRE_MODE_WAND,
00066 FIRE_MODE_SKILL,
00068 FIRE_MODE_THROW,
00070 FIRE_MODE_SUMMON
00071 };
00072
00074 typedef enum rangetype
00075 {
00077 range_none = 0,
00079 range_bow = 1,
00081 range_magic = 2,
00083 range_wand = 3,
00085 range_rod = 4,
00087 range_scroll = 5,
00089 range_horn = 6,
00091 range_skill = 7
00092 } rangetype;
00093
00097 enum
00098 {
00100 PLAYER_EQUIP_MAIL,
00102 PLAYER_EQUIP_GAUNTLET,
00104 PLAYER_EQUIP_BRACER,
00106 PLAYER_EQUIP_HELM,
00108 PLAYER_EQUIP_BOOTS,
00110 PLAYER_EQUIP_CLOAK,
00112 PLAYER_EQUIP_GIRDLE,
00114 PLAYER_EQUIP_SHIELD,
00116 PLAYER_EQUIP_RRING,
00118 PLAYER_EQUIP_LRING,
00120 PLAYER_EQUIP_AMULET,
00122 PLAYER_EQUIP_WEAPON,
00124 PLAYER_EQUIP_BOW,
00126 PLAYER_EQUIP_SKILL_ITEM,
00127
00129 PLAYER_EQUIP_MAX
00130 };
00131
00136 #define PLAYER_AFLAG_FIGHT 1
00137
00141 #define PLAYER_AFLAG_ENEMY 2
00142
00143 #define PLAYER_AFLAG_ADDFRAME 4
00144
00147 #define MAX_QUICKSLOT 32
00148
00149 #ifdef WIN32
00150 #pragma pack(push,1)
00151 #endif
00152
00154 typedef struct pl_player
00155 {
00157 struct pl_player *prev;
00158
00160 struct pl_player *next;
00161
00163 socket_struct socket;
00164
00165
00166
00168 char maplevel[MAX_BUF];
00169
00171 char firemode_name[BIG_NAME * 2];
00172
00174 char quick_name[BIG_NAME * 3];
00175
00177 char savebed_map[MAX_BUF];
00178
00180 char ext_title[MAX_EXT_TITLE];
00181
00183 char levhp[MAXLEVEL + 1];
00184
00186 char levsp[MAXLEVEL + 1];
00187
00189 char levgrace[MAXLEVEL + 1];
00190
00192 char killer[BIG_NAME];
00193
00195 char write_buf[MAX_BUF];
00196
00198 char password[16];
00199
00201 char followed_player[BIG_NAME];
00202
00204 char **cmd_permissions;
00205
00208 struct mapdef *last_update;
00209
00211 object *ob;
00212
00214 object *selected_weapon;
00215
00219 object *skill_weapon;
00220
00222 object *target_object;
00223
00225 object *equipment[PLAYER_EQUIP_MAX];
00226
00228 object *skill_ptr[NROFSKILLS];
00229
00231 object *last_skill_ob[MAX_EXP_CAT];
00232
00234 object *exp_ptr[MAX_EXP_CAT];
00235
00237 object *mark;
00238
00240 object *map_below;
00241
00243 object *map_above;
00244
00246 object *container;
00247
00249 object *container_above;
00250
00252 object *container_below;
00253
00256 object *class_ob;
00257
00259 object *quest_container;
00260
00262 int target_hp;
00263
00265 int set_skill_weapon;
00266
00268 int set_skill_archery;
00269
00271 int bed_x;
00272
00274 int bed_y;
00275
00277 int firemode_type;
00278
00280 int firemode_tag1;
00281
00283 int firemode_tag2;
00284
00286 int shop_items_count;
00287
00291 int blocked_los[MAP_CLIENT_X][MAP_CLIENT_Y];
00292
00294 int last_skill_index;
00295
00297 int map_update_cmd;
00298
00300 int map_update_tile;
00301
00303 int map_tile_x;
00304
00306 int map_tile_y;
00307
00309 int map_off_x;
00310
00312 int map_off_y;
00313
00315 int num_cmd_permissions;
00316
00318 float action_timer;
00319
00321 float last_action_timer;
00322
00324 float last_speed;
00325
00327 char target_hp_p;
00328
00330 char weapon_sp;
00331
00333 char last_weapon_sp;
00334
00336 char last_skill_level[MAX_EXP_CAT];
00337
00339 uint8 last_skill_id[MAX_EXP_CAT];
00340
00342 unsigned char last_level;
00343
00345 signed char digestion;
00346
00348 signed char gen_sp_armour;
00349
00351 signed char gen_hp;
00352
00354 signed char gen_sp;
00355
00357 signed char gen_grace;
00358
00360 unsigned char state;
00361
00363 unsigned char fire_on;
00364
00366 unsigned char run_on;
00367
00368 #ifdef AUTOSAVE
00369
00370 long last_save_tick;
00371 #endif
00372
00374 long last_weight;
00375
00376 #ifdef SAVE_INTERVAL
00377
00378 time_t last_save_time;
00379 #endif
00380
00382 uint32 container_count;
00383
00385 uint32 action_casting;
00386
00388 uint32 action_range;
00389
00391 uint32 mark_count;
00392
00394 sint64 last_skill_exp[MAX_EXP_CAT];
00395
00397 sint64 skill_exp[NROFSKILLS];
00398
00400 uint32 target_object_count;
00401
00403 uint32 target_map_pos;
00404
00406 uint32 last_weight_limit;
00407
00409 uint32 update_los:1;
00410
00412 uint32 combat_mode:1;
00413
00415 uint32 praying:1;
00416
00418 uint32 was_praying:1;
00419
00421 uint32 dm_light:1;
00422
00424 uint32 dm_removed_from_map:1;
00425
00427 uint32 afk:1;
00428
00430 uint32 ms_privacy:1;
00431
00433 uint32 known_spell:1;
00434
00436 uint32 update_skills:1;
00437
00439 uint32 count;
00440
00442 sint16 chosen_spell;
00443
00445 uint16 last_flags;
00446
00448 uint16 gen_client_hp;
00449
00451 uint16 gen_client_sp;
00452
00454 uint16 gen_client_grace;
00455
00457 uint16 last_gen_hp;
00458
00460 uint16 last_gen_sp;
00461
00463 uint16 last_gen_grace;
00464
00466 sint16 client_dam;
00467
00469 sint16 skill_level[NROFSKILLS];
00470
00472 sint16 encumbrance;
00473
00475 uint16 anim_flags;
00476
00478 uint16 nrofknownspells;
00479
00481 sint16 known_spells[NROFREALSPELLS];
00482
00484 sint16 item_power;
00485
00487 sint16 spell_quickslots[MAX_QUICKSLOT];
00488
00490 sint8 last_protection[NROFATTACKS];
00491
00493 uint8 no_shout;
00494
00498 uint8 dm_stealth;
00499
00501 rangetype shoottype;
00502
00504 living orig_stats;
00505
00507 living last_stats;
00508
00512 player_shop *shop_items;
00513
00515 party_struct *party;
00516 } player;
00517
00518 #ifdef WIN32
00519 #pragma pack(pop)
00520 #endif