# This patch file was generated by NetBeans IDE # Following Index: paths are relative to: /home/lighta/Documents/Myscript/RO/Servs/ra2 # This patch can be applied using context Tools: Patch action on respective folder. # It uses platform neutral UTF-8 encoding and \n newlines. # Above lines and this line are ignored by the patching process. Index: 3rdparty/libconfig/libconfig.c --- 3rdparty/libconfig/libconfig.c Base (BASE) +++ 3rdparty/libconfig/libconfig.c Locally Modified (Based On LOCAL) @@ -300,7 +300,7 @@ if(list) { - int len = list->length; + unsigned int len = list->length; config_setting_t **s; for(s = list->elements; len--; s++) @@ -764,7 +764,7 @@ setting = _new(config_setting_t); setting->parent = parent; setting->name = (name == NULL) ? NULL : strdup(name); - setting->type = type; + setting->type =(short) type; setting->config = parent->config; setting->hook = NULL; setting->line = 0; @@ -1131,8 +1131,7 @@ short config_setting_get_format(const config_setting_t *setting) { - return(setting->format != 0 ? setting->format - : setting->config->default_format); + return((short) (setting->format != 0 ? setting->format: setting->config->default_format) ); } /* ------------------------------------------------------------------------- */ Index: 3rdparty/mt19937ar/mt19937ar.c --- 3rdparty/mt19937ar/mt19937ar.c Base (BASE) +++ 3rdparty/mt19937ar/mt19937ar.c Locally Modified (Based On LOCAL) @@ -61,8 +61,7 @@ { mt[0]= s & 0xffffffffUL; for (mti=1; mti> 30)) + mti); + mt[mti] = (1812433253UL * (mt[mti-1] ^ (mt[mti-1] >> 30)) + mti); /* See Knuth TAOCP Vol2. 3rd Ed. P.106 for multiplier. */ /* In the previous versions, MSBs of the seed affect */ /* only MSBs of the array mt[]. */ Index: CMakeLists.txt --- CMakeLists.txt Base (BASE) +++ CMakeLists.txt Locally Modified (Based On LOCAL) @@ -14,7 +14,7 @@ # ENABLE_* : option to use an internal feature/code or not # HAVE_* : internal variable indicating if we have and are using something # -# Maintainer: Fl�vio J. Saraiva (feel free to send complaints or suggestions) +# Maintainer: Flávio J. Saraiva (feel free to send complaints or suggestions) # flaviojs @ rAthena forum/irc # flaviojs2005 \A-T/ gmail com # Index: conf/help.txt --- conf/help.txt Base (BASE) +++ conf/help.txt Locally Modified (Based On LOCAL) @@ -96,10 +96,10 @@ "4068 Minstrel 4069 Wanderer 4070 Sura 4071 Genetic\n" "4072 Shadow Chaser\n" "----- 3rd Class (Transcendent) -----\n" - "4060 Rune Knight 4061 Warlock 4062 Ranger 4063 Arch Bishop\n" - "4064 Mechanic 4065 Guillotine Cross 4073 Royal Guard 4074 Sorcerer\n" - "4075 Minstrel 4076 Wanderer 4077 Sura 4078 Genetic\n" - "4079 Shadow Chaser\n" + "4060 Rune Knight T 4061 Warlock T 4062 Ranger T 4063 Arch Bishop T\n" + "4064 Mechanic T 4065 Guillotine Cross T 4073 Royal Guard T 4074 Sorcerer T\n" + "4075 Minstrel T 4076 Wanderer T 4077 Sura T 4078 Genetic T\n" + "4079 Shadow Chaser T\n" "----- Expanded Class -----\n" " 23 Super Novice 24 Gunslinger 25 Ninja 4045 Super Baby\n" "4046 Taekwon 4047 Star Gladiator 4049 Soul Linker 4050 Gangsi\n" Index: configure --- configure Base (BASE) +++ configure Locally Modified (Based On LOCAL) @@ -4423,7 +4423,7 @@ -CFLAGS="$CFLAGS -pipe -ffast-math -Wall -Wno-sign-compare" +CFLAGS="$CFLAGS -pipe -ffast-math -Wall" CPPFLAGS="$CPPFLAGS -I../common" @@ -4784,7 +4784,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC supports -Wno-unused-parameter" >&5 $as_echo_n "checking whether $CC supports -Wno-unused-parameter... " >&6; } OLD_CFLAGS="$CFLAGS" -CFLAGS="$CFLAGS -Wno-unused-parameter" +#CFLAGS="$CFLAGS -Wno-unused-parameter" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int foo; @@ -4854,8 +4854,8 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC supports -Wno-pointer-sign" >&5 $as_echo_n "checking whether $CC supports -Wno-pointer-sign... " >&6; } -OLD_CFLAGS="$CFLAGS" -CFLAGS="$CFLAGS -Wno-pointer-sign" +#OLD_CFLAGS="$CFLAGS" +#CFLAGS="$CFLAGS -Wno-pointer-sign" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int foo; @@ -4868,7 +4868,7 @@ $as_echo_n "checking whether $CC can actually use -Wno-pointer-sign... " >&6; } # This option causes warnings in C++ mode # Note: -Werror must be before -Wno-pointer-sign, otherwise it does not do anything - CFLAGS="$OLD_CFLAGS -Werror -Wno-pointer-sign" +# CFLAGS="$OLD_CFLAGS -Werror -Wno-pointer-sign" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int foo; @@ -4877,13 +4877,13 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } - CFLAGS="$OLD_CFLAGS -Wno-pointer-sign" +# CFLAGS="$OLD_CFLAGS -Wno-pointer-sign" else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } - CFLAGS="$OLD_CFLAGS" +# CFLAGS="$OLD_CFLAGS" fi @@ -4893,7 +4893,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } - CFLAGS="$OLD_CFLAGS" +# CFLAGS="$OLD_CFLAGS" fi @@ -5112,7 +5112,7 @@ CFLAGS="$CFLAGS -Wno-unused -Wno-parentheses" ;; "yes") - CFLAGS="$CFLAGS -g -DDEBUG" + CFLAGS="$CFLAGS -g -DDEBUG -Wconversion" ;; "gdb") CFLAGS="$CFLAGS -ggdb -DDEBUG" @@ -7202,3 +7202,4 @@ $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} fi +echo "Configure finish, CFLAG= $CFLAGS " \ No newline at end of file Index: src/char/char.c --- src/char/char.c Base (BASE) +++ src/char/char.c Locally Modified (Based On LOCAL) @@ -68,7 +68,7 @@ // show loading/saving messages int save_log = 1; -static DBMap *char_db_; // int char_id -> struct mmo_charstatus* +static DBMap *char_db_; // uint32 char_id -> struct mmo_charstatus* char db_path[1024] = "db"; @@ -122,11 +122,12 @@ struct char_session_data { bool auth; // whether the session is authed or not - int account_id, login_id1, login_id2, sex; + uint32 account_id, login_id1, login_id2; + uint8 sex; int found_char[MAX_CHARS]; // ids of chars on this account char email[40]; // e-mail (default: a@a.com) by [Yor] time_t expiration_time; // # of seconds 1/1/1970 (timestamp): Validity limit of the account (0 = unlimited) - int group_id; // permission + uint8 group_id; // permission [0-255] uint32 version; uint8 clienttype; char new_name[NAME_LENGTH]; @@ -167,34 +168,33 @@ #define AUTH_TIMEOUT 30000 struct auth_node { - int account_id; - int char_id; + uint32 account_id; + uint32 char_id; uint32 login_id1; uint32 login_id2; uint32 ip; - int sex; + uint8 sex; time_t expiration_time; // # of seconds 1/1/1970 (timestamp): Validity limit of the account (0 = unlimited) - int group_id; + uint8 group_id; unsigned changing_mapservers : 1; }; -static DBMap *auth_db; // int account_id -> struct auth_node* +static DBMap *auth_db; // uint32 account_id -> struct auth_node* //----------------------------------------------------- // Online User Database //----------------------------------------------------- struct online_char_data { - int account_id; - int char_id; + uint32 account_id, char_id; int fd; int waiting_disconnect; short server; // -2: unknown server, -1: not connected, 0+: id of server }; -static DBMap *online_char_db; // int account_id -> struct online_char_data* +static DBMap *online_char_db; // uint32 account_id -> struct online_char_data* static int chardb_waiting_disconnect(int tid, unsigned int tick, int id, intptr_t data); -int delete_char_sql(int char_id); +int delete_char_sql(uint32 char_id); /** * @see DBCreateData @@ -211,7 +211,7 @@ return db_ptr2data(character); } -void set_char_charselect(int account_id) +void set_char_charselect(uint32 account_id) { struct online_char_data *character; @@ -232,13 +232,13 @@ if (login_fd > 0 && !session[login_fd]->flag.eof) { WFIFOHEAD(login_fd,6); WFIFOW(login_fd,0) = 0x272b; - WFIFOL(login_fd,2) = account_id; + WFIFOL(login_fd,2) = (uint32) account_id; WFIFOSET(login_fd,6); } } -void set_char_online(int map_id, int char_id, int account_id) +void set_char_online(short map_id, uint32 char_id, uint32 account_id) { struct online_char_data *character; struct mmo_charstatus *cp; @@ -281,7 +281,7 @@ } } -void set_char_offline(int char_id, int account_id) +void set_char_offline(uint32 char_id, uint32 account_id) { struct online_char_data *character; @@ -407,7 +407,7 @@ int inventory_to_sql(const struct item items[], int max, int id); -int mmo_char_tosql(int char_id, struct mmo_charstatus *p) +int mmo_char_tosql(uint32 char_id, struct mmo_charstatus *p) { int i = 0; int count = 0; @@ -1040,7 +1040,7 @@ } //===================================================================================================== -int mmo_char_fromsql(int char_id, struct mmo_charstatus *p, bool load_everything) +int mmo_char_fromsql(uint32 char_id, struct mmo_charstatus *p, bool load_everything) { int i,j; char t_msg[128] = ""; @@ -1318,7 +1318,7 @@ //----------------------------------- // Function to change chararcter's names //----------------------------------- -int rename_char_sql(struct char_session_data *sd, int char_id) +int rename_char_sql(struct char_session_data *sd, uint32 char_id) { struct mmo_charstatus char_dat; char esc_name[NAME_LENGTH*2+1]; @@ -1427,7 +1427,7 @@ char name[NAME_LENGTH]; char esc_name[NAME_LENGTH*2+1]; - int char_id, flag; + uint32 char_id, flag; safestrncpy(name, name_, NAME_LENGTH); normalize_name(name,TRIM_CHARS); @@ -1535,11 +1535,12 @@ /* Returns 0 if successful * Returns < 0 for error */ -int delete_char_sql(int char_id) +int delete_char_sql(uint32 char_id) { char name[NAME_LENGTH]; char esc_name[NAME_LENGTH*2+1]; //Name needs be escaped. - int account_id, party_id, guild_id, hom_id, base_level, partner_id, father_id, mother_id, elemental_id; + uint32 account_id; + int party_id, guild_id, hom_id, base_level, partner_id, father_id, mother_id, elemental_id; char *data; size_t len; @@ -1893,7 +1894,7 @@ //---------------------------------------------------------------------- // Force disconnection of an online player (with account value) by [Yor] //---------------------------------------------------------------------- -void disconnect_player(int account_id) +void disconnect_player(uint32 account_id) { int i; struct char_session_data *sd; @@ -2062,12 +2063,12 @@ if (RFIFOREST(fd) < 25) return 0; { - int account_id = RFIFOL(fd,2); + uint32 account_id = RFIFOL(fd,2); uint32 login_id1 = RFIFOL(fd,6); uint32 login_id2 = RFIFOL(fd,10); uint8 sex = RFIFOB(fd,14); uint8 result = RFIFOB(fd,15); - int request_id = RFIFOL(fd,16); + uint32 request_id = RFIFOL(fd,16); uint32 version = RFIFOL(fd,20); uint8 clienttype = RFIFOB(fd,24); RFIFOSKIP(fd,25); @@ -2146,15 +2147,15 @@ { unsigned char buf[7]; - int acc = RFIFOL(fd,2); - int sex = RFIFOB(fd,6); + uint32 acc = RFIFOL(fd,2); + uint8 sex = RFIFOB(fd,6); RFIFOSKIP(fd,7); if (acc > 0) { // TODO: Is this even possible? - int char_id[MAX_CHARS]; - int class_[MAX_CHARS]; - int guild_id[MAX_CHARS]; + uint32 char_id[MAX_CHARS]; + short class_[MAX_CHARS]; + uint32 guild_id[MAX_CHARS]; int num; char *data; @@ -2349,7 +2350,7 @@ } } -int request_accreg2(int account_id, int char_id) +int request_accreg2(uint32 account_id, uint32 char_id) { if (login_fd > 0) { WFIFOHEAD(login_fd,10); @@ -2480,7 +2481,7 @@ //Loads a character's name and stores it in the buffer given (must be NAME_LENGTH in size) //Returns 1 on found, 0 on not found (buffer is filled with Unknown char name) -int char_loadName(int char_id, char *name) +int char_loadName(uint32 char_id, char *name) { char *data; size_t len; @@ -2768,7 +2769,7 @@ { struct auth_node *node; - int account_id = RFIFOL(fd,2); + uint32 account_id = RFIFOL(fd,2); uint32 login_id1 = RFIFOL(fd,6); uint32 login_id2 = RFIFOL(fd,10); uint32 ip = RFIFOL(fd,14); @@ -2809,7 +2810,8 @@ if (RFIFOREST(fd) < 39) return 0; { - int map_id, map_fd = -1; + short map_id; + int map_fd = -1; struct online_char_data *data; struct mmo_charstatus *char_data; struct mmo_charstatus char_dat; @@ -2873,7 +2875,7 @@ if (RFIFOREST(fd) < 10) return 0; { - int char_id, friend_id; + uint32 char_id, friend_id; char_id = RFIFOL(fd,2); friend_id = RFIFOL(fd,6); if (SQL_ERROR == Sql_Query(sql_handle, "DELETE FROM `%s` WHERE `char_id`='%d' AND `friend_id`='%d' LIMIT 1", @@ -2938,7 +2940,7 @@ //FIXME: set proper result value? else { char name[NAME_LENGTH]; - int account_id; + uint32 account_id; char *data; Sql_GetData(sql_handle, 0, &data, NULL); @@ -3169,10 +3171,10 @@ return 0; { - int account_id; - int char_id; - int login_id1; - char sex; + uint32 account_id; + uint32 char_id; + uint32 login_id1; + uint8 sex; uint32 ip; struct auth_node *node; struct mmo_charstatus *cd; @@ -3348,7 +3350,7 @@ /// 4 (0x71a): To delete a character you must withdraw from the guild. /// 5 (0x71b): To delete a character you must withdraw from the party. /// Any (0x718): An unknown error has occurred. -void char_delete2_ack(int fd, int char_id, uint32 result, time_t delete_date) +void char_delete2_ack(int fd, uint32 char_id, uint32 result, time_t delete_date) { // HC: <0828>.W .L .L .L WFIFOHEAD(fd,14); @@ -3368,7 +3370,7 @@ /// 4 (0x71d): Deleting not yet possible time. /// 5 (0x71e): Date of birth do not match. /// Any (0x718): An unknown error has occurred. -void char_delete2_accept_ack(int fd, int char_id, uint32 result) +void char_delete2_accept_ack(int fd, uint32 char_id, uint32 result) { // HC: <082a>.W .L .L WFIFOHEAD(fd,10); @@ -3383,7 +3385,7 @@ /// 1 (0x718): none/success, (if char id not in deletion process): An unknown error has occurred. /// 2 (0x719): A database error occurred. /// Any (0x718): An unknown error has occurred. -void char_delete2_cancel_ack(int fd, int char_id, uint32 result) +void char_delete2_cancel_ack(int fd, uint32 char_id, uint32 result) { // HC: <082c>.W .L .L WFIFOHEAD(fd,10); @@ -3397,7 +3399,8 @@ static void char_delete2_req(int fd, struct char_session_data *sd) { // CH: <0827>.W .L - int char_id, i; + uint32 char_id; + int i; char *data; time_t delete_date; @@ -3458,7 +3461,8 @@ { // CH: <0829>.W .L .6B char birthdate[8+1]; - int char_id, i, k; + uint32 char_id; + int i, k; unsigned int base_level; char *data; time_t delete_date; @@ -3534,7 +3538,7 @@ static void char_delete2_cancel(int fd, struct char_session_data *sd) { // CH: <082b>.W .L - int char_id, i; + uint32 char_id, i; char_id = RFIFOL(fd,2); @@ -3601,10 +3605,10 @@ { struct auth_node *node; - int account_id = RFIFOL(fd,2); + uint32 account_id = RFIFOL(fd,2); uint32 login_id1 = RFIFOL(fd,6); uint32 login_id2 = RFIFOL(fd,10); - int sex = RFIFOB(fd,16); + uint8 sex = RFIFOB(fd,16); RFIFOSKIP(fd,17); ShowInfo("request connect - account_id:%d/login_id1:%d/login_id2:%d\n", account_id, login_id1, login_id2); @@ -3676,7 +3680,7 @@ struct mmo_charstatus char_dat; struct mmo_charstatus *cd; char *data; - int char_id; + uint32 char_id; uint32 subnet_map_ip; struct auth_node *node; Index: src/char/char.h --- src/char/char.h Base (BASE) +++ src/char/char.h Locally Modified (Based On LOCAL) @@ -35,7 +35,7 @@ int char_child(int parent_id, int child_id); int char_family(int pl1,int pl2,int pl3); -int request_accreg2(int account_id, int char_id); +int request_accreg2(uint32 account_id, uint32 char_id); int save_accreg2(unsigned char *buf, int len); extern int char_name_option; Index: src/char/int_auction.c --- src/char/int_auction.c Base (BASE) +++ src/char/int_auction.c Locally Modified (Based On LOCAL) @@ -23,7 +23,7 @@ void auction_delete(struct auction_data *auction); static int auction_end_timer(int tid, unsigned int tick, int id, intptr_t data); -static int auction_count(int char_id, bool buy) +static int auction_count(uint32 char_id, bool buy) { int i = 0; struct auction_data *auction; @@ -119,7 +119,7 @@ return auction->auction_id; } -static void mapif_Auction_message(int char_id, unsigned char result) +static void mapif_Auction_message(uint32 char_id, unsigned char result) { unsigned char buf[74]; @@ -239,7 +239,7 @@ Sql_FreeResult(sql_handle); } -static void mapif_Auction_sendlist(int fd, int char_id, short count, short pages, unsigned char *buf) +static void mapif_Auction_sendlist(int fd, uint32 char_id, short count, short pages, unsigned char *buf) { int len = (sizeof(struct auction_data) * count) + 12; @@ -256,7 +256,8 @@ static void mapif_parse_Auction_requestlist(int fd) { char searchtext[NAME_LENGTH]; - int char_id = RFIFOL(fd,4), len = sizeof(struct auction_data); + uint32 char_id = RFIFOL(fd,4); + int len = sizeof(struct auction_data); int price = RFIFOL(fd,10); short type = RFIFOW(fd,8), page = max(1,RFIFOW(fd,14)); unsigned char buf[5 * sizeof(struct auction_data)]; @@ -319,7 +320,7 @@ mapif_Auction_register(fd, &auction); } -static void mapif_Auction_cancel(int fd, int char_id, unsigned char result) +static void mapif_Auction_cancel(int fd, uint32 char_id, unsigned char result) { WFIFOHEAD(fd,7); WFIFOW(fd,0) = 0x3852; @@ -330,7 +331,7 @@ static void mapif_parse_Auction_cancel(int fd) { - int char_id = RFIFOL(fd,2), auction_id = RFIFOL(fd,6); + uint32 char_id = RFIFOL(fd,2), auction_id = RFIFOL(fd,6); struct auction_data *auction; if ((auction = (struct auction_data *)idb_get(auction_db_, auction_id)) == NULL) { @@ -354,7 +355,7 @@ mapif_Auction_cancel(fd, char_id, 0); // The auction has been canceled } -static void mapif_Auction_close(int fd, int char_id, unsigned char result) +static void mapif_Auction_close(int fd, uint32 char_id, unsigned char result) { WFIFOHEAD(fd,7); WFIFOW(fd,0) = 0x3853; @@ -365,7 +366,7 @@ static void mapif_parse_Auction_close(int fd) { - int char_id = RFIFOL(fd,2), auction_id = RFIFOL(fd,6); + uint32 char_id = RFIFOL(fd,2), auction_id = RFIFOL(fd,6); struct auction_data *auction; if ((auction = (struct auction_data *)idb_get(auction_db_, auction_id)) == NULL) { @@ -393,7 +394,7 @@ mapif_Auction_close(fd, char_id, 0); // You have ended the auction } -static void mapif_Auction_bid(int fd, int char_id, int bid, unsigned char result) +static void mapif_Auction_bid(int fd, uint32 char_id, int bid, unsigned char result) { WFIFOHEAD(fd,11); WFIFOW(fd,0) = 0x3855; @@ -405,7 +406,7 @@ static void mapif_parse_Auction_bid(int fd) { - int char_id = RFIFOL(fd,4), bid = RFIFOL(fd,12); + uint32 char_id = RFIFOL(fd,4), bid = RFIFOL(fd,12); unsigned int auction_id = RFIFOL(fd,8); struct auction_data *auction; Index: src/char/int_elemental.c --- src/char/int_elemental.c Base (BASE) +++ src/char/int_elemental.c Locally Modified (Based On LOCAL) @@ -41,7 +41,7 @@ return flag; } -bool mapif_elemental_load(int ele_id, int char_id, struct s_elemental *ele) +bool mapif_elemental_load(int ele_id, uint32 char_id, struct s_elemental *ele) { char *data; @@ -122,7 +122,7 @@ mapif_elemental_send(fd, ele, result); } -static void mapif_parse_elemental_load(int fd, int ele_id, int char_id) +static void mapif_parse_elemental_load(int fd, int ele_id, uint32 char_id) { struct s_elemental ele; bool result = mapif_elemental_load(ele_id, char_id, &ele); Index: src/char/int_guild.c --- src/char/int_guild.c Base (BASE) +++ src/char/int_guild.c Locally Modified (Based On LOCAL) @@ -31,16 +31,16 @@ static const char dataToHex[] = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'}; //Guild cache -static DBMap *guild_db_; // int guild_id -> struct guild* +static DBMap *guild_db_; // uint32 guild_id -> struct guild* static DBMap *castle_db; static unsigned int guild_exp[100]; -int mapif_parse_GuildLeave(int fd,int guild_id,int account_id,int char_id,int flag,const char *mes); -int mapif_guild_broken(int guild_id,int flag); +int mapif_parse_GuildLeave(int fd,uint32 guild_id,uint32 account_id,uint32 char_id,int flag,const char *mes); +int mapif_guild_broken(uint32 guild_id,int flag); static bool guild_check_empty(struct guild *g); int guild_calcinfo(struct guild *g); -int mapif_guild_basicinfochanged(int guild_id,int type,const void *data,int len); +int mapif_guild_basicinfochanged(uint32 guild_id,int type,const void *data,int len); int mapif_guild_info(int fd,struct guild *g); int guild_break_sub(int key,void *data,va_list ap); int inter_guild_tosql(struct guild *g,int flag); @@ -86,7 +86,7 @@ return 0; } -int inter_guild_removemember_tosql(int account_id, int char_id) +int inter_guild_removemember_tosql(uint32 account_id, uint32 char_id) { if (SQL_ERROR == Sql_Query(sql_handle, "DELETE from `%s` where `account_id` = '%d' and `char_id` = '%d'", guild_member_db, account_id, char_id)) Sql_ShowDebug(sql_handle); @@ -314,7 +314,7 @@ } // Read guild from sql -struct guild *inter_guild_fromsql(int guild_id) { +struct guild *inter_guild_fromsql(uint32 guild_id) { struct guild *g; char *data; size_t len; @@ -637,7 +637,7 @@ } -int inter_guild_CharOnline(int char_id, int guild_id) +int inter_guild_CharOnline(uint32 char_id, uint32 guild_id) { struct guild *g; int i; @@ -682,7 +682,7 @@ return 1; } -int inter_guild_CharOffline(int char_id, int guild_id) +int inter_guild_CharOffline(uint32 char_id, uint32 guild_id) { struct guild *g=NULL; int online_count, i; @@ -769,7 +769,7 @@ // Get guild_id by its name. Returns 0 if not found, -1 on error. int search_guildname(char *str) { - int guild_id; + uint32 guild_id; char esc_name[NAME_LENGTH*2+1]; Sql_EscapeStringLen(sql_handle, esc_name, str, safestrnlen(str, NAME_LENGTH)); @@ -884,7 +884,7 @@ //------------------------------------------------------------------- // Packet sent to map server -int mapif_guild_created(int fd,int account_id,struct guild *g) +int mapif_guild_created(int fd,uint32 account_id,struct guild *g) { WFIFOHEAD(fd, 10); WFIFOW(fd,0)=0x3830; @@ -900,7 +900,7 @@ } // Guild not found -int mapif_guild_noinfo(int fd,int guild_id) +int mapif_guild_noinfo(int fd,uint32 guild_id) { unsigned char buf[12]; WBUFW(buf,0)=0x3831; @@ -929,7 +929,7 @@ } // ACK member add -int mapif_guild_memberadded(int fd,int guild_id,int account_id,int char_id,int flag) +int mapif_guild_memberadded(int fd,uint32 guild_id,uint32 account_id,uint32 char_id,int flag) { WFIFOHEAD(fd, 15); WFIFOW(fd,0)=0x3832; @@ -942,7 +942,7 @@ } // ACK member leave -int mapif_guild_withdraw(int guild_id,int account_id,int char_id,int flag, const char *name, const char *mes) +int mapif_guild_withdraw(uint32 guild_id,uint32 account_id,uint32 char_id,int flag, const char *name, const char *mes) { unsigned char buf[55+NAME_LENGTH]; WBUFW(buf, 0)=0x3834; @@ -973,7 +973,7 @@ } // Send guild broken -int mapif_guild_broken(int guild_id,int flag) +int mapif_guild_broken(uint32 guild_id,int flag) { unsigned char buf[7]; WBUFW(buf,0)=0x3836; @@ -985,7 +985,7 @@ } // Send guild message -int mapif_guild_message(int guild_id,int account_id,char *mes,int len, int sfd) +int mapif_guild_message(uint32 guild_id,uint32 account_id,char *mes,int len, int sfd) { unsigned char buf[512]; if (len > 500) @@ -1000,7 +1000,7 @@ } // Send basic info -int mapif_guild_basicinfochanged(int guild_id,int type,const void *data,int len) +int mapif_guild_basicinfochanged(uint32 guild_id,int type,const void *data,int len) { unsigned char buf[2048]; if (len > 2038) @@ -1015,7 +1015,7 @@ } // Send member info -int mapif_guild_memberinfochanged(int guild_id,int account_id,int char_id, int type,const void *data,int len) +int mapif_guild_memberinfochanged(uint32 guild_id,uint32 account_id,uint32 char_id, int type,const void *data,int len) { unsigned char buf[2048]; if (len > 2030) @@ -1032,19 +1032,19 @@ } // ACK guild skill up -int mapif_guild_skillupack(int guild_id,int skill_num,int account_id) +int mapif_guild_skillupack(uint32 guild_id, uint16 skill_id, uint32 account_id) { unsigned char buf[14]; WBUFW(buf, 0)=0x383c; WBUFL(buf, 2)=guild_id; - WBUFL(buf, 6)=skill_num; + WBUFL(buf, 6)=skill_id; WBUFL(buf,10)=account_id; mapif_sendall(buf,14); return 0; } // ACK guild alliance -int mapif_guild_alliance(int guild_id1,int guild_id2,int account_id1,int account_id2,int flag,const char *name1,const char *name2) +int mapif_guild_alliance(uint32 guild_id1,uint32 guild_id2,uint32 account_id1,uint32 account_id2,int flag,const char *name1,const char *name2) { unsigned char buf[19+2*NAME_LENGTH]; WBUFW(buf, 0)=0x383d; @@ -1131,7 +1131,7 @@ // Guild creation request -int mapif_parse_CreateGuild(int fd,int account_id,char *name,struct guild_member *master) +int mapif_parse_CreateGuild(int fd,uint32 account_id,char *name,struct guild_member *master) { struct guild *g; int i=0; @@ -1210,7 +1210,7 @@ } // Return guild info to client -int mapif_parse_GuildInfo(int fd,int guild_id) +int mapif_parse_GuildInfo(int fd,uint32 guild_id) { struct guild *g = inter_guild_fromsql(guild_id); //We use this because on start-up the info of castle-owned guilds is requied. [Skotlex] if (g) { @@ -1222,7 +1222,7 @@ } // Add member to guild -int mapif_parse_GuildAddMember(int fd,int guild_id,struct guild_member *m) +int mapif_parse_GuildAddMember(int fd,uint32 guild_id,struct guild_member *m) { struct guild *g; int i; @@ -1256,7 +1256,7 @@ } // Delete member from guild -int mapif_parse_GuildLeave(int fd, int guild_id, int account_id, int char_id, int flag, const char *mes) +int mapif_parse_GuildLeave(int fd, uint32 guild_id, uint32 account_id, uint32 char_id, int flag, const char *mes) { int i, j; @@ -1310,7 +1310,7 @@ } // Change member info -int mapif_parse_GuildChangeMemberInfoShort(int fd,int guild_id,int account_id,int char_id,int online,int lv,int class_) +int mapif_parse_GuildChangeMemberInfoShort(int fd,uint32 guild_id,uint32 account_id,uint32 char_id,int online,int lv,short class_) { // Could speed up by manipulating only guild_member struct guild *g; @@ -1359,7 +1359,7 @@ } // BreakGuild -int mapif_parse_BreakGuild(int fd,int guild_id) +int mapif_parse_BreakGuild(int fd,uint32 guild_id) { struct guild *g; @@ -1408,13 +1408,13 @@ } // Forward Guild message to others map servers -int mapif_parse_GuildMessage(int fd,int guild_id,int account_id,char *mes,int len) +int mapif_parse_GuildMessage(int fd,uint32 guild_id,uint32 account_id,char *mes,int len) { return mapif_guild_message(guild_id,account_id,mes,len, fd); } // Modification of the guild -int mapif_parse_GuildBasicInfoChange(int fd,int guild_id,int type,const char *data,int len) +int mapif_parse_GuildBasicInfoChange(int fd,uint32 guild_id,int type,const char *data,int len) { struct guild *g; short dw=*((short *)data); @@ -1441,7 +1441,7 @@ } // Modification of the guild -int mapif_parse_GuildMemberInfoChange(int fd,int guild_id,int account_id,int char_id,int type,const char *data,int len) +int mapif_parse_GuildMemberInfoChange(int fd,uint32 guild_id,uint32 account_id,uint32 char_id,int type,const char *data,int len) { // Could make some improvement in speed, because only change guild_member int i; @@ -1540,12 +1540,12 @@ return 0; } -int inter_guild_sex_changed(int guild_id,int account_id,int char_id, short gender) +int inter_guild_sex_changed(uint32 guild_id,uint32 account_id,uint32 char_id, short gender) { return mapif_parse_GuildMemberInfoChange(0, guild_id, account_id, char_id, GMI_GENDER, (const char *)&gender, sizeof(gender)); } -int inter_guild_charname_changed(int guild_id,int account_id, int char_id, char *name) +int inter_guild_charname_changed(uint32 guild_id,uint32 account_id, uint32 char_id, char *name) { struct guild *g; int i, flag = 0; @@ -1579,7 +1579,7 @@ } // Change a position desc -int mapif_parse_GuildPosition(int fd,int guild_id,int idx,struct guild_position *p) +int mapif_parse_GuildPosition(int fd,uint32 guild_id,int idx,struct guild_position *p) { // Could make some improvement in speed, because only change guild_position struct guild *g; @@ -1596,10 +1596,10 @@ } // Guild Skill UP -int mapif_parse_GuildSkillUp(int fd,int guild_id,int skill_num,int account_id,int max) +int mapif_parse_GuildSkillUp(int fd,uint32 guild_id,uint16 skill_id,uint32 account_id,int max) { struct guild *g; - int idx = skill_num - GD_SKILLBASE; + int idx = skill_id - GD_SKILLBASE; g = inter_guild_fromsql(guild_id); if (g == NULL || idx < 0 || idx >= MAX_GUILDSKILL) @@ -1610,14 +1610,14 @@ g->skill_point--; if (!guild_calcinfo(g)) mapif_guild_info(-1,g); - mapif_guild_skillupack(guild_id,skill_num,account_id); + mapif_guild_skillupack(guild_id,skill_id,account_id); g->save_flag |= (GS_LEVEL|GS_SKILL); // Change guild & guild_skill } return 0; } //Manual deletion of an alliance when partnering guild does not exists. [Skotlex] -static int mapif_parse_GuildDeleteAlliance(struct guild *g, int guild_id, int account_id1, int account_id2, int flag) +static int mapif_parse_GuildDeleteAlliance(struct guild *g, uint32 guild_id, uint32 account_id1, uint32 account_id2, int flag) { int i; char name[NAME_LENGTH]; @@ -1635,7 +1635,7 @@ } // Alliance modification -int mapif_parse_GuildAlliance(int fd,int guild_id1,int guild_id2,int account_id1,int account_id2,int flag) +int mapif_parse_GuildAlliance(int fd,uint32 guild_id1,uint32 guild_id2,uint32 account_id1,uint32 account_id2,int flag) { // Could speed up struct guild *g[2]; @@ -1680,7 +1680,7 @@ } // Change guild message -int mapif_parse_GuildNotice(int fd,int guild_id,const char *mes1,const char *mes2) +int mapif_parse_GuildNotice(int fd,uint32 guild_id,const char *mes1,const char *mes2) { struct guild *g; @@ -1694,7 +1694,7 @@ return mapif_guild_notice(g); } -int mapif_parse_GuildEmblem(int fd,int len,int guild_id,int dummy,const char *data) +int mapif_parse_GuildEmblem(int fd,int len,uint32 guild_id,int dummy,const char *data) { struct guild *g; @@ -1772,7 +1772,7 @@ return 0; } -int mapif_parse_GuildMasterChange(int fd, int guild_id, const char *name, int len) +int mapif_parse_GuildMasterChange(int fd, uint32 guild_id, const char *name, int len) { struct guild *g; struct guild_member gm; @@ -1880,12 +1880,12 @@ } //Leave request from the server (for deleting character from guild) -int inter_guild_leave(int guild_id, int account_id, int char_id) +int inter_guild_leave(uint32 guild_id, uint32 account_id, uint32 char_id) { return mapif_parse_GuildLeave(-1, guild_id, account_id, char_id, 0, "** Character Deleted **"); } -int inter_guild_broken(int guild_id) +int inter_guild_broken(uint32 guild_id) { return mapif_guild_broken(guild_id, 0); } Index: src/char/int_guild.h --- src/char/int_guild.h Base (BASE) +++ src/char/int_guild.h Locally Modified (Based On LOCAL) @@ -26,12 +26,12 @@ int inter_guild_parse_frommap(int fd); int inter_guild_sql_init(void); void inter_guild_sql_final(void); -int inter_guild_leave(int guild_id,int account_id,int char_id); -int mapif_parse_BreakGuild(int fd,int guild_id); -int inter_guild_broken(int guild_id); -int inter_guild_sex_changed(int guild_id,int account_id,int char_id, short gender); -int inter_guild_charname_changed(int guild_id,int account_id, int char_id, char *name); -int inter_guild_CharOnline(int char_id, int guild_id); -int inter_guild_CharOffline(int char_id, int guild_id); +int inter_guild_leave(uint32 guild_id,uint32 account_id,uint32 char_id); +int mapif_parse_BreakGuild(int fd,uint32 guild_id); +int inter_guild_broken(uint32 guild_id); +int inter_guild_sex_changed(uint32 guild_id,uint32 account_id,uint32 char_id, short gender); +int inter_guild_charname_changed(uint32 guild_id,uint32 account_id, uint32 char_id, char *name); +int inter_guild_CharOnline(uint32 char_id, uint32 guild_id); +int inter_guild_CharOffline(uint32 char_id, uint32 guild_id); #endif /* _INT_GUILD_SQL_H_ */ Index: src/char/int_homun.c --- src/char/int_homun.c Base (BASE) +++ src/char/int_homun.c Locally Modified (Based On LOCAL) @@ -25,7 +25,7 @@ return; } -static void mapif_homunculus_created(int fd, int account_id, struct s_homunculus *sh, unsigned char flag) +static void mapif_homunculus_created(int fd, uint32 account_id, struct s_homunculus *sh, unsigned char flag) { WFIFOHEAD(fd, sizeof(struct s_homunculus)+9); WFIFOW(fd,0) = 0x3890; @@ -44,7 +44,7 @@ WFIFOSET(fd, 3); } -static void mapif_homunculus_loaded(int fd, int account_id, struct s_homunculus *hd) +static void mapif_homunculus_loaded(int fd, uint32 account_id, struct s_homunculus *hd) { WFIFOHEAD(fd, sizeof(struct s_homunculus)+9); WFIFOW(fd,0) = 0x3891; @@ -60,7 +60,7 @@ WFIFOSET(fd, sizeof(struct s_homunculus)+9); } -static void mapif_homunculus_saved(int fd, int account_id, bool flag) +static void mapif_homunculus_saved(int fd, uint32 account_id, bool flag) { WFIFOHEAD(fd, 7); WFIFOW(fd,0) = 0x3892; @@ -69,7 +69,7 @@ WFIFOSET(fd, 7); } -static void mapif_homunculus_renamed(int fd, int account_id, int char_id, unsigned char flag, char *name) +static void mapif_homunculus_renamed(int fd, uint32 account_id, uint32 char_id, unsigned char flag, char *name) { WFIFOHEAD(fd, NAME_LENGTH+12); WFIFOW(fd, 0) = 0x3894; @@ -264,7 +264,7 @@ } -static void mapif_parse_homunculus_create(int fd, int len, int account_id, struct s_homunculus *phd) +static void mapif_parse_homunculus_create(int fd, int len, uint32 account_id, struct s_homunculus *phd) { bool result = mapif_homunculus_save(phd); mapif_homunculus_created(fd, account_id, phd, result); @@ -276,20 +276,20 @@ mapif_homunculus_deleted(fd, result); } -static void mapif_parse_homunculus_load(int fd, int account_id, int homun_id) +static void mapif_parse_homunculus_load(int fd, uint32 account_id, int homun_id) { struct s_homunculus hd; bool result = mapif_homunculus_load(homun_id, &hd); mapif_homunculus_loaded(fd, account_id, (result ? &hd : NULL)); } -static void mapif_parse_homunculus_save(int fd, int len, int account_id, struct s_homunculus *phd) +static void mapif_parse_homunculus_save(int fd, int len, uint32 account_id, struct s_homunculus *phd) { bool result = mapif_homunculus_save(phd); mapif_homunculus_saved(fd, account_id, result); } -static void mapif_parse_homunculus_rename(int fd, int account_id, int char_id, char *name) +static void mapif_parse_homunculus_rename(int fd, uint32 account_id, uint32 char_id, char *name) { bool result = mapif_homunculus_rename(name); mapif_homunculus_renamed(fd, account_id, char_id, result, name); Index: src/char/int_mail.c --- src/char/int_mail.c Base (BASE) +++ src/char/int_mail.c Locally Modified (Based On LOCAL) @@ -15,7 +15,7 @@ #include #include -static int mail_fromsql(int char_id, struct mail_data *md) +static int mail_fromsql(uint32 char_id, struct mail_data *md) { int i, j; struct mail_message *msg; @@ -214,7 +214,7 @@ /*========================================== * Client Inbox Request *------------------------------------------*/ -static void mapif_Mail_sendinbox(int fd, int char_id, unsigned char flag) +static void mapif_Mail_sendinbox(int fd, uint32 char_id, unsigned char flag) { struct mail_data md; mail_fromsql(char_id, &md); @@ -269,7 +269,7 @@ return true; } -static void mapif_Mail_getattach(int fd, int char_id, int mail_id) +static void mapif_Mail_getattach(int fd, uint32 char_id, int mail_id) { struct mail_message msg; @@ -305,7 +305,7 @@ /*========================================== * Delete Mail *------------------------------------------*/ -static void mapif_Mail_delete(int fd, int char_id, int mail_id) +static void mapif_Mail_delete(int fd, uint32 char_id, int mail_id) { bool failed = false; if (SQL_ERROR == Sql_Query(sql_handle, "DELETE FROM `%s` WHERE `id` = '%d'", mail_db, mail_id)) { @@ -347,7 +347,7 @@ /*========================================== * Return Mail *------------------------------------------*/ -static void mapif_Mail_return(int fd, int char_id, int mail_id) +static void mapif_Mail_return(int fd, uint32 char_id, int mail_id) { struct mail_message msg; int new_mail = 0; @@ -409,7 +409,7 @@ { struct mail_message msg; char esc_name[NAME_LENGTH*2+1]; - int account_id = 0; + uint32 account_id = 0; if (RFIFOW(fd,2) != 8 + sizeof(struct mail_message)) return; Index: src/char/int_mercenary.c --- src/char/int_mercenary.c Base (BASE) +++ src/char/int_mercenary.c Locally Modified (Based On LOCAL) @@ -15,7 +15,7 @@ #include #include -bool mercenary_owner_fromsql(int char_id, struct mmo_charstatus *status) +bool mercenary_owner_fromsql(uint32 char_id, struct mmo_charstatus *status) { char *data; @@ -48,7 +48,7 @@ return true; } -bool mercenary_owner_tosql(int char_id, struct mmo_charstatus *status) +bool mercenary_owner_tosql(uint32 char_id, struct mmo_charstatus *status) { if (SQL_ERROR == Sql_Query(sql_handle, "REPLACE INTO `%s` (`char_id`, `merc_id`, `arch_calls`, `arch_faith`, `spear_calls`, `spear_faith`, `sword_calls`, `sword_faith`) VALUES ('%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d')", mercenary_owner_db, char_id, status->mer_id, status->arch_calls, status->arch_faith, status->spear_calls, status->spear_faith, status->sword_calls, status->sword_faith)) { @@ -59,7 +59,7 @@ return true; } -bool mercenary_owner_delete(int char_id) +bool mercenary_owner_delete(uint32 char_id) { if (SQL_ERROR == Sql_Query(sql_handle, "DELETE FROM `%s` WHERE `char_id` = '%d'", mercenary_owner_db, char_id)) Sql_ShowDebug(sql_handle); @@ -94,7 +94,7 @@ return flag; } -bool mapif_mercenary_load(int merc_id, int char_id, struct s_mercenary *merc) +bool mapif_mercenary_load(int merc_id, uint32 char_id, struct s_mercenary *merc) { char *data; @@ -157,7 +157,7 @@ mapif_mercenary_send(fd, merc, result); } -static void mapif_parse_mercenary_load(int fd, int merc_id, int char_id) +static void mapif_parse_mercenary_load(int fd, int merc_id, uint32 char_id) { struct s_mercenary merc; bool result = mapif_mercenary_load(merc_id, char_id, &merc); Index: src/char/int_mercenary.h --- src/char/int_mercenary.h Base (BASE) +++ src/char/int_mercenary.h Locally Modified (Based On LOCAL) @@ -11,9 +11,9 @@ int inter_mercenary_parse_frommap(int fd); // Mercenary Owner Database -bool mercenary_owner_fromsql(int char_id, struct mmo_charstatus *status); -bool mercenary_owner_tosql(int char_id, struct mmo_charstatus *status); -bool mercenary_owner_delete(int char_id); +bool mercenary_owner_fromsql(uint32 char_id, struct mmo_charstatus *status); +bool mercenary_owner_tosql(uint32 char_id, struct mmo_charstatus *status); +bool mercenary_owner_delete(uint32 char_id); bool mapif_mercenary_delete(int merc_id); Index: src/char/int_party.c --- src/char/int_party.c Base (BASE) +++ src/char/int_party.c Locally Modified (Based On LOCAL) @@ -28,11 +28,11 @@ static struct party_data *party_pt; static DBMap *party_db_; // int party_id -> struct party_data* -int mapif_party_broken(int party_id,int flag); +int mapif_party_broken(uint32 party_id,int flag); int party_check_empty(struct party_data *p); -int mapif_parse_PartyLeave(int fd, int party_id, int account_id, int char_id); +int mapif_parse_PartyLeave(int fd, uint32 party_id, uint32 account_id, uint32 char_id); int party_check_exp_share(struct party_data *p); -int mapif_party_optionchanged(int fd,struct party *p, int account_id, int flag); +int mapif_party_optionchanged(int fd,struct party *p, uint32 account_id, int flag); //Updates party's level range and unsets even share if broken. static int int_party_check_lv(struct party_data *p) @@ -185,7 +185,7 @@ } // Read party from mysql -struct party_data *inter_party_fromsql(int party_id) { +struct party_data *inter_party_fromsql(uint32 party_id) { int leader_id = 0; int leader_char = 0; struct party_data *p; @@ -333,7 +333,7 @@ // Create a party whether or not -int mapif_party_created(int fd,int account_id,int char_id,struct party *p) +int mapif_party_created(int fd,uint32 account_id,uint32 char_id,struct party *p) { WFIFOHEAD(fd, 39); WFIFOW(fd,0)=0x3820; @@ -355,7 +355,7 @@ } //Party information not found -static void mapif_party_noinfo(int fd, int party_id, int char_id) +static void mapif_party_noinfo(int fd, uint32 party_id, uint32 char_id) { WFIFOHEAD(fd, 12); WFIFOW(fd,0) = 0x3821; @@ -367,7 +367,7 @@ } //Digest party information -static void mapif_party_info(int fd, struct party *p, int char_id) +static void mapif_party_info(int fd, struct party *p, uint32 char_id) { unsigned char buf[8 + sizeof(struct party)]; WBUFW(buf,0) = 0x3821; @@ -382,7 +382,7 @@ } //Whether or not additional party members -int mapif_party_memberadded(int fd, int party_id, int account_id, int char_id, int flag) +int mapif_party_memberadded(int fd, uint32 party_id, uint32 account_id, uint32 char_id, int flag) { WFIFOHEAD(fd, 15); WFIFOW(fd,0) = 0x3822; @@ -396,7 +396,7 @@ } // Party setting change notification -int mapif_party_optionchanged(int fd,struct party *p,int account_id,int flag) +int mapif_party_optionchanged(int fd,struct party *p,uint32 account_id,int flag) { unsigned char buf[16]; WBUFW(buf,0)=0x3823; @@ -413,7 +413,7 @@ } //Withdrawal notification party -int mapif_party_withdraw(int party_id,int account_id, int char_id) +int mapif_party_withdraw(uint32 party_id,uint32 account_id, uint32 char_id) { unsigned char buf[16]; @@ -442,7 +442,7 @@ } //Dissolution party notification -int mapif_party_broken(int party_id,int flag) +int mapif_party_broken(uint32 party_id,int flag) { unsigned char buf[16]; WBUFW(buf,0)=0x3826; @@ -454,7 +454,7 @@ } //Remarks in the party -int mapif_party_message(int party_id,int account_id,char *mes,int len, int sfd) +int mapif_party_message(int party_id,uint32 account_id,char *mes,int len, int sfd) { unsigned char buf[512]; WBUFW(buf,0)=0x3827; @@ -520,7 +520,7 @@ } // Party information request -static void mapif_parse_PartyInfo(int fd, int party_id, int char_id) +static void mapif_parse_PartyInfo(int fd, uint32 party_id, uint32 char_id) { struct party_data *p; p = inter_party_fromsql(party_id); @@ -532,7 +532,7 @@ } // Add a player to party request -int mapif_parse_PartyAddMember(int fd, int party_id, struct party_member *member) +int mapif_parse_PartyAddMember(int fd, uint32 party_id, struct party_member *member) { struct party_data *p; int i; @@ -570,7 +570,7 @@ } //Party setting change request -int mapif_parse_PartyChangeOption(int fd,int party_id,int account_id,int exp,int item) +int mapif_parse_PartyChangeOption(int fd,uint32 party_id,uint32 account_id,int exp,int item) { struct party_data *p; int flag = 0; @@ -591,7 +591,7 @@ } //Request leave party -int mapif_parse_PartyLeave(int fd, int party_id, int account_id, int char_id) +int mapif_parse_PartyLeave(int fd, uint32 party_id, uint32 account_id, uint32 char_id) { struct party_data *p; int i,j=-1; @@ -641,7 +641,7 @@ return 0; } // When member goes to other map or levels up. -int mapif_parse_PartyChangeMap(int fd, int party_id, int account_id, int char_id, unsigned short map, int online, unsigned int lv) +int mapif_parse_PartyChangeMap(int fd, uint32 party_id, uint32 account_id, uint32 char_id, unsigned short map, int online, unsigned int lv) { struct party_data *p; int i; @@ -695,7 +695,7 @@ } //Request party dissolution -int mapif_parse_BreakParty(int fd,int party_id) +int mapif_parse_BreakParty(int fd,uint32 party_id) { struct party_data *p; @@ -709,12 +709,12 @@ } //Party sending the message -int mapif_parse_PartyMessage(int fd,int party_id,int account_id,char *mes,int len) +int mapif_parse_PartyMessage(int fd,uint32 party_id,uint32 account_id,char *mes,int len) { return mapif_party_message(party_id,account_id,mes,len, fd); } -int mapif_parse_PartyLeaderChange(int fd,int party_id,int account_id,int char_id) +int mapif_parse_PartyLeaderChange(int fd,uint32 party_id,uint32 account_id,uint32 char_id) { struct party_data *p; int i; @@ -782,12 +782,12 @@ } //Leave request from the server (for delete character) -int inter_party_leave(int party_id,int account_id, int char_id) +int inter_party_leave(uint32 party_id,uint32 account_id, uint32 char_id) { return mapif_parse_PartyLeave(-1,party_id,account_id, char_id); } -int inter_party_CharOnline(int char_id, int party_id) +int inter_party_CharOnline(uint32 char_id, uint32 party_id) { struct party_data *p; int i; @@ -833,7 +833,7 @@ return 1; } -int inter_party_CharOffline(int char_id, int party_id) +int inter_party_CharOffline(uint32 char_id, uint32 party_id) { struct party_data *p=NULL; int i; Index: src/char/int_party.h --- src/char/int_party.h Base (BASE) +++ src/char/int_party.h Locally Modified (Based On LOCAL) @@ -19,8 +19,8 @@ int inter_party_parse_frommap(int fd); int inter_party_sql_init(void); void inter_party_sql_final(void); -int inter_party_leave(int party_id,int account_id, int char_id); -int inter_party_CharOnline(int char_id, int party_id); -int inter_party_CharOffline(int char_id, int party_id); +int inter_party_leave(uint32 party_id,uint32 account_id, uint32 char_id); +int inter_party_CharOnline(uint32 char_id, uint32 party_id); +int inter_party_CharOffline(uint32 char_id, uint32 party_id); #endif /* _INT_PARTY_SQL_H_ */ Index: src/char/int_pet.c --- src/char/int_pet.c Base (BASE) +++ src/char/int_pet.c Locally Modified (Based On LOCAL) @@ -128,7 +128,7 @@ return 0; } //------------------------------------------------------ -int mapif_pet_created(int fd, int account_id, struct s_pet *p) +int mapif_pet_created(int fd, uint32 account_id, struct s_pet *p) { WFIFOHEAD(fd, 11); WFIFOW(fd, 0) =0x3880; @@ -146,7 +146,7 @@ return 0; } -int mapif_pet_info(int fd, int account_id, struct s_pet *p) +int mapif_pet_info(int fd, uint32 account_id, struct s_pet *p) { WFIFOHEAD(fd, sizeof(struct s_pet) + 9); WFIFOW(fd, 0) =0x3881; @@ -159,7 +159,7 @@ return 0; } -int mapif_pet_noinfo(int fd, int account_id) +int mapif_pet_noinfo(int fd, uint32 account_id) { WFIFOHEAD(fd, sizeof(struct s_pet) + 9); WFIFOW(fd, 0) =0x3881; @@ -172,7 +172,7 @@ return 0; } -int mapif_save_pet_ack(int fd, int account_id, int flag) +int mapif_save_pet_ack(int fd, uint32 account_id, int flag) { WFIFOHEAD(fd, 7); WFIFOW(fd, 0) =0x3882; @@ -193,7 +193,7 @@ return 0; } -int mapif_create_pet(int fd, int account_id, int char_id, short pet_class, short pet_lv, short pet_egg_id, +int mapif_create_pet(int fd, uint32 account_id, uint32 char_id, short pet_class, short pet_lv, short pet_egg_id, short pet_equip, short intimate, short hungry, char rename_flag, char incuvate, char *pet_name) { memset(pet_pt, 0, sizeof(struct s_pet)); @@ -231,7 +231,7 @@ return 0; } -int mapif_load_pet(int fd, int account_id, int char_id, int pet_id) +int mapif_load_pet(int fd, uint32 account_id, uint32 char_id, uint32 pet_id) { memset(pet_pt, 0, sizeof(struct s_pet)); @@ -251,7 +251,7 @@ return 0; } -int mapif_save_pet(int fd, int account_id, struct s_pet *data) +int mapif_save_pet(int fd, uint32 account_id, struct s_pet *data) { //here process pet save request. int len; @@ -277,7 +277,7 @@ return 0; } -int mapif_delete_pet(int fd, int pet_id) +int mapif_delete_pet(int fd, uint32 pet_id) { mapif_delete_pet_ack(fd, inter_pet_delete(pet_id)); Index: src/char/int_quest.c --- src/char/int_quest.c Base (BASE) +++ src/char/int_quest.c Locally Modified (Based On LOCAL) @@ -19,7 +19,7 @@ #include //Load entire questlog for a character -int mapif_quests_fromsql(int char_id, struct quest questlog[]) +int mapif_quests_fromsql(uint32 char_id, struct quest questlog[]) { int i; struct quest tmp_quest; @@ -52,7 +52,7 @@ } //Delete a quest -bool mapif_quest_delete(int char_id, int quest_id) +bool mapif_quest_delete(uint32 char_id, int quest_id) { if (SQL_ERROR == Sql_Query(sql_handle, "DELETE FROM `%s` WHERE `quest_id` = '%d' AND `char_id` = '%d'", quest_db, quest_id, char_id)) { Sql_ShowDebug(sql_handle); @@ -63,7 +63,7 @@ } //Add a quest to a questlog -bool mapif_quest_add(int char_id, struct quest qd) +bool mapif_quest_add(uint32 char_id, struct quest qd) { if (SQL_ERROR == Sql_Query(sql_handle, "INSERT INTO `%s`(`quest_id`, `char_id`, `state`, `time`, `count1`, `count2`, `count3`) VALUES ('%d', '%d', '%d','%d', '%d', '%d', '%d')", quest_db, qd.quest_id, char_id, qd.state, qd.time, qd.count[0], qd.count[1], qd.count[2])) { Sql_ShowDebug(sql_handle); @@ -74,7 +74,7 @@ } //Update a questlog -bool mapif_quest_update(int char_id, struct quest qd) +bool mapif_quest_update(uint32 char_id, struct quest qd) { if (SQL_ERROR == Sql_Query(sql_handle, "UPDATE `%s` SET `state`='%d', `count1`='%d', `count2`='%d', `count3`='%d' WHERE `quest_id` = '%d' AND `char_id` = '%d'", quest_db, qd.state, qd.count[0], qd.count[1], qd.count[2], qd.quest_id, char_id)) { Sql_ShowDebug(sql_handle); @@ -88,7 +88,7 @@ int mapif_parse_quest_save(int fd) { int i, j, k, num2, num1 = (RFIFOW(fd,2)-8)/sizeof(struct quest); - int char_id = RFIFOL(fd,4); + uint32 char_id = RFIFOL(fd,4); struct quest qd1[MAX_QUEST_DB],qd2[MAX_QUEST_DB]; bool success = true; @@ -129,7 +129,7 @@ //Send questlog to map server int mapif_parse_quest_load(int fd) { - int char_id = RFIFOL(fd,2); + uint32 char_id = RFIFOL(fd,2); struct quest tmp_questlog[MAX_QUEST_DB]; int num_quests, i, num_complete = 0; int complete[MAX_QUEST_DB]; Index: src/char/int_storage.c --- src/char/int_storage.c Base (BASE) +++ src/char/int_storage.c Locally Modified (Based On LOCAL) @@ -18,14 +18,14 @@ #define STORAGE_MEMINC 16 /// Save storage data to sql -int storage_tosql(int account_id, struct storage_data *p) +int storage_tosql(uint32 account_id, struct storage_data *p) { memitemdata_to_sql(p->items, MAX_STORAGE, account_id, TABLE_STORAGE); return 0; } /// Load storage data to mem -int storage_fromsql(int account_id, struct storage_data *p) +int storage_fromsql(uint32 account_id, struct storage_data *p) { StringBuf buf; struct item *item; @@ -79,7 +79,7 @@ } /// Save guild_storage data to sql -int guild_storage_tosql(int guild_id, struct guild_storage *p) +int guild_storage_tosql(uint32 guild_id, struct guild_storage *p) { memitemdata_to_sql(p->items, MAX_GUILD_STORAGE, guild_id, TABLE_GUILD_STORAGE); ShowInfo("guild storage save to DB - guild: %d\n", guild_id); @@ -87,7 +87,7 @@ } /// Load guild_storage data to mem -int guild_storage_fromsql(int guild_id, struct guild_storage *p) +int guild_storage_fromsql(uint32 guild_id, struct guild_storage *p) { StringBuf buf; struct item *item; @@ -153,13 +153,13 @@ } // q?f[^? -int inter_storage_delete(int account_id) +int inter_storage_delete(uint32 account_id) { if (SQL_ERROR == Sql_Query(sql_handle, "DELETE FROM `%s` WHERE `account_id`='%d'", storage_db, account_id)) Sql_ShowDebug(sql_handle); return 0; } -int inter_guild_storage_delete(int guild_id) +int inter_guild_storage_delete(uint32 guild_id) { if (SQL_ERROR == Sql_Query(sql_handle, "DELETE FROM `%s` WHERE `guild_id`='%d'", guild_storage_db, guild_id)) Sql_ShowDebug(sql_handle); @@ -169,7 +169,7 @@ //--------------------------------------------------------- // packet from map server -int mapif_load_guild_storage(int fd,int account_id,int guild_id) +int mapif_load_guild_storage(int fd,uint32 account_id,uint32 guild_id) { if (SQL_ERROR == Sql_Query(sql_handle, "SELECT `guild_id` FROM `%s` WHERE `guild_id`='%d'", guild_db, guild_id)) Sql_ShowDebug(sql_handle); @@ -194,7 +194,7 @@ WFIFOSET(fd, 12); return 0; } -int mapif_save_guild_storage_ack(int fd,int account_id,int guild_id,int fail) +int mapif_save_guild_storage_ack(int fd,uint32 account_id,uint32 guild_id,int fail) { WFIFOHEAD(fd,11); WFIFOW(fd,0)=0x3819; @@ -217,7 +217,7 @@ int mapif_parse_SaveGuildStorage(int fd) { - int guild_id; + uint32 guild_id; int len; RFIFOHEAD(fd); Index: src/char/int_storage.h --- src/char/int_storage.h Base (BASE) +++ src/char/int_storage.h Locally Modified (Based On LOCAL) @@ -9,14 +9,14 @@ int inter_storage_sql_init(void); void inter_storage_sql_final(void); -int inter_storage_delete(int account_id); -int inter_guild_storage_delete(int guild_id); +int inter_storage_delete(uint32 account_id); +int inter_guild_storage_delete(uint32 guild_id); int inter_storage_parse_frommap(int fd); //Exported for use in the TXT-SQL converter. -int storage_fromsql(int account_id, struct storage_data *p); -int storage_tosql(int account_id,struct storage_data *p); -int guild_storage_tosql(int guild_id, struct guild_storage *p); +int storage_fromsql(uint32 account_id, struct storage_data *p); +int storage_tosql(uint32 account_id,struct storage_data *p); +int guild_storage_tosql(uint32 guild_id, struct guild_storage *p); #endif /* _INT_STORAGE_SQL_H_ */ Index: src/char/inter.c --- src/char/inter.c Base (BASE) +++ src/char/inter.c Locally Modified (Based On LOCAL) @@ -135,7 +135,7 @@ aFree(msg_table[i]); } /* from pc.c due to @accinfo. any ideas to replace this crap are more than welcome. */ -const char *job_name(int class_) +const char *job_name(short class_) { switch (class_) { case JOB_NOVICE: @@ -452,7 +452,7 @@ { int u_fd = RFIFOL(fd,2), aid = RFIFOL(fd,6), castergroup = RFIFOL(fd,10); char query[NAME_LENGTH], query_esq[NAME_LENGTH*2+1]; - int account_id; + uint32 account_id; char *data; safestrncpy(query, (char *) RFIFOP(fd,14), NAME_LENGTH); @@ -481,7 +481,7 @@ } else {// more than one, listing... [Dekamaster/Nightroad] inter_to_fd(fd, u_fd, aid, "Your query returned the following %d results, please be more specific...",(int)Sql_NumRows(sql_handle)); while (SQL_SUCCESS == Sql_NextRow(sql_handle)) { - int class_; + short class_; short base_level, job_level, online; char name[NAME_LENGTH]; @@ -568,7 +568,8 @@ } else { while (SQL_SUCCESS == Sql_NextRow(sql_handle)) { - int char_id, class_; + uint32 char_id; + short class_; short char_num, base_level, job_level, online; char name[NAME_LENGTH]; @@ -597,7 +598,7 @@ } //-------------------------------------------------------- // Save registry to sql -int inter_accreg_tosql(int account_id, int char_id, struct accreg *reg, int type) +int inter_accreg_tosql(uint32 account_id, uint32 char_id, struct accreg *reg, int type) { struct global_reg *r; StringBuf buf; @@ -660,7 +661,7 @@ } // Load account_reg from sql (type=2) -int inter_accreg_fromsql(int account_id,int char_id, struct accreg *reg, int type) +int inter_accreg_fromsql(uint32 account_id,uint32 char_id, struct accreg *reg, int type) { struct global_reg *r; char *data; @@ -903,7 +904,7 @@ } // Send the requested account_reg -int mapif_account_reg_reply(int fd,int account_id,int char_id, int type) +int mapif_account_reg_reply(int fd,uint32 account_id,uint32 char_id, int type) { struct accreg *reg=accreg_pt; WFIFOHEAD(fd, 13 + 5000); @@ -930,7 +931,7 @@ } //Request to kick char from a certain map server. [Skotlex] -int mapif_disconnectplayer(int fd, int account_id, int char_id, int reason) +int mapif_disconnectplayer(int fd, uint32 account_id, uint32 char_id, int reason) { if (fd >= 0) { WFIFOHEAD(fd,7); @@ -1142,21 +1143,23 @@ return 1; } -static void mapif_namechange_ack(int fd, int account_id, int char_id, int type, int flag, char *name) +static void mapif_namechange_ack(int fd, uint32 account_id, uint32 char_id, int type, int flag, char *name) { WFIFOHEAD(fd, NAME_LENGTH+13); WFIFOW(fd, 0) = 0x3806; WFIFOL(fd, 2) = account_id; WFIFOL(fd, 6) = char_id; - WFIFOB(fd,10) = type; - WFIFOB(fd,11) = flag; + WFIFOB(fd,10) =(uint8) type; + WFIFOB(fd,11) =(uint8) flag; memcpy(WFIFOP(fd, 12), name, NAME_LENGTH); WFIFOSET(fd, NAME_LENGTH+13); } int mapif_parse_NameChangeRequest(int fd) { - int account_id, char_id, type; + uint32 account_id; + uint32 char_id; + uint8 type; char *name; int i; Index: src/char/inter.h --- src/char/inter.h Base (BASE) +++ src/char/inter.h Locally Modified (Based On LOCAL) @@ -12,7 +12,7 @@ int inter_parse_frommap(int fd); int inter_mapif_init(int fd); int mapif_send_gmaccounts(void); -int mapif_disconnectplayer(int fd, int account_id, int char_id, int reason); +int mapif_disconnectplayer(int fd, uint32 account_id, uint32 char_id, int reason); int inter_log(char *fmt,...); @@ -25,6 +25,6 @@ extern char main_chat_nick[16]; -int inter_accreg_tosql(int account_id, int char_id, struct accreg *reg, int type); +int inter_accreg_tosql(uint32 account_id, uint32 char_id, struct accreg *reg, int type); #endif /* _INTER_SQL_H_ */ Index: src/common/core.c --- src/common/core.c Base (BASE) +++ src/common/core.c Locally Modified (Based On LOCAL) @@ -181,20 +181,22 @@ const char *postfix = "/"EXPAND_AND_QUOTE(SVNNODEPATH)")"; // there should exist only 1 entry like this size_t prefix_len = strlen(prefix); size_t postfix_len = strlen(postfix); - size_t i,j,len; + size_t i,j, slen; + long int len; char *buffer; // read file to buffer fseek(fp, 0, SEEK_END); len = ftell(fp); - buffer = (char *)aMalloc(len + 1); + slen = sizeof(len); + buffer = (char *)aMalloc(slen + 1); fseek(fp, 0, SEEK_SET); - len = fread(buffer, 1, len, fp); - buffer[len] = '\0'; + slen = fread(buffer, 1, slen, fp); + buffer[slen] = '\0'; fclose(fp); // parse buffer - for (i = prefix_len + 1; i + postfix_len <= len; ++i) { + for (i = prefix_len + 1; i + postfix_len <= slen; ++i) { if (buffer[i] != postfix[0] || memcmp(buffer + i, postfix, postfix_len) != 0) continue; // postfix missmatch for (j = i; j > 0; --j) { Index: src/common/grfio.c --- src/common/grfio.c Base (BASE) +++ src/common/grfio.c Locally Modified (Based On LOCAL) @@ -198,7 +198,7 @@ scycle = 7; // so decrypt/de-shuffle periodically - j = -1; // 0, adjusted to fit the ++j step + j =(size_t) -1; // 0, adjusted to fit the ++j step for (i = 20; i < nblocks; ++i) { if (i % dcycle == 0) { // decrypt block @@ -414,7 +414,7 @@ FILELIST *entry = filelist_find(fname); if (entry == NULL || entry->gentry <= 0) { // LocalFileCheck char lfname[256]; - int declen; + unsigned int declen; FILE *in; grfio_localpath_create(lfname, sizeof(lfname), (entry && entry->fnd) ? entry->fnd : fname); @@ -443,7 +443,7 @@ char *grfname = gentry_table[entry->gentry - 1]; FILE *in = fopen(grfname, "rb"); if (in != NULL) { - int fsize = entry->srclen_aligned; + unsigned int fsize = entry->srclen_aligned; unsigned char *buf = (unsigned char *)aMalloc(fsize); fseek(in, entry->srcpos, 0); if (fread(buf, 1, fsize, in) != fsize) ShowError("An error occured in fread in grfio_reads, grfname=%s\n",grfname); @@ -513,7 +513,8 @@ /// @param gentry index of the grf file name in the gentry_table static int grfio_entryread(const char *grfname, int gentry) { - long grf_size,list_size; + long grf_size; + unsigned int list_size; unsigned char grf_header[0x2e]; int entry,entrys,ofs,grf_version; unsigned char *grf_filelist; @@ -578,7 +579,7 @@ #ifdef GRFIO_LOCAL aentry.gentry = -(gentry+1); // As Flag for making it a negative number carrying out the first time LocalFileCheck #else - aentry.gentry = gentry+1; // With no first time LocalFileCheck + aentry.gentry =(char) gentry+1; // With no first time LocalFileCheck #endif filelist_modify(&aentry); } @@ -630,13 +631,13 @@ aentry.srclen_aligned = getlong(grf_filelist+ofs2+4); aentry.declen = getlong(grf_filelist+ofs2+8); aentry.srcpos = getlong(grf_filelist+ofs2+13)+0x2e; - aentry.type = type; + aentry.type =(char) type; safestrncpy(aentry.fn, fname, sizeof(aentry.fn)); aentry.fnd = NULL; #ifdef GRFIO_LOCAL aentry.gentry = -(gentry+1); // As Flag for making it a negative number carrying out the first time LocalFileCheck #else - aentry.gentry = gentry+1; // With no first time LocalFileCheck + aentry.gentry =(char) gentry+1; // With no first time LocalFileCheck #endif filelist_modify(&aentry); } Index: src/common/malloc.c --- src/common/malloc.c Base (BASE) +++ src/common/malloc.c Locally Modified (Based On LOCAL) @@ -208,8 +208,7 @@ if (size <= BLOCK_DATA_SIZE1) { return (unsigned short)(size + BLOCK_ALIGNMENT1 - 1) / BLOCK_ALIGNMENT1; } else if (size <= BLOCK_DATA_SIZE) { - return (unsigned short)(size - BLOCK_DATA_SIZE1 + BLOCK_ALIGNMENT2 - 1) / BLOCK_ALIGNMENT2 - + BLOCK_DATA_COUNT1; + return (unsigned short)( (size - BLOCK_DATA_SIZE1 + BLOCK_ALIGNMENT2 - 1) / BLOCK_ALIGNMENT2 + BLOCK_DATA_COUNT1); } else { return 0xffff; // �u���b�N���ⴂ���ꍇ�� hash �ɂ��Ȃ� } @@ -227,7 +226,7 @@ void *_mmalloc(size_t size, const char *file, int line, const char *func) { struct block *block; - short size_hash = size2hash(size); + unsigned short size_hash = size2hash(size); struct unit_head *head; if (((long) size) < 0) { @@ -249,7 +248,7 @@ p->unit_head.block = NULL; p->unit_head.size = 0; p->unit_head.file = file; - p->unit_head.line = line; + p->unit_head.line =(unsigned short) line; p->prev = NULL; if (unit_head_large_first == NULL) p->next = NULL; @@ -318,7 +317,7 @@ head->block = block; head->file = file; - head->line = line; + head->line = (unsigned short)line; head->size = (unsigned short)size; *(long *)((char *)head + sizeof(struct unit_head) - sizeof(long) + size) = 0xdeadbeaf; return (char *)head + sizeof(struct unit_head) - sizeof(long); @@ -415,7 +414,7 @@ #ifdef DEBUG_MEMMGR memset(ptr, 0xfd, block->unit_size - sizeof(struct unit_head) + sizeof(long)); head->file = file; - head->line = line; + head->line = (unsigned short) line; #endif memmgr_assert(block->unit_used > 0); if (--block->unit_used == 0) { @@ -484,7 +483,7 @@ p->unfill_next = NULL; p->unit_size = (unsigned short)(hash2size(hash) + sizeof(struct unit_head)); p->unit_hash = hash; - p->unit_count = BLOCK_DATA_SIZE / p->unit_size; + p->unit_count = (unsigned short) (BLOCK_DATA_SIZE / p->unit_size); p->unit_used = 0; p->unit_unfill = 0xFFFF; p->unit_maxused = 0; Index: src/common/mapindex.c --- src/common/mapindex.c Base (BASE) +++ src/common/mapindex.c Locally Modified (Based On LOCAL) @@ -117,7 +117,7 @@ unsigned short mapindex_name2id(const char *name) { //TODO: Perhaps use a db to speed this up? [Skotlex] - int i; + unsigned short i; char map_name[MAP_NAME_LENGTH]; mapindex_getmapname(name, map_name); Index: src/common/mmo.h --- src/common/mmo.h Base (BASE) +++ src/common/mmo.h Locally Modified (Based On LOCAL) @@ -229,7 +229,8 @@ //Holds array of global registries, used by the char server and converter. struct accreg { - int account_id, char_id; + uint32 account_id; + uint32 char_id; int reg_num; struct global_reg reg[MAX_REG_NUM]; }; @@ -247,16 +248,16 @@ struct guild_storage { int dirty; - int guild_id; + uint32 guild_id; short storage_status; short storage_amount; struct item items[MAX_GUILD_STORAGE]; }; struct s_pet { - int account_id; - int char_id; - int pet_id; + uint32 account_id; + uint32 char_id; + uint32 pet_id; short class_; short level; short egg_id;//pet egg id @@ -270,8 +271,8 @@ struct s_homunculus { //[orn] char name[NAME_LENGTH]; - int hom_id; - int char_id; + uint32 hom_id; + uint32 char_id; short class_; short prev_class; int hp,max_hp,sp,max_sp; @@ -283,17 +284,12 @@ unsigned int exp; short rename_flag; short vaporize; //albator - int str ; - int agi ; - int vit ; - int int_ ; - int dex ; - int luk ; + unsigned short str, agi, vit, int_, dex, luk; }; struct s_mercenary { - int mercenary_id; - int char_id; + uint32 mercenary_id; + uint32 char_id; short class_; int hp, sp; unsigned int kill_count; @@ -301,17 +297,18 @@ }; struct s_elemental { - int elemental_id; - int char_id; + uint32 elemental_id; + uint32 char_id; short class_; int mode; - int hp, sp, max_hp, max_sp, str, agi, vit, int_, dex, luk; - int life_time; + unsigned int hp, sp, max_hp, max_sp; + unsigned short str, agi, vit, int_, dex, luk; + unsigned int life_time; }; struct s_friend { - int account_id; - int char_id; + uint32 account_id; + uint32 char_id; char name[NAME_LENGTH]; }; @@ -324,8 +321,8 @@ #endif struct mmo_charstatus { - int char_id; - int account_id; + uint32 char_id; + uint32 account_id; int partner_id; int father; int mother; @@ -341,7 +338,7 @@ short manner; unsigned char karma; short hair,hair_color,clothes_color; - int party_id,guild_id,pet_id,hom_id,mer_id,ele_id; + uint32 party_id,guild_id,pet_id,hom_id,mer_id,ele_id; int fame; // Mercenary Guilds Rank @@ -355,9 +352,10 @@ short robe; char name[NAME_LENGTH]; - unsigned int base_level,job_level; + uint16 base_level,job_level; short str,agi,vit,int_,dex,luk; - unsigned char slot,sex; + unsigned char slot; + uint8 sex; uint32 mapip; uint16 mapport; @@ -434,8 +432,8 @@ }; struct party_member { - int account_id; - int char_id; + uint32 account_id; + uint32 char_id; char name[NAME_LENGTH]; unsigned short class_; unsigned short map; @@ -455,7 +453,8 @@ struct map_session_data; struct guild_member { - int account_id, char_id; + uint32 account_id; + uint32 char_id; short hair,hair_color,gender,class_,lv; uint64 exp; int exp_payper; @@ -474,14 +473,14 @@ struct guild_alliance { int opposition; - int guild_id; + uint32 guild_id; char name[NAME_LENGTH]; }; struct guild_expulsion { char name[NAME_LENGTH]; char mes[40]; - int account_id; + uint32 account_id; }; struct guild_skill { @@ -489,7 +488,7 @@ }; struct guild { - int guild_id; + uint32 guild_id; short guild_lv, connect_member, max_member, average_lv; uint64 exp; unsigned int next_exp; @@ -512,7 +511,7 @@ int mapindex; char castle_name[NAME_LENGTH]; char castle_event[NAME_LENGTH]; - int guild_id; + uint32 guild_id; int economy; int defense; int triggerE; Index: src/common/socket.c --- src/common/socket.c Base (BASE) +++ src/common/socket.c Locally Modified (Based On LOCAL) @@ -18,6 +18,9 @@ #include "../common/winapi.h" #else #include +#ifdef __linux__ + #include +#endif #include #include #include Index: src/common/socket.h --- src/common/socket.h Base (BASE) +++ src/common/socket.h Locally Modified (Based On LOCAL) @@ -73,9 +73,9 @@ struct socket_data { struct { - unsigned char eof : 1; - unsigned char server : 1; - unsigned char ping : 2; + int eof : 1; + int server : 1; + int ping : 2; } flag; uint32 client_addr; // remote client address Index: src/login/account.h --- src/login/account.h Base (BASE) +++ src/login/account.h Locally Modified (Based On LOCAL) @@ -35,12 +35,12 @@ struct mmo_account { - int account_id; + uint32 account_id; char userid[NAME_LENGTH]; char pass[32+1]; // 23+1 for plaintext, 32+1 for md5-ed passwords - char sex; // gender (M/F/S) + uint8 sex; // gender (M/F/S) char email[40]; // e-mail (by default: a@a.com) - int group_id; // player group id + uint8 group_id; // player group id unsigned int state; // packet 0x006a value + 1 (0: compte OK) time_t unban_time; // (timestamp): ban time limit of the account (0 = no ban) time_t expiration_time; // (timestamp): validity limit of the account (0 = unlimited) @@ -116,7 +116,7 @@ /// @param self Database /// @param account_id Account id /// @return true if successful - bool (*remove)(AccountDB *self, const int account_id); + bool (*remove)(AccountDB *self, const uint32 account_id); /// Modifies the data of an existing account. /// Uses acc->account_id to identify the account. @@ -132,7 +132,7 @@ /// @param acc Pointer that receives the account data /// @param account_id Target account id /// @return true if successful - bool (*load_num)(AccountDB *self, struct mmo_account *acc, const int account_id); + bool (*load_num)(AccountDB *self, struct mmo_account *acc, const uint32 account_id); /// Finds an account with userid and copies it to acc. /// Index: src/login/account_sql.c --- src/login/account_sql.c Base (BASE) +++ src/login/account_sql.c Locally Modified (Based On LOCAL) @@ -55,15 +55,15 @@ static bool account_db_sql_get_property(AccountDB *self, const char *key, char *buf, size_t buflen); static bool account_db_sql_set_property(AccountDB *self, const char *option, const char *value); static bool account_db_sql_create(AccountDB *self, struct mmo_account *acc); -static bool account_db_sql_remove(AccountDB *self, const int account_id); +static bool account_db_sql_remove(AccountDB *self, const uint32 account_id); static bool account_db_sql_save(AccountDB *self, const struct mmo_account *acc); -static bool account_db_sql_load_num(AccountDB *self, struct mmo_account *acc, const int account_id); +static bool account_db_sql_load_num(AccountDB *self, struct mmo_account *acc, const uint32 account_id); static bool account_db_sql_load_str(AccountDB *self, struct mmo_account *acc, const char *userid); static AccountDBIterator *account_db_sql_iterator(AccountDB *self); static void account_db_sql_iter_destroy(AccountDBIterator *self); static bool account_db_sql_iter_next(AccountDBIterator *self, struct mmo_account *acc); -static bool mmo_auth_fromsql(AccountDB_SQL *db, struct mmo_account *acc, int account_id); +static bool mmo_auth_fromsql(AccountDB_SQL *db, struct mmo_account *acc, uint32 account_id); static bool mmo_auth_tosql(AccountDB_SQL *db, const struct mmo_account *acc, bool is_new); /// public constructor @@ -279,7 +279,7 @@ else if (strcmpi(key, "codepage") == 0) safestrncpy(db->codepage, value, sizeof(db->codepage)); else if (strcmpi(key, "case_sensitive") == 0) - db->case_sensitive = config_switch(value); + db->case_sensitive =(bool) config_switch(value); else if (strcmpi(key, "account_db") == 0) safestrncpy(db->account_db, value, sizeof(db->account_db)); else if (strcmpi(key, "accreg_db") == 0) @@ -301,7 +301,7 @@ Sql *sql_handle = db->accounts; // decide on the account id to assign - int account_id; + uint32 account_id; if (acc->account_id != -1) { // caller specifies it manually account_id = acc->account_id; @@ -343,7 +343,7 @@ } /// delete an existing account entry + its regs -static bool account_db_sql_remove(AccountDB *self, const int account_id) +static bool account_db_sql_remove(AccountDB *self, const uint32 account_id) { AccountDB_SQL *db = (AccountDB_SQL *)self; Sql *sql_handle = db->accounts; @@ -369,7 +369,7 @@ } /// retrieve data from db and store it in the provided data structure -static bool account_db_sql_load_num(AccountDB *self, struct mmo_account *acc, const int account_id) +static bool account_db_sql_load_num(AccountDB *self, struct mmo_account *acc, const uint32 account_id) { AccountDB_SQL *db = (AccountDB_SQL *)self; return mmo_auth_fromsql(db, acc, account_id); @@ -381,7 +381,7 @@ AccountDB_SQL *db = (AccountDB_SQL *)self; Sql *sql_handle = db->accounts; char esc_userid[2*NAME_LENGTH+1]; - int account_id; + uint32 account_id; char *data; Sql_EscapeString(sql_handle, esc_userid, userid); @@ -445,7 +445,7 @@ AccountDBIterator_SQL *iter = (AccountDBIterator_SQL *)self; AccountDB_SQL *db = (AccountDB_SQL *)iter->db; Sql *sql_handle = db->accounts; - int account_id; + uint32 account_id; char *data; // get next account ID @@ -471,7 +471,7 @@ } -static bool mmo_auth_fromsql(AccountDB_SQL *db, struct mmo_account *acc, int account_id) +static bool mmo_auth_fromsql(AccountDB_SQL *db, struct mmo_account *acc, uint32 account_id) { Sql *sql_handle = db->accounts; char *data; Index: src/login/login.c --- src/login/login.c Base (BASE) +++ src/login/login.c Locally Modified (Based On LOCAL) @@ -73,16 +73,16 @@ struct auth_node { - int account_id; + uint32 account_id; uint32 login_id1; uint32 login_id2; uint32 ip; - char sex; + uint8 sex; uint32 version; uint8 clienttype; }; -static DBMap *auth_db; // int account_id -> struct auth_node* +static DBMap *auth_db; // uint32 account_id -> struct auth_node* //----------------------------------------------------- @@ -90,12 +90,12 @@ //----------------------------------------------------- struct online_login_data { - int account_id; + uint32 account_id; int waiting_disconnect; int char_server; }; -static DBMap *online_db; // int account_id -> struct online_login_data* +static DBMap *online_db; // uint32 account_id -> struct online_login_data* static int waiting_disconnect_timer(int tid, unsigned int tick, int id, intptr_t data); /** @@ -111,7 +111,7 @@ return db_ptr2data(p); } -struct online_login_data *add_online_user(int char_server, int account_id) { +struct online_login_data *add_online_user(int char_server, uint32 account_id) { struct online_login_data *p; p = idb_ensure(online_db, account_id, create_online_user); p->char_server = char_server; @@ -122,7 +122,7 @@ return p; } -void remove_online_user(int account_id) +void remove_online_user(uint32 account_id) { struct online_login_data *p; p = (struct online_login_data *)idb_get(online_db, account_id); @@ -428,12 +428,12 @@ { struct auth_node *node; - int account_id = RFIFOL(fd,2); + uint32 account_id = RFIFOL(fd,2); uint32 login_id1 = RFIFOL(fd,6); uint32 login_id2 = RFIFOL(fd,10); uint8 sex = RFIFOB(fd,14); //uint32 ip_ = ntohl(RFIFOL(fd,15)); - int request_id = RFIFOL(fd,19); + uint32 request_id = RFIFOL(fd,19); RFIFOSKIP(fd,23); node = (struct auth_node *)idb_get(auth_db, account_id); @@ -503,7 +503,7 @@ struct mmo_account acc; char email[40]; - int account_id = RFIFOL(fd,2); + uint32 account_id = RFIFOL(fd,2); safestrncpy(email, (char *)RFIFOP(fd,6), 40); remove_control_chars(email); RFIFOSKIP(fd,46); @@ -528,10 +528,10 @@ struct mmo_account acc; time_t expiration_time = 0; char email[40] = ""; - int group_id = 0; + uint8 group_id = 0; char birthdate[10+1] = ""; - int account_id = RFIFOL(fd,2); + uint32 account_id = RFIFOL(fd,2); RFIFOSKIP(fd,6); if (!accounts->load_num(accounts, &acc, account_id)) @@ -571,7 +571,7 @@ char actual_email[40]; char new_email[40]; - int account_id = RFIFOL(fd,2); + uint32 account_id = RFIFOL(fd,2); safestrncpy(actual_email, (char *)RFIFOP(fd,6), 40); safestrncpy(new_email, (char *)RFIFOP(fd,46), 40); RFIFOSKIP(fd, 86); @@ -601,7 +601,7 @@ { struct mmo_account acc; - int account_id = RFIFOL(fd,2); + uint32 account_id = RFIFOL(fd,2); unsigned int state = RFIFOL(fd,6); RFIFOSKIP(fd,10); @@ -635,7 +635,7 @@ { struct mmo_account acc; - int account_id = RFIFOL(fd,2); + uint32 account_id = RFIFOL(fd,2); int year = (short)RFIFOW(fd,6); int month = (short)RFIFOW(fd,8); int mday = (short)RFIFOW(fd,10); @@ -692,7 +692,7 @@ { struct mmo_account acc; - int account_id = RFIFOL(fd,2); + uint32 account_id = RFIFOL(fd,2); RFIFOSKIP(fd,6); if (!accounts->load_num(accounts, &acc, account_id)) @@ -724,7 +724,7 @@ { struct mmo_account acc; - int account_id = RFIFOL(fd,4); + uint32 account_id = RFIFOL(fd,4); if (!accounts->load_num(accounts, &acc, account_id)) ShowStatus("Char-server '%s': receiving (from the char-server) of account_reg2 (account: %d not found, ip: %s).\n", server[id].name, account_id, ip); @@ -761,7 +761,7 @@ { struct mmo_account acc; - int account_id = RFIFOL(fd,2); + uint32 account_id = RFIFOL(fd,2); RFIFOSKIP(fd,6); if (!accounts->load_num(accounts, &acc, account_id)) @@ -819,8 +819,8 @@ struct mmo_account acc; size_t off; - int account_id = RFIFOL(fd,2); - int char_id = RFIFOL(fd,6); + uint32 account_id = RFIFOL(fd,2); + uint32 char_id = RFIFOL(fd,6); RFIFOSKIP(fd,10); WFIFOHEAD(fd,ACCOUNT_REG2_NUM*sizeof(struct global_reg)); Index: src/login/login.h --- src/login/login.h Base (BASE) +++ src/login/login.h Locally Modified (Based On LOCAL) @@ -20,10 +20,10 @@ #define PASSWORDENC 3 struct login_session_data { - int account_id; - long login_id1; - long login_id2; - char sex;// 'F','M','S' + uint32 account_id; + uint32 login_id1; + uint32 login_id2; + uint8 sex;// 'F','M','S' char userid[NAME_LENGTH]; char passwd[32+1]; // 23+1 for plaintext, 32+1 for md5-ed passwords @@ -54,7 +54,7 @@ }; struct client_hash_node { - int group_id; + uint8 group_id; uint8 hash[16]; struct client_hash_node *next; }; @@ -71,7 +71,7 @@ bool new_account_flag,new_acc_length_limit; // autoregistration via _M/_F ? / if yes minimum length is 4? int start_limited_time; // new account expiration time (-1: unlimited) bool use_md5_passwds; // work with password hashes instead of plaintext passwords? - int group_id_to_connect; // required group id to connect + int8 group_id_to_connect; // required group id to connect int min_group_id_to_connect; // minimum group id to connect bool check_client_version; // check the clientversion set in the clientinfo ? uint32 client_version_to_connect; // the client version needed to connect (if checking is enabled) Index: src/map/atcommand.c --- src/map/atcommand.c Base (BASE) +++ src/map/atcommand.c Locally Modified (Based On LOCAL) @@ -271,7 +271,7 @@ len=SHRT_MAX-4; // maximum length off=4; } - WFIFOHEAD(fd, len); + WFIFOHEAD(fd, sizeof(len)); WFIFOW(fd,0)=TOW(type); // parse packet contents @@ -415,7 +415,7 @@ // terminate the string if (off < end) { // fill the rest with 0's - memset(WFIFOP(fd,off),0,end-off); + memset(WFIFOP(fd,off),0,sizeof(end)-sizeof(off)); off=end; } } else { @@ -429,12 +429,12 @@ if (packet_db[sd->packet_ver][type].len == -1) { // send dynamic packet WFIFOW(fd,2)=TOW(off); - WFIFOSET(fd,off); + WFIFOSET(fd,sizeof(off)); } else { // send static packet if (off < len) - memset(WFIFOP(fd,off),0,len-off); - WFIFOSET(fd,len); + memset(WFIFOP(fd,off),0,sizeof(len)-sizeof(off)); + WFIFOSET(fd,sizeof(len)); } } else { clif_displaymessage(fd, msg_txt(259)); // Invalid packet @@ -457,7 +457,7 @@ char map_name[MAP_NAME_LENGTH_EXT]; unsigned short mapindex; short x = 0, y = 0; - int m = -1; + short m = -1; nullpo_retr(-1, sd); @@ -629,7 +629,7 @@ * 3 = @who3 : [CID/AID] Player name [Title], Map, X, Y */ int display_type = 1; - int map_id = -1; + short map_id = -1; nullpo_retr(-1, sd); @@ -736,7 +736,7 @@ if (sscanf(message, "%199[^\n]", match_text) < 1) strcpy(match_text, ""); for (j = 0; match_text[j]; j++) - match_text[j] = TOLOWER(match_text[j]); + match_text[j] =(char) TOLOWER(match_text[j]); count = 0; level = pc_get_group_level(sd); @@ -750,7 +750,7 @@ if (match_text[0]) { memcpy(player_name, pl_sd->status.name, NAME_LENGTH); for (j = 0; player_name[j]; j++) - player_name[j] = TOLOWER(player_name[j]); + player_name[j] =(char) TOLOWER(player_name[j]); // search with no case sensitive if (strstr(player_name, match_text) == NULL) continue; @@ -820,7 +820,7 @@ *------------------------------------------*/ ACMD_FUNC(load) { - int m; + short m; nullpo_retr(-1, sd); @@ -845,19 +845,19 @@ *------------------------------------------*/ ACMD_FUNC(speed) { - int speed; + unsigned short speed; nullpo_retr(-1, sd); memset(atcmd_output, '\0', sizeof(atcmd_output)); - if (!message || !*message || sscanf(message, "%d", &speed) < 1) { + if (!message || !*message || sscanf(message, "%hui", &speed) < 1) { sprintf(atcmd_output, msg_txt(918), MIN_WALK_SPEED, MAX_WALK_SPEED); // Please enter a speed value (usage: @speed <%d-%d>). clif_displaymessage(fd, atcmd_output); return -1; } - sd->base_status.speed = cap_value(speed, MIN_WALK_SPEED, MAX_WALK_SPEED); + sd->base_status.speed =(unsigned short) cap_value(speed, MIN_WALK_SPEED, MAX_WALK_SPEED); status_calc_bl(&sd->bl, SCB_SPEED); clif_displaymessage(fd, msg_txt(8)); // Speed changed. return 0; @@ -920,10 +920,11 @@ *------------------------------------------*/ ACMD_FUNC(option) { - int param1 = 0, param2 = 0, param3 = 0; + unsigned short param1 = 0, param2 = 0; + int param3 = 0; nullpo_retr(-1, sd); - if (!message || !*message || sscanf(message, "%d %d %d", ¶m1, ¶m2, ¶m3) < 1 || param1 < 0 || param2 < 0 || param3 < 0) { + if (!message || !*message || sscanf(message, "%hu %hu %d", ¶m1, ¶m2, ¶m3) < 1 || param1 < 0 || param2 < 0 || param3 < 0) { // failed to match the parameters so inform the user of the options const char *text = NULL; @@ -957,7 +958,7 @@ { nullpo_retr(-1, sd); if (sd->sc.option & OPTION_INVISIBLE) { - sd->sc.option &= ~OPTION_INVISIBLE; + sd->sc.option &= ~(sd->sc.option&OPTION_INVISIBLE); if (sd->disguise) status_set_viewdata(&sd->bl, sd->disguise); else @@ -1002,7 +1003,8 @@ nullpo_retr(-1, sd); if (!message || !*message || sscanf(message, "%d %d", &job, &upper) < 1) { - int i, found = 0; + short i; + char found = 0; for (i = JOB_NOVICE; i < JOB_MAX; ++i) { if (strncmpi(message, job_name(i), 16) == 0) { @@ -1092,9 +1094,9 @@ sscanf(message, "%199[^\n]", atcmd_output); if (strstr(command, "l") != NULL) - clif_broadcast(&sd->bl, atcmd_output, strlen(atcmd_output) + 1, 0, ALL_SAMEMAP); + clif_broadcast(&sd->bl, atcmd_output,(int)strlen(atcmd_output) + 1, 0, ALL_SAMEMAP); else - intif_broadcast(atcmd_output, strlen(atcmd_output) + 1, (*(command + 5) == 'b' || *(command + 5) == 'B') ? 0x10 : 0); + intif_broadcast(atcmd_output,(int)strlen(atcmd_output) + 1, (*(command + 5) == 'b' || *(command + 5) == 'B') ? 0x10 : 0); } else { if (!message || !*message || (sscanf(message, "%lx %199[^\n]", &color, atcmd_output) < 2)) { clif_displaymessage(fd, msg_txt(981)); // Please enter color and message (usage: @kamic ). @@ -1105,7 +1107,7 @@ clif_displaymessage(fd, msg_txt(982)); // Invalid color. return -1; } - intif_broadcast2(atcmd_output, strlen(atcmd_output) + 1, color, 0x190, 12, 0, 0); + intif_broadcast2(atcmd_output, (int)strlen(atcmd_output) + 1, color, 0x190, 12, 0, 0); } return 0; } @@ -1174,7 +1176,8 @@ ACMD_FUNC(item) { char item_name[100]; - int number = 0, item_id, flag = 0; + int number = 0, flag = 0; + short item_id; struct item item_tmp; struct item_data *item_data; int get_count, i; @@ -1210,7 +1213,7 @@ if (!pet_create_egg(sd, item_id)) { memset(&item_tmp, 0, sizeof(item_tmp)); item_tmp.nameid = item_id; - item_tmp.identify = 1; + item_tmp.identify = (short) 1; if ((flag = pc_additem(sd, &item_tmp, get_count, LOG_TYPE_COMMAND))) clif_additem(sd, 0, 0, flag); @@ -1230,18 +1233,19 @@ struct item item_tmp; struct item_data *item_data; char item_name[100]; - int item_id, number = 0; - int identify = 0, refine = 0, attr = 0; - int c1 = 0, c2 = 0, c3 = 0, c4 = 0; + int number = 0; + short c1 = 0, c2 = 0, c3 = 0, c4 = 0; int flag = 0; int loop, get_count, i; + short item_id; + char identify = 0, refine = 0, attr=0; nullpo_retr(-1, sd); memset(item_name, '\0', sizeof(item_name)); if (!message || !*message || ( - sscanf(message, "\"%99[^\"]\" %d %d %d %d %d %d %d %d", item_name, &number, &identify, &refine, &attr, &c1, &c2, &c3, &c4) < 9 && - sscanf(message, "%99s %d %d %d %d %d %d %d %d", item_name, &number, &identify, &refine, &attr, &c1, &c2, &c3, &c4) < 9 + sscanf(message, "\"%99[^\"]\" %d %c %c %c %hd %hd %hd %hd", item_name, &number, &identify, &refine, &attr, &c1, &c2, &c3, &c4) < 9 && + sscanf(message, "%99s %d %c %c %c %hd %hd %hd %hd", item_name, &number, &identify, &refine, &attr, &c1, &c2, &c3, &c4) < 9 )) { clif_displaymessage(fd, msg_txt(984)); // Please enter all parameters (usage: @item2 clif_displaymessage(fd, msg_txt(985)); // ). @@ -1273,7 +1277,8 @@ refine = MAX_REFINE; } else { identify = 1; - refine = attr = 0; + refine = 0; + attr = 0; } for (i = 0; i < loop; i++) { memset(&item_tmp, 0, sizeof(item_tmp)); @@ -1322,27 +1327,30 @@ *------------------------------------------*/ ACMD_FUNC(baselevelup) { - int level=0, i=0, status_point=0; + int16 level=0, i=0; + unsigned int status_point=0; nullpo_retr(-1, sd); - level = atoi(message); + sscanf(message, "%hd", &level); + if (!message || !*message || !level) { clif_displaymessage(fd, msg_txt(986)); // Please enter a level adjustment (usage: @lvup/@blevel/@baselvlup ). return -1; } if (level > 0) { + uint16 lvl = (uint16)level; if (sd->status.base_level >= pc_maxbaselv(sd)) { // check for max level by Valaris clif_displaymessage(fd, msg_txt(47)); // Base level can't go any higher. return -1; } // End Addition - if ((unsigned int)level > pc_maxbaselv(sd) || (unsigned int)level > pc_maxbaselv(sd) - sd->status.base_level) // fix positiv overflow - level = pc_maxbaselv(sd) - sd->status.base_level; + if (level > pc_maxbaselv(sd) || level > pc_maxbaselv(sd) - sd->status.base_level) // fix positiv overflow + lvl = (uint16)(pc_maxbaselv(sd) - sd->status.base_level); for (i = 0; i < level; i++) - status_point += pc_gets_status_point(sd->status.base_level + i); + status_point += pc_gets_status_point((uint16)(sd->status.base_level + (uint16)i)); sd->status.status_point += status_point; - sd->status.base_level += (unsigned int)level; + sd->status.base_level += (uint16)lvl; status_percent_heal(&sd->bl, 100, 100); clif_misceffect(&sd->bl, 0); clif_displaymessage(fd, msg_txt(21)); // Base level raised. @@ -1351,18 +1359,18 @@ clif_displaymessage(fd, msg_txt(158)); // Base level can't go any lower. return -1; } - level*=-1; - if ((unsigned int)level >= sd->status.base_level) + level *= -1; + if (level >= sd->status.base_level) level = sd->status.base_level-1; for (i = 0; i > -level; i--) - status_point += pc_gets_status_point(sd->status.base_level + i - 1); + status_point += pc_gets_status_point((uint16)(sd->status.base_level + (uint16)i-1)); if (sd->status.status_point < status_point) pc_resetstate(sd); if (sd->status.status_point < status_point) sd->status.status_point = 0; else sd->status.status_point -= status_point; - sd->status.base_level -= (unsigned int)level; + sd->status.base_level -= level; clif_displaymessage(fd, msg_txt(22)); // Base level lowered. } sd->status.base_exp = 0; @@ -1745,7 +1753,7 @@ int i; int town; char map_name[MAP_NAME_LENGTH]; - int m; + short m; const struct { char map[MAP_NAME_LENGTH]; @@ -1826,7 +1834,7 @@ // get possible name of the city map_name[MAP_NAME_LENGTH-1] = '\0'; for (i = 0; map_name[i]; i++) - map_name[i] = TOLOWER(map_name[i]); + map_name[i] = (char) TOLOWER(map_name[i]); // try to identify the map name if (strncmp(map_name, "prontera", 3) == 0) { town = 0; @@ -2056,7 +2064,8 @@ ACMD_FUNC(killmonster) { - int map_id, drop_flag; + short map_id; + int drop_flag; char map_name[MAP_NAME_LENGTH_EXT]; nullpo_retr(-1, sd); @@ -2083,13 +2092,14 @@ *------------------------------------------*/ ACMD_FUNC(refine) { - int i,j, position = 0, refine = 0, current_position, final_refine; + int i,j, position = 0, current_position; + char final_refine, refine = 0; int count; nullpo_retr(-1, sd); memset(atcmd_output, '\0', sizeof(atcmd_output)); - if (!message || !*message || sscanf(message, "%d %d", &position, &refine) < 2) { + if (!message || !*message || sscanf(message, "%d %c", &position, &refine) < 2) { clif_displaymessage(fd, msg_txt(996)); // Please enter a position and an amount (usage: @refine <+/- amount>). sprintf(atcmd_output, msg_txt(997), EQP_HEAD_LOW); // %d: Lower Headgear clif_displaymessage(fd, atcmd_output); @@ -2162,7 +2172,8 @@ ACMD_FUNC(produce) { char item_name[100]; - int item_id, attribute = 0, star = 0; + short attribute = 0, item_id=0; + int star = 0; int flag = 0; struct item_data *item_data; struct item tmp_item; @@ -2172,8 +2183,8 @@ memset(item_name, '\0', sizeof(item_name)); if (!message || !*message || ( - sscanf(message, "\"%99[^\"]\" %d %d", item_name, &attribute, &star) < 1 && - sscanf(message, "%99s %d %d", item_name, &attribute, &star) < 1 + sscanf(message, "\"%99[^\"]\" %hi %d", item_name, &attribute, &star) < 1 && + sscanf(message, "%99s %hi %d", item_name, &attribute, &star) < 1 )) { clif_displaymessage(fd, msg_txt(1007)); // Please enter at least one item name/ID (usage: @produce <# of very's>). return -1; @@ -2197,8 +2208,7 @@ tmp_item.amount = 1; tmp_item.identify = 1; tmp_item.card[0] = CARD0_FORGE; - tmp_item.card[1] = item_data->type==IT_WEAPON? - ((star*5) << 8) + attribute:0; + tmp_item.card[1] = ((short) item_data->type==IT_WEAPON?((star*5) << 8) + attribute:0); tmp_item.card[2] = GetWord(sd->status.char_id, 0); tmp_item.card[3] = GetWord(sd->status.char_id, 1); clif_produceeffect(sd, 0, item_id); @@ -2404,7 +2414,8 @@ *------------------------------------------*/ ACMD_FUNC(param) { - int i, value = 0, new_value, max; + int i; + short value = 0, new_value, max; const char *param[] = { "str", "agi", "vit", "int", "dex", "luk" }; short *status[6]; //we don't use direct initialization because it isn't part of the c standard. @@ -2412,7 +2423,7 @@ memset(atcmd_output, '\0', sizeof(atcmd_output)); - if (!message || !*message || sscanf(message, "%d", &value) < 1 || value == 0) { + if (!message || !*message || sscanf(message, "%hi", &value) < 1 || value == 0) { clif_displaymessage(fd, msg_txt(1013)); // Please enter a valid value (usage: @str/@agi/@vit/@int/@dex/@luk <+/-adjustment>). return -1; } @@ -2466,8 +2477,8 @@ *------------------------------------------*/ ACMD_FUNC(stat_all) { - int index, count, value, max, new_value; - short *status[6]; + int index, count; + short *status[6], new_value, value, max; //we don't use direct initialization because it isn't part of the c standard. nullpo_retr(-1, sd); @@ -2478,19 +2489,17 @@ status[4] = &sd->status.dex; status[5] = &sd->status.luk; - if (!message || !*message || sscanf(message, "%d", &value) < 1 || value == 0) { + if (!message || !*message || sscanf(message, "%hi", &value) < 1) { value = pc_maxparameter(sd); - max = pc_maxparameter(sd); - } else { + } + if (battle_config.atcommand_max_stat_bypass) max = SHRT_MAX; else max = pc_maxparameter(sd); - } count = 0; for (index = 0; index < ARRAYLENGTH(status); index++) { - if (value > 0 && *status[index] > max - value) new_value = max; else if (value < 0 && *status[index] <= -value) @@ -2621,11 +2630,11 @@ *------------------------------------------*/ ACMD_FUNC(petfriendly) { - int friendly; + short friendly; struct pet_data *pd; nullpo_retr(-1, sd); - if (!message || !*message || (friendly = atoi(message)) < 0) { + if (!message || !*message || sscanf(message, "%hi", &friendly) < 1) { clif_displaymessage(fd, msg_txt(1016)); // Please enter a valid value (usage: @petfriendly <0-1000>). return -1; } @@ -2657,11 +2666,11 @@ *------------------------------------------*/ ACMD_FUNC(pethungry) { - int hungry; + short hungry; struct pet_data *pd; nullpo_retr(-1, sd); - if (!message || !*message || (hungry = atoi(message)) < 0) { + if (!message || !*message || sscanf(message, "%hi", &hungry) < 1) { clif_displaymessage(fd, msg_txt(1017)); // Please enter a valid number (usage: @pethungry <0-100>). return -1; } @@ -3124,7 +3133,7 @@ *------------------------------------------*/ ACMD_FUNC(questskill) { - int skill_id; + uint16 skill_id; nullpo_retr(-1, sd); if (!message || !*message || (skill_id = atoi(message)) < 0) { @@ -3168,7 +3177,7 @@ *------------------------------------------*/ ACMD_FUNC(lostskill) { - int skill_id; + uint16 skill_id; nullpo_retr(-1, sd); if (!message || !*message || (skill_id = atoi(message)) < 0) { @@ -3214,11 +3223,11 @@ *------------------------------------------*/ ACMD_FUNC(spiritball) { - int max_spiritballs; - int number; + short max_spiritballs; + short number; nullpo_retr(-1, sd); - max_spiritballs = min(ARRAYLENGTH(sd->spirit_timer), 0x7FFF); + max_spiritballs = min(ARRAYLENGTH(sd->spirit_timer), SHRT_MAX); if (!message || !*message || (number = atoi(message)) < 0 || number > max_spiritballs) { char msg[CHAT_SIZE_MAX]; @@ -5262,12 +5271,11 @@ { struct map_session_data *pl_sd = NULL; struct block_list *bl; - int skillnum; - int skilllv; + uint16 skill_id, skill_lv; char target[100]; nullpo_retr(-1, sd); - if (!message || !*message || sscanf(message, "%d %d %23[^\n]", &skillnum, &skilllv, target) != 3) { + if (!message || !*message || sscanf(message, "%hi %hi %23[^\n]", &skill_id, &skill_lv, target) != 3) { clif_displaymessage(fd, msg_txt(1165)); // Usage: @useskill return -1; } @@ -5282,16 +5290,16 @@ return -1; } - if (skillnum >= HM_SKILLBASE && skillnum < HM_SKILLBASE+MAX_HOMUNSKILL + if (skill_id >= HM_SKILLBASE && skill_id < HM_SKILLBASE+MAX_HOMUNSKILL && sd->hd && merc_is_hom_active(sd->hd)) // (If used with @useskill, put the homunc as dest) bl = &sd->hd->bl; else bl = &sd->bl; - if (skill_get_inf(skillnum)&INF_GROUND_SKILL) - unit_skilluse_pos(bl, pl_sd->bl.x, pl_sd->bl.y, skillnum, skilllv); + if (skill_get_inf(skill_id)&INF_GROUND_SKILL) + unit_skilluse_pos(bl, pl_sd->bl.x, pl_sd->bl.y, skill_id, skill_lv); else - unit_skilluse_id(bl, pl_sd->bl.id, skillnum, skilllv); + unit_skilluse_id(bl, pl_sd->bl.id, skill_id, skill_lv); return 0; } @@ -5305,19 +5313,18 @@ { struct status_data *status; unsigned int tick; - int skillnum; - int skilllv = 1; + uint16 skill_id, skill_lv = 1; nullpo_retr(-1, sd); - if (!message || !*message || sscanf(message, "%d %d", &skillnum, &skilllv) < 1) { + if (!message || !*message || sscanf(message, "%hd %hd", &skill_id, &skill_lv) < 1) { clif_displaymessage(fd, msg_txt(1166)); // Usage: @displayskill {} return -1; } status = status_get_status_data(&sd->bl); tick = gettick(); - clif_skill_damage(&sd->bl,&sd->bl, tick, status->amotion, status->dmotion, 1, 1, skillnum, skilllv, 5); - clif_skill_nodamage(&sd->bl, &sd->bl, skillnum, skilllv, 1); - clif_skill_poseffect(&sd->bl, skillnum, skilllv, sd->bl.x, sd->bl.y, tick); + clif_skill_damage(&sd->bl,&sd->bl, tick, status->amotion, status->dmotion, 1, 1, skill_id, skill_lv, 5); + clif_skill_nodamage(&sd->bl, &sd->bl, skill_id, skill_lv, 1); + clif_skill_poseffect(&sd->bl, skill_id, skill_lv, sd->bl.x, sd->bl.y, tick); return 0; } @@ -5328,13 +5335,13 @@ ACMD_FUNC(skilltree) { struct map_session_data *pl_sd = NULL; - int skillnum; + uint16 skill_id; int meets, j, c=0; char target[NAME_LENGTH]; struct skill_tree_entry *ent; nullpo_retr(-1, sd); - if (!message || !*message || sscanf(message, "%d %23[^\r\n]", &skillnum, target) != 2) { + if (!message || !*message || sscanf(message, "%hd %23[^\r\n]", &skill_id, target) != 2) { clif_displaymessage(fd, msg_txt(1167)); // Usage: @skilltree return -1; } @@ -5350,7 +5357,7 @@ sprintf(atcmd_output, msg_txt(1168), job_name(c), pc_checkskill(pl_sd, NV_BASIC)); // Player is using %s skill tree (%d basic points). clif_displaymessage(fd, atcmd_output); - ARR_FIND(0, MAX_SKILL_TREE, j, skill_tree[c][j].id == 0 || skill_tree[c][j].id == skillnum); + ARR_FIND(0, MAX_SKILL_TREE, j, skill_tree[c][j].id == 0 || skill_tree[c][j].id == skill_id); if (j == MAX_SKILL_TREE || skill_tree[c][j].id == 0) { clif_displaymessage(fd, msg_txt(1169)); // The player cannot use that skill. return 0; @@ -5376,7 +5383,8 @@ // Hand a ring with partners name on it to this char void getring(struct map_session_data *sd) { - int flag, item_id; + int flag; + short item_id; struct item item_tmp; item_id = (sd->status.sex) ? WEDDING_RING_M : WEDDING_RING_F; @@ -5384,7 +5392,7 @@ item_tmp.nameid = item_id; item_tmp.identify = 1; item_tmp.card[0] = 255; - item_tmp.card[2] = sd->status.partner_id; + item_tmp.card[2] = sd->status.partner_id & 0xF; item_tmp.card[3] = sd->status.partner_id >> 16; if ((flag = pc_additem(sd,&item_tmp,1,LOG_TYPE_COMMAND))) { @@ -7589,7 +7597,7 @@ *------------------------------------------*/ ACMD_FUNC(invite) { - unsigned int did = sd->duel_group; + int did = sd->duel_group; struct map_session_data *target_sd = map_nick2sd((char *)message); if (did <= 0) { @@ -8284,18 +8292,20 @@ *------------------------------------------*/ ACMD_FUNC(font) { - int font_id; + unsigned short font_id; nullpo_retr(-1,sd); - font_id = atoi(message); + if (!message || !*message || (sscanf(message, "%hui", &font_id) < 1 )) { + clif_displaymessage(fd, msg_txt(1357)); // Use @font <1-9> to change your message font. + clif_displaymessage(fd, msg_txt(1358)); // Use 0 or no parameter to return to normal font. + return -1; + } + if (font_id == 0) { if (sd->user_font) { sd->user_font = 0; clif_displaymessage(fd, msg_txt(1356)); // Returning to normal font. clif_font(sd); - } else { - clif_displaymessage(fd, msg_txt(1357)); // Use @font <1-9> to change your message font. - clif_displaymessage(fd, msg_txt(1358)); // Use 0 or no parameter to return to normal font. } } else if (font_id < 0 || font_id > 9) clif_displaymessage(fd, msg_txt(1359)); // Invalid font. Use a value from 0 to 9. @@ -9285,7 +9295,7 @@ ShowStatus("Done reading '"CL_WHITE"%d"CL_RESET"' command aliases in '"CL_WHITE"%s"CL_RESET"'.\n", num_aliases, config_filename); return; } -void atcommand_db_load_groups(int *group_ids) +void atcommand_db_load_groups(uint32 *group_ids) { DBIterator *iter = db_iterator(atcommand_db); AtCommandInfo *cmd; Index: src/map/atcommand.h --- src/map/atcommand.h Base (BASE) +++ src/map/atcommand.h Locally Modified (Based On LOCAL) @@ -26,7 +26,7 @@ void do_init_atcommand(void); void do_final_atcommand(void); -void atcommand_db_load_groups(int *group_ids); +void atcommand_db_load_groups(uint32 *group_ids); bool atcommand_exists(const char *name); Index: src/map/battle.c --- src/map/battle.c Base (BASE) +++ src/map/battle.c Locally Modified (Based On LOCAL) @@ -51,7 +51,7 @@ ud = unit_bl2ud(bl); - return ud?ud->skillid:0; + return ud?ud->skill_id:0; } /*========================================== @@ -193,7 +193,7 @@ } // Pick a random enemy -struct block_list *battle_getenemyarea(struct block_list *src, int x, int y, int range, int type, int ignore_id) { +struct block_list *battle_getenemyarea(struct block_list *src, short x, short y, short range, int type, int ignore_id) { struct block_list *bl_list[24]; int c = 0; @@ -214,9 +214,9 @@ int target_id; int damage; int delay; - unsigned short distance; - unsigned short skill_lv; - unsigned short skill_id; + uint16 distance; + uint16 skill_lv; + uint16 skill_id; enum damage_lv dmg_lv; unsigned short attack_type; }; @@ -259,7 +259,7 @@ return 0; } -int battle_delay_damage(unsigned int tick, int amotion, struct block_list *src, struct block_list *target, int attack_type, int skill_id, int skill_lv, int damage, enum damage_lv dmg_lv, int ddelay) +int battle_delay_damage(unsigned int tick, int amotion, struct block_list *src, struct block_list *target, int attack_type, uint16 skill_id, uint16 skill_lv, int damage, enum damage_lv dmg_lv, int ddelay) { struct delay_damage *dat; struct status_change *sc; @@ -734,7 +734,7 @@ * ATK may be MISS, BLOCKED FAIL, reduc, increase, end status... * After this we apply bg/gvg reduction *------------------------------------------*/ -int battle_calc_damage(struct block_list *src,struct block_list *bl,struct Damage *d,int damage,int skill_num,int skill_lv) +int battle_calc_damage(struct block_list *src,struct block_list *bl,struct Damage *d,int damage,uint16 skill_id,uint16 skill_lv) { struct map_session_data *sd = NULL; struct status_change *sc; @@ -768,7 +768,7 @@ if (sc && sc->data[SC_INVINCIBLE] && !sc->data[SC_INVINCIBLEOFF]) return 1; - if (skill_num == PA_PRESSURE) + if (skill_id == PA_PRESSURE) return damage; //This skill bypass everything else. if (sc && sc->count) { @@ -777,14 +777,14 @@ d->dmg_lv = ATK_BLOCK; return 0; } - if (sc->data[SC_WHITEIMPRISON] && skill_num != HW_GRAVITATION) { // Gravitation and Pressure do damage without removing the effect - if (skill_num == MG_NAPALMBEAT || - skill_num == MG_SOULSTRIKE || - skill_num == WL_SOULEXPANSION || - (skill_num && skill_get_ele(skill_num, skill_lv) == ELE_GHOST) || - (!skill_num && (status_get_status_data(src))->rhw.ele == ELE_GHOST) + if (sc->data[SC_WHITEIMPRISON] && skill_id != HW_GRAVITATION) { // Gravitation and Pressure do damage without removing the effect + if (skill_id == MG_NAPALMBEAT || + skill_id == MG_SOULSTRIKE || + skill_id == WL_SOULEXPANSION || + (skill_id && skill_get_ele(skill_id, skill_lv) == ELE_GHOST) || + (!skill_id && (status_get_status_data(src))->rhw.ele == ELE_GHOST) ) { - if (skill_num == WL_SOULEXPANSION) + if (skill_id == WL_SOULEXPANSION) damage <<= 1; // If used against a player in White Imprison, the skill deals double damage. status_change_end(bl,SC_WHITEIMPRISON,INVALID_TIMER); // Those skills do damage and removes effect } else { @@ -801,7 +801,7 @@ if (sc->data[SC_SAFETYWALL] && (flag&(BF_SHORT|BF_MAGIC))==BF_SHORT) { struct skill_unit_group *group = skill_id2group(sc->data[SC_SAFETYWALL]->val3); - int skill_id = sc->data[SC_SAFETYWALL]->val2; + uint16 skill_id = sc->data[SC_SAFETYWALL]->val2; if (group) { if (skill_id == MH_STEINWAND) { if (--group->val2<=0) @@ -840,7 +840,7 @@ sc_start2(bl,SC_COMBO,100,GC_WEAPONBLOCKING,src->id,2000); return 0; } - if ((sce=sc->data[SC_AUTOGUARD]) && flag&BF_WEAPON && !(skill_get_nk(skill_num)&NK_NO_CARDFIX_ATK) && rnd()%100 < sce->val2) { + if ((sce=sc->data[SC_AUTOGUARD]) && flag&BF_WEAPON && !(skill_get_nk(skill_id)&NK_NO_CARDFIX_ATK) && rnd()%100 < sce->val2) { int delay; clif_skill_nodamage(bl,bl,CR_AUTOGUARD,sce->val1,1); // different delay depending on skill level [celest] @@ -875,7 +875,7 @@ } - if ((sce=sc->data[SC_PARRYING]) && flag&BF_WEAPON && skill_num != WS_CARTTERMINATION && rnd()%100 < sce->val2) { + if ((sce=sc->data[SC_PARRYING]) && flag&BF_WEAPON && skill_id != WS_CARTTERMINATION && rnd()%100 < sce->val2) { // attack blocked by Parrying clif_skill_nodamage(bl, bl, LK_PARRYING, sce->val1,1); return 0; @@ -906,7 +906,7 @@ //Kaupe blocks damage (skill or otherwise) from players, mobs, homuns, mercenaries. clif_specialeffect(bl, 462, AREA); //Shouldn't end until Breaker's non-weapon part connects. - if (skill_num != ASC_BREAKER || !(flag&BF_WEAPON)) + if (skill_id != ASC_BREAKER || !(flag&BF_WEAPON)) if (--(sce->val3) <= 0) //We make it work like Safety Wall, even though it only blocks 1 time. status_change_end(bl, SC_KAUPE, INVALID_TIMER); return 0; @@ -918,11 +918,11 @@ } if (((sce=sc->data[SC_UTSUSEMI]) || sc->data[SC_BUNSINJYUTSU]) - && flag&BF_WEAPON && !(skill_get_nk(skill_num)&NK_NO_CARDFIX_ATK)) { + && flag&BF_WEAPON && !(skill_get_nk(skill_id)&NK_NO_CARDFIX_ATK)) { - skill_additional_effect(src, bl, skill_num, skill_lv, flag, ATK_BLOCK, gettick()); + skill_additional_effect(src, bl, skill_id, skill_lv, flag, ATK_BLOCK, gettick()); if (!status_isdead(src)) - skill_counter_additional_effect(src, bl, skill_num, skill_lv, flag, gettick()); + skill_counter_additional_effect(src, bl, skill_id, skill_lv, flag, gettick()); if (sce) { clif_specialeffect(bl, 462, AREA); skill_blown(src,bl,sce->val3,-1,0); @@ -937,11 +937,11 @@ } //Now damage increasing effects - if (sc->data[SC_AETERNA] && skill_num != PF_SOULBURN) { - if (src->type != BL_MER || skill_num == 0) + if (sc->data[SC_AETERNA] && skill_id != PF_SOULBURN) { + if (src->type != BL_MER || skill_id == 0) damage <<= 1; // Lex Aeterna only doubles damage of regular attacks from mercenaries - if (skill_num != ASC_BREAKER || !(flag&BF_WEAPON)) + if (skill_id != ASC_BREAKER || !(flag&BF_WEAPON)) status_change_end(bl, SC_AETERNA, INVALID_TIMER); //Shouldn't end until Breaker's non-weapon part connects. } @@ -1009,7 +1009,7 @@ (flag&(BF_LONG|BF_WEAPON)) == (BF_LONG|BF_WEAPON)) damage -= 20*damage/100; - if (sc->data[SC_FOGWALL] && skill_num != RK_DRAGONBREATH) { + if (sc->data[SC_FOGWALL] && skill_id != RK_DRAGONBREATH) { if (flag&BF_SKILL) //25% reduction damage -= 25*damage/100; else if ((flag&(BF_LONG|BF_WEAPON)) == (BF_LONG|BF_WEAPON)) @@ -1038,9 +1038,9 @@ damage -= damage*sc->data[SC_ARMOR]->val2/100; #ifdef RENEWAL - if (sc->data[SC_ENERGYCOAT] && (flag&BF_WEAPON || flag&BF_MAGIC) && skill_num != WS_CARTTERMINATION) + if (sc->data[SC_ENERGYCOAT] && (flag&BF_WEAPON || flag&BF_MAGIC) && skill_id != WS_CARTTERMINATION) #else - if (sc->data[SC_ENERGYCOAT] && flag&BF_WEAPON && skill_num != WS_CARTTERMINATION) + if (sc->data[SC_ENERGYCOAT] && flag&BF_WEAPON && skill_id != WS_CARTTERMINATION) #endif { struct status_data *status = status_get_status_data(bl); @@ -1072,7 +1072,7 @@ #endif //Finally added to remove the status of immobile when aimedbolt is used. [Jobbie] - if (skill_num == RA_AIMEDBOLT && (sc->data[SC_BITE] || sc->data[SC_ANKLE] || sc->data[SC_ELECTRICSHOCKER])) { + if (skill_id == RA_AIMEDBOLT && (sc->data[SC_BITE] || sc->data[SC_ANKLE] || sc->data[SC_ELECTRICSHOCKER])) { status_change_end(bl, SC_BITE, INVALID_TIMER); status_change_end(bl, SC_ANKLE, INVALID_TIMER); status_change_end(bl, SC_ELECTRICSHOCKER, INVALID_TIMER); @@ -1081,13 +1081,13 @@ //Finally Kyrie because it may, or not, reduce damage to 0. if ((sce = sc->data[SC_KYRIE]) && damage > 0) { sce->val2-=damage; - if (flag&BF_WEAPON || skill_num == TF_THROWSTONE) { + if (flag&BF_WEAPON || skill_id == TF_THROWSTONE) { if (sce->val2>=0) damage=0; else damage=-sce->val2; } - if ((--sce->val3)<=0 || (sce->val2<=0) || skill_num == AL_HOLYLIGHT) + if ((--sce->val3)<=0 || (sce->val2<=0) || skill_id == AL_HOLYLIGHT) status_change_end(bl, SC_KYRIE, INVALID_TIMER); } @@ -1175,7 +1175,7 @@ break; } } - if (sc->data[SC_POISONINGWEAPON] && skill_num != GC_VENOMPRESSURE && (flag&BF_WEAPON) && damage > 0 && rnd()%100 < sc->data[SC_POISONINGWEAPON]->val3) + if (sc->data[SC_POISONINGWEAPON] && skill_id != GC_VENOMPRESSURE && (flag&BF_WEAPON) && damage > 0 && rnd()%100 < sc->data[SC_POISONINGWEAPON]->val3) sc_start(bl,sc->data[SC_POISONINGWEAPON]->val2,100,sc->data[SC_POISONINGWEAPON]->val1,skill_get_time2(GC_POISONINGWEAPON, 1)); if (sc->data[SC__DEADLYINFECT] && damage > 0 && rnd()%100 < 65 + 5 * sc->data[SC__DEADLYINFECT]->val1) status_change_spread(src, bl); @@ -1213,13 +1213,13 @@ if (bl->type == BL_MOB && !status_isdead(bl) && src != bl) { if (damage > 0) mobskill_event((TBL_MOB *)bl,src,gettick(),flag); - if (skill_num) - mobskill_event((TBL_MOB *)bl,src,gettick(),MSC_SKILLUSED|(skill_num<<16)); + if (skill_id) + mobskill_event((TBL_MOB *)bl,src,gettick(),MSC_SKILLUSED|(skill_id<<16)); } if (sd) { if (pc_ismadogear(sd) && rnd()%100 < 50) { - short element = skill_get_ele(skill_num, skill_lv); - if (!skill_num || element == -1) { //Take weapon's element + short element = skill_get_ele(skill_id, skill_lv); + if (!skill_id || element == -1) { //Take weapon's element struct status_data *sstatus = NULL; if (src->type == BL_PC && ((TBL_PC *)src)->bonus.arrow_ele) element = ((TBL_PC *)src)->bonus.arrow_ele; @@ -1241,7 +1241,7 @@ /*========================================== * Calculates BG related damage adjustments. *------------------------------------------*/ -int battle_calc_bg_damage(struct block_list *src, struct block_list *bl, int damage, int div_, int skill_num, int skill_lv, int flag) +int battle_calc_bg_damage(struct block_list *src, struct block_list *bl, int damage, int div_, uint16 skill_id, uint16 skill_lv, int flag) { if (!damage) return 0; @@ -1252,7 +1252,7 @@ return 0; // Crystal cannot receive skill damage on battlegrounds } - switch (skill_num) { + switch (skill_id) { case PA_PRESSURE: case HW_GRAVITATION: case NJ_ZENYNAGE: @@ -1284,10 +1284,10 @@ /*========================================== * Calculates GVG related damage adjustments. *------------------------------------------*/ -int battle_calc_gvg_damage(struct block_list *src,struct block_list *bl,int damage,int div_,int skill_num,int skill_lv,int flag) +int battle_calc_gvg_damage(struct block_list *src,struct block_list *bl,int damage,int div_,uint16 skill_id,uint16 skill_lv,int flag) { struct mob_data *md = BL_CAST(BL_MOB, bl); - int class_ = status_get_class(bl); + short class_ = status_get_class(bl); if (!damage) //No reductions to make. return 0; @@ -1295,7 +1295,7 @@ if (md && md->guardian_data) { if (class_ == MOBID_EMPERIUM && flag&BF_SKILL) { //Skill immunity. - switch (skill_num) { + switch (skill_id) { #ifndef RENEWAL case MO_TRIPLEATTACK: #endif @@ -1316,7 +1316,7 @@ } } - switch (skill_num) { + switch (skill_id) { //Skills with no damage reduction. case PA_PRESSURE: case HW_GRAVITATION: @@ -1571,14 +1571,14 @@ /*========================================== * Consumes ammo for the given skill. *------------------------------------------*/ -void battle_consume_ammo(TBL_PC *sd, int skill, int lv) +void battle_consume_ammo(TBL_PC *sd, uint16 skill_id, uint16 skill_lv) { int qty=1; if (!battle_config.arrow_decrement) return; - if (skill) { - qty = skill_get_ammo_qty(skill, lv); + if (skill_id) { + qty = skill_get_ammo_qty(skill_id, skill_lv); if (!qty) qty = 1; } @@ -1590,7 +1590,7 @@ static int battle_range_type( struct block_list *src, struct block_list *target, - int skill_num, int skill_lv) + uint16 skill_id, uint16 skill_lv) { //Skill Range Criteria if (battle_config.skillrange_by_distance && @@ -1601,33 +1601,33 @@ return BF_LONG; } //based on used skill's range - if (skill_get_range2(src, skill_num, skill_lv) < 5) + if (skill_get_range2(src, skill_id, skill_lv) < 5) return BF_SHORT; return BF_LONG; } -static int battle_blewcount_bonus(struct map_session_data *sd, int skill_num) +static int battle_blewcount_bonus(struct map_session_data *sd, uint16 skill_id) { int i; if (!sd->skillblown[0].id) return 0; //Apply the bonus blewcount. [Skotlex] for (i = 0; i < ARRAYLENGTH(sd->skillblown) && sd->skillblown[i].id; i++) { - if (sd->skillblown[i].id == skill_num) + if (sd->skillblown[i].id == skill_id) return sd->skillblown[i].val; } return 0; } -struct Damage battle_calc_magic_attack(struct block_list *src,struct block_list *target,int skill_num,int skill_lv,int mflag); -struct Damage battle_calc_misc_attack(struct block_list *src,struct block_list *target,int skill_num,int skill_lv,int mflag); +struct Damage battle_calc_magic_attack(struct block_list *src, struct block_list *target, uint16 skill_id, uint16 skill_lv, int mflag); +struct Damage battle_calc_misc_attack(struct block_list *src, struct block_list *target, uint16 skill_id, uint16 skill_lv, int mflag); //For quick div adjustment. #define damage_div_fix(dmg, div) { if (div > 1) (dmg)*=div; else if (div < 0) (div)*=-1; } /*========================================== * battle_calc_weapon_attack (by Skotlex) *------------------------------------------*/ -static struct Damage battle_calc_weapon_attack(struct block_list *src,struct block_list *target,int skill_num,int skill_lv,int wflag) { +static struct Damage battle_calc_weapon_attack(struct block_list *src,struct block_list *target,uint16 skill_id,uint16 skill_lv,int wflag) { unsigned int skillratio = 100; //Skill dmg modifiers. short skill=0; short s_ele, s_ele_, t_class; @@ -1664,9 +1664,9 @@ //Initial flag flag.rh=1; flag.weapon=1; - flag.infdef=(tstatus->mode&MD_PLANT && skill_num != RA_CLUSTERBOMB + flag.infdef=(tstatus->mode&MD_PLANT && skill_id != RA_CLUSTERBOMB #ifdef RENEWAL - && skill_num != HT_FREEZINGTRAP + && skill_id != HT_FREEZINGTRAP #endif ?1:0); if (target->type == BL_SKILL) { @@ -1677,17 +1677,17 @@ //Initial Values wd.type=0; //Normal attack - wd.div_=skill_num?skill_get_num(skill_num,skill_lv):1; - wd.amotion=(skill_num && skill_get_inf(skill_num)&INF_GROUND_SKILL)?0:sstatus->amotion; //Amotion should be 0 for ground skills. - if (skill_num == KN_AUTOCOUNTER) + wd.div_=skill_id?skill_get_num(skill_id,skill_lv):1; + wd.amotion=(skill_id && skill_get_inf(skill_id)&INF_GROUND_SKILL)?0:sstatus->amotion; //Amotion should be 0 for ground skills. + if (skill_id == KN_AUTOCOUNTER) wd.amotion >>= 1; wd.dmotion=tstatus->dmotion; - wd.blewcount=skill_get_blewcount(skill_num,skill_lv); + wd.blewcount=skill_get_blewcount(skill_id,skill_lv); wd.flag = BF_WEAPON; //Initial Flag - wd.flag |= (skill_num||wflag)?BF_SKILL:BF_NORMAL; // Baphomet card's splash damage is counted as a skill. [Inkfish] + wd.flag |= (skill_id||wflag)?BF_SKILL:BF_NORMAL; // Baphomet card's splash damage is counted as a skill. [Inkfish] wd.dmg_lv=ATK_DEF; //This assumption simplifies the assignation later - nk = skill_get_nk(skill_num); - if (!skill_num && wflag) //If flag, this is splash damage from Baphomet Card and it always hits. + nk = skill_get_nk(skill_id); + if (!skill_id && wflag) //If flag, this is splash damage from Baphomet Card and it always hits. nk |= NK_NO_CARDFIX_ATK|NK_IGNORE_FLEE; flag.hit = nk &NK_IGNORE_FLEE?1:0; flag.idef = flag.idef2 = nk &NK_IGNORE_DEF?1:0; @@ -1701,18 +1701,18 @@ tsd = BL_CAST(BL_PC, target); if (sd) - wd.blewcount += battle_blewcount_bonus(sd, skill_num); + wd.blewcount += battle_blewcount_bonus(sd, skill_id); //Set miscellaneous data that needs be filled regardless of hit/miss if ( (sd && sd->state.arrow_atk) || - (!sd && ((skill_num && skill_get_ammotype(skill_num)) || sstatus->rhw.range>3)) + (!sd && ((skill_id && skill_get_ammotype(skill_id)) || sstatus->rhw.range>3)) ) flag.arrow = 1; - if (skill_num) { - wd.flag |= battle_range_type(src, target, skill_num, skill_lv); - switch (skill_num) { + if (skill_id) { + wd.flag |= battle_range_type(src, target, skill_id, skill_lv); + switch (skill_id) { case MO_FINGEROFFENSIVE: if (sd) { if (battle_config.finger_offensive_type) @@ -1769,7 +1769,7 @@ } else //Range for normal attacks. wd.flag |= flag.arrow?BF_LONG:BF_SHORT; - if ((!skill_num || skill_num == PA_SACRIFICE) && tstatus->flee2 && rnd()%1000 < tstatus->flee2) { + if ((!skill_id || skill_id == PA_SACRIFICE) && tstatus->flee2 && rnd()%1000 < tstatus->flee2) { //Check for Lucky Dodge wd.type=0x0b; wd.dmg_lv=ATK_LUCKY; @@ -1778,8 +1778,8 @@ } t_class = status_get_class(target); - s_ele = s_ele_ = skill_get_ele(skill_num, skill_lv); - if (!skill_num || s_ele == -1) { + s_ele = s_ele_ = skill_get_ele(skill_id, skill_lv); + if (!skill_id || s_ele == -1) { //Take weapon's element s_ele = sstatus->rhw.ele; s_ele_ = sstatus->lhw.ele; @@ -1795,7 +1795,7 @@ s_ele = s_ele_ = status_get_attack_sc_element(src,sc); else if (s_ele == -3) //Use random element s_ele = s_ele_ = rnd()%ELE_MAX; - switch (skill_num) { + switch (skill_id) { case GS_GROUNDDRIFT: s_ele = s_ele_ = wflag; //element comes in flag. break; @@ -1807,12 +1807,12 @@ if (!(nk &NK_NO_ELEFIX) && !n_ele) if (src->type == BL_HOM) n_ele = true; //skill is "not elemental" - if (sc && sc->data[SC_GOLDENE_FERSE] && ((!skill_num && (rnd() % 100 < sc->data[SC_GOLDENE_FERSE]->val4)) || skill_num == MH_STAHL_HORN)) { + if (sc && sc->data[SC_GOLDENE_FERSE] && ((!skill_id && (rnd() % 100 < sc->data[SC_GOLDENE_FERSE]->val4)) || skill_id == MH_STAHL_HORN)) { s_ele = s_ele_ = ELE_HOLY; n_ele = false; } - if (!skill_num) { + if (!skill_id) { //Skills ALWAYS use ONLY your right-hand weapon (tested on Aegis 10.2) if (sd && sd->weapontype1 == 0 && sd->weapontype2 > 0) { flag.rh=0; @@ -1822,7 +1822,7 @@ flag.lh=1; } - if (sd && !skill_num) { //Check for double attack. + if (sd && !skill_id) { //Check for double attack. if (((skill_lv = pc_checkskill(sd,TF_DOUBLE)) > 0 && sd->weapontype1 == W_DAGGER) || (sd->bonus.double_rate > 0 && sd->weapontype1 != W_FIST) //Will fail bare-handed || (sc && sc->data[SC_KAGEMUSYA] && sd->weapontype1 != W_FIST)) { // Need confirmation @@ -1852,10 +1852,10 @@ //Check for critical if (!flag.cri && !(wd.type&0x08) && sstatus->cri && - (!skill_num || - skill_num == KN_AUTOCOUNTER || - skill_num == SN_SHARPSHOOTING || skill_num == MA_SHARPSHOOTING || - skill_num == NJ_KIRIKAGE)) { + (!skill_id || + skill_id == KN_AUTOCOUNTER || + skill_id == SN_SHARPSHOOTING || skill_id == MA_SHARPSHOOTING || + skill_id == NJ_KIRIKAGE)) { short cri = sstatus->cri; if (sd) { cri+= sd->critaddrace[tstatus->race]; @@ -1871,7 +1871,7 @@ if (tsc && tsc->data[SC_SLEEP]) { cri <<= 1; } - switch (skill_num) { + switch (skill_id) { case KN_AUTOCOUNTER: if (battle_config.auto_counter_type && (battle_config.auto_counter_type&src->type)) @@ -1903,7 +1903,7 @@ flag.idef = flag.idef2 = 1; //def ignore [Komurka] } if (!flag.hit) - switch (skill_num) { + switch (skill_id) { case AS_SPLASHER: if (!wflag) // Always hits the one exploding. flag.hit = 1; @@ -1941,7 +1941,7 @@ hitrate+= sstatus->hit - flee; - if (wd.flag&BF_LONG && !skill_num && //Fogwall's hit penalty is only for normal ranged attacks. + if (wd.flag&BF_LONG && !skill_id && //Fogwall's hit penalty is only for normal ranged attacks. tsc && tsc->data[SC_FOGWALL]) hitrate -= 50; @@ -1951,8 +1951,8 @@ if (sd) //in Renewal hit bonus from Vultures Eye is not anymore shown in status window hitrate += pc_checkskill(sd,AC_VULTURE); #endif - if (skill_num) - switch (skill_num) { + if (skill_id) + switch (skill_id) { //Hit skill modifiers //It is proven that bonus is applied on final hitrate, not hit. case SM_BASH: @@ -2028,7 +2028,7 @@ #define ATK_ADD( a ) { wd.damage+= a; if (flag.lh) wd.damage2+= a; } #define ATK_ADD2( a , b ) { wd.damage+= a; if (flag.lh) wd.damage2+= b; } - switch (skill_num) { + switch (skill_id) { //Calc base damage according to skill case NJ_ISSEN: wd.damage = 40*sstatus->str +skill_lv*(sstatus->hp/10 + 35); @@ -2090,9 +2090,9 @@ default: { i = (flag.cri?1:0)| (flag.arrow?2:0)| - (skill_num == HW_MAGICCRASHER?4:0)| - (!skill_num && sc && sc->data[SC_CHANGE]?4:0)| - (skill_num == MO_EXTREMITYFIST?8:0)| + (skill_id == HW_MAGICCRASHER?4:0)| + (!skill_id && sc && sc->data[SC_CHANGE]?4:0)| + (skill_id == MO_EXTREMITYFIST?8:0)| (sc && sc->data[SC_WEAPONPERFECTION]?8:0); if (flag.arrow && sd) switch (sd->status.weapon) { @@ -2113,7 +2113,7 @@ if (wflag>0) wd.damage/= wflag; else - ShowError("0 enemies targeted by %d:%s, divide per 0 avoided!\n", skill_num, skill_get_name(skill_num)); + ShowError("0 enemies targeted by %d:%s, divide per 0 avoided!\n", skill_id, skill_get_name(skill_id)); } //Add any bonuses that modify the base baseatk+watk (pre-skills) @@ -2131,10 +2131,10 @@ } break; } //End default case - } //End switch(skill_num) + } //End switch(skill_id) //Skill damage modifiers that stack linearly - if (sc && skill_num != PA_SACRIFICE) { + if (sc && skill_id != PA_SACRIFICE) { if (sc->data[SC_OVERTHRUST]) skillratio += sc->data[SC_OVERTHRUST]->val3; if (sc->data[SC_MAXOVERTHRUST]) @@ -2144,10 +2144,10 @@ if (sc->data[SC_ZENKAI] && sstatus->rhw.ele == sc->data[SC_ZENKAI]->val2) skillratio += sc->data[SC_ZENKAI]->val1 * 2; } - if (!skill_num) { + if (!skill_id) { ATK_RATE(skillratio); } else { - switch (skill_num) { + switch (skill_id) { case SM_BASH: case MS_BASH: skillratio += 30*skill_lv; @@ -2398,7 +2398,7 @@ break; case TK_JUMPKICK: skillratio += -70 + 10*skill_lv; - if (sc && sc->data[SC_COMBO] && sc->data[SC_COMBO]->val1 == skill_num) + if (sc && sc->data[SC_COMBO] && sc->data[SC_COMBO]->val1 == skill_id) skillratio += 10*status_get_lv(src)/3; //Tumble bonus if (wflag) { skillratio += 10*status_get_lv(src)/3; //Running bonus (TODO: What is the real bonus?) @@ -2792,8 +2792,8 @@ case WM_GREAT_ECHO: skillratio += 800 + 100 * skill_lv; if (sd) { // Still need official value [pakpil] - short lv = (short)skill_lv; - skillratio += 100 * skill_check_pc_partner(sd,skill_num,&lv,skill_get_splash(skill_num,skill_lv),0); + uint16 lv = skill_lv; + skillratio += 100 * skill_check_pc_partner(sd,skill_id,&lv,skill_get_splash(skill_id,skill_lv),0); } break; case WM_SOUND_OF_DESTRUCTION: @@ -2904,7 +2904,7 @@ ATK_RATE(skillratio); //Constant/misc additions from skills - switch (skill_num) { + switch (skill_id) { case MO_EXTREMITYFIST: ATK_ADD(250 + 150*skill_lv); break; @@ -2941,8 +2941,8 @@ break; case LG_RAYOFGENESIS: if (sc && sc->data[SC_BANDING]) { // Increase only if the RG is under Banding. - short lv = (short)skill_lv; - ATK_ADDRATE(190 * ((sd) ? skill_check_pc_partner(sd,(short)skill_num,&lv,skill_get_splash(skill_num,skill_lv),0) : 1)); + uint16 lv = skill_lv; + ATK_ADDRATE(190 * ((sd) ? skill_check_pc_partner(sd,skill_id,&lv,skill_get_splash(skill_id,skill_lv),0) : 1)); } break; case SR_GATEOFHELL: @@ -2993,12 +2993,12 @@ if (sc->data[SC_TRUESIGHT]) ATK_ADDRATE(2*sc->data[SC_TRUESIGHT]->val1); if (sc->data[SC_GLOOMYDAY_SK] && - (skill_num == LK_SPIRALPIERCE || skill_num == KN_BRANDISHSPEAR || - skill_num == CR_SHIELDBOOMERANG || skill_num == PA_SHIELDCHAIN || - skill_num == LG_SHIELDPRESS)) + (skill_id == LK_SPIRALPIERCE || skill_id == KN_BRANDISHSPEAR || + skill_id == CR_SHIELDBOOMERANG || skill_id == PA_SHIELDCHAIN || + skill_id == LG_SHIELDPRESS)) ATK_ADDRATE(sc->data[SC_GLOOMYDAY_SK]->val2); if (sc->data[SC_EDP]) { - switch (skill_num) { + switch (skill_id) { case AS_SPLASHER: case AS_VENOMKNIFE: case AS_GRIMTOOTH: @@ -3025,7 +3025,7 @@ } - switch (skill_num) { + switch (skill_id) { case AS_SONICBLOW: if (sc && sc->data[SC_SPIRIT] && sc->data[SC_SPIRIT]->val2 == SL_ASSASIN) @@ -3046,10 +3046,10 @@ } if (sd) { - if (skill_num && (i = pc_skillatk_bonus(sd, skill_num))) + if (skill_id && (i = pc_skillatk_bonus(sd, skill_id))) ATK_ADDRATE(i); - if (skill_num != PA_SACRIFICE && skill_num != MO_INVESTIGATE && skill_num != CR_GRANDCROSS && skill_num != NPC_GRANDDARKNESS && skill_num != PA_SHIELDCHAIN && !flag.cri) { + if (skill_id != PA_SACRIFICE && skill_id != MO_INVESTIGATE && skill_id != CR_GRANDCROSS && skill_id != NPC_GRANDDARKNESS && skill_id != PA_SHIELDCHAIN && !flag.cri) { //Elemental/Racial adjustments if (sd->right_weapon.def_ratio_atk_ele & (1<def_ele) || sd->right_weapon.def_ratio_atk_race & (1<race) || @@ -3069,7 +3069,7 @@ } } - if (skill_num != CR_GRANDCROSS && skill_num != NPC_GRANDDARKNESS) { + if (skill_id != CR_GRANDCROSS && skill_id != NPC_GRANDDARKNESS) { //Ignore Defense? if (!flag.idef && ( sd->right_weapon.ignore_def_ele & (1<def_ele) || @@ -3136,7 +3136,7 @@ def2 -= (target_count - (battle_config.vit_penalty_count - 1))*battle_config.vit_penalty_num; } } - if (skill_num == AM_ACIDTERROR) def1 = 0; //Acid Terror ignores only armor defense. [Skotlex] + if (skill_id == AM_ACIDTERROR) def1 = 0; //Acid Terror ignores only armor defense. [Skotlex] if (def2 < 1) def2 = 1; } //Vitality reduction from rodatazone: http://rodatazone.simgaming.net/mechanics/substats.php#def @@ -3189,12 +3189,12 @@ //SC skill damages if (sc->data[SC_AURABLADE] #ifndef RENEWAL - && skill_num != LK_SPIRALPIERCE && skill_num != ML_SPIRALPIERCE + && skill_id != LK_SPIRALPIERCE && skill_id != ML_SPIRALPIERCE #endif ) { int lv = sc->data[SC_AURABLADE]->val1; #ifdef RENEWAL - lv *= ((skill_num == LK_SPIRALPIERCE || skill_num == ML_SPIRALPIERCE)?wd.div_:1); // +100 per hit in lv 5 + lv *= ((skill_id == LK_SPIRALPIERCE || skill_id == ML_SPIRALPIERCE)?wd.div_:1); // +100 per hit in lv 5 #endif ATK_ADD(20*lv); } @@ -3213,9 +3213,9 @@ } //Refine bonus - if (sd && flag.weapon && skill_num != MO_INVESTIGATE && skill_num != MO_EXTREMITYFIST) { + if (sd && flag.weapon && skill_id != MO_INVESTIGATE && skill_id != MO_EXTREMITYFIST) { // Counts refine bonus multiple times - if (skill_num == MO_FINGEROFFENSIVE) { + if (skill_id == MO_FINGEROFFENSIVE) { ATK_ADD2(wd.div_*sstatus->rhw.atk2, wd.div_*sstatus->lhw.atk2); } else { ATK_ADD2(sstatus->rhw.atk2, sstatus->lhw.atk2); @@ -3227,11 +3227,11 @@ if (flag.lh && wd.damage2 < 1) wd.damage2 = 1; if (sd && flag.weapon && - skill_num != MO_INVESTIGATE && - skill_num != MO_EXTREMITYFIST && - skill_num != CR_GRANDCROSS) { + skill_id != MO_INVESTIGATE && + skill_id != MO_EXTREMITYFIST && + skill_id != CR_GRANDCROSS) { //Add mastery damage - if (skill_num != ASC_BREAKER && sd->status.weapon == W_KATAR && + if (skill_id != ASC_BREAKER && sd->status.weapon == W_KATAR && (skill=pc_checkskill(sd,ASC_KATAR)) > 0) { //Adv Katar Mastery is does not applies to ASC_BREAKER, // but other masteries DO apply >_> @@ -3252,9 +3252,9 @@ skillratio /= 12-3*skill; ATK_ADDRATE(skillratio); } - if (skill_num == NJ_SYURIKEN && (skill = pc_checkskill(sd,NJ_TOBIDOUGU)) > 0) + if (skill_id == NJ_SYURIKEN && (skill = pc_checkskill(sd,NJ_TOBIDOUGU)) > 0) ATK_ADD(3*skill); - if (skill_num == NJ_KUNAI) + if (skill_id == NJ_KUNAI) ATK_ADD(60); } } //Here ends flag.hit section, the rest of the function applies to both hitting and missing attacks @@ -3264,16 +3264,16 @@ if (sd && (skill=pc_checkskill(sd,BS_WEAPONRESEARCH)) > 0) ATK_ADD(skill*2); - if (skill_num==TF_POISON) + if (skill_id==TF_POISON) ATK_ADD(15*skill_lv); if (!(nk &NK_NO_ELEFIX) && !n_ele) { //Elemental attribute fix if (wd.damage > 0) { wd.damage=battle_attr_fix(src,target,wd.damage,s_ele,tstatus->def_ele, tstatus->ele_lv); - if (skill_num == MC_CARTREVOLUTION) //Cart Revolution applies the element fix once more with neutral element + if (skill_id == MC_CARTREVOLUTION) //Cart Revolution applies the element fix once more with neutral element wd.damage = battle_attr_fix(src,target,wd.damage,ELE_NEUTRAL,tstatus->def_ele, tstatus->ele_lv); - if (skill_num== GS_GROUNDDRIFT) //Additional 50*lv Neutral damage. + if (skill_id== GS_GROUNDDRIFT) //Additional 50*lv Neutral damage. wd.damage += battle_attr_fix(src,target,50*skill_lv,ELE_NEUTRAL,tstatus->def_ele, tstatus->ele_lv); } if (flag.lh && wd.damage2 > 0) @@ -3293,18 +3293,18 @@ * In RE Shield Bommerang takes weapon element only for damage calculation, * - resist calculation is always against neutral **/ - if (skill_num == CR_SHIELDBOOMERANG) + if (skill_id == CR_SHIELDBOOMERANG) s_ele = s_ele_ = ELE_NEUTRAL; #endif } - if (skill_num == CR_GRANDCROSS || skill_num == NPC_GRANDDARKNESS) + if (skill_id == CR_GRANDCROSS || skill_id == NPC_GRANDDARKNESS) return wd; //Enough, rest is not needed. if (sd) { - if (skill_num != CR_SHIELDBOOMERANG) //Only Shield boomerang doesn't takes the Star Crumbs bonus. + if (skill_id != CR_SHIELDBOOMERANG) //Only Shield boomerang doesn't takes the Star Crumbs bonus. ATK_ADD2(wd.div_*sd->right_weapon.star, wd.div_*sd->left_weapon.star); - if (skill_num==MO_FINGEROFFENSIVE) { //The finger offensive spheres on moment of attack do count. [Skotlex] + if (skill_id==MO_FINGEROFFENSIVE) { //The finger offensive spheres on moment of attack do count. [Skotlex] ATK_ADD(wd.div_*sd->spiritball_old*3); } else { ATK_ADD(wd.div_*sd->spiritball*3); @@ -3315,7 +3315,7 @@ if( flag.lh ) wd.damage2 = battle_calc_cardfix(BF_WEAPON, src, target, nk, s_ele, s_ele_, wd.damage2, 3, wd.flag); - if (skill_num == CR_SHIELDBOOMERANG || skill_num == PA_SHIELDCHAIN) { + if (skill_id == CR_SHIELDBOOMERANG || skill_id == PA_SHIELDCHAIN) { //Refine bonus applies after cards and elements. short index= sd->equip_index[EQI_HAND_L]; if (index >= 0 && sd->inventory_data[index] && sd->inventory_data[index]->type == IT_ARMOR) @@ -3337,10 +3337,10 @@ if (flag.hit && class_ == MOBID_EMPERIUM) { if (wd.damage2 > 0) { wd.damage2 = battle_attr_fix(src,target,wd.damage2,s_ele_,tstatus->def_ele, tstatus->ele_lv); - wd.damage2 = battle_calc_gvg_damage(src,target,wd.damage2,wd.div_,skill_num,skill_lv,wd.flag); + wd.damage2 = battle_calc_gvg_damage(src,target,wd.damage2,wd.div_,skill_id,skill_lv,wd.flag); } else if (wd.damage > 0) { wd.damage = battle_attr_fix(src,target,wd.damage,s_ele_,tstatus->def_ele, tstatus->ele_lv); - wd.damage = battle_calc_gvg_damage(src,target,wd.damage,wd.div_,skill_num,skill_lv,wd.flag); + wd.damage = battle_calc_gvg_damage(src,target,wd.damage,wd.div_,skill_id,skill_lv,wd.flag); } return wd; } @@ -3370,7 +3370,7 @@ wd.damage2 = wd.damage2 * (50 + (skill * 10))/100; if (wd.damage2 < 1) wd.damage2 = 1; } - } else if (sd->status.weapon == W_KATAR && !skill_num) { //Katars (offhand damage only applies to normal attacks, tested on Aegis 10.2) + } else if (sd->status.weapon == W_KATAR && !skill_id) { //Katars (offhand damage only applies to normal attacks, tested on Aegis 10.2) skill = pc_checkskill(sd,TF_DOUBLE); wd.damage2 = wd.damage * (1 + (skill * 2))/100; @@ -3388,24 +3388,24 @@ if (wd.damage + wd.damage2) { //There is a total damage value if (!wd.damage2) { - wd.damage = battle_calc_damage(src,target,&wd,wd.damage,skill_num,skill_lv); + wd.damage = battle_calc_damage(src,target,&wd,wd.damage,skill_id,skill_lv); if (map_flag_gvg2(target->m)) - wd.damage=battle_calc_gvg_damage(src,target,wd.damage,wd.div_,skill_num,skill_lv,wd.flag); + wd.damage=battle_calc_gvg_damage(src,target,wd.damage,wd.div_,skill_id,skill_lv,wd.flag); else if (map[target->m].flag.battleground) - wd.damage=battle_calc_bg_damage(src,target,wd.damage,wd.div_,skill_num,skill_lv,wd.flag); + wd.damage=battle_calc_bg_damage(src,target,wd.damage,wd.div_,skill_id,skill_lv,wd.flag); } else if (!wd.damage) { - wd.damage2 = battle_calc_damage(src,target,&wd,wd.damage2,skill_num,skill_lv); + wd.damage2 = battle_calc_damage(src,target,&wd,wd.damage2,skill_id,skill_lv); if (map_flag_gvg2(target->m)) - wd.damage2 = battle_calc_gvg_damage(src,target,wd.damage2,wd.div_,skill_num,skill_lv,wd.flag); + wd.damage2 = battle_calc_gvg_damage(src,target,wd.damage2,wd.div_,skill_id,skill_lv,wd.flag); else if (map[target->m].flag.battleground) - wd.damage = battle_calc_bg_damage(src,target,wd.damage2,wd.div_,skill_num,skill_lv,wd.flag); + wd.damage = battle_calc_bg_damage(src,target,wd.damage2,wd.div_,skill_id,skill_lv,wd.flag); } else { int d1 = wd.damage + wd.damage2,d2 = wd.damage2; - wd.damage = battle_calc_damage(src,target,&wd,d1,skill_num,skill_lv); + wd.damage = battle_calc_damage(src,target,&wd,d1,skill_id,skill_lv); if (map_flag_gvg2(target->m)) - wd.damage = battle_calc_gvg_damage(src,target,wd.damage,wd.div_,skill_num,skill_lv,wd.flag); + wd.damage = battle_calc_gvg_damage(src,target,wd.damage,wd.div_,skill_id,skill_lv,wd.flag); else if (map[target->m].flag.battleground) - wd.damage = battle_calc_bg_damage(src,target,wd.damage,wd.div_,skill_num,skill_lv,wd.flag); + wd.damage = battle_calc_bg_damage(src,target,wd.damage,wd.div_,skill_id,skill_lv,wd.flag); wd.damage2 = (d2*100/d1)*wd.damage/100; if (wd.damage > 1 && wd.damage2 < 1) wd.damage2 = 1; wd.damage-=wd.damage2; @@ -3426,8 +3426,8 @@ if (--(tsc->data[SC_REJECTSWORD]->val3) <= 0) status_change_end(target, SC_REJECTSWORD, INVALID_TIMER); } - if (skill_num == ASC_BREAKER) { //Breaker's int-based damage (a misc attack?) - struct Damage md = battle_calc_misc_attack(src, target, skill_num, skill_lv, wflag); + if (skill_id == ASC_BREAKER) { //Breaker's int-based damage (a misc attack?) + struct Damage md = battle_calc_misc_attack(src, target, skill_id, skill_lv, wflag); wd.damage += md.damage; } if (sc) { @@ -3445,7 +3445,7 @@ /** * affecting non-skills **/ - if (!skill_num) { + if (!skill_id) { /** * RK Enchant Blade **/ @@ -3456,8 +3456,8 @@ } status_change_end(src,SC_CAMOUFLAGE, INVALID_TIMER); } - if (skill_num == LG_RAYOFGENESIS) { - struct Damage md = battle_calc_magic_attack(src, target, skill_num, skill_lv, wflag); + if (skill_id == LG_RAYOFGENESIS) { + struct Damage md = battle_calc_magic_attack(src, target, skill_id, skill_lv, wflag); wd.damage += md.damage; } @@ -3467,7 +3467,7 @@ /*========================================== * battle_calc_magic_attack [DracoRPG] *------------------------------------------*/ -struct Damage battle_calc_magic_attack(struct block_list *src,struct block_list *target,int skill_num,int skill_lv,int mflag) { +struct Damage battle_calc_magic_attack(struct block_list *src,struct block_list *target,uint16 skill_id,uint16 skill_lv,int mflag) { int i, nk; short s_ele = 0; unsigned int skillratio = 100; //Skill dmg modifiers. @@ -3490,19 +3490,19 @@ return ad; } //Initial Values - ad.div_=skill_get_num(skill_num,skill_lv); - ad.amotion=skill_get_inf(skill_num) &INF_GROUND_SKILL?0:sstatus->amotion; //Amotion should be 0 for ground skills. + ad.div_=skill_get_num(skill_id,skill_lv); + ad.amotion=skill_get_inf(skill_id) &INF_GROUND_SKILL?0:sstatus->amotion; //Amotion should be 0 for ground skills. ad.dmotion=tstatus->dmotion; - ad.blewcount = skill_get_blewcount(skill_num,skill_lv); + ad.blewcount = skill_get_blewcount(skill_id,skill_lv); ad.flag=BF_MAGIC|BF_SKILL; ad.dmg_lv=ATK_DEF; - nk = skill_get_nk(skill_num); + nk = skill_get_nk(skill_id); flag.imdef = nk &NK_IGNORE_DEF?1:0; sd = BL_CAST(BL_PC, src); // tsd = BL_CAST(BL_PC, target); - if (skill_num == SO_PSYCHIC_WAVE) { + if (skill_id == SO_PSYCHIC_WAVE) { struct status_change *sc = status_get_sc(src); if (sc && sc->count && (sc->data[SC_HEATER_OPTION] || sc->data[SC_COOLER_OPTION] || sc->data[SC_BLAST_OPTION] || sc->data[SC_CURSED_SOIL_OPTION])) { @@ -3514,7 +3514,7 @@ //#HALP# I didn't get a clue on how to do this without unnecessary adding a overhead of status_change on every call while this is a per-skill case. //, - so i duplicated this code. make yourself comfortable to fix if you have any better ideas. //Initialize variables that will be used afterwards - s_ele = skill_get_ele(skill_num, skill_lv); + s_ele = skill_get_ele(skill_id, skill_lv); if (s_ele == -1) // pl=-1 : the skill takes the weapon's element s_ele = sstatus->rhw.ele; @@ -3525,7 +3525,7 @@ } } else { //Initialize variables that will be used afterwards - s_ele = skill_get_ele(skill_num, skill_lv); + s_ele = skill_get_ele(skill_id, skill_lv); if (s_ele == -1) { // pl=-1 : the skill takes the weapon's element s_ele = sstatus->rhw.ele; @@ -3541,11 +3541,11 @@ //Set miscellaneous data that needs be filled if (sd) { sd->state.arrow_atk = 0; - ad.blewcount += battle_blewcount_bonus(sd, skill_num); + ad.blewcount += battle_blewcount_bonus(sd, skill_id); } //Skill Range Criteria - ad.flag |= battle_range_type(src, target, skill_num, skill_lv); + ad.flag |= battle_range_type(src, target, skill_id, skill_lv); flag.infdef=(tstatus->mode&MD_PLANT?1:0); if (target->type == BL_SKILL) { TBL_SKILL *su = (TBL_SKILL *)target; @@ -3553,7 +3553,7 @@ flag.infdef = 1; } - switch (skill_num) { + switch (skill_id) { case MG_FIREWALL: case NJ_KAENSIN: ad.dmotion = 0; //No flinch animation. @@ -3574,7 +3574,7 @@ //Adds an absolute value to damage. 100 = +100 damage #define MATK_ADD( a ) { ad.damage+= a; } - switch (skill_num) { + switch (skill_id) { //Calc base damage according to skill case AL_HEAL: case PR_BENEDICTIO: @@ -3583,7 +3583,7 @@ * Arch Bishop **/ case AB_HIGHNESSHEAL: - ad.damage = skill_calc_heal(src, target, skill_num, skill_lv, false); + ad.damage = skill_calc_heal(src, target, skill_id, skill_lv, false); break; case PR_ASPERSIO: ad.damage = 40; @@ -3635,10 +3635,10 @@ if (mflag>0) ad.damage/= mflag; else - ShowError("0 enemies targeted by %d:%s, divide per 0 avoided!\n", skill_num, skill_get_name(skill_num)); + ShowError("0 enemies targeted by %d:%s, divide per 0 avoided!\n", skill_id, skill_get_name(skill_id)); } - switch (skill_num) { + switch (skill_id) { case MG_NAPALMBEAT: skillratio += skill_lv*10-30; break; @@ -4031,7 +4031,7 @@ MATK_RATE(skillratio); //Constant/misc additions from skills - if (skill_num == WZ_FIREPILLAR) + if (skill_id == WZ_FIREPILLAR) MATK_ADD(50); } } @@ -4040,7 +4040,7 @@ #endif if (sd) { //Damage bonuses - if ((i = pc_skillatk_bonus(sd, skill_num))) + if ((i = pc_skillatk_bonus(sd, skill_id))) ad.damage += ad.damage*i/100; //Ignore Defense? @@ -4080,13 +4080,13 @@ #endif } - if (skill_num == NPC_EARTHQUAKE) { + if (skill_id == NPC_EARTHQUAKE) { //Adds atk2 to the damage, should be influenced by number of hits and skill-ratio, but not mdef reductions. [Skotlex] //Also divide the extra bonuses from atk2 based on the number in range [Kevin] if (mflag>0) ad.damage+= (sstatus->rhw.atk2*skillratio/100)/mflag; else - ShowError("Zero range by %d:%s, divide per 0 avoided!\n", skill_num, skill_get_name(skill_num)); + ShowError("Zero range by %d:%s, divide per 0 avoided!\n", skill_id, skill_get_name(skill_id)); } if (ad.damage<1) @@ -4095,9 +4095,9 @@ if (!(nk&NK_NO_ELEFIX)) ad.damage=battle_attr_fix(src, target, ad.damage, s_ele, tstatus->def_ele, tstatus->ele_lv); - if (skill_num == CR_GRANDCROSS || skill_num == NPC_GRANDDARKNESS) { + if (skill_id == CR_GRANDCROSS || skill_id == NPC_GRANDDARKNESS) { //Apply the physical part of the skill's damage. [Skotlex] - struct Damage wd = battle_calc_weapon_attack(src,target,skill_num,skill_lv,mflag); + struct Damage wd = battle_calc_weapon_attack(src,target,skill_id,skill_lv,mflag); ad.damage = battle_attr_fix(src, target, wd.damage + ad.damage, s_ele, tstatus->def_ele, tstatus->ele_lv) * (100 + 40*skill_lv)/100; if (src == target) { if (src->type == BL_PC) @@ -4117,15 +4117,15 @@ if (flag.infdef && ad.damage) ad.damage = ad.damage>0?1:-1; - ad.damage=battle_calc_damage(src,target,&ad,ad.damage,skill_num,skill_lv); + ad.damage=battle_calc_damage(src,target,&ad,ad.damage,skill_id,skill_lv); if (map_flag_gvg2(target->m)) - ad.damage=battle_calc_gvg_damage(src,target,ad.damage,ad.div_,skill_num,skill_lv,ad.flag); + ad.damage=battle_calc_gvg_damage(src,target,ad.damage,ad.div_,skill_id,skill_lv,ad.flag); else if (map[target->m].flag.battleground) - ad.damage=battle_calc_bg_damage(src,target,ad.damage,ad.div_,skill_num,skill_lv,ad.flag); + ad.damage=battle_calc_bg_damage(src,target,ad.damage,ad.div_,skill_id,skill_lv,ad.flag); - switch (skill_num) { /* post-calc modifiers */ + switch (skill_id) { /* post-calc modifiers */ case SO_VARETYR_SPEAR: { // Physical damage. - struct Damage wd = battle_calc_weapon_attack(src,target,skill_num,skill_lv,mflag); + struct Damage wd = battle_calc_weapon_attack(src,target,skill_id,skill_lv,mflag); ad.damage += wd.damage; break; } @@ -4136,9 +4136,9 @@ } /*========================================== - * Calculate Misc dammage for skillid + * Calculate Misc dammage for skill_id *------------------------------------------*/ -struct Damage battle_calc_misc_attack(struct block_list *src,struct block_list *target,int skill_num,int skill_lv,int mflag) { +struct Damage battle_calc_misc_attack(struct block_list *src, struct block_list *target, uint16 skill_id, uint16 skill_lv, int mflag) { int skill; short i, nk; short s_ele; @@ -4156,33 +4156,33 @@ } //Some initial values - md.amotion=skill_get_inf(skill_num) &INF_GROUND_SKILL?0:sstatus->amotion; + md.amotion=skill_get_inf(skill_id) &INF_GROUND_SKILL?0:sstatus->amotion; md.dmotion=tstatus->dmotion; - md.div_=skill_get_num(skill_num,skill_lv); - md.blewcount=skill_get_blewcount(skill_num,skill_lv); + md.div_=skill_get_num(skill_id,skill_lv); + md.blewcount=skill_get_blewcount(skill_id,skill_lv); md.dmg_lv=ATK_DEF; md.flag=BF_MISC|BF_SKILL; - nk = skill_get_nk(skill_num); + nk = skill_get_nk(skill_id); sd = BL_CAST(BL_PC, src); tsd = BL_CAST(BL_PC, target); if (sd) { sd->state.arrow_atk = 0; - md.blewcount += battle_blewcount_bonus(sd, skill_num); + md.blewcount += battle_blewcount_bonus(sd, skill_id); } - s_ele = skill_get_ele(skill_num, skill_lv); + s_ele = skill_get_ele(skill_id, skill_lv); if (s_ele < 0 && s_ele != -3) //Attack that takes weapon's element for misc attacks? Make it neutral [Skotlex] s_ele = ELE_NEUTRAL; else if (s_ele == -3) //Use random element s_ele = rnd()%ELE_MAX; //Skill Range Criteria - md.flag |= battle_range_type(src, target, skill_num, skill_lv); + md.flag |= battle_range_type(src, target, skill_id, skill_lv); - switch (skill_num) { + switch (skill_id) { #ifdef RENEWAL case HT_LANDMINE: case MA_LANDMINE: @@ -4213,7 +4213,7 @@ if (mflag > 1) //Autocasted Blitz. nk|=NK_SPLASHSPLIT; - if (skill_num == SN_FALCONASSAULT) { + if (skill_id == SN_FALCONASSAULT) { //Div fix of Blitzbeat skill = skill_get_num(HT_BLITZBEAT, 5); damage_div_fix(md.damage, skill); @@ -4259,11 +4259,11 @@ break; case NJ_ZENYNAGE: case KO_MUCHANAGE: - md.damage = skill_get_zeny(skill_num ,skill_lv); + md.damage = skill_get_zeny(skill_id ,skill_lv); if (!md.damage) md.damage = 2; - md.damage = rand()%md.damage + md.damage / (skill_num==NJ_ZENYNAGE?1:2) ; + md.damage = rand()%md.damage + md.damage / (skill_id==NJ_ZENYNAGE?1:2) ; if (is_boss(target)) - md.damage=md.damage / (skill_num==NJ_ZENYNAGE?3:2); + md.damage=md.damage / (skill_id==NJ_ZENYNAGE?3:2); else if (tsd) // need confirmation for KO_MUCHANAGE md.damage=md.damage/2; break; @@ -4282,7 +4282,7 @@ md.dmotion = 0; //No flinch animation. break; case NPC_EVILLAND: - md.damage = skill_calc_heal(src,target,skill_num,skill_lv,false); + md.damage = skill_calc_heal(src,target,skill_id,skill_lv,false); break; case RK_DRAGONBREATH: md.damage = ((status_get_hp(src) / 50) + (status_get_max_sp(src) / 4)) * skill_lv; @@ -4299,7 +4299,7 @@ md.damage = skill_lv * sstatus->dex + sstatus->int_ * 5 ; RE_LVL_TMDMOD(); md.damage = md.damage * (20 * (sd ? pc_checkskill(sd,RA_RESEARCHTRAP) : 10)); - md.damage = (md.damage?md.damage:1) / (skill_num == RA_CLUSTERBOMB?50:100); + md.damage = (md.damage?md.damage:1) / (skill_id == RA_CLUSTERBOMB?50:100); break; /** * Mechanic @@ -4319,7 +4319,7 @@ md.damage = (skill_lv * status_get_lv(src) * 10) + (sstatus->int_ * 7 / 2) * (18 + (sd?sd->status.job_level:0) / 4) * (5 / (10 - (sd?pc_checkskill(sd,AM_CANNIBALIZE):0))); break; case KO_HAPPOKUNAI: { - struct Damage wd = battle_calc_weapon_attack(src,target,skill_num,skill_lv,mflag); + struct Damage wd = battle_calc_weapon_attack(src,target,skill_id,skill_lv,mflag); short totaldef = tstatus->def2 + (short)status_get_def(target); md.damage = wd.damage * 60 * (5 + skill_lv) / 100; md.damage -= totaldef; @@ -4334,7 +4334,7 @@ if (mflag>0) md.damage/= mflag; else - ShowError("0 enemies targeted by %d:%s, divide per 0 avoided!\n", skill_num, skill_get_name(skill_num)); + ShowError("0 enemies targeted by %d:%s, divide per 0 avoided!\n", skill_id, skill_get_name(skill_id)); } damage_div_fix(md.damage, md.div_); @@ -4383,13 +4383,13 @@ md.damage = battle_calc_cardfix(BF_MISC, src, target, nk, s_ele, 0, md.damage, 0, md.flag); - if (sd && (i = pc_skillatk_bonus(sd, skill_num))) + if (sd && (i = pc_skillatk_bonus(sd, skill_id))) md.damage += md.damage *i/100; if (md.damage < 0) md.damage = 0; else if (md.damage && tstatus->mode &MD_PLANT) { - switch (skill_num) { + switch (skill_id) { case HT_LANDMINE: case MA_LANDMINE: case HT_BLASTMINE: @@ -4410,19 +4410,19 @@ if (!(nk &NK_NO_ELEFIX)) md.damage=battle_attr_fix(src, target, md.damage, s_ele, tstatus->def_ele, tstatus->ele_lv); - md.damage=battle_calc_damage(src,target,&md,md.damage,skill_num,skill_lv); + md.damage=battle_calc_damage(src,target,&md,md.damage,skill_id,skill_lv); if (map_flag_gvg2(target->m)) - md.damage=battle_calc_gvg_damage(src,target,md.damage,md.div_,skill_num,skill_lv,md.flag); + md.damage=battle_calc_gvg_damage(src,target,md.damage,md.div_,skill_id,skill_lv,md.flag); else if (map[target->m].flag.battleground) - md.damage=battle_calc_bg_damage(src,target,md.damage,md.div_,skill_num,skill_lv,md.flag); + md.damage=battle_calc_bg_damage(src,target,md.damage,md.div_,skill_id,skill_lv,md.flag); - switch (skill_num) { + switch (skill_id) { case RA_FIRINGTRAP: case RA_ICEBOUNDTRAP: if (md.damage == 1) break; case RA_CLUSTERBOMB: { struct Damage wd; - wd = battle_calc_weapon_attack(src,target,skill_num,skill_lv,mflag); + wd = battle_calc_weapon_attack(src,target,skill_id,skill_lv,mflag); md.damage += wd.damage; } break; @@ -4440,17 +4440,17 @@ /*========================================== * Battle main entry, from skill_attack *------------------------------------------*/ -struct Damage battle_calc_attack(int attack_type,struct block_list *bl,struct block_list *target,int skill_num,int skill_lv,int count) { +struct Damage battle_calc_attack(int attack_type,struct block_list *bl, struct block_list *target, uint16 skill_id, uint16 skill_lv, int count) { struct Damage d; switch (attack_type) { case BF_WEAPON: - d = battle_calc_weapon_attack(bl,target,skill_num,skill_lv,count); + d = battle_calc_weapon_attack(bl,target,skill_id,skill_lv,count); break; case BF_MAGIC: - d = battle_calc_magic_attack(bl,target,skill_num,skill_lv,count); + d = battle_calc_magic_attack(bl,target,skill_id,skill_lv,count); break; case BF_MISC: - d = battle_calc_misc_attack(bl,target,skill_num,skill_lv,count); + d = battle_calc_misc_attack(bl,target,skill_id,skill_lv,count); break; default: ShowError("battle_calc_attack: unknown attack type! %d\n",attack_type); @@ -4469,7 +4469,7 @@ } //Calculates BF_WEAPON returned damage. -int battle_calc_return_damage(struct block_list *bl, struct block_list *src, int *dmg, int flag, int skillid) +int battle_calc_return_damage(struct block_list *bl, struct block_list *src, int *dmg, int flag, uint16 skill_id) { struct map_session_data *sd = NULL; int rdamage = 0, damage = *dmg; @@ -4500,11 +4500,11 @@ if (rdamage < 1) rdamage = 1; } if (sc && sc->count) { - if (sc->data[SC_REFLECTSHIELD] && skillid != WS_CARTTERMINATION) { + if (sc->data[SC_REFLECTSHIELD] && skill_id != WS_CARTTERMINATION) { rdamage += damage * sc->data[SC_REFLECTSHIELD]->val2 / 100; if (rdamage < 1) rdamage = 1; } - if (sc->data[SC_DEATHBOUND] && skillid != WS_CARTTERMINATION && !(src->type == BL_MOB && is_boss(src))) { + if (sc->data[SC_DEATHBOUND] && skill_id != WS_CARTTERMINATION && !(src->type == BL_MOB && is_boss(src))) { int dir = map_calc_dir(bl,src->x,src->y), t_dir = unit_getdir(bl), rd1 = 0; @@ -4695,24 +4695,24 @@ int t_dir = unit_getdir(target); int dist = distance_bl(src, target); if (dist <= 0 || (!map_check_dir(dir,t_dir) && dist <= tstatus->rhw.range+1)) { - int skilllv = tsc->data[SC_AUTOCOUNTER]->val1; + uint16 skill_lv = tsc->data[SC_AUTOCOUNTER]->val1; clif_skillcastcancel(target); //Remove the casting bar. [Skotlex] clif_damage(src, target, tick, sstatus->amotion, 1, 0, 1, 0, 0); //Display MISS. status_change_end(target, SC_AUTOCOUNTER, INVALID_TIMER); - skill_attack(BF_WEAPON,target,target,src,KN_AUTOCOUNTER,skilllv,tick,0); + skill_attack(BF_WEAPON,target,target,src,KN_AUTOCOUNTER,skill_lv,tick,0); return ATK_BLOCK; } } if (tsc && tsc->data[SC_BLADESTOP_WAIT] && !is_boss(src) && (src->type == BL_PC || tsd == NULL || distance_bl(src, target) <= (tsd->status.weapon == W_FIST ? 1 : 2))) { - int skilllv = tsc->data[SC_BLADESTOP_WAIT]->val1; - int duration = skill_get_time2(MO_BLADESTOP,skilllv); + uint16 skill_lv = tsc->data[SC_BLADESTOP_WAIT]->val1; + int duration = skill_get_time2(MO_BLADESTOP,skill_lv); status_change_end(target, SC_BLADESTOP_WAIT, INVALID_TIMER); if (sc_start4(src, SC_BLADESTOP, 100, sd?pc_checkskill(sd, MO_BLADESTOP):5, 0, 0, target->id, duration)) { //Target locked. clif_damage(src, target, tick, sstatus->amotion, 1, 0, 1, 0, 0); //Display MISS. clif_bladestop(target, src->id, 1); - sc_start4(target, SC_BLADESTOP, 100, skilllv, 0, 0, src->id, duration); + sc_start4(target, SC_BLADESTOP, 100, skill_lv, 0, 0, src->id, duration); return ATK_BLOCK; } } @@ -4732,7 +4732,7 @@ if (sc) { if (sc->data[SC_SACRIFICE]) { - int skilllv = sc->data[SC_SACRIFICE]->val1; + uint16 skill_lv = sc->data[SC_SACRIFICE]->val1; damage_lv ret_val; if (--sc->data[SC_SACRIFICE]->val2 <= 0) @@ -4742,7 +4742,7 @@ * We need to calculate the DMG before the hp reduction, because it can kill the source. * For futher information: bugreport:4950 **/ - ret_val = (damage_lv)skill_attack(BF_WEAPON,src,src,target,PA_SACRIFICE,skilllv,tick,0); + ret_val = (damage_lv)skill_attack(BF_WEAPON,src,src,target,PA_SACRIFICE,skill_lv,tick,0); status_zap(src, sstatus->max_hp*9/100, 0);//Damage to self is always 9% if (ret_val == ATK_NONE) @@ -4801,12 +4801,12 @@ if (damage > 0 && src != target) { if (sc && sc->data[SC_DUPLELIGHT] && (wd.flag&BF_SHORT) && rnd()%100 <= 10+2*sc->data[SC_DUPLELIGHT]->val1) { // Activates it only from melee damage - int skillid; + uint16 skill_id; if (rnd()%2 == 1) - skillid = AB_DUPLELIGHT_MELEE; + skill_id = AB_DUPLELIGHT_MELEE; else - skillid = AB_DUPLELIGHT_MAGIC; - skill_attack(skill_get_type(skillid), src, src, target, skillid, sc->data[SC_DUPLELIGHT]->val1, tick, SD_LEVEL); + skill_id = AB_DUPLELIGHT_MAGIC; + skill_attack(skill_get_type(skill_id), src, src, target, skill_id, sc->data[SC_DUPLELIGHT]->val1, tick, SD_LEVEL); } rdamage = battle_calc_return_damage(target,src, &damage, wd.flag, 0); @@ -4867,26 +4867,26 @@ } if (sc && sc->data[SC_AUTOSPELL] && rnd()%100 < sc->data[SC_AUTOSPELL]->val4) { int sp = 0; - int skillid = sc->data[SC_AUTOSPELL]->val2; - int skilllv = sc->data[SC_AUTOSPELL]->val3; + uint16 skill_id = sc->data[SC_AUTOSPELL]->val2; + uint16 skill_lv = sc->data[SC_AUTOSPELL]->val3; int i = rnd()%100; if (sc->data[SC_SPIRIT] && sc->data[SC_SPIRIT]->val2 == SL_SAGE) - i = 0; //Max chance, no skilllv reduction. [Skotlex] - if (i >= 50) skilllv -= 2; - else if (i >= 15) skilllv--; - if (skilllv < 1) skilllv = 1; - sp = skill_get_sp(skillid,skilllv) * 2 / 3; + i = 0; //Max chance, no skill_lv reduction. [Skotlex] + if (i >= 50) skill_lv -= 2; + else if (i >= 15) skill_lv--; + if (skill_lv < 1) skill_lv = 1; + sp = skill_get_sp(skill_id,skill_lv) * 2 / 3; if (status_charge(src, 0, sp)) { - switch (skill_get_casttype(skillid)) { + switch (skill_get_casttype(skill_id)) { case CAST_GROUND: - skill_castend_pos2(src, target->x, target->y, skillid, skilllv, tick, flag); + skill_castend_pos2(src, target->x, target->y, skill_id, skill_lv, tick, flag); break; case CAST_NODAMAGE: - skill_castend_nodamage_id(src, target, skillid, skilllv, tick, flag); + skill_castend_nodamage_id(src, target, skill_id, skill_lv, tick, flag); break; case CAST_DAMAGE: - skill_castend_damage_id(src, target, skillid, skilllv, tick, flag); + skill_castend_damage_id(src, target, skill_id, skill_lv, tick, flag); break; } } @@ -5046,7 +5046,8 @@ *------------------------------------------*/ int battle_check_target(struct block_list *src, struct block_list *target,int flag) { - int m,state = 0; //Initial state none + short m; + int state = 0; //Initial state none int strip_enemy = 1; //Flag which marks whether to remove the BCT_ENEMY status if it's also friend/ally. struct block_list *s_bl = src, *t_bl = target; Index: src/map/battle.h --- src/map/battle.h Base (BASE) +++ src/map/battle.h Locally Modified (Based On LOCAL) @@ -33,9 +33,9 @@ // Damage Calculation -struct Damage battle_calc_attack(int attack_type,struct block_list *bl,struct block_list *target,int skill_num,int skill_lv,int count); +struct Damage battle_calc_attack(int attack_type,struct block_list *bl,struct block_list *target,uint16 skill_id,uint16 skill_lv,int count); -int battle_calc_return_damage(struct block_list *bl, struct block_list *src, int *, int flag, int skillid); +int battle_calc_return_damage(struct block_list *bl, struct block_list *src, int *, int flag, uint16 skill_id); void battle_drain(struct map_session_data *sd, struct block_list *tbl, int rdamage, int ldamage, int race, int boss); @@ -44,9 +44,9 @@ int battle_calc_cardfix(int attack_type, struct block_list *src, struct block_list *target, int nk, int s_ele, int s_ele_, int damage, int left, int flag); // Final calculation Damage -int battle_calc_damage(struct block_list *src,struct block_list *bl,struct Damage *d,int damage,int skill_num,int skill_lv); -int battle_calc_gvg_damage(struct block_list *src,struct block_list *bl,int damage,int div_,int skill_num,int skill_lv,int flag); -int battle_calc_bg_damage(struct block_list *src,struct block_list *bl,int damage,int div_,int skill_num,int skill_lv,int flag); +int battle_calc_damage(struct block_list *src,struct block_list *bl,struct Damage *d,int damage,uint16 skill_id,uint16 skill_lv); +int battle_calc_gvg_damage(struct block_list *src,struct block_list *bl,int damage,int div_,uint16 skill_id,uint16 skill_lv,int flag); +int battle_calc_bg_damage(struct block_list *src,struct block_list *bl,int damage,int div_,uint16 skill_id,uint16 skill_lv,int flag); enum { // Flag of the final calculation BF_WEAPON = 0x0001, @@ -61,7 +61,7 @@ BF_SKILLMASK= 0x0f00, }; -int battle_delay_damage(unsigned int tick, int amotion, struct block_list *src, struct block_list *target, int attack_type, int skill_id, int skill_lv, int damage, enum damage_lv dmg_lv, int ddelay); +int battle_delay_damage(unsigned int tick, int amotion, struct block_list *src, struct block_list *target, int attack_type, uint16 skill_id, uint16 skill_lv, int damage, enum damage_lv dmg_lv, int ddelay); // Summary normal attack treatment (basic attack) enum damage_lv battle_weapon_attack(struct block_list *bl,struct block_list *target,unsigned int tick,int flag); @@ -93,7 +93,7 @@ int battle_check_target(struct block_list *src, struct block_list *target,int flag); bool battle_check_range(struct block_list *src,struct block_list *bl,int range); -void battle_consume_ammo(struct map_session_data *sd, int skill, int lv); +void battle_consume_ammo(struct map_session_data *sd, uint16 skill_id, uint16 skill_lv); // Settings #define MIN_HAIR_STYLE battle_config.min_hair_style @@ -493,7 +493,7 @@ int battle_get_value(const char *w1); // -struct block_list *battle_getenemyarea(struct block_list *src, int x, int y, int range, int type, int ignore_id); +struct block_list *battle_getenemyarea(struct block_list *src, short x, short y, short range, int type, int ignore_id); /** * Royal Guard **/ Index: src/map/buyingstore.c --- src/map/buyingstore.c Base (BASE) +++ src/map/buyingstore.c Locally Modified (Based On LOCAL) @@ -206,7 +206,7 @@ } -void buyingstore_open(struct map_session_data *sd, int account_id) +void buyingstore_open(struct map_session_data *sd, uint32 account_id) { struct map_session_data *pl_sd; @@ -236,7 +236,7 @@ } -void buyingstore_trade(struct map_session_data *sd, int account_id, unsigned int buyer_id, const uint8 *itemlist, unsigned int count) +void buyingstore_trade(struct map_session_data *sd, uint32 account_id, unsigned int buyer_id, const uint8 *itemlist, unsigned int count) { int zeny = 0; unsigned int i, weight, listidx, k; Index: src/map/buyingstore.h --- src/map/buyingstore.h Base (BASE) +++ src/map/buyingstore.h Locally Modified (Based On LOCAL) @@ -23,8 +23,8 @@ bool buyingstore_setup(struct map_session_data *sd, unsigned char slots); void buyingstore_create(struct map_session_data *sd, int zenylimit, unsigned char result, const char *storename, const uint8 *itemlist, unsigned int count); void buyingstore_close(struct map_session_data *sd); -void buyingstore_open(struct map_session_data *sd, int account_id); -void buyingstore_trade(struct map_session_data *sd, int account_id, unsigned int buyer_id, const uint8 *itemlist, unsigned int count); +void buyingstore_open(struct map_session_data *sd, uint32 account_id); +void buyingstore_trade(struct map_session_data *sd, uint32 account_id, unsigned int buyer_id, const uint8 *itemlist, unsigned int count); bool buyingstore_search(struct map_session_data *sd, unsigned short nameid); bool buyingstore_searchall(struct map_session_data *sd, const struct s_search_store_search *s); Index: src/map/chrif.c --- src/map/chrif.c Base (BASE) +++ src/map/chrif.c Locally Modified (Based On LOCAL) @@ -135,17 +135,17 @@ runflag = CORE_ST_STOP; } -struct auth_node *chrif_search(int account_id) { +struct auth_node *chrif_search(uint32 account_id) { return (struct auth_node *)idb_get(auth_db, account_id); } -struct auth_node *chrif_auth_check(int account_id, int char_id, enum sd_state state) { +struct auth_node *chrif_auth_check(uint32 account_id, uint32 char_id, enum sd_state state) { struct auth_node *node = chrif_search(account_id); return (node && node->char_id == char_id && node->state == state) ? node : NULL; } -bool chrif_auth_delete(int account_id, int char_id, enum sd_state state) +bool chrif_auth_delete(uint32 account_id, uint32 char_id, enum sd_state state) { struct auth_node *node; @@ -445,7 +445,7 @@ /// map-server change request acknowledgement (positive or negative) /// R 2b06 .L .L .L .L .W .W .W .L .W -int chrif_changemapserverack(int account_id, int login_id1, int login_id2, int char_id, short map_index, short x, short y, uint32 ip, uint16 port) +int chrif_changemapserverack(uint32 account_id, uint32 login_id1, uint32 login_id2, uint32 char_id, short map_index, short x, short y, uint32 ip, uint16 port) { struct auth_node *node; @@ -573,7 +573,7 @@ /*========================================== * Request sc_data from charserver [Skotlex] *------------------------------------------*/ -int chrif_scdata_request(int account_id, int char_id) +int chrif_scdata_request(uint32 account_id, uint32 char_id) { #ifdef ENABLE_SC_SAVING @@ -617,8 +617,8 @@ *------------------------------------------*/ void chrif_authok(int fd) { - int account_id, group_id, char_id; - uint32 login_id1,login_id2; + uint32 account_id, char_id, login_id1, login_id2; + uint32 group_id; time_t expiration_time; struct mmo_charstatus *status; struct auth_node *node; @@ -681,7 +681,7 @@ // client authentication failed void chrif_authfail(int fd) /* HELLO WORLD. ip in RFIFOL 15 is not being used (but is available) */ { - int account_id, char_id; + uint32 account_id, char_id; uint32 login_id1; char sex; struct auth_node *node; @@ -767,7 +767,7 @@ /*========================================== * Search Char trough id on char serv *------------------------------------------*/ -int chrif_searchcharid(int char_id) +int chrif_searchcharid(uint32 char_id) { if (!char_id) @@ -865,15 +865,15 @@ * 2: gm level too low * 3: login-server offline *------------------------------------------*/ -static void chrif_char_ask_name_answer(int acc, const char *player_name, uint16 type, uint16 answer) +static void chrif_char_ask_name_answer(uint32 account_id, const char *player_name, uint16 type, uint16 answer) { struct map_session_data *sd; char action[25]; char output[256]; - sd = map_id2sd(acc); + sd = map_id2sd(account_id); - if (acc < 0 || sd == NULL) { + if (account_id < 0 || sd == NULL) { ShowError("chrif_char_ask_name_answer failed - player not online.\n"); return; } @@ -909,16 +909,18 @@ *------------------------------------------*/ int chrif_changedsex(int fd) { - int acc, sex, i; + uint32 account_id; + uint8 sex; + uint16 i; struct map_session_data *sd; - acc = RFIFOL(fd,2); - sex = RFIFOL(fd,6); + account_id = RFIFOL(fd,2); + sex = RFIFOB(fd,6); if (battle_config.etc_log) - ShowNotice("chrif_changedsex %d.\n", acc); + ShowNotice("chrif_changedsex %d.\n", account_id); - sd = map_id2sd(acc); + sd = map_id2sd(account_id); if (sd) { //Normally there should not be a char logged on right now! if (sd->status.sex == sex) return 0; //Do nothing? Likely safe. @@ -962,7 +964,7 @@ /*========================================== * Request Char Server to Divorce Players *------------------------------------------*/ -int chrif_divorce(int partner_id1, int partner_id2) +int chrif_divorce(uint32 partner_id1, uint32 partner_id2) { chrif_check(-1); @@ -979,7 +981,7 @@ * Divorce players * only used if 'partner_id' is offline *------------------------------------------*/ -int chrif_divorceack(int char_id, int partner_id) +int chrif_divorceack(uint32 char_id, uint32 partner_id) { struct map_session_data *sd; int i; @@ -1006,7 +1008,7 @@ /*========================================== * Removes Baby from parents *------------------------------------------*/ -int chrif_deadopt(int father_id, int mother_id, int child_id) +int chrif_deadopt(uint32 father_id, uint32 mother_id, uint32 child_id) { struct map_session_data *sd; @@ -1077,7 +1079,7 @@ int chrif_disconnectplayer(int fd) { struct map_session_data *sd; - int account_id = RFIFOL(fd, 2); + uint32 account_id = RFIFOL(fd, 2); sd = map_id2sd(account_id); if (sd == NULL) { @@ -1351,7 +1353,7 @@ return 0; } -int chrif_char_offline_nsd(int account_id, int char_id) +int chrif_char_offline_nsd(uint32 account_id, uint32 char_id) { chrif_check(-1); @@ -1676,7 +1678,7 @@ /*========================================== * Asks char server to remove friend_id from the friend list of char_id *------------------------------------------*/ -int chrif_removefriend(int char_id, int friend_id) +int chrif_removefriend(uint32 char_id, uint32 friend_id) { chrif_check(-1); Index: src/map/chrif.h --- src/map/chrif.h Base (BASE) +++ src/map/chrif.h Locally Modified (Based On LOCAL) @@ -9,8 +9,9 @@ enum sd_state { ST_LOGIN, ST_LOGOUT, ST_MAPCHANGE }; struct auth_node { - int account_id, char_id; - int login_id1, login_id2, sex, fd; + uint32 account_id, char_id, login_id1, login_id2; + uint8 sex; + int fd; time_t expiration_time; // # of seconds 1/1/1970 (timestamp): Validity limit of the account (0 = unlimited) struct map_session_data *sd; //Data from logged on char. struct mmo_charstatus *char_dat; //Data from char server. @@ -30,19 +31,19 @@ extern int chrif_connected; extern int other_mapserver_count; -struct auth_node *chrif_search(int account_id); -struct auth_node *chrif_auth_check(int account_id, int char_id, enum sd_state state); -bool chrif_auth_delete(int account_id, int char_id, enum sd_state state); +struct auth_node *chrif_search(uint32 account_id); +struct auth_node *chrif_auth_check(uint32 account_id, uint32 char_id, enum sd_state state); +bool chrif_auth_delete(uint32 account_id, uint32 char_id, enum sd_state state); bool chrif_auth_finished(struct map_session_data *sd); void chrif_authreq(struct map_session_data *sd); void chrif_authok(int fd); -int chrif_scdata_request(int account_id, int char_id); +int chrif_scdata_request(uint32 account_id, uint32 char_id); int chrif_save(struct map_session_data *sd, int flag); int chrif_charselectreq(struct map_session_data *sd, uint32 s_ip); int chrif_changemapserver(struct map_session_data *sd, uint32 ip, uint16 port); -int chrif_searchcharid(int char_id); +int chrif_searchcharid(uint32 char_id); int chrif_changeemail(int id, const char *actual_email, const char *new_email); int chrif_char_ask_name(int acc, const char *character_name, unsigned short operation_type, int year, int month, int day, int hour, int minute, int second); int chrif_updatefamelist(struct map_session_data *sd); @@ -50,15 +51,15 @@ int chrif_save_scdata(struct map_session_data *sd); int chrif_ragsrvinfo(int base_rate,int job_rate, int drop_rate); int chrif_char_offline(struct map_session_data *sd); -int chrif_char_offline_nsd(int account_id, int char_id); +int chrif_char_offline_nsd(uint32 account_id, uint32 char_id); int chrif_char_reset_offline(void); int send_users_tochar(void); int chrif_char_online(struct map_session_data *sd); int chrif_changesex(struct map_session_data *sd); int chrif_chardisconnect(struct map_session_data *sd); -int chrif_divorce(int partner_id1, int partner_id2); +int chrif_divorce(uint32 partner_id1, uint32 partner_id2); -int chrif_removefriend(int char_id, int friend_id); +int chrif_removefriend(uint32 char_id, uint32 friend_id); void chrif_send_report(char *buf, int len); int do_final_chrif(void); Index: src/map/clif.c --- src/map/clif.c Base (BASE) +++ src/map/clif.c Locally Modified (Based On LOCAL) @@ -1209,7 +1209,7 @@ /// 01b0 .L .B .L /// type: /// unused -void clif_class_change(struct block_list *bl,int class_,int type) +void clif_class_change(struct block_list *bl,short class_,int type) { unsigned char buf[16]; @@ -1257,7 +1257,7 @@ *------------------------------------------*/ static void clif_weather_check(struct map_session_data *sd) { - int m = sd->bl.m, fd = sd->fd; + short m = sd->bl.m, fd = sd->fd; if (map[m].flag.snow || map[m].flag.clouds @@ -1297,7 +1297,7 @@ /** * Run when the weather on a map changes, throws all players in map id 'm' to clif_weather_check function **/ -void clif_weather(int m) +void clif_weather(short m) { struct s_mapiterator *iter; struct map_session_data *sd=NULL; @@ -1509,24 +1509,24 @@ return 0; } -void clif_homskillup(struct map_session_data *sd, int skill_num) +void clif_homskillup(struct map_session_data *sd, uint16 skill_id) { //[orn] struct homun_data *hd; - int fd, skillid; + int fd, skill_idx; nullpo_retv(sd); - skillid = skill_num - HM_SKILLBASE; + skill_idx = skill_id - HM_SKILLBASE; fd=sd->fd; hd=sd->hd; WFIFOHEAD(fd, packet_len(0x239)); WFIFOW(fd,0) = 0x239; - WFIFOW(fd,2) = skill_num; - WFIFOW(fd,4) = hd->homunculus.hskill[skillid].lv; - WFIFOW(fd,6) = skill_get_sp(skill_num,hd->homunculus.hskill[skillid].lv); - WFIFOW(fd,8) = skill_get_range2(&hd->bl, skill_num,hd->homunculus.hskill[skillid].lv); - WFIFOB(fd,10) = (hd->homunculus.hskill[skillid].lv < skill_get_max(hd->homunculus.hskill[skillid].id)) ? 1 : 0; + WFIFOW(fd,2) = skill_id; + WFIFOW(fd,4) = hd->homunculus.hskill[skill_idx].lv; + WFIFOW(fd,6) = skill_get_sp(skill_id,hd->homunculus.hskill[skill_idx].lv); + WFIFOW(fd,8) = skill_get_range2(&hd->bl, skill_id,hd->homunculus.hskill[skill_idx].lv); + WFIFOB(fd,10) = (hd->homunculus.hskill[skill_idx].lv < skill_get_max(hd->homunculus.hskill[skill_idx].id)) ? 1 : 0; WFIFOSET(fd,packet_len(0x239)); } @@ -4283,7 +4283,7 @@ /// Inform client(s) about a map-cell change (ZC_UPDATE_MAPINFO). /// 0192 .W .W .W .16B -void clif_changemapcell(int fd, int m, int x, int y, int type, enum send_target target) +void clif_changemapcell(int fd, short m, short x, short y, int type, enum send_target target) { unsigned char buf[32]; @@ -4646,7 +4646,7 @@ /// Updates a skill in the skill tree (ZC_SKILLINFO_UPDATE). /// 010e .W .W .W .W .B -void clif_skillup(struct map_session_data *sd,int skill_num) +void clif_skillup(struct map_session_data *sd, uint16 skill_id) { int fd; @@ -4655,11 +4655,11 @@ fd=sd->fd; WFIFOHEAD(fd,packet_len(0x10e)); WFIFOW(fd,0) = 0x10e; - WFIFOW(fd,2) = skill_num; - WFIFOW(fd,4) = sd->status.skill[skill_num].lv; - WFIFOW(fd,6) = skill_get_sp(skill_num,sd->status.skill[skill_num].lv); - WFIFOW(fd,8) = skill_get_range2(&sd->bl,skill_num,sd->status.skill[skill_num].lv); - WFIFOB(fd,10) = (sd->status.skill[skill_num].lv < skill_tree_get_max(sd->status.skill[skill_num].id, sd->status.class_)) ? 1 : 0; + WFIFOW(fd,2) = skill_id; + WFIFOW(fd,4) = sd->status.skill[skill_id].lv; + WFIFOW(fd,6) = skill_get_sp(skill_id,sd->status.skill[skill_id].lv); + WFIFOW(fd,8) = skill_get_range2(&sd->bl,skill_id,sd->status.skill[skill_id].lv); + WFIFOB(fd,10) = (sd->status.skill[skill_id].lv < skill_tree_get_max(sd->status.skill[skill_id].id, sd->status.class_)) ? 1 : 0; WFIFOSET(fd,packet_len(0x10e)); } @@ -4700,7 +4700,7 @@ /// is disposable: /// 0 = yellow chat text "[src name] will use skill [skill name]." /// 1 = no text -void clif_skillcasting(struct block_list *bl, int src_id, int dst_id, int dst_x, int dst_y, int skill_num, int property, int casttime) +void clif_skillcasting(struct block_list *bl, int src_id, int dst_id, int dst_x, int dst_y, uint16 skill_id, int property, int casttime) { #if PACKETVER < 20091124 const int cmd = 0x13e; @@ -4714,7 +4714,7 @@ WBUFL(buf,6) = dst_id; WBUFW(buf,10) = dst_x; WBUFW(buf,12) = dst_y; - WBUFW(buf,14) = skill_num; + WBUFW(buf,14) = skill_id; WBUFL(buf,16) = property<0?0:property; //Avoid sending negatives as element [Skotlex] WBUFL(buf,20) = casttime; #if PACKETVER >= 20091124 @@ -4767,7 +4767,7 @@ /// if(result!=0) doesn't display any of the previous messages /// Note: when this packet is received an unknown flag is always set to 0, /// suggesting this is an ACK packet for the UseSkill packets and should be sent on success too [FlavioJS] -void clif_skill_fail(struct map_session_data *sd,int skill_id,enum useskill_fail_cause cause,int btype) +void clif_skill_fail(struct map_session_data *sd,uint16 skill_id,enum useskill_fail_cause cause,int btype) { int fd; @@ -4803,7 +4803,7 @@ /// Skill cooldown display icon (ZC_SKILL_POSTDELAY). /// 043d .W .L -void clif_skill_cooldown(struct map_session_data *sd, int skillid, unsigned int tick) +void clif_skill_cooldown(struct map_session_data *sd, uint16 skill_id, unsigned int tick) { #if PACKETVER>=20081112 int fd; @@ -4813,7 +4813,7 @@ fd=sd->fd; WFIFOHEAD(fd,packet_len(0x43d)); WFIFOW(fd,0) = 0x43d; - WFIFOW(fd,2) = skillid; + WFIFOW(fd,2) = skill_id; WFIFOL(fd,4) = tick; WFIFOSET(fd,packet_len(0x43d)); #endif @@ -4823,7 +4823,7 @@ /// Skill attack effect and damage. /// 0114 .W .L .L .L .L .L .W .W
.W .B (ZC_NOTIFY_SKILL) /// 01de .W .L .L .L .L .L .L .W
.W .B (ZC_NOTIFY_SKILL2) -int clif_skill_damage(struct block_list *src,struct block_list *dst,unsigned int tick,int sdelay,int ddelay,int damage,int div,int skill_id,int skill_lv,int type) +int clif_skill_damage(struct block_list *src,struct block_list *dst,unsigned int tick,int sdelay,int ddelay,int damage,int div,uint16 skill_id,uint16 skill_lv,int type) { unsigned char buf[64]; struct status_change *sc; @@ -4910,7 +4910,7 @@ /// Ground skill attack effect and damage (ZC_NOTIFY_SKILL_POSITION). /// 0115 .W .L .L .L .L .L .W .W .W .W
.W .B /* -int clif_skill_damage2(struct block_list *src,struct block_list *dst,unsigned int tick,int sdelay,int ddelay,int damage,int div,int skill_id,int skill_lv,int type) +int clif_skill_damage2(struct block_list *src,struct block_list *dst,unsigned int tick,int sdelay,int ddelay,int damage,int div,uint16 skill_id,uint16 skill_lv,int type) { unsigned char buf[64]; struct status_change *sc; @@ -4968,7 +4968,7 @@ /// Non-damaging skill effect (ZC_USE_SKILL). /// 011a .W .W .L .L .B -int clif_skill_nodamage(struct block_list *src,struct block_list *dst,int skill_id,int heal,int fail) +int clif_skill_nodamage(struct block_list *src,struct block_list *dst,uint16 skill_id,int heal,int fail) { unsigned char buf[32]; @@ -5001,7 +5001,7 @@ /// Non-damaging ground skill effect (ZC_NOTIFY_GROUNDSKILL). /// 0117 .W .L .W .W .W .L -void clif_skill_poseffect(struct block_list *src,int skill_id,int val,int x,int y,int tick) +void clif_skill_poseffect(struct block_list *src,uint16 skill_id,int val,short x,short y,int tick) { unsigned char buf[32]; @@ -5069,7 +5069,7 @@ /// Presents a list of available warp destinations (ZC_WARPLIST). /// 011c .W { .16B }*4 -void clif_skill_warppoint(struct map_session_data *sd, short skill_num, short skill_lv, unsigned short map1, unsigned short map2, unsigned short map3, unsigned short map4) +void clif_skill_warppoint(struct map_session_data *sd, uint16 skill_id, uint16 skill_lv, unsigned short map1, unsigned short map2, unsigned short map3, unsigned short map4) { int fd; nullpo_retv(sd); @@ -5077,7 +5077,7 @@ WFIFOHEAD(fd,packet_len(0x11c)); WFIFOW(fd,0) = 0x11c; - WFIFOW(fd,2) = skill_num; + WFIFOW(fd,2) = skill_id; memset(WFIFOP(fd,4), 0x00, 4*MAP_NAME_LENGTH_EXT); if (map1 == (unsigned short)-1) strcpy((char *)WFIFOP(fd,4), "Random"); else // normal map name @@ -5087,8 +5087,8 @@ if (map4 > 0) mapindex_getmapname_ext(mapindex_id2name(map4), (char *)WFIFOP(fd,52)); WFIFOSET(fd,packet_len(0x11c)); - sd->menuskill_id = skill_num; - if (skill_num == AL_WARP) + sd->menuskill_id = skill_id; + if (skill_id == AL_WARP) sd->menuskill_val = (sd->ud.skillx<<16)|sd->ud.skilly; //Store warp position here. else sd->menuskill_val = skill_lv; @@ -5181,15 +5181,15 @@ /// 018d .W { .W { .W }*3 }* /// material id: /// unused by the client -void clif_skill_produce_mix_list(struct map_session_data *sd, int skillid , int trigger) +void clif_skill_produce_mix_list(struct map_session_data *sd, uint16 skill_id , int trigger) { int i,c,view,fd; nullpo_retv(sd); - if (sd->menuskill_id == skillid) + if (sd->menuskill_id == skill_id) return; //Avoid resending the menu twice or more times... - if (skillid == GC_CREATENEWPOISON) - skillid = GC_RESEARCHNEWPOISON; + if (skill_id == GC_CREATENEWPOISON) + skill_id = GC_RESEARCHNEWPOISON; fd=sd->fd; WFIFOHEAD(fd, MAX_SKILL_PRODUCE_DB * 8 + 8); @@ -5197,7 +5197,7 @@ for (i=0,c=0; i 0 && skill_produce_db[i].req_skill == skillid) || skillid < 0) + ((skill_id > 0 && skill_produce_db[i].req_skill == skill_id) || skill_id < 0) ) { if ((view = itemdb_viewid(skill_produce_db[i].nameid)) > 0) WFIFOW(fd,c*8+ 4)= view; @@ -5212,7 +5212,7 @@ WFIFOW(fd, 2)=c*8+8; WFIFOSET(fd,WFIFOW(fd,2)); if (c > 0) { - sd->menuskill_id = skillid; + sd->menuskill_id = skill_id; sd->menuskill_val = trigger; return; } @@ -5228,7 +5228,7 @@ /// 4 = GN_MIX_COOKING /// 5 = GN_MAKEBOMB /// 6 = GN_S_PHARMACY -void clif_cooking_list(struct map_session_data *sd, int trigger, int skill_id, int qty, int list_type) +void clif_cooking_list(struct map_session_data *sd, int trigger, uint16 skill_id, int qty, int list_type) { int fd; int i, c; @@ -5795,7 +5795,7 @@ sd->menuskill_val = dstsd->bl.id; sd->menuskill_val2 = lv; } else - clif_skill_fail(sd,sd->ud.skillid,USESKILL_FAIL_LEVEL,0); + clif_skill_fail(sd,sd->ud.skill_id,USESKILL_FAIL_LEVEL,0); } @@ -5843,13 +5843,13 @@ { int i,c; int fd; - int skilllv; + uint16 skill_lv; int wlv; int refine_item[5]; nullpo_retv(sd); - skilllv = pc_checkskill(sd,WS_WEAPONREFINE); + skill_lv = pc_checkskill(sd,WS_WEAPONREFINE); fd=sd->fd; @@ -5861,7 +5861,7 @@ WFIFOHEAD(fd, MAX_INVENTORY * 13 + 4); WFIFOW(fd,0)=0x221; for (i=c=0; istatus.inventory[i].nameid > 0 && sd->status.inventory[i].refine < skilllv && + if (sd->status.inventory[i].nameid > 0 && sd->status.inventory[i].refine < skill_lv && sd->status.inventory[i].identify && (wlv=itemdb_wlv(sd->status.inventory[i].nameid)) >=1 && refine_item[wlv]!=-1 && !(sd->status.inventory[i].equip&EQP_ARMS)) { WFIFOW(fd,c*13+ 4)=i+2; @@ -5875,14 +5875,14 @@ WFIFOSET(fd,WFIFOW(fd,2)); if (c > 0) { sd->menuskill_id = WS_WEAPONREFINE; - sd->menuskill_val = skilllv; + sd->menuskill_val = skill_lv; } } /// Notification of an auto-casted skill (ZC_AUTORUN_SKILL). /// 0147 .W .L .W .W .W .24B .B -void clif_item_skill(struct map_session_data *sd,int skillid,int skilllv) +void clif_item_skill(struct map_session_data *sd, uint16 skill_id, uint16 skill_lv) { int fd; @@ -5891,13 +5891,13 @@ fd=sd->fd; WFIFOHEAD(fd,packet_len(0x147)); WFIFOW(fd, 0)=0x147; - WFIFOW(fd, 2)=skillid; - WFIFOW(fd, 4)=skill_get_inf(skillid); + WFIFOW(fd, 2)=skill_id; + WFIFOW(fd, 4)=skill_get_inf(skill_id); WFIFOW(fd, 6)=0; - WFIFOW(fd, 8)=skilllv; - WFIFOW(fd,10)=skill_get_sp(skillid,skilllv); - WFIFOW(fd,12)=skill_get_range2(&sd->bl, skillid,skilllv); - safestrncpy((char *)WFIFOP(fd,14),skill_get_name(skillid),NAME_LENGTH); + WFIFOW(fd, 8)=skill_lv; + WFIFOW(fd,10)=skill_get_sp(skill_id,skill_lv); + WFIFOW(fd,12)=skill_get_range2(&sd->bl, skill_id,skill_lv); + safestrncpy((char *)WFIFOP(fd,14),skill_get_name(skill_id),NAME_LENGTH); WFIFOB(fd,38)=0; WFIFOSET(fd,packet_len(0x147)); } @@ -6390,7 +6390,7 @@ /// 1 = expel /// 2 = cannot leave party on this map /// 3 = cannot expel from party on this map -void clif_party_withdraw(struct party_data *p, struct map_session_data *sd, int account_id, const char *name, int flag) +void clif_party_withdraw(struct party_data *p, struct map_session_data *sd, uint32 account_id, const char *name, int flag) { unsigned char buf[64]; int i; @@ -6418,7 +6418,7 @@ /// Party chat message (ZC_NOTIFY_CHAT_PARTY). /// 0109 .W .L .?B -void clif_party_message(struct party_data *p, int account_id, const char *mes, int len) +void clif_party_message(struct party_data *p, uint32 account_id, const char *mes, int len) { struct map_session_data *sd; int i; @@ -6753,7 +6753,7 @@ /// Presents a list of skills that can be auto-spelled (ZC_AUTOSPELLLIST). /// 01cd { .L }*7 -void clif_autospell(struct map_session_data *sd,int skilllv) +void clif_autospell(struct map_session_data *sd, uint16 skill_lv) { int fd; @@ -6763,38 +6763,38 @@ WFIFOHEAD(fd,packet_len(0x1cd)); WFIFOW(fd, 0)=0x1cd; - if (skilllv>0 && pc_checkskill(sd,MG_NAPALMBEAT)>0) + if (skill_lv>0 && pc_checkskill(sd,MG_NAPALMBEAT)>0) WFIFOL(fd,2)= MG_NAPALMBEAT; else WFIFOL(fd,2)= 0x00000000; - if (skilllv>1 && pc_checkskill(sd,MG_COLDBOLT)>0) + if (skill_lv>1 && pc_checkskill(sd,MG_COLDBOLT)>0) WFIFOL(fd,6)= MG_COLDBOLT; else WFIFOL(fd,6)= 0x00000000; - if (skilllv>1 && pc_checkskill(sd,MG_FIREBOLT)>0) + if (skill_lv>1 && pc_checkskill(sd,MG_FIREBOLT)>0) WFIFOL(fd,10)= MG_FIREBOLT; else WFIFOL(fd,10)= 0x00000000; - if (skilllv>1 && pc_checkskill(sd,MG_LIGHTNINGBOLT)>0) + if (skill_lv>1 && pc_checkskill(sd,MG_LIGHTNINGBOLT)>0) WFIFOL(fd,14)= MG_LIGHTNINGBOLT; else WFIFOL(fd,14)= 0x00000000; - if (skilllv>4 && pc_checkskill(sd,MG_SOULSTRIKE)>0) + if (skill_lv>4 && pc_checkskill(sd,MG_SOULSTRIKE)>0) WFIFOL(fd,18)= MG_SOULSTRIKE; else WFIFOL(fd,18)= 0x00000000; - if (skilllv>7 && pc_checkskill(sd,MG_FIREBALL)>0) + if (skill_lv>7 && pc_checkskill(sd,MG_FIREBALL)>0) WFIFOL(fd,22)= MG_FIREBALL; else WFIFOL(fd,22)= 0x00000000; - if (skilllv>9 && pc_checkskill(sd,MG_FROSTDIVER)>0) + if (skill_lv>9 && pc_checkskill(sd,MG_FROSTDIVER)>0) WFIFOL(fd,26)= MG_FROSTDIVER; else WFIFOL(fd,26)= 0x00000000; WFIFOSET(fd,packet_len(0x1cd)); sd->menuskill_id = SA_AUTOSPELL; - sd->menuskill_val = skilllv; + sd->menuskill_val = skill_lv; } @@ -7475,7 +7475,7 @@ /// Notifies clients of a guild of an expelled member. /// 015c .24B .40B .24B (ZC_ACK_BAN_GUILD) /// 0839 .24B .40B (ZC_ACK_BAN_GUILD_SSO) -void clif_guild_expulsion(struct map_session_data *sd, const char *name, const char *mes, int account_id) +void clif_guild_expulsion(struct map_session_data *sd, const char *name, const char *mes, uint32 account_id) { unsigned char buf[128]; #if PACKETVER < 20100803 @@ -7540,7 +7540,7 @@ /// Guild chat message (ZC_GUILD_CHAT). /// 017f .W .?B -void clif_guild_message(struct guild *g,int account_id,const char *mes,int len) +void clif_guild_message(struct guild *g,uint32 account_id,const char *mes,int len) { // TODO: account_id is not used, candidate for deletion? [Ai4rei] struct map_session_data *sd; @@ -7563,9 +7563,9 @@ /*========================================== - * Server tells client 'sd' that his guild skill 'skill_num' gone to level 'lv' + * Server tells client 'sd' that his guild skill 'skillid' gone to level 'lv' *------------------------------------------*/ -int clif_guild_skillup(struct map_session_data *sd,int skill_num,int lv) +int clif_guild_skillup(struct map_session_data *sd, uint16 skill_id,int lv) { // TODO: Merge with clif_skillup (same packet). int fd; @@ -7575,10 +7575,10 @@ fd=sd->fd; WFIFOHEAD(fd,11); WFIFOW(fd,0) = 0x10e; - WFIFOW(fd,2) = skill_num; + WFIFOW(fd,2) = skill_id; WFIFOW(fd,4) = lv; - WFIFOW(fd,6) = skill_get_sp(skill_num,lv); - WFIFOW(fd,8) = skill_get_range(skill_num,lv); + WFIFOW(fd,6) = skill_get_sp(skill_id,lv); + WFIFOW(fd,8) = skill_get_range(skill_id,lv); WFIFOB(fd,10) = 1; WFIFOSET(fd,11); return 0; @@ -7587,7 +7587,7 @@ /// Request for guild alliance (ZC_REQ_ALLY_GUILD). /// 0171 .L .24B -void clif_guild_reqalliance(struct map_session_data *sd,int account_id,const char *name) +void clif_guild_reqalliance(struct map_session_data *sd,uint32 account_id,const char *name) { int fd; @@ -7630,7 +7630,7 @@ /// relation: /// 0 = Ally /// 1 = Enemy -void clif_guild_delalliance(struct map_session_data *sd,int guild_id,int flag) +void clif_guild_delalliance(struct map_session_data *sd,uint32 guild_id,int flag) { int fd; @@ -8538,7 +8538,7 @@ * Info about Star Glaldiator hate mob [Komurka] * type: 1: Register mob, 0: Information. *------------------------------------------*/ -void clif_hate_info(struct map_session_data *sd, unsigned char hate_level,int class_, unsigned char type) +void clif_hate_info(struct map_session_data *sd, unsigned char hate_level,short class_, unsigned char type) { if (pcdb_checkid(class_)) { clif_starskill(sd, job_name(class_), class_, hate_level, type ? 10 : 11); @@ -8709,7 +8709,7 @@ /// /// NOTE: Message has following format and is printed in color 0xCDCDFF (purple): /// "[SkillName] Message" -void clif_msg_skill(struct map_session_data *sd, unsigned short skill_id, int msg_id) +void clif_msg_skill(struct map_session_data *sd, uint16 skill_id, int msg_id) { int fd = sd->fd; @@ -8909,7 +8909,9 @@ { struct block_list *bl; struct auth_node *node; - int cmd, account_id, char_id, login_id1, sex; + int cmd; + uint32 account_id, char_id, login_id1; + uint8 sex; unsigned int client_tick; //The client tick is a tick, therefore it needs be unsigned. [Skotlex] int packet_ver; // 5: old, 6: 7july04, 7: 13july04, 8: 26july04, 9: 9aug04/16aug04/17aug04, 10: 6sept04, 11: 21sept04, 12: 18oct04, 13: 25oct04 (by [Yor]) @@ -10551,92 +10553,92 @@ pc_skillup(sd,RFIFOW(fd,2)); } -static void clif_parse_UseSkillToId_homun(struct homun_data *hd, struct map_session_data *sd, unsigned int tick, short skillnum, short skilllv, int target_id) +static void clif_parse_UseSkillToId_homun(struct homun_data *hd, struct map_session_data *sd, unsigned int tick, uint16 skill_id, uint16 skill_lv, int target_id) { int lv; if (!hd) return; - if (skillnotok_hom(skillnum, hd)) + if (skillnotok_hom(skill_id, hd)) return; - if (hd->bl.id != target_id && skill_get_inf(skillnum)&INF_SELF_SKILL) + if (hd->bl.id != target_id && skill_get_inf(skill_id)&INF_SELF_SKILL) target_id = hd->bl.id; if (hd->ud.skilltimer != INVALID_TIMER) { - if (skillnum != SA_CASTCANCEL && skillnum != SO_SPELLFIST) return; + if (skill_id != SA_CASTCANCEL && skill_id != SO_SPELLFIST) return; } else if (DIFF_TICK(tick, hd->ud.canact_tick) < 0) return; - lv = merc_hom_checkskill(hd, skillnum); - if (skilllv > lv) - skilllv = lv; - if (skilllv) - unit_skilluse_id(&hd->bl, target_id, skillnum, skilllv); + lv = merc_hom_checkskill(hd, skill_id); + if (skill_lv > lv) + skill_lv = lv; + if (skill_lv) + unit_skilluse_id(&hd->bl, target_id, skill_id, skill_lv); } -static void clif_parse_UseSkillToPos_homun(struct homun_data *hd, struct map_session_data *sd, unsigned int tick, short skillnum, short skilllv, short x, short y, int skillmoreinfo) +static void clif_parse_UseSkillToPos_homun(struct homun_data *hd, struct map_session_data *sd, unsigned int tick, uint16 skill_id, uint16 skill_lv, short x, short y, int skillmoreinfo) { int lv; if (!hd) return; - if (skillnotok_hom(skillnum, hd)) + if (skillnotok_hom(skill_id, hd)) return; if (hd->ud.skilltimer != INVALID_TIMER) { - if (skillnum != SA_CASTCANCEL && skillnum != SO_SPELLFIST) return; + if (skill_id != SA_CASTCANCEL && skill_id != SO_SPELLFIST) return; } else if (DIFF_TICK(tick, hd->ud.canact_tick) < 0) return; if (hd->sc.data[SC_BASILICA]) return; - lv = merc_hom_checkskill(hd, skillnum); - if (skilllv > lv) - skilllv = lv; - if (skilllv) - unit_skilluse_pos(&hd->bl, x, y, skillnum, skilllv); + lv = merc_hom_checkskill(hd, skill_id); + if (skill_lv > lv) + skill_lv = lv; + if (skill_lv) + unit_skilluse_pos(&hd->bl, x, y, skill_id, skill_lv); } -static void clif_parse_UseSkillToId_mercenary(struct mercenary_data *md, struct map_session_data *sd, unsigned int tick, short skillnum, short skilllv, int target_id) +static void clif_parse_UseSkillToId_mercenary(struct mercenary_data *md, struct map_session_data *sd, unsigned int tick, uint16 skill_id, uint16 skill_lv, int target_id) { int lv; if (!md) return; - if (skillnotok_mercenary(skillnum, md)) + if (skillnotok_mercenary(skill_id, md)) return; - if (md->bl.id != target_id && skill_get_inf(skillnum)&INF_SELF_SKILL) + if (md->bl.id != target_id && skill_get_inf(skill_id)&INF_SELF_SKILL) target_id = md->bl.id; if (md->ud.skilltimer != INVALID_TIMER) { - if (skillnum != SA_CASTCANCEL && skillnum != SO_SPELLFIST) return; + if (skill_id != SA_CASTCANCEL && skill_id != SO_SPELLFIST) return; } else if (DIFF_TICK(tick, md->ud.canact_tick) < 0) return; - lv = mercenary_checkskill(md, skillnum); - if (skilllv > lv) - skilllv = lv; - if (skilllv) - unit_skilluse_id(&md->bl, target_id, skillnum, skilllv); + lv = mercenary_checkskill(md, skill_id); + if (skill_lv > lv) + skill_lv = lv; + if (skill_lv) + unit_skilluse_id(&md->bl, target_id, skill_id, skill_lv); } -static void clif_parse_UseSkillToPos_mercenary(struct mercenary_data *md, struct map_session_data *sd, unsigned int tick, short skillnum, short skilllv, short x, short y, int skillmoreinfo) +static void clif_parse_UseSkillToPos_mercenary(struct mercenary_data *md, struct map_session_data *sd, unsigned int tick, uint16 skill_id, uint16 skill_lv, short x, short y, int skillmoreinfo) { int lv; if (!md) return; - if (skillnotok_mercenary(skillnum, md)) + if (skillnotok_mercenary(skill_id, md)) return; if (md->ud.skilltimer != INVALID_TIMER) return; if (DIFF_TICK(tick, md->ud.canact_tick) < 0) { - clif_skill_fail(md->master, skillnum, USESKILL_FAIL_SKILLINTERVAL, 0); + clif_skill_fail(md->master, skill_id, USESKILL_FAIL_SKILLINTERVAL, 0); return; } if (md->sc.data[SC_BASILICA]) return; - lv = mercenary_checkskill(md, skillnum); - if (skilllv > lv) - skilllv = lv; - if (skilllv) - unit_skilluse_pos(&md->bl, x, y, skillnum, skilllv); + lv = mercenary_checkskill(md, skill_id); + if (skill_lv > lv) + skill_lv = lv; + if (skill_lv) + unit_skilluse_pos(&md->bl, x, y, skill_id, skill_lv); } @@ -10646,39 +10648,39 @@ /// There are various variants of this packet, some of them have padding between fields. void clif_parse_UseSkillToId(int fd, struct map_session_data *sd) { - short skillnum, skilllv; + uint16 skill_id, skill_lv; int tmp, target_id; unsigned int tick = gettick(); - skilllv = RFIFOW(fd,packet_db[sd->packet_ver][RFIFOW(fd,0)].pos[0]); - skillnum = RFIFOW(fd,packet_db[sd->packet_ver][RFIFOW(fd,0)].pos[1]); + skill_lv = RFIFOW(fd,packet_db[sd->packet_ver][RFIFOW(fd,0)].pos[0]); + skill_id = RFIFOW(fd,packet_db[sd->packet_ver][RFIFOW(fd,0)].pos[1]); target_id = RFIFOL(fd,packet_db[sd->packet_ver][RFIFOW(fd,0)].pos[2]); - if (skilllv < 1) skilllv = 1; //No clue, I have seen the client do this with guild skills :/ [Skotlex] + if (skill_lv < 1) skill_lv = 1; //No clue, I have seen the client do this with guild skills :/ [Skotlex] - tmp = skill_get_inf(skillnum); + tmp = skill_get_inf(skill_id); if (tmp&INF_GROUND_SKILL || !tmp) return; //Using a ground/passive skill on a target? WRONG. - if (skillnum >= HM_SKILLBASE && skillnum < HM_SKILLBASE + MAX_HOMUNSKILL) { - clif_parse_UseSkillToId_homun(sd->hd, sd, tick, skillnum, skilllv, target_id); + if (skill_id >= HM_SKILLBASE && skill_id < HM_SKILLBASE + MAX_HOMUNSKILL) { + clif_parse_UseSkillToId_homun(sd->hd, sd, tick, skill_id, skill_lv, target_id); return; } - if (skillnum >= MC_SKILLBASE && skillnum < MC_SKILLBASE + MAX_MERCSKILL) { - clif_parse_UseSkillToId_mercenary(sd->md, sd, tick, skillnum, skilllv, target_id); + if (skill_id >= MC_SKILLBASE && skill_id < MC_SKILLBASE + MAX_MERCSKILL) { + clif_parse_UseSkillToId_mercenary(sd->md, sd, tick, skill_id, skill_lv, target_id); return; } // Whether skill fails or not is irrelevant, the char ain't idle. [Skotlex] sd->idletime = last_tick; - if( pc_cant_act(sd) && skillnum != RK_REFRESH && !(skillnum == SR_GENTLETOUCH_CURE && (sd->sc.opt1 == OPT1_STONE || sd->sc.opt1 == OPT1_FREEZE || sd->sc.opt1 == OPT1_STUN)) ) + if( pc_cant_act(sd) && skill_id != RK_REFRESH && !(skill_id == SR_GENTLETOUCH_CURE && (sd->sc.opt1 == OPT1_STONE || sd->sc.opt1 == OPT1_FREEZE || sd->sc.opt1 == OPT1_STUN)) ) return; if (pc_issit(sd)) return; - if (skillnotok(skillnum, sd)) + if (skillnotok(skill_id, sd)) return; if (sd->bl.id != target_id && tmp&INF_SELF_SKILL) @@ -10688,11 +10690,11 @@ target_id = sd->bl.id; if (sd->ud.skilltimer != INVALID_TIMER) { - if (skillnum != SA_CASTCANCEL && skillnum != SO_SPELLFIST) + if (skill_id != SA_CASTCANCEL && skill_id != SO_SPELLFIST) return; } else if (DIFF_TICK(tick, sd->ud.canact_tick) < 0) { - if (sd->skillitem != skillnum) { - clif_skill_fail(sd, skillnum, USESKILL_FAIL_SKILLINTERVAL, 0); + if (sd->skillitem != skill_id) { + clif_skill_fail(sd, skill_id, USESKILL_FAIL_SKILLINTERVAL, 0); return; } } @@ -10700,7 +10702,7 @@ if (sd->sc.option&(OPTION_WEDDING|OPTION_XMAS|OPTION_SUMMER)) return; - if (sd->sc.data[SC_BASILICA] && (skillnum != HP_BASILICA || sd->sc.data[SC_BASILICA]->val4 != sd->bl.id)) + if (sd->sc.data[SC_BASILICA] && (skill_id != HP_BASILICA || sd->sc.data[SC_BASILICA]->val4 != sd->bl.id)) return; // On basilica only caster can use Basilica again to stop it. if (sd->menuskill_id) { @@ -10709,62 +10711,62 @@ } else if (sd->menuskill_id != SA_AUTOSPELL) return; //Can't use skills while a menu is open. } - if (sd->skillitem == skillnum) { - if (skilllv != sd->skillitemlv) - skilllv = sd->skillitemlv; + if (sd->skillitem == skill_id) { + if (skill_lv != sd->skillitemlv) + skill_lv = sd->skillitemlv; if (!(tmp&INF_SELF_SKILL)) pc_delinvincibletimer(sd); // Target skills thru items cancel invincibility. [Inkfish] - unit_skilluse_id(&sd->bl, target_id, skillnum, skilllv); + unit_skilluse_id(&sd->bl, target_id, skill_id, skill_lv); return; } sd->skillitem = sd->skillitemlv = 0; - if (skillnum >= GD_SKILLBASE) { + if (skill_id >= GD_SKILLBASE) { if (sd->state.gmaster_flag) - skilllv = guild_checkskill(sd->state.gmaster_flag, skillnum); + skill_lv = guild_checkskill(sd->state.gmaster_flag, skill_id); else - skilllv = 0; + skill_lv = 0; } else { - tmp = pc_checkskill(sd, skillnum); - if (skilllv > tmp) - skilllv = tmp; + tmp = pc_checkskill(sd, skill_id); + if (skill_lv > tmp) + skill_lv = tmp; } pc_delinvincibletimer(sd); - if (skilllv) - unit_skilluse_id(&sd->bl, target_id, skillnum, skilllv); + if (skill_lv) + unit_skilluse_id(&sd->bl, target_id, skill_id, skill_lv); } /*========================================== - * Client tells server he'd like to use AoE skill id 'skillnum' of level 'skilllv' on 'x','y' location + * Client tells server he'd like to use AoE skill id 'skillid' of level 'skill_lv' on 'x','y' location *------------------------------------------*/ -static void clif_parse_UseSkillToPosSub(int fd, struct map_session_data *sd, short skilllv, short skillnum, short x, short y, int skillmoreinfo) +static void clif_parse_UseSkillToPosSub(int fd, struct map_session_data *sd, uint16 skill_lv, uint16 skill_id, short x, short y, int skillmoreinfo) { unsigned int tick = gettick(); - if (!(skill_get_inf(skillnum)&INF_GROUND_SKILL)) + if (!(skill_get_inf(skill_id)&INF_GROUND_SKILL)) return; //Using a target skill on the ground? WRONG. - if (skillnum >= HM_SKILLBASE && skillnum < HM_SKILLBASE + MAX_HOMUNSKILL) { - clif_parse_UseSkillToPos_homun(sd->hd, sd, tick, skillnum, skilllv, x, y, skillmoreinfo); + if (skill_id >= HM_SKILLBASE && skill_id < HM_SKILLBASE + MAX_HOMUNSKILL) { + clif_parse_UseSkillToPos_homun(sd->hd, sd, tick, skill_id, skill_lv, x, y, skillmoreinfo); return; } - if (skillnum >= MC_SKILLBASE && skillnum < MC_SKILLBASE + MAX_MERCSKILL) { - clif_parse_UseSkillToPos_mercenary(sd->md, sd, tick, skillnum, skilllv, x, y, skillmoreinfo); + if (skill_id >= MC_SKILLBASE && skill_id < MC_SKILLBASE + MAX_MERCSKILL) { + clif_parse_UseSkillToPos_mercenary(sd->md, sd, tick, skill_id, skill_lv, x, y, skillmoreinfo); return; } //Whether skill fails or not is irrelevant, the char ain't idle. [Skotlex] sd->idletime = last_tick; - if (skillnotok(skillnum, sd)) + if (skillnotok(skill_id, sd)) return; if (skillmoreinfo != -1) { if (pc_issit(sd)) { - clif_skill_fail(sd, skillnum, USESKILL_FAIL_LEVEL, 0); + clif_skill_fail(sd, skill_id, USESKILL_FAIL_LEVEL, 0); return; } //You can't use Graffiti/TalkieBox AND have a vending open, so this is safe. @@ -10775,8 +10777,8 @@ return; if (DIFF_TICK(tick, sd->ud.canact_tick) < 0) { - if (sd->skillitem != skillnum) { - clif_skill_fail(sd, skillnum, USESKILL_FAIL_SKILLINTERVAL, 0); + if (sd->skillitem != skill_id) { + clif_skill_fail(sd, skill_id, USESKILL_FAIL_SKILLINTERVAL, 0); return; } } @@ -10784,7 +10786,7 @@ if (sd->sc.option&(OPTION_WEDDING|OPTION_XMAS|OPTION_SUMMER)) return; - if (sd->sc.data[SC_BASILICA] && (skillnum != HP_BASILICA || sd->sc.data[SC_BASILICA]->val4 != sd->bl.id)) + if (sd->sc.data[SC_BASILICA] && (skill_id != HP_BASILICA || sd->sc.data[SC_BASILICA]->val4 != sd->bl.id)) return; // On basilica only caster can use Basilica again to stop it. if (sd->menuskill_id) { @@ -10796,17 +10798,17 @@ pc_delinvincibletimer(sd); - if (sd->skillitem == skillnum) { - if (skilllv != sd->skillitemlv) - skilllv = sd->skillitemlv; - unit_skilluse_pos(&sd->bl, x, y, skillnum, skilllv); + if (sd->skillitem == skill_id) { + if (skill_lv != sd->skillitemlv) + skill_lv = sd->skillitemlv; + unit_skilluse_pos(&sd->bl, x, y, skill_id, skill_lv); } else { int lv; sd->skillitem = sd->skillitemlv = 0; - if ((lv = pc_checkskill(sd, skillnum)) > 0) { - if (skilllv > lv) - skilllv = lv; - unit_skilluse_pos(&sd->bl, x, y, skillnum,skilllv); + if ((lv = pc_checkskill(sd, skill_id)) > 0) { + if (skill_lv > lv) + skill_lv = lv; + unit_skilluse_pos(&sd->bl, x, y, skill_id,skill_lv); } } } @@ -10858,11 +10860,11 @@ /// 011b .W .16B void clif_parse_UseSkillMap(int fd, struct map_session_data *sd) { - short skill_num = RFIFOW(fd,2); + uint16 skill_id = RFIFOW(fd,2); char map_name[MAP_NAME_LENGTH]; mapindex_getmapname((char *)RFIFOP(fd,4), map_name); - if (skill_num != sd->menuskill_id) + if (skill_id != sd->menuskill_id) return; if (pc_cant_act(sd)) { @@ -10871,7 +10873,7 @@ } pc_delinvincibletimer(sd); - skill_castend_map(sd,skill_num,map_name); + skill_castend_map(sd,skill_id,map_name); } @@ -10899,7 +10901,7 @@ } if (pc_istrading(sd)) { //Make it fail to avoid shop exploits where you sell something different than you see. - clif_skill_fail(sd,sd->ud.skillid,USESKILL_FAIL_LEVEL,0); + clif_skill_fail(sd,sd->ud.skill_id,USESKILL_FAIL_LEVEL,0); clif_menuskill_clear(sd); return; } @@ -10928,7 +10930,7 @@ if (pc_istrading(sd)) { //Make it fail to avoid shop exploits where you sell something different than you see. - clif_skill_fail(sd,sd->ud.skillid,USESKILL_FAIL_LEVEL,0); + clif_skill_fail(sd,sd->ud.skill_id,USESKILL_FAIL_LEVEL,0); clif_menuskill_clear(sd); return; } @@ -10946,7 +10948,7 @@ return; if (pc_istrading(sd)) { //Make it fail to avoid shop exploits where you sell something different than you see. - clif_skill_fail(sd,sd->ud.skillid,USESKILL_FAIL_LEVEL,0); + clif_skill_fail(sd,sd->ud.skill_id,USESKILL_FAIL_LEVEL,0); clif_menuskill_clear(sd); return; } @@ -10965,7 +10967,7 @@ return; if (pc_istrading(sd)) { //Make it fail to avoid shop exploits where you sell something different than you see. - clif_skill_fail(sd,sd->ud.skillid,USESKILL_FAIL_LEVEL,0); + clif_skill_fail(sd,sd->ud.skill_id,USESKILL_FAIL_LEVEL,0); clif_menuskill_clear(sd); return; } @@ -11070,7 +11072,7 @@ { if (pc_istrading(sd)) { //Make it fail to avoid shop exploits where you sell something different than you see. - clif_skill_fail(sd,sd->ud.skillid,USESKILL_FAIL_LEVEL,0); + clif_skill_fail(sd,sd->ud.skill_id,USESKILL_FAIL_LEVEL,0); clif_menuskill_clear(sd); return; } @@ -11879,7 +11881,7 @@ void clif_parse_GuildRequestEmblem(int fd,struct map_session_data *sd) { struct guild *g; - int guild_id = RFIFOL(fd,2); + uint32 guild_id = RFIFOL(fd,2); if ((g = guild_search(guild_id)) != NULL) clif_guild_emblem(sd,g); @@ -11926,7 +11928,7 @@ /// 016e .L .60B .120B void clif_parse_GuildChangeNotice(int fd, struct map_session_data *sd) { - int guild_id = RFIFOL(fd,2); + uint32 guild_id = RFIFOL(fd,2); char *msg1 = (char *)RFIFOP(fd,6); char *msg2 = (char *)RFIFOP(fd,66); @@ -12309,7 +12311,7 @@ /// 0843 .L void clif_parse_GMRemove2(int fd, struct map_session_data *sd) { - int account_id; + uint32 account_id; struct map_session_data *pl_sd; account_id = RFIFOL(fd,packet_db[sd->packet_ver][RFIFOW(fd,0)].pos[0]); @@ -12347,7 +12349,7 @@ /// 0842 .L void clif_parse_GMRecall2(int fd, struct map_session_data *sd) { - int account_id; + uint32 account_id; struct map_session_data *pl_sd; account_id = RFIFOL(fd,packet_db[sd->packet_ver][RFIFOW(fd,0)].pos[0]); @@ -12451,7 +12453,7 @@ /// Result of request to resolve account name (ZC_ACK_ACCOUNTNAME). /// 01e0 .L .24B -void clif_account_name(struct map_session_data *sd, int account_id, const char *accname) +void clif_account_name(struct map_session_data *sd, uint32 account_id, const char *accname) { int fd = sd->fd; @@ -12467,7 +12469,7 @@ /// 01df .L void clif_parse_GMReqAccountName(int fd, struct map_session_data *sd) { - int account_id = RFIFOL(fd,2); + uint32 account_id = RFIFOL(fd,2); //TODO: find out if this works for any player or only for authorized GMs clif_account_name(sd, account_id, ""); // insert account name here >_< @@ -12672,7 +12674,7 @@ /// state: /// 0 = online /// 1 = offline -void clif_friendslist_toggle(struct map_session_data *sd,int account_id, int char_id, int online) +void clif_friendslist_toggle(struct map_session_data *sd,uint32 account_id, uint32 char_id, int online) { int i, fd = sd->fd; @@ -12695,7 +12697,8 @@ //Subfunction called from clif_foreachclient to toggle friends on/off [Skotlex] int clif_friendslist_toggle_sub(struct map_session_data *sd,va_list ap) { - int account_id, char_id, online; + uint32 account_id, char_id; + int online; account_id = va_arg(ap, int); char_id = va_arg(ap, int); online = va_arg(ap, int); @@ -12759,7 +12762,7 @@ /// Asks a player for permission to be added as friend (ZC_REQ_ADD_FRIENDS). /// 0207 .L .L .24B -void clif_friendlist_req(struct map_session_data *sd, int account_id, int char_id, const char *name) +void clif_friendlist_req(struct map_session_data *sd, uint32 account_id, uint32 char_id, const char *name) { int fd = sd->fd; @@ -12830,7 +12833,7 @@ void clif_parse_FriendsListReply(int fd, struct map_session_data *sd) { struct map_session_data *f_sd; - int account_id; + uint32 account_id; char reply; account_id = RFIFOL(fd,2); @@ -12895,7 +12898,7 @@ void clif_parse_FriendsListRemove(int fd, struct map_session_data *sd) { struct map_session_data *f_sd = NULL; - int account_id, char_id; + uint32 account_id, char_id; int i, j; account_id = RFIFOL(fd,2); @@ -13191,14 +13194,14 @@ /// 0 = sun /// 1 = moon /// 2 = star -void clif_feel_req(int fd, struct map_session_data *sd, int skilllv) +void clif_feel_req(int fd, struct map_session_data *sd, uint16 skill_lv) { WFIFOHEAD(fd,packet_len(0x253)); WFIFOW(fd,0)=0x253; - WFIFOB(fd,2)=TOB(skilllv-1); + WFIFOB(fd,2)=TOB(skill_lv-1); WFIFOSET(fd, packet_len(0x253)); sd->menuskill_id = SG_FEEL; - sd->menuskill_val = skilllv; + sd->menuskill_val = skill_lv; } @@ -14910,7 +14913,7 @@ /// Notifies client of a battleground score change (ZC_BATTLEFIELD_NOTIFY_POINT). /// 02de .W .W -void clif_bg_updatescore(int m) +void clif_bg_updatescore(short m) { struct block_list bl; unsigned char buf[6]; @@ -15408,7 +15411,7 @@ /// 0817 .L static void clif_parse_ReqClickBuyingStore(int fd, struct map_session_data *sd) { - int account_id; + uint32 account_id; account_id = RFIFOL(fd,packet_db[sd->packet_ver][RFIFOW(fd,0)].pos[0]); @@ -15447,7 +15450,7 @@ { const unsigned int blocksize = 6; uint8 *itemlist; - int account_id; + uint32 account_id; unsigned int count, packet_len, buyer_id; struct s_packet_db *info = &packet_db[sd->packet_ver][RFIFOW(fd,0)]; @@ -15710,7 +15713,7 @@ static void clif_parse_SearchStoreInfoListItemClick(int fd, struct map_session_data *sd) { unsigned short nameid; - int account_id, store_id; + uint32 account_id, store_id; struct s_packet_db *info = &packet_db[sd->packet_ver][RFIFOW(fd,0)]; account_id = RFIFOL(fd,info->pos[0]); @@ -15852,7 +15855,7 @@ /*========================================== * Magic Decoy Material List *------------------------------------------*/ -int clif_magicdecoy_list(struct map_session_data *sd, int skill_lv, short x, short y) +int clif_magicdecoy_list(struct map_session_data *sd, uint16 skill_lv, short x, short y) { int i, c; int fd; @@ -15889,7 +15892,7 @@ /*========================================== * Guillotine Cross Poisons List *------------------------------------------*/ -int clif_poison_list(struct map_session_data *sd, int skill_lv) +int clif_poison_list(struct map_session_data *sd, uint16 skill_lv) { int i, c; int fd; @@ -15955,7 +15958,7 @@ * Skill list for Four Elemental Analysis * and Change Material skills. *------------------------------------------*/ -int clif_skill_itemlistwindow(struct map_session_data *sd, int skill_id, int skill_lv) +int clif_skill_itemlistwindow(struct map_session_data *sd, uint16 skill_id, uint16 skill_lv) { #if PACKETVER >= 20090922 int fd; @@ -16049,7 +16052,7 @@ return; if (pc_istrading(sd)) { - clif_skill_fail(sd,sd->ud.skillid,0,0); + clif_skill_fail(sd,sd->ud.skill_id,0,0); clif_menuskill_clear(sd); return; } Index: src/map/clif.h --- src/map/clif.h Base (BASE) +++ src/map/clif.h Locally Modified (Based On LOCAL) @@ -419,29 +419,29 @@ int clif_insight(struct block_list *bl,va_list ap); // map_forallinmovearea callback int clif_outsight(struct block_list *bl,va_list ap); // map_forallinmovearea callback -void clif_class_change(struct block_list *bl,int class_,int type); +void clif_class_change(struct block_list *bl,short class_,int type); #define clif_mob_class_change(md, class_) clif_class_change(&md->bl, class_, 1) void clif_skillinfoblock(struct map_session_data *sd); -void clif_skillup(struct map_session_data *sd,int skill_num); +void clif_skillup(struct map_session_data *sd,uint16 skill_id); void clif_skillinfo(struct map_session_data *sd,int skill, int inf); void clif_addskill(struct map_session_data *sd, int id); void clif_deleteskill(struct map_session_data *sd, int id); -void clif_skillcasting(struct block_list *bl, int src_id, int dst_id, int dst_x, int dst_y, int skill_num, int property, int casttime); +void clif_skillcasting(struct block_list *bl, int src_id, int dst_id, int dst_x, int dst_y, uint16 skill_id, int property, int casttime); void clif_skillcastcancel(struct block_list *bl); -void clif_skill_fail(struct map_session_data *sd,int skill_id,enum useskill_fail_cause cause,int btype); -void clif_skill_cooldown(struct map_session_data *sd, int skillid, unsigned int tick); -int clif_skill_damage(struct block_list *src,struct block_list *dst,unsigned int tick,int sdelay,int ddelay,int damage,int div,int skill_id,int skill_lv,int type); -//int clif_skill_damage2(struct block_list *src,struct block_list *dst,unsigned int tick,int sdelay,int ddelay,int damage,int div,int skill_id,int skill_lv,int type); -int clif_skill_nodamage(struct block_list *src,struct block_list *dst,int skill_id,int heal,int fail); -void clif_skill_poseffect(struct block_list *src,int skill_id,int val,int x,int y,int tick); +void clif_skill_fail(struct map_session_data *sd,uint16 skill_id,enum useskill_fail_cause cause,int btype); +void clif_skill_cooldown(struct map_session_data *sd, uint16 skill_id, unsigned int tick); +int clif_skill_damage(struct block_list *src,struct block_list *dst,unsigned int tick,int sdelay,int ddelay,int damage,int div,uint16 skill_id,uint16 skill_lv,int type); +//int clif_skill_damage2(struct block_list *src,struct block_list *dst,unsigned int tick,int sdelay,int ddelay,int damage,int div,uint16 skill_id,int skill_lv,int type); +int clif_skill_nodamage(struct block_list *src,struct block_list *dst,uint16 skill_id,int heal,int fail); +void clif_skill_poseffect(struct block_list *src,uint16 skill_id,int val,short x,short y,int tick); void clif_skill_estimation(struct map_session_data *sd,struct block_list *dst); -void clif_skill_warppoint(struct map_session_data *sd, short skill_num, short skill_lv, unsigned short map1, unsigned short map2, unsigned short map3, unsigned short map4); +void clif_skill_warppoint(struct map_session_data *sd, uint16 skill_id, uint16 skill_lv, unsigned short map1, unsigned short map2, unsigned short map3, unsigned short map4); void clif_skill_memomessage(struct map_session_data *sd, int type); void clif_skill_teleportmessage(struct map_session_data *sd, int type); -void clif_skill_produce_mix_list(struct map_session_data *sd, int skillid, int trigger); -void clif_cooking_list(struct map_session_data *sd, int trigger, int skill_id, int qty, int list_type); +void clif_skill_produce_mix_list(struct map_session_data *sd, uint16 skill_id, int trigger); +void clif_cooking_list(struct map_session_data *sd, int trigger, uint16 skill_id, int qty, int list_type); void clif_produceeffect(struct map_session_data *sd,int flag,int nameid); @@ -450,12 +450,12 @@ void clif_skillunit_update(struct block_list *bl); -void clif_autospell(struct map_session_data *sd,int skilllv); +void clif_autospell(struct map_session_data *sd,uint16 skill_lv); void clif_devotion(struct block_list *src, struct map_session_data *tsd); void clif_spiritball(struct block_list *bl); void clif_combo_delay(struct block_list *bl,int wait); void clif_bladestop(struct block_list *src, int dst_id, int active); -void clif_changemapcell(int fd, int m, int x, int y, int type, enum send_target target); +void clif_changemapcell(int fd, short m, short x, short y, int type, enum send_target target); #define clif_status_load(bl, type, flag) clif_status_change((bl), (type), (flag), 0, 0, 0, 0) void clif_status_change(struct block_list *bl,int type,int flag,int tick,int val1, int val2, int val3); @@ -485,7 +485,7 @@ void clif_item_damaged(struct map_session_data *sd, unsigned short position); void clif_item_refine_list(struct map_session_data *sd); -void clif_item_skill(struct map_session_data *sd,int skillid,int skilllv); +void clif_item_skill(struct map_session_data *sd,uint16 skill_id,uint16 skill_lv); void clif_mvp_effect(struct map_session_data *sd); void clif_mvp_item(struct map_session_data *sd,int nameid); @@ -511,8 +511,8 @@ void clif_party_invite(struct map_session_data *sd,struct map_session_data *tsd); void clif_party_inviteack(struct map_session_data *sd, const char *nick, int result); void clif_party_option(struct party_data *p,struct map_session_data *sd,int flag); -void clif_party_withdraw(struct party_data *p, struct map_session_data *sd, int account_id, const char *name, int flag); -void clif_party_message(struct party_data *p, int account_id, const char *mes, int len); +void clif_party_withdraw(struct party_data *p, struct map_session_data *sd, uint32 account_id, const char *name, int flag); +void clif_party_message(struct party_data *p, uint32 account_id, const char *mes, int len); void clif_party_xy(struct map_session_data *sd); void clif_party_xy_single(int fd, struct map_session_data *sd); void clif_party_hp(struct map_session_data *sd); @@ -531,17 +531,17 @@ void clif_guild_invite(struct map_session_data *sd,struct guild *g); void clif_guild_inviteack(struct map_session_data *sd,int flag); void clif_guild_leave(struct map_session_data *sd,const char *name,const char *mes); -void clif_guild_expulsion(struct map_session_data *sd, const char *name, const char *mes, int account_id); +void clif_guild_expulsion(struct map_session_data *sd, const char *name, const char *mes, uint32 account_id); void clif_guild_positionchanged(struct guild *g,int idx); void clif_guild_memberpositionchanged(struct guild *g,int idx); void clif_guild_emblem(struct map_session_data *sd,struct guild *g); void clif_guild_emblem_area(struct block_list *bl); void clif_guild_notice(struct map_session_data *sd, struct guild *g); -void clif_guild_message(struct guild *g,int account_id,const char *mes,int len); -int clif_guild_skillup(struct map_session_data *sd,int skill_num,int lv); -void clif_guild_reqalliance(struct map_session_data *sd,int account_id,const char *name); +void clif_guild_message(struct guild *g,uint32 account_id,const char *mes,int len); +int clif_guild_skillup(struct map_session_data *sd,uint16 skill_id,int lv); +void clif_guild_reqalliance(struct map_session_data *sd,uint32 account_id,const char *name); void clif_guild_allianceack(struct map_session_data *sd,int flag); -void clif_guild_delalliance(struct map_session_data *sd,int guild_id,int flag); +void clif_guild_delalliance(struct map_session_data *sd,uint32 guild_id,int flag); void clif_guild_oppositionack(struct map_session_data *sd,int flag); void clif_guild_broken(struct map_session_data *sd,int flag); void clif_guild_xy(struct map_session_data *sd); @@ -553,7 +553,7 @@ void clif_bg_xy(struct map_session_data *sd); void clif_bg_xy_remove(struct map_session_data *sd); void clif_bg_message(struct battleground_data *bg, int src_id, const char *name, const char *mes, int len); -void clif_bg_updatescore(int m); +void clif_bg_updatescore(short m); void clif_bg_updatescore_single(struct map_session_data *sd); void clif_sendbgemblem_area(struct map_session_data *sd); void clif_sendbgemblem_single(int fd, struct map_session_data *sd); @@ -598,7 +598,7 @@ void clif_friendslist_send(struct map_session_data *sd); void clif_friendslist_reqack(struct map_session_data *sd, struct map_session_data *f_sd, int type); -void clif_weather(int m); // [Valaris] +void clif_weather(short m); // [Valaris] void clif_specialeffect(struct block_list *bl, int type, enum send_target target); // special effects [Valaris] void clif_specialeffect_single(struct block_list *bl, int type, int fd); void clif_messagecolor(struct block_list *bl, unsigned long color, const char *msg); // Mob/Npc color talk [SnakeDrak] @@ -616,17 +616,17 @@ void clif_party_xy_remove(struct map_session_data *sd); //Fix for minimap [Kevin] void clif_gospel_info(struct map_session_data *sd, int type); -void clif_feel_req(int fd, struct map_session_data *sd, int skilllv); +void clif_feel_req(int fd, struct map_session_data *sd, uint16 skill_lv); void clif_starskill(struct map_session_data *sd, const char *mapname, int monster_id, unsigned char star, unsigned char result); void clif_feel_info(struct map_session_data *sd, unsigned char feel_level, unsigned char type); -void clif_hate_info(struct map_session_data *sd, unsigned char hate_level,int class_, unsigned char type); +void clif_hate_info(struct map_session_data *sd, unsigned char hate_level,short class_, unsigned char type); void clif_mission_info(struct map_session_data *sd, int mob_id, unsigned char progress); void clif_feel_hate_reset(struct map_session_data *sd); // [blackhole89] void clif_hominfo(struct map_session_data *sd, struct homun_data *hd, int flag); int clif_homskillinfoblock(struct map_session_data *sd); -void clif_homskillup(struct map_session_data *sd, int skill_num); //[orn] +void clif_homskillup(struct map_session_data *sd, uint16 skill_id); //[orn] int clif_hom_food(struct map_session_data *sd,int foodid,int fail); //[orn] void clif_send_homdata(struct map_session_data *sd, int state, int param); //[orn] @@ -637,7 +637,7 @@ void clif_msg(struct map_session_data *sd, unsigned short id); void clif_msg_value(struct map_session_data *sd, unsigned short id, int value); -void clif_msg_skill(struct map_session_data *sd, unsigned short skill_id, int msg_id); +void clif_msg_skill(struct map_session_data *sd, uint16 skill_id, int msg_id); //quest system [Kevin] [Inkfish] void clif_quest_send_list(struct map_session_data *sd); @@ -735,9 +735,9 @@ int clif_spellbook_list(struct map_session_data *sd); -int clif_magicdecoy_list(struct map_session_data *sd, int skill_lv, short x, short y); +int clif_magicdecoy_list(struct map_session_data *sd, uint16 skill_lv, short x, short y); -int clif_poison_list(struct map_session_data *sd, int skill_lv); +int clif_poison_list(struct map_session_data *sd, uint16 skill_lv); int clif_autoshadowspell_list(struct map_session_data *sd); @@ -745,7 +745,7 @@ int clif_status_load_single(int fd, int id,int type,int flag,int val1, int val2, int val3); -int clif_skill_itemlistwindow(struct map_session_data *sd, int skill_id, int skill_lv); +int clif_skill_itemlistwindow(struct map_session_data *sd, uint16 skill_id, uint16 skill_lv); void clif_elemental_info(struct map_session_data *sd); void clif_elemental_updatestatus(struct map_session_data *sd, int type); Index: src/map/duel.c --- src/map/duel.c Base (BASE) +++ src/map/duel.c Locally Modified (Based On LOCAL) @@ -52,7 +52,7 @@ if (sd->duel_group != ssd->duel_group) return 0; sprintf(output, " %d. %s", ++(*p), sd->status.name); - clif_disp_onlyself(ssd, output, strlen(output)); + clif_disp_onlyself(ssd, output,(int) strlen(output)); return 1; } @@ -73,7 +73,7 @@ duel_list[did].members_count, duel_list[did].members_count + duel_list[did].invites_count); - clif_disp_onlyself(sd, output, strlen(output)); + clif_disp_onlyself(sd, output,(int) strlen(output)); map_foreachpc(duel_showinfo_sub, sd, &p); } @@ -92,27 +92,27 @@ duel_list[i].max_players_limit = maxpl; strcpy(output, msg_txt(372)); // " -- Duel has been created (@invite/@leave) --" - clif_disp_onlyself(sd, output, strlen(output)); + clif_disp_onlyself(sd, output, (int) strlen(output)); clif_map_property(sd, MAPPROPERTY_FREEPVPZONE); //clif_misceffect2(&sd->bl, 159); return i; } -void duel_invite(const unsigned int did, struct map_session_data *sd, struct map_session_data *target_sd) +void duel_invite(const int did, struct map_session_data *sd, struct map_session_data *target_sd) { char output[256]; // " -- Player %s invites %s to duel --" sprintf(output, msg_txt(373), sd->status.name, target_sd->status.name); - clif_disp_message(&sd->bl, output, strlen(output), DUEL_WOS); + clif_disp_message(&sd->bl, output,(int) strlen(output), DUEL_WOS); target_sd->duel_invite = did; duel_list[did].invites_count++; // "Blue -- Player %s invites you to PVP duel (@accept/@reject) --" sprintf(output, msg_txt(374), sd->status.name); - clif_broadcast((struct block_list *)target_sd, output, strlen(output)+1, 0x10, SELF); + clif_broadcast((struct block_list *)target_sd, output,(int) strlen(output)+1, 0x10, SELF); } static int duel_leave_sub(struct map_session_data *sd, va_list va) @@ -129,7 +129,7 @@ // " <- Player %s has left duel --" sprintf(output, msg_txt(375), sd->status.name); - clif_disp_message(&sd->bl, output, strlen(output), DUEL_WOS); + clif_disp_message(&sd->bl, output,(int) strlen(output), DUEL_WOS); duel_list[did].members_count--; @@ -154,7 +154,7 @@ // " -> Player %s has accepted duel --" sprintf(output, msg_txt(376), sd->status.name); - clif_disp_message(&sd->bl, output, strlen(output), DUEL_WOS); + clif_disp_message(&sd->bl, output,(int) strlen(output), DUEL_WOS); clif_map_property(sd, MAPPROPERTY_FREEPVPZONE); //clif_misceffect2(&sd->bl, 159); @@ -166,7 +166,7 @@ // " -- Player %s has rejected duel --" sprintf(output, msg_txt(377), sd->status.name); - clif_disp_message(&sd->bl, output, strlen(output), DUEL_WOS); + clif_disp_message(&sd->bl, output,(int) strlen(output), DUEL_WOS); duel_list[did].invites_count--; sd->duel_invite = 0; Index: src/map/duel.h --- src/map/duel.h Base (BASE) +++ src/map/duel.h Locally Modified (Based On LOCAL) @@ -7,7 +7,7 @@ struct duel { int members_count; int invites_count; - int max_players_limit; + unsigned int max_players_limit; }; #define MAX_DUEL 1024 @@ -16,7 +16,7 @@ //Duel functions // [LuzZza] int duel_create(struct map_session_data *sd, const unsigned int maxpl); -void duel_invite(const unsigned int did, struct map_session_data *sd, struct map_session_data *target_sd); +void duel_invite(const int did, struct map_session_data *sd, struct map_session_data *target_sd); void duel_accept(const unsigned int did, struct map_session_data *sd); void duel_reject(const unsigned int did, struct map_session_data *sd); void duel_leave(const unsigned int did, struct map_session_data *sd); Index: src/map/elemental.c --- src/map/elemental.c Base (BASE) +++ src/map/elemental.c Locally Modified (Based On LOCAL) @@ -39,19 +39,19 @@ struct s_elemental_db elemental_db[MAX_ELEMENTAL_CLASS]; // Elemental Database -int elemental_search_index(int class_) +int elemental_search_index(short class_) { int i; ARR_FIND(0, MAX_ELEMENTAL_CLASS, i, elemental_db[i].class_ == class_); return (i == MAX_ELEMENTAL_CLASS)?-1:i; } -bool elemental_class(int class_) +bool elemental_class(short class_) { return (bool)(elemental_search_index(class_) > -1); } -struct view_data *elemental_get_viewdata(int class_) { +struct view_data *elemental_get_viewdata(short class_) { int i = elemental_search_index(class_); if (i < 0) return 0; @@ -59,7 +59,7 @@ return &elemental_db[i].vd; } -int elemental_create(struct map_session_data *sd, int class_, unsigned int lifetime) +int elemental_create(struct map_session_data *sd, short class_, unsigned int lifetime) { struct s_elemental ele; struct s_elemental_db *db; @@ -86,7 +86,7 @@ return 1; } -int elemental_get_lifetime(struct elemental_data *ed) +unsigned int elemental_get_lifetime(struct elemental_data *ed) { const struct TimerData *td; if (ed == NULL || ed->summon_timer == INVALID_TIMER) @@ -226,10 +226,10 @@ return 1; } -int elemental_clean_single_effect(struct elemental_data *ed, int skill_num) +int elemental_clean_single_effect(struct elemental_data *ed, uint16 skill_id) { struct block_list *bl; - sc_type type = status_skill2sc(skill_num); + sc_type type = status_skill2sc(skill_id); nullpo_ret(ed); @@ -270,7 +270,7 @@ break; } } - if (skill_get_unit_id(skill_num,0)) + if (skill_get_unit_id(skill_id,0)) skill_clear_unitgroup(&ed->bl); return 1; @@ -341,7 +341,7 @@ int elemental_action(struct elemental_data *ed, struct block_list *bl, unsigned int tick) { - short skillnum, skilllv; + uint16 skill_id, skill_lv; int i; nullpo_ret(ed); @@ -357,10 +357,10 @@ if (i == MAX_ELESKILLTREE) return 0; - skillnum = ed->db->skill[i].id; - skilllv = ed->db->skill[i].lv; + skill_id = ed->db->skill[i].id; + skill_lv = ed->db->skill[i].lv; - if (elemental_skillnotok(skillnum, ed)) + if (elemental_skillnotok(skill_id, ed)) return 0; if (ed->ud.skilltimer != INVALID_TIMER) @@ -372,17 +372,17 @@ ed->last_thinktime = tick; // Not in skill range. - if (!battle_check_range(&ed->bl,bl,skill_get_range(skillnum,skilllv))) { + if (!battle_check_range(&ed->bl,bl,skill_get_range(skill_id,skill_lv))) { // Try to walk to the target. - if (!unit_walktobl(&ed->bl, bl, skill_get_range(skillnum,skilllv), 2)) + if (!unit_walktobl(&ed->bl, bl, skill_get_range(skill_id,skill_lv), 2)) elemental_unlocktarget(ed); else { // Walking, waiting to be in range. Client don't handle it, then we must handle it here. - int walk_dist = distance_bl(&ed->bl,bl) - skill_get_range(skillnum,skilllv); - ed->ud.skillid = skillnum; - ed->ud.skilllv = skilllv; + int walk_dist = distance_bl(&ed->bl,bl) - skill_get_range(skill_id,skill_lv); + ed->ud.skill_id = skill_id; + ed->ud.skill_lv = skill_lv; - if (skill_get_inf(skillnum) & INF_GROUND_SKILL) + if (skill_get_inf(skill_id) & INF_GROUND_SKILL) ed->ud.skilltimer = add_timer(tick+status_get_speed(&ed->bl)*walk_dist, skill_castend_pos, ed->bl.id, 0); else ed->ud.skilltimer = add_timer(tick+status_get_speed(&ed->bl)*walk_dist, skill_castend_id, ed->bl.id, 0); @@ -391,10 +391,10 @@ } //Otherwise, just cast the skill. - if (skill_get_inf(skillnum) & INF_GROUND_SKILL) - unit_skilluse_pos(&ed->bl, bl->x, bl->y, skillnum, skilllv); + if (skill_get_inf(skill_id) & INF_GROUND_SKILL) + unit_skilluse_pos(&ed->bl, bl->x, bl->y, skill_id, skill_lv); else - unit_skilluse_id(&ed->bl, bl->id, skillnum, skilllv); + unit_skilluse_id(&ed->bl, bl->id, skill_id, skill_lv); // Reset target. ed->target_id = 0; @@ -409,7 +409,7 @@ int elemental_change_mode_ack(struct elemental_data *ed, int mode) { struct block_list *bl = &ed->master->bl; - short skillnum, skilllv; + uint16 skill_id, skill_lv; int i; nullpo_ret(ed); @@ -422,10 +422,10 @@ if (i == MAX_ELESKILLTREE) return 0; - skillnum = ed->db->skill[i].id; - skilllv = ed->db->skill[i].lv; + skill_id = ed->db->skill[i].id; + skill_lv = ed->db->skill[i].lv; - if (elemental_skillnotok(skillnum, ed)) + if (elemental_skillnotok(skill_id, ed)) return 0; if (ed->ud.skilltimer != INVALID_TIMER) @@ -436,10 +436,10 @@ ed->target_id = bl->id; // Set new target ed->last_thinktime = gettick(); - if (skill_get_inf(skillnum) & INF_GROUND_SKILL) - unit_skilluse_pos(&ed->bl, bl->x, bl->y, skillnum, skilllv); + if (skill_get_inf(skill_id) & INF_GROUND_SKILL) + unit_skilluse_pos(&ed->bl, bl->x, bl->y, skill_id, skill_lv); else - unit_skilluse_id(&ed->bl,bl->id,skillnum,skilllv); + unit_skilluse_id(&ed->bl,bl->id,skill_id,skill_lv); ed->target_id = 0; // Reset target after casting the skill to avoid continious attack. @@ -496,15 +496,15 @@ return 0; } -int elemental_skillnotok(int skillid, struct elemental_data *ed) +int elemental_skillnotok(uint16 skill_id, struct elemental_data *ed) { - int i = skill_get_index(skillid); + int i = skill_get_index(skill_id); nullpo_retr(1,ed); if (i == 0) return 1; // invalid skill id - return skillnotok(skillid, ed->master); + return skillnotok(skill_id, ed->master); } int elemental_set_target(struct map_session_data *sd, struct block_list *bl) @@ -566,7 +566,8 @@ static int elemental_ai_sub_timer(struct elemental_data *ed, struct map_session_data *sd, unsigned int tick) { struct block_list *target = NULL; - int master_dist, view_range, mode; + unsigned int master_dist; + int view_range, mode; nullpo_ret(ed); nullpo_ret(sd); @@ -667,7 +668,8 @@ FILE *fp; char line[1024], *p; char *str[26]; - int i, j = 0, k = 0, ele; + int i, j = 0, k = 0; + unsigned char ele; struct s_elemental_db *db; struct status_data *status; @@ -759,8 +761,9 @@ char line[1024], *p; char *str[4]; struct s_elemental_db *db; - int i, j = 0, k = 0, class_; - int skillid, skilllv, skillmode; + int i, j = 0, k = 0; + uint16 skill_id, skill_lv, class_; + short skillmode; sprintf(line, "%s/%s", db_path, "elemental_skill_db.txt"); fp = fopen(line, "r"); @@ -788,34 +791,34 @@ continue; } - class_ = atoi(str[0]); + class_ =(unsigned short) atoi(str[0]); ARR_FIND(0, MAX_ELEMENTAL_CLASS, i, class_ == elemental_db[i].class_); if (i == MAX_ELEMENTAL_CLASS) { ShowError("read_elemental_skilldb : Class not found in elemental_db for skill entry, line %d.\n", k); continue; } - skillid = atoi(str[1]); - if (skillid < EL_SKILLBASE || skillid >= EL_SKILLBASE + MAX_ELEMENTALSKILL) { + skill_id =(unsigned short) atoi(str[1]); + if (skill_id < EL_SKILLBASE || skill_id >= EL_SKILLBASE + MAX_ELEMENTALSKILL) { ShowError("read_elemental_skilldb : Skill out of range, line %d.\n", k); continue; } db = &elemental_db[i]; - skilllv = atoi(str[2]); + skill_lv = (unsigned short) atoi(str[2]); skillmode = atoi(str[3]); if (skillmode < EL_SKILLMODE_PASIVE || skillmode > EL_SKILLMODE_AGGRESSIVE) { ShowError("read_elemental_skilldb : Skillmode out of range, line %d.\n",k); continue; } - ARR_FIND(0, MAX_ELESKILLTREE, i, db->skill[i].id == 0 || db->skill[i].id == skillid); + ARR_FIND(0, MAX_ELESKILLTREE, i, db->skill[i].id == 0 || db->skill[i].id == skill_id); if (i == MAX_ELESKILLTREE) { - ShowWarning("Unable to load skill %d into Elemental %d's tree. Maximum number of skills per elemental has been reached.\n", skillid, class_); + ShowWarning("Unable to load skill %d into Elemental %d's tree. Maximum number of skills per elemental has been reached.\n", skill_id, class_); continue; } - db->skill[i].id = skillid; - db->skill[i].lv = skilllv; + db->skill[i].id = skill_id; + db->skill[i].lv = skill_lv; db->skill[i].mode = skillmode; j++; } Index: src/map/elemental.h --- src/map/elemental.h Base (BASE) +++ src/map/elemental.h Locally Modified (Based On LOCAL) @@ -25,7 +25,7 @@ }; struct s_elemental_db { - int class_; + short class_; char sprite[NAME_LENGTH], name[NAME_LENGTH]; unsigned short lv; short range2, range3; @@ -56,10 +56,10 @@ int target_id, attacked_id; }; -bool elemental_class(int class_); -struct view_data *elemental_get_viewdata(int class_); +bool elemental_class(short class_); +struct view_data *elemental_get_viewdata(short class_); -int elemental_create(struct map_session_data *sd, int class_, unsigned int lifetime); +int elemental_create(struct map_session_data *sd, short class_, unsigned int lifetime); int elemental_data_received(struct s_elemental *ele, bool flag); int elemental_save(struct elemental_data *ed); @@ -72,12 +72,12 @@ int elemental_delete(struct elemental_data *ed, int reply); void elemental_summon_stop(struct elemental_data *ed); -int elemental_get_lifetime(struct elemental_data *ed); +unsigned int elemental_get_lifetime(struct elemental_data *ed); int elemental_unlocktarget(struct elemental_data *ed); -int elemental_skillnotok(int skillid, struct elemental_data *ed); +int elemental_skillnotok(uint16 skill_id, struct elemental_data *ed); int elemental_set_target(struct map_session_data *sd, struct block_list *bl); -int elemental_clean_single_effect(struct elemental_data *ed, int skill_num); +int elemental_clean_single_effect(struct elemental_data *ed, uint16 skill_id); int elemental_clean_effect(struct elemental_data *ed); int elemental_action(struct elemental_data *ed, struct block_list *bl, unsigned int tick); Index: src/map/guild.c --- src/map/guild.c Base (BASE) +++ src/map/guild.c Locally Modified (Based On LOCAL) @@ -29,10 +29,10 @@ #include -static DBMap *guild_db; // int guild_id -> struct guild* +static DBMap *guild_db; // uint32 guild_id -> struct guild* static DBMap *castle_db; // int castle_id -> struct guild_castle* -static DBMap *guild_expcache_db; // int char_id -> struct guild_expcache* -static DBMap *guild_infoevent_db; // int guild_id -> struct eventlist* +static DBMap *guild_expcache_db; // uint32 char_id -> struct guild_expcache* +static DBMap *guild_infoevent_db; // uint32 guild_id -> struct eventlist* struct eventlist { char name[EVENT_NAME_LENGTH]; @@ -47,7 +47,7 @@ //Guild EXP cache struct guild_expcache { - int guild_id, account_id, char_id; + uint32 guild_id, account_id, char_id; uint64 exp; }; static struct eri *expcache_ers; //For handling of guild exp payment. @@ -72,7 +72,7 @@ /*========================================== * Retrieves and validates the sd pointer for this guild member [Skotlex] *------------------------------------------*/ -static TBL_PC *guild_sd_check(int guild_id, int account_id, int char_id) +static TBL_PC *guild_sd_check(uint32 guild_id, uint32 account_id, uint32 char_id) { TBL_PC *sd = map_id2sd(account_id); @@ -96,7 +96,7 @@ return guild_skill_tree[id-GD_SKILLBASE].max; } -// Retrive skilllv learned by guild +// Retrive skill_lv learned by guild int guild_checkskill(struct guild *g, int id) { @@ -112,17 +112,18 @@ static bool guild_read_guildskill_tree_db(char *split[], int columns, int current) { // ,,,,,,,,,,, - int k, id, skillid; + int k, id; + uint16 skill_id; - skillid = atoi(split[0]); - id = skillid - GD_SKILLBASE; + skill_id = atoi(split[0]); + id = skill_id - GD_SKILLBASE; if (id < 0 || id >= MAX_GUILDSKILL) { - ShowWarning("guild_read_guildskill_tree_db: Invalid skill id %d.\n", skillid); + ShowWarning("guild_read_guildskill_tree_db: Invalid skill id %d.\n", skill_id); return false; } - guild_skill_tree[id].id = skillid; + guild_skill_tree[id].id = skill_id; guild_skill_tree[id].max = atoi(split[1]); if (guild_skill_tree[id].id == GD_GLORYGUILD && battle_config.require_glory_guild && guild_skill_tree[id].max == 0) { @@ -183,7 +184,7 @@ } /// lookup: guild id -> guild* -struct guild *guild_search(int guild_id) { +struct guild *guild_search(uint32 guild_id) { return (struct guild *)idb_get(guild_db,guild_id); } @@ -235,7 +236,7 @@ } /// lookup: player AID/CID -> member index -int guild_getindex(struct guild *g,int account_id,int char_id) +int guild_getindex(struct guild *g, uint32 account_id, uint32 char_id) { int i; @@ -390,7 +391,7 @@ } //Whether or not to create guild -int guild_created(int account_id,int guild_id) +int guild_created(uint32 account_id, uint32 guild_id) { struct map_session_data *sd=map_id2sd(account_id); @@ -409,13 +410,13 @@ } //Information request -int guild_request_info(int guild_id) +int guild_request_info(uint32 guild_id) { return intif_guild_request_info(guild_id); } //Information request with event -int guild_npc_request_info(int guild_id,const char *event) +int guild_npc_request_info(uint32 guild_id,const char *event) { if (guild_search(guild_id)) { if (event && *event) @@ -464,7 +465,7 @@ } //Delete association with guild_id for all characters -int guild_recv_noinfo(int guild_id) +int guild_recv_noinfo(uint32 guild_id) { struct map_session_data *sd; struct s_mapiterator *iter; @@ -622,7 +623,7 @@ /// Guild invitation reply. /// flag: 0:rejected, 1:accepted -int guild_reply_invite(struct map_session_data *sd, int guild_id, int flag) +int guild_reply_invite(struct map_session_data *sd, uint32 guild_id, int flag) { struct map_session_data *tsd; @@ -703,7 +704,7 @@ /*========================================== * Add a player to a given guild_id *----------------------------------------*/ -int guild_member_added(int guild_id,int account_id,int char_id,int flag) +int guild_member_added(uint32 guild_id, uint32 account_id, uint32 char_id,int flag) { struct map_session_data *sd= map_id2sd(account_id),*sd2; struct guild *g; @@ -750,7 +751,7 @@ /*========================================== * Player request leaving a given guild_id *----------------------------------------*/ -int guild_leave(struct map_session_data *sd, int guild_id, int account_id, int char_id, const char *mes) +int guild_leave(struct map_session_data *sd, uint32 guild_id, uint32 account_id, uint32 char_id, const char *mes) { struct guild *g; @@ -773,7 +774,7 @@ /*========================================== * Request remove a player to a given guild_id *----------------------------------------*/ -int guild_expulsion(struct map_session_data *sd, int guild_id, int account_id, int char_id, const char *mes) +int guild_expulsion(struct map_session_data *sd, uint32 guild_id, uint32 account_id, uint32 char_id, const char *mes) { struct map_session_data *tsd; struct guild *g; @@ -806,7 +807,7 @@ return 0; } -int guild_member_withdraw(int guild_id, int account_id, int char_id, int flag, const char *name, const char *mes) +int guild_member_withdraw(uint32 guild_id, uint32 account_id, uint32 char_id, int flag, const char *name, const char *mes) { int i; struct guild *g = guild_search(guild_id); @@ -883,7 +884,7 @@ return 0; } -int guild_recv_memberinfoshort(int guild_id,int account_id,int char_id,int online,int lv,int class_) +int guild_recv_memberinfoshort(uint32 guild_id, uint32 account_id, uint32 char_id,int online,int lv,short class_) { // cleaned up [LuzZza] @@ -968,7 +969,7 @@ /*==================================================== * Guild receive a message, will be displayed to whole member *---------------------------------------------------*/ -int guild_recv_message(int guild_id,int account_id,const char *mes,int len) +int guild_recv_message(uint32 guild_id,uint32 account_id,const char *mes,int len) { struct guild *g; if ((g=guild_search(guild_id))==NULL) @@ -980,7 +981,7 @@ /*==================================================== * Member changing position in guild *---------------------------------------------------*/ -int guild_change_memberposition(int guild_id,int account_id,int char_id,short idx) +int guild_change_memberposition(uint32 guild_id, uint32 account_id, uint32 char_id,short idx) { return intif_guild_change_memberinfo(guild_id,account_id,char_id,GMI_POSITION,&idx,sizeof(idx)); } @@ -1004,7 +1005,7 @@ /*==================================================== * Change guild title or member *---------------------------------------------------*/ -int guild_change_position(int guild_id,int idx, +int guild_change_position(uint32 guild_id,int idx, int mode,int exp_mode,const char *name) { struct guild_position p; @@ -1021,7 +1022,7 @@ /*==================================================== * Notification of member has changed his guild title *---------------------------------------------------*/ -int guild_position_changed(int guild_id,int idx,struct guild_position *p) +int guild_position_changed(uint32 guild_id,int idx,struct guild_position *p) { struct guild *g=guild_search(guild_id); int i; @@ -1040,7 +1041,7 @@ /*==================================================== * Change guild notice *---------------------------------------------------*/ -int guild_change_notice(struct map_session_data *sd,int guild_id,const char *mes1,const char *mes2) +int guild_change_notice(struct map_session_data *sd, uint32 guild_id,const char *mes1,const char *mes2) { nullpo_ret(sd); @@ -1052,7 +1053,7 @@ /*==================================================== * Notification of guild has changed his notice *---------------------------------------------------*/ -int guild_notice_changed(int guild_id,const char *mes1,const char *mes2) +int guild_notice_changed(uint32 guild_id,const char *mes1,const char *mes2) { int i; struct map_session_data *sd; @@ -1090,7 +1091,7 @@ /*==================================================== * Notification of guild emblem changed *---------------------------------------------------*/ -int guild_emblem_changed(int len,int guild_id,int emblem_id,const char *data) +int guild_emblem_changed(int len,uint32 guild_id,int emblem_id,const char *data) { int i; struct map_session_data *sd; @@ -1219,13 +1220,13 @@ } /*==================================================== - * Ask to increase guildskill skill_num + * Ask to increase guildskill skillid *---------------------------------------------------*/ -int guild_skillup(TBL_PC *sd, int skill_num) +int guild_skillup(TBL_PC *sd, uint16 skill_id) { struct guild *g; - int idx = skill_num - GD_SKILLBASE; - int max = guild_skill_get_max(skill_num); + int idx = skill_id - GD_SKILLBASE; + int max = guild_skill_get_max(skill_id); nullpo_ret(sd); @@ -1237,15 +1238,15 @@ if (g->skill_point > 0 && g->skill[idx].id != 0 && g->skill[idx].lv < max) - intif_guild_skillup(g->guild_id, skill_num, sd->status.account_id, max); + intif_guild_skillup(g->guild_id, skill_id, sd->status.account_id, max); return 0; } /*==================================================== - * Notification of guildskill skill_num increase request + * Notification of guildskill skillid increase request *---------------------------------------------------*/ -int guild_skillupack(int guild_id,int skill_num,int account_id) +int guild_skillupack(uint32 guild_id,uint16 skill_id,uint32 account_id) { struct map_session_data *sd=map_id2sd(account_id); struct guild *g=guild_search(guild_id); @@ -1253,15 +1254,15 @@ if (g==NULL) return 0; if (sd != NULL) { - clif_guild_skillup(sd,skill_num,g->skill[skill_num-GD_SKILLBASE].lv); + clif_guild_skillup(sd,skill_id,g->skill[skill_id-GD_SKILLBASE].lv); /* Guild Aura handling */ - switch (skill_num) { + switch (skill_id) { case GD_LEADERSHIP: case GD_GLORYWOUNDS: case GD_SOULCOLD: case GD_HAWKEYES: - guild_guildaura_refresh(sd,skill_num,g->skill[skill_num-GD_SKILLBASE].lv); + guild_guildaura_refresh(sd,skill_id,g->skill[skill_id-GD_SKILLBASE].lv); break; } } @@ -1274,10 +1275,10 @@ return 0; } -void guild_guildaura_refresh(struct map_session_data *sd, int skill_num, int skill_lv) +void guild_guildaura_refresh(struct map_session_data *sd, uint16 skill_id, uint16 skill_lv) { struct skill_unit_group *group = NULL; - int type = status_skill2sc(skill_num); + int type = status_skill2sc(skill_id); if (!(battle_config.guild_aura&((agit_flag || agit2_flag)?2:1)) && !(battle_config.guild_aura&(map_flag_gvg2(sd->bl.m)?8:4))) return; @@ -1287,7 +1288,7 @@ skill_delunitgroup(group); status_change_end(&sd->bl,type,INVALID_TIMER); } - group = skill_unitsetting(&sd->bl,skill_num,skill_lv,sd->bl.x,sd->bl.y,0); + group = skill_unitsetting(&sd->bl,skill_id,skill_lv,sd->bl.x,sd->bl.y,0); if (group) { sc_start4(&sd->bl,type,100,(battle_config.guild_aura&16)?0:skill_lv,0,0,group->group_id,600000);//duration doesn't matter these status never end with val4 } @@ -1317,10 +1318,10 @@ // Blocks all guild skills which have a common delay time. void guild_block_skill(struct map_session_data *sd, int time) { - int skill_num[] = { GD_BATTLEORDER, GD_REGENERATION, GD_RESTORE, GD_EMERGENCYCALL }; + uint16 skill_id[] = { GD_BATTLEORDER, GD_REGENERATION, GD_RESTORE, GD_EMERGENCYCALL }; int i; for (i = 0; i < 4; i++) - skill_blockpc_start_(sd, skill_num[i], time , true); + skill_blockpc_start_(sd, skill_id[i], time , true); } /*==================================================== @@ -1330,7 +1331,7 @@ * 1 = enemy * Returns true if yes. *---------------------------------------------------*/ -int guild_check_alliance(int guild_id1, int guild_id2, int flag) +int guild_check_alliance(uint32 guild_id1, uint32 guild_id2, int flag) { struct guild *g; int i; @@ -1404,7 +1405,7 @@ /*==================================================== * Player sd, answer to player tsd (account_id) for an alliance request *---------------------------------------------------*/ -int guild_reply_reqalliance(struct map_session_data *sd,int account_id,int flag) +int guild_reply_reqalliance(struct map_session_data *sd,uint32 account_id,int flag) { struct map_session_data *tsd; @@ -1465,7 +1466,7 @@ /*==================================================== * Player sd asking to break alliance with guild guild_id *---------------------------------------------------*/ -int guild_delalliance(struct map_session_data *sd,int guild_id,int flag) +int guild_delalliance(struct map_session_data *sd,uint32 guild_id,int flag) { nullpo_ret(sd); @@ -1524,10 +1525,10 @@ /*==================================================== * Notification of a relationship between 2 guilds *---------------------------------------------------*/ -int guild_allianceack(int guild_id1,int guild_id2,int account_id1,int account_id2,int flag,const char *name1,const char *name2) +int guild_allianceack(uint32 guild_id1,uint32 guild_id2,uint32 account_id1,uint32 account_id2,int flag,const char *name1,const char *name2) { struct guild *g[2]; - int guild_id[2]; + uint32 guild_id[2]; const char *guild_name[2]; struct map_session_data *sd[2]; int j,i; @@ -1603,7 +1604,7 @@ int guild_broken_sub(DBKey key, DBData *data, va_list ap) { struct guild *g = db_data2ptr(data); - int guild_id=va_arg(ap,int); + uint32 guild_id=va_arg(ap,int); int i,j; struct map_session_data *sd=NULL; @@ -1629,7 +1630,7 @@ { char name[EVENT_NAME_LENGTH]; struct guild_castle *gc = db_data2ptr(data); - int guild_id = va_arg(ap, int); + uint32 guild_id = va_arg(ap, int); nullpo_ret(gc); @@ -1646,7 +1647,7 @@ } //Invoked on /breakguild "Guild name" -int guild_broken(int guild_id,int flag) +int guild_broken(uint32 guild_id,int flag) { struct guild *g = guild_search(guild_id); struct map_session_data *sd = NULL; @@ -1673,7 +1674,7 @@ } //Changes the Guild Master to the specified player. [Skotlex] -int guild_gm_change(int guild_id, struct map_session_data *sd) +int guild_gm_change(uint32 guild_id, struct map_session_data *sd) { struct guild *g; nullpo_ret(sd); @@ -1694,7 +1695,7 @@ } //Notification from Char server that a guild's master has changed. [Skotlex] -int guild_gm_changed(int guild_id, int account_id, int char_id) +int guild_gm_changed(uint32 guild_id, uint32 account_id, uint32 char_id) { struct guild *g; struct guild_member gm; @@ -1997,7 +1998,7 @@ } // Are these two guilds allied? -bool guild_isallied(int guild_id, int guild_id2) +bool guild_isallied(uint32 guild_id, uint32 guild_id2) { int i; struct guild *g = guild_search(guild_id); Index: src/map/guild.h --- src/map/guild.h Base (BASE) +++ src/map/guild.h Locally Modified (Based On LOCAL) @@ -16,7 +16,7 @@ //For quick linking to a guardian's info. [Skotlex] struct guardian_data { int number; //0-MAX_GUARDIANS-1 = Guardians. MAX_GUARDIANS = Emperium. - int guild_id; + uint32 guild_id; int emblem_id; int guardup_lv; //Level of GD_GUARDUP skill. char guild_name[NAME_LENGTH]; @@ -28,10 +28,10 @@ int guild_checkskill(struct guild *g,int id); int guild_check_skill_require(struct guild *g,int id); // [Komurka] int guild_checkcastles(struct guild *g); // [MouseJstr] -bool guild_isallied(int guild_id, int guild_id2); //Checks alliance based on guild Ids. [Skotlex] +bool guild_isallied(uint32 guild_id, uint32 guild_id2); //Checks alliance based on guild Ids. [Skotlex] void do_init_guild(void); -struct guild *guild_search(int guild_id); +struct guild *guild_search(uint32 guild_id); struct guild *guild_searchname(char *str); struct guild_castle *guild_castle_search(int gcid); @@ -39,56 +39,56 @@ struct guild_castle *guild_mapindex2gc(short mapindex); struct map_session_data *guild_getavailablesd(struct guild *g); -int guild_getindex(struct guild *g,int account_id,int char_id); +int guild_getindex(struct guild *g,uint32 account_id,uint32 char_id); int guild_getposition(struct guild *g, struct map_session_data *sd); unsigned int guild_payexp(struct map_session_data *sd,unsigned int exp); int guild_getexp(struct map_session_data *sd,int exp); // [Celest] int guild_create(struct map_session_data *sd, const char *name); -int guild_created(int account_id,int guild_id); -int guild_request_info(int guild_id); -int guild_recv_noinfo(int guild_id); +int guild_created(uint32 account_id,uint32 guild_id); +int guild_request_info(uint32 guild_id); +int guild_recv_noinfo(uint32 guild_id); int guild_recv_info(struct guild *sg); -int guild_npc_request_info(int guild_id,const char *ev); +int guild_npc_request_info(uint32 guild_id,const char *ev); int guild_invite(struct map_session_data *sd,struct map_session_data *tsd); -int guild_reply_invite(struct map_session_data *sd,int guild_id,int flag); +int guild_reply_invite(struct map_session_data *sd,uint32 guild_id,int flag); void guild_member_joined(struct map_session_data *sd); -int guild_member_added(int guild_id,int account_id,int char_id,int flag); -int guild_leave(struct map_session_data *sd,int guild_id, - int account_id,int char_id,const char *mes); -int guild_member_withdraw(int guild_id,int account_id,int char_id,int flag, +int guild_member_added(uint32 guild_id,uint32 account_id,uint32 char_id,int flag); +int guild_leave(struct map_session_data *sd,uint32 guild_id, + uint32 account_id,uint32 char_id,const char *mes); +int guild_member_withdraw(uint32 guild_id,uint32 account_id,uint32 char_id,int flag, const char *name,const char *mes); -int guild_expulsion(struct map_session_data *sd,int guild_id, - int account_id,int char_id,const char *mes); -int guild_skillup(struct map_session_data *sd, int skill_num); +int guild_expulsion(struct map_session_data *sd,uint32 guild_id, + uint32 account_id,uint32 char_id,const char *mes); +int guild_skillup(struct map_session_data *sd, uint16 skill_id); void guild_block_skill(struct map_session_data *sd, int time); int guild_reqalliance(struct map_session_data *sd,struct map_session_data *tsd); -int guild_reply_reqalliance(struct map_session_data *sd,int account_id,int flag); -int guild_alliance(int guild_id1,int guild_id2,int account_id1,int account_id2); -int guild_allianceack(int guild_id1,int guild_id2,int account_id1,int account_id2, +int guild_reply_reqalliance(struct map_session_data *sd,uint32 account_id,int flag); +int guild_alliance(uint32 guild_id1,uint32 guild_id2,uint32 account_id1,uint32 account_id2); +int guild_allianceack(uint32 guild_id1,uint32 guild_id2,uint32 account_id1,uint32 account_id2, int flag,const char *name1,const char *name2); -int guild_delalliance(struct map_session_data *sd,int guild_id,int flag); +int guild_delalliance(struct map_session_data *sd,uint32 guild_id,int flag); int guild_opposition(struct map_session_data *sd,struct map_session_data *tsd); -int guild_check_alliance(int guild_id1, int guild_id2, int flag); +int guild_check_alliance(uint32 guild_id1, uint32 guild_id2, int flag); int guild_send_memberinfoshort(struct map_session_data *sd,int online); -int guild_recv_memberinfoshort(int guild_id,int account_id,int char_id,int online,int lv,int class_); -int guild_change_memberposition(int guild_id,int account_id,int char_id,short idx); +int guild_recv_memberinfoshort(uint32 guild_id,uint32 account_id,uint32 char_id,int online,int lv,short class_); +int guild_change_memberposition(uint32 guild_id,uint32 account_id,uint32 char_id,short idx); int guild_memberposition_changed(struct guild *g,int idx,int pos); -int guild_change_position(int guild_id,int idx,int mode,int exp_mode,const char *name); -int guild_position_changed(int guild_id,int idx,struct guild_position *p); -int guild_change_notice(struct map_session_data *sd,int guild_id,const char *mes1,const char *mes2); -int guild_notice_changed(int guild_id,const char *mes1,const char *mes2); +int guild_change_position(uint32 guild_id,int idx,int mode,int exp_mode,const char *name); +int guild_position_changed(uint32 guild_id,int idx,struct guild_position *p); +int guild_change_notice(struct map_session_data *sd,uint32 guild_id,const char *mes1,const char *mes2); +int guild_notice_changed(uint32 guild_id,const char *mes1,const char *mes2); int guild_change_emblem(struct map_session_data *sd,int len,const char *data); -int guild_emblem_changed(int len,int guild_id,int emblem_id,const char *data); +int guild_emblem_changed(int len,uint32 guild_id,int emblem_id,const char *data); int guild_send_message(struct map_session_data *sd,const char *mes,int len); -int guild_recv_message(int guild_id,int account_id,const char *mes,int len); +int guild_recv_message(uint32 guild_id,uint32 account_id,const char *mes,int len); int guild_send_dot_remove(struct map_session_data *sd); -int guild_skillupack(int guild_id,int skill_num,int account_id); +int guild_skillupack(uint32 guild_id,uint16 skill_id,uint32 account_id); int guild_break(struct map_session_data *sd,char *name); -int guild_broken(int guild_id,int flag); -int guild_gm_change(int guild_id, struct map_session_data *sd); -int guild_gm_changed(int guild_id, int account_id, int char_id); +int guild_broken(uint32 guild_id,int flag); +int guild_gm_change(uint32 guild_id, struct map_session_data *sd); +int guild_gm_changed(uint32 guild_id, uint32 account_id, uint32 char_id); void guild_castle_map_init(void); int guild_castledatasave(int castle_id,int index,int value); @@ -105,7 +105,7 @@ void guild_flag_remove(struct npc_data *nd); void guild_flags_clear(void); -void guild_guildaura_refresh(struct map_session_data *sd, int skill_num, int skill_lv); +void guild_guildaura_refresh(struct map_session_data *sd, uint16 skill_id, uint16 skill_lv); void do_final_guild(void); Index: src/map/homunculus.c --- src/map/homunculus.c Base (BASE) +++ src/map/homunculus.c Locally Modified (Based On LOCAL) @@ -49,7 +49,7 @@ //For holding the view data of npc classes. [Skotlex] static struct view_data hom_viewdb[MAX_HOMUNCULUS_CLASS]; -struct view_data *merc_get_hom_viewdata(int class_) { +struct view_data *merc_get_hom_viewdata(short class_) { //Returns the viewdata for homunculus if (homdb_checkid(class_)) return &hom_viewdb[class_-HM_CLASS_BASE]; @@ -273,7 +273,7 @@ return 0; } -int merc_hom_checkskill(struct homun_data *hd,int skill_id) +int merc_hom_checkskill(struct homun_data *hd, uint16 skill_id) { int i = skill_id - HM_SKILLBASE; if (!hd) @@ -287,15 +287,16 @@ int merc_skill_tree_get_max(int id, int b_class) { - int i, skillid; + int i; + uint16 skill_id; b_class -= HM_CLASS_BASE; - for (i=0; (skillid=hskill_tree[b_class][i].id)>0; i++) - if (id == skillid) + for (i=0; (skill_id=hskill_tree[b_class][i].id)>0; i++) + if (id == skill_id) return hskill_tree[b_class][i].max; return skill_get_max(id); } -void merc_hom_skillup(struct homun_data *hd,int skillnum) +void merc_hom_skillup(struct homun_data *hd,uint16 skill_id) { int i = 0 ; nullpo_retv(hd); @@ -303,17 +304,17 @@ if (hd->homunculus.vaporize) return; - i = skillnum - HM_SKILLBASE; + i = skill_id - HM_SKILLBASE; if (hd->homunculus.skillpts > 0 && hd->homunculus.hskill[i].id && hd->homunculus.hskill[i].flag == SKILL_FLAG_PERMANENT && //Don't allow raising while you have granted skills. [Skotlex] - hd->homunculus.hskill[i].lv < merc_skill_tree_get_max(skillnum, hd->homunculus.class_) + hd->homunculus.hskill[i].lv < merc_skill_tree_get_max(skill_id, hd->homunculus.class_) ) { hd->homunculus.hskill[i].lv++; hd->homunculus.skillpts-- ; status_calc_homunculus(hd,0); if (hd->master) { - clif_homskillup(hd->master, skillnum); + clif_homskillup(hd->master, skill_id); clif_hominfo(hd->master,hd,0); clif_homskillinfoblock(hd->master); } @@ -853,7 +854,7 @@ } // Recv homunculus data from char server -int merc_hom_recv_data(int account_id, struct s_homunculus *sh, int flag) +int merc_hom_recv_data(uint32 account_id, struct s_homunculus *sh, int flag) { struct map_session_data *sd; struct homun_data *hd; @@ -893,7 +894,7 @@ } // Ask homunculus creation to char server -int merc_create_homunculus_request(struct map_session_data *sd, int class_) +int merc_create_homunculus_request(struct map_session_data *sd, short class_) { struct s_homunculus homun; struct h_stats *base; @@ -1279,7 +1280,7 @@ int do_init_merc(void) { - int class_; + short class_; read_homunculusdb(); read_homunculus_expdb(); read_homunculus_skilldb(); Index: src/map/homunculus.h --- src/map/homunculus.h Base (BASE) +++ src/map/homunculus.h Locally Modified (Based On LOCAL) @@ -90,14 +90,14 @@ // merc_is_hom_alive(struct homun_data *) #define merc_is_hom_active(x) (x && x->homunculus.vaporize != 1 && x->battle_status.hp > 0) int do_init_merc(void); -int merc_hom_recv_data(int account_id, struct s_homunculus *sh, int flag); //albator -struct view_data *merc_get_hom_viewdata(int class_); +int merc_hom_recv_data(uint32 account_id, struct s_homunculus *sh, int flag); //albator +struct view_data *merc_get_hom_viewdata(short class_); int hom_class2mapid(int hom_class); void merc_damage(struct homun_data *hd); int merc_hom_dead(struct homun_data *hd); -void merc_hom_skillup(struct homun_data *hd,int skillnum); +void merc_hom_skillup(struct homun_data *hd,uint16 skill_id); int merc_hom_calc_skilltree(struct homun_data *hd, int flag_evolve); -int merc_hom_checkskill(struct homun_data *hd,int skill_id); +int merc_hom_checkskill(struct homun_data *hd,uint16 skill_id); int merc_hom_gainexp(struct homun_data *hd,int exp); int merc_hom_levelup(struct homun_data *hd); int merc_hom_evolution(struct homun_data *hd); @@ -110,7 +110,7 @@ int merc_hom_shuffle(struct homun_data *hd); // [Zephyrus] void merc_save(struct homun_data *hd); int merc_call_homunculus(struct map_session_data *sd); -int merc_create_homunculus_request(struct map_session_data *sd, int class_); +int merc_create_homunculus_request(struct map_session_data *sd, short class_); int search_homunculusDB_index(int key,int type); int merc_menu(struct map_session_data *sd,int menunum); int merc_hom_food(struct map_session_data *sd, struct homun_data *hd); Index: src/map/instance.c --- src/map/instance.c Base (BASE) +++ src/map/instance.c Locally Modified (Based On LOCAL) @@ -96,7 +96,7 @@ *--------------------------------------*/ int instance_add_map(const char *name, int instance_id, bool usebasename) { - int m = map_mapname2mapid(name), i, im = -1; + short m = map_mapname2mapid(name), i, im = -1; size_t num_cell, size; if (m < 0) @@ -165,7 +165,7 @@ * party_id : source party of this instance * type : result (0 = map id | 1 = instance id) *--------------------------------------*/ -int instance_map2imap(int m, int instance_id) +int instance_map2imap(short m, int instance_id) { int i; @@ -185,7 +185,7 @@ * instance_id : where to search * result : mapid of map "m" in this instance *--------------------------------------*/ -int instance_mapid2imapid(int m, int instance_id) +int instance_mapid2imapid(short m, int instance_id) { if (map[m].flag.src4instance == 0) return m; // not instances found for this map @@ -208,7 +208,7 @@ int instance_map_npcsub(struct block_list *bl, va_list args) { struct npc_data *nd = (struct npc_data *)bl; - int m = va_arg(args, int); // Destination Map + short m = va_arg(args, int); // Destination Map npc_duplicate4instance(nd, m); return 1; @@ -237,7 +237,7 @@ *--------------------------------------*/ int instance_del_load(struct map_session_data *sd, va_list args) { - int m = va_arg(args,int); + short m = va_arg(args,int); if (!sd || sd->bl.m != m) return 0; @@ -277,7 +277,7 @@ /*-------------------------------------- * Removes a simple instance map *--------------------------------------*/ -void instance_del_map(int m) +void instance_del_map(short m) { int i; if (m <= 0 || !map[m].instance_id) { @@ -441,7 +441,7 @@ *--------------------------------------*/ void instance_check_kick(struct map_session_data *sd) { - int m = sd->bl.m; + short m = sd->bl.m; clif_instance_leave(sd->fd); if (map[m].instance_id) { Index: src/map/instance.h --- src/map/instance.h Base (BASE) +++ src/map/instance.h Locally Modified (Based On LOCAL) @@ -35,9 +35,9 @@ int instance_create(int party_id, const char *name); int instance_add_map(const char *name, int instance_id, bool usebasename); -void instance_del_map(int m); -int instance_map2imap(int m, int instance_id); -int instance_mapid2imapid(int m, int instance_id); +void instance_del_map(short m); +int instance_map2imap(short m, int instance_id); +int instance_mapid2imapid(short m, int instance_id); void instance_destroy(int instance_id); void instance_init(int instance_id); Index: src/map/intif.c --- src/map/intif.c Base (BASE) +++ src/map/intif.c Locally Modified (Based On LOCAL) @@ -58,7 +58,7 @@ } // pet -int intif_create_pet(int account_id,int char_id,short pet_class,short pet_lv,short pet_egg_id, +int intif_create_pet(uint32 account_id,uint32 char_id,short pet_class,short pet_lv,short pet_egg_id, short pet_equip,short intimate,short hungry,char rename_flag,char incuvate,char *pet_name) { if (CheckForCharServer()) @@ -81,7 +81,7 @@ return 0; } -int intif_request_petdata(int account_id,int char_id,int pet_id) +int intif_request_petdata(uint32 account_id,uint32 char_id,uint32 pet_id) { if (CheckForCharServer()) return 0; @@ -95,7 +95,7 @@ return 0; } -int intif_save_petdata(int account_id,struct s_pet *p) +int intif_save_petdata(uint32 account_id,struct s_pet *p) { if (CheckForCharServer()) return 0; @@ -109,7 +109,7 @@ return 0; } -int intif_delete_petdata(int pet_id) +int intif_delete_petdata(uint32 pet_id) { if (CheckForCharServer()) return 0; @@ -361,7 +361,7 @@ return 0; } -int intif_request_guild_storage(int account_id,int guild_id) +int intif_request_guild_storage(uint32 account_id,uint32 guild_id) { if (CheckForCharServer()) return 0; @@ -372,7 +372,7 @@ WFIFOSET(inter_fd,10); return 0; } -int intif_send_guild_storage(int account_id,struct guild_storage *gstor) +int intif_send_guild_storage(uint32 account_id,struct guild_storage *gstor) { if (CheckForCharServer()) return 0; @@ -405,7 +405,7 @@ } // Party information request -int intif_request_partyinfo(int party_id, int char_id) +int intif_request_partyinfo(int party_id, uint32 char_id) { if (CheckForCharServer()) return 0; @@ -432,7 +432,7 @@ } // Request to change party configuration (exp,item share) -int intif_party_changeoption(int party_id,int account_id,int exp,int item) +int intif_party_changeoption(int party_id,uint32 account_id,int exp,int item) { if (CheckForCharServer()) return 0; @@ -447,7 +447,7 @@ } // Request to leave party -int intif_party_leave(int party_id,int account_id, int char_id) +int intif_party_leave(int party_id,uint32 account_id, uint32 char_id) { if (CheckForCharServer()) return 0; @@ -463,7 +463,7 @@ // Request keeping party for new map ?? int intif_party_changemap(struct map_session_data *sd,int online) { - int m, mapindex; + short m, mapindex; if (CheckForCharServer()) return 0; @@ -500,7 +500,7 @@ } // Sending party chat -int intif_party_message(int party_id,int account_id,const char *mes,int len) +int intif_party_message(int party_id,uint32 account_id,const char *mes,int len) { if (CheckForCharServer()) return 0; @@ -519,7 +519,7 @@ } // Request a new leader for party -int intif_party_leaderchange(int party_id,int account_id,int char_id) +int intif_party_leaderchange(int party_id,uint32 account_id,uint32 char_id) { if (CheckForCharServer()) return 0; @@ -550,7 +550,7 @@ } // Request Guild information -int intif_guild_request_info(int guild_id) +int intif_guild_request_info(uint32 guild_id) { if (CheckForCharServer()) return 0; @@ -562,7 +562,7 @@ } // Request to add member to the guild -int intif_guild_addmember(int guild_id,struct guild_member *m) +int intif_guild_addmember(uint32 guild_id,struct guild_member *m) { if (CheckForCharServer()) return 0; @@ -576,7 +576,7 @@ } // Request a new leader for guild -int intif_guild_change_gm(int guild_id, const char *name, int len) +int intif_guild_change_gm(uint32 guild_id, const char *name, int len) { if (CheckForCharServer()) return 0; @@ -590,7 +590,7 @@ } // Request to leave guild -int intif_guild_leave(int guild_id,int account_id,int char_id,int flag,const char *mes) +int intif_guild_leave(uint32 guild_id,uint32 account_id,uint32 char_id,int flag,const char *mes) { if (CheckForCharServer()) return 0; @@ -606,7 +606,7 @@ } //Update request / Lv online status of the guild members -int intif_guild_memberinfoshort(int guild_id,int account_id,int char_id,int online,int lv,int class_) +int intif_guild_memberinfoshort(uint32 guild_id,uint32 account_id,uint32 char_id,int online,int lv,short class_) { if (CheckForCharServer()) return 0; @@ -623,7 +623,7 @@ } //Guild disbanded notification -int intif_guild_break(int guild_id) +int intif_guild_break(uint32 guild_id) { if (CheckForCharServer()) return 0; @@ -635,7 +635,7 @@ } // Send a guild message -int intif_guild_message(int guild_id,int account_id,const char *mes,int len) +int intif_guild_message(uint32 guild_id,uint32 account_id,const char *mes,int len) { if (CheckForCharServer()) return 0; @@ -655,7 +655,7 @@ } // Request a change of Guild basic information -int intif_guild_change_basicinfo(int guild_id,int type,const void *data,int len) +int intif_guild_change_basicinfo(uint32 guild_id,int type,const void *data,int len) { if (CheckForCharServer()) return 0; @@ -670,7 +670,7 @@ } // Request a change of Guild member information -int intif_guild_change_memberinfo(int guild_id,int account_id,int char_id, +int intif_guild_change_memberinfo(uint32 guild_id,uint32 account_id,uint32 char_id, int type,const void *data,int len) { if (CheckForCharServer()) @@ -688,7 +688,7 @@ } // Request a change of Guild title -int intif_guild_position(int guild_id,int idx,struct guild_position *p) +int intif_guild_position(uint32 guild_id,int idx,struct guild_position *p) { if (CheckForCharServer()) return 0; @@ -702,15 +702,15 @@ return 0; } -// Request an update of Guildskill skillnum -int intif_guild_skillup(int guild_id, int skill_num, int account_id, int max) +// Request an update of Guildskill skillid +int intif_guild_skillup(uint32 guild_id, uint16 skill_id, uint32 account_id, int max) { if (CheckForCharServer()) return 0; WFIFOHEAD(inter_fd, 18); WFIFOW(inter_fd, 0) = 0x303c; WFIFOL(inter_fd, 2) = guild_id; - WFIFOL(inter_fd, 6) = skill_num; + WFIFOL(inter_fd, 6) = skill_id; WFIFOL(inter_fd, 10) = account_id; WFIFOL(inter_fd, 14) = max; WFIFOSET(inter_fd, 18); @@ -718,7 +718,7 @@ } // Request a new guild relationship -int intif_guild_alliance(int guild_id1,int guild_id2,int account_id1,int account_id2,int flag) +int intif_guild_alliance(uint32 guild_id1,uint32 guild_id2,uint32 account_id1,uint32 account_id2,int flag) { if (CheckForCharServer()) return 0; @@ -734,7 +734,7 @@ } // Request to change guild notice -int intif_guild_notice(int guild_id,const char *mes1,const char *mes2) +int intif_guild_notice(uint32 guild_id,const char *mes1,const char *mes2) { if (CheckForCharServer()) return 0; @@ -748,7 +748,7 @@ } // Request to change guild emblem -int intif_guild_emblem(int guild_id,int len,const char *data) +int intif_guild_emblem(uint32 guild_id,int len,const char *data) { if (CheckForCharServer()) return 0; @@ -800,7 +800,7 @@ // Homunculus Packets send to Inter server [albator] //----------------------------------------------------------------- -int intif_homunculus_create(int account_id, struct s_homunculus *sh) +int intif_homunculus_create(uint32 account_id, struct s_homunculus *sh) { if (CheckForCharServer()) return 0; @@ -813,7 +813,7 @@ return 0; } -int intif_homunculus_requestload(int account_id, int homun_id) +int intif_homunculus_requestload(uint32 account_id, int homun_id) { if (CheckForCharServer()) return 0; @@ -825,7 +825,7 @@ return 1; } -int intif_homunculus_requestsave(int account_id, struct s_homunculus *sh) +int intif_homunculus_requestsave(uint32 account_id, struct s_homunculus *sh) { if (CheckForCharServer()) return 0; @@ -953,7 +953,7 @@ struct map_session_data *sd; struct global_reg *reg; int *qty; - int account_id = RFIFOL(fd,4), char_id = RFIFOL(fd,8); + uint32 account_id = RFIFOL(fd,4), char_id = RFIFOL(fd,8); struct auth_node *node = chrif_auth_check(account_id, char_id, ST_LOGIN); if (node) sd = node->sd; @@ -1005,7 +1005,7 @@ { struct guild_storage *gstor; struct map_session_data *sd; - int guild_id; + uint32 guild_id; guild_id = RFIFOL(fd,8); if (guild_id <= 0) @@ -1172,8 +1172,8 @@ int intif_parse_GuildBasicInfoChanged(int fd) { //int len = RFIFOW(fd,2) - 10; - int guild_id = RFIFOL(fd,4); - int type = RFIFOW(fd,8); + uint32 guild_id = RFIFOL(fd,4); + uint16 type = RFIFOW(fd,8); //void* data = RFIFOP(fd,10); struct guild *g = guild_search(guild_id); @@ -1200,10 +1200,10 @@ int intif_parse_GuildMemberInfoChanged(int fd) { //int len = RFIFOW(fd,2) - 18; - int guild_id = RFIFOL(fd,4); - int account_id = RFIFOL(fd,8); - int char_id = RFIFOL(fd,12); - int type = RFIFOW(fd,16); + uint32 guild_id = RFIFOL(fd,4); + uint32 account_id = RFIFOL(fd,8); + uint32 char_id = RFIFOL(fd,12); + uint16 type = RFIFOW(fd,16); //void* data = RFIFOP(fd,18); struct guild *g; @@ -1427,7 +1427,7 @@ int intif_parse_questlog(int fd) { - int char_id = RFIFOL(fd, 4); + uint32 char_id = RFIFOL(fd, 4); int i; TBL_PC *sd = map_charid2sd(char_id); @@ -1503,7 +1503,7 @@ * Inbox Request * flag: 0 Update Inbox | 1 OpenMail *------------------------------------------*/ -int intif_Mail_requestinbox(int char_id, unsigned char flag) +int intif_Mail_requestinbox(uint32 char_id, unsigned char flag) { if (CheckForCharServer()) return 0; @@ -1550,7 +1550,7 @@ /*------------------------------------------ * Mail Read *------------------------------------------*/ -int intif_Mail_read(int mail_id) +int intif_Mail_read(uint32 mail_id) { if (CheckForCharServer()) return 0; @@ -1565,7 +1565,7 @@ /*------------------------------------------ * Get Attachment *------------------------------------------*/ -int intif_Mail_getattach(int char_id, int mail_id) +int intif_Mail_getattach(uint32 char_id, uint32 mail_id) { if (CheckForCharServer()) return 0; @@ -1605,7 +1605,7 @@ /*------------------------------------------ * Delete Message *------------------------------------------*/ -int intif_Mail_delete(int char_id, int mail_id) +int intif_Mail_delete(uint32 char_id, uint32 mail_id) { if (CheckForCharServer()) return 0; @@ -1621,8 +1621,8 @@ int intif_parse_Mail_delete(int fd) { - int char_id = RFIFOL(fd,2); - int mail_id = RFIFOL(fd,6); + uint32 char_id = RFIFOL(fd,2); + uint32 mail_id = RFIFOL(fd,6); bool failed = RFIFOB(fd,10); struct map_session_data *sd = map_charid2sd(char_id); @@ -1649,7 +1649,7 @@ /*------------------------------------------ * Return Message *------------------------------------------*/ -int intif_Mail_return(int char_id, int mail_id) +int intif_Mail_return(uint32 char_id, uint32 mail_id) { if (CheckForCharServer()) return 0; @@ -1692,7 +1692,7 @@ /*------------------------------------------ * Send Mail *------------------------------------------*/ -int intif_Mail_send(int account_id, struct mail_message *msg) +int intif_Mail_send(uint32 account_id, struct mail_message *msg) { int len = sizeof(struct mail_message) + 8; @@ -1754,7 +1754,7 @@ * AUCTION SYSTEM * By Zephyrus *==========================================*/ -int intif_Auction_requestlist(int char_id, short type, int price, const char *searchtext, short page) +int intif_Auction_requestlist(uint32 char_id, short type, int price, const char *searchtext, short page) { int len = NAME_LENGTH + 16; @@ -1831,7 +1831,7 @@ } } -int intif_Auction_cancel(int char_id, unsigned int auction_id) +int intif_Auction_cancel(uint32 char_id, unsigned int auction_id) { if (CheckForCharServer()) return 0; @@ -1869,7 +1869,7 @@ } } -int intif_Auction_close(int char_id, unsigned int auction_id) +int intif_Auction_close(uint32 char_id, unsigned int auction_id) { if (CheckForCharServer()) return 0; @@ -1899,7 +1899,7 @@ } } -int intif_Auction_bid(int char_id, const char *name, unsigned int auction_id, int bid) +int intif_Auction_bid(uint32 char_id, const char *name, unsigned int auction_id, int bid) { int len = 16 + NAME_LENGTH; @@ -1981,7 +1981,7 @@ return 0; } -int intif_mercenary_request(int merc_id, int char_id) +int intif_mercenary_request(uint32 merc_id, uint32 char_id) { if (CheckForCharServer()) return 0; @@ -1994,7 +1994,7 @@ return 0; } -int intif_mercenary_delete(int merc_id) +int intif_mercenary_delete(uint32 merc_id) { if (CheckForCharServer()) return 0; @@ -2068,7 +2068,7 @@ return 0; } -int intif_elemental_request(int ele_id, int char_id) +int intif_elemental_request(uint32 ele_id, uint32 char_id) { if (CheckForCharServer()) return 0; @@ -2081,7 +2081,7 @@ return 0; } -int intif_elemental_delete(int ele_id) +int intif_elemental_delete(uint32 ele_id) { if (CheckForCharServer()) return 0; @@ -2124,7 +2124,7 @@ return 0; } -void intif_request_accinfo(int u_fd, int aid, int group_id, char *query) +void intif_request_accinfo(int u_fd, uint32 account_id, uint32 group_id, char *query) { @@ -2132,7 +2132,7 @@ WFIFOW(inter_fd,0) = 0x3007; WFIFOL(inter_fd,2) = u_fd; - WFIFOL(inter_fd,6) = aid; + WFIFOL(inter_fd,6) = account_id; WFIFOL(inter_fd,10) = group_id; safestrncpy((char *)WFIFOP(inter_fd,14), query, NAME_LENGTH); Index: src/map/intif.h --- src/map/intif.h Base (BASE) +++ src/map/intif.h Locally Modified (Based On LOCAL) @@ -27,52 +27,52 @@ int intif_saveregistry(struct map_session_data *sd, int type); int intif_request_registry(struct map_session_data *sd, int flag); -int intif_request_guild_storage(int account_id, int guild_id); -int intif_send_guild_storage(int account_id, struct guild_storage *gstor); +int intif_request_guild_storage(uint32 account_id, uint32 guild_id); +int intif_send_guild_storage(uint32 account_id, struct guild_storage *gstor); int intif_create_party(struct party_member *member,char *name,int item,int item2); -int intif_request_partyinfo(int party_id, int char_id); +int intif_request_partyinfo(int party_id, uint32 char_id); int intif_party_addmember(int party_id,struct party_member *member); -int intif_party_changeoption(int party_id, int account_id, int exp, int item); -int intif_party_leave(int party_id,int account_id, int char_id); +int intif_party_changeoption(int party_id, uint32 account_id, int exp, int item); +int intif_party_leave(int party_id,uint32 account_id, uint32 char_id); int intif_party_changemap(struct map_session_data *sd, int online); int intif_break_party(int party_id); -int intif_party_message(int party_id, int account_id, const char *mes,int len); -int intif_party_leaderchange(int party_id,int account_id,int char_id); +int intif_party_message(int party_id, uint32 account_id, const char *mes,int len); +int intif_party_leaderchange(int party_id,uint32 account_id,uint32 char_id); int intif_guild_create(const char *name, const struct guild_member *master); -int intif_guild_request_info(int guild_id); -int intif_guild_addmember(int guild_id, struct guild_member *m); -int intif_guild_leave(int guild_id, int account_id, int char_id, int flag, const char *mes); -int intif_guild_memberinfoshort(int guild_id, int account_id, int char_id, int online, int lv, int class_); -int intif_guild_break(int guild_id); -int intif_guild_message(int guild_id, int account_id, const char *mes, int len); -int intif_guild_change_gm(int guild_id, const char *name, int len); -int intif_guild_change_basicinfo(int guild_id, int type, const void *data, int len); -int intif_guild_change_memberinfo(int guild_id, int account_id, int char_id, int type, const void *data, int len); -int intif_guild_position(int guild_id, int idx, struct guild_position *p); -int intif_guild_skillup(int guild_id, int skill_num, int account_id, int max); -int intif_guild_alliance(int guild_id1, int guild_id2, int account_id1, int account_id2, int flag); -int intif_guild_notice(int guild_id, const char *mes1, const char *mes2); -int intif_guild_emblem(int guild_id, int len, const char *data); +int intif_guild_request_info(uint32 guild_id); +int intif_guild_addmember(uint32 guild_id, struct guild_member *m); +int intif_guild_leave(uint32 guild_id, uint32 account_id, uint32 char_id, int flag, const char *mes); +int intif_guild_memberinfoshort(uint32 guild_id, uint32 account_id, uint32 char_id, int online, int lv, short class_); +int intif_guild_break(uint32 guild_id); +int intif_guild_message(uint32 guild_id, uint32 account_id, const char *mes, int len); +int intif_guild_change_gm(uint32 guild_id, const char *name, int len); +int intif_guild_change_basicinfo(uint32 guild_id, int type, const void *data, int len); +int intif_guild_change_memberinfo(uint32 guild_id, uint32 account_id, uint32 char_id, int type, const void *data, int len); +int intif_guild_position(uint32 guild_id, int idx, struct guild_position *p); +int intif_guild_skillup(uint32 guild_id, uint16 skill_id, uint32 account_id, int max); +int intif_guild_alliance(uint32 guild_id1, uint32 guild_id2, uint32 account_id1, uint32 account_id2, int flag); +int intif_guild_notice(uint32 guild_id, const char *mes1, const char *mes2); +int intif_guild_emblem(uint32 guild_id, int len, const char *data); int intif_guild_castle_dataload(int num, int *castle_ids); int intif_guild_castle_datasave(int castle_id, int index, int value); -int intif_create_pet(int account_id, int char_id, short pet_type, short pet_lv, short pet_egg_id, +int intif_create_pet(uint32 account_id, uint32 char_id, short pet_type, short pet_lv, short pet_egg_id, short pet_equip, short intimate, short hungry, char rename_flag, char incuvate, char *pet_name); -int intif_request_petdata(int account_id, int char_id, int pet_id); -int intif_save_petdata(int account_id, struct s_pet *p); -int intif_delete_petdata(int pet_id); +int intif_request_petdata(uint32 account_id, uint32 char_id, uint32 pet_id); +int intif_save_petdata(uint32 account_id, struct s_pet *p); +int intif_delete_petdata(uint32 pet_id); int intif_rename(struct map_session_data *sd, int type, char *name); #define intif_rename_pc(sd, name) intif_rename(sd, 0, name) #define intif_rename_pet(sd, name) intif_rename(sd, 1, name) #define intif_rename_hom(sd, name) intif_rename(sd, 2, name) -int intif_homunculus_create(int account_id, struct s_homunculus *sh); -int intif_homunculus_requestload(int account_id, int homun_id); -int intif_homunculus_requestsave(int account_id, struct s_homunculus *sh); +int intif_homunculus_create(uint32 account_id, struct s_homunculus *sh); +int intif_homunculus_requestload(uint32 account_id, int homun_id); +int intif_homunculus_requestsave(uint32 account_id, struct s_homunculus *sh); int intif_homunculus_requestdelete(int homun_id); /******QUEST SYTEM*******/ @@ -81,31 +81,31 @@ // MERCENARY SYSTEM int intif_mercenary_create(struct s_mercenary *merc); -int intif_mercenary_request(int merc_id, int char_id); -int intif_mercenary_delete(int merc_id); +int intif_mercenary_request(uint32 merc_id, uint32 char_id); +int intif_mercenary_delete(uint32 merc_id); int intif_mercenary_save(struct s_mercenary *merc); // MAIL SYSTEM -int intif_Mail_requestinbox(int char_id, unsigned char flag); -int intif_Mail_read(int mail_id); -int intif_Mail_getattach(int char_id, int mail_id); -int intif_Mail_delete(int char_id, int mail_id); -int intif_Mail_return(int char_id, int mail_id); -int intif_Mail_send(int account_id, struct mail_message *msg); +int intif_Mail_requestinbox(uint32 char_id, unsigned char flag); +int intif_Mail_read(uint32 mail_id); +int intif_Mail_getattach(uint32 char_id, uint32 mail_id); +int intif_Mail_delete(uint32 char_id, uint32 mail_id); +int intif_Mail_return(uint32 char_id, uint32 mail_id); +int intif_Mail_send(uint32 account_id, struct mail_message *msg); // AUCTION SYSTEM -int intif_Auction_requestlist(int char_id, short type, int price, const char *searchtext, short page); +int intif_Auction_requestlist(uint32 char_id, short type, int price, const char *searchtext, short page); int intif_Auction_register(struct auction_data *auction); -int intif_Auction_cancel(int char_id, unsigned int auction_id); -int intif_Auction_close(int char_id, unsigned int auction_id); -int intif_Auction_bid(int char_id, const char *name, unsigned int auction_id, int bid); +int intif_Auction_cancel(uint32 char_id, unsigned int auction_id); +int intif_Auction_close(uint32 char_id, unsigned int auction_id); +int intif_Auction_bid(uint32 char_id, const char *name, unsigned int auction_id, int bid); // ELEMENTAL SYSTEM int intif_elemental_create(struct s_elemental *ele); -int intif_elemental_request(int ele_id, int char_id); -int intif_elemental_delete(int ele_id); +int intif_elemental_request(uint32 ele_id, uint32 char_id); +int intif_elemental_delete(uint32 ele_id); int intif_elemental_save(struct s_elemental *ele); /* @accinfo */ -void intif_request_accinfo(int u_fd, int aid, int group_id, char *query); +void intif_request_accinfo(int u_fd, uint32 aid, uint32 group_id, char *query); int CheckForCharServer(void); Index: src/map/itemdb.h --- src/map/itemdb.h Base (BASE) +++ src/map/itemdb.h Locally Modified (Based On LOCAL) @@ -85,7 +85,7 @@ #define UNKNOWN_ITEM_ID 512 struct item_data { - int nameid; + short nameid; char name[ITEM_NAME_LENGTH],jname[ITEM_NAME_LENGTH]; //Do not add stuff between value_buy and view_id (see how getiteminfo works) Index: src/map/log.c --- src/map/log.c Base (BASE) +++ src/map/log.c Locally Modified (Based On LOCAL) @@ -189,7 +189,7 @@ } /// logs item transactions (generic) -void log_pick(int id, int m, e_log_pick_type type, int amount, struct item *itm) +void log_pick(int id, short m, e_log_pick_type type, int amount, struct item *itm) { nullpo_retv(itm); if ((log_config.enable_logs&type) == 0) { Index: src/map/map.c --- src/map/map.c Base (BASE) +++ src/map/map.c Locally Modified (Based On LOCAL) @@ -99,8 +99,8 @@ static DBMap *mobid_db=NULL; // int id -> struct mob_data* static DBMap *bossid_db=NULL; // int id -> struct mob_data* (MVP db) static DBMap *map_db=NULL; // unsigned int mapindex -> struct map_data* -static DBMap *nick_db=NULL; // int char_id -> struct charid2nick* (requested names of offline characters) -static DBMap *charid_db=NULL; // int char_id -> struct map_session_data* +static DBMap *nick_db=NULL; // uint32 char_id -> struct charid2nick* (requested names of offline characters) +static DBMap *charid_db=NULL; // uint32 char_id -> struct map_session_data* static DBMap *regen_db=NULL; // int id -> struct block_list* (status_natural_heal processing) static int map_users=0; @@ -176,7 +176,7 @@ /*========================================== * server player count (this mapserver only) *------------------------------------------*/ -int map_usercount(void) +unsigned int map_usercount(void) { return pc_db->size(pc_db); } @@ -275,7 +275,8 @@ *------------------------------------------*/ int map_addblock(struct block_list *bl) { - int m, x, y, pos; + short m, x, y; + int pos; nullpo_ret(bl); @@ -363,9 +364,9 @@ * Pass flag as 1 to prevent doing skill_unit_move checks * (which are executed by default on BL_CHAR types) *------------------------------------------*/ -int map_moveblock(struct block_list *bl, int x1, int y1, unsigned int tick) +int map_moveblock(struct block_list *bl, short x1, short y1, unsigned int tick) { - int x0 = bl->x, y0 = bl->y; + short x0 = bl->x, y0 = bl->y; struct status_change *sc = NULL; int moveblock = (x0/BLOCK_SIZE != x1/BLOCK_SIZE || y0/BLOCK_SIZE != y1/BLOCK_SIZE); @@ -442,7 +443,7 @@ && sc->data[SC_PROPERTYWALK]->val3 < skill_get_maxcount(sc->data[SC_PROPERTYWALK]->val1,sc->data[SC_PROPERTYWALK]->val2) && map_find_skill_unit_oncell(bl,bl->x,bl->y,SO_ELECTRICWALK,NULL,0) == NULL && map_find_skill_unit_oncell(bl,bl->x,bl->y,SO_FIREWALK,NULL,0) == NULL - && skill_unitsetting(bl,sc->data[SC_PROPERTYWALK]->val1,sc->data[SC_PROPERTYWALK]->val2,x0, y0,0)) { + && skill_unitsetting(bl,(short) sc->data[SC_PROPERTYWALK]->val1, (short) sc->data[SC_PROPERTYWALK]->val2, x0, y0,0)) { sc->data[SC_PROPERTYWALK]->val3++; } @@ -469,9 +470,9 @@ /*========================================== * Counts specified number of objects on given cell. *------------------------------------------*/ -int map_count_oncell(int m, int x, int y, int type) +int map_count_oncell(short m, short x, short y, unsigned int type) { - int bx,by; + short bx,by; struct block_list *bl; int count = 0; @@ -497,8 +498,8 @@ * Looks for a skill unit on a given cell * flag&1: runs battle_check_target check based on unit->group->target_flag */ -struct skill_unit *map_find_skill_unit_oncell(struct block_list *target,int x,int y,int skill_id,struct skill_unit *out_unit, int flag) { - int m,bx,by; +struct skill_unit *map_find_skill_unit_oncell(struct block_list *target,short x,short y,uint16 skill_id,struct skill_unit *out_unit, int flag) { + short m,bx,by; struct block_list *bl; struct skill_unit *unit; m = target->m; @@ -525,7 +526,7 @@ /*========================================== * Adapted from foreachinarea for an easier invocation. [Skotlex] *------------------------------------------*/ -int map_foreachinrange(int (*func)(struct block_list *,va_list), struct block_list *center, int range, int type, ...) +int map_foreachinrange(int (*func)(struct block_list *,va_list), struct block_list *center, short range, unsigned int type, ...) { int bx, by, m; int returnCount = 0; //total sum of returned values of func() [Skotlex] @@ -590,7 +591,7 @@ /*========================================== * Same as foreachinrange, but there must be a shoot-able range between center and target to be counted in. [Skotlex] *------------------------------------------*/ -int map_foreachinshootrange(int (*func)(struct block_list *,va_list),struct block_list *center, int range, int type,...) +int map_foreachinshootrange(int (*func)(struct block_list *,va_list),struct block_list *center, short range, unsigned int type,...) { int bx, by, m; int returnCount = 0; //total sum of returned values of func() [Skotlex] @@ -661,7 +662,7 @@ * Apply *func with ... arguments for the range. * @type = BL_PC/BL_MOB etc.. *------------------------------------------*/ -int map_foreachinarea(int (*func)(struct block_list *,va_list), int m, int x0, int y0, int x1, int y1, int type, ...) +int map_foreachinarea(int (*func)(struct block_list *,va_list), short m, short x0, short y0, short x1, short y1, unsigned int type, ...) { int bx, by; int returnCount = 0; //total sum of returned values of func() [Skotlex] @@ -679,8 +680,8 @@ x0 = max(x0, 0); y0 = max(y0, 0); - x1 = min(x1, map[ m ].xs - 1); - y1 = min(y1, map[ m ].ys - 1); + x1 =(short) min(x1, map[ m ].xs - 1); + y1 =(short) min(y1, map[ m ].ys - 1); if (type&~BL_MOB) for (by = y0 / BLOCK_SIZE; by <= y1 / BLOCK_SIZE; by++) for (bx = x0 / BLOCK_SIZE; bx <= x1 / BLOCK_SIZE; bx++) @@ -715,7 +716,7 @@ /*========================================== * Adapted from forcountinarea for an easier invocation. [pakpil] *------------------------------------------*/ -int map_forcountinrange(int (*func)(struct block_list *,va_list), struct block_list *center, int range, int count, int type, ...) +int map_forcountinrange(int (*func)(struct block_list *,va_list), struct block_list *center, short range, int count, unsigned int type, ...) { int bx, by, m; int returnCount = 0; //total sum of returned values of func() [Skotlex] @@ -777,7 +778,7 @@ bl_list_count = blockcount; return returnCount; //[Skotlex] } -int map_forcountinarea(int (*func)(struct block_list *,va_list), int m, int x0, int y0, int x1, int y1, int count, int type, ...) +int map_forcountinarea(int (*func)(struct block_list *,va_list), short m, short x0, short y0, short x1, short y1, int count, unsigned int type, ...) { int bx, by; int returnCount = 0; //total sum of returned values of func() [Skotlex] @@ -795,8 +796,8 @@ x0 = max(x0, 0); y0 = max(y0, 0); - x1 = min(x1, map[ m ].xs - 1); - y1 = min(y1, map[ m ].ys - 1); + x1 =(short) min(x1, map[ m ].xs - 1); + y1 =(short) min(y1, map[ m ].ys - 1); if (type&~BL_MOB) for (by = y0 / BLOCK_SIZE; by <= y1 / BLOCK_SIZE; by++) @@ -837,13 +838,13 @@ * Move bl and do func* with va_list while moving. * Mouvement is set by dx dy wich are distance in x and y *------------------------------------------*/ -int map_foreachinmovearea(int (*func)(struct block_list *,va_list), struct block_list *center, int range, int dx, int dy, int type, ...) +int map_foreachinmovearea(int (*func)(struct block_list *,va_list), struct block_list *center, short range, short dx, short dy, unsigned int type, ...) { - int bx, by, m; + short bx, by, m; int returnCount = 0; //total sum of returned values of func() [Skotlex] struct block_list *bl; int blockcount = bl_list_count, i; - int x0, x1, y0, y1; + short x0, x1, y0, y1; va_list ap; if (!range) return 0; @@ -877,8 +878,8 @@ x0 = max(x0, 0); y0 = max(y0, 0); - x1 = min(x1, map[ m ].xs - 1); - y1 = min(y1, map[ m ].ys - 1); + x1 =(short) min(x1, map[ m ].xs - 1); + y1 =(short) min(y1, map[ m ].ys - 1); for (by = y0 / BLOCK_SIZE; by <= y1 / BLOCK_SIZE; by++) { for (bx = x0 / BLOCK_SIZE; bx <= x1 / BLOCK_SIZE; bx++) { @@ -905,8 +906,8 @@ x0 = max(x0, 0); y0 = max(y0, 0); - x1 = min(x1, map[ m ].xs - 1); - y1 = min(y1, map[ m ].ys - 1); + x1 =(short) min(x1, map[ m ].xs - 1); + y1 =(short) min(y1, map[ m ].ys - 1); for (by = y0 / BLOCK_SIZE; by <= y1 / BLOCK_SIZE; by++) { for (bx = x0 / BLOCK_SIZE; bx <= x1 / BLOCK_SIZE; bx++) { @@ -962,7 +963,7 @@ // which only checks the exact single x/y passed to it rather than an // area radius - may be more useful in some instances) // -int map_foreachincell(int (*func)(struct block_list *,va_list), int m, int x, int y, int type, ...) +int map_foreachincell(int (*func)(struct block_list *,va_list), short m, short x, short y, int type, ...) { int bx, by; int returnCount = 0; //total sum of returned values of func() [Skotlex] @@ -1005,7 +1006,7 @@ /*============================================================ * For checking a path between two points (x0, y0) and (x1, y1) *------------------------------------------------------------*/ -int map_foreachinpath(int (*func)(struct block_list *,va_list),int m,int x0,int y0,int x1,int y1,int range,int length, int type,...) +int map_foreachinpath(int (*func)(struct block_list *,va_list),short m,short x0,short y0,short x1,short y1,short range,int length, unsigned int type,...) { int returnCount = 0; //total sum of returned values of func() [Skotlex] ////////////////////////////////////////////////////////////// @@ -1092,8 +1093,8 @@ mx0 = max(mx0, 0); my0 = max(my0, 0); - mx1 = min(mx1, map[ m ].xs - 1); - my1 = min(my1, map[ m ].ys - 1); + mx1 =(short) min(mx1, map[ m ].xs - 1); + my1 =(short) min(my1, map[ m ].ys - 1); range *= range << 8; //Values are shifted later on for higher precision using int math. @@ -1183,7 +1184,7 @@ } // Copy of map_foreachincell, but applied to the whole map. [Skotlex] -int map_foreachinmap(int (*func)(struct block_list *,va_list), int m, int type,...) +int map_foreachinmap(int (*func)(struct block_list *,va_list), short m, int type,...) { int b, bsize; int returnCount = 0; //total sum of returned values of func() [Skotlex] @@ -1300,7 +1301,7 @@ * to place an BL_ITEM object. Scan area is 9x9, returns 1 on success. * x and y are modified with the target cell when successful. *------------------------------------------*/ -int map_searchrandfreecell(int m,int *x,int *y,int stack) +int map_searchrandfreecell(short m,short *x,short *y,int stack) { int free_cell,i,j; int free_cells[9][2]; @@ -1346,10 +1347,10 @@ * &2 = the target should be able to walk to the target tile. * &4 = there shouldn't be any players around the target tile (use the no_spawn_on_player setting) *------------------------------------------*/ -int map_search_freecell(struct block_list *src, int m, short *x,short *y, int rx, int ry, int flag) +int map_search_freecell(struct block_list *src, short m, short *x,short *y, short rx, short ry, int flag) { int tries, spawn=0; - int bx, by; + short bx, by; int rx2 = 2*rx+1; int ry2 = 2*ry+1; @@ -1417,7 +1418,7 @@ * @first_charid, @second_charid, @third_charid, looting priority * @flag: &1 MVP item. &2 do stacking check. *------------------------------------------*/ -int map_addflooritem(struct item *item_data,int amount,int m,int x,int y,int first_charid,int second_charid,int third_charid,int flags) +int map_addflooritem(struct item *item_data,int amount,short m,short x,short y,int first_charid,int second_charid,int third_charid,int flags) { int r; struct flooritem_data *fitem=NULL; @@ -1690,7 +1691,7 @@ if (map[sd->bl.m].instance_id) { // Avoid map conflicts and warnings on next login - int m; + short m; struct point *pt; if (map[sd->bl.m].save.map) pt = &map[sd->bl.m].save; @@ -1839,7 +1840,7 @@ /*========================================== * Convext Mirror *------------------------------------------*/ -struct mob_data *map_getmob_boss(int m) { +struct mob_data *map_getmob_boss(short m) { DBIterator *iter; struct mob_data *md = NULL; bool found = false; @@ -2108,7 +2109,7 @@ /*========================================== * Add npc-bl to id_db, basically register npc to map *------------------------------------------*/ -bool map_addnpc(int m,struct npc_data *nd) +bool map_addnpc(short m,struct npc_data *nd) { nullpo_ret(nd); @@ -2131,9 +2132,9 @@ *-----------------------------------------*/ // Stores the spawn data entry in the mob list. // Returns the index of successful, or -1 if the list was full. -int map_addmobtolist(unsigned short m, struct spawn_data *spawn) +int map_addmobtolist(short m, struct spawn_data *spawn) { - size_t i; + int i; ARR_FIND(0, MAX_MOB_LIST_PER_MAP, i, map[m].moblist[i] == NULL); if (i < MAX_MOB_LIST_PER_MAP) { map[m].moblist[i] = spawn; @@ -2142,7 +2143,7 @@ return -1; } -void map_spawnmobs(int m) +void map_spawnmobs(short m) { int i, k=0; if (map[m].mob_delete_timer != INVALID_TIMER) { @@ -2192,7 +2193,7 @@ int map_removemobs_timer(int tid, unsigned int tick, int id, intptr_t data) { int count; - const int m = id; + const short m = id; if (m < 0 || m >= MAX_MAP_PER_SERVER) { //Incorrect map id! @@ -2216,7 +2217,7 @@ return 1; } -void map_removemobs(int m) +void map_removemobs(short m) { if (map[m].mob_delete_timer != INVALID_TIMER) // should never happen return; //Mobs are already scheduled for removal @@ -2227,7 +2228,7 @@ /*========================================== * Hookup, get map_id from map_name *------------------------------------------*/ -int map_mapname2mapid(const char *name) +short map_mapname2mapid(const char *name) { unsigned short map_index; map_index = mapindex_name2id(name); @@ -2239,7 +2240,7 @@ /*========================================== * Returns the map of the given mapindex. [Skotlex] *------------------------------------------*/ -int map_mapindex2mapid(unsigned short mapindex) +short map_mapindex2mapid(unsigned short mapindex) { struct map_data *md=NULL; @@ -2306,7 +2307,7 @@ /*========================================== * Returns the direction of the given cell, relative to 'src' *------------------------------------------*/ -uint8 map_calc_dir(struct block_list *src, int x, int y) +uint8 map_calc_dir(struct block_list *src, short x, short y) { unsigned char dir = 0; int dx, dy; @@ -2441,12 +2442,12 @@ /*========================================== * Confirm if celltype in (m,x,y) match the one given in cellchk *------------------------------------------*/ -int map_getcell(int m,int x,int y,cell_chk cellchk) +int map_getcell(short m,short x,short y,cell_chk cellchk) { return (m < 0 || m >= MAX_MAP_PER_SERVER) ? 0 : map_getcellp(&map[m],x,y,cellchk); } -int map_getcellp(struct map_data *m,int x,int y,cell_chk cellchk) +int map_getcellp(struct map_data *m,short x,short y,cell_chk cellchk) { struct mapcell cell; @@ -2522,7 +2523,7 @@ * 'cell' - which flag to modify * 'flag' - true = on, false = off *------------------------------------------*/ -void map_setcell(int m, int x, int y, cell_t cell, bool flag) +void map_setcell(short m, short x, short y, cell_t cell, bool flag) { int j; @@ -2569,7 +2570,7 @@ } } -void map_setgatcell(int m, int x, int y, int gat) +void map_setgatcell(short m, short x, short y, int gat) { int j; struct mapcell cell; @@ -2590,7 +2591,7 @@ *------------------------------------------*/ static DBMap *iwall_db; -void map_iwall_nextxy(int x, int y, int dir, int pos, int *x1, int *y1) +void map_iwall_nextxy(short x, short y, int dir, int pos, short *x1, short *y1) { if (dir == 0 || dir == 4) *x1 = x; // Keep X @@ -2607,10 +2608,10 @@ *y1 = y + pos; } -bool map_iwall_set(int m, int x, int y, int size, int dir, bool shootable, const char *wall_name) +bool map_iwall_set(short m, short x, short y, short size, short dir, bool shootable, const char *wall_name) { struct iwall_data *iwall; - int i, x1 = 0, y1 = 0; + short i, x1 = 0, y1 = 0; if (size < 1 || !wall_name) return false; @@ -2654,8 +2655,7 @@ { struct iwall_data *iwall; DBIterator *iter; - int x1, y1; - int i; + short x1, y1, i; if (map[sd->bl.m].iwall_num < 1) return; @@ -2676,7 +2676,7 @@ void map_iwall_remove(const char *wall_name) { struct iwall_data *iwall; - int i, x1, y1; + short i, x1, y1; if ((iwall = (struct iwall_data *)strdb_get(iwall_db, wall_name)) == NULL) return; // Nothing to do @@ -3111,16 +3111,16 @@ char type[64]; char command[64]; char map[64]; - int x = 0; - int y = 0; - int m; + short x = 0; + short y = 0; + short m; int n; struct map_session_data sd; memset(&sd, 0, sizeof(struct map_session_data)); strcpy(sd.status.name, "console"); - if ((n = sscanf(buf, "%63[^:]:%63[^:]:%63s %d %d[^\n]", type, command, map, &x, &y)) < 5) { + if ((n = sscanf(buf, "%63[^:]:%63[^:]:%63s %hd %hd[^\n]", type, command, map, &x, &y)) < 5) { if ((n = sscanf(buf, "%63[^:]:%63[^\n]", type, command)) < 2) { n = sscanf(buf, "%63[^\n]", type); } @@ -3512,7 +3512,8 @@ *------------------------------------------*/ void do_final(void) { - int i, j; + short i; + int j; struct map_session_data *sd; struct s_mapiterator *iter; Index: src/map/map.h --- src/map/map.h Base (BASE) +++ src/map/map.h Locally Modified (Based On LOCAL) @@ -28,7 +28,7 @@ #define MAX_NPC_PER_MAP 512 -#define AREA_SIZE battle_config.area_size +#define AREA_SIZE (short)battle_config.area_size #define DAMAGELOG_SIZE 30 #define LOOTITEM_SIZE 10 #define MAX_MOBSKILL 50 @@ -466,20 +466,18 @@ struct mapcell { // terrain flags - unsigned char - walkable : 1, - shootable : 1, - water : 1; + int walkable : 1; + int shootable : 1; + int water : 1; // dynamic flags - unsigned char - npc : 1, - basilica : 1, - landprotector : 1, - novending : 1, - nochat : 1, - maelstrom : 1, - icewall : 1; + int npc : 1; + int basilica : 1; + int landprotector : 1; + int novending : 1; + int nochat : 1; + int maelstrom : 1; + int icewall : 1; #ifdef CELL_NOSTACK unsigned char cell_bl; //Holds amount of bls in this cell. @@ -498,7 +496,7 @@ struct mapcell *cell; // Holds the information of each map cell (NULL if the map is not on this map-server). struct block_list **block; struct block_list **block_mob; - int m; + short m; //mapid short xs,ys; // map dimensions (in cells) short bxs,bys; // map dimensions (in blocks) short bgscore_lion, bgscore_eagle; // Battleground ScoreBoard @@ -596,10 +594,10 @@ uint16 port; }; -int map_getcell(int,int,int,cell_chk); -int map_getcellp(struct map_data *,int,int,cell_chk); -void map_setcell(int m, int x, int y, cell_t cell, bool flag); -void map_setgatcell(int m, int x, int y, int gat); +int map_getcell(short,short,short,cell_chk); +int map_getcellp(struct map_data *,short,short,cell_chk); +void map_setcell(short m, short x, short y, cell_t cell, bool flag); +void map_setgatcell(short m, short x, short y, int gat); extern struct map_data map[]; extern int map_num; @@ -623,7 +621,7 @@ // users void map_setusers(int); int map_getusers(void); -int map_usercount(void); +unsigned int map_usercount(void); // blocklist lock int map_freeblock(struct block_list *bl); @@ -632,32 +630,32 @@ // blocklist manipulation int map_addblock(struct block_list *bl); int map_delblock(struct block_list *bl); -int map_moveblock(struct block_list *, int, int, unsigned int); -int map_foreachinrange(int (*func)(struct block_list *,va_list), struct block_list *center, int range, int type, ...); -int map_foreachinshootrange(int (*func)(struct block_list *,va_list), struct block_list *center, int range, int type, ...); -int map_foreachinarea(int (*func)(struct block_list *,va_list), int m, int x0, int y0, int x1, int y1, int type, ...); -int map_forcountinrange(int (*func)(struct block_list *,va_list), struct block_list *center, int range, int count, int type, ...); -int map_forcountinarea(int (*func)(struct block_list *,va_list), int m, int x0, int y0, int x1, int y1, int count, int type, ...); -int map_foreachinmovearea(int (*func)(struct block_list *,va_list), struct block_list *center, int range, int dx, int dy, int type, ...); -int map_foreachincell(int (*func)(struct block_list *,va_list), int m, int x, int y, int type, ...); -int map_foreachinpath(int (*func)(struct block_list *,va_list), int m, int x0, int y0, int x1, int y1, int range, int length, int type, ...); -int map_foreachinmap(int (*func)(struct block_list *,va_list), int m, int type, ...); +int map_moveblock(struct block_list *, short, short, unsigned int); +int map_foreachinrange(int (*func)(struct block_list *,va_list), struct block_list *center, short range, unsigned int type, ...); +int map_foreachinshootrange(int (*func)(struct block_list *,va_list), struct block_list *center, short range, unsigned int type, ...); +int map_foreachinarea(int (*func)(struct block_list *,va_list), short m, short x0, short y0, short x1, short y1, unsigned int type, ...); +int map_forcountinrange(int (*func)(struct block_list *,va_list), struct block_list *center, short range, int count, unsigned int type, ...); +int map_forcountinarea(int (*func)(struct block_list *,va_list), short m, short x0, short y0, short x1, short y1, int count, unsigned int type, ...); +int map_foreachinmovearea(int (*func)(struct block_list *,va_list), struct block_list *center, short range, short dx, short dy, unsigned int type, ...); +int map_foreachincell(int (*func)(struct block_list *,va_list), short m, short x, short y, int type, ...); +int map_foreachinpath(int (*func)(struct block_list *,va_list), short m, short x0, short y0, short x1, short y1, short range, int length, unsigned int type, ...); +int map_foreachinmap(int (*func)(struct block_list *,va_list), short m, int type, ...); //blocklist nb in one cell -int map_count_oncell(int m,int x,int y,int type); -struct skill_unit *map_find_skill_unit_oncell(struct block_list *,int x,int y,int skill_id,struct skill_unit *, int flag); +int map_count_oncell(short m,short x,short y,unsigned int type); +struct skill_unit *map_find_skill_unit_oncell(struct block_list *,short x,short y,uint16 skill_id,struct skill_unit *, int flag); // search and creation int map_get_new_object_id(void); -int map_search_freecell(struct block_list *src, int m, short *x, short *y, int rx, int ry, int flag); +int map_search_freecell(struct block_list *src, short m, short *x, short *y, short rx, short ry, int flag); // int map_quit(struct map_session_data *); // npc -bool map_addnpc(int,struct npc_data *); +bool map_addnpc(short,struct npc_data *); // map item int map_clearflooritem_timer(int tid, unsigned int tick, int id, intptr_t data); int map_removemobs_timer(int tid, unsigned int tick, int id, intptr_t data); void map_clearflooritem(struct block_list *bl); -int map_addflooritem(struct item *item_data,int amount,int m,int x,int y,int first_charid,int second_charid,int third_charid,int flags); +int map_addflooritem(struct item *item_data,int amount,short m,short x,short y,int first_charid,int second_charid,int third_charid,int flags); // player to map session void map_addnickdb(int charid, const char *nick); @@ -676,8 +674,8 @@ bool map_blid_exists(int id); #define map_id2index(id) map[(id)].index -int map_mapindex2mapid(unsigned short mapindex); -int map_mapname2mapid(const char *name); +short map_mapindex2mapid(unsigned short mapindex); +short map_mapname2mapid(const char *name); int map_mapname2ipport(unsigned short name, uint32 *ip, uint16 *port); int map_setipport(unsigned short map, uint32 ip, uint16 port); int map_eraseipport(unsigned short map, uint32 ip, uint16 port); @@ -690,7 +688,7 @@ void map_foreachregen(int (*func)(struct block_list *bl, va_list args), ...); void map_foreachiddb(int (*func)(struct block_list *bl, va_list args), ...); struct map_session_data *map_nick2sd(const char *); -struct mob_data *map_getmob_boss(int m); +struct mob_data *map_getmob_boss(short m); struct mob_data *map_id2boss(int id); // reload config file looking only for npcs @@ -716,7 +714,7 @@ #define mapit_geteachiddb() mapit_alloc(MAPIT_NORMAL,BL_ALL) int map_check_dir(int s_dir,int t_dir); -unsigned char map_calc_dir(struct block_list *src,int x,int y); +uint8 map_calc_dir(struct block_list *src,short x,short y); int map_random_dir(struct block_list *bl, short *x, short *y); // [Skotlex] int cleanup_sub(struct block_list *bl, va_list ap); @@ -724,13 +722,13 @@ int map_delmap(char *mapname); void map_flags_init(void); -bool map_iwall_set(int m, int x, int y, int size, int dir, bool shootable, const char *wall_name); +bool map_iwall_set(short m, short x, short y, short size, short dir, bool shootable, const char *wall_name); void map_iwall_get(struct map_session_data *sd); void map_iwall_remove(const char *wall_name); -int map_addmobtolist(unsigned short m, struct spawn_data *spawn); // [Wizputer] -void map_spawnmobs(int); // [Wizputer] -void map_removemobs(int); // [Wizputer] +int map_addmobtolist(short m, struct spawn_data *spawn); // [Wizputer] +void map_spawnmobs(short); // [Wizputer] +void map_removemobs(short); // [Wizputer] void do_reconnect_map(void); //Invoked on map-char reconnection [Skotlex] void map_addmap2db(struct map_data *m); void map_removemapdb(struct map_data *m); Index: src/map/mapreg_sql.c --- src/map/mapreg_sql.c Base (BASE) +++ src/map/mapreg_sql.c Locally Modified (Based On LOCAL) @@ -37,7 +37,7 @@ bool mapreg_setreg(int uid, int val) { int num = (uid & 0x00ffffff); - int i = (uid & 0xff000000) >> 24; + unsigned int i = ((unsigned int) uid & 0xff000000) >> 24; const char *name = get_str(num); if (val != 0) { @@ -67,7 +67,7 @@ bool mapreg_setregstr(int uid, const char *str) { int num = (uid & 0x00ffffff); - int i = (uid & 0xff000000) >> 24; + unsigned int i = ((unsigned int) uid & 0xff000000) >> 24; const char *name = get_str(num); if (str == NULL || *str == 0) { @@ -145,7 +145,7 @@ iter = db_iterator(mapreg_db); for (data = iter->first(iter,&key); iter->exists(iter); data = iter->next(iter,&key)) { int num = (key.i & 0x00ffffff); - int i = (key.i & 0xff000000) >> 24; + unsigned int i = ((unsigned int) key.i & 0xff000000) >> 24; const char *name = get_str(num); if (name[1] == '@') @@ -159,7 +159,7 @@ iter = db_iterator(mapregstr_db); for (data = iter->first(iter,&key); iter->exists(iter); data = iter->next(iter,&key)) { int num = (key.i & 0x00ffffff); - int i = (key.i & 0xff000000) >> 24; + unsigned int i = ((unsigned int) key.i & 0xff000000) >> 24; const char *name = get_str(num); char tmp_str2[2*255+1]; Index: src/map/mercenary.c --- src/map/mercenary.c Base (BASE) +++ src/map/mercenary.c Locally Modified (Based On LOCAL) @@ -40,19 +40,19 @@ struct s_mercenary_db mercenary_db[MAX_MERCENARY_CLASS]; // Mercenary Database -int merc_search_index(int class_) +int merc_search_index(short class_) { int i; ARR_FIND(0, MAX_MERCENARY_CLASS, i, mercenary_db[i].class_ == class_); return (i == MAX_MERCENARY_CLASS)?-1:i; } -bool merc_class(int class_) +bool merc_class(short class_) { return (bool)(merc_search_index(class_) > -1); } -struct view_data *merc_get_viewdata(int class_) { +struct view_data *merc_get_viewdata(short class_) { int i = merc_search_index(class_); if (i < 0) return 0; @@ -60,7 +60,7 @@ return &mercenary_db[i].vd; } -int merc_create(struct map_session_data *sd, int class_, unsigned int lifetime) +int merc_create(struct map_session_data *sd, short class_, unsigned int lifetime) { struct s_mercenary merc; struct s_mercenary_db *db; @@ -97,7 +97,7 @@ int mercenary_get_guild(struct mercenary_data *md) { - int class_; + short class_; if (md == NULL || md->db == NULL) return -1; @@ -117,7 +117,7 @@ int mercenary_get_faith(struct mercenary_data *md) { struct map_session_data *sd; - int class_; + short class_; if (md == NULL || md->db == NULL || (sd = md->master) == NULL) return 0; @@ -137,7 +137,8 @@ int mercenary_set_faith(struct mercenary_data *md, int value) { struct map_session_data *sd; - int class_, *faith; + short class_; + int *faith; if (md == NULL || md->db == NULL || (sd = md->master) == NULL) return 0; @@ -163,7 +164,7 @@ int mercenary_get_calls(struct mercenary_data *md) { struct map_session_data *sd; - int class_; + short class_; if (md == NULL || md->db == NULL || (sd = md->master) == NULL) return 0; @@ -183,7 +184,8 @@ int mercenary_set_calls(struct mercenary_data *md, int value) { struct map_session_data *sd; - int class_, *calls; + short class_; + int *calls; if (md == NULL || md->db == NULL || (sd = md->master) == NULL) return 0; @@ -379,7 +381,7 @@ return 0; } -int mercenary_checkskill(struct mercenary_data *md, int skill_id) +int mercenary_checkskill(struct mercenary_data *md, uint16 skill_id) { int i = skill_id - MC_SKILLBASE; @@ -458,7 +460,7 @@ // ,, struct s_mercenary_db *db; int i, class_; - int skillid, skilllv; + uint16 skill_id, skill_lv; class_ = atoi(str[0]); ARR_FIND(0, MAX_MERCENARY_CLASS, i, class_ == mercenary_db[i].class_); @@ -467,18 +469,18 @@ return false; } - skillid = atoi(str[1]); - if (skillid < MC_SKILLBASE || skillid >= MC_SKILLBASE + MAX_MERCSKILL) { - ShowError("read_mercenary_skilldb : Skill %d out of range.\n", skillid); + skill_id = atoi(str[1]); + if (skill_id < MC_SKILLBASE || skill_id >= MC_SKILLBASE + MAX_MERCSKILL) { + ShowError("read_mercenary_skilldb : Skill %d out of range.\n", skill_id); return false; } db = &mercenary_db[i]; - skilllv = atoi(str[2]); + skill_lv = atoi(str[2]); - i = skillid - MC_SKILLBASE; - db->skill[i].id = skillid; - db->skill[i].lv = skilllv; + i = skill_id - MC_SKILLBASE; + db->skill[i].id = skill_id; + db->skill[i].lv = skill_lv; return true; } Index: src/map/mercenary.h --- src/map/mercenary.h Base (BASE) +++ src/map/mercenary.h Locally Modified (Based On LOCAL) @@ -17,7 +17,7 @@ }; struct s_mercenary_db { - int class_; + short class_; char sprite[NAME_LENGTH], name[NAME_LENGTH]; unsigned short lv; short range2, range3; @@ -49,10 +49,10 @@ unsigned int masterteleport_timer; }; -bool merc_class(int class_); -struct view_data *merc_get_viewdata(int class_); +bool merc_class(short class_); +struct view_data *merc_get_viewdata(short class_); -int merc_create(struct map_session_data *sd, int class_, unsigned int lifetime); +int merc_create(struct map_session_data *sd, short class_, unsigned int lifetime); int merc_data_received(struct s_mercenary *merc, bool flag); int mercenary_save(struct mercenary_data *md); @@ -70,7 +70,7 @@ int mercenary_set_calls(struct mercenary_data *md, int value); int mercenary_kills(struct mercenary_data *md); -int mercenary_checkskill(struct mercenary_data *md, int skill_id); +int mercenary_checkskill(struct mercenary_data *md, uint16 skill_id); /** * atcommand.c required Index: src/map/mob.c --- src/map/mob.c Base (BASE) +++ src/map/mob.c Locally Modified (Based On LOCAL) @@ -59,9 +59,9 @@ struct mob_db *mob_db_data[MAX_MOB_DB+1]; struct mob_db *mob_dummy = NULL; //Dummy mob to be returned when a non-existant one is requested. -struct mob_db *mob_db(int index) { - if (index < 0 || index > MAX_MOB_DB || mob_db_data[index] == NULL) return mob_dummy; - return mob_db_data[index]; +struct mob_db *mob_db(short class_) { + if (class_ < 0 || class_ > MAX_MOB_DB || mob_db_data[class_] == NULL) return mob_dummy; + return mob_db_data[class_]; } //Dynamic mob chat database @@ -84,7 +84,7 @@ static struct { int qty; - int class_[350]; + short class_[350]; } summon[MAX_RANDOMMONSTER]; //Defines the Manuk/Splendide mob groups for the status reductions [Epoque] @@ -94,9 +94,9 @@ /*========================================== * Local prototype declaration (only required thing) *------------------------------------------*/ -static int mob_makedummymobdb(int); +static int mob_makedummymobdb(short class_); static int mob_spawn_guardian_sub(int tid, unsigned int tick, int id, intptr_t data); -int mob_skillid2skillidx(int class_,int skillid); +int mob_skillid2skillidx(short class_,uint16 skill_id); /*========================================== * Mob is searched with a name. @@ -176,7 +176,7 @@ struct npc_data *nd; if ((nd = map_id2nd(md->tomb_nid))) { - int m, i; + short m, i; m = nd->bl.m; @@ -234,7 +234,7 @@ /*========================================== * Returns the view data associated to this mob class. *------------------------------------------*/ -struct view_data *mob_get_viewdata(int class_) { +struct view_data *mob_get_viewdata(short class_) { if (mob_db(class_) == mob_dummy) return 0; return &mob_db(class_)->vd; @@ -422,7 +422,7 @@ return false; } -struct mob_data *mob_once_spawn_sub(struct block_list *bl, int m, short x, short y, const char *mobname, int class_, const char *event, unsigned int size, unsigned int ai) { +struct mob_data *mob_once_spawn_sub(struct block_list *bl, short m, short x, short y, const char *mobname, short class_, const char *event, unsigned int size, unsigned int ai) { struct spawn_data data; memset(&data, 0, sizeof(struct spawn_data)); @@ -462,7 +462,7 @@ /*========================================== * Spawn a single mob on the specified coordinates. *------------------------------------------*/ -int mob_once_spawn(struct map_session_data *sd, int m, short x, short y, const char *mobname, int class_, int amount, const char *event, unsigned int size, unsigned int ai) +int mob_once_spawn(struct map_session_data *sd, short m, short x, short y, const char *mobname, short class_, int amount, const char *event, unsigned int size, unsigned int ai) { struct mob_data *md = NULL; int count, lv; @@ -509,7 +509,7 @@ /*========================================== * Spawn mobs in the specified area. *------------------------------------------*/ -int mob_once_spawn_area(struct map_session_data *sd, int m, int x0, int y0, int x1, int y1, const char *mobname, int class_, int amount, const char *event, unsigned int size, unsigned int ai) +int mob_once_spawn_area(struct map_session_data *sd, short m, short x0, short y0, short x1, short y1, const char *mobname, short class_, int amount, const char *event, unsigned int size, unsigned int ai) { int i, max, id = 0; int lx = -1, ly = -1; @@ -611,13 +611,13 @@ /*========================================== * Summoning Guardians [Valaris] *------------------------------------------*/ -int mob_spawn_guardian(const char *mapname, short x, short y, const char *mobname, int class_, const char *event, int guardian, bool has_index) +int mob_spawn_guardian(const char *mapname, short x, short y, const char *mobname, short class_, const char *event, int guardian, bool has_index) { struct mob_data *md=NULL; struct spawn_data data; struct guild *g=NULL; struct guild_castle *gc; - int m; + short m; memset(&data, 0, sizeof(struct spawn_data)); data.num = 1; @@ -706,11 +706,11 @@ /*========================================== * Summoning BattleGround [Zephyrus] *------------------------------------------*/ -int mob_spawn_bg(const char *mapname, short x, short y, const char *mobname, int class_, const char *event, unsigned int bg_id) +int mob_spawn_bg(const char *mapname, short x, short y, const char *mobname, short class_, const char *event, unsigned int bg_id) { struct mob_data *md = NULL; struct spawn_data data; - int m; + short m; if ((m = map_mapname2mapid(mapname)) < 0) { ShowWarning("mob_spawn_bg: Map [%s] not found.\n", mapname); @@ -777,7 +777,7 @@ int mob_linksearch(struct block_list *bl,va_list ap) { struct mob_data *md; - int class_; + short class_; struct block_list *target; unsigned int tick; @@ -1874,7 +1874,8 @@ void mob_log_damage(struct mob_data *md, struct block_list *src, int damage) { - int char_id = 0, flag = MDLF_NORMAL; + uint32 char_id = 0; + int flag = MDLF_NORMAL; if (damage < 0) return; //Do nothing for absorbed damage. @@ -2664,7 +2665,7 @@ /*========================================== * Change mob base class *------------------------------------------*/ -int mob_class_change(struct mob_data *md, int class_) +int mob_class_change(struct mob_data *md, short class_) { unsigned int tick = gettick(); int i, c, hp_rate; @@ -2796,7 +2797,7 @@ /*========================================== * Summons amount slaves contained in the value[5] array using round-robin. [adapted by Skotlex] *------------------------------------------*/ -int mob_summonslave(struct mob_data *md2,int *value,int amount,int skill_id) +int mob_summonslave(struct mob_data *md2,int *value,int amount,uint16 skill_id) { struct mob_data *md; struct spawn_data data; @@ -2894,7 +2895,7 @@ * MOBskill lookup (get skillindex through skillid) * Returns -1 if not found. *------------------------------------------*/ -int mob_skillid2skillidx(int class_,int skillid) +int mob_skillid2skillidx(short class_,uint16 skill_id) { int i, max = mob_db(class_)->maxskill; struct mob_skill *ms=mob_db(class_)->skill; @@ -2902,7 +2903,7 @@ if (ms==NULL) return -1; - ARR_FIND(0, max, i, ms[i].skill_id == skillid); + ARR_FIND(0, max, i, ms[i].skill_id == skill_id); return (i < max) ? i : -1; } @@ -3100,7 +3101,7 @@ flag = (unit_counttargeted(&md->bl) >= c2); break; case MSC_AFTERSKILL: - flag = (md->ud.skillid == c2); + flag = (md->ud.skill_id == c2); break; case MSC_RUDEATTACKED: flag = (md->state.attacked_count >= RUDE_ATTACKED_COUNT); @@ -3263,7 +3264,7 @@ } // Player cloned mobs. [Valaris] -int mob_is_clone(int class_) +int mob_is_clone(short class_) { if (class_ < MOB_CLONE_START || class_ > MOB_CLONE_END) return 0; @@ -3277,9 +3278,9 @@ //If mode is not passed, a default aggressive mode is used. //If master_id is passed, clone is attached to him. //Returns: ID of newly crafted copy. -int mob_clone_spawn(struct map_session_data *sd, int m, int x, int y, const char *event, int master_id, int mode, int flag, unsigned int duration) +int mob_clone_spawn(struct map_session_data *sd, short m, short x, short y, const char *event, int master_id, int mode, int flag, unsigned int duration) { - int class_; + short class_; int i,j,inf,skill_id, fd; struct mob_data *md; struct mob_skill *ms; @@ -3474,7 +3475,7 @@ int mob_clone_delete(struct mob_data *md) { - const int class_ = md->class_; + const short class_ = md->class_; if (class_ >= MOB_CLONE_START && class_ < MOB_CLONE_END && mob_db_data[class_]!=NULL) { aFree(mob_db_data[class_]); @@ -3493,7 +3494,7 @@ /*========================================== * Since un-setting [ mob ] up was used, it is an initial provisional value setup. *------------------------------------------*/ -static int mob_makedummymobdb(int class_) +static int mob_makedummymobdb(short class_) { if (mob_dummy != NULL) { if (mob_db(class_) == mob_dummy) @@ -3577,7 +3578,7 @@ { struct mob_db *db, entry; struct status_data *status; - int class_, i, k; + short class_, i, k; double exp, maxhp; struct mob_data data; @@ -3899,7 +3900,7 @@ *------------------------------------------*/ static bool mob_readdb_mobavail(char *str[], int columns, int current) { - int class_, k; + short class_, k; class_=atoi(str[0]); @@ -3961,7 +3962,7 @@ return -1; } while (fgets(line, sizeof(line), fp)) { - int class_; + short class_; if (line[0] == '/' && line[1] == '/') continue; memset(str,0,sizeof(str)); Index: src/map/mob.h --- src/map/mob.h Base (BASE) +++ src/map/mob.h Locally Modified (Based On LOCAL) @@ -78,7 +78,7 @@ struct mob_skill { enum MobSkillState state; - short skill_id,skill_lv; + uint16 skill_id,skill_lv; short permillage; int casttime,delay; short cancel; @@ -241,30 +241,30 @@ struct item_drop *next; }; struct item_drop_list { - int m, x, y; // coordinates + short m, x, y; // coordinates int first_charid, second_charid, third_charid; // charid's of players with higher pickup priority struct item_drop *item; // linked list of drops }; -struct mob_db *mob_db(int class_); +struct mob_db *mob_db(short class_); int mobdb_searchname(const char *str); int mobdb_searchname_array(struct mob_db **data, int size, const char *str); int mobdb_checkid(const int id); -struct view_data *mob_get_viewdata(int class_); +struct view_data *mob_get_viewdata(short class_); -struct mob_data *mob_once_spawn_sub(struct block_list *bl, int m, - short x, short y, const char *mobname, int class_, const char *event, unsigned int size, unsigned int ai); +struct mob_data *mob_once_spawn_sub(struct block_list *bl, short m, + short x, short y, const char *mobname, short class_, const char *event, unsigned int size, unsigned int ai); -int mob_once_spawn(struct map_session_data *sd, int m, short x, short y, - const char *mobname, int class_, int amount, const char *event, unsigned int size, unsigned int ai); +int mob_once_spawn(struct map_session_data *sd, short m, short x, short y, + const char *mobname, short class_, int amount, const char *event, unsigned int size, unsigned int ai); -int mob_once_spawn_area(struct map_session_data *sd, int m, - int x0, int y0, int x1, int y1, const char *mobname, int class_, int amount, const char *event, unsigned int size, unsigned int ai); +int mob_once_spawn_area(struct map_session_data *sd, short m, + short x0, short y0, short x1, short y1, const char *mobname, short class_, int amount, const char *event, unsigned int size, unsigned int ai); bool mob_ksprotected(struct block_list *src, struct block_list *target); -int mob_spawn_guardian(const char *mapname, short x, short y, const char *mobname, int class_, const char *event, int guardian, bool has_index); // Spawning Guardians [Valaris] -int mob_spawn_bg(const char *mapname, short x, short y, const char *mobname, int class_, const char *event, unsigned int bg_id); +int mob_spawn_guardian(const char *mapname, short x, short y, const char *mobname, short class_, const char *event, int guardian, bool has_index); // Spawning Guardians [Valaris] +int mob_spawn_bg(const char *mapname, short x, short y, const char *mobname, short class_, const char *event, unsigned int bg_id); int mob_guardian_guildchange(struct mob_data *md); //Change Guardian's ownership. [Skotlex] int mob_randomwalk(struct mob_data *md,unsigned int tick); @@ -297,7 +297,7 @@ int mob_random_class(int *value, size_t count); int mob_get_random_id(int type, int flag, int lv); -int mob_class_change(struct mob_data *md,int class_); +int mob_class_change(struct mob_data *md,short class_); int mob_warpslave(struct block_list *bl, int range); int mob_linksearch(struct block_list *bl,va_list ap); @@ -305,13 +305,13 @@ int mobskill_event(struct mob_data *md,struct block_list *src,unsigned int tick, int flag); int mobskill_castend_id(int tid, unsigned int tick, int id,int data); int mobskill_castend_pos(int tid, unsigned int tick, int id,int data); -int mob_summonslave(struct mob_data *md2,int *value,int amount,int skill_id); +int mob_summonslave(struct mob_data *md2,int *value,int amount,uint16 skill_id); int mob_countslave(struct block_list *bl); int mob_count_sub(struct block_list *bl, va_list ap); -int mob_is_clone(int class_); +int mob_is_clone(short class_); -int mob_clone_spawn(struct map_session_data *sd, int m, int x, int y, const char *event, int master_id, int mode, int flag, unsigned int duration); +int mob_clone_spawn(struct map_session_data *sd, short m, short x, short y, const char *event, int master_id, int mode, int flag, unsigned int duration); int mob_clone_delete(struct mob_data *md); void mob_reload(void); Index: src/map/npc.c --- src/map/npc.c Base (BASE) +++ src/map/npc.c Locally Modified (Based On LOCAL) @@ -104,7 +104,7 @@ uint8 event_count; } script_event[NPCE_MAX]; -struct view_data *npc_get_viewdata(int class_) { +struct view_data *npc_get_viewdata(short class_) { //Returns the viewdata for normal npc classes. if (class_ == INVISIBLE_CLASS) return &npc_viewdb[0]; @@ -859,7 +859,7 @@ /*========================================== * Exec OnTouch for player if in range of area event *------------------------------------------*/ -int npc_touch_areanpc(struct map_session_data *sd, int m, int x, int y) +int npc_touch_areanpc(struct map_session_data *sd, short m, short x, short y) { int xs,ys; int f = 1; @@ -983,7 +983,7 @@ //Flag determines the type of object to check for: //&1: NPC Warps //&2: NPCs with on-touch events. -int npc_check_areanpc(int flag, int m, int x, int y, int range) +int npc_check_areanpc(int flag, short m, short x, short y, int range) { int i; int x0,y0,x1,y1; @@ -1664,7 +1664,7 @@ //This doesn't remove it from map_db int npc_remove_map(struct npc_data *nd) { - int m,i; + short m,i; nullpo_retr(1, nd); if (nd->bl.prev == NULL || nd->bl.m < 0) @@ -2539,7 +2539,7 @@ return end; } -int npc_duplicate4instance(struct npc_data *snd, int m) +int npc_duplicate4instance(struct npc_data *snd, short m) { char newname[NAME_LENGTH]; @@ -2613,7 +2613,7 @@ //Set mapcell CELL_NPC to trigger event later void npc_setcells(struct npc_data *nd) { - int m = nd->bl.m, x = nd->bl.x, y = nd->bl.y, xs, ys; + short m = nd->bl.m, x = nd->bl.x, y = nd->bl.y, xs, ys; int i,j; switch (nd->subtype) { @@ -2652,7 +2652,7 @@ void npc_unsetcells(struct npc_data *nd) { - int m = nd->bl.m, x = nd->bl.x, y = nd->bl.y, xs, ys; + short m = nd->bl.m, x = nd->bl.x, y = nd->bl.y, xs, ys; int i,j, x0, x1, y0, y1; if (nd->subtype == WARP) { @@ -2684,7 +2684,7 @@ void npc_movenpc(struct npc_data *nd, int x, int y) { - const int m = nd->bl.m; + const short m = nd->bl.m; if (m < 0 || nd->bl.prev == NULL) return; //Not on a map. x = cap_value(x, 0, map[m].xs-1); @@ -3007,7 +3007,7 @@ *------------------------------------------*/ static const char *npc_parse_mapflag(char *w1, char *w2, char *w3, char *w4, const char *start, const char *buffer, const char *filepath) { - int m; + short m; char mapname[32]; int state = 1; @@ -3248,7 +3248,7 @@ //@runOnInit should we exec OnInit when it's done ? void npc_parsesrcfile(const char *filepath, bool runOnInit) { - int m, lines = 0; + short m, lines = 0; FILE *fp; size_t len; char *buffer; @@ -3459,7 +3459,7 @@ int npc_reload(void) { struct npc_src_list *nsl; - int m, i; + short m, i; int npc_new_min = npc_id; struct s_mapiterator *iter; struct block_list *bl; @@ -3602,7 +3602,7 @@ static void npc_debug_warps_sub(struct npc_data *nd) { - int m; + short m; if (nd->bl.type != BL_NPC || nd->subtype != WARP || nd->bl.m < 0) return; @@ -3628,7 +3628,7 @@ static void npc_debug_warps(void) { - int m, i; + short m, i; for (m = 0; m < map_num; m++) for (i = 0; i < map[m].npc_num; i++) npc_debug_warps_sub(map[m].npc[i]); Index: src/map/npc.h --- src/map/npc.h Base (BASE) +++ src/map/npc.h Locally Modified (Based On LOCAL) @@ -47,7 +47,7 @@ struct { struct script_code *script; short xs,ys; // OnTouch area radius - int guild_id; + uint32 guild_id; int timer,timerid,timeramount,rid; unsigned int timertick; struct npc_timerevent_list *timer_event; @@ -104,13 +104,13 @@ NPCE_KILLNPC, NPCE_MAX }; -struct view_data *npc_get_viewdata(int class_); +struct view_data *npc_get_viewdata(short class_); int npc_chat_sub(struct block_list *bl, va_list ap); int npc_event_dequeue(struct map_session_data *sd); int npc_event(struct map_session_data *sd, const char *eventname, int ontouch); -int npc_touch_areanpc(struct map_session_data *sd, int m, int x, int y); +int npc_touch_areanpc(struct map_session_data *sd, short m, short x, short y); int npc_touch_areanpc2(struct mob_data *md); // [Skotlex] -int npc_check_areanpc(int flag, int m, int x, int y, int range); +int npc_check_areanpc(int flag, short m, short x, short y, int range); int npc_touchnext_areanpc(struct map_session_data *sd,bool leavemap); int npc_click(struct map_session_data *sd, struct npc_data *nd); int npc_scriptcont(struct map_session_data *sd, int id); @@ -157,7 +157,7 @@ void npc_read_event_script(void); int npc_script_event(struct map_session_data *sd, enum npce_event type); -int npc_duplicate4instance(struct npc_data *snd, int m); +int npc_duplicate4instance(struct npc_data *snd, short m); int npc_cashshop_buy(struct map_session_data *sd, int nameid, int amount, int points); extern struct npc_data *fake_nd; Index: src/map/party.c --- src/map/party.c Base (BASE) +++ src/map/party.c Locally Modified (Based On LOCAL) @@ -30,7 +30,7 @@ static DBMap *party_db; // int party_id -> struct party_data* (releases data) -static DBMap *party_booking_db; // int char_id -> struct party_booking_ad_info* (releases data) // Party Booking [Spiria] +static DBMap *party_booking_db; // uint32 char_id -> struct party_booking_ad_info* (releases data) // Party Booking [Spiria] static unsigned long party_booking_nextid = 1; int party_send_xy_timer(int tid, unsigned int tick, int id, intptr_t data); @@ -83,7 +83,7 @@ * Retrieves and validates the sd pointer for this party member [Skotlex] *------------------------------------------*/ -static TBL_PC *party_sd_check(int party_id, int account_id, int char_id) +static TBL_PC *party_sd_check(int party_id, uint32 account_id, uint32 char_id) { TBL_PC *sd = map_id2sd(account_id); @@ -120,7 +120,7 @@ } /// Party data lookup using party id. -struct party_data *party_search(int party_id) { +struct party_data *party_search(uint32 party_id) { if (!party_id) return NULL; return (struct party_data *)idb_get(party_db,party_id); @@ -168,7 +168,7 @@ } -void party_created(int account_id,int char_id,int fail,int party_id,char *name) +void party_created(uint32 account_id,uint32 char_id,int fail,int party_id,char *name) { struct map_session_data *sd; sd=map_id2sd(account_id); @@ -192,13 +192,13 @@ } -int party_request_info(int party_id, int char_id) +int party_request_info(uint32 party_id, uint32 char_id) { return intif_request_partyinfo(party_id, char_id); } /// Invoked (from char-server) when the party info is not found. -int party_recv_noinfo(int party_id, int char_id) +int party_recv_noinfo(uint32 party_id, uint32 char_id) { struct map_session_data *sd; @@ -237,7 +237,7 @@ } } -int party_recv_info(struct party *sp, int char_id) +int party_recv_info(struct party *sp, uint32 char_id) { struct party_data *p; struct party_member *member; @@ -429,7 +429,7 @@ /// Invoked (from char-server) when a new member is added to the party. /// flag: 0-success, 1-failure -int party_member_added(int party_id,int account_id,int char_id, int flag) +int party_member_added(uint32 party_id,uint32 account_id,uint32 char_id, int flag) { struct map_session_data *sd = map_id2sd(account_id),*sd2; struct party_data *p = party_search(party_id); @@ -486,7 +486,7 @@ } /// Party member 'sd' requesting kick of member with . -int party_removemember(struct map_session_data *sd, int account_id, char *name) +int party_removemember(struct map_session_data *sd, uint32 account_id, char *name) { struct party_data *p; int i; @@ -529,7 +529,7 @@ } /// Invoked (from char-server) when a party member leaves the party. -int party_member_withdraw(int party_id, int account_id, int char_id) +int party_member_withdraw(uint32 party_id, uint32 account_id, uint32 char_id) { struct map_session_data *sd = map_id2sd(account_id); struct party_data *p = party_search(party_id); @@ -593,7 +593,7 @@ return 0; } -int party_optionchanged(int party_id,int account_id,int exp,int item,int flag) +int party_optionchanged(uint32 party_id,uint32 account_id,int exp,int item,int flag) { struct party_data *p; struct map_session_data *sd=map_id2sd(account_id); @@ -665,7 +665,7 @@ /// - changes maps /// - logs in or out /// - gains a level (disabled) -int party_recv_movemap(int party_id,int account_id,int char_id, unsigned short map,int online,int lv) +int party_recv_movemap(uint32 party_id,uint32 account_id,uint32 char_id, unsigned short map,int online,int lv) { struct party_member *m; struct party_data *p; @@ -764,7 +764,7 @@ return 0; } -int party_recv_message(int party_id,int account_id,const char *mes,int len) +int party_recv_message(uint32 party_id,uint32 account_id,const char *mes,int len) { struct party_data *p; if ((p=party_search(party_id))==NULL) @@ -773,7 +773,7 @@ return 0; } -int party_skill_check(struct map_session_data *sd, int party_id, int skillid, int skilllv) +int party_skill_check(struct map_session_data *sd, int party_id, uint16 skill_id, uint16 skill_lv) { struct party_data *p; struct map_session_data *p_sd; @@ -781,7 +781,7 @@ if (!party_id || (p=party_search(party_id))==NULL) return 0; - switch (skillid) { + switch (skill_id) { case TK_COUNTER: //Increase Triple Attack rate of Monks. if (!p->state.monk) return 0; break; @@ -801,12 +801,12 @@ continue; if (sd->bl.m != p_sd->bl.m) continue; - switch (skillid) { + switch (skill_id) { case TK_COUNTER: //Increase Triple Attack rate of Monks. if ((p_sd->class_&MAPID_UPPERMASK) == MAPID_MONK && pc_checkskill(p_sd,MO_TRIPLEATTACK)) { sc_start4(&p_sd->bl,SC_SKILLRATE_UP,100,MO_TRIPLEATTACK, - 50+50*skilllv, //+100/150/200% rate + 50+50*skill_lv, //+100/150/200% rate 0,0,skill_get_time(SG_FRIEND, 1)); } break; @@ -924,7 +924,7 @@ } //Does party loot. first_charid holds the charid of the player who has time priority to take the item. -int party_share_loot(struct party_data *p, struct map_session_data *sd, struct item *item_data, int first_charid) +int party_share_loot(struct party_data *p, struct map_session_data *sd, struct item *item_data, uint32 first_charid) { TBL_PC *target = NULL; int i; @@ -1011,7 +1011,7 @@ } /// Executes 'func' for each party member on the same map and in range (0:whole map) -int party_foreachsamemap(int (*func)(struct block_list *,va_list),struct map_session_data *sd,int range,...) +int party_foreachsamemap(int (*func)(struct block_list *,va_list),struct map_session_data *sd,short range,...) { struct party_data *p; int i; Index: src/map/party.h --- src/map/party.h Base (BASE) +++ src/map/party.h Locally Modified (Based On LOCAL) @@ -49,40 +49,40 @@ void do_init_party(void); void do_final_party(void); -struct party_data *party_search(int party_id); +struct party_data *party_search(uint32 party_id); struct party_data *party_searchname(const char *str); int party_getmemberid(struct party_data *p, struct map_session_data *sd); struct map_session_data *party_getavailablesd(struct party_data *p); int party_create(struct map_session_data *sd,char *name, int item, int item2); -void party_created(int account_id,int char_id,int fail,int party_id,char *name); -int party_request_info(int party_id, int char_id); +void party_created(uint32 account_id,uint32 char_id,int fail,int party_id,char *name); +int party_request_info(uint32 party_id, uint32 char_id); int party_invite(struct map_session_data *sd,struct map_session_data *tsd); void party_member_joined(struct map_session_data *sd); -int party_member_added(int party_id,int account_id,int char_id,int flag); +int party_member_added(uint32 party_id,uint32 account_id,uint32 char_id,int flag); int party_leave(struct map_session_data *sd); -int party_removemember(struct map_session_data *sd,int account_id,char *name); -int party_member_withdraw(int party_id,int account_id,int char_id); +int party_removemember(struct map_session_data *sd,uint32 account_id,char *name); +int party_member_withdraw(uint32 party_id,uint32 account_id,uint32 char_id); void party_reply_invite(struct map_session_data *sd,int party_id,int flag); -int party_recv_noinfo(int party_id, int char_id); -int party_recv_info(struct party *sp, int char_id); -int party_recv_movemap(int party_id,int account_id,int char_id, unsigned short map,int online,int lv); +int party_recv_noinfo(uint32 party_id, uint32 char_id); +int party_recv_info(struct party *sp, uint32 char_id); +int party_recv_movemap(uint32 party_id,uint32 account_id,uint32 char_id, unsigned short map,int online,int lv); int party_broken(int party_id); -int party_optionchanged(int party_id,int account_id,int exp,int item,int flag); +int party_optionchanged(uint32 party_id,uint32 account_id,int exp,int item,int flag); int party_changeoption(struct map_session_data *sd,int exp,int item); bool party_changeleader(struct map_session_data *sd, struct map_session_data *t_sd); void party_send_movemap(struct map_session_data *sd); void party_send_levelup(struct map_session_data *sd); int party_send_logout(struct map_session_data *sd); int party_send_message(struct map_session_data *sd,const char *mes,int len); -int party_recv_message(int party_id,int account_id,const char *mes,int len); -int party_skill_check(struct map_session_data *sd, int party_id, int skillid, int skilllv); +int party_recv_message(uint32 party_id,uint32 account_id,const char *mes,int len); +int party_skill_check(struct map_session_data *sd, int party_id, uint16 skill_id, uint16 skill_lv); int party_send_xy_clear(struct party_data *p); int party_exp_share(struct party_data *p,struct block_list *src,unsigned int base_exp,unsigned int job_exp,int zeny); -int party_share_loot(struct party_data *p, struct map_session_data *sd, struct item *item_data, int first_charid); +int party_share_loot(struct party_data *p, struct map_session_data *sd, struct item *item_data, uint32 first_charid); int party_send_dot_remove(struct map_session_data *sd); int party_sub_count(struct block_list *bl, va_list ap); -int party_foreachsamemap(int (*func)(struct block_list *,va_list),struct map_session_data *sd,int range,...); +int party_foreachsamemap(int (*func)(struct block_list *,va_list),struct map_session_data *sd,short range,...); /*========================================== * Party Booking in KRO [Spiria] Index: src/map/path.c --- src/map/path.c Base (BASE) +++ src/map/path.c Locally Modified (Based On LOCAL) @@ -98,7 +98,7 @@ /*========================================== * calculate cost for the specified position *------------------------------------------*/ -static int calc_cost(struct tmp_path *p,int x1,int y1) +static int calc_cost(struct tmp_path *p,short x1,short y1) { int xd = abs(x1 - p->x); int yd = abs(y1 - p->y); @@ -108,7 +108,7 @@ /*========================================== * attach/adjust path if neccessary *------------------------------------------*/ -static int add_path(int *heap,struct tmp_path *tp,int x,int y,int dist,int before,int cost) +static int add_path(int *heap,struct tmp_path *tp,short x,short y,int dist,int before,int cost) { int i; @@ -146,7 +146,7 @@ * Find the closest reachable cell, 'count' cells away from (x0,y0) in direction (dx,dy). * Income after the coordinates of the blow *------------------------------------------*/ -int path_blownpos(int m,int x0,int y0,int dx,int dy,int count) +int path_blownpos(short m,short x0,short y0,short dx,short dy,int count) { struct map_data *md; @@ -192,7 +192,7 @@ /*========================================== * is ranged attack from (x0,y0) to (x1,y1) possible? *------------------------------------------*/ -bool path_search_long(struct shootpath_data *spd,int m,int x0,int y0,int x1,int y1,cell_chk cell) +bool path_search_long(struct shootpath_data *spd,short m,short x0,short y0,short x1,short y1,cell_chk cell) { int dx, dy; int wx = 0, wy = 0; @@ -263,7 +263,7 @@ * flag: &1 = easy path search only * cell: type of obstruction to check for *------------------------------------------*/ -bool path_search(struct walkpath_data *wpd,int m,int x0,int y0,int x1,int y1,int flag,cell_chk cell) +bool path_search(struct walkpath_data *wpd,short m,short x0,short y0,short x1,short y1,int flag,cell_chk cell) { int heap[MAX_HEAP+1]; struct tmp_path tp[MAX_WALKPATH*MAX_WALKPATH]; Index: src/map/path.h --- src/map/path.h Base (BASE) +++ src/map/path.h Locally Modified (Based On LOCAL) @@ -20,13 +20,13 @@ }; // calculates destination cell for knockback -int path_blownpos(int m,int x0,int y0,int dx,int dy,int count); +int path_blownpos(short m,short x0,short y0,short dx,short dy,int count); // tries to find a walkable path -bool path_search(struct walkpath_data *wpd,int m,int x0,int y0,int x1,int y1,int flag,cell_chk cell); +bool path_search(struct walkpath_data *wpd,short m,short x0,short y0,short x1,short y1,int flag,cell_chk cell); // tries to find a shootable path -bool path_search_long(struct shootpath_data *spd,int m,int x0,int y0,int x1,int y1,cell_chk cell); +bool path_search_long(struct shootpath_data *spd,short m,short x0,short y0,short x1,short y1,cell_chk cell); // distance related functions Index: src/map/pc.c --- src/map/pc.c Base (BASE) +++ src/map/pc.c Locally Modified (Based On LOCAL) @@ -92,14 +92,14 @@ //Converts a class to its array index for CLASS_COUNT defined arrays. //Note that it does not do a validity check for speed purposes, where parsing //player input make sure to use a pcdb_checkid first! -int pc_class2idx(int class_) +short pc_class2idx(short class_) { if (class_ >= JOB_NOVICE_HIGH) return class_- JOB_NOVICE_HIGH+JOB_MAX_BASIC; return class_; } -inline int pc_get_group_id(struct map_session_data *sd) +inline uint32 pc_get_group_id(struct map_session_data *sd) { return sd->group_id; } @@ -126,7 +126,7 @@ return 0; } -void pc_setinvincibletimer(struct map_session_data *sd, int val) +void pc_setinvincibletimer(struct map_session_data *sd, unsigned int val) { nullpo_retv(sd); @@ -176,7 +176,7 @@ return 0; } -int pc_addspiritball(struct map_session_data *sd,int interval,int max) +int pc_addspiritball(struct map_session_data *sd,unsigned int interval,int max) { int tid, i; @@ -276,7 +276,7 @@ return 0; } -int pc_banding(struct map_session_data *sd, short skill_lv) +int pc_banding(struct map_session_data *sd, uint16 skill_lv) { int c; int b_sd[MAX_PARTY]; // In case of a full Royal Guard party. @@ -362,7 +362,7 @@ } // Check whether a player ID is in the fame rankers' list of its job, returns his/her position if so, 0 else -unsigned char pc_famerank(int char_id, int job) +unsigned char pc_famerank(uint32 char_id, int job) { int i; @@ -553,7 +553,7 @@ /*========================================== * Off init ? Connection? *------------------------------------------*/ -int pc_setnewpc(struct map_session_data *sd, int account_id, int char_id, int login_id1, unsigned int client_tick, int sex, int fd) +int pc_setnewpc(struct map_session_data *sd, uint32 account_id, uint32 char_id, uint32 login_id1, unsigned int client_tick, uint8 sex, int fd) { nullpo_ret(sd); @@ -929,7 +929,7 @@ * No problem with the session id * set the status that has been sent from char server *------------------------------------------*/ -bool pc_authok(struct map_session_data *sd, int login_id2, time_t expiration_time, int group_id, struct mmo_charstatus *st, bool changing_mapservers) +bool pc_authok(struct map_session_data *sd, uint32 login_id2, time_t expiration_time, uint32 group_id, struct mmo_charstatus *st, bool changing_mapservers) { int i; unsigned long tick = gettick(); @@ -1126,7 +1126,7 @@ //Attempts to set a mob. int pc_set_hate_mob(struct map_session_data *sd, int pos, struct block_list *bl) { - int class_; + short class_; if (!sd || !bl || pos < 0 || pos > 2) return 0; if (sd->hate_mob[pos] != -1) { @@ -1612,7 +1612,7 @@ return 0; } -int pc_disguise(struct map_session_data *sd, int class_) +int pc_disguise(struct map_session_data *sd, short class_) { if (!class_ && !sd->disguise) return 0; @@ -3836,7 +3836,7 @@ nullpo_ret(sd); nullpo_ret(fitem); - if (!check_distance_bl(&fitem->bl, &sd->bl, 2) && sd->ud.skillid!=BS_GREED) + if (!check_distance_bl(&fitem->bl, &sd->bl, 2) && sd->ud.skill_id!=BS_GREED) return 0; // Distance is too far if (sd->status.party_id) @@ -4490,7 +4490,7 @@ int pc_setpos(struct map_session_data *sd, unsigned short mapindex, int x, int y, clr_type clrtype) { struct party_data *p; - int m; + short m; nullpo_ret(sd); @@ -4657,7 +4657,7 @@ int pc_randomwarp(struct map_session_data *sd, clr_type type) { int x,y,i=0; - int m; + short m; nullpo_ret(sd); @@ -4729,9 +4729,9 @@ // Skills // /*========================================== - * Return player sd skilllv learned for given skill + * Return player sd skill_lv learned for given skill *------------------------------------------*/ -int pc_checkskill(struct map_session_data *sd,int skill_id) +int pc_checkskill(struct map_session_data *sd, uint16 skill_id) { if (sd == NULL) return 0; if (skill_id >= GD_SKILLBASE && skill_id < GD_MAX) { @@ -5321,7 +5321,7 @@ /*==================================================== * This function return the name of the job (by [Yor]) *----------------------------------------------------*/ -const char *job_name(int class_) +const char *job_name(short class_) { switch (class_) { case JOB_NOVICE: @@ -5808,12 +5808,12 @@ /*========================================== * Returns max level for this character. *------------------------------------------*/ -unsigned int pc_maxbaselv(struct map_session_data *sd) +uint16 pc_maxbaselv(struct map_session_data *sd) { return max_level[pc_class2idx(sd->status.class_)][0]; } -unsigned int pc_maxjoblv(struct map_session_data *sd) +uint16 pc_maxjoblv(struct map_session_data *sd) { return max_level[pc_class2idx(sd->status.class_)][1]; } @@ -5924,7 +5924,7 @@ } // Calculates the number of status points PC gets when leveling up (from level to level+1) -int pc_gets_status_point(int level) +unsigned int pc_gets_status_point(uint16 level) { if (battle_config.use_statpoint_table) //Use values from "db/statpoint.txt" return (statp[level+1] - statp[level]); @@ -6045,42 +6045,42 @@ } /*========================================== - * Update skilllv for player sd + * Update skill_lv for player sd * Skill point allocation *------------------------------------------*/ -int pc_skillup(struct map_session_data *sd,int skill_num) +int pc_skillup(struct map_session_data *sd, uint16 skill_id) { nullpo_ret(sd); - if (skill_num >= GD_SKILLBASE && skill_num < GD_SKILLBASE+MAX_GUILDSKILL) { - guild_skillup(sd, skill_num); + if (skill_id >= GD_SKILLBASE && skill_id < GD_SKILLBASE+MAX_GUILDSKILL) { + guild_skillup(sd, skill_id); return 0; } - if (skill_num >= HM_SKILLBASE && skill_num < HM_SKILLBASE+MAX_HOMUNSKILL && sd->hd) { - merc_hom_skillup(sd->hd, skill_num); + if (skill_id >= HM_SKILLBASE && skill_id < HM_SKILLBASE+MAX_HOMUNSKILL && sd->hd) { + merc_hom_skillup(sd->hd, skill_id); return 0; } - if (skill_num < 0 || skill_num >= MAX_SKILL) + if (skill_id < 0 || skill_id >= MAX_SKILL) return 0; if (sd->status.skill_point > 0 && - sd->status.skill[skill_num].id && - sd->status.skill[skill_num].flag == SKILL_FLAG_PERMANENT && //Don't allow raising while you have granted skills. [Skotlex] - sd->status.skill[skill_num].lv < skill_tree_get_max(skill_num, sd->status.class_)) { - sd->status.skill[skill_num].lv++; + sd->status.skill[skill_id].id && + sd->status.skill[skill_id].flag == SKILL_FLAG_PERMANENT && //Don't allow raising while you have granted skills. [Skotlex] + sd->status.skill[skill_id].lv < skill_tree_get_max(skill_id, sd->status.class_)) { + sd->status.skill[skill_id].lv++; sd->status.skill_point--; - if (!skill_get_inf(skill_num)) + if (!skill_get_inf(skill_id)) status_calc_pc(sd,0); // Only recalculate for passive skills. else if (sd->status.skill_point == 0 && (sd->class_&MAPID_UPPERMASK) == MAPID_TAEKWON && sd->status.base_level >= 90 && pc_famerank(sd->status.char_id, MAPID_TAEKWON)) pc_calc_skilltree(sd); // Required to grant all TK Ranger skills. else - pc_check_skilltree(sd, skill_num); // Check if a new skill can Lvlup + pc_check_skilltree(sd, skill_id); // Check if a new skill can Lvlup - clif_skillup(sd,skill_num); + clif_skillup(sd,skill_id); clif_updatestatus(sd,SP_SKILLPOINT); - if (skill_num == GN_REMODELING_CART) /* cart weight info was updated by status_calc_pc */ + if (skill_id == GN_REMODELING_CART) /* cart weight info was updated by status_calc_pc */ clif_updatestatus(sd,SP_CARTINFO); if (!pc_has_permission(sd, PC_PERM_ALL_SKILL)) // may skill everything at any time anyways, and this would cause a huge slowdown clif_skillinfoblock(sd); @@ -6434,22 +6434,22 @@ return 0; } -int pc_skillatk_bonus(struct map_session_data *sd, int skill_num) +int pc_skillatk_bonus(struct map_session_data *sd, uint16 skill_id) { int i, bonus = 0; - ARR_FIND(0, ARRAYLENGTH(sd->skillatk), i, sd->skillatk[i].id == skill_num); + ARR_FIND(0, ARRAYLENGTH(sd->skillatk), i, sd->skillatk[i].id == skill_id); if (i < ARRAYLENGTH(sd->skillatk)) bonus = sd->skillatk[i].val; return bonus; } -int pc_skillheal_bonus(struct map_session_data *sd, int skill_num) +int pc_skillheal_bonus(struct map_session_data *sd, uint16 skill_id) { int i, bonus = sd->bonus.add_heal_rate; if (bonus) { - switch (skill_num) { + switch (skill_id) { case AL_HEAL: if (!(battle_config.skill_add_heal_rate&1)) bonus = 0; break; @@ -6468,7 +6468,7 @@ } } - ARR_FIND(0, ARRAYLENGTH(sd->skillheal), i, sd->skillheal[i].id == skill_num); + ARR_FIND(0, ARRAYLENGTH(sd->skillheal), i, sd->skillheal[i].id == skill_id); if (i < ARRAYLENGTH(sd->skillheal)) bonus += sd->skillheal[i].val; @@ -6476,11 +6476,11 @@ return bonus; } -int pc_skillheal2_bonus(struct map_session_data *sd, int skill_num) +int pc_skillheal2_bonus(struct map_session_data *sd, uint16 skill_id) { int i, bonus = sd->bonus.add_heal2_rate; - ARR_FIND(0, ARRAYLENGTH(sd->skillheal2), i, sd->skillheal2[i].id == skill_num); + ARR_FIND(0, ARRAYLENGTH(sd->skillheal2), i, sd->skillheal2[i].id == skill_id); if (i < ARRAYLENGTH(sd->skillheal2)) bonus += sd->skillheal2[i].val; @@ -7346,7 +7346,7 @@ } if ((b_class&MAPID_UPPERMASK) != (sd->class_&MAPID_UPPERMASK)) { //Things to remove when changing class tree. - const int class_ = pc_class2idx(sd->status.class_); + const short class_ = pc_class2idx(sd->status.class_); short id; for (i = 0; i < MAX_SKILL_TREE && (id = skill_tree[class_][i].id) > 0; i++) { //Remove status specific to your current tree skills. @@ -9003,7 +9003,7 @@ /*========================================== * Memo player sd savepoint. (map,x,y) *------------------------------------------*/ -int pc_setsavepoint(struct map_session_data *sd, short mapindex,int x,int y) +int pc_setsavepoint(struct map_session_data *sd, unsigned short mapindex,int x,int y) { nullpo_ret(sd); @@ -9373,14 +9373,14 @@ *------------------------------------------*/ static bool pc_readdb_skilltree(char *fields[], int columns, int current) { - unsigned char joblv = 0, skilllv; - unsigned short skillid; + unsigned char joblv = 0, skill_lv; + uint16 skill_id; int idx, class_; unsigned int i, offset = 3, skillidx; class_ = atoi(fields[0]); - skillid = (unsigned short)atoi(fields[1]); - skilllv = (unsigned char)atoi(fields[2]); + skill_id = (unsigned short)atoi(fields[1]); + skill_lv = (unsigned char)atoi(fields[2]); if (columns==4+MAX_PC_SKILL_REQUIRE*2) { // job level requirement extra column @@ -9395,16 +9395,16 @@ idx = pc_class2idx(class_); //This is to avoid adding two lines for the same skill. [Skotlex] - ARR_FIND(0, MAX_SKILL_TREE, skillidx, skill_tree[idx][skillidx].id == 0 || skill_tree[idx][skillidx].id == skillid); + ARR_FIND(0, MAX_SKILL_TREE, skillidx, skill_tree[idx][skillidx].id == 0 || skill_tree[idx][skillidx].id == skill_id); if (skillidx == MAX_SKILL_TREE) { - ShowWarning("pc_readdb_skilltree: Unable to load skill %hu into job %d's tree. Maximum number of skills per class has been reached.\n", skillid, class_); + ShowWarning("pc_readdb_skilltree: Unable to load skill %hu into job %d's tree. Maximum number of skills per class has been reached.\n", skill_id, class_); return false; } else if (skill_tree[idx][skillidx].id) { - ShowNotice("pc_readdb_skilltree: Overwriting skill %hu for job class %d.\n", skillid, class_); + ShowNotice("pc_readdb_skilltree: Overwriting skill %hu for job class %d.\n", skill_id, class_); } - skill_tree[idx][skillidx].id = skillid; - skill_tree[idx][skillidx].max = skilllv; + skill_tree[idx][skillidx].id = skill_id; + skill_tree[idx][skillidx].max = skill_lv; skill_tree[idx][skillidx].joblv = joblv; for (i = 0; i < MAX_PC_SKILL_REQUIRE; i++) { Index: src/map/pc.h --- src/map/pc.h Base (BASE) +++ src/map/pc.h Locally Modified (Based On LOCAL) @@ -157,9 +157,10 @@ unsigned int no_knockback : 1; unsigned int bonus_coma : 1; } special_state; - int login_id1, login_id2; + uint32 login_id1, login_id2; unsigned short class_; //This is the internal job ID used by the map server to simplify comparisons/queries/etc. [Skotlex] - int group_id, group_pos, group_level; + uint32 group_id; + int group_pos, group_level; unsigned int permissions;/* group permissions */ int packet_ver; // 5: old, 6: 7july04, 7: 13july04, 8: 26july04, 9: 9aug04/16aug04/17aug04, 10: 6sept04, 11: 21sept04, 12: 18oct04, 13: 25oct04 ... 18 @@ -475,7 +476,6 @@ // temporary debugging of bug #3504 const char *delunit_prevfile; int delunit_prevline; - }; //Update this max as necessary. 55 is the value needed for Super Baby currently @@ -668,9 +668,9 @@ ) #endif -int pc_class2idx(int class_); +short pc_class2idx(short class_); int pc_get_group_level(struct map_session_data *sd); -int pc_get_group_id(struct map_session_data *sd); +uint32 pc_get_group_id(struct map_session_data *sd); int pc_getrefinebonus(int lv,int type); bool pc_can_give_items(struct map_session_data *sd); @@ -681,8 +681,8 @@ int pc_setrestartvalue(struct map_session_data *sd,int type); int pc_makesavestatus(struct map_session_data *); void pc_respawn(struct map_session_data *sd, clr_type clrtype); -int pc_setnewpc(struct map_session_data *,int,int,int,unsigned int,int,int); -bool pc_authok(struct map_session_data *sd, int login_id2, time_t expiration_time, int group_id, struct mmo_charstatus *st, bool changing_mapservers); +int pc_setnewpc(struct map_session_data *sd, uint32 account_id, uint32 char_id, uint32 login_id1, unsigned int client_tick, uint8 sex, int fd); +bool pc_authok(struct map_session_data *sd, uint32 login_id2, time_t expiration_time, uint32 group_id, struct mmo_charstatus *st, bool changing_mapservers); void pc_authfail(struct map_session_data *); int pc_reg_received(struct map_session_data *sd); @@ -690,7 +690,7 @@ int pc_equippoint(struct map_session_data *sd,int n); int pc_setinventorydata(struct map_session_data *sd); -int pc_checkskill(struct map_session_data *sd,int skill_id); +int pc_checkskill(struct map_session_data *sd,uint16 skill_id); int pc_checkallowskill(struct map_session_data *sd); int pc_checkequip(struct map_session_data *sd,int pos); @@ -702,7 +702,7 @@ #define pc_checkoversp(sd) ((sd)->battle_status.sp == (sd)->battle_status.max_sp) int pc_setpos(struct map_session_data *sd, unsigned short mapindex, int x, int y, clr_type clrtype); -int pc_setsavepoint(struct map_session_data *,short,int,int); +int pc_setsavepoint(struct map_session_data *,unsigned short,int,int); int pc_randomwarp(struct map_session_data *sd,clr_type type); int pc_memo(struct map_session_data *sd, int pos); @@ -756,8 +756,8 @@ int pc_follow(struct map_session_data *, int); // [MouseJstr] int pc_stop_following(struct map_session_data *); -unsigned int pc_maxbaselv(struct map_session_data *sd); -unsigned int pc_maxjoblv(struct map_session_data *sd); +uint16 pc_maxbaselv(struct map_session_data *sd); +uint16 pc_maxjoblv(struct map_session_data *sd); int pc_checkbaselevelup(struct map_session_data *sd); int pc_checkjoblevelup(struct map_session_data *sd); int pc_gainexp(struct map_session_data *,struct block_list *,unsigned int,unsigned int, bool); @@ -765,11 +765,11 @@ unsigned int pc_thisbaseexp(struct map_session_data *); unsigned int pc_nextjobexp(struct map_session_data *); unsigned int pc_thisjobexp(struct map_session_data *); -int pc_gets_status_point(int); +unsigned int pc_gets_status_point(uint16 level); int pc_need_status_point(struct map_session_data *,int,int); int pc_statusup(struct map_session_data *,int); int pc_statusup2(struct map_session_data *,int,int); -int pc_skillup(struct map_session_data *,int); +int pc_skillup(struct map_session_data *,uint16 skill_id); int pc_allskillup(struct map_session_data *); int pc_resetlvl(struct map_session_data *,int type); int pc_resetstate(struct map_session_data *); @@ -781,9 +781,9 @@ int pc_checkitem(struct map_session_data *); int pc_useitem(struct map_session_data *,int); -int pc_skillatk_bonus(struct map_session_data *sd, int skill_num); -int pc_skillheal_bonus(struct map_session_data *sd, int skill_num); -int pc_skillheal2_bonus(struct map_session_data *sd, int skill_num); +int pc_skillatk_bonus(struct map_session_data *sd, uint16 skill_id); +int pc_skillheal_bonus(struct map_session_data *sd, uint16 skill_id); +int pc_skillheal2_bonus(struct map_session_data *sd, uint16 skill_id); void pc_damage(struct map_session_data *sd,struct block_list *src,unsigned int hp, unsigned int sp); int pc_dead(struct map_session_data *sd,struct block_list *src); @@ -849,7 +849,7 @@ int pc_jobid2mapid(unsigned short b_class); // Skotlex int pc_mapid2jobid(unsigned short class_, int sex); // Skotlex -const char *job_name(int class_); +const char *job_name(short class_); struct skill_tree_entry { short id; @@ -872,13 +872,13 @@ }; extern const struct sg_data sg_info[MAX_PC_FEELHATE]; -void pc_setinvincibletimer(struct map_session_data *sd, int val); +void pc_setinvincibletimer(struct map_session_data *sd, unsigned int val); void pc_delinvincibletimer(struct map_session_data *sd); -int pc_addspiritball(struct map_session_data *sd,int,int); +int pc_addspiritball(struct map_session_data *sd,unsigned int,int); int pc_delspiritball(struct map_session_data *sd,int,int); void pc_addfame(struct map_session_data *sd,int count); -unsigned char pc_famerank(int char_id, int job); +unsigned char pc_famerank(uint32 char_id, int job); int pc_set_hate_mob(struct map_session_data *sd, int pos, struct block_list *bl); extern struct fame_list smith_fame_list[MAX_FAME_LIST]; @@ -903,12 +903,12 @@ void pc_inventory_rental_add(struct map_session_data *sd, int seconds); int pc_read_motd(void); // [Valaris] -int pc_disguise(struct map_session_data *sd, int class_); +int pc_disguise(struct map_session_data *sd, short class_); bool pc_isautolooting(struct map_session_data *sd, int nameid); void pc_overheat(struct map_session_data *sd, int val); -int pc_banding(struct map_session_data *sd, short skill_lv); +int pc_banding(struct map_session_data *sd, uint16 skill_lv); void pc_itemcd_do(struct map_session_data *sd, bool load); Index: src/map/pc_groups.c --- src/map/pc_groups.c Base (BASE) +++ src/map/pc_groups.c Locally Modified (Based On LOCAL) @@ -42,7 +42,7 @@ * @retval NULL if not found * @private */ -static inline GroupSettings *id2group(int group_id) +static inline GroupSettings *id2group(uint32 group_id) { return (GroupSettings *)idb_get(pc_group_db, group_id); } @@ -78,7 +78,8 @@ group_count = config_setting_length(groups); for (i = 0; i < group_count; ++i) { - int id = 0, level = 0; + int id = 0; + int level = 0; const char *groupname = NULL; int log_commands = 0; config_setting_t *group = config_setting_get_elem(groups, i); @@ -278,7 +279,7 @@ if ((pc_group_max = group_count)) { DBIterator *iter = db_iterator(pc_group_db); GroupSettings *group_settings = NULL; - int *group_ids = aMalloc(pc_group_max * sizeof(int)); + uint32 *group_ids = aMalloc(pc_group_max * sizeof(int)); int i = 0; for (group_settings = dbi_first(iter); dbi_exists(iter); group_settings = dbi_next(iter)) { group_ids[i++] = group_settings->id; @@ -320,7 +321,7 @@ * @param command Command name without @/# and params * @param type enum AtCommanndType { COMMAND_ATCOMMAND = 1, COMMAND_CHARCOMMAND = 2 } */ -bool pc_group_can_use_command(int group_id, const char *command, AtCommandType type) +bool pc_group_can_use_command(uint32 group_id, const char *command, AtCommandType type) { int result = 0; config_setting_t *commands = NULL; @@ -367,7 +368,7 @@ * @param group_id ID of the group * @param permission permission to check */ -bool pc_group_has_permission(int group_id, int permission) +bool pc_group_has_permission(uint32 group_id, int permission) { GroupSettings *group = NULL; if ((group = id2group(group_id)) == NULL) @@ -379,7 +380,7 @@ * Checks commands used by player group should be logged * @param group_id ID of the group */ -bool pc_group_should_log_commands(int group_id) +bool pc_group_should_log_commands(uint32 group_id) { GroupSettings *group = NULL; if ((group = id2group(group_id)) == NULL) @@ -392,7 +393,7 @@ * @param group_id group id * @returns true if group exists, false otherwise */ -bool pc_group_exists(int group_id) +bool pc_group_exists(uint32 group_id) { return idb_exists(pc_group_db, group_id); } @@ -403,7 +404,7 @@ * @return group name * @public */ -const char *pc_group_id2name(int group_id) +const char *pc_group_id2name(uint32 group_id) { GroupSettings *group = id2group(group_id); if (group == NULL) @@ -417,7 +418,7 @@ * @return group level * @public */ -int pc_group_id2level(int group_id) +int pc_group_id2level(uint32 group_id) { GroupSettings *group = id2group(group_id); if (group == NULL) Index: src/map/pc_groups.h --- src/map/pc_groups.h Base (BASE) +++ src/map/pc_groups.h Locally Modified (Based On LOCAL) @@ -8,12 +8,12 @@ extern int pc_group_max; -bool pc_group_exists(int group_id); -bool pc_group_can_use_command(int group_id, const char *command, AtCommandType type); -bool pc_group_has_permission(int group_id, int permission); -bool pc_group_should_log_commands(int group_id); -const char *pc_group_id2name(int group_id); -int pc_group_id2level(int group_id); +bool pc_group_exists(uint32 group_id); +bool pc_group_can_use_command(uint32 group_id, const char *command, AtCommandType type); +bool pc_group_has_permission(uint32 group_id, int permission); +bool pc_group_should_log_commands(uint32 group_id); +const char *pc_group_id2name(uint32 group_id); +int pc_group_id2level(uint32 group_id); void pc_group_pc_load(struct map_session_data *); void do_init_pc_groups(void); Index: src/map/pet.c --- src/map/pet.c Base (BASE) +++ src/map/pet.c Locally Modified (Based On LOCAL) @@ -428,7 +428,7 @@ return 0; } -int pet_recv_petdata(int account_id,struct s_pet *p,int flag) +int pet_recv_petdata(uint32 account_id,struct s_pet *p,int flag) { struct map_session_data *sd; @@ -543,7 +543,7 @@ return 0; } -int pet_get_egg(int account_id,int pet_id,int flag) +int pet_get_egg(uint32 account_id,int pet_id,int flag) { //This function is invoked when a new pet has been created, and at no other time! struct map_session_data *sd; Index: src/map/pet.h --- src/map/pet.h Base (BASE) +++ src/map/pet.h Locally Modified (Based On LOCAL) @@ -110,11 +110,11 @@ int pet_hungry_timer_delete(struct pet_data *pd); int pet_data_init(struct map_session_data *sd, struct s_pet *pet); int pet_birth_process(struct map_session_data *sd, struct s_pet *pet); -int pet_recv_petdata(int account_id,struct s_pet *p,int flag); +int pet_recv_petdata(uint32 account_id,struct s_pet *p,int flag); int pet_select_egg(struct map_session_data *sd,short egg_index); int pet_catch_process1(struct map_session_data *sd,int target_class); int pet_catch_process2(struct map_session_data *sd,int target_id); -int pet_get_egg(int account_id,int pet_id,int flag); +int pet_get_egg(uint32 account_id,int pet_id,int flag); int pet_menu(struct map_session_data *sd,int menunum); int pet_change_name(struct map_session_data *sd,char *name); int pet_change_name_ack(struct map_session_data *sd, char *name, int flag); Index: src/map/script.c --- src/map/script.c Base (BASE) +++ src/map/script.c Locally Modified (Based On LOCAL) @@ -4942,7 +4942,7 @@ } BUILDIN_FUNC(areawarp) { - int m, x0,y0,x1,y1, x2,y2,x3=0,y3=0; + short m, x0,y0,x1,y1, x2,y2,x3=0,y3=0; unsigned int index; const char *str; const char *mapname; @@ -5282,7 +5282,7 @@ *------------------------------------------*/ BUILDIN_FUNC(jobname) { - int class_=script_getnum(st,2); + short class_=script_getnum(st,2); script_pushconststr(st, (char *)job_name(class_)); return 0; } @@ -6644,7 +6644,7 @@ struct script_data *data; if (script_hasdata(st,4)) { - int account_id = script_getnum(st,4); + uint32 account_id = script_getnum(st,4); sd = map_id2sd(account_id); // if (sd == NULL) { ShowError("script:delitem: player not found (AID=%d).\n", account_id); @@ -6704,7 +6704,7 @@ struct script_data *data; if (script_hasdata(st,11)) { - int account_id = script_getnum(st,11); + uint32 account_id = script_getnum(st,11); sd = map_id2sd(account_id); // if (sd == NULL) { ShowError("script:delitem2: player not found (AID=%d).\n", account_id); @@ -6999,7 +6999,7 @@ *------------------------------------------*/ BUILDIN_FUNC(getguildname) { - int guild_id; + uint32 guild_id; struct guild *g; guild_id = script_getnum(st,2); @@ -7018,7 +7018,7 @@ *------------------------------------------*/ BUILDIN_FUNC(getguildmaster) { - int guild_id; + uint32 guild_id; struct guild *g; guild_id = script_getnum(st,2); @@ -7033,7 +7033,7 @@ BUILDIN_FUNC(getguildmasterid) { - int guild_id; + uint32 guild_id; struct guild *g; guild_id = script_getnum(st,2); @@ -7924,8 +7924,8 @@ /// getgdskilllv(,"") -> BUILDIN_FUNC(getgdskilllv) { - int guild_id; - int skill_id; + uint32 guild_id; + uint16 skill_id; struct guild *g; guild_id = script_getnum(st,2); @@ -8579,7 +8579,7 @@ BUILDIN_FUNC(guildchangegm) { TBL_PC *sd; - int guild_id; + uint32 guild_id; const char *name; guild_id = script_getnum(st,2); @@ -8608,14 +8608,14 @@ int x = script_getnum(st,3); int y = script_getnum(st,4); const char *str = script_getstr(st,5); - int class_ = script_getnum(st,6); + short class_ = script_getnum(st,6); int amount = script_getnum(st,7); const char *event = ""; unsigned int size = SZ_SMALL; unsigned int ai = AI_NONE; struct map_session_data *sd; - int m; + short m; if (script_hasdata(st, 8)) { event = script_getstr(st, 8); @@ -8666,7 +8666,7 @@ *------------------------------------------*/ BUILDIN_FUNC(getmobdrops) { - int class_ = script_getnum(st,2); + short class_ = script_getnum(st,2); int i, j = 0; struct mob_db *mob; @@ -8700,19 +8700,19 @@ BUILDIN_FUNC(areamonster) { const char *mapn = script_getstr(st,2); - int x0 = script_getnum(st,3); - int y0 = script_getnum(st,4); - int x1 = script_getnum(st,5); - int y1 = script_getnum(st,6); + short x0 = script_getnum(st,3); + short y0 = script_getnum(st,4); + short x1 = script_getnum(st,5); + short y1 = script_getnum(st,6); const char *str = script_getstr(st,7); - int class_ = script_getnum(st,8); + short class_ = script_getnum(st,8); int amount = script_getnum(st,9); const char *event = ""; unsigned int size = SZ_SMALL; unsigned int ai = AI_NONE; struct map_session_data *sd; - int m; + short m; if (script_hasdata(st,10)) { event = script_getstr(st, 10); @@ -8793,7 +8793,7 @@ BUILDIN_FUNC(killmonster) { const char *mapname,*event; - int m,allflag=0; + short m,allflag=0; mapname=script_getstr(st,2); event=script_getstr(st,3); if (strcmp(event,"All")==0) @@ -8840,7 +8840,7 @@ BUILDIN_FUNC(killmonsterall) { const char *mapname; - int m; + short m; mapname=script_getstr(st,2); if ((m = map_mapname2mapid(mapname))<0) @@ -8867,7 +8867,8 @@ BUILDIN_FUNC(clone) { TBL_PC *sd, *msd=NULL; - int char_id,master_id=0,x,y, mode = 0, flag = 0, m; + uint32 char_id,master_id=0; + int x,y, mode = 0, flag = 0, m; unsigned int duration = 0; const char *map,*event=""; @@ -9320,7 +9321,7 @@ int fontSize = script_hasdata(st,7) ? script_getnum(st,7) : 12; // default fontSize int fontAlign = script_hasdata(st,8) ? script_getnum(st,8) : 0; // default fontAlign int fontY = script_hasdata(st,9) ? script_getnum(st,9) : 0; // default fontY - int m; + short m; if ((m = map_mapname2mapid(mapname)) < 0) return 0; @@ -9345,7 +9346,7 @@ int fontSize = script_hasdata(st,11) ? script_getnum(st,11) : 12; // default fontSize int fontAlign = script_hasdata(st,12) ? script_getnum(st,12) : 0; // default fontAlign int fontY = script_hasdata(st,13) ? script_getnum(st,13) : 0; // default fontY - int m; + short m; if ((m = map_mapname2mapid(mapname)) < 0) return 0; @@ -9425,7 +9426,8 @@ BUILDIN_FUNC(getmapguildusers) { const char *str; - int m, gid; + short m; + int gid; int i=0,c=0; struct guild *g = NULL; str=script_getstr(st,2); @@ -9451,7 +9453,7 @@ BUILDIN_FUNC(getmapusers) { const char *str; - int m; + short m; str=script_getstr(st,2); if ((m=map_mapname2mapid(str))< 0) { script_pushint(st,-1); @@ -9471,7 +9473,7 @@ BUILDIN_FUNC(getareausers) { const char *str; - int m,x0,y0,x1,y1,users=0; + short m,x0,y0,x1,y1,users=0; str=script_getstr(st,2); x0=script_getnum(st,3); y0=script_getnum(st,4); @@ -9503,7 +9505,8 @@ BUILDIN_FUNC(getareadropitem) { const char *str; - int m,x0,y0,x1,y1,item,amount=0; + short m,x0,y0,x1,y1; + int item,amount=0; struct script_data *data; str=script_getstr(st,2); @@ -9910,7 +9913,7 @@ //These two functions bring the eA MAPID_* class functionality to scripts. BUILDIN_FUNC(eaclass) { - int class_; + short class_; if (script_hasdata(st,2)) class_ = script_getnum(st,2); else { @@ -9928,7 +9931,7 @@ BUILDIN_FUNC(roclass) { - int class_ =script_getnum(st,2); + short class_ =script_getnum(st,2); int sex; if (script_hasdata(st,3)) sex = script_getnum(st,3); @@ -10383,7 +10386,7 @@ *------------------------------------------*/ BUILDIN_FUNC(setmapflagnosave) { - int m,x,y; + short m,x,y; unsigned short mapindex; const char *str,*str2; @@ -10406,7 +10409,7 @@ BUILDIN_FUNC(getmapflag) { - int m,i; + short m,i; const char *str; str=script_getstr(st,2); @@ -10594,7 +10597,7 @@ } BUILDIN_FUNC(setmapflag) { - int m,i; + short m,i; const char *str; int val=0; @@ -10777,7 +10780,7 @@ BUILDIN_FUNC(removemapflag) { - int m,i; + short m,i; const char *str; int val=0; @@ -10960,7 +10963,7 @@ BUILDIN_FUNC(pvpon) { - int m; + short m; const char *str; TBL_PC *sd = NULL; struct s_mapiterator *iter; @@ -11006,7 +11009,7 @@ BUILDIN_FUNC(pvpoff) { - int m; + short m; const char *str; str=script_getstr(st,2); @@ -11026,7 +11029,7 @@ BUILDIN_FUNC(gvgon) { - int m; + short m; const char *str; str=script_getstr(st,2); @@ -11040,7 +11043,7 @@ } BUILDIN_FUNC(gvgoff) { - int m; + short m; const char *str; str=script_getstr(st,2); @@ -11088,7 +11091,7 @@ static int buildin_maprespawnguildid_sub_pc(struct map_session_data *sd, va_list ap) { - int m=va_arg(ap,int); + short m=va_arg(ap,int); int g_id=va_arg(ap,int); int flag=va_arg(ap,int); @@ -11119,7 +11122,7 @@ int g_id=script_getnum(st,3); int flag=script_getnum(st,4); - int m=map_mapname2mapid(mapname); + short m=map_mapname2mapid(mapname); if (m == -1) return 0; @@ -11295,7 +11298,7 @@ * ---------------------------------------------------------------------*/ BUILDIN_FUNC(requestguildinfo) { - int guild_id=script_getnum(st,2); + uint32 guild_id=script_getnum(st,2); const char *event=NULL; if (script_hasdata(st,3)) { @@ -11546,7 +11549,7 @@ BUILDIN_FUNC(mobcount) // Added by RoVeRT { const char *mapname,*event; - int m; + short m; mapname=script_getstr(st,2); event=script_getstr(st,3); @@ -11710,7 +11713,7 @@ { int num=script_getnum(st,2); - int class_=script_getnum(st,3); + short class_=script_getnum(st,3); if (!mobdb_checkid(class_)) { script_pushint(st,0); @@ -11752,7 +11755,7 @@ *------------------------------------------*/ BUILDIN_FUNC(guardian) { - int class_=0,x=0,y=0,guardian=0; + short class_=0,x=0,y=0,guardian=0; const char *str,*map,*evt=""; struct script_data *data; bool has_index = false; @@ -12530,11 +12533,11 @@ { TBL_PC *sd; - int skillid=(script_isstring(st,2) ? skill_name2id(script_getstr(st,2)) : script_getnum(st,2)); - int skilllv=script_getnum(st,3); + uint16 skill_id=(script_isstring(st,2) ? skill_name2id(script_getstr(st,2)) : script_getnum(st,2)); + uint16 skill_lv=script_getnum(st,3); sd=script_rid2sd(st); - clif_skill_nodamage(&sd->bl,&sd->bl,skillid,skilllv,1); + clif_skill_nodamage(&sd->bl,&sd->bl,skill_id,skill_lv,1); return 0; } @@ -12548,13 +12551,13 @@ { struct block_list *bl= map_id2bl(st->oid); - int skillid=(script_isstring(st,2) ? skill_name2id(script_getstr(st,2)) : script_getnum(st,2)); - int skilllv=script_getnum(st,3); + uint16 skill_id=(script_isstring(st,2) ? skill_name2id(script_getstr(st,2)) : script_getnum(st,2)); + uint16 skill_lv=script_getnum(st,3); int x=script_getnum(st,4); int y=script_getnum(st,5); if (bl) - clif_skill_poseffect(bl,skillid,skilllv,x,y,gettick()); + clif_skill_poseffect(bl,skill_id,skill_lv,x,y,gettick()); return 0; } @@ -14412,7 +14415,7 @@ { const char *name; const char *newname = NULL; - int class_ = -1, size = -1; + short class_ = -1, size = -1; struct script_data *data; struct npc_data *nd; @@ -14964,7 +14967,7 @@ /* Work In Progress [Lupus] BUILDIN_FUNC(addmonsterdrop) { - int class_,item_id,chance; + short class_,item_id,chance; class_=script_getnum(st,2); item_id=script_getnum(st,3); chance=script_getnum(st,4); @@ -14977,7 +14980,7 @@ BUILDIN_FUNC(delmonsterdrop) { - int class_,item_id; + short class_,item_id; class_=script_getnum(st,2); item_id=script_getnum(st,3); if(class_>1000 && item_id>500) { @@ -15188,7 +15191,7 @@ int axtoi(const char *hexStg) { int n = 0; // position in string - int m = 0; // position in digit[] to shift + short m = 0; // position in digit[] to shift int count; // loop index int intValue = 0; // integer value of hex string int digit[11]; // hold values to convert @@ -15341,7 +15344,7 @@ int y = script_getnum(st,4); script_pushint(st, unit_walktoxy(bl,x,y,0));// We'll use harder calculations. } else { - int map_id = script_getnum(st,3); + short map_id = script_getnum(st,3); script_pushint(st, unit_walktobl(bl,map_id2bl(map_id),65025,1)); } @@ -15529,8 +15532,8 @@ BUILDIN_FUNC(unitskilluseid) { int unit_id; - int skill_id; - int skill_lv; + uint16 skill_id; + uint16 skill_lv; int target_id; struct block_list *bl; @@ -15553,8 +15556,8 @@ BUILDIN_FUNC(unitskillusepos) { int unit_id; - int skill_id; - int skill_lv; + uint16 skill_id; + uint16 skill_lv; int skill_x; int skill_y; struct block_list *bl; @@ -15786,9 +15789,9 @@ /// @see cell_chk* constants in const.txt for the types BUILDIN_FUNC(checkcell) { - int m = map_mapname2mapid(script_getstr(st,2)); - int x = script_getnum(st,3); - int y = script_getnum(st,4); + short m = map_mapname2mapid(script_getstr(st,2)); + short x = script_getnum(st,3); + short y = script_getnum(st,4); cell_chk type = (cell_chk)script_getnum(st,5); script_pushint(st, map_getcell(m, x, y, type)); @@ -15803,11 +15806,11 @@ /// @see cell_* constants in const.txt for the types BUILDIN_FUNC(setcell) { - int m = map_mapname2mapid(script_getstr(st,2)); - int x1 = script_getnum(st,3); - int y1 = script_getnum(st,4); - int x2 = script_getnum(st,5); - int y2 = script_getnum(st,6); + short m = map_mapname2mapid(script_getstr(st,2)); + short x1 = script_getnum(st,3); + short y1 = script_getnum(st,4); + short x2 = script_getnum(st,5); + short y2 = script_getnum(st,6); cell_t type = (cell_t)script_getnum(st,7); bool flag = (bool)script_getnum(st,8); @@ -15829,7 +15832,8 @@ BUILDIN_FUNC(mercenary_create) { struct map_session_data *sd; - int class_, contract_time; + short class_; + int contract_time; if ((sd = script_rid2sd(st)) == NULL || sd->md || sd->status.mer_id != 0) return 0; @@ -16202,7 +16206,8 @@ BUILDIN_FUNC(bg_monster) { - int class_ = 0, x = 0, y = 0, bg_id = 0; + short class_ = 0, x = 0, y = 0; + int bg_id = 0; const char *str,*map, *evt=""; bg_id = script_getnum(st,2); @@ -16257,7 +16262,8 @@ BUILDIN_FUNC(bg_getareausers) { const char *str; - int m, x0, y0, x1, y1, bg_id; + short m, x0, y0, x1, y1; + int bg_id; int i = 0, c = 0; struct battleground_data *bg = NULL; struct map_session_data *sd; @@ -16290,7 +16296,7 @@ BUILDIN_FUNC(bg_updatescore) { const char *str; - int m; + short m; str = script_getstr(st,2); if ((m = map_mapname2mapid(str)) < 0) @@ -16393,7 +16399,7 @@ BUILDIN_FUNC(instance_attachmap) { const char *name; - int m; + short m; int instance_id; bool usebasename = false; @@ -16417,7 +16423,8 @@ struct map_session_data *sd; struct party_data *p; const char *str; - int m, instance_id; + short m; + int instance_id; str = script_getstr(st, 2); if (script_hasdata(st, 3)) @@ -16575,7 +16582,8 @@ struct map_session_data *sd; struct party_data *p; const char *str; - int m, instance_id = 0; + short m; + int instance_id = 0; str = script_getstr(st, 2); if (script_hasdata(st, 3)) @@ -16597,7 +16605,8 @@ BUILDIN_FUNC(instance_warpall) { struct map_session_data *pl_sd; - int m, i, instance_id; + short m; + int i, instance_id; const char *mapn; int x, y; unsigned short mapindex; @@ -16709,8 +16718,8 @@ TBL_MOB *md = (TBL_MOB *)bl; struct block_list *tbl; int mobid = va_arg(ap,int); - int skillid = va_arg(ap,int); - int skilllv = va_arg(ap,int); + uint16 skill_id = va_arg(ap,int); + uint16 skill_lv = va_arg(ap,int); int casttime = va_arg(ap,int); int cancel = va_arg(ap,int); int emotion = va_arg(ap,int); @@ -16731,7 +16740,7 @@ tbl = map_id2bl(md->master_id); break; default: - tbl = battle_getenemy(&md->bl, DEFAULT_ENEMY_TYPE(md),skill_get_range2(&md->bl, skillid, skilllv)); + tbl = battle_getenemy(&md->bl, DEFAULT_ENEMY_TYPE(md),skill_get_range2(&md->bl, skill_id, skill_lv)); break; } @@ -16741,10 +16750,10 @@ if (md->ud.skilltimer != INVALID_TIMER) // Cancel the casting skill. unit_skillcastcancel(bl,0); - if (skill_get_casttype(skillid) == CAST_GROUND) - unit_skilluse_pos2(&md->bl, tbl->x, tbl->y, skillid, skilllv, casttime, cancel); + if (skill_get_casttype(skill_id) == CAST_GROUND) + unit_skilluse_pos2(&md->bl, tbl->x, tbl->y, skill_id, skill_lv, casttime, cancel); else - unit_skilluse_id2(&md->bl, tbl->id, skillid, skilllv, casttime, cancel); + unit_skilluse_id2(&md->bl, tbl->id, skill_id, skill_lv, casttime, cancel); clif_emotion(&md->bl, emotion); @@ -16756,7 +16765,9 @@ BUILDIN_FUNC(areamobuseskill) { struct block_list center; - int m,range,mobid,skillid,skilllv,casttime,emotion,target,cancel; + short m,range; + int mobid,casttime,emotion,target,cancel; + uint16 skill_id,skill_lv; if ((m = map_mapname2mapid(script_getstr(st,2))) < 0) { ShowError("areamobuseskill: invalid map name.\n"); @@ -16771,16 +16782,16 @@ center.y = script_getnum(st,4); range = script_getnum(st,5); mobid = script_getnum(st,6); - skillid = (script_isstring(st,7) ? skill_name2id(script_getstr(st,7)) : script_getnum(st,7)); - if ((skilllv = script_getnum(st,8)) > battle_config.mob_max_skilllvl) - skilllv = battle_config.mob_max_skilllvl; + skill_id = (script_isstring(st,7) ? skill_name2id(script_getstr(st,7)) : script_getnum(st,7)); + if ((skill_lv = script_getnum(st,8)) > battle_config.mob_max_skilllvl) + skill_lv = battle_config.mob_max_skilllvl; casttime = script_getnum(st,9); cancel = script_getnum(st,10); emotion = script_getnum(st,11); target = script_getnum(st,12); - map_foreachinrange(buildin_mobuseskill_sub, ¢er, range, BL_MOB, mobid, skillid, skilllv, casttime, cancel, emotion, target); + map_foreachinrange(buildin_mobuseskill_sub, ¢er, range, BL_MOB, mobid, skill_id, skill_lv, casttime, cancel, emotion, target); return 0; } @@ -17363,13 +17374,10 @@ BUILDIN_FUNC(cleanmap) { const char *map; - int m = -1, index = -1; - short x0 = 0, y0 = 0, x1 = 0, y1 = 0; + short m = -1, x0 = 0, y0 = 0, x1 = 0, y1 = 0; map = script_getstr(st, 2); - index = mapindex_name2id(map); - if (index) - m = map_mapindex2mapid(index); + m = map_mapname2mapid(map); if (!m) return 1; Index: src/map/searchstore.c --- src/map/searchstore.c Base (BASE) +++ src/map/searchstore.c Locally Modified (Based On LOCAL) @@ -275,7 +275,7 @@ } -void searchstore_click(struct map_session_data *sd, int account_id, int store_id, unsigned short nameid) +void searchstore_click(struct map_session_data *sd, uint32 account_id, int store_id, unsigned short nameid) { unsigned int i; struct map_session_data *pl_sd; @@ -351,7 +351,7 @@ /// checks whether or not sd has opened account_id's shop remotely -bool searchstore_queryremote(struct map_session_data *sd, int account_id) +bool searchstore_queryremote(struct map_session_data *sd, uint32 account_id) { return (bool)(sd->searchstore.open && sd->searchstore.count && sd->searchstore.remote_id == account_id); } @@ -365,7 +365,7 @@ /// receives results from a store-specific callback -bool searchstore_result(struct map_session_data *sd, int store_id, int account_id, const char *store_name, unsigned short nameid, unsigned short amount, unsigned int price, const short *card, unsigned char refine) +bool searchstore_result(struct map_session_data *sd, int store_id, uint32 account_id, const char *store_name, unsigned short nameid, unsigned short amount, unsigned int price, const short *card, unsigned char refine) { struct s_search_store_info_item *ssitem; Index: src/map/searchstore.h --- src/map/searchstore.h Base (BASE) +++ src/map/searchstore.h Locally Modified (Based On LOCAL) @@ -19,7 +19,7 @@ struct s_search_store_info_item { int store_id; - int account_id; + uint32 account_id; char store_name[MESSAGE_SIZE]; unsigned short nameid; unsigned short amount; @@ -46,9 +46,9 @@ void searchstore_next(struct map_session_data *sd); void searchstore_clear(struct map_session_data *sd); void searchstore_close(struct map_session_data *sd); -void searchstore_click(struct map_session_data *sd, int account_id, int store_id, unsigned short nameid); -bool searchstore_queryremote(struct map_session_data *sd, int account_id); +void searchstore_click(struct map_session_data *sd, uint32 account_id, int store_id, unsigned short nameid); +bool searchstore_queryremote(struct map_session_data *sd, uint32 account_id); void searchstore_clearremote(struct map_session_data *sd); -bool searchstore_result(struct map_session_data *sd, int store_id, int account_id, const char *store_name, unsigned short nameid, unsigned short amount, unsigned int price, const short *card, unsigned char refine); +bool searchstore_result(struct map_session_data *sd, int store_id, uint32 account_id, const char *store_name, unsigned short nameid, unsigned short amount, unsigned int price, const short *card, unsigned char refine); #endif // _SEARCHSTORE_H_ Index: src/map/skill.c --- src/map/skill.c Base (BASE) +++ src/map/skill.c Locally Modified (Based On LOCAL) @@ -83,7 +83,7 @@ **/ DBMap *skillusave_db = NULL; // char_id -> struct skill_usave struct skill_usave { - int skill_num, skill_lv; + uint16 skill_id, skill_lv; }; struct s_skill_db skill_db[MAX_SKILL_DB]; @@ -91,7 +91,7 @@ struct s_skill_arrow_db skill_arrow_db[MAX_SKILL_ARROW_DB]; struct s_skill_abra_db skill_abra_db[MAX_SKILL_ABRA_DB]; struct s_skill_improvise_db { - int skillid; + uint16 skill_id; short per;//1-10000 }; struct s_skill_improvise_db skill_improvise_db[MAX_SKILL_IMPROVISE_DB]; @@ -107,7 +107,7 @@ //Warlock struct s_skill_spellbook_db { int nameid; - int skillid; + uint16 skill_id; int point; }; @@ -120,9 +120,9 @@ int icewall_unit_pos; int earthstrain_unit_pos; //early declaration -int skill_block_check(struct block_list *bl, enum sc_type type, int skillid); -static int skill_check_unit_range(struct block_list *bl, int x, int y, int skillid, int skilllv); -static int skill_check_unit_range2(struct block_list *bl, int x, int y, int skillid, int skilllv); +int skill_block_check(struct block_list *bl, enum sc_type type, uint16 skill_id); +static int skill_check_unit_range(struct block_list *bl, short x, short y, uint16 skill_id, uint16 skill_lv); +static int skill_check_unit_range2(struct block_list *bl, short x, short y, uint16 skill_id, uint16 skill_lv); static int skill_destroy_trap(struct block_list *bl, va_list ap); //Since only mob-casted splash skills can hit ice-walls static inline int splash_target(struct block_list *bl) @@ -370,7 +370,7 @@ skill_get(skill_db[id].fixed_cast[lv-1], id, lv); } #endif -int skill_tree_get_max(int id, int b_class) +int skill_tree_get_max(int id, short b_class) { int i; b_class = pc_class2idx(b_class); @@ -387,12 +387,12 @@ struct skill_unit_group *skill_locate_element_field(struct block_list *bl); // [Skotlex] int skill_graffitiremover(struct block_list *bl, va_list ap); // [Valaris] int skill_greed(struct block_list *bl, va_list ap); -static void skill_toggle_magicpower(struct block_list *bl, short skillid); +static void skill_toggle_magicpower(struct block_list *bl, uint16 skill_id); static int skill_cell_overlap(struct block_list *bl, va_list ap); static int skill_trap_splash(struct block_list *bl, va_list ap); struct skill_unit_group_tickset *skill_unitgrouptickset_search(struct block_list *bl,struct skill_unit_group *sg,int tick); static int skill_unit_onplace(struct skill_unit *src,struct block_list *bl,unsigned int tick); -static int skill_unit_onleft(int skill_id, struct block_list *bl,unsigned int tick); +static int skill_unit_onleft(uint16 skill_id, struct block_list *bl,unsigned int tick); static int skill_unit_effect(struct block_list *bl,va_list ap); int enchant_eff[5] = { 10, 14, 17, 19, 20 }; @@ -504,7 +504,7 @@ return range; } -int skill_calc_heal(struct block_list *src, struct block_list *target, int skill_id, int skill_lv, bool heal) +int skill_calc_heal(struct block_list *src, struct block_list *target, uint16 skill_id, uint16 skill_lv, bool heal) { int skill, hp; struct map_session_data *sd = BL_CAST(BL_PC, src); @@ -605,14 +605,14 @@ } // Making plagiarize check its own function [Aru] -int can_copy(struct map_session_data *sd, int skillid, struct block_list *bl) +int can_copy(struct map_session_data *sd, uint16 skill_id, struct block_list *bl) { // Never copy NPC/Wedding Skills - if (skill_get_inf2(skillid)&(INF2_NPC_SKILL|INF2_WEDDING_SKILL)) + if (skill_get_inf2(skill_id)&(INF2_NPC_SKILL|INF2_WEDDING_SKILL)) return 0; // High-class skills - if ((skillid >= LK_AURABLADE && skillid <= ASC_CDP) || (skillid >= ST_PRESERVE && skillid <= CR_CULTIVATION)) { + if ((skill_id >= LK_AURABLADE && skill_id <= ASC_CDP) || (skill_id >= ST_PRESERVE && skill_id <= CR_CULTIVATION)) { if (battle_config.copyskill_restrict == 2) return 0; else if (battle_config.copyskill_restrict) @@ -620,28 +620,28 @@ } //Added so plagarize can't copy agi/bless if you're undead since it damages you - if ((skillid == AL_INCAGI || skillid == AL_BLESSING || - skillid == CASH_BLESSING || skillid == CASH_INCAGI || - skillid == MER_INCAGI || skillid == MER_BLESSING)) + if ((skill_id == AL_INCAGI || skill_id == AL_BLESSING || + skill_id == CASH_BLESSING || skill_id == CASH_INCAGI || + skill_id == MER_INCAGI || skill_id == MER_BLESSING)) return 0; // Couldn't preserve 3rd Class skills except only when using Reproduce skill. [Jobbie] - if (!(sd->sc.data[SC__REPRODUCE]) && (skillid >= RK_ENCHANTBLADE && skillid <= SR_RIDEINLIGHTNING)) + if (!(sd->sc.data[SC__REPRODUCE]) && (skill_id >= RK_ENCHANTBLADE && skill_id <= SR_RIDEINLIGHTNING)) return 0; // Reproduce will only copy skills according on the list. [Jobbie] - else if (sd->sc.data[SC__REPRODUCE] && !skill_reproduce_db[skillid]) + else if (sd->sc.data[SC__REPRODUCE] && !skill_reproduce_db[skill_id]) return 0; return 1; } // [MouseJstr] - skill ok to cast? and when? -int skillnotok(int skillid, struct map_session_data *sd) +int skillnotok(uint16 skill_id, struct map_session_data *sd) { int i,m; nullpo_retr(1, sd); m = sd->bl.m; - i = skill_get_index(skillid); + i = skill_get_index(skill_id); if (i == 0) return 1; // invalid skill id @@ -649,35 +649,35 @@ if (pc_has_permission(sd, PC_PERM_SKILL_UNCONDITIONAL)) return 0; // can do any damn thing they want - if (skillid == AL_TELEPORT && sd->skillitem == skillid && sd->skillitemlv > 2) + if (skill_id == AL_TELEPORT && sd->skillitem == skill_id && sd->skillitemlv > 2) return 0; // Teleport lv 3 bypasses this check.[Inkfish] // Epoque: // This code will compare the player's attack motion value which is influenced by ASPD before // allowing a skill to be cast. This is to prevent no-delay ACT files from spamming skills such as // AC_DOUBLE which do not have a skill delay and are not regarded in terms of attack motion. - if (!sd->state.autocast && sd->skillitem != skillid && sd->canskill_tick && + if (!sd->state.autocast && sd->skillitem != skill_id && sd->canskill_tick && DIFF_TICK(gettick(), sd->canskill_tick) < (sd->battle_status.amotion * (100 + battle_config.skill_amotion_leniency) / 100)) { // attempted to cast a skill before the attack motion has finished return 1; } if (sd->blockskill[i] > 0) { - clif_skill_fail(sd, skillid, USESKILL_FAIL_SKILLINTERVAL, 0); + clif_skill_fail(sd, skill_id, USESKILL_FAIL_SKILLINTERVAL, 0); return 1; } /** * It has been confirmed on a official server (thanks to Yommy) that item-cast skills bypass all the restrictions above * Also, without this check, an exploit where an item casting + healing (or any other kind buff) isn't deleted after used on a restricted map **/ - if (sd->skillitem == skillid) + if (sd->skillitem == skill_id) return 0; // Check skill restrictions [Celest] - if ((!map_flag_vs(m) && skill_get_nocast(skillid) & 1) || - (map[m].flag.pvp && skill_get_nocast(skillid) & 2) || - (map_flag_gvg(m) && skill_get_nocast(skillid) & 4) || - (map[m].flag.battleground && skill_get_nocast(skillid) & 8) || - (map[m].flag.restricted && map[m].zone && skill_get_nocast(skillid) & (8*map[m].zone))) { + if ((!map_flag_vs(m) && skill_get_nocast(skill_id) & 1) || + (map[m].flag.pvp && skill_get_nocast(skill_id) & 2) || + (map_flag_gvg(m) && skill_get_nocast(skill_id) & 4) || + (map[m].flag.battleground && skill_get_nocast(skill_id) & 8) || + (map[m].flag.restricted && map[m].zone && skill_get_nocast(skill_id) & (8*map[m].zone))) { clif_msg(sd, 0x536); // This skill cannot be used within this area return 1; } @@ -685,7 +685,7 @@ if (sd->sc.option&OPTION_MOUNTING) return 1;//You can't use skills while in the new mounts (The client doesn't let you, this is to make cheat-safe) - switch (skillid) { + switch (skill_id) { case AL_WARP: case RETURN_TO_ELDICASTES: case ALL_GUARDIAN_RECALL: @@ -717,13 +717,13 @@ case WZ_ICEWALL: // noicewall flag [Valaris] if (map[m].flag.noicewall) { - clif_skill_fail(sd,skillid,USESKILL_FAIL_LEVEL,0); + clif_skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0); return 1; } break; case GC_DARKILLUSION: if (map_flag_gvg(m)) { - clif_skill_fail(sd,skillid,USESKILL_FAIL_LEVEL,0); + clif_skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0); return 1; } break; @@ -733,7 +733,7 @@ !(battle_config.emergency_call&(map[m].flag.gvg || map[m].flag.gvg_castle?8:4)) || (battle_config.emergency_call&16 && map[m].flag.nowarpto && !map[m].flag.gvg_castle) ) { - clif_skill_fail(sd,skillid,USESKILL_FAIL_LEVEL,0); + clif_skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0); return 1; } break; @@ -750,7 +750,7 @@ * These skills cannot be used while in mado gear (credits to Xantara) **/ if (pc_ismadogear(sd)) { - clif_skill_fail(sd,skillid,USESKILL_FAIL_LEVEL,0); + clif_skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0); return 1; } break; @@ -770,9 +770,9 @@ return (map[m].flag.noskill); } -int skillnotok_hom(int skillid, struct homun_data *hd) +int skillnotok_hom(uint16 skill_id, struct homun_data *hd) { - int i = skill_get_index(skillid); + int i = skill_get_index(skill_id); nullpo_retr(1,hd); if (i == 0) @@ -780,7 +780,7 @@ if (hd->blockskill[i] > 0) return 1; - switch (skillid) { + switch (skill_id) { case MH_LIGHT_OF_REGENE: if (hd->homunculus.intimacy <= 750) //if not cordial return 1; @@ -798,12 +798,12 @@ } //Use master's criteria. - return skillnotok(skillid, hd->master); + return skillnotok(skill_id, hd->master); } -int skillnotok_mercenary(int skillid, struct mercenary_data *md) +int skillnotok_mercenary(uint16 skill_id, struct mercenary_data *md) { - int i = skill_get_index(skillid); + int i = skill_get_index(skill_id); nullpo_retr(1,md); if (i == 0) @@ -811,15 +811,15 @@ if (md->blockskill[i] > 0) return 1; - return skillnotok(skillid, md->master); + return skillnotok(skill_id, md->master); } -struct s_skill_unit_layout *skill_get_unit_layout(int skillid, int skilllv, struct block_list *src, int x, int y) { - int pos = skill_get_unit_layout_type(skillid,skilllv); +struct s_skill_unit_layout *skill_get_unit_layout(uint16 skill_id, uint16 skill_lv, struct block_list *src, short x, short y) { + int pos = skill_get_unit_layout_type(skill_id,skill_lv); int dir; if (pos < -1 || pos >= MAX_SKILL_UNIT_LAYOUT) { - ShowError("skill_get_unit_layout: unsupported layout type %d for skill %d (level %d)\n", pos, skillid, skilllv); + ShowError("skill_get_unit_layout: unsupported layout type %d for skill %d (level %d)\n", pos, skill_id, skill_lv); pos = cap_value(pos, 0, MAX_SQUARE_LAYOUT); // cap to nearest square layout } @@ -828,21 +828,21 @@ dir = (src->x == x && src->y == y) ? 6 : map_calc_dir(src,x,y); // 6 - default aegis direction - if (skillid == MG_FIREWALL) + if (skill_id == MG_FIREWALL) return &skill_unit_layout [firewall_unit_pos + dir]; - else if (skillid == WZ_ICEWALL) + else if (skill_id == WZ_ICEWALL) return &skill_unit_layout [icewall_unit_pos + dir]; - else if (skillid == WL_EARTHSTRAIN) //Warlock + else if (skill_id == WL_EARTHSTRAIN) //Warlock return &skill_unit_layout [earthstrain_unit_pos + dir]; - ShowError("skill_get_unit_layout: unknown unit layout for skill %d (level %d)\n", skillid, skilllv); + ShowError("skill_get_unit_layout: unknown unit layout for skill %d (level %d)\n", skill_id, skill_lv); return &skill_unit_layout[0]; // default 1x1 layout } /*========================================== * *------------------------------------------*/ -int skill_additional_effect(struct block_list *src, struct block_list *bl, int skillid, int skilllv, int attack_type, int dmg_lv, unsigned int tick) +int skill_additional_effect(struct block_list *src, struct block_list *bl, uint16 skill_id, uint16 skill_lv, int attack_type, int dmg_lv, unsigned int tick) { struct map_session_data *sd, *dstsd; struct mob_data *md, *dstmd; @@ -856,8 +856,8 @@ nullpo_ret(src); nullpo_ret(bl); - if (skillid < 0) return 0; - if (skillid > 0 && skilllv <= 0) return 0; // don't forget auto attacks! - celest + if (skill_id < 0) return 0; + if (skill_id > 0 && skill_lv <= 0) return 0; // don't forget auto attacks! - celest if (dmg_lv < ATK_BLOCK) // Don't apply effect if miss. return 0; @@ -877,7 +877,7 @@ if (sd) { // These statuses would be applied anyway even if the damage was blocked by some skills. [Inkfish] - if (skillid != WS_CARTTERMINATION && skillid != AM_DEMONSTRATION && skillid != CR_REFLECTSHIELD && skillid != MS_REFLECTSHIELD && skillid != ASC_BREAKER) { + if (skill_id != WS_CARTTERMINATION && skill_id != AM_DEMONSTRATION && skill_id != CR_REFLECTSHIELD && skill_id != MS_REFLECTSHIELD && skill_id != ASC_BREAKER) { // Trigger status effects enum sc_type type; int i; @@ -914,12 +914,12 @@ } } - if (skillid) { + if (skill_id) { // Trigger status effects on skills enum sc_type type; int i; for (i = 0; i < ARRAYLENGTH(sd->addeff3) && sd->addeff3[i].skill; i++) { - if (skillid != sd->addeff3[i].skill || !sd->addeff3[i].rate) + if (skill_id != sd->addeff3[i].skill || !sd->addeff3[i].rate) continue; type = sd->addeff3[i].id; skill = skill_get_time2(status_sc2skill(type),7); @@ -935,7 +935,7 @@ if (dmg_lv < ATK_DEF) // no damage, return; return 0; - switch (skillid) { + switch (skill_id) { case 0: { // Normal attacks (no skill used) if (attack_type&BF_SKILL) break; // If a normal attack is a skill, it's splash damage. [Inkfish] @@ -1001,46 +1001,46 @@ break; case SM_BASH: - if (sd && skilllv > 5 && pc_checkskill(sd,SM_FATALBLOW)>0) { + if (sd && skill_lv > 5 && pc_checkskill(sd,SM_FATALBLOW)>0) { //TODO: How much % per base level it actually is? - sc_start(bl,SC_STUN,(5*(skilllv-5)+(int)sd->status.base_level/10), - skilllv,skill_get_time2(SM_FATALBLOW,skilllv)); + sc_start(bl,SC_STUN,(5*(skill_lv-5)+(int)sd->status.base_level/10), + skill_lv,skill_get_time2(SM_FATALBLOW,skill_lv)); } break; case MER_CRASH: - sc_start(bl,SC_STUN,(6*skilllv),skilllv,skill_get_time2(skillid,skilllv)); + sc_start(bl,SC_STUN,(6*skill_lv),skill_lv,skill_get_time2(skill_id,skill_lv)); break; case AS_VENOMKNIFE: if (sd) //Poison chance must be that of Envenom. [Skotlex] - skilllv = pc_checkskill(sd, TF_POISON); + skill_lv = pc_checkskill(sd, TF_POISON); case TF_POISON: case AS_SPLASHER: - if (!sc_start2(bl,SC_POISON,(4*skilllv+10),skilllv,src->id,skill_get_time2(skillid,skilllv)) - && sd && skillid==TF_POISON + if (!sc_start2(bl,SC_POISON,(4*skill_lv+10),skill_lv,src->id,skill_get_time2(skill_id,skill_lv)) + && sd && skill_id==TF_POISON ) - clif_skill_fail(sd,skillid,USESKILL_FAIL_LEVEL,0); + clif_skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0); break; case AS_SONICBLOW: - sc_start(bl,SC_STUN,(2*skilllv+10),skilllv,skill_get_time2(skillid,skilllv)); + sc_start(bl,SC_STUN,(2*skill_lv+10),skill_lv,skill_get_time2(skill_id,skill_lv)); break; case WZ_FIREPILLAR: - unit_set_walkdelay(bl, tick, skill_get_time2(skillid, skilllv), 1); + unit_set_walkdelay(bl, tick, skill_get_time2(skill_id, skill_lv), 1); break; case MG_FROSTDIVER: #ifndef RENEWAL case WZ_FROSTNOVA: #endif - sc_start(bl,SC_FREEZE,skilllv*3+35,skilllv,skill_get_time2(skillid,skilllv)); + sc_start(bl,SC_FREEZE,skill_lv*3+35,skill_lv,skill_get_time2(skill_id,skill_lv)); break; #ifdef RENEWAL case WZ_FROSTNOVA: - sc_start(bl,SC_FREEZE,skilllv*5+33,skilllv,skill_get_time2(skillid,skilllv)); + sc_start(bl,SC_FREEZE,skill_lv*5+33,skill_lv,skill_get_time2(skill_id,skill_lv)); break; #endif @@ -1049,11 +1049,11 @@ * Storm Gust counter was dropped in renewal **/ #ifdef RENEWAL - sc_start(bl,SC_FREEZE,65-(5*skilllv),skilllv,skill_get_time2(skillid,skilllv)); + sc_start(bl,SC_FREEZE,65-(5*skill_lv),skill_lv,skill_get_time2(skill_id,skill_lv)); #else //Tharis pointed out that this is normal freeze chance with a base of 300% if (tsc->sg_counter >= 3 && - sc_start(bl,SC_FREEZE,300,skilllv,skill_get_time2(skillid,skilllv))) + sc_start(bl,SC_FREEZE,300,skill_lv,skill_get_time2(skill_id,skill_lv))) tsc->sg_counter = 0; /** * being it only resets on success it'd keep stacking and eventually overflowing on mvps, so we reset at a high value @@ -1064,116 +1064,116 @@ break; case WZ_METEOR: - sc_start(bl,SC_STUN,3*skilllv,skilllv,skill_get_time2(skillid,skilllv)); + sc_start(bl,SC_STUN,3*skill_lv,skill_lv,skill_get_time2(skill_id,skill_lv)); break; case WZ_VERMILION: - sc_start(bl,SC_BLIND,4*skilllv,skilllv,skill_get_time2(skillid,skilllv)); + sc_start(bl,SC_BLIND,4*skill_lv,skill_lv,skill_get_time2(skill_id,skill_lv)); break; case HT_FREEZINGTRAP: case MA_FREEZINGTRAP: - sc_start(bl,SC_FREEZE,(3*skilllv+35),skilllv,skill_get_time2(skillid,skilllv)); + sc_start(bl,SC_FREEZE,(3*skill_lv+35),skill_lv,skill_get_time2(skill_id,skill_lv)); break; case HT_FLASHER: - sc_start(bl,SC_BLIND,(10*skilllv+30),skilllv,skill_get_time2(skillid,skilllv)); + sc_start(bl,SC_BLIND,(10*skill_lv+30),skill_lv,skill_get_time2(skill_id,skill_lv)); break; case HT_LANDMINE: case MA_LANDMINE: - sc_start(bl,SC_STUN,(5*skilllv+30),skilllv,skill_get_time2(skillid,skilllv)); + sc_start(bl,SC_STUN,(5*skill_lv+30),skill_lv,skill_get_time2(skill_id,skill_lv)); break; case HT_SHOCKWAVE: - status_percent_damage(src, bl, 0, 15*skilllv+5, false); + status_percent_damage(src, bl, 0, 15*skill_lv+5, false); break; case HT_SANDMAN: case MA_SANDMAN: - sc_start(bl,SC_SLEEP,(10*skilllv+40),skilllv,skill_get_time2(skillid,skilllv)); + sc_start(bl,SC_SLEEP,(10*skill_lv+40),skill_lv,skill_get_time2(skill_id,skill_lv)); break; case TF_SPRINKLESAND: - sc_start(bl,SC_BLIND,20,skilllv,skill_get_time2(skillid,skilllv)); + sc_start(bl,SC_BLIND,20,skill_lv,skill_get_time2(skill_id,skill_lv)); break; case TF_THROWSTONE: - sc_start(bl,SC_STUN,3,skilllv,skill_get_time(skillid,skilllv)); - sc_start(bl,SC_BLIND,3,skilllv,skill_get_time2(skillid,skilllv)); + sc_start(bl,SC_STUN,3,skill_lv,skill_get_time(skill_id,skill_lv)); + sc_start(bl,SC_BLIND,3,skill_lv,skill_get_time2(skill_id,skill_lv)); break; case NPC_DARKCROSS: case CR_HOLYCROSS: - sc_start(bl,SC_BLIND,3*skilllv,skilllv,skill_get_time2(skillid,skilllv)); + sc_start(bl,SC_BLIND,3*skill_lv,skill_lv,skill_get_time2(skill_id,skill_lv)); break; case CR_GRANDCROSS: case NPC_GRANDDARKNESS: //Chance to cause blind status vs demon and undead element, but not against players if (!dstsd && (battle_check_undead(tstatus->race,tstatus->def_ele) || tstatus->race == RC_DEMON)) - sc_start(bl,SC_BLIND,100,skilllv,skill_get_time2(skillid,skilllv)); + sc_start(bl,SC_BLIND,100,skill_lv,skill_get_time2(skill_id,skill_lv)); attack_type |= BF_WEAPON; break; case AM_ACIDTERROR: - sc_start(bl,SC_BLEEDING,(skilllv*3),skilllv,skill_get_time2(skillid,skilllv)); - if (skill_break_equip(bl, EQP_ARMOR, 100*skill_get_time(skillid,skilllv), BCT_ENEMY)) + sc_start(bl,SC_BLEEDING,(skill_lv*3),skill_lv,skill_get_time2(skill_id,skill_lv)); + if (skill_break_equip(bl, EQP_ARMOR, 100*skill_get_time(skill_id,skill_lv), BCT_ENEMY)) clif_emotion(bl,E_OMG); break; case AM_DEMONSTRATION: - skill_break_equip(bl, EQP_WEAPON, 100*skilllv, BCT_ENEMY); + skill_break_equip(bl, EQP_WEAPON, 100*skill_lv, BCT_ENEMY); break; case CR_SHIELDCHARGE: - sc_start(bl,SC_STUN,(15+skilllv*5),skilllv,skill_get_time2(skillid,skilllv)); + sc_start(bl,SC_STUN,(15+skill_lv*5),skill_lv,skill_get_time2(skill_id,skill_lv)); break; case PA_PRESSURE: - status_percent_damage(src, bl, 0, 15+5*skilllv, false); + status_percent_damage(src, bl, 0, 15+5*skill_lv, false); break; case RG_RAID: - sc_start(bl,SC_STUN,(10+3*skilllv),skilllv,skill_get_time(skillid,skilllv)); - sc_start(bl,SC_BLIND,(10+3*skilllv),skilllv,skill_get_time2(skillid,skilllv)); + sc_start(bl,SC_STUN,(10+3*skill_lv),skill_lv,skill_get_time(skill_id,skill_lv)); + sc_start(bl,SC_BLIND,(10+3*skill_lv),skill_lv,skill_get_time2(skill_id,skill_lv)); #ifdef RENEWAL sc_start(bl,SC_RAID,100,7,5000); break; case RG_BACKSTAP: - sc_start(bl,SC_STUN,(5+2*skilllv),skilllv,skill_get_time(skillid,skilllv)); + sc_start(bl,SC_STUN,(5+2*skill_lv),skill_lv,skill_get_time(skill_id,skill_lv)); #endif break; case BA_FROSTJOKER: - sc_start(bl,SC_FREEZE,(15+5*skilllv),skilllv,skill_get_time2(skillid,skilllv)); + sc_start(bl,SC_FREEZE,(15+5*skill_lv),skill_lv,skill_get_time2(skill_id,skill_lv)); break; case DC_SCREAM: - sc_start(bl,SC_STUN,(25+5*skilllv),skilllv,skill_get_time2(skillid,skilllv)); + sc_start(bl,SC_STUN,(25+5*skill_lv),skill_lv,skill_get_time2(skill_id,skill_lv)); break; case BD_LULLABY: - sc_start(bl,SC_SLEEP,15,skilllv,skill_get_time2(skillid,skilllv)); + sc_start(bl,SC_SLEEP,15,skill_lv,skill_get_time2(skill_id,skill_lv)); break; case DC_UGLYDANCE: - rate = 5+5*skilllv; + rate = 5+5*skill_lv; if (sd && (skill=pc_checkskill(sd,DC_DANCINGLESSON))) rate += 5+skill; status_zap(bl, 0, rate); break; case SL_STUN: if (tstatus->size==SZ_MEDIUM) //Only stuns mid-sized mobs. - sc_start(bl,SC_STUN,(30+10*skilllv),skilllv,skill_get_time(skillid,skilllv)); + sc_start(bl,SC_STUN,(30+10*skill_lv),skill_lv,skill_get_time(skill_id,skill_lv)); break; case NPC_PETRIFYATTACK: - sc_start4(bl,status_skill2sc(skillid),50+10*skilllv, - skilllv,0,0,skill_get_time(skillid,skilllv), - skill_get_time2(skillid,skilllv)); + sc_start4(bl,status_skill2sc(skill_id),50+10*skill_lv, + skill_lv,0,0,skill_get_time(skill_id,skill_lv), + skill_get_time2(skill_id,skill_lv)); break; case NPC_CURSEATTACK: case NPC_SLEEPATTACK: @@ -1182,14 +1182,14 @@ case NPC_SILENCEATTACK: case NPC_STUNATTACK: case NPC_HELLPOWER: - sc_start(bl,status_skill2sc(skillid),50+10*skilllv,skilllv,skill_get_time2(skillid,skilllv)); + sc_start(bl,status_skill2sc(skill_id),50+10*skill_lv,skill_lv,skill_get_time2(skill_id,skill_lv)); break; case NPC_ACIDBREATH: case NPC_ICEBREATH: - sc_start(bl,status_skill2sc(skillid),70,skilllv,skill_get_time2(skillid,skilllv)); + sc_start(bl,status_skill2sc(skill_id),70,skill_lv,skill_get_time2(skill_id,skill_lv)); break; case NPC_BLEEDING: - sc_start(bl,SC_BLEEDING,(20*skilllv),skilllv,skill_get_time2(skillid,skilllv)); + sc_start(bl,SC_BLEEDING,(20*skill_lv),skill_lv,skill_get_time2(skill_id,skill_lv)); break; case NPC_MENTALBREAKER: { //Based on observations by Tharis, Mental Breaker should do SP damage @@ -1197,51 +1197,51 @@ rate = sstatus->matk_min; if (rate < sstatus->matk_max) rate += rnd()%(sstatus->matk_max - sstatus->matk_min); - rate*=skilllv; + rate*=skill_lv; status_zap(bl, 0, rate); break; } // Equipment breaking monster skills [Celest] case NPC_WEAPONBRAKER: - skill_break_equip(bl, EQP_WEAPON, 150*skilllv, BCT_ENEMY); + skill_break_equip(bl, EQP_WEAPON, 150*skill_lv, BCT_ENEMY); break; case NPC_ARMORBRAKE: - skill_break_equip(bl, EQP_ARMOR, 150*skilllv, BCT_ENEMY); + skill_break_equip(bl, EQP_ARMOR, 150*skill_lv, BCT_ENEMY); break; case NPC_HELMBRAKE: - skill_break_equip(bl, EQP_HELM, 150*skilllv, BCT_ENEMY); + skill_break_equip(bl, EQP_HELM, 150*skill_lv, BCT_ENEMY); break; case NPC_SHIELDBRAKE: - skill_break_equip(bl, EQP_SHIELD, 150*skilllv, BCT_ENEMY); + skill_break_equip(bl, EQP_SHIELD, 150*skill_lv, BCT_ENEMY); break; case CH_TIGERFIST: - sc_start(bl,SC_STOP,(10+skilllv*10),0,skill_get_time2(skillid,skilllv)); + sc_start(bl,SC_STOP,(10+skill_lv*10),0,skill_get_time2(skill_id,skill_lv)); break; case LK_SPIRALPIERCE: case ML_SPIRALPIERCE: - sc_start(bl,SC_STOP,(15+skilllv*5),0,skill_get_time2(skillid,skilllv)); + sc_start(bl,SC_STOP,(15+skill_lv*5),0,skill_get_time2(skill_id,skill_lv)); break; case ST_REJECTSWORD: - sc_start(bl,SC_AUTOCOUNTER,(skilllv*15),skilllv,skill_get_time(skillid,skilllv)); + sc_start(bl,SC_AUTOCOUNTER,(skill_lv*15),skill_lv,skill_get_time(skill_id,skill_lv)); break; case PF_FOGWALL: if (src != bl && !tsc->data[SC_DELUGE]) - status_change_start(bl,SC_BLIND,10000,skilllv,0,0,0,skill_get_time2(skillid,skilllv),8); + status_change_start(bl,SC_BLIND,10000,skill_lv,0,0,0,skill_get_time2(skill_id,skill_lv),8); break; case LK_HEADCRUSH: //Headcrush has chance of causing Bleeding status, except on demon and undead element if (!(battle_check_undead(tstatus->race, tstatus->def_ele) || tstatus->race == RC_DEMON)) - sc_start(bl, SC_BLEEDING,50, skilllv, skill_get_time2(skillid,skilllv)); + sc_start(bl, SC_BLEEDING,50, skill_lv, skill_get_time2(skill_id,skill_lv)); break; case LK_JOINTBEAT: - status = status_skill2sc(skillid); + status = status_skill2sc(skill_id); if (tsc->jb_flag) { - sc_start2(bl,status,(5*skilllv+5),skilllv,tsc->jb_flag&BREAK_FLAGS,skill_get_time2(skillid,skilllv)); + sc_start2(bl,status,(5*skill_lv+5),skill_lv,tsc->jb_flag&BREAK_FLAGS,skill_get_time2(skill_id,skill_lv)); tsc->jb_flag = 0; } break; @@ -1249,30 +1249,30 @@ //Any enemies hit by this skill will receive Stun, Darkness, or external bleeding status ailment with a 5%+5*SkillLV% chance. switch (rnd()%3) { case 0: - sc_start(bl,SC_BLIND,(5+skilllv*5),skilllv,skill_get_time2(skillid,1)); + sc_start(bl,SC_BLIND,(5+skill_lv*5),skill_lv,skill_get_time2(skill_id,1)); break; case 1: - sc_start(bl,SC_STUN,(5+skilllv*5),skilllv,skill_get_time2(skillid,2)); + sc_start(bl,SC_STUN,(5+skill_lv*5),skill_lv,skill_get_time2(skill_id,2)); break; default: - sc_start(bl,SC_BLEEDING,(5+skilllv*5),skilllv,skill_get_time2(skillid,3)); + sc_start(bl,SC_BLEEDING,(5+skill_lv*5),skill_lv,skill_get_time2(skill_id,3)); } break; case HW_NAPALMVULCAN: - sc_start(bl,SC_CURSE,5*skilllv,skilllv,skill_get_time2(skillid,skilllv)); + sc_start(bl,SC_CURSE,5*skill_lv,skill_lv,skill_get_time2(skill_id,skill_lv)); break; case WS_CARTTERMINATION: // Cart termination - sc_start(bl,SC_STUN,5*skilllv,skilllv,skill_get_time2(skillid,skilllv)); + sc_start(bl,SC_STUN,5*skill_lv,skill_lv,skill_get_time2(skill_id,skill_lv)); break; case CR_ACIDDEMONSTRATION: - skill_break_equip(bl, EQP_WEAPON|EQP_ARMOR, 100*skilllv, BCT_ENEMY); + skill_break_equip(bl, EQP_WEAPON|EQP_ARMOR, 100*skill_lv, BCT_ENEMY); break; case TK_DOWNKICK: - sc_start(bl,SC_STUN,100,skilllv,skill_get_time2(skillid,skilllv)); + sc_start(bl,SC_STUN,100,skill_lv,skill_get_time2(skill_id,skill_lv)); break; case TK_JUMPKICK: @@ -1289,86 +1289,86 @@ case TK_TURNKICK: case MO_BALKYOUNG: //Note: attack_type is passed as BF_WEAPON for the actual target, BF_MISC for the splash-affected mobs. if (attack_type&BF_MISC) //70% base stun chance... - sc_start(bl,SC_STUN,70,skilllv,skill_get_time2(skillid,skilllv)); + sc_start(bl,SC_STUN,70,skill_lv,skill_get_time2(skill_id,skill_lv)); break; case GS_BULLSEYE: //0.1% coma rate. if (tstatus->race == RC_BRUTE || tstatus->race == RC_DEMIHUMAN) - status_change_start(bl,SC_COMA,10,skilllv,0,src->id,0,0,0); + status_change_start(bl,SC_COMA,10,skill_lv,0,src->id,0,0,0); break; case GS_PIERCINGSHOT: - sc_start(bl,SC_BLEEDING,(skilllv*3),skilllv,skill_get_time2(skillid,skilllv)); + sc_start(bl,SC_BLEEDING,(skill_lv*3),skill_lv,skill_get_time2(skill_id,skill_lv)); break; case NJ_HYOUSYOURAKU: - sc_start(bl,SC_FREEZE,(10+10*skilllv),skilllv,skill_get_time2(skillid,skilllv)); + sc_start(bl,SC_FREEZE,(10+10*skill_lv),skill_lv,skill_get_time2(skill_id,skill_lv)); break; case GS_FLING: - sc_start(bl,SC_FLING,100, sd?sd->spiritball_old:5,skill_get_time(skillid,skilllv)); + sc_start(bl,SC_FLING,100, sd?sd->spiritball_old:5,skill_get_time(skill_id,skill_lv)); break; case GS_DISARM: - rate = 3*skilllv; + rate = 3*skill_lv; if (sstatus->dex > tstatus->dex) rate += (sstatus->dex - tstatus->dex)/5; //TODO: Made up formula - skill_strip_equip(bl, EQP_WEAPON, rate, skilllv, skill_get_time(skillid,skilllv)); - clif_skill_nodamage(src,bl,skillid,skilllv,1); + skill_strip_equip(bl, EQP_WEAPON, rate, skill_lv, skill_get_time(skill_id,skill_lv)); + clif_skill_nodamage(src,bl,skill_id,skill_lv,1); break; case NPC_EVILLAND: - sc_start(bl,SC_BLIND,5*skilllv,skilllv,skill_get_time2(skillid,skilllv)); + sc_start(bl,SC_BLIND,5*skill_lv,skill_lv,skill_get_time2(skill_id,skill_lv)); break; case NPC_HELLJUDGEMENT: - sc_start(bl,SC_CURSE,100,skilllv,skill_get_time2(skillid,skilllv)); + sc_start(bl,SC_CURSE,100,skill_lv,skill_get_time2(skill_id,skill_lv)); break; case NPC_CRITICALWOUND: - sc_start(bl,SC_CRITICALWOUND,100,skilllv,skill_get_time2(skillid,skilllv)); + sc_start(bl,SC_CRITICALWOUND,100,skill_lv,skill_get_time2(skill_id,skill_lv)); break; case RK_HUNDREDSPEAR: if (!sd || pc_checkskill(sd,KN_SPEARBOOMERANG) == 0) break; // Spear Boomerang auto cast chance only works if you have mastered Spear Boomerang. - rate = 10 + 3 * skilllv; + rate = 10 + 3 * skill_lv; if (rnd()%100 < rate) skill_castend_damage_id(src,bl,KN_SPEARBOOMERANG,1,tick,0); break; case RK_WINDCUTTER: - sc_start(bl,SC_FEAR,3+2*skilllv,skilllv,skill_get_time(skillid,skilllv)); + sc_start(bl,SC_FEAR,3+2*skill_lv,skill_lv,skill_get_time(skill_id,skill_lv)); break; case RK_DRAGONBREATH: - sc_start4(bl,SC_BURNING,5+5*skilllv,skilllv,1000,src->id,0,skill_get_time(skillid,skilllv)); + sc_start4(bl,SC_BURNING,5+5*skill_lv,skill_lv,1000,src->id,0,skill_get_time(skill_id,skill_lv)); break; case AB_ADORAMUS: if (tsc && !tsc->data[SC_DECREASEAGI]) //Prevent duplicate agi-down effect. - sc_start(bl, SC_ADORAMUS, 100, skilllv, skill_get_time(skillid, skilllv)); + sc_start(bl, SC_ADORAMUS, 100, skill_lv, skill_get_time(skill_id, skill_lv)); break; case WL_CRIMSONROCK: - sc_start(bl, SC_STUN, 40, skilllv, skill_get_time(skillid, skilllv)); + sc_start(bl, SC_STUN, 40, skill_lv, skill_get_time(skill_id, skill_lv)); break; case WL_COMET: - sc_start4(bl,SC_BURNING,100,skilllv,1000,src->id,0,skill_get_time(skillid,skilllv)); + sc_start4(bl,SC_BURNING,100,skill_lv,1000,src->id,0,skill_get_time(skill_id,skill_lv)); break; case WL_EARTHSTRAIN: { int rate = 0, i; const int pos[5] = { EQP_WEAPON, EQP_HELM, EQP_SHIELD, EQP_ARMOR, EQP_ACC }; - rate = 6 * skilllv + sstatus->dex / 10 + (sd? sd->status.job_level / 4 : 0) - tstatus->dex /5;// The tstatus->dex / 5 part is unofficial, but players gotta have some kind of way to have resistance. [Rytech] + rate = 6 * skill_lv + sstatus->dex / 10 + (sd? sd->status.job_level / 4 : 0) - tstatus->dex /5;// The tstatus->dex / 5 part is unofficial, but players gotta have some kind of way to have resistance. [Rytech] //rate -= rate * tstatus->dex / 200; // Disabled until official resistance is found. - for (i = 0; i < skilllv; i++) - skill_strip_equip(bl,pos[i],rate,skilllv,skill_get_time2(skillid,skilllv)); + for (i = 0; i < skill_lv; i++) + skill_strip_equip(bl,pos[i],rate,skill_lv,skill_get_time2(skill_id,skill_lv)); } break; case WL_JACKFROST: - sc_start(bl,SC_FREEZE,100,skilllv,skill_get_time(skillid,skilllv)); + sc_start(bl,SC_FREEZE,100,skill_lv,skill_get_time(skill_id,skill_lv)); break; case RA_WUGBITE: - sc_start(bl, SC_BITE, (sd ? pc_checkskill(sd,RA_TOOTHOFWUG)*2 : 0), skilllv, (skill_get_time(skillid,skilllv) + (sd ? pc_checkskill(sd,RA_TOOTHOFWUG)*500 : 0))); + sc_start(bl, SC_BITE, (sd ? pc_checkskill(sd,RA_TOOTHOFWUG)*2 : 0), skill_lv, (skill_get_time(skill_id,skill_lv) + (sd ? pc_checkskill(sd,RA_TOOTHOFWUG)*500 : 0))); break; case RA_SENSITIVEKEEN: - if (rnd()%100 < 8 * skilllv) - skill_castend_damage_id(src, bl, RA_WUGBITE, sd ? pc_checkskill(sd, RA_WUGBITE):skilllv, tick, SD_ANIMATION); + if (rnd()%100 < 8 * skill_lv) + skill_castend_damage_id(src, bl, RA_WUGBITE, sd ? pc_checkskill(sd, RA_WUGBITE):skill_lv, tick, SD_ANIMATION); break; case RA_FIRINGTRAP: case RA_ICEBOUNDTRAP: - sc_start(bl, (skillid == RA_FIRINGTRAP) ? SC_BURNING:SC_FREEZING, 40 + 10 * skilllv, skilllv, skill_get_time2(skillid, skilllv)); + sc_start(bl, (skill_id == RA_FIRINGTRAP) ? SC_BURNING:SC_FREEZING, 40 + 10 * skill_lv, skill_lv, skill_get_time2(skill_id, skill_lv)); break; case NC_PILEBUNKER: - if (rnd()%100 < 5 + 15*skilllv) { + if (rnd()%100 < 5 + 15*skill_lv) { //Deactivatable Statuses: Kyrie Eleison, Auto Guard, Steel Body, Assumptio, and Millennium Shield status_change_end(bl, SC_KYRIE, INVALID_TIMER); status_change_end(bl, SC_AUTOGUARD, INVALID_TIMER); @@ -1378,76 +1378,76 @@ } break; case NC_FLAMELAUNCHER: - sc_start4(bl, SC_BURNING, 50 + 10 * skilllv, skilllv, 1000, src->id, 0, skill_get_time2(skillid, skilllv)); + sc_start4(bl, SC_BURNING, 50 + 10 * skill_lv, skill_lv, 1000, src->id, 0, skill_get_time2(skill_id, skill_lv)); break; case NC_COLDSLOWER: - sc_start(bl, SC_FREEZE, 10 * skilllv, skilllv, skill_get_time(skillid, skilllv)); - sc_start(bl, SC_FREEZING, 20 + 10 * skilllv, skilllv, skill_get_time(skillid, skilllv)); + sc_start(bl, SC_FREEZE, 10 * skill_lv, skill_lv, skill_get_time(skill_id, skill_lv)); + sc_start(bl, SC_FREEZING, 20 + 10 * skill_lv, skill_lv, skill_get_time(skill_id, skill_lv)); break; case NC_POWERSWING: - sc_start(bl, SC_STUN, 5*skilllv, skilllv, skill_get_time(skillid, skilllv)); - if (rnd()%100 < 5*skilllv) + sc_start(bl, SC_STUN, 5*skill_lv, skill_lv, skill_get_time(skill_id, skill_lv)); + if (rnd()%100 < 5*skill_lv) skill_castend_damage_id(src, bl, NC_AXEBOOMERANG, pc_checkskill(sd, NC_AXEBOOMERANG), tick, 1); break; case GC_WEAPONCRUSH: - skill_castend_nodamage_id(src,bl,skillid,skilllv,tick,BCT_ENEMY); + skill_castend_nodamage_id(src,bl,skill_id,skill_lv,tick,BCT_ENEMY); break; case LG_SHIELDPRESS: - sc_start(bl, SC_STUN, 30 + 8 * skilllv, skilllv, skill_get_time(skillid,skilllv)); + sc_start(bl, SC_STUN, 30 + 8 * skill_lv, skill_lv, skill_get_time(skill_id,skill_lv)); break; case LG_PINPOINTATTACK: - rate = 30 + (((5 * (sd?pc_checkskill(sd,LG_PINPOINTATTACK):skilllv)) + (sstatus->agi + status_get_lv(src))) / 10); - switch (skilllv) { + rate = 30 + (((5 * (sd?pc_checkskill(sd,LG_PINPOINTATTACK):skill_lv)) + (sstatus->agi + status_get_lv(src))) / 10); + switch (skill_lv) { case 1: - sc_start(bl,SC_BLEEDING,rate,skilllv,skill_get_time(skillid,skilllv)); + sc_start(bl,SC_BLEEDING,rate,skill_lv,skill_get_time(skill_id,skill_lv)); break; case 2: if (dstsd && dstsd->spiritball && rnd()%100 < rate) pc_delspiritball(dstsd, dstsd->spiritball, 0); break; default: - skill_break_equip(bl,(skilllv == 3) ? EQP_SHIELD : (skilllv == 4) ? EQP_ARMOR : EQP_WEAPON,rate * 100,BCT_ENEMY); + skill_break_equip(bl,(skill_lv == 3) ? EQP_SHIELD : (skill_lv == 4) ? EQP_ARMOR : EQP_WEAPON,rate * 100,BCT_ENEMY); break; } break; case LG_MOONSLASHER: - rate = 32 + 8 * skilllv; + rate = 32 + 8 * skill_lv; if (rnd()%100 < rate && dstsd) // Uses skill_addtimerskill to avoid damage and setsit packet overlaping. Officially clif_setsit is received about 500 ms after damage packet. - skill_addtimerskill(src,tick+500,bl->id,0,0,skillid,skilllv,BF_WEAPON,0); + skill_addtimerskill(src,tick+500,bl->id,0,0,skill_id,skill_lv,BF_WEAPON,0); else if (dstmd && !is_boss(bl)) - sc_start(bl,SC_STOP,100,skilllv,skill_get_time(skillid,skilllv)); + sc_start(bl,SC_STOP,100,skill_lv,skill_get_time(skill_id,skill_lv)); break; case LG_RAYOFGENESIS: // 50% chance to cause Blind on Undead and Demon monsters. if (battle_check_undead(tstatus->race, tstatus->def_ele) || tstatus->race == RC_DEMON) - sc_start(bl, SC_BLIND,50, skilllv, skill_get_time(skillid,skilllv)); + sc_start(bl, SC_BLIND,50, skill_lv, skill_get_time(skill_id,skill_lv)); break; case LG_EARTHDRIVE: skill_break_equip(src, EQP_SHIELD, 500, BCT_SELF); - sc_start(bl, SC_EARTHDRIVE, 100, skilllv, skill_get_time(skillid, skilllv)); + sc_start(bl, SC_EARTHDRIVE, 100, skill_lv, skill_get_time(skill_id, skill_lv)); break; case SR_DRAGONCOMBO: - sc_start(bl, SC_STUN, 1 + skilllv, skilllv, skill_get_time(skillid, skilllv)); + sc_start(bl, SC_STUN, 1 + skill_lv, skill_lv, skill_get_time(skill_id, skill_lv)); break; case SR_FALLENEMPIRE: - sc_start(bl, SC_STOP, 100, skilllv, skill_get_time(skillid, skilllv)); + sc_start(bl, SC_STOP, 100, skill_lv, skill_get_time(skill_id, skill_lv)); break; case SR_WINDMILL: if (dstsd) - skill_addtimerskill(src,tick+status_get_amotion(src),bl->id,0,0,skillid,skilllv,BF_WEAPON,0); + skill_addtimerskill(src,tick+status_get_amotion(src),bl->id,0,0,skill_id,skill_lv,BF_WEAPON,0); else if (dstmd && !is_boss(bl)) - sc_start(bl, SC_STUN, 100, skilllv, 1000 + 1000 * (rnd() %3)); + sc_start(bl, SC_STUN, 100, skill_lv, 1000 + 1000 * (rnd() %3)); break; case SR_GENTLETOUCH_QUIET: // [(Skill Level x 5) + (Caster?s DEX + Caster?s Base Level) / 10] - sc_start(bl, SC_SILENCE, 5 * skilllv + (sstatus->dex + status_get_lv(src)) / 10, skilllv, skill_get_time(skillid, skilllv)); + sc_start(bl, SC_SILENCE, 5 * skill_lv + (sstatus->dex + status_get_lv(src)) / 10, skill_lv, skill_get_time(skill_id, skill_lv)); break; case SR_EARTHSHAKER: - sc_start(bl,SC_STUN, 25 + 5 * skilllv,skilllv,skill_get_time(skillid,skilllv)); + sc_start(bl,SC_STUN, 25 + 5 * skill_lv,skill_lv,skill_get_time(skill_id,skill_lv)); break; case SR_HOWLINGOFLION: - sc_start(bl, SC_FEAR, 5 + 5 * skilllv, skilllv, skill_get_time(skillid, skilllv)); + sc_start(bl, SC_FEAR, 5 + 5 * skill_lv, skill_lv, skill_get_time(skill_id, skill_lv)); break; case WM_SOUND_OF_DESTRUCTION: - if (rnd()%100 < 5 + 5 * skilllv) { // Temporarly Check Until We Get the Official Formula + if (rnd()%100 < 5 + 5 * skill_lv) { // Temporarly Check Until We Get the Official Formula status_change_end(bl, SC_DANCING, INVALID_TIMER); status_change_end(bl, SC_RICHMANKIM, INVALID_TIMER); status_change_end(bl, SC_ETERNALCHAOS, INVALID_TIMER); @@ -1479,67 +1479,67 @@ } break; case SO_EARTHGRAVE: - sc_start(bl, SC_BLEEDING, 5 * skilllv, skilllv, skill_get_time2(skillid, skilllv)); // Need official rate. [LimitLine] + sc_start(bl, SC_BLEEDING, 5 * skill_lv, skill_lv, skill_get_time2(skill_id, skill_lv)); // Need official rate. [LimitLine] break; case SO_DIAMONDDUST: - rate = 5 + 5 * skilllv; + rate = 5 + 5 * skill_lv; if (sc && sc->data[SC_COOLER_OPTION]) rate += rate * sc->data[SC_COOLER_OPTION]->val2 / 100; - sc_start(bl, SC_CRYSTALIZE, rate, skilllv, skill_get_time2(skillid, skilllv)); + sc_start(bl, SC_CRYSTALIZE, rate, skill_lv, skill_get_time2(skill_id, skill_lv)); break; case SO_VARETYR_SPEAR: - sc_start(bl, SC_STUN, 5 + 5 * skilllv, skilllv, skill_get_time2(skillid, skilllv)); + sc_start(bl, SC_STUN, 5 + 5 * skill_lv, skill_lv, skill_get_time2(skill_id, skill_lv)); break; case GN_SLINGITEM_RANGEMELEEATK: if (sd) { switch (sd->itemid) { // Starting SCs here instead of do it in skill_additional_effect to simplify the code. case 13261: - sc_start(bl, SC_STUN, 100, skilllv, skill_get_time2(GN_SLINGITEM, skilllv)); - sc_start(bl, SC_BLEEDING, 100, skilllv, skill_get_time2(GN_SLINGITEM, skilllv)); + sc_start(bl, SC_STUN, 100, skill_lv, skill_get_time2(GN_SLINGITEM, skill_lv)); + sc_start(bl, SC_BLEEDING, 100, skill_lv, skill_get_time2(GN_SLINGITEM, skill_lv)); break; case 13262: - sc_start(bl, SC_MELON_BOMB, 100, skilllv, skill_get_time(GN_SLINGITEM, skilllv)); // Reduces ASPD and moviment speed + sc_start(bl, SC_MELON_BOMB, 100, skill_lv, skill_get_time(GN_SLINGITEM, skill_lv)); // Reduces ASPD and moviment speed break; case 13264: - sc_start(bl, SC_BANANA_BOMB, 100, skilllv, skill_get_time(GN_SLINGITEM, skilllv)); // Reduces LUK ??Needed confirm it, may be it's bugged in kRORE? - sc_start(bl, SC_BANANA_BOMB_SITDOWN, 75, skilllv, skill_get_time(GN_SLINGITEM_RANGEMELEEATK,skilllv)); // Sitdown for 3 seconds. + sc_start(bl, SC_BANANA_BOMB, 100, skill_lv, skill_get_time(GN_SLINGITEM, skill_lv)); // Reduces LUK ??Needed confirm it, may be it's bugged in kRORE? + sc_start(bl, SC_BANANA_BOMB_SITDOWN, 75, skill_lv, skill_get_time(GN_SLINGITEM_RANGEMELEEATK,skill_lv)); // Sitdown for 3 seconds. break; } sd->itemid = -1; } break; case GN_HELLS_PLANT_ATK: - sc_start(bl, SC_STUN, 5 + 5 * skilllv, skilllv, skill_get_time2(skillid, skilllv)); - sc_start(bl, SC_BLEEDING, 20 + 10 * skilllv, skilllv, skill_get_time2(skillid, skilllv)); + sc_start(bl, SC_STUN, 5 + 5 * skill_lv, skill_lv, skill_get_time2(skill_id, skill_lv)); + sc_start(bl, SC_BLEEDING, 20 + 10 * skill_lv, skill_lv, skill_get_time2(skill_id, skill_lv)); break; case EL_WIND_SLASH: // Non confirmed rate. - sc_start(bl, SC_BLEEDING, 25, skilllv, skill_get_time(skillid,skilllv)); + sc_start(bl, SC_BLEEDING, 25, skill_lv, skill_get_time(skill_id,skill_lv)); break; case EL_STONE_HAMMER: - rate = 10 * skilllv; - sc_start(bl, SC_STUN, rate, skilllv, skill_get_time(skillid,skilllv)); + rate = 10 * skill_lv; + sc_start(bl, SC_STUN, rate, skill_lv, skill_get_time(skill_id,skill_lv)); break; case EL_ROCK_CRUSHER: case EL_ROCK_CRUSHER_ATK: - sc_start(bl,status_skill2sc(skillid),50,skilllv,skill_get_time(EL_ROCK_CRUSHER,skilllv)); + sc_start(bl,status_skill2sc(skill_id),50,skill_lv,skill_get_time(EL_ROCK_CRUSHER,skill_lv)); break; case EL_TYPOON_MIS: - sc_start(bl,SC_SILENCE,10*skilllv,skilllv,skill_get_time(skillid,skilllv)); + sc_start(bl,SC_SILENCE,10*skill_lv,skill_lv,skill_get_time(skill_id,skill_lv)); break; case KO_JYUMONJIKIRI: // needs more info - sc_start(bl,SC_JYUMONJIKIRI,25,skilllv,skill_get_time(skillid,skilllv)); + sc_start(bl,SC_JYUMONJIKIRI,25,skill_lv,skill_get_time(skill_id,skill_lv)); break; case KO_MAKIBISHI: - sc_start(bl, SC_STUN, 100, skilllv, skill_get_time2(skillid,skilllv)); + sc_start(bl, SC_STUN, 100, skill_lv, skill_get_time2(skill_id,skill_lv)); break; case MH_LAVA_SLIDE: - if (tsc && !tsc->data[SC_BURNING]) sc_start4(bl, SC_BURNING, 10 * skilllv, skilllv, 1000, src->id, 0, skill_get_time(skillid, skilllv)); + if (tsc && !tsc->data[SC_BURNING]) sc_start4(bl, SC_BURNING, 10 * skill_lv, skill_lv, 1000, src->id, 0, skill_get_time(skill_id, skill_lv)); break; case MH_STAHL_HORN: - sc_start(bl, SC_STUN, (20 + 4 * (skilllv-1)), skilllv, skill_get_time(skillid, skilllv)); + sc_start(bl, SC_STUN, (20 + 4 * (skill_lv-1)), skill_lv, skill_get_time(skill_id, skill_lv)); break; case MH_NEEDLE_OF_PARALYZE: - sc_start(bl, SC_PARALYSIS, 40 + (5*skilllv), skilllv, skill_get_time(skillid, skilllv)); + sc_start(bl, SC_PARALYSIS, 40 + (5*skill_lv), skill_lv, skill_get_time(skill_id, skill_lv)); break; } @@ -1570,7 +1570,7 @@ if (rate) skill_break_equip(src, EQP_WEAPON, rate, BCT_SELF); } - if (battle_config.equip_skill_break_rate && skillid != WS_CARTTERMINATION && skillid != ITM_TOMAHAWK) { + if (battle_config.equip_skill_break_rate && skill_id != WS_CARTTERMINATION && skill_id != ITM_TOMAHAWK) { // Cart Termination/Tomahawk won't trigger breaking data. Why? No idea, go ask Gravity. // Target weapon breaking rate = 0; @@ -1596,7 +1596,8 @@ if (sd && !status_isdead(bl) && sd->autospell[0].id) { struct block_list *tbl; struct unit_data *ud; - int i, skilllv, type, notok; + int i, type, notok; + uint16 skill_lv; for (i = 0; i < ARRAYLENGTH(sd->autospell) && sd->autospell[i].id; i++) { @@ -1614,8 +1615,8 @@ if (notok) continue; - skilllv = sd->autospell[i].lv?sd->autospell[i].lv:1; - if (skilllv < 0) skilllv = 1+rnd()%(-skilllv); + skill_lv = sd->autospell[i].lv?sd->autospell[i].lv:1; + if (skill_lv < 0) skill_lv = 1+rnd()%(-skill_lv); rate = (!sd->state.arrow_atk) ? sd->autospell[i].rate : sd->autospell[i].rate / 2; @@ -1628,18 +1629,18 @@ int maxcount = 0; if (!(BL_PC&battle_config.skill_reiteration) && skill_get_unit_flag(skill)&UF_NOREITERATION && - skill_check_unit_range(src,tbl->x,tbl->y,skill,skilllv) + skill_check_unit_range(src,tbl->x,tbl->y,skill,skill_lv) ) { continue; } if (BL_PC&battle_config.skill_nofootset && skill_get_unit_flag(skill)&UF_NOFOOTSET && - skill_check_unit_range2(src,tbl->x,tbl->y,skill,skilllv) + skill_check_unit_range2(src,tbl->x,tbl->y,skill,skill_lv) ) { continue; } if (BL_PC&battle_config.land_skill_limit && - (maxcount = skill_get_maxcount(skill, skilllv)) > 0 + (maxcount = skill_get_maxcount(skill, skill_lv)) > 0 ) { int v; for (v=0; vud.skillunit[v] && maxcount; v++) { @@ -1652,7 +1653,7 @@ } } if (battle_config.autospell_check_range && - !battle_check_range(src, tbl, skill_get_range2(src, skill,skilllv) + (skill == RG_CLOSECONFINE?0:1))) + !battle_check_range(src, tbl, skill_get_range2(src, skill,skill_lv) + (skill == RG_CLOSECONFINE?0:1))) continue; if (skill == AS_SONICBLOW) @@ -1661,24 +1662,24 @@ type = CAST_GROUND; sd->state.autocast = 1; - skill_consume_requirement(sd,skill,skilllv,1); + skill_consume_requirement(sd,skill,skill_lv,1); skill_toggle_magicpower(src, skill); switch (type) { case CAST_GROUND: - skill_castend_pos2(src, tbl->x, tbl->y, skill, skilllv, tick, 0); + skill_castend_pos2(src, tbl->x, tbl->y, skill, skill_lv, tick, 0); break; case CAST_NODAMAGE: - skill_castend_nodamage_id(src, tbl, skill, skilllv, tick, 0); + skill_castend_nodamage_id(src, tbl, skill, skill_lv, tick, 0); break; case CAST_DAMAGE: - skill_castend_damage_id(src, tbl, skill, skilllv, tick, 0); + skill_castend_damage_id(src, tbl, skill, skill_lv, tick, 0); break; } sd->state.autocast = 0; //Set canact delay. [Skotlex] ud = unit_bl2ud(src); if (ud) { - rate = skill_delayfix(src, skill, skilllv); + rate = skill_delayfix(src, skill, skill_lv); if (DIFF_TICK(ud->canact_tick, tick + rate) < 0) { ud->canact_tick = tick+rate; if (battle_config.display_status_timers && sd) @@ -1709,7 +1710,7 @@ dstmd && !(tstatus->mode&MD_BOSS) && (rnd()%10000 < sd->bonus.classchange)) { struct mob_db *mob; - int class_; + short class_; skill = 0; do { do { @@ -1728,32 +1729,33 @@ return 0; } -int skill_onskillusage(struct map_session_data *sd, struct block_list *bl, int skillid, unsigned int tick) +int skill_onskillusage(struct map_session_data *sd, struct block_list *bl, short trigger_skill_id, unsigned int tick) { - int skill, skilllv, i, type, notok; + uint16 skill_id, skill_lv; + int i, type, notok; struct block_list *tbl; - if (sd == NULL || skillid <= 0) + if (sd == NULL || trigger_skill_id <= 0) return 0; for (i = 0; i < ARRAYLENGTH(sd->autospell3) && sd->autospell3[i].flag; i++) { - if (sd->autospell3[i].flag != skillid) + if (sd->autospell3[i].flag != trigger_skill_id) continue; if (sd->autospell3[i].lock) continue; // autospell already being executed - skill = (sd->autospell3[i].id > 0) ? sd->autospell3[i].id : -sd->autospell3[i].id; + skill_id = (sd->autospell3[i].id > 0) ? sd->autospell3[i].id : -sd->autospell3[i].id; sd->state.autocast = 1; - notok = skillnotok(skill, sd); + notok = skillnotok(skill_id, sd); sd->state.autocast = 0; if (notok) continue; - skilllv = sd->autospell3[i].lv ? sd->autospell3[i].lv : 1; - if (skilllv < 0) skilllv = 1 + rnd()%(-skilllv); + skill_lv = sd->autospell3[i].lv ? sd->autospell3[i].lv : 1; + if (skill_lv < 0) skill_lv = 1 + rnd()%(-skill_lv); if (sd->autospell3[i].id >= 0 && bl == NULL) continue; // No target @@ -1762,26 +1764,26 @@ tbl = (sd->autospell3[i].id < 0) ? &sd->bl : bl; - if ((type = skill_get_casttype(skill)) == CAST_GROUND) { + if ((type = skill_get_casttype(skill_id)) == CAST_GROUND) { int maxcount = 0; if (!(BL_PC&battle_config.skill_reiteration) && - skill_get_unit_flag(skill)&UF_NOREITERATION && - skill_check_unit_range(&sd->bl,tbl->x,tbl->y,skill,skilllv) + skill_get_unit_flag(skill_id)&UF_NOREITERATION && + skill_check_unit_range(&sd->bl,tbl->x,tbl->y,skill_id,skill_lv) ) { continue; } if (BL_PC&battle_config.skill_nofootset && - skill_get_unit_flag(skill)&UF_NOFOOTSET && - skill_check_unit_range2(&sd->bl,tbl->x,tbl->y,skill,skilllv) + skill_get_unit_flag(skill_id)&UF_NOFOOTSET && + skill_check_unit_range2(&sd->bl,tbl->x,tbl->y,skill_id,skill_lv) ) { continue; } if (BL_PC&battle_config.land_skill_limit && - (maxcount = skill_get_maxcount(skill, skilllv)) > 0 + (maxcount = skill_get_maxcount(skill_id, skill_lv)) > 0 ) { int v; for (v=0; vud.skillunit[v] && maxcount; v++) { - if (sd->ud.skillunit[v]->skill_id == skill) + if (sd->ud.skillunit[v]->skill_id == skill_id) maxcount--; } if (maxcount == 0) { @@ -1790,21 +1792,21 @@ } } if (battle_config.autospell_check_range && - !battle_check_range(&sd->bl, tbl, skill_get_range2(&sd->bl, skill,skilllv) + (skill == RG_CLOSECONFINE?0:1))) + !battle_check_range(&sd->bl, tbl, skill_get_range2(&sd->bl, skill_id,skill_lv) + (skill_id == RG_CLOSECONFINE?0:1))) continue; sd->state.autocast = 1; sd->autospell3[i].lock = true; - skill_consume_requirement(sd,skill,skilllv,1); + skill_consume_requirement(sd,skill_id,skill_lv,1); switch (type) { case CAST_GROUND: - skill_castend_pos2(&sd->bl, tbl->x, tbl->y, skill, skilllv, tick, 0); + skill_castend_pos2(&sd->bl, tbl->x, tbl->y, skill_id, skill_lv, tick, 0); break; case CAST_NODAMAGE: - skill_castend_nodamage_id(&sd->bl, tbl, skill, skilllv, tick, 0); + skill_castend_nodamage_id(&sd->bl, tbl, skill_id, skill_lv, tick, 0); break; case CAST_DAMAGE: - skill_castend_damage_id(&sd->bl, tbl, skill, skilllv, tick, 0); + skill_castend_damage_id(&sd->bl, tbl, skill_id, skill_lv, tick, 0); break; } sd->autospell3[i].lock = false; @@ -1817,7 +1819,7 @@ continue; if (sd->autobonus3[i].active != INVALID_TIMER) continue; - if (sd->autobonus3[i].atk_type != skillid) + if (sd->autobonus3[i].atk_type != trigger_skill_id) continue; pc_exeautobonus(sd,&sd->autobonus3[i]); } @@ -1834,7 +1836,7 @@ * type of skills, so not every instance of skill_additional_effect needs a call * to this one. */ -int skill_counter_additional_effect(struct block_list *src, struct block_list *bl, int skillid, int skilllv, int attack_type, unsigned int tick) +int skill_counter_additional_effect(struct block_list *src, struct block_list *bl, uint16 skill_id, uint16 skill_lv, int attack_type, unsigned int tick) { int rate; struct map_session_data *sd=NULL; @@ -1843,8 +1845,8 @@ nullpo_ret(src); nullpo_ret(bl); - if (skillid < 0) return 0; - if (skillid > 0 && skilllv <= 0) return 0; // don't forget auto attacks! - celest + if (skill_id < 0) return 0; + if (skill_id > 0 && skill_lv <= 0) return 0; // don't forget auto attacks! - celest sd = BL_CAST(BL_PC, src); dstsd = BL_CAST(BL_PC, bl); @@ -1876,12 +1878,12 @@ } } - switch (skillid) { + switch (skill_id) { case MO_EXTREMITYFIST: - sc_start(src,SC_EXTREMITYFIST,100,skilllv,skill_get_time2(skillid,skilllv)); + sc_start(src,SC_EXTREMITYFIST,100,skill_lv,skill_get_time2(skill_id,skill_lv)); break; case GS_FULLBUSTER: - sc_start(src,SC_BLIND,2*skilllv,skilllv,skill_get_time2(skillid,skilllv)); + sc_start(src,SC_BLIND,2*skill_lv,skill_lv,skill_get_time2(skill_id,skill_lv)); break; case HFLI_SBR44: //[orn] case HVAN_EXPLOSION: @@ -1902,8 +1904,8 @@ rnd()%10000 < battle_config.sg_miracle_skill_ratio) //SG_MIRACLE [Komurka] sc_start(src,SC_MIRACLE,100,1,battle_config.sg_miracle_skill_duration); - if (sd && skillid && attack_type&BF_MAGIC && status_isdead(bl) && - !(skill_get_inf(skillid)&(INF_GROUND_SKILL|INF_SELF_SKILL)) && + if (sd && skill_id && attack_type&BF_MAGIC && status_isdead(bl) && + !(skill_get_inf(skill_id)&(INF_GROUND_SKILL|INF_SELF_SKILL)) && (rate=pc_checkskill(sd,HW_SOULDRAIN))>0 ) { //Soul Drain should only work on targetted spells [Skotlex] if (pc_issit(sd)) pc_setstand(sd); //Character stuck in attacking animation while 'sitting' fix. [Skotlex] @@ -1922,7 +1924,7 @@ if (attack_type&BF_MAGIC) { sp += sd->bonus.magic_sp_gain_value; hp += sd->bonus.magic_hp_gain_value; - if (skillid == WZ_WATERBALL) { //(bugreport:5303) + if (skill_id == WZ_WATERBALL) { //(bugreport:5303) struct status_change *sc = NULL; if ((sc = status_get_sc(src))) { if (sc->data[SC_SPIRIT] && @@ -1939,10 +1941,11 @@ // Trigger counter-spells to retaliate against damage causing skills. if (dstsd && !status_isdead(bl) && dstsd->autospell2[0].id && - !(skillid && skill_get_nk(skillid)&NK_NO_DAMAGE)) { + !(skill_id && skill_get_nk(skill_id)&NK_NO_DAMAGE)) { struct block_list *tbl; struct unit_data *ud; - int i, skillid, skilllv, rate, type, notok; + int i, rate, type, notok; + uint16 skill_id, skill_lv; for (i = 0; i < ARRAYLENGTH(dstsd->autospell2) && dstsd->autospell2[i].id; i++) { @@ -1951,16 +1954,16 @@ dstsd->autospell2[i].flag&attack_type&BF_SKILLMASK)) continue; // one or more trigger conditions were not fulfilled - skillid = (dstsd->autospell2[i].id > 0) ? dstsd->autospell2[i].id : -dstsd->autospell2[i].id; - skilllv = dstsd->autospell2[i].lv?dstsd->autospell2[i].lv:1; - if (skilllv < 0) skilllv = 1+rnd()%(-skilllv); + skill_id = (dstsd->autospell2[i].id > 0) ? dstsd->autospell2[i].id : -dstsd->autospell2[i].id; + skill_lv = dstsd->autospell2[i].lv?dstsd->autospell2[i].lv:1; + if (skill_lv < 0) skill_lv = 1+rnd()%(-skill_lv); rate = dstsd->autospell2[i].rate; if (attack_type&BF_LONG) rate>>=1; dstsd->state.autocast = 1; - notok = skillnotok(skillid, dstsd); + notok = skillnotok(skill_id, dstsd); dstsd->state.autocast = 0; if (notok) @@ -1971,26 +1974,26 @@ tbl = (dstsd->autospell2[i].id < 0) ? bl : src; - if ((type = skill_get_casttype(skillid)) == CAST_GROUND) { + if ((type = skill_get_casttype(skill_id)) == CAST_GROUND) { int maxcount = 0; if (!(BL_PC&battle_config.skill_reiteration) && - skill_get_unit_flag(skillid)&UF_NOREITERATION && - skill_check_unit_range(bl,tbl->x,tbl->y,skillid,skilllv) + skill_get_unit_flag(skill_id)&UF_NOREITERATION && + skill_check_unit_range(bl,tbl->x,tbl->y,skill_id,skill_lv) ) { continue; } if (BL_PC&battle_config.skill_nofootset && - skill_get_unit_flag(skillid)&UF_NOFOOTSET && - skill_check_unit_range2(bl,tbl->x,tbl->y,skillid,skilllv) + skill_get_unit_flag(skill_id)&UF_NOFOOTSET && + skill_check_unit_range2(bl,tbl->x,tbl->y,skill_id,skill_lv) ) { continue; } if (BL_PC&battle_config.land_skill_limit && - (maxcount = skill_get_maxcount(skillid, skilllv)) > 0 + (maxcount = skill_get_maxcount(skill_id, skill_lv)) > 0 ) { int v; for (v=0; vud.skillunit[v] && maxcount; v++) { - if (dstsd->ud.skillunit[v]->skill_id == skillid) + if (dstsd->ud.skillunit[v]->skill_id == skill_id) maxcount--; } if (maxcount == 0) { @@ -1999,27 +2002,27 @@ } } - if (!battle_check_range(src, tbl, skill_get_range2(src, skillid,skilllv) + (skillid == RG_CLOSECONFINE?0:1)) && battle_config.autospell_check_range) + if (!battle_check_range(src, tbl, skill_get_range2(src, skill_id,skill_lv) + (skill_id == RG_CLOSECONFINE?0:1)) && battle_config.autospell_check_range) continue; dstsd->state.autocast = 1; - skill_consume_requirement(dstsd,skillid,skilllv,1); + skill_consume_requirement(dstsd,skill_id,skill_lv,1); switch (type) { case CAST_GROUND: - skill_castend_pos2(bl, tbl->x, tbl->y, skillid, skilllv, tick, 0); + skill_castend_pos2(bl, tbl->x, tbl->y, skill_id, skill_lv, tick, 0); break; case CAST_NODAMAGE: - skill_castend_nodamage_id(bl, tbl, skillid, skilllv, tick, 0); + skill_castend_nodamage_id(bl, tbl, skill_id, skill_lv, tick, 0); break; case CAST_DAMAGE: - skill_castend_damage_id(bl, tbl, skillid, skilllv, tick, 0); + skill_castend_damage_id(bl, tbl, skill_id, skill_lv, tick, 0); break; } dstsd->state.autocast = 0; //Set canact delay. [Skotlex] ud = unit_bl2ud(bl); if (ud) { - rate = skill_delayfix(bl, skillid, skilllv); + rate = skill_delayfix(bl, skill_id, skill_lv); if (DIFF_TICK(ud->canact_tick, tick + rate) < 0) { ud->canact_tick = tick+rate; if (battle_config.display_status_timers && dstsd) @@ -2030,7 +2033,7 @@ } //Autobonus when attacked - if (dstsd && !status_isdead(bl) && dstsd->autobonus2[0].rate && !(skillid && skill_get_nk(skillid)&NK_NO_DAMAGE)) { + if (dstsd && !status_isdead(bl) && dstsd->autobonus2[0].rate && !(skill_id && skill_get_nk(skill_id)&NK_NO_DAMAGE)) { int i; for (i = 0; i < ARRAYLENGTH(dstsd->autobonus2); i++) { if (rnd()%1000 >= dstsd->autobonus2[i].rate) @@ -2278,7 +2281,7 @@ * flag&0x2000 is used to signal that the skilllv should be passed as -1 to the * client (causes player characters to not scream skill name) *-------------------------------------------------------------------------*/ -int skill_attack(int attack_type, struct block_list *src, struct block_list *dsrc, struct block_list *bl, int skillid, int skilllv, unsigned int tick, int flag) +int skill_attack(int attack_type, struct block_list *src, struct block_list *dsrc, struct block_list *bl, uint16 skill_id, uint16 skill_lv, unsigned int tick, int flag) { struct Damage dmg; struct status_data *sstatus, *tstatus; @@ -2286,7 +2289,7 @@ struct map_session_data *sd, *tsd; int type,damage,rdamage=0; - if (skillid > 0 && skilllv <= 0) return 0; + if (skill_id > 0 && skill_lv <= 0) return 0; nullpo_ret(src); //Source is the master behind the attack (player/mob/pet) nullpo_ret(dsrc); //dsrc is the actual originator of the damage, can be the same as src, or a skill casted by src. @@ -2294,11 +2297,11 @@ if (src != dsrc) { //When caster is not the src of attack, this is a ground skill, and as such, do the relevant target checking. [Skotlex] - if (!status_check_skilluse(battle_config.skill_caster_check?src:NULL, bl, skillid, 2)) + if (!status_check_skilluse(battle_config.skill_caster_check?src:NULL, bl, skill_id, 2)) return 0; - } else if ((flag&SD_ANIMATION) && skill_get_nk(skillid)&NK_SPLASH) { + } else if ((flag&SD_ANIMATION) && skill_get_nk(skill_id)&NK_SPLASH) { //Note that splash attacks often only check versus the targetted mob, those around the splash area normally don't get checked for being hidden/cloaked/etc. [Skotlex] - if (!status_check_skilluse(src, bl, skillid, 2)) + if (!status_check_skilluse(src, bl, skill_id, 2)) return 0; } @@ -2311,32 +2314,32 @@ if (sc && !sc->count) sc = NULL; //Don't need it. // Is this check really needed? FrostNova won't hurt you if you step right where the caster is? - if (skillid == WZ_FROSTNOVA && dsrc->x == bl->x && dsrc->y == bl->y) + if (skill_id == WZ_FROSTNOVA && dsrc->x == bl->x && dsrc->y == bl->y) return 0; //Trick Dead protects you from damage, but not from buffs and the like, hence it's placed here. if (sc && sc->data[SC_TRICKDEAD] && !(sstatus->mode&MD_BOSS)) return 0; - dmg = battle_calc_attack(attack_type,src,bl,skillid,skilllv,flag&0xFFF); + dmg = battle_calc_attack(attack_type,src,bl,skill_id,skill_lv,flag&0xFFF); //Skotlex: Adjusted to the new system if (src->type==BL_PET) { // [Valaris] struct pet_data *pd = (TBL_PET *)src; - if (pd->a_skill && pd->a_skill->div_ && pd->a_skill->id == skillid) { - int element = skill_get_ele(skillid, skilllv); - if (skillid == -1) + if (pd->a_skill && pd->a_skill->div_ && pd->a_skill->id == skill_id) { + int element = skill_get_ele(skill_id, skill_lv); + if (skill_id == -1) element = sstatus->rhw.ele; if (element != ELE_NEUTRAL || !(battle_config.attack_attr_none&BL_PET)) - dmg.damage=battle_attr_fix(src, bl, skilllv, element, tstatus->def_ele, tstatus->ele_lv); + dmg.damage=battle_attr_fix(src, bl, skill_lv, element, tstatus->def_ele, tstatus->ele_lv); else - dmg.damage= skilllv; + dmg.damage= skill_lv; dmg.damage2=0; dmg.div_= pd->a_skill->div_; } } - if (dmg.flag&BF_MAGIC && (skillid != NPC_EARTHQUAKE || (battle_config.eq_single_target_reflectable && (flag&0xFFF) == 1))) { + if (dmg.flag&BF_MAGIC && (skill_id != NPC_EARTHQUAKE || (battle_config.eq_single_target_reflectable && (flag&0xFFF) == 1))) { // Earthquake on multiple targets is not counted as a target skill. [Inkfish] if ((dmg.damage || dmg.damage2) && (type = skill_magic_reflect(src, bl, src==dsrc))) { //Magic reflection, switch caster/target @@ -2359,7 +2362,7 @@ if (tsd) pc_delitem(tsd, type, 1, 0, 1, LOG_TYPE_CONSUME); dmg.damage = dmg.damage2 = 0; dmg.dmg_lv = ATK_MISS; - sc->data[SC_SPIRIT]->val3 = skillid; + sc->data[SC_SPIRIT]->val3 = skill_id; sc->data[SC_SPIRIT]->val4 = dsrc->id; } } @@ -2368,30 +2371,30 @@ **/ #if MAGIC_REFLECTION_TYPE if (dmg.dmg_lv != ATK_MISS) //Wiz SL cancelled and consumed fragment - dmg = battle_calc_attack(BF_MAGIC,bl,bl,skillid,skilllv,flag&0xFFF); + dmg = battle_calc_attack(BF_MAGIC,bl,bl,skill_id,skill_lv,flag&0xFFF); #endif } if (sc && sc->data[SC_MAGICROD] && src == dsrc) { - int sp = skill_get_sp(skillid,skilllv); + int sp = skill_get_sp(skill_id,skill_lv); dmg.damage = dmg.damage2 = 0; dmg.dmg_lv = ATK_MISS; //This will prevent skill additional effect from taking effect. [Skotlex] sp = sp * sc->data[SC_MAGICROD]->val2 / 100; - if (skillid == WZ_WATERBALL && skilllv > 1) - sp = sp/((skilllv|1)*(skilllv|1)); //Estimate SP cost of a single water-ball + if (skill_id == WZ_WATERBALL && skill_lv > 1) + sp = sp/((skill_lv|1)*(skill_lv|1)); //Estimate SP cost of a single water-ball status_heal(bl, 0, sp, 2); } } damage = dmg.damage + dmg.damage2; - if ((skillid == AL_INCAGI || skillid == AL_BLESSING || - skillid == CASH_BLESSING || skillid == CASH_INCAGI || - skillid == MER_INCAGI || skillid == MER_BLESSING) && tsd->sc.data[SC_CHANGEUNDEAD]) + if ((skill_id == AL_INCAGI || skill_id == AL_BLESSING || + skill_id == CASH_BLESSING || skill_id == CASH_INCAGI || + skill_id == MER_INCAGI || skill_id == MER_BLESSING) && tsd->sc.data[SC_CHANGEUNDEAD]) damage = 1; - if (damage > 0 && ((dmg.flag&BF_WEAPON && src != bl && (src == dsrc || (dsrc->type == BL_SKILL && (skillid == SG_SUN_WARM || skillid == SG_MOON_WARM || skillid == SG_STAR_WARM)))) + if (damage > 0 && ((dmg.flag&BF_WEAPON && src != bl && (src == dsrc || (dsrc->type == BL_SKILL && (skill_id == SG_SUN_WARM || skill_id == SG_MOON_WARM || skill_id == SG_STAR_WARM)))) || (sc && sc->data[SC_REFLECTDAMAGE]))) - rdamage = battle_calc_return_damage(bl,src, &damage, dmg.flag, skillid); + rdamage = battle_calc_return_damage(bl,src, &damage, dmg.flag, skill_id); if (damage && sc && sc->data[SC_GENSOU] && dmg.flag&BF_MAGIC) { struct block_list *nbl = NULL; @@ -2403,19 +2406,19 @@ } //Skill hit type - type=(skillid==0)?5:skill_get_hit(skillid); + type=(skill_id==0)?5:skill_get_hit(skill_id); if (damage < dmg.div_ //Only skills that knockback even when they miss. [Skotlex] - && skillid != CH_PALMSTRIKE) + && skill_id != CH_PALMSTRIKE) dmg.blewcount = 0; - if (skillid == CR_GRANDCROSS||skillid == NPC_GRANDDARKNESS) { + if (skill_id == CR_GRANDCROSS||skill_id == NPC_GRANDDARKNESS) { if (battle_config.gx_disptype) dsrc = src; if (src == bl) type = 4; else flag|=SD_ANIMATION; } - if (skillid == NJ_TATAMIGAESHI) { + if (skill_id == NJ_TATAMIGAESHI) { dsrc = src; //For correct knockback. flag|=SD_ANIMATION; } @@ -2424,14 +2427,14 @@ int flag = 0; //Used to signal if this skill can be combo'ed later on. struct status_change_entry *sce; if ((sce = sd->sc.data[SC_COMBO])) {//End combo state after skill is invoked. [Skotlex] - switch (skillid) { + switch (skill_id) { case TK_TURNKICK: case TK_STORMKICK: case TK_DOWNKICK: case TK_COUNTER: if (pc_famerank(sd->status.char_id,MAPID_TAEKWON)) {//Extend combo time. - sce->val1 = skillid; //Update combo-skill - sce->val3 = skillid; + sce->val1 = skill_id; //Update combo-skill + sce->val3 = skill_id; if (sce->timer != INVALID_TIMER) delete_timer(sce->timer, status_change_timer); sce->timer = add_timer(tick+sce->val4, status_change_timer, src->id, SC_COMBO); @@ -2444,7 +2447,7 @@ status_change_end(src, SC_COMBO, INVALID_TIMER); } } - switch (skillid) { + switch (skill_id) { case MO_TRIPLEATTACK: if (pc_checkskill(sd, MO_CHAINCOMBO) > 0 || pc_checkskill(sd, SR_DRAGONCOMBO) > 0) flag=1; @@ -2455,7 +2458,7 @@ break; case MO_COMBOFINISH: if (sd->status.party_id>0) //bonus from SG_FRIEND [Komurka] - party_skill_check(sd, sd->status.party_id, MO_COMBOFINISH, skilllv); + party_skill_check(sd, sd->status.party_id, MO_COMBOFINISH, skill_lv); if (pc_checkskill(sd, CH_TIGERFIST) > 0 && sd->spiritball > 0) flag=1; case CH_TIGERFIST: @@ -2481,8 +2484,8 @@ break; case SL_STIN: case SL_STUN: - if (skilllv >= 7 && !sd->sc.data[SC_SMA]) - sc_start(src,SC_SMA,100,skilllv,skill_get_time(SL_SMA, skilllv)); + if (skill_lv >= 7 && !sd->sc.data[SC_SMA]) + sc_start(src,SC_SMA,100,skill_lv,skill_get_time(SL_SMA, skill_lv)); break; case GS_FULLBUSTER: //Can't attack nor use items until skill's delay expires. [Skotlex] @@ -2500,13 +2503,13 @@ if (flag) { //Possible to chain flag = DIFF_TICK(sd->ud.canact_tick, tick); if (flag < 1) flag = 1; - sc_start2(src,SC_COMBO,100,skillid,bl->id,flag); + sc_start2(src,SC_COMBO,100,skill_id,bl->id,flag); clif_combo_delay(src, flag); } } //Display damage. - switch (skillid) { + switch (skill_id) { case PA_GOSPEL: //Should look like Holy Cross [Skotlex] dmg.dmotion = clif_skill_damage(dsrc,bl,tick,dmg.amotion,dmg.dmotion, damage, dmg.div_, CR_HOLYCROSS, -1, 5); break; @@ -2526,19 +2529,19 @@ case AS_SPLASHER: if (flag&SD_ANIMATION) // the surrounding targets - dmg.dmotion = clif_skill_damage(dsrc,bl,tick, dmg.amotion, dmg.dmotion, damage, dmg.div_, skillid, -1, 5); // needs -1 as skill level + dmg.dmotion = clif_skill_damage(dsrc,bl,tick, dmg.amotion, dmg.dmotion, damage, dmg.div_, skill_id, -1, 5); // needs -1 as skill level else // the central target doesn't display an animation - dmg.dmotion = clif_skill_damage(dsrc,bl,tick, dmg.amotion, dmg.dmotion, damage, dmg.div_, skillid, -2, 5); // needs -2(!) as skill level + dmg.dmotion = clif_skill_damage(dsrc,bl,tick, dmg.amotion, dmg.dmotion, damage, dmg.div_, skill_id, -2, 5); // needs -2(!) as skill level break; case WL_HELLINFERNO: case SR_EARTHSHAKER: - dmg.dmotion = clif_skill_damage(src,bl,tick,dmg.amotion,dmg.dmotion,damage,1,skillid,-2,6); + dmg.dmotion = clif_skill_damage(src,bl,tick,dmg.amotion,dmg.dmotion,damage,1,skill_id,-2,6); break; case WL_SOULEXPANSION: case WL_COMET: case KO_MUCHANAGE: case NJ_HUUMA: - dmg.dmotion = clif_skill_damage(src,bl,tick,dmg.amotion,dmg.dmotion,damage,dmg.div_,skillid,skilllv,8); + dmg.dmotion = clif_skill_damage(src,bl,tick,dmg.amotion,dmg.dmotion,damage,dmg.div_,skill_id,skill_lv,8); break; case WL_CHAINLIGHTNING_ATK: dmg.dmotion = clif_skill_damage(src,bl,tick,dmg.amotion,dmg.dmotion,damage,1,WL_CHAINLIGHTNING,-2,6); @@ -2565,16 +2568,16 @@ case EL_TYPOON_MIS_ATK: case KO_BAKURETSU: case GN_CRAZYWEED_ATK: - dmg.dmotion = clif_skill_damage(src,bl,tick,dmg.amotion,dmg.dmotion,damage,dmg.div_,skillid,-1,5); + dmg.dmotion = clif_skill_damage(src,bl,tick,dmg.amotion,dmg.dmotion,damage,dmg.div_,skill_id,-1,5); break; case GN_SLINGITEM_RANGEMELEEATK: dmg.dmotion = clif_skill_damage(src,bl,tick,dmg.amotion,dmg.dmotion,damage,dmg.div_,GN_SLINGITEM,-2,6); break; case EL_STONE_RAIN: - dmg.dmotion = clif_skill_damage(dsrc,bl,tick,dmg.amotion,dmg.dmotion,damage,dmg.div_,skillid,-1,(flag&1)?8:5); + dmg.dmotion = clif_skill_damage(dsrc,bl,tick,dmg.amotion,dmg.dmotion,damage,dmg.div_,skill_id,-1,(flag&1)?8:5); break; case WM_SEVERE_RAINSTORM_MELEE: - dmg.dmotion = clif_skill_damage(src,bl,tick,dmg.amotion,dmg.dmotion,damage,dmg.div_,WM_SEVERE_RAINSTORM,skilllv,5); + dmg.dmotion = clif_skill_damage(src,bl,tick,dmg.amotion,dmg.dmotion,damage,dmg.div_,WM_SEVERE_RAINSTORM,skill_lv,5); break; case WM_REVERBERATION_MELEE: case WM_REVERBERATION_MAGIC: @@ -2587,11 +2590,11 @@ case RA_CLUSTERBOMB: case RA_FIRINGTRAP: case RA_ICEBOUNDTRAP: - dmg.dmotion = clif_skill_damage(src,bl,tick, dmg.amotion, dmg.dmotion, damage, dmg.div_, skillid,flag&SD_LEVEL?-1:skilllv, 5); + dmg.dmotion = clif_skill_damage(src,bl,tick, dmg.amotion, dmg.dmotion, damage, dmg.div_, skill_id,flag&SD_LEVEL?-1:skill_lv, 5); if (dsrc != src) // avoid damage display redundancy break; case HT_LANDMINE: - dmg.dmotion = clif_skill_damage(dsrc,bl,tick, dmg.amotion, dmg.dmotion, damage, dmg.div_, skillid, -1, type); + dmg.dmotion = clif_skill_damage(dsrc,bl,tick, dmg.amotion, dmg.dmotion, damage, dmg.div_, skill_id, -1, type); break; case AB_DUPLELIGHT_MELEE: case AB_DUPLELIGHT_MAGIC: @@ -2602,9 +2605,9 @@ if (bl->type == BL_SKILL) { TBL_SKILL *su = (TBL_SKILL *)bl; if (su->group && skill_get_inf2(su->group->skill_id)&INF2_TRAP) // show damage on trap targets - clif_skill_damage(src,bl,tick, dmg.amotion, dmg.dmotion, damage, dmg.div_, skillid, flag&SD_LEVEL?-1:skilllv, 5); + clif_skill_damage(src,bl,tick, dmg.amotion, dmg.dmotion, damage, dmg.div_, skill_id, flag&SD_LEVEL?-1:skill_lv, 5); } - dmg.dmotion = clif_skill_damage(dsrc,bl,tick, dmg.amotion, dmg.dmotion, damage, dmg.div_, skillid, flag&SD_LEVEL?-1:skilllv, type); + dmg.dmotion = clif_skill_damage(dsrc,bl,tick, dmg.amotion, dmg.dmotion, damage, dmg.div_, skill_id, flag&SD_LEVEL?-1:skill_lv, type); break; } @@ -2615,11 +2618,11 @@ && (!sc || !sc->data[SC_PRESERVE]) && damage < tsd->battle_status.hp) { //Updated to not be able to copy skills if the blow will kill you. [Skotlex] - int copy_skill = skillid; + int copy_skill = skill_id; /** * Copy Referal: dummy skills should point to their source upon copying **/ - switch (skillid) { + switch (skill_id) { case AB_DUPLELIGHT_MELEE: case AB_DUPLELIGHT_MAGIC: copy_skill = AB_DUPLELIGHT; @@ -2668,7 +2671,7 @@ tsd->status.skill[copy_skill].flag = SKILL_FLAG_PLAGIARIZED; clif_addskill(tsd,copy_skill); } else { - lv = skilllv; + lv = skill_lv; if (tsd->cloneskill_id && tsd->status.skill[tsd->cloneskill_id].flag == SKILL_FLAG_PLAGIARIZED) { tsd->status.skill[tsd->cloneskill_id].id = 0; tsd->status.skill[tsd->cloneskill_id].lv = 0; @@ -2683,15 +2686,15 @@ pc_setglobalreg(tsd, "CLONE_SKILL", copy_skill); pc_setglobalreg(tsd, "CLONE_SKILL_LV", lv); - tsd->status.skill[skillid].id = copy_skill; - tsd->status.skill[skillid].lv = lv; - tsd->status.skill[skillid].flag = SKILL_FLAG_PLAGIARIZED; - clif_addskill(tsd,skillid); + tsd->status.skill[skill_id].id = copy_skill; + tsd->status.skill[skill_id].lv = lv; + tsd->status.skill[skill_id].flag = SKILL_FLAG_PLAGIARIZED; + clif_addskill(tsd,skill_id); } } } - if (dmg.dmg_lv >= ATK_MISS && (type = skill_get_walkdelay(skillid, skilllv)) > 0) { + if (dmg.dmg_lv >= ATK_MISS && (type = skill_get_walkdelay(skill_id, skill_lv)) > 0) { //Skills with can't walk delay also stop normal attacking for that //duration when the attack connects. [Skotlex] struct unit_data *ud = unit_bl2ud(src); @@ -2701,25 +2704,25 @@ if (!dmg.amotion) { //Instant damage - if (!sc || (!sc->data[SC_DEVOTION] && skillid != CR_REFLECTSHIELD)) + if (!sc || (!sc->data[SC_DEVOTION] && skill_id != CR_REFLECTSHIELD)) status_fix_damage(src,bl,damage,dmg.dmotion); //Deal damage before knockback to allow stuff like firewall+storm gust combo. if (!status_isdead(bl)) - skill_additional_effect(src,bl,skillid,skilllv,dmg.flag,dmg.dmg_lv,tick); + skill_additional_effect(src,bl,skill_id,skill_lv,dmg.flag,dmg.dmg_lv,tick); if (damage > 0) //Counter status effects [Skotlex] - skill_counter_additional_effect(src,bl,skillid,skilllv,dmg.flag,tick); + skill_counter_additional_effect(src,bl,skill_id,skill_lv,dmg.flag,tick); } // Hell Inferno burning status only starts if Fire part hits. - if (skillid == WL_HELLINFERNO && dmg.damage > 0) - sc_start4(bl,SC_BURNING,55+5*skilllv,skilllv,1000,src->id,0,skill_get_time(skillid,skilllv)); + if (skill_id == WL_HELLINFERNO && dmg.damage > 0) + sc_start4(bl,SC_BURNING,55+5*skill_lv,skill_lv,1000,src->id,0,skill_get_time(skill_id,skill_lv)); // Apply knock back chance in SC_TRIANGLESHOT skill. - else if (skillid == SC_TRIANGLESHOT && rnd()%100 > (1 + skilllv)) + else if (skill_id == SC_TRIANGLESHOT && rnd()%100 > (1 + skill_lv)) dmg.blewcount = 0; //Only knockback if it's still alive, otherwise a "ghost" is left behind. [Skotlex] //Reflected spells do not bounce back (bl == dsrc since it only happens for direct skills) if (dmg.blewcount > 0 && bl!=dsrc && !status_isdead(bl)) { int direction = -1; // default - switch (skillid) { //direction + switch (skill_id) { //direction case MG_FIREWALL: case PR_SANCTUARY: case SC_TRIANGLESHOT: @@ -2739,16 +2742,16 @@ } //blown-specific handling - switch (skillid) { + switch (skill_id) { case LG_OVERBRAND: if (skill_blown(dsrc,bl,dmg.blewcount,direction,0)) { short dir_x, dir_y; dir_x = dirx[(direction+4)%8]; dir_y = diry[(direction+4)%8]; if (map_getcell(bl->m, bl->x+dir_x, bl->y+dir_y, CELL_CHKNOPASS) != 0) - skill_addtimerskill(src, tick + status_get_amotion(src), bl->id, 0, 0, LG_OVERBRAND_PLUSATK, skilllv, BF_WEAPON, flag); + skill_addtimerskill(src, tick + status_get_amotion(src), bl->id, 0, 0, LG_OVERBRAND_PLUSATK, skill_lv, BF_WEAPON, flag); } else - skill_addtimerskill(src, tick + status_get_amotion(src), bl->id, 0, 0, LG_OVERBRAND_PLUSATK, skilllv, BF_WEAPON, flag); + skill_addtimerskill(src, tick + status_get_amotion(src), bl->id, 0, 0, LG_OVERBRAND_PLUSATK, skill_lv, BF_WEAPON, flag); break; case SR_KNUCKLEARROW: if (skill_blown(dsrc,bl,dmg.blewcount,direction,0) && !(flag&4)) { @@ -2756,7 +2759,7 @@ dir_x = dirx[(direction+4)%8]; dir_y = diry[(direction+4)%8]; if (map_getcell(bl->m, bl->x+dir_x, bl->y+dir_y, CELL_CHKNOPASS) != 0) - skill_addtimerskill(src, tick + 300 * ((flag&2) ? 1 : 2), bl->id, 0, 0, skillid, skilllv, BF_WEAPON, flag|4); + skill_addtimerskill(src, tick + 300 * ((flag&2) ? 1 : 2), bl->id, 0, 0, skill_id, skill_lv, BF_WEAPON, flag|4); } break; case GN_WALLOFTHORN: @@ -2777,9 +2780,9 @@ //Delayed damage must be dealt after the knockback (it needs to know actual position of target) if (dmg.amotion) - battle_delay_damage(tick, dmg.amotion,src,bl,dmg.flag,skillid,skilllv,damage,dmg.dmg_lv,dmg.dmotion); + battle_delay_damage(tick, dmg.amotion,src,bl,dmg.flag,skill_id,skill_lv,damage,dmg.dmg_lv,dmg.dmotion); - if (sc && sc->data[SC_DEVOTION] && skillid != PA_PRESSURE) { + if (sc && sc->data[SC_DEVOTION] && skill_id != PA_PRESSURE) { struct status_change_entry *sce = sc->data[SC_DEVOTION]; struct block_list *d_bl = map_id2bl(sce->val1); @@ -2817,20 +2820,20 @@ } if (damage > 0 && !(tstatus->mode&MD_BOSS)) { - if (skillid == RG_INTIMIDATE) { - int rate = 50 + skilllv * 5; + if (skill_id == RG_INTIMIDATE) { + int rate = 50 + skill_lv * 5; rate = rate + (status_get_lv(src) - status_get_lv(bl)); if (rnd()%100 < rate) - skill_addtimerskill(src,tick + 800,bl->id,0,0,skillid,skilllv,0,flag); - } else if (skillid == SC_FATALMENACE) - skill_addtimerskill(src,tick + 800,bl->id,skill_area_temp[4],skill_area_temp[5],skillid,skilllv,0,flag); + skill_addtimerskill(src,tick + 800,bl->id,0,0,skill_id,skill_lv,0,flag); + } else if (skill_id == SC_FATALMENACE) + skill_addtimerskill(src,tick + 800,bl->id,skill_area_temp[4],skill_area_temp[5],skill_id,skill_lv,0,flag); } - if (skillid == CR_GRANDCROSS || skillid == NPC_GRANDDARKNESS) + if (skill_id == CR_GRANDCROSS || skill_id == NPC_GRANDDARKNESS) dmg.flag |= BF_WEAPON; if (sd && src != bl && damage > 0 && (dmg.flag&BF_WEAPON || - (dmg.flag&BF_MISC && (skillid == RA_CLUSTERBOMB || skillid == RA_FIRINGTRAP || skillid == RA_ICEBOUNDTRAP || skillid == RK_DRAGONBREATH)))) { + (dmg.flag&BF_MISC && (skill_id == RA_CLUSTERBOMB || skill_id == RA_FIRINGTRAP || skill_id == RA_ICEBOUNDTRAP || skill_id == RK_DRAGONBREATH)))) { if (battle_config.left_cardfix_to_right) battle_drain(sd, bl, dmg.damage, dmg.damage, tstatus->race, tstatus->mode&MD_BOSS); else @@ -2857,16 +2860,16 @@ /** * Post-damage effects **/ - switch (skillid) { + switch (skill_id) { case RK_CRUSHSTRIKE: skill_break_equip(src,EQP_WEAPON,2000,BCT_SELF); // 20% chance to destroy the weapon. break; case GC_VENOMPRESSURE: { struct status_change *ssc = status_get_sc(src); - if (ssc && ssc->data[SC_POISONINGWEAPON] && rnd()%100 < 70 + 5*skilllv) { + if (ssc && ssc->data[SC_POISONINGWEAPON] && rnd()%100 < 70 + 5*skill_lv) { sc_start(bl,ssc->data[SC_POISONINGWEAPON]->val2,100,ssc->data[SC_POISONINGWEAPON]->val1,skill_get_time2(GC_POISONINGWEAPON, 1)); status_change_end(src,SC_POISONINGWEAPON,INVALID_TIMER); - clif_skill_nodamage(src,bl,skillid,skilllv,1); + clif_skill_nodamage(src,bl,skill_id,skill_lv,1); } } break; @@ -2878,18 +2881,18 @@ break; } if (sd) - skill_onskillusage(sd, bl, skillid, tick); + skill_onskillusage(sd, bl, skill_id, tick); } if (!(flag&2) && ( - skillid == MG_COLDBOLT || skillid == MG_FIREBOLT || skillid == MG_LIGHTNINGBOLT + skill_id == MG_COLDBOLT || skill_id == MG_FIREBOLT || skill_id == MG_LIGHTNINGBOLT ) && (sc = status_get_sc(src)) && sc->data[SC_DOUBLECAST] && rnd() % 100 < sc->data[SC_DOUBLECAST]->val2) { // skill_addtimerskill(src, tick + dmg.div_*dmg.amotion, bl->id, 0, 0, skillid, skilllv, BF_MAGIC, flag|2); - skill_addtimerskill(src, tick + dmg.amotion, bl->id, 0, 0, skillid, skilllv, BF_MAGIC, flag|2); + skill_addtimerskill(src, tick + dmg.amotion, bl->id, 0, 0, skill_id, skill_lv, BF_MAGIC, flag|2); } map_freeblock_unlock(); @@ -2900,13 +2903,14 @@ /*========================================== * sub fonction for recursive skill call. * Checking bl battle flag and display dammage - * then call func with source,target,skillid,skilllv,tick,flag + * then call func with source,target,skill_id,skill_lv,tick,flag *------------------------------------------*/ typedef int (*SkillFunc)(struct block_list *, struct block_list *, int, int, unsigned int, int); int skill_area_sub(struct block_list *bl, va_list ap) { struct block_list *src; - int skill_id,skill_lv,flag; + uint16 skill_id,skill_lv; + int flag; unsigned int tick; SkillFunc func; @@ -2935,7 +2939,7 @@ static int skill_check_unit_range_sub(struct block_list *bl, va_list ap) { struct skill_unit *unit; - int skillid,g_skillid; + uint16 skill_id,g_skillid; unit = (struct skill_unit *)bl; @@ -2945,10 +2949,10 @@ if (!unit->alive) return 0; - skillid = va_arg(ap,int); + skill_id = va_arg(ap,int); g_skillid = unit->group->skill_id; - switch (skillid) { + switch (skill_id) { case MH_STEINWAND: case MG_SAFETYWALL: case AL_PNEUMA: @@ -2983,11 +2987,11 @@ case SC_DIMENSIONDOOR: case SC_BLOODYLUST: //Non stackable on themselves and traps (including venom dust which does not has the trap inf2 set) - if (skillid != g_skillid && !(skill_get_inf2(g_skillid)&INF2_TRAP) && g_skillid != AS_VENOMDUST && g_skillid != MH_POISON_MIST) + if (skill_id != g_skillid && !(skill_get_inf2(g_skillid)&INF2_TRAP) && g_skillid != AS_VENOMDUST && g_skillid != MH_POISON_MIST) return 0; break; default: //Avoid stacking with same kind of trap. [Skotlex] - if (g_skillid != skillid) + if (g_skillid != skill_id) return 0; break; } @@ -2995,55 +2999,55 @@ return 1; } -static int skill_check_unit_range(struct block_list *bl, int x, int y, int skillid, int skilllv) +static int skill_check_unit_range(struct block_list *bl, short x, short y, uint16 skill_id, uint16 skill_lv) { //Non players do not check for the skill's splash-trigger area. - int range = bl->type==BL_PC?skill_get_unit_range(skillid, skilllv):0; - int layout_type = skill_get_unit_layout_type(skillid,skilllv); + int range = bl->type==BL_PC?skill_get_unit_range(skill_id, skill_lv):0; + int layout_type = skill_get_unit_layout_type(skill_id,skill_lv); if (layout_type==-1 || layout_type>MAX_SQUARE_LAYOUT) { - ShowError("skill_check_unit_range: unsupported layout type %d for skill %d\n",layout_type,skillid); + ShowError("skill_check_unit_range: unsupported layout type %d for skill %d\n",layout_type,skill_id); return 0; } range += layout_type; - return map_foreachinarea(skill_check_unit_range_sub,bl->m,x-range,y-range,x+range,y+range,BL_SKILL,skillid); + return map_foreachinarea(skill_check_unit_range_sub,bl->m,x-range,y-range,x+range,y+range,BL_SKILL,skill_id); } static int skill_check_unit_range2_sub(struct block_list *bl, va_list ap) { - int skillid; + uint16 skill_id; if (bl->prev == NULL) return 0; - skillid = va_arg(ap,int); + skill_id = va_arg(ap,int); - if (status_isdead(bl) && skillid != AL_WARP) + if (status_isdead(bl) && skill_id != AL_WARP) return 0; - if (skillid == HP_BASILICA && bl->type == BL_PC) + if (skill_id == HP_BASILICA && bl->type == BL_PC) return 0; - if (skillid == AM_DEMONSTRATION && bl->type == BL_MOB && ((TBL_MOB *)bl)->class_ == MOBID_EMPERIUM) + if (skill_id == AM_DEMONSTRATION && bl->type == BL_MOB && ((TBL_MOB *)bl)->class_ == MOBID_EMPERIUM) return 0; //Allow casting Bomb/Demonstration Right under emperium [Skotlex] return 1; } -static int skill_check_unit_range2(struct block_list *bl, int x, int y, int skillid, int skilllv) +static int skill_check_unit_range2(struct block_list *bl, short x, short y, uint16 skill_id, uint16 skill_lv) { int range, type; - switch (skillid) { // to be expanded later + switch (skill_id) { // to be expanded later case WZ_ICEWALL: range = 2; break; default: { - int layout_type = skill_get_unit_layout_type(skillid,skilllv); + int layout_type = skill_get_unit_layout_type(skill_id,skill_lv); if (layout_type==-1 || layout_type>MAX_SQUARE_LAYOUT) { - ShowError("skill_check_unit_range2: unsupported layout type %d for skill %d\n",layout_type,skillid); + ShowError("skill_check_unit_range2: unsupported layout type %d for skill %d\n",layout_type,skill_id); return 0; } - range = skill_get_unit_range(skillid,skilllv) + layout_type; + range = skill_get_unit_range(skill_id,skill_lv) + layout_type; } break; } @@ -3057,7 +3061,7 @@ return map_foreachinarea(skill_check_unit_range2_sub, bl->m, x - range, y - range, x + range, y + range, - type, skillid); + type, skill_id); } int skill_guildaura_sub(struct map_session_data *sd, int id, int strvit, int agidex) @@ -3195,7 +3199,7 @@ /*========================================== * *------------------------------------------*/ -int skill_area_sub_count(struct block_list *src, struct block_list *target, int skillid, int skilllv, unsigned int tick, int flag) +int skill_area_sub_count(struct block_list *src, struct block_list *target, uint16 skill_id, uint16 skill_lv, unsigned int tick, int flag) { return 1; } @@ -3400,7 +3404,7 @@ /*========================================== * *------------------------------------------*/ -int skill_addtimerskill(struct block_list *src, unsigned int tick, int target, int x,int y, int skill_id, int skill_lv, int type, int flag) +int skill_addtimerskill(struct block_list *src, unsigned int tick, int target, short x, short y, uint16 skill_id, uint16 skill_lv, int type, int flag) { int i; struct unit_data *ud; @@ -3478,13 +3482,13 @@ * * *------------------------------------------*/ -int skill_castend_damage_id(struct block_list *src, struct block_list *bl, int skillid, int skilllv, unsigned int tick, int flag) +int skill_castend_damage_id(struct block_list *src, struct block_list *bl, uint16 skill_id, uint16 skill_lv, unsigned int tick, int flag) { struct map_session_data *sd = NULL; struct status_data *tstatus; struct status_change *sc; - if (skillid > 0 && skilllv <= 0) return 0; + if (skill_id > 0 && skill_lv <= 0) return 0; nullpo_retr(1, src); nullpo_retr(1, bl); @@ -3500,12 +3504,12 @@ if (status_isdead(bl)) return 1; - if (skillid && skill_get_type(skillid) == BF_MAGIC && status_isimmune(bl) == 100) { + if (skill_id && skill_get_type(skill_id) == BF_MAGIC && status_isimmune(bl) == 100) { //GTB makes all targetted magic display miss with a single bolt. - sc_type sct = status_skill2sc(skillid); + sc_type sct = status_skill2sc(skill_id); if (sct != SC_NONE) status_change_end(bl, sct, INVALID_TIMER); - clif_skill_damage(src, bl, tick, status_get_amotion(src), status_get_dmotion(bl), 0, 1, skillid, skilllv, skill_get_hit(skillid)); + clif_skill_damage(src, bl, tick, status_get_amotion(src), status_get_dmotion(bl), 0, 1, skill_id, skill_lv, skill_get_hit(skill_id)); return 1; } @@ -3517,7 +3521,7 @@ map_freeblock_lock(); - switch (skillid) { + switch (skill_id) { case MER_CRASH: case SM_BASH: case MS_BASH: @@ -3629,7 +3633,7 @@ case KO_JYUMONJIKIRI: case KO_SETSUDAN: case KO_KAIHOU: - skill_attack(BF_WEAPON,src,src,bl,skillid,skilllv,tick,flag); + skill_attack(BF_WEAPON,src,src,bl,skill_id,skill_lv,tick,flag); break; /** @@ -3642,7 +3646,7 @@ case NC_ARMSCANNON: if (sd) pc_overheat(sd,1); case RK_WINDCUTTER: - skill_attack(BF_WEAPON,src,src,bl,skillid,skilllv,tick,flag|SD_ANIMATION); + skill_attack(BF_WEAPON,src,src,bl,skill_id,skill_lv,tick,flag|SD_ANIMATION); break; case LK_JOINTBEAT: // decide the ailment first (affects attack damage and effect) @@ -3669,26 +3673,26 @@ //TODO: is there really no cleaner way to do this? sc = status_get_sc(bl); if (sc) sc->jb_flag = flag; - skill_attack(BF_WEAPON,src,src,bl,skillid,skilllv,tick,flag); + skill_attack(BF_WEAPON,src,src,bl,skill_id,skill_lv,tick,flag); break; case MO_COMBOFINISH: if (!(flag&1) && sc && sc->data[SC_SPIRIT] && sc->data[SC_SPIRIT]->val2 == SL_MONK) { //Becomes a splash attack when Soul Linked. map_foreachinrange(skill_area_sub, bl, - skill_get_splash(skillid, skilllv),splash_target(src), - src,skillid,skilllv,tick, flag|BCT_ENEMY|1, + skill_get_splash(skill_id, skill_lv),splash_target(src), + src,skill_id,skill_lv,tick, flag|BCT_ENEMY|1, skill_castend_damage_id); } else - skill_attack(BF_WEAPON,src,src,bl,skillid,skilllv,tick,flag); + skill_attack(BF_WEAPON,src,src,bl,skill_id,skill_lv,tick,flag); break; case TK_STORMKICK: // Taekwon kicks [Dralnu] - clif_skill_nodamage(src,bl,skillid,skilllv,1); + clif_skill_nodamage(src,bl,skill_id,skill_lv,1); skill_area_temp[1] = 0; map_foreachinrange(skill_attack_area, src, - skill_get_splash(skillid, skilllv), splash_target(src), - BF_WEAPON, src, src, skillid, skilllv, tick, flag, BCT_ENEMY); + skill_get_splash(skill_id, skill_lv), splash_target(src), + BF_WEAPON, src, src, skill_id, skill_lv, tick, flag, BCT_ENEMY); break; case KN_CHARGEATK: { @@ -3702,7 +3706,7 @@ // cause damage and knockback if the path to target was a straight one if (path) { - skill_attack(BF_WEAPON, src, src, bl, skillid, skilllv, tick, dist); + skill_attack(BF_WEAPON, src, src, bl, skill_id, skill_lv, tick, dist); skill_blown(src, bl, dist, dir, 0); //HACK: since knockback officially defaults to the left, the client also turns to the left... therefore, // make the caster look in the direction of the target @@ -3722,8 +3726,8 @@ //line of sight between caster and target. skill_area_temp[1] = bl->id; map_foreachinpath(skill_attack_area,src->m,src->x,src->y,bl->x,bl->y, - skill_get_splash(skillid, skilllv),skill_get_maxcount(skillid,skilllv), splash_target(src), - skill_get_type(skillid),src,src,skillid,skilllv,tick,flag,BCT_ENEMY); + skill_get_splash(skill_id, skill_lv),skill_get_maxcount(skill_id,skill_lv), splash_target(src), + skill_get_type(skill_id),src,src,skill_id,skill_lv,tick,flag,BCT_ENEMY); break; case NPC_ACIDBREATH: @@ -3733,12 +3737,12 @@ case NPC_THUNDERBREATH: skill_area_temp[1] = bl->id; map_foreachinpath(skill_attack_area,src->m,src->x,src->y,bl->x,bl->y, - skill_get_splash(skillid, skilllv),skill_get_maxcount(skillid,skilllv), splash_target(src), - skill_get_type(skillid),src,src,skillid,skilllv,tick,flag,BCT_ENEMY); + skill_get_splash(skill_id, skill_lv),skill_get_maxcount(skill_id,skill_lv), splash_target(src), + skill_get_type(skill_id),src,src,skill_id,skill_lv,tick,flag,BCT_ENEMY); break; case MO_INVESTIGATE: - skill_attack(BF_WEAPON,src,src,bl,skillid,skilllv,tick,flag); + skill_attack(BF_WEAPON,src,src,bl,skill_id,skill_lv,tick,flag); status_change_end(src, SC_BLADESTOP, INVALID_TIMER); break; @@ -3746,26 +3750,26 @@ int dir = map_calc_dir(src, bl->x, bl->y), t_dir = unit_getdir(bl); if ((!check_distance_bl(src, bl, 0) && !map_check_dir(dir, t_dir)) || bl->type == BL_SKILL) { status_change_end(src, SC_HIDING, INVALID_TIMER); - skill_attack(BF_WEAPON, src, src, bl, skillid, skilllv, tick, flag); + skill_attack(BF_WEAPON, src, src, bl, skill_id, skill_lv, tick, flag); dir = dir < 4 ? dir+4 : dir-4; // change direction [Celest] unit_setdir(bl,dir); } else if (sd) - clif_skill_fail(sd,skillid,USESKILL_FAIL_LEVEL,0); + clif_skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0); } break; case MO_FINGEROFFENSIVE: - skill_attack(BF_WEAPON,src,src,bl,skillid,skilllv,tick,flag); + skill_attack(BF_WEAPON,src,src,bl,skill_id,skill_lv,tick,flag); if (battle_config.finger_offensive_type && sd) { int i; for (i = 1; i < sd->spiritball_old; i++) - skill_addtimerskill(src, tick + i * 200, bl->id, 0, 0, skillid, skilllv, BF_WEAPON, flag); + skill_addtimerskill(src, tick + i * 200, bl->id, 0, 0, skill_id, skill_lv, BF_WEAPON, flag); } status_change_end(src, SC_BLADESTOP, INVALID_TIMER); break; case MO_CHAINCOMBO: - skill_attack(BF_WEAPON,src,src,bl,skillid,skilllv,tick,flag); + skill_attack(BF_WEAPON,src,src,bl,skill_id,skill_lv,tick,flag); status_change_end(src, SC_BLADESTOP, INVALID_TIMER); break; @@ -3774,11 +3778,11 @@ status_change_end(src, SC_HIDING, INVALID_TIMER); // fall through case MO_EXTREMITYFIST: - if (skillid == MO_EXTREMITYFIST) { + if (skill_id == MO_EXTREMITYFIST) { status_change_end(src, SC_EXPLOSIONSPIRITS, INVALID_TIMER); status_change_end(src, SC_BLADESTOP, INVALID_TIMER); #ifdef RENEWAL - sc_start(src,SC_EXTREMITYFIST2,100,skilllv,skill_get_time(skillid,skilllv)); + sc_start(src,SC_EXTREMITYFIST2,100,skill_lv,skill_get_time(skill_id,skill_lv)); #endif } //Client expects you to move to target regardless of distance @@ -3786,7 +3790,7 @@ struct unit_data *ud = unit_bl2ud(src); short dx,dy; int i,speed; - i = skillid == MO_EXTREMITYFIST?1:2; //Move 2 cells for Issen, 1 for Asura + i = skill_id == MO_EXTREMITYFIST?1:2; //Move 2 cells for Issen, 1 for Asura dx = bl->x - src->x; dy = bl->y - src->y; if (dx < 0) dx-=i; @@ -3802,7 +3806,7 @@ dy = src->y + dy; } - skill_attack(BF_WEAPON,src,src,bl,skillid,skilllv,tick,flag); + skill_attack(BF_WEAPON,src,src,bl,skill_id,skill_lv,tick,flag); if (unit_walktoxy(src, dx, dy, 2) && ud) { //Increase can't walk delay to not alter your walk path @@ -3878,26 +3882,26 @@ int sflag = skill_area_temp[0] & 0xFFF, heal; if (flag&SD_LEVEL) sflag |= SD_LEVEL; // -1 will be used in packets instead of the skill level - if (skill_area_temp[1] != bl->id && !(skill_get_inf2(skillid)&INF2_NPC_SKILL)) + if (skill_area_temp[1] != bl->id && !(skill_get_inf2(skill_id)&INF2_NPC_SKILL)) sflag |= SD_ANIMATION; // original target gets no animation (as well as all NPC skills) - heal = skill_attack(skill_get_type(skillid), src, src, bl, skillid, skilllv, tick, sflag); - if (skillid == NPC_VAMPIRE_GIFT && heal > 0) { + heal = skill_attack(skill_get_type(skill_id), src, src, bl, skill_id, skill_lv, tick, sflag); + if (skill_id == NPC_VAMPIRE_GIFT && heal > 0) { clif_skill_nodamage(NULL, src, AL_HEAL, heal, 1); status_heal(src,heal,0,0); } } else { - switch (skillid) { + switch (skill_id) { case NJ_BAKUENRYU: case LG_EARTHDRIVE: case GN_CARTCANNON: - clif_skill_nodamage(src,bl,skillid,skilllv,1); + clif_skill_nodamage(src,bl,skill_id,skill_lv,1); break; case LG_MOONSLASHER: - clif_skill_damage(src,bl,tick, status_get_amotion(src), 0, -30000, 1, skillid, skilllv, 6); + clif_skill_damage(src,bl,tick, status_get_amotion(src), 0, -30000, 1, skill_id, skill_lv, 6); break; case NPC_EARTHQUAKE://FIXME: Isn't EarthQuake a ground skill after all? - skill_addtimerskill(src,tick+250,src->id,0,0,skillid,skilllv,2,flag|BCT_ENEMY|SD_SPLASH|1); + skill_addtimerskill(src,tick+250,src->id,0,0,skill_id,skill_lv,2,flag|BCT_ENEMY|SD_SPLASH|1); default: break; } @@ -3905,20 +3909,20 @@ skill_area_temp[0] = 0; skill_area_temp[1] = bl->id; skill_area_temp[2] = 0; - if (skillid == WL_CRIMSONROCK) { + if (skill_id == WL_CRIMSONROCK) { skill_area_temp[4] = bl->x; skill_area_temp[5] = bl->y; } - if (skillid == WM_REVERBERATION_MELEE || skillid == WM_REVERBERATION_MAGIC) + if (skill_id == WM_REVERBERATION_MELEE || skill_id == WM_REVERBERATION_MAGIC) skill_area_temp[1] = 0; // if skill damage should be split among targets, count them //SD_LEVEL -> Forced splash damage for Auto Blitz-Beat -> count targets //special case: Venom Splasher uses a different range for searching than for splashing - if (flag&SD_LEVEL || skill_get_nk(skillid)&NK_SPLASHSPLIT) - skill_area_temp[0] = map_foreachinrange(skill_area_sub, bl, (skillid == AS_SPLASHER)?1:skill_get_splash(skillid, skilllv), BL_CHAR, src, skillid, skilllv, tick, BCT_ENEMY, skill_area_sub_count); + if (flag&SD_LEVEL || skill_get_nk(skill_id)&NK_SPLASHSPLIT) + skill_area_temp[0] = map_foreachinrange(skill_area_sub, bl, (skill_id == AS_SPLASHER)?1:skill_get_splash(skill_id, skill_lv), BL_CHAR, src, skill_id, skill_lv, tick, BCT_ENEMY, skill_area_sub_count); // recursive invocation of skill_castend_damage_id() with flag|1 - map_foreachinrange(skill_area_sub, bl, skill_get_splash(skillid, skilllv), (skillid == WM_REVERBERATION_MELEE || skillid == WM_REVERBERATION_MAGIC)?BL_CHAR:splash_target(src), src, skillid, skilllv, tick, flag|BCT_ENEMY|SD_SPLASH|1, skill_castend_damage_id); + map_foreachinrange(skill_area_sub, bl, skill_get_splash(skill_id, skill_lv), (skill_id == WM_REVERBERATION_MELEE || skill_id == WM_REVERBERATION_MAGIC)?BL_CHAR:splash_target(src), src, skill_id, skill_lv, tick, flag|BCT_ENEMY|SD_SPLASH|1, skill_castend_damage_id); } break; @@ -3926,9 +3930,9 @@ case ML_BRANDISH: //Coded apart for it needs the flag passed to the damage calculation. if (skill_area_temp[1] != bl->id) - skill_attack(skill_get_type(skillid), src, src, bl, skillid, skilllv, tick, flag|SD_ANIMATION); + skill_attack(skill_get_type(skill_id), src, src, bl, skill_id, skill_lv, tick, flag|SD_ANIMATION); else - skill_attack(skill_get_type(skillid), src, src, bl, skillid, skilllv, tick, flag); + skill_attack(skill_get_type(skill_id), src, src, bl, skill_id, skill_lv, tick, flag); break; case KN_BOWLINGBASH: @@ -3937,26 +3941,26 @@ if (bl->id==skill_area_temp[1]) break; //two hits for 500% - skill_attack(BF_WEAPON,src,src,bl,skillid,skilllv,tick,SD_ANIMATION); - skill_attack(BF_WEAPON,src,src,bl,skillid,skilllv,tick,SD_ANIMATION); + skill_attack(BF_WEAPON,src,src,bl,skill_id,skill_lv,tick,SD_ANIMATION); + skill_attack(BF_WEAPON,src,src,bl,skill_id,skill_lv,tick,SD_ANIMATION); } else { int i,c; - c = skill_get_blewcount(skillid,skilllv); + c = skill_get_blewcount(skill_id,skill_lv); // keep moving target in the direction that src is looking, square by square for (i=0; i 1) break; // collision } clif_blown(bl); //Update target pos. if (i!=c) { //Splash skill_area_temp[1] = bl->id; - map_foreachinrange(skill_area_sub, bl, skill_get_splash(skillid, skilllv), splash_target(src), src, skillid, skilllv, tick, flag|BCT_ENEMY|1, skill_castend_damage_id); + map_foreachinrange(skill_area_sub, bl, skill_get_splash(skill_id, skill_lv), splash_target(src), src, skill_id, skill_lv, tick, flag|BCT_ENEMY|1, skill_castend_damage_id); } //Weirdo dual-hit property, two attacks for 500% - skill_attack(BF_WEAPON,src,src,bl,skillid,skilllv,tick,0); - skill_attack(BF_WEAPON,src,src,bl,skillid,skilllv,tick,0); + skill_attack(BF_WEAPON,src,src,bl,skill_id,skill_lv,tick,0); + skill_attack(BF_WEAPON,src,src,bl,skill_id,skill_lv,tick,0); } break; @@ -3964,19 +3968,19 @@ if (flag&1) { if (bl->id==skill_area_temp[1]) break; - if (skill_attack(BF_WEAPON,src,src,bl,skillid,skilllv,tick,SD_ANIMATION)) + if (skill_attack(BF_WEAPON,src,src,bl,skill_id,skill_lv,tick,SD_ANIMATION)) skill_blown(src,bl,skill_area_temp[2],-1,0); } else { int x=bl->x,y=bl->y,i,dir; dir = map_calc_dir(bl,src->x,src->y); skill_area_temp[1] = bl->id; - skill_area_temp[2] = skill_get_blewcount(skillid,skilllv); + skill_area_temp[2] = skill_get_blewcount(skill_id,skill_lv); // all the enemies between the caster and the target are hit, as well as the target - if (skill_attack(BF_WEAPON,src,src,bl,skillid,skilllv,tick,0)) + if (skill_attack(BF_WEAPON,src,src,bl,skill_id,skill_lv,tick,0)) skill_blown(src,bl,skill_area_temp[2],-1,0); for (i=0; i<4; i++) { map_foreachincell(skill_area_sub,bl->m,x,y,BL_CHAR, - src,skillid,skilllv,tick,flag|BCT_ENEMY|1,skill_castend_damage_id); + src,skill_id,skill_lv,tick,flag|BCT_ENEMY|1,skill_castend_damage_id); x += dirx[dir]; y += diry[dir]; } @@ -3986,24 +3990,24 @@ case TK_TURNKICK: case MO_BALKYOUNG: { //Active part of the attack. Skill-attack [Skotlex] skill_area_temp[1] = bl->id; //NOTE: This is used in skill_castend_nodamage_id to avoid affecting the target. - if (skill_attack(BF_WEAPON,src,src,bl,skillid,skilllv,tick,flag)) + if (skill_attack(BF_WEAPON,src,src,bl,skill_id,skill_lv,tick,flag)) map_foreachinrange(skill_area_sub,bl, - skill_get_splash(skillid, skilllv),BL_CHAR, - src,skillid,skilllv,tick,flag|BCT_ENEMY|1, + skill_get_splash(skill_id, skill_lv),BL_CHAR, + src,skill_id,skill_lv,tick,flag|BCT_ENEMY|1, skill_castend_nodamage_id); } break; case CH_PALMSTRIKE: // Palm Strike takes effect 1sec after casting. [Skotlex] // clif_skill_nodamage(src,bl,skillid,skilllv,0); //Can't make this one display the correct attack animation delay :/ clif_damage(src,bl,tick,status_get_amotion(src),0,-1,1,4,0); //Display an absorbed damage attack. - skill_addtimerskill(src, tick + 1000, bl->id, 0, 0, skillid, skilllv, BF_WEAPON, flag); + skill_addtimerskill(src, tick + 1000, bl->id, 0, 0, skill_id, skill_lv, BF_WEAPON, flag); break; case PR_TURNUNDEAD: case ALL_RESURRECTION: if (!battle_check_undead(tstatus->race, tstatus->def_ele)) break; - skill_attack(BF_MAGIC,src,src,bl,skillid,skilllv,tick,flag); + skill_attack(BF_MAGIC,src,src,bl,skill_id,skill_lv,tick,flag); break; case MG_SOULSTRIKE: @@ -4029,12 +4033,12 @@ case AB_DUPLELIGHT_MAGIC: case WM_METALICSOUND: case MH_ERASER_CUTTER: - skill_attack(BF_MAGIC,src,src,bl,skillid,skilllv,tick,flag); + skill_attack(BF_MAGIC,src,src,bl,skill_id,skill_lv,tick,flag); break; case NPC_MAGICALATTACK: - skill_attack(BF_MAGIC,src,src,bl,skillid,skilllv,tick,flag); - sc_start(src,status_skill2sc(skillid),100,skilllv,skill_get_time(skillid,skilllv)); + skill_attack(BF_MAGIC,src,src,bl,skill_id,skill_lv,tick,flag); + sc_start(src,status_skill2sc(skill_id),100,skill_lv,skill_get_time(skill_id,skill_lv)); break; case HVAN_CAPRICE: { //[blackhole89] @@ -4054,18 +4058,18 @@ sid=WZ_EARTHSPIKE; break; } - skill_attack(BF_MAGIC,src,src,bl,sid,skilllv,tick,flag|SD_LEVEL); + skill_attack(BF_MAGIC,src,src,bl,sid,skill_lv,tick,flag|SD_LEVEL); } break; case WZ_WATERBALL: { - int range = skilllv / 2; - int maxlv = skill_get_max(skillid); // learnable level + int range = skill_lv / 2; + int maxlv = skill_get_max(skill_id); // learnable level int count = 0; int x, y; struct skill_unit *unit; - if (skilllv > maxlv) { - if (src->type == BL_MOB && skilllv == 10) + if (skill_lv > maxlv) { + if (src->type == BL_MOB && skill_lv == 10) range = 4; else range = maxlv / 2; @@ -4084,15 +4088,15 @@ } if (count > 1) // queue the remaining count - 1 timerskill Waterballs - skill_addtimerskill(src,tick+150,bl->id,0,0,skillid,skilllv,count-1,flag); + skill_addtimerskill(src,tick+150,bl->id,0,0,skill_id,skill_lv,count-1,flag); } - skill_attack(BF_MAGIC,src,src,bl,skillid,skilllv,tick,flag); + skill_attack(BF_MAGIC,src,src,bl,skill_id,skill_lv,tick,flag); break; case PR_BENEDICTIO: //Should attack undead and demons. [Skotlex] if (battle_check_undead(tstatus->race, tstatus->def_ele) || tstatus->race == RC_DEMON) - skill_attack(BF_MAGIC, src, src, bl, skillid, skilllv, tick, flag); + skill_attack(BF_MAGIC, src, src, bl, skill_id, skill_lv, tick, flag); break; case SL_SMA: @@ -4100,11 +4104,11 @@ case SL_STIN: case SL_STUN: if (sd && !battle_config.allow_es_magic_pc && bl->type != BL_MOB) { - status_change_start(src,SC_STUN,10000,skilllv,0,0,0,500,10); - clif_skill_fail(sd,skillid,USESKILL_FAIL_LEVEL,0); + status_change_start(src,SC_STUN,10000,skill_lv,0,0,0,500,10); + clif_skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0); break; } - skill_attack(BF_MAGIC,src,src,bl,skillid,skilllv,tick,flag); + skill_attack(BF_MAGIC,src,src,bl,skill_id,skill_lv,tick,flag); break; case NPC_DARKBREATH: @@ -4118,7 +4122,7 @@ case NJ_ZENYNAGE: case GN_THORNS_TRAP: case GN_HELLS_PLANT_ATK: - skill_attack(BF_MISC,src,src,bl,skillid,skilllv,tick,flag); + skill_attack(BF_MISC,src,src,bl,skill_id,skill_lv,tick,flag); break; /** * Rune Knight @@ -4126,9 +4130,9 @@ case RK_DRAGONBREATH: { struct status_change *tsc = NULL; if ((tsc = status_get_sc(bl)) && (tsc->data[SC_HIDING])) { - clif_skill_nodamage(src,src,skillid,skilllv,1); + clif_skill_nodamage(src,src,skill_id,skill_lv,1); } else - skill_attack(BF_MISC,src,src,bl,skillid,skilllv,tick,flag); + skill_attack(BF_MISC,src,src,bl,skill_id,skill_lv,tick,flag); } break; @@ -4139,28 +4143,28 @@ } case HVAN_EXPLOSION: if (src != bl) - skill_attack(BF_MISC,src,src,bl,skillid,skilllv,tick,flag); + skill_attack(BF_MISC,src,src,bl,skill_id,skill_lv,tick,flag); break; // Celest case PF_SOULBURN: - if (rnd()%100 < (skilllv < 5 ? 30 + skilllv * 10 : 70)) { - clif_skill_nodamage(src,bl,skillid,skilllv,1); - if (skilllv == 5) - skill_attack(BF_MAGIC,src,src,bl,skillid,skilllv,tick,flag); + if (rnd()%100 < (skill_lv < 5 ? 30 + skill_lv * 10 : 70)) { + clif_skill_nodamage(src,bl,skill_id,skill_lv,1); + if (skill_lv == 5) + skill_attack(BF_MAGIC,src,src,bl,skill_id,skill_lv,tick,flag); status_percent_damage(src, bl, 0, 100, false); } else { - clif_skill_nodamage(src,src,skillid,skilllv,1); - if (skilllv == 5) - skill_attack(BF_MAGIC,src,src,src,skillid,skilllv,tick,flag); + clif_skill_nodamage(src,src,skill_id,skill_lv,1); + if (skill_lv == 5) + skill_attack(BF_MAGIC,src,src,src,skill_id,skill_lv,tick,flag); status_percent_damage(src, src, 0, 100, false); } break; case NPC_BLOODDRAIN: case NPC_ENERGYDRAIN: { - int heal = skill_attack((skillid == NPC_BLOODDRAIN) ? BF_WEAPON : BF_MAGIC, - src, src, bl, skillid, skilllv, tick, flag); + int heal = skill_attack((skill_id == NPC_BLOODDRAIN) ? BF_WEAPON : BF_MAGIC, + src, src, bl, skill_id, skill_lv, tick, flag); if (heal > 0) { clif_skill_nodamage(NULL, src, AL_HEAL, heal, 1); status_heal(src, heal, 0, 0); @@ -4169,12 +4173,12 @@ break; case GS_BULLSEYE: - skill_attack(BF_WEAPON,src,src,bl,skillid,skilllv,tick,flag); + skill_attack(BF_WEAPON,src,src,bl,skill_id,skill_lv,tick,flag); break; case NJ_KASUMIKIRI: - if (skill_attack(BF_WEAPON,src,src,bl,skillid,skilllv,tick,flag) > 0) - sc_start(src,SC_HIDING,100,skilllv,skill_get_time(skillid,skilllv)); + if (skill_attack(BF_WEAPON,src,src,bl,skill_id,skill_lv,tick,flag) > 0) + sc_start(src,SC_HIDING,100,skill_lv,skill_get_time(skill_id,skill_lv)); break; case NJ_KIRIKAGE: if (!map_flag_gvg(src->m) && !map[src->m].flag.battleground) { @@ -4185,26 +4189,26 @@ clif_slide(src,src->x,src->y); } status_change_end(src, SC_HIDING, INVALID_TIMER); - skill_attack(BF_WEAPON,src,src,bl,skillid,skilllv,tick,flag); + skill_attack(BF_WEAPON,src,src,bl,skill_id,skill_lv,tick,flag); break; case RK_PHANTOMTHRUST: unit_setdir(src,map_calc_dir(src, bl->x, bl->y)); - clif_skill_nodamage(src,bl,skillid,skilllv,1); + clif_skill_nodamage(src,bl,skill_id,skill_lv,1); skill_blown(src,bl,distance_bl(src,bl)-1,unit_getdir(src),0); if (battle_check_target(src,bl,BCT_ENEMY)) - skill_attack(BF_WEAPON,src,src,bl,skillid,skilllv,tick,flag); + skill_attack(BF_WEAPON,src,src,bl,skill_id,skill_lv,tick,flag); break; case RK_STORMBLAST: case RK_CRUSHSTRIKE: if (sd) { - if (pc_checkskill(sd,RK_RUNEMASTERY) >= (skillid == RK_CRUSHSTRIKE ? 7 : 3)) - skill_attack(BF_WEAPON,src,src,bl,skillid,skilllv,tick,flag); + if (pc_checkskill(sd,RK_RUNEMASTERY) >= (skill_id == RK_CRUSHSTRIKE ? 7 : 3)) + skill_attack(BF_WEAPON,src,src,bl,skill_id,skill_lv,tick,flag); else - clif_skill_fail(sd,skillid,USESKILL_FAIL_LEVEL,0); + clif_skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0); } else //non-sd support - skill_attack(BF_WEAPON,src,src,bl,skillid,skilllv,tick,flag); + skill_attack(BF_WEAPON,src,src,bl,skill_id,skill_lv,tick,flag); break; case GC_DARKILLUSION: { short x, y; @@ -4220,9 +4224,9 @@ if (unit_movepos(src, bl->x+x, bl->y+y, 1, 1)) { clif_slide(src,bl->x+x,bl->y+y); clif_fixpos(src); // the official server send these two packts. - skill_attack(BF_WEAPON,src,src,bl,skillid,skilllv,tick,flag); - if (rnd()%100 < 4 * skilllv) - skill_castend_damage_id(src,bl,GC_CROSSIMPACT,skilllv,tick,flag); + skill_attack(BF_WEAPON,src,src,bl,skill_id,skill_lv,tick,flag); + if (rnd()%100 < 4 * skill_lv) + skill_castend_damage_id(src,bl,GC_CROSSIMPACT,skill_lv,tick,flag); } } @@ -4230,16 +4234,16 @@ case GC_WEAPONCRUSH: if (sc && sc->data[SC_COMBO] && sc->data[SC_COMBO]->val1 == GC_WEAPONBLOCKING) - skill_attack(BF_WEAPON,src,src,bl,skillid,skilllv,tick,flag); + skill_attack(BF_WEAPON,src,src,bl,skill_id,skill_lv,tick,flag); else if (sd) - clif_skill_fail(sd,skillid,USESKILL_FAIL_GC_WEAPONBLOCKING,0); + clif_skill_fail(sd,skill_id,USESKILL_FAIL_GC_WEAPONBLOCKING,0); break; case GC_CROSSRIPPERSLASHER: if (sd && !(sc && sc->data[SC_ROLLINGCUTTER])) - clif_skill_fail(sd,skillid,USESKILL_FAIL_CONDITION,0); + clif_skill_fail(sd,skill_id,USESKILL_FAIL_CONDITION,0); else { - skill_attack(BF_WEAPON,src,src,bl,skillid,skilllv,tick,flag); + skill_attack(BF_WEAPON,src,src,bl,skill_id,skill_lv,tick,flag); status_change_end(src,SC_ROLLINGCUTTER,INVALID_TIMER); } break; @@ -4249,18 +4253,18 @@ // Only Hits Invisible Targets struct status_change *tsc = status_get_sc(bl); if (tsc && (tsc->option&(OPTION_HIDE|OPTION_CLOAK|OPTION_CHASEWALK) || tsc->data[SC__INVISIBILITY])) - skill_attack(BF_WEAPON,src,src,bl,skillid,skilllv,tick,flag); + skill_attack(BF_WEAPON,src,src,bl,skill_id,skill_lv,tick,flag); } break; case WL_CHAINLIGHTNING: - clif_skill_nodamage(src,bl,skillid,skilllv,1); - skill_addtimerskill(src,tick + 150,bl->id,3,0,WL_CHAINLIGHTNING_ATK,skilllv,4+skilllv,flag); + clif_skill_nodamage(src,bl,skill_id,skill_lv,1); + skill_addtimerskill(src,tick + 150,bl->id,3,0,WL_CHAINLIGHTNING_ATK,skill_lv,4+skill_lv,flag); break; case WL_DRAINLIFE: { - int heal = skill_attack(skill_get_type(skillid), src, src, bl, skillid, skilllv, tick, flag); - int rate = 70 + 5 * skilllv; + int heal = skill_attack(skill_get_type(skill_id), src, src, bl, skill_id, skill_lv, tick, flag); + int rate = 70 + 5 * skill_lv; - heal = heal * (5 + 5 * skilllv) / 100; + heal = heal * (5 + 5 * skill_lv) / 100; if (bl->type == BL_SKILL) heal = 0; // Don't absorb heal from Ice Walls or other skill units. @@ -4287,7 +4291,7 @@ if (j < 4) { // Need 4 spheres minimum - clif_skill_fail(sd,skillid,USESKILL_FAIL_LEVEL,0); + clif_skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0); break; } @@ -4319,8 +4323,8 @@ k |= 8; break; } - skill_addtimerskill(src, tick + i * 200, bl->id, k, 0, subskill, skilllv, i, flag); - clif_skill_nodamage(src, bl, subskill, skilllv, 1); + skill_addtimerskill(src, tick + i * 200, bl->id, k, 0, subskill, skill_lv, i, flag); + clif_skill_nodamage(src, bl, subskill, skill_lv, 1); status_change_end(src, spheres[i], INVALID_TIMER); } } @@ -4332,7 +4336,8 @@ // Priority is to release SpellBook if (sc && sc->data[SC_READING_SB]) { // SpellBook - int skill_id, skill_lv, point, s = 0; + uint16 skill_id, skill_lv; + int point, s = 0; int spell[SC_MAXSPELLBOOK-SC_SPELLBOOK1 + 1]; for (i = SC_MAXSPELLBOOK; i >= SC_SPELLBOOK1; i--) // List all available spell to be released @@ -4355,7 +4360,7 @@ else // Last spell to be released status_change_end(src, SC_READING_SB, INVALID_TIMER); - clif_skill_nodamage(src, bl, skillid, skilllv, 1); + clif_skill_nodamage(src, bl, skill_id, skill_lv, 1); if (!skill_check_condition_castbegin(sd, skill_id, skill_lv)) break; @@ -4389,7 +4394,7 @@ if (j == 0) { // No Spheres - clif_skill_fail(sd,skillid,USESKILL_FAIL_SUMMON_NONE,0); + clif_skill_fail(sd,skill_id,USESKILL_FAIL_SUMMON_NONE,0); break; } @@ -4401,27 +4406,27 @@ swap(spheres[i],spheres[k]); } - if (skilllv == 1) j = 1; // Limit only to one ball + if (skill_lv == 1) j = 1; // Limit only to one ball for (i = 0; i < j; i++) { skele = WL_RELEASE - 5 + sc->data[spheres[i]]->val1 - WLS_FIRE; // Convert Ball Element into Skill ATK for balls // WL_SUMMON_ATK_FIRE, WL_SUMMON_ATK_WIND, WL_SUMMON_ATK_WATER, WL_SUMMON_ATK_GROUND skill_addtimerskill(src,tick+status_get_adelay(src)*i,bl->id,0,0,skele,sc->data[spheres[i]]->val3,BF_MAGIC,flag|SD_LEVEL); status_change_end(src, spheres[i], INVALID_TIMER); // Eliminate ball } - clif_skill_nodamage(src,bl,skillid,0,1); + clif_skill_nodamage(src,bl,skill_id,0,1); } } break; case WL_FROSTMISTY: // Causes Freezing status through walls. - sc_start(bl,status_skill2sc(skillid),20+12*skilllv+(sd ? sd->status.job_level : 50)/5,skilllv,skill_get_time(skillid,skilllv)); + sc_start(bl,status_skill2sc(skill_id),20+12*skill_lv+(sd ? sd->status.job_level : 50)/5,skill_lv,skill_get_time(skill_id,skill_lv)); // Doesn't deal damage through non-shootable walls. if (path_search(NULL,src->m,src->x,src->y,bl->x,bl->y,1,CELL_CHKWALL)) - skill_attack(BF_MAGIC,src,src,bl,skillid,skilllv,tick,flag|SD_ANIMATION); + skill_attack(BF_MAGIC,src,src,bl,skill_id,skill_lv,tick,flag|SD_ANIMATION); break; case WL_HELLINFERNO: - skill_attack(BF_MAGIC,src,src,bl,skillid,skilllv,tick,flag); - skill_attack(BF_MAGIC,src,src,bl,skillid,skilllv,tick,flag|ELE_DARK); + skill_attack(BF_MAGIC,src,src,bl,skill_id,skill_lv,tick,flag); + skill_attack(BF_MAGIC,src,src,bl,skill_id,skill_lv,tick,flag|ELE_DARK); break; case RA_WUGSTRIKE: if (sd && pc_isridingwug(sd)) { @@ -4432,15 +4437,15 @@ if (unit_movepos(src, bl->x+x[dir], bl->y+y[dir], 1, 1)) { clif_slide(src, bl->x+x[dir], bl->y+y[dir]); clif_fixpos(src); - skill_attack(BF_WEAPON, src, src, bl, skillid, skilllv, tick, flag); + skill_attack(BF_WEAPON, src, src, bl, skill_id, skill_lv, tick, flag); } break; } case RA_WUGBITE: if (path_search(NULL,src->m,src->x,src->y,bl->x,bl->y,1,CELL_CHKNOREACH)) { - skill_attack(BF_WEAPON,src,src,bl,skillid,skilllv,tick,flag); - } else if (sd && skillid == RA_WUGBITE) // Only RA_WUGBITE has the skill fail message. - clif_skill_fail(sd, skillid, USESKILL_FAIL_LEVEL, 0); + skill_attack(BF_WEAPON,src,src,bl,skill_id,skill_lv,tick,flag); + } else if (sd && skill_id == RA_WUGBITE) // Only RA_WUGBITE has the skill fail message. + clif_skill_fail(sd, skill_id, USESKILL_FAIL_LEVEL, 0); break; @@ -4448,7 +4453,7 @@ if (bl->type != BL_SKILL) { // Only Hits Invisible Targets struct status_change *tsc = status_get_sc(bl); if (tsc && tsc->option&(OPTION_HIDE|OPTION_CLOAK)) { - skill_attack(BF_WEAPON,src,src,bl,skillid,skilllv,tick,flag); + skill_attack(BF_WEAPON,src,src,bl,skill_id,skill_lv,tick,flag); status_change_end(bl, SC_CLOAKINGEXCEED, INVALID_TIMER); } } else { @@ -4472,54 +4477,54 @@ if (flag&1) { //TODO: Need a confirmation if the other type of hidden status is included to be scanned. [Jobbie] if (rnd()%100 < 50) - sc_start(bl, SC_INFRAREDSCAN, 10000, skilllv, skill_get_time(skillid, skilllv)); + sc_start(bl, SC_INFRAREDSCAN, 10000, skill_lv, skill_get_time(skill_id, skill_lv)); status_change_end(bl, SC_HIDING, INVALID_TIMER); status_change_end(bl, SC_CLOAKING, INVALID_TIMER); status_change_end(bl, SC_CLOAKINGEXCEED, INVALID_TIMER); // Need confirm it. } else { - map_foreachinrange(skill_area_sub, bl, skill_get_splash(skillid, skilllv), splash_target(src), src, skillid, skilllv, tick, flag|BCT_ENEMY|SD_SPLASH|1, skill_castend_damage_id); - clif_skill_damage(src,src,tick, status_get_amotion(src), 0, -30000, 1, skillid, skilllv, 6); + map_foreachinrange(skill_area_sub, bl, skill_get_splash(skill_id, skill_lv), splash_target(src), src, skill_id, skill_lv, tick, flag|BCT_ENEMY|SD_SPLASH|1, skill_castend_damage_id); + clif_skill_damage(src,src,tick, status_get_amotion(src), 0, -30000, 1, skill_id, skill_lv, 6); if (sd) pc_overheat(sd,1); } break; case NC_MAGNETICFIELD: - sc_start2(bl,SC_MAGNETICFIELD,100,skilllv,src->id,skill_get_time(skillid,skilllv)); + sc_start2(bl,SC_MAGNETICFIELD,100,skill_lv,src->id,skill_get_time(skill_id,skill_lv)); break; case SC_FATALMENACE: if (flag&1) - skill_attack(BF_WEAPON,src,src,bl,skillid,skilllv,tick,flag); + skill_attack(BF_WEAPON,src,src,bl,skill_id,skill_lv,tick,flag); else { short x, y; map_search_freecell(src, 0, &x, &y, -1, -1, 0); // Destination area skill_area_temp[4] = x; skill_area_temp[5] = y; - map_foreachinrange(skill_area_sub, bl, skill_get_splash(skillid, skilllv), splash_target(src), src, skillid, skilllv, tick, flag|BCT_ENEMY|1, skill_castend_damage_id); - skill_addtimerskill(src,tick + 800,src->id,x,y,skillid,skilllv,0,flag); // To teleport Self - clif_skill_damage(src,src,tick,status_get_amotion(src),0,-30000,1,skillid,skilllv,6); + map_foreachinrange(skill_area_sub, bl, skill_get_splash(skill_id, skill_lv), splash_target(src), src, skill_id, skill_lv, tick, flag|BCT_ENEMY|1, skill_castend_damage_id); + skill_addtimerskill(src,tick + 800,src->id,x,y,skill_id,skill_lv,0,flag); // To teleport Self + clif_skill_damage(src,src,tick,status_get_amotion(src),0,-30000,1,skill_id,skill_lv,6); } break; case LG_PINPOINTATTACK: if (!map_flag_gvg(src->m) && !map[src->m].flag.battleground && unit_movepos(src, bl->x, bl->y, 1, 1)) clif_slide(src,bl->x,bl->y); - skill_attack(BF_WEAPON,src,src,bl,skillid,skilllv,tick,flag); + skill_attack(BF_WEAPON,src,src,bl,skill_id,skill_lv,tick,flag); break; case LG_SHIELDSPELL: // flag&1: Phisycal Attack, flag&2: Magic Attack. - skill_attack((flag&1)?BF_WEAPON:BF_MAGIC,src,src,bl,skillid,skilllv,tick,flag); + skill_attack((flag&1)?BF_WEAPON:BF_MAGIC,src,src,bl,skill_id,skill_lv,tick,flag); break; case LG_OVERBRAND: - skill_attack(BF_WEAPON, src, src, bl, skillid, skilllv, tick, flag|SD_LEVEL); + skill_attack(BF_WEAPON, src, src, bl, skill_id, skill_lv, tick, flag|SD_LEVEL); break; case LG_OVERBRAND_BRANDISH: - skill_addtimerskill(src, tick + status_get_amotion(src)*8/10, bl->id, 0, 0, skillid, skilllv, BF_WEAPON, flag|SD_LEVEL); + skill_addtimerskill(src, tick + status_get_amotion(src)*8/10, bl->id, 0, 0, skill_id, skill_lv, BF_WEAPON, flag|SD_LEVEL); break; case SR_DRAGONCOMBO: - skill_attack(BF_WEAPON,src,src,bl,skillid,skilllv,tick,flag); + skill_attack(BF_WEAPON,src,src,bl,skill_id,skill_lv,tick,flag); break; case SR_KNUCKLEARROW: @@ -4529,9 +4534,9 @@ } if (flag&1) - skill_attack(BF_WEAPON, src, src, bl, skillid, skilllv, tick, flag|SD_LEVEL); + skill_attack(BF_WEAPON, src, src, bl, skill_id, skill_lv, tick, flag|SD_LEVEL); else - skill_addtimerskill(src, tick + 300, bl->id, 0, 0, skillid, skilllv, BF_WEAPON, flag|SD_LEVEL|2); + skill_addtimerskill(src, tick + 300, bl->id, 0, 0, skill_id, skill_lv, BF_WEAPON, flag|SD_LEVEL|2); break; case SR_HOWLINGOFLION: @@ -4548,41 +4553,41 @@ status_change_end(bl, SC_MELODYOFSINK, INVALID_TIMER); status_change_end(bl, SC_BEYONDOFWARCRY, INVALID_TIMER); status_change_end(bl, SC_UNLIMITEDHUMMINGVOICE, INVALID_TIMER); - skill_attack(BF_WEAPON, src, src, bl, skillid, skilllv, tick, flag|SD_ANIMATION); + skill_attack(BF_WEAPON, src, src, bl, skill_id, skill_lv, tick, flag|SD_ANIMATION); break; case SR_EARTHSHAKER: if (flag&1) { //by default cloaking skills are remove by aoe skills so no more checking/removing except hiding and cloaking exceed. - skill_attack(BF_WEAPON, src, src, bl, skillid, skilllv, tick, flag); + skill_attack(BF_WEAPON, src, src, bl, skill_id, skill_lv, tick, flag); status_change_end(bl, SC_HIDING, INVALID_TIMER); status_change_end(bl, SC_CLOAKINGEXCEED, INVALID_TIMER); } else { - map_foreachinrange(skill_area_sub, bl, skill_get_splash(skillid, skilllv), splash_target(src), src, skillid, skilllv, tick, flag|BCT_ENEMY|SD_SPLASH|1, skill_castend_damage_id); - clif_skill_damage(src, src, tick, status_get_amotion(src), 0, -30000, 1, skillid, skilllv, 6); + map_foreachinrange(skill_area_sub, bl, skill_get_splash(skill_id, skill_lv), splash_target(src), src, skill_id, skill_lv, tick, flag|BCT_ENEMY|SD_SPLASH|1, skill_castend_damage_id); + clif_skill_damage(src, src, tick, status_get_amotion(src), 0, -30000, 1, skill_id, skill_lv, 6); } break; case WM_LULLABY_DEEPSLEEP: - if (bl != src && rnd()%100 < 88 + 2 * skilllv) - sc_start(bl,status_skill2sc(skillid),100,skilllv,skill_get_time(skillid,skilllv)); + if (bl != src && rnd()%100 < 88 + 2 * skill_lv) + sc_start(bl,status_skill2sc(skill_id),100,skill_lv,skill_get_time(skill_id,skill_lv)); break; case SO_POISON_BUSTER: { struct status_change *tsc = status_get_sc(bl); if (tsc && tsc->data[SC_POISON]) { - skill_attack(skill_get_type(skillid), src, src, bl, skillid, skilllv, tick, flag); + skill_attack(skill_get_type(skill_id), src, src, bl, skill_id, skill_lv, tick, flag); status_change_end(bl, SC_POISON, INVALID_TIMER); } else if (sd) - clif_skill_fail(sd, skillid, USESKILL_FAIL_LEVEL, 0); + clif_skill_fail(sd, skill_id, USESKILL_FAIL_LEVEL, 0); } break; case GN_SPORE_EXPLOSION: if (flag&1) - skill_attack(skill_get_type(skillid), src, src, bl, skillid, skilllv, tick, flag); + skill_attack(skill_get_type(skill_id), src, src, bl, skill_id, skill_lv, tick, flag); else { - clif_skill_nodamage(src, bl, skillid, 0, 1); - skill_addtimerskill(src, gettick() + skill_get_time(skillid, skilllv) - 1000, bl->id, 0, 0, skillid, skilllv, 0, 0); + clif_skill_nodamage(src, bl, skill_id, 0, 1); + skill_addtimerskill(src, gettick() + skill_get_time(skill_id, skill_lv) - 1000, bl->id, 0, 0, skill_id, skill_lv, 0, 0); } break; @@ -4592,38 +4597,38 @@ case EL_HURRICANE: case EL_TYPOON_MIS: if (flag&1) - skill_attack(skill_get_type(skillid+1),src,src,bl,skillid+1,skilllv,tick,flag); + skill_attack(skill_get_type(skill_id+1),src,src,bl,skill_id+1,skill_lv,tick,flag); else { - int i = skill_get_splash(skillid,skilllv); - clif_skill_nodamage(src,battle_get_master(src),skillid,skilllv,1); - clif_skill_damage(src, src, tick, status_get_amotion(src), 0, -30000, 1, skillid, skilllv, 6); + int i = skill_get_splash(skill_id,skill_lv); + clif_skill_nodamage(src,battle_get_master(src),skill_id,skill_lv,1); + clif_skill_damage(src, src, tick, status_get_amotion(src), 0, -30000, 1, skill_id, skill_lv, 6); if (rnd()%100 < 30) - map_foreachinrange(skill_area_sub,bl,i,BL_CHAR,src,skillid,skilllv,tick,flag|BCT_ENEMY|1,skill_castend_damage_id); + map_foreachinrange(skill_area_sub,bl,i,BL_CHAR,src,skill_id,skill_lv,tick,flag|BCT_ENEMY|1,skill_castend_damage_id); else - skill_attack(skill_get_type(skillid),src,src,bl,skillid,skilllv,tick,flag); + skill_attack(skill_get_type(skill_id),src,src,bl,skill_id,skill_lv,tick,flag); } break; case EL_ROCK_CRUSHER: - clif_skill_nodamage(src,battle_get_master(src),skillid,skilllv,1); - clif_skill_damage(src, src, tick, status_get_amotion(src), 0, -30000, 1, skillid, skilllv, 6); + clif_skill_nodamage(src,battle_get_master(src),skill_id,skill_lv,1); + clif_skill_damage(src, src, tick, status_get_amotion(src), 0, -30000, 1, skill_id, skill_lv, 6); if (rnd()%100 < 50) - skill_attack(BF_MAGIC,src,src,bl,skillid,skilllv,tick,flag); + skill_attack(BF_MAGIC,src,src,bl,skill_id,skill_lv,tick,flag); else - skill_attack(BF_WEAPON,src,src,bl,EL_ROCK_CRUSHER_ATK,skilllv,tick,flag); + skill_attack(BF_WEAPON,src,src,bl,EL_ROCK_CRUSHER_ATK,skill_lv,tick,flag); break; case EL_STONE_RAIN: if (flag&1) - skill_attack(skill_get_type(skillid),src,src,bl,skillid,skilllv,tick,flag); + skill_attack(skill_get_type(skill_id),src,src,bl,skill_id,skill_lv,tick,flag); else { - int i = skill_get_splash(skillid,skilllv); - clif_skill_nodamage(src,battle_get_master(src),skillid,skilllv,1); - clif_skill_damage(src, src, tick, status_get_amotion(src), 0, -30000, 1, skillid, skilllv, 6); + int i = skill_get_splash(skill_id,skill_lv); + clif_skill_nodamage(src,battle_get_master(src),skill_id,skill_lv,1); + clif_skill_damage(src, src, tick, status_get_amotion(src), 0, -30000, 1, skill_id, skill_lv, 6); if (rnd()%100 < 30) - map_foreachinrange(skill_area_sub,bl,i,BL_CHAR,src,skillid,skilllv,tick,flag|BCT_ENEMY|1,skill_castend_damage_id); + map_foreachinrange(skill_area_sub,bl,i,BL_CHAR,src,skill_id,skill_lv,tick,flag|BCT_ENEMY|1,skill_castend_damage_id); else - skill_attack(skill_get_type(skillid),src,src,bl,skillid,skilllv,tick,flag); + skill_attack(skill_get_type(skill_id),src,src,bl,skill_id,skill_lv,tick,flag); } break; @@ -4631,9 +4636,9 @@ case EL_ICE_NEEDLE: case EL_WIND_SLASH: case EL_STONE_HAMMER: - clif_skill_nodamage(src,battle_get_master(src),skillid,skilllv,1); - clif_skill_damage(src, src, tick, status_get_amotion(src), 0, -30000, 1, skillid, skilllv, 6); - skill_attack(skill_get_type(skillid),src,src,bl,skillid,skilllv,tick,flag); + clif_skill_nodamage(src,battle_get_master(src),skill_id,skill_lv,1); + clif_skill_damage(src, src, tick, status_get_amotion(src), 0, -30000, 1, skill_id, skill_lv, 6); + skill_attack(skill_get_type(skill_id),src,src,bl,skill_id,skill_lv,tick,flag); break; case EL_TIDAL_WEAPON: @@ -4641,21 +4646,21 @@ struct elemental_data *ele = BL_CAST(BL_ELEM,src); struct status_change *sc = status_get_sc(&ele->bl); struct status_change *tsc = status_get_sc(bl); - sc_type type = status_skill2sc(skillid), type2; + sc_type type = status_skill2sc(skill_id), type2; type2 = type-1; - clif_skill_nodamage(src,battle_get_master(src),skillid,skilllv,1); - clif_skill_damage(src, src, tick, status_get_amotion(src), 0, -30000, 1, skillid, skilllv, 6); + clif_skill_nodamage(src,battle_get_master(src),skill_id,skill_lv,1); + clif_skill_damage(src, src, tick, status_get_amotion(src), 0, -30000, 1, skill_id, skill_lv, 6); if ((sc && sc->data[type2]) || (tsc && tsc->data[type])) { - elemental_clean_single_effect(ele, skillid); + elemental_clean_single_effect(ele, skill_id); } if (rnd()%100 < 50) - skill_attack(skill_get_type(skillid),src,src,bl,skillid,skilllv,tick,flag); + skill_attack(skill_get_type(skill_id),src,src,bl,skill_id,skill_lv,tick,flag); else { - sc_start(src,type2,100,skilllv,skill_get_time(skillid,skilllv)); - sc_start(battle_get_master(src),type,100,ele->bl.id,skill_get_time(skillid,skilllv)); + sc_start(src,type2,100,skill_lv,skill_get_time(skill_id,skill_lv)); + sc_start(battle_get_master(src),type,100,ele->bl.id,skill_get_time(skill_id,skill_lv)); } - clif_skill_nodamage(src,src,skillid,skilllv,1); + clif_skill_nodamage(src,src,skill_id,skill_lv,1); } break; @@ -4665,26 +4670,26 @@ case MH_XENO_SLASHER: case MH_HEILIGE_STANGE: if (flag & 1) - skill_attack(skill_get_type(skillid), src, src, bl, skillid, skilllv, tick, flag); + skill_attack(skill_get_type(skill_id), src, src, bl, skill_id, skill_lv, tick, flag); else { - map_foreachinrange(skill_area_sub, bl, skill_get_splash(skillid, skilllv), splash_target(src), src, skillid, skilllv, tick, flag | BCT_ENEMY | SD_SPLASH | 1, skill_castend_damage_id); + map_foreachinrange(skill_area_sub, bl, skill_get_splash(skill_id, skill_lv), splash_target(src), src, skill_id, skill_lv, tick, flag | BCT_ENEMY | SD_SPLASH | 1, skill_castend_damage_id); } break; case MH_STAHL_HORN: case MH_NEEDLE_OF_PARALYZE: - skill_attack(BF_WEAPON, src, src, bl, skillid, skilllv, tick, flag); + skill_attack(BF_WEAPON, src, src, bl, skill_id, skill_lv, tick, flag); break; case 0:/* no skill - basic/normal attack */ if (sd) { if (flag & 3) { if (bl->id != skill_area_temp[1]) - skill_attack(BF_WEAPON, src, src, bl, skillid, skilllv, tick, SD_LEVEL|flag); + skill_attack(BF_WEAPON, src, src, bl, skill_id, skill_lv, tick, SD_LEVEL|flag); } else { skill_area_temp[1] = bl->id; map_foreachinrange(skill_area_sub, bl, sd->bonus.splash_range, BL_CHAR, - src, skillid, skilllv, tick, flag | BCT_ENEMY | 1, + src, skill_id, skill_lv, tick, flag | BCT_ENEMY | 1, skill_castend_damage_id); flag|=1; //Set flag to 1 so ammo is not double-consumed. [Skotlex] } @@ -4692,10 +4697,10 @@ break; default: - ShowWarning("skill_castend_damage_id: Unknown skill used:%d\n",skillid); + ShowWarning("skill_castend_damage_id: Unknown skill used:%d\n",skill_id); clif_skill_damage(src, bl, tick, status_get_amotion(src), tstatus->dmotion, - 0, abs(skill_get_num(skillid, skilllv)), - skillid, skilllv, skill_get_hit(skillid)); + 0, abs(skill_get_num(skill_id, skill_lv)), + skill_id, skill_lv, skill_get_hit(skill_id)); map_freeblock_unlock(); return 1; } @@ -4711,11 +4716,11 @@ if (sd->state.arrow_atk) { // consume arrow on last invocation to this skill. - battle_consume_ammo(sd, skillid, skilllv); + battle_consume_ammo(sd, skill_id, skill_lv); } // perform skill requirement consumption - skill_consume_requirement(sd,skillid,skilllv,2); + skill_consume_requirement(sd,skill_id,skill_lv,2); } return 0; @@ -4724,7 +4729,7 @@ /*========================================== * *------------------------------------------*/ -int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, int skillid, int skilllv, unsigned int tick, int flag) +int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, uint16 skill_id, uint16 skill_lv, unsigned int tick, int flag) { struct map_session_data *sd, *dstsd; struct mob_data *md, *dstmd; @@ -4737,7 +4742,7 @@ int i = 0; enum sc_type type; - if (skillid > 0 && skilllv <= 0) return 0; // celest + if (skill_id > 0 && skill_lv <= 0) return 0; // celest nullpo_retr(1, src); nullpo_retr(1, bl); @@ -4762,7 +4767,7 @@ /** * Skills that may be cast on dead targets **/ - switch (skillid) { + switch (skill_id) { case NPC_WIDESOULDRAIN: case PR_REDEMPTIO: case ALL_RESURRECTION: @@ -4777,10 +4782,10 @@ sstatus = status_get_status_data(src); //Check for undead skills that convert a no-damage skill into a damage one. [Skotlex] - switch (skillid) { + switch (skill_id) { case HLIF_HEAL: //[orn] if (bl->type != BL_HOM) { - if (sd) clif_skill_fail(sd,skillid,USESKILL_FAIL_LEVEL,0) ; + if (sd) clif_skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0) ; break ; } case AL_HEAL: @@ -4795,55 +4800,55 @@ if (sd && battle_check_undead(tstatus->race,tstatus->def_ele)) { if (battle_check_target(src, bl, BCT_ENEMY) < 1) { //Offensive heal does not works on non-enemies. [Skotlex] - clif_skill_fail(sd,skillid,USESKILL_FAIL_LEVEL,0); + clif_skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0); return 0; } - return skill_castend_damage_id(src, bl, skillid, skilllv, tick, flag); + return skill_castend_damage_id(src, bl, skill_id, skill_lv, tick, flag); } break; case NPC_SMOKING: //Since it is a self skill, this one ends here rather than in damage_id. [Skotlex] - return skill_castend_damage_id(src, bl, skillid, skilllv, tick, flag); + return skill_castend_damage_id(src, bl, skill_id, skill_lv, tick, flag); case MH_STEINWAND: { struct block_list *s_src = battle_get_master(src); short ret = 0; - if (!skill_check_unit_range(src, src->x, src->y, skillid, skilllv)) //prevent reiteration - ret = skill_castend_pos2(src,src->x,src->y,skillid,skilllv,tick,flag); //cast on homon - if (s_src && !skill_check_unit_range(s_src, s_src->x, s_src->y, skillid, skilllv)) - ret |= skill_castend_pos2(s_src,s_src->x,s_src->y,skillid,skilllv,tick,flag); //cast on master + if (!skill_check_unit_range(src, src->x, src->y, skill_id, skill_lv)) //prevent reiteration + ret = skill_castend_pos2(src,src->x,src->y,skill_id,skill_lv,tick,flag); //cast on homon + if (s_src && !skill_check_unit_range(s_src, s_src->x, s_src->y, skill_id, skill_lv)) + ret |= skill_castend_pos2(s_src,s_src->x,s_src->y,skill_id,skill_lv,tick,flag); //cast on master if (hd) - skill_blockhomun_start(hd, skillid, skill_get_cooldown(skillid, skilllv)); + skill_blockhomun_start(hd, skill_id, skill_get_cooldown(skill_id, skill_lv)); return ret; } break; default: //Skill is actually ground placed. - if (src == bl && skill_get_unit_id(skillid,0)) - return skill_castend_pos2(src,bl->x,bl->y,skillid,skilllv,tick,0); + if (src == bl && skill_get_unit_id(skill_id,0)) + return skill_castend_pos2(src,bl->x,bl->y,skill_id,skill_lv,tick,0); } - type = status_skill2sc(skillid); + type = status_skill2sc(skill_id); tsc = status_get_sc(bl); tsce = (tsc && type != -1)?tsc->data[type]:NULL; if (src!=bl && type > -1 && - (i = skill_get_ele(skillid, skilllv)) > ELE_NEUTRAL && - skill_get_inf(skillid) != INF_SUPPORT_SKILL && + (i = skill_get_ele(skill_id, skill_lv)) > ELE_NEUTRAL && + skill_get_inf(skill_id) != INF_SUPPORT_SKILL && battle_attr_fix(NULL, NULL, 100, i, tstatus->def_ele, tstatus->ele_lv) <= 0) return 1; //Skills that cause an status should be blocked if the target element blocks its element. map_freeblock_lock(); - switch (skillid) { + switch (skill_id) { case HLIF_HEAL: //[orn] case AL_HEAL: /** * Arch Bishop **/ case AB_HIGHNESSHEAL: { - int heal = skill_calc_heal(src, bl, (skillid == AB_HIGHNESSHEAL)?AL_HEAL:skillid, (skillid == AB_HIGHNESSHEAL)?10:skilllv, true); + int heal = skill_calc_heal(src, bl, (skill_id == AB_HIGHNESSHEAL)?AL_HEAL:skill_id, (skill_id == AB_HIGHNESSHEAL)?10:skill_lv, true); int heal_get_jobexp; //Highness Heal: starts at 1.5 boost + 0.5 for each level - if (skillid == AB_HIGHNESSHEAL) { - heal = heal * (15 + 5 * skilllv) / 10; + if (skill_id == AB_HIGHNESSHEAL) { + heal = heal * (15 + 5 * skill_lv) / 10; } if (status_isimmune(bl) || (dstmd && (dstmd->class_ == MOBID_EMPERIUM || mob_is_battleground(dstmd))) || @@ -4867,8 +4872,8 @@ } else if (tsc->data[SC_BERSERK] || tsc->data[SC_SATURDAYNIGHTFEVER] || tsc->data[SC__BLOODYLUST]) heal = 0; //Needed so that it actually displays 0 when healing. } - clif_skill_nodamage(src, bl, skillid, heal, 1); - if (tsc && tsc->data[SC_AKAITSUKI] && heal && skillid != HLIF_HEAL) + clif_skill_nodamage(src, bl, skill_id, heal, 1); + if (tsc && tsc->data[SC_AKAITSUKI] && heal && skill_id != HLIF_HEAL) heal = ~heal + 1; heal_get_jobexp = status_heal(bl,heal,0,0); @@ -4884,16 +4889,16 @@ case PR_REDEMPTIO: if (sd && !(flag&1)) { if (sd->status.party_id == 0) { - clif_skill_fail(sd,skillid,USESKILL_FAIL_LEVEL,0); + clif_skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0); break; } skill_area_temp[0] = 0; party_foreachsamemap(skill_area_sub, - sd,skill_get_splash(skillid, skilllv), - src,skillid,skilllv,tick, flag|BCT_PARTY|1, + sd,skill_get_splash(skill_id, skill_lv), + src,skill_id,skill_lv,tick, flag|BCT_PARTY|1, skill_castend_nodamage_id); if (skill_area_temp[0] == 0) { - clif_skill_fail(sd,skillid,USESKILL_FAIL_LEVEL,0); + clif_skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0); break; } skill_area_temp[0] = 5 - skill_area_temp[0]; // The actual penalty... @@ -4908,14 +4913,14 @@ break; } else if (status_isdead(bl) && flag&1) { //Revive skill_area_temp[0]++; //Count it in, then fall-through to the Resurrection code. - skilllv = 3; //Resurrection level 3 is used + skill_lv = 3; //Resurrection level 3 is used } else //Invalid target, skip resurrection. break; case ALL_RESURRECTION: if (sd && (map_flag_gvg(bl->m) || map[bl->m].flag.battleground)) { //No reviving in WoE grounds! - clif_skill_fail(sd,skillid,USESKILL_FAIL_LEVEL,0); + clif_skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0); break; } if (!status_isdead(bl)) @@ -4928,7 +4933,7 @@ if (map[bl->m].flag.pvp && dstsd && dstsd->pvp_point < 0) break; - switch (skilllv) { + switch (skill_lv) { case 1: per=10; break; @@ -4945,7 +4950,7 @@ if (dstsd && dstsd->special_state.restart_full_recover) per = sper = 100; if (status_revive(bl, per, sper)) { - clif_skill_nodamage(src,bl,ALL_RESURRECTION,skilllv,1); //Both Redemptio and Res show this skill-animation. + clif_skill_nodamage(src,bl,ALL_RESURRECTION,skill_lv,1); //Both Redemptio and Res show this skill-animation. if (sd && dstsd && battle_config.resurrection_exp > 0) { int exp = 0,jexp = 0; int lv = dstsd->status.base_level - sd->status.base_level, jlv = dstsd->status.job_level - sd->status.job_level; @@ -4966,17 +4971,17 @@ case AL_DECAGI: case MER_DECAGI: - clif_skill_nodamage(src, bl, skillid, skilllv, - sc_start(bl, type, (40 + skilllv * 2 + (status_get_lv(src) + sstatus->int_)/5), skilllv, skill_get_time(skillid,skilllv))); + clif_skill_nodamage(src, bl, skill_id, skill_lv, + sc_start(bl, type, (40 + skill_lv * 2 + (status_get_lv(src) + sstatus->int_)/5), skill_lv, skill_get_time(skill_id,skill_lv))); break; case AL_CRUCIS: if (flag&1) - sc_start(bl,type, 23+skilllv*4 +status_get_lv(src) -status_get_lv(bl), skilllv,skill_get_time(skillid,skilllv)); + sc_start(bl,type, 23+skill_lv*4 +status_get_lv(src) -status_get_lv(bl), skill_lv,skill_get_time(skill_id,skill_lv)); else { - map_foreachinrange(skill_area_sub, src, skill_get_splash(skillid, skilllv), BL_CHAR, - src, skillid, skilllv, tick, flag|BCT_ENEMY|1, skill_castend_nodamage_id); - clif_skill_nodamage(src, bl, skillid, skilllv, 1); + map_foreachinrange(skill_area_sub, src, skill_get_splash(skill_id, skill_lv), BL_CHAR, + src, skill_id, skill_lv, tick, flag|BCT_ENEMY|1, skill_castend_nodamage_id); + clif_skill_nodamage(src, bl, skill_id, skill_lv, 1); } break; @@ -4985,39 +4990,39 @@ if (tsce) status_change_end(bl,type, INVALID_TIMER); else - sc_start(bl,type,100,skilllv,skill_get_time(skillid,skilllv)); - clif_skill_nodamage(src, bl, skillid, skilllv, 1); + sc_start(bl,type,100,skill_lv,skill_get_time(skill_id,skill_lv)); + clif_skill_nodamage(src, bl, skill_id, skill_lv, 1); break; case SA_ABRACADABRA: { - int abra_skillid = 0, abra_skilllv; + short abra_skill_id = 0, abra_skill_lv; do { i = rnd() % MAX_SKILL_ABRA_DB; - abra_skillid = skill_abra_db[i].skillid; - } while (abra_skillid == 0 || - skill_abra_db[i].req_lv > skilllv || //Required lv for it to appear + abra_skill_id = skill_abra_db[i].skill_id; + } while (abra_skill_id == 0 || + skill_abra_db[i].req_lv > skill_lv || //Required lv for it to appear rnd()%10000 >= skill_abra_db[i].per ); - abra_skilllv = min(skilllv, skill_get_max(abra_skillid)); - clif_skill_nodamage(src, bl, skillid, skilllv, 1); + abra_skill_lv = min(skill_lv, skill_get_max(abra_skill_id)); + clif_skill_nodamage(src, bl, skill_id, skill_lv, 1); if (sd) { // player-casted sd->state.abra_flag = 1; - sd->skillitem = abra_skillid; - sd->skillitemlv = abra_skilllv; - clif_item_skill(sd, abra_skillid, abra_skilllv); + sd->skillitem = abra_skill_id; + sd->skillitemlv = abra_skill_lv; + clif_item_skill(sd, abra_skill_id, abra_skill_lv); } else { // mob-casted struct unit_data *ud = unit_bl2ud(src); - int inf = skill_get_inf(abra_skillid); + int inf = skill_get_inf(abra_skill_id); int target_id = 0; if (!ud) break; if (inf&INF_SELF_SKILL || inf&INF_SUPPORT_SKILL) { if (src->type == BL_PET) bl = (struct block_list *)((TBL_PET *)src)->msd; if (!bl) bl = src; - unit_skilluse_id(src, bl->id, abra_skillid, abra_skilllv); + unit_skilluse_id(src, bl->id, abra_skill_id, abra_skill_lv); } else { //Assume offensive skills if (ud->target) target_id = ud->target; @@ -5031,23 +5036,23 @@ } if (!target_id) break; - if (skill_get_casttype(abra_skillid) == CAST_GROUND) { + if (skill_get_casttype(abra_skill_id) == CAST_GROUND) { bl = map_id2bl(target_id); if (!bl) bl = src; - unit_skilluse_pos(src, bl->x, bl->y, abra_skillid, abra_skilllv); + unit_skilluse_pos(src, bl->x, bl->y, abra_skill_id, abra_skill_lv); } else - unit_skilluse_id(src, target_id, abra_skillid, abra_skilllv); + unit_skilluse_id(src, target_id, abra_skill_id, abra_skill_lv); } } } break; case SA_COMA: - clif_skill_nodamage(src,bl,skillid,skilllv, - sc_start(bl,type,100,skilllv,skill_get_time2(skillid,skilllv))); + clif_skill_nodamage(src,bl,skill_id,skill_lv, + sc_start(bl,type,100,skill_lv,skill_get_time2(skill_id,skill_lv))); break; case SA_FULLRECOVERY: - clif_skill_nodamage(src,bl,skillid,skilllv,1); + clif_skill_nodamage(src,bl,skill_id,skill_lv,1); if (status_isimmune(bl)) break; status_percent_heal(bl, 100, 100); @@ -5066,31 +5071,31 @@ } break; case SA_SUMMONMONSTER: - clif_skill_nodamage(src,bl,skillid,skilllv,1); + clif_skill_nodamage(src,bl,skill_id,skill_lv,1); if (sd) mob_once_spawn(sd, src->m, src->x, src->y," --ja--", -1, 1, "", SZ_SMALL, AI_NONE); break; case SA_LEVELUP: - clif_skill_nodamage(src,bl,skillid,skilllv,1); + clif_skill_nodamage(src,bl,skill_id,skill_lv,1); if (sd && pc_nextbaseexp(sd)) pc_gainexp(sd, NULL, pc_nextbaseexp(sd) * 10 / 100, 0, false); break; case SA_INSTANTDEATH: - clif_skill_nodamage(src,bl,skillid,skilllv,1); + clif_skill_nodamage(src,bl,skill_id,skill_lv,1); status_set_hp(bl,1,0); break; case SA_QUESTION: case SA_GRAVITY: - clif_skill_nodamage(src,bl,skillid,skilllv,1); + clif_skill_nodamage(src,bl,skill_id,skill_lv,1); break; case SA_CLASSCHANGE: case SA_MONOCELL: if (dstmd) { - int class_; + short class_; if (sd && dstmd->status.mode&MD_BOSS) { - clif_skill_fail(sd,skillid,USESKILL_FAIL_LEVEL,0); + clif_skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0); break; } - class_ = skillid==SA_MONOCELL?1002:mob_get_random_id(4, 1, 0); - clif_skill_nodamage(src,bl,skillid,skilllv,1); + class_ = skill_id==SA_MONOCELL?1002:mob_get_random_id(4, 1, 0); + clif_skill_nodamage(src,bl,skill_id,skill_lv,1); mob_class_change(dstmd,class_); if (tsc && dstmd->status.mode&MD_BOSS) { const enum sc_type scs[] = { SC_QUAGMIRE, SC_PROVOKE, SC_ROKISWEIL, SC_GRAVITATION, SC_SUITON, SC_STRIPWEAPON, SC_STRIPSHIELD, SC_STRIPARMOR, SC_STRIPHELM, SC_BLADESTOP }; @@ -5103,22 +5108,22 @@ break; case SA_DEATH: if (sd && dstmd && dstmd->status.mode&MD_BOSS) { - clif_skill_fail(sd,skillid,USESKILL_FAIL_LEVEL,0); + clif_skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0); break; } - clif_skill_nodamage(src,bl,skillid,skilllv,1); + clif_skill_nodamage(src,bl,skill_id,skill_lv,1); status_kill(bl); break; case SA_REVERSEORCISH: - clif_skill_nodamage(src,bl,skillid,skilllv, - sc_start(bl,type,100,skilllv,skill_get_time(skillid, skilllv))); + clif_skill_nodamage(src,bl,skill_id,skill_lv, + sc_start(bl,type,100,skill_lv,skill_get_time(skill_id, skill_lv))); break; case SA_FORTUNE: - clif_skill_nodamage(src,bl,skillid,skilllv,1); + clif_skill_nodamage(src,bl,skill_id,skill_lv,1); if (sd) pc_getzeny(sd,status_get_lv(bl)*100,LOG_TYPE_STEAL,NULL); break; case SA_TAMINGMONSTER: - clif_skill_nodamage(src,bl,skillid,skilllv,1); + clif_skill_nodamage(src,bl,skill_id,skill_lv,1); if (sd && dstmd) { ARR_FIND(0, MAX_PET_DB, i, dstmd->class_ == pet_db[i].class_); if (i < MAX_PET_DB) @@ -5129,13 +5134,13 @@ case CR_PROVIDENCE: if (sd && dstsd) { //Check they are not another crusader [Skotlex] if ((dstsd->class_&MAPID_UPPERMASK) == MAPID_CRUSADER) { - clif_skill_fail(sd,skillid,USESKILL_FAIL_LEVEL,0); + clif_skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0); map_freeblock_unlock(); return 1; } } - clif_skill_nodamage(src,bl,skillid,skilllv, - sc_start(bl,type,100,skilllv,skill_get_time(skillid,skilllv))); + clif_skill_nodamage(src,bl,skill_id,skill_lv, + sc_start(bl,type,100,skill_lv,skill_get_time(skill_id,skill_lv))); break; case CG_MARIONETTE: { @@ -5143,23 +5148,23 @@ if (sd && dstsd && (dstsd->class_&MAPID_UPPERMASK) == MAPID_BARDDANCER && dstsd->status.sex == sd->status.sex) { // Cannot cast on another bard/dancer-type class of the same gender as caster - clif_skill_fail(sd,skillid,USESKILL_FAIL_LEVEL,0); + clif_skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0); map_freeblock_unlock(); return 1; } if (sc && tsc) { if (!sc->data[SC_MARIONETTE] && !tsc->data[SC_MARIONETTE2]) { - sc_start(src,SC_MARIONETTE,100,bl->id,skill_get_time(skillid,skilllv)); - sc_start(bl,SC_MARIONETTE2,100,src->id,skill_get_time(skillid,skilllv)); - clif_skill_nodamage(src,bl,skillid,skilllv,1); + sc_start(src,SC_MARIONETTE,100,bl->id,skill_get_time(skill_id,skill_lv)); + sc_start(bl,SC_MARIONETTE2,100,src->id,skill_get_time(skill_id,skill_lv)); + clif_skill_nodamage(src,bl,skill_id,skill_lv,1); } else if (sc->data[SC_MARIONETTE ] && sc->data[SC_MARIONETTE ]->val1 == bl->id && tsc->data[SC_MARIONETTE2] && tsc->data[SC_MARIONETTE2]->val1 == src->id) { status_change_end(src, SC_MARIONETTE, INVALID_TIMER); status_change_end(bl, SC_MARIONETTE2, INVALID_TIMER); } else { if (sd) - clif_skill_fail(sd,skillid,USESKILL_FAIL_LEVEL,0); + clif_skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0); map_freeblock_unlock(); return 1; @@ -5169,8 +5174,8 @@ break; case RG_CLOSECONFINE: - clif_skill_nodamage(src,bl,skillid,skilllv, - sc_start4(bl,type,100,skilllv,src->id,0,0,skill_get_time(skillid,skilllv))); + clif_skill_nodamage(src,bl,skill_id,skill_lv, + sc_start4(bl,type,100,skill_lv,src->id,0,0,skill_get_time(skill_id,skill_lv))); break; case SA_FLAMELAUNCHER: // added failure chance and chance to break weapon if turned on [Valaris] case SA_FROSTWEAPON: @@ -5189,15 +5194,15 @@ dstsd->sc.data[SC_ENCPOISON] )) ) { - if (sd) clif_skill_fail(sd,skillid,USESKILL_FAIL_LEVEL,0); - clif_skill_nodamage(src,bl,skillid,skilllv,0); + if (sd) clif_skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0); + clif_skill_nodamage(src,bl,skill_id,skill_lv,0); break; } } // 100% success rate at lv4 & 5, but lasts longer at lv5 - if (!clif_skill_nodamage(src,bl,skillid,skilllv, sc_start(bl,type,(60+skilllv*10),skilllv, skill_get_time(skillid,skilllv)))) { + if (!clif_skill_nodamage(src,bl,skill_id,skill_lv, sc_start(bl,type,(60+skill_lv*10),skill_lv, skill_get_time(skill_id,skill_lv)))) { if (sd) - clif_skill_fail(sd,skillid,USESKILL_FAIL_LEVEL,0); + clif_skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0); if (skill_break_equip(bl, EQP_WEAPON, 10000, BCT_PARTY) && sd && sd != dstsd) clif_displaymessage(sd->fd, msg_txt(669)); } @@ -5205,21 +5210,21 @@ case PR_ASPERSIO: if (sd && dstmd) { - clif_skill_nodamage(src,bl,skillid,skilllv,0); + clif_skill_nodamage(src,bl,skill_id,skill_lv,0); break; } - clif_skill_nodamage(src,bl,skillid,skilllv, - sc_start(bl,type,100,skilllv,skill_get_time(skillid,skilllv))); + clif_skill_nodamage(src,bl,skill_id,skill_lv, + sc_start(bl,type,100,skill_lv,skill_get_time(skill_id,skill_lv))); break; case ITEM_ENCHANTARMS: - clif_skill_nodamage(src,bl,skillid,skilllv, - sc_start2(bl,type,100,skilllv, - skill_get_ele(skillid,skilllv), skill_get_time(skillid,skilllv))); + clif_skill_nodamage(src,bl,skill_id,skill_lv, + sc_start2(bl,type,100,skill_lv, + skill_get_ele(skill_id,skill_lv), skill_get_time(skill_id,skill_lv))); break; case TK_SEVENWIND: - switch (skill_get_ele(skillid,skilllv)) { + switch (skill_get_ele(skill_id,skill_lv)) { case ELE_EARTH : type = SC_EARTHWEAPON; break; @@ -5242,42 +5247,42 @@ type = SC_ASPERSIO; break; } - clif_skill_nodamage(src,bl,skillid,skilllv, - sc_start(bl,type,100,skilllv,skill_get_time(skillid,skilllv))); + clif_skill_nodamage(src,bl,skill_id,skill_lv, + sc_start(bl,type,100,skill_lv,skill_get_time(skill_id,skill_lv))); - sc_start(bl,SC_SEVENWIND,100,skilllv,skill_get_time(skillid,skilllv)); + sc_start(bl,SC_SEVENWIND,100,skill_lv,skill_get_time(skill_id,skill_lv)); break; case PR_KYRIE: case MER_KYRIE: - clif_skill_nodamage(bl,bl,skillid,skilllv, - sc_start(bl,type,100,skilllv,skill_get_time(skillid,skilllv))); + clif_skill_nodamage(bl,bl,skill_id,skill_lv, + sc_start(bl,type,100,skill_lv,skill_get_time(skill_id,skill_lv))); break; //Passive Magnum, should had been casted on yourself. case SM_MAGNUM: case MS_MAGNUM: skill_area_temp[1] = 0; - map_foreachinrange(skill_area_sub, src, skill_get_splash(skillid, skilllv), BL_SKILL|BL_CHAR, - src,skillid,skilllv,tick, flag|BCT_ENEMY|1, skill_castend_damage_id); - clif_skill_nodamage(src,src,skillid,skilllv,1); + map_foreachinrange(skill_area_sub, src, skill_get_splash(skill_id, skill_lv), BL_SKILL|BL_CHAR, + src,skill_id,skill_lv,tick, flag|BCT_ENEMY|1, skill_castend_damage_id); + clif_skill_nodamage(src,src,skill_id,skill_lv,1); // Initiate 10% of your damage becomes fire element. - sc_start4(src,SC_WATK_ELEMENT,100,3,20,0,0,skill_get_time2(skillid, skilllv)); + sc_start4(src,SC_WATK_ELEMENT,100,3,20,0,0,skill_get_time2(skill_id, skill_lv)); if (sd) - skill_blockpc_start(sd, skillid, skill_get_time(skillid, skilllv)); + skill_blockpc_start(sd, skill_id, skill_get_time(skill_id, skill_lv)); else if (bl->type == BL_MER) - skill_blockmerc_start((TBL_MER *)bl, skillid, skill_get_time(skillid, skilllv)); + skill_blockmerc_start((TBL_MER *)bl, skill_id, skill_get_time(skill_id, skill_lv)); break; case TK_JUMPKICK: /* Check if the target is an enemy; if not, skill should fail so the character doesn't unit_movepos (exploitable) */ if (battle_check_target(src, bl, BCT_ENEMY) > 0) { if (unit_movepos(src, bl->x, bl->y, 1, 1)) { - skill_attack(BF_WEAPON,src,src,bl,skillid,skilllv,tick,flag); + skill_attack(BF_WEAPON,src,src,bl,skill_id,skill_lv,tick,flag); clif_slide(src,bl->x,bl->y); } } else - clif_skill_fail(sd,skillid,USESKILL_FAIL,0); + clif_skill_fail(sd,skill_id,USESKILL_FAIL,0); break; case AL_INCAGI: @@ -5285,7 +5290,7 @@ case MER_INCAGI: case MER_BLESSING: if (dstsd != NULL && tsc->data[SC_CHANGEUNDEAD]) { - skill_attack(BF_MISC,src,src,bl,skillid,skilllv,tick,flag); + skill_attack(BF_MISC,src,src,bl,skill_id,skill_lv,tick,flag); break; } case PR_SLOWPOISON: @@ -5355,33 +5360,33 @@ case SR_GENTLETOUCH_ENERGYGAIN: case GN_CARTBOOST: case KO_MEIKYOUSISUI: - clif_skill_nodamage(src,bl,skillid,skilllv, - sc_start(bl,type,100,skilllv,skill_get_time(skillid,skilllv))); + clif_skill_nodamage(src,bl,skill_id,skill_lv, + sc_start(bl,type,100,skill_lv,skill_get_time(skill_id,skill_lv))); break; case SO_STRIKING: if (sd) { - int bonus = 25 + 10 * skilllv; + int bonus = 25 + 10 * skill_lv; bonus += (pc_checkskill(sd, SA_FLAMELAUNCHER)+pc_checkskill(sd, SA_FROSTWEAPON)+pc_checkskill(sd, SA_LIGHTNINGLOADER)+pc_checkskill(sd, SA_SEISMICWEAPON))*5; - clif_skill_nodamage(src, bl, skillid, skilllv, + clif_skill_nodamage(src, bl, skill_id, skill_lv, battle_check_target(src,bl,BCT_PARTY) ? - sc_start2(bl, type, 100, skilllv, bonus, skill_get_time(skillid,skilllv)) : + sc_start2(bl, type, 100, skill_lv, bonus, skill_get_time(skill_id,skill_lv)) : 0 ); } break; case NPC_STOP: - if (clif_skill_nodamage(src,bl,skillid,skilllv, - sc_start2(bl,type,100,skilllv,src->id,skill_get_time(skillid,skilllv)))) - sc_start2(src,type,100,skilllv,bl->id,skill_get_time(skillid,skilllv)); + if (clif_skill_nodamage(src,bl,skill_id,skill_lv, + sc_start2(bl,type,100,skill_lv,src->id,skill_get_time(skill_id,skill_lv)))) + sc_start2(src,type,100,skill_lv,bl->id,skill_get_time(skill_id,skill_lv)); break; case HP_ASSUMPTIO: if (sd && dstmd) - clif_skill_fail(sd,skillid,USESKILL_FAIL_LEVEL,0); + clif_skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0); else - clif_skill_nodamage(src,bl,skillid,skilllv, - sc_start(bl,type,100,skilllv,skill_get_time(skillid,skilllv))); + clif_skill_nodamage(src,bl,skill_id,skill_lv, + sc_start(bl,type,100,skill_lv,skill_get_time(skill_id,skill_lv))); break; case MG_SIGHT: case MER_SIGHT: @@ -5390,39 +5395,39 @@ case NPC_WIDESIGHT: case NPC_STONESKIN: case NPC_ANTIMAGIC: - clif_skill_nodamage(src,bl,skillid,skilllv, - sc_start2(bl,type,100,skilllv,skillid,skill_get_time(skillid,skilllv))); + clif_skill_nodamage(src,bl,skill_id,skill_lv, + sc_start2(bl,type,100,skill_lv,skill_id,skill_get_time(skill_id,skill_lv))); break; case HLIF_AVOID: case HAMI_DEFENCE: - i = skill_get_time(skillid,skilllv); - clif_skill_nodamage(bl,bl,skillid,skilllv,sc_start(bl,type,100,skilllv,i)); // Master - clif_skill_nodamage(src,src,skillid,skilllv,sc_start(src,type,100,skilllv,i)); // Homunc + i = skill_get_time(skill_id,skill_lv); + clif_skill_nodamage(bl,bl,skill_id,skill_lv,sc_start(bl,type,100,skill_lv,i)); // Master + clif_skill_nodamage(src,src,skill_id,skill_lv,sc_start(src,type,100,skill_lv,i)); // Homunc break; case NJ_BUNSINJYUTSU: - clif_skill_nodamage(src,bl,skillid,skilllv, - sc_start(bl,type,100,skilllv,skill_get_time(skillid,skilllv))); + clif_skill_nodamage(src,bl,skill_id,skill_lv, + sc_start(bl,type,100,skill_lv,skill_get_time(skill_id,skill_lv))); status_change_end(bl, SC_NEN, INVALID_TIMER); break; /* Was modified to only affect targetted char. [Skotlex] case HP_ASSUMPTIO: if (flag&1) - sc_start(bl,type,100,skilllv,skill_get_time(skillid,skilllv)); + sc_start(bl,type,100,skill_lv,skill_get_time(skill_id,skill_lv)); else { map_foreachinrange(skill_area_sub, bl, - skill_get_splash(skillid, skilllv), BL_PC, - src, skillid, skilllv, tick, flag|BCT_ALL|1, + skill_get_splash(skill_id, skill_lv), BL_PC, + src, skill_id, skill_lv, tick, flag|BCT_ALL|1, skill_castend_nodamage_id); - clif_skill_nodamage(src,bl,skillid,skilllv,1); + clif_skill_nodamage(src,bl,skill_id,skill_lv,1); } break; */ case SM_ENDURE: - clif_skill_nodamage(src,bl,skillid,skilllv, - sc_start(bl,type,100,skilllv,skill_get_time(skillid,skilllv))); + clif_skill_nodamage(src,bl,skill_id,skill_lv, + sc_start(bl,type,100,skill_lv,skill_get_time(skill_id,skill_lv))); if (sd) - skill_blockpc_start(sd, skillid, skill_get_time2(skillid,skilllv)); + skill_blockpc_start(sd, skill_id, skill_get_time2(skill_id,skill_lv)); break; case AS_ENCHANTPOISON: // Prevent spamming [Valaris] @@ -5435,23 +5440,23 @@ dstsd->sc.data[SC_GHOSTWEAPON] // dstsd->sc.data[SC_ENCPOISON] //People say you should be able to recast to lengthen the timer. [Skotlex] ) { - clif_skill_nodamage(src,bl,skillid,skilllv,0); - clif_skill_fail(sd,skillid,USESKILL_FAIL_LEVEL,0); + clif_skill_nodamage(src,bl,skill_id,skill_lv,0); + clif_skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0); break; } } - clif_skill_nodamage(src,bl,skillid,skilllv, - sc_start(bl,type,100,skilllv,skill_get_time(skillid,skilllv))); + clif_skill_nodamage(src,bl,skill_id,skill_lv, + sc_start(bl,type,100,skill_lv,skill_get_time(skill_id,skill_lv))); break; case LK_TENSIONRELAX: - clif_skill_nodamage(src,bl,skillid,skilllv, - sc_start4(bl,type,100,skilllv,0,0,skill_get_time2(skillid,skilllv), - skill_get_time(skillid,skilllv))); + clif_skill_nodamage(src,bl,skill_id,skill_lv, + sc_start4(bl,type,100,skill_lv,0,0,skill_get_time2(skill_id,skill_lv), + skill_get_time(skill_id,skill_lv))); break; case MC_CHANGECART: - clif_skill_nodamage(src,bl,skillid,skilllv,1); + clif_skill_nodamage(src,bl,skill_id,skill_lv,1); break; case TK_MISSION: @@ -5459,27 +5464,27 @@ int id; if (sd->mission_mobid && (sd->mission_count || rnd()%100)) { //Cannot change target when already have one clif_mission_info(sd, sd->mission_mobid, sd->mission_count); - clif_skill_fail(sd,skillid,USESKILL_FAIL_LEVEL,0); + clif_skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0); break; } id = mob_get_random_id(0,0xF, sd->status.base_level); if (!id) { - clif_skill_fail(sd,skillid,USESKILL_FAIL_LEVEL,0); + clif_skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0); break; } sd->mission_mobid = id; sd->mission_count = 0; pc_setglobalreg(sd,"TK_MISSION_ID", id); clif_mission_info(sd, id, 0); - clif_skill_nodamage(src,bl,skillid,skilllv,1); + clif_skill_nodamage(src,bl,skill_id,skill_lv,1); } break; case AC_CONCENTRATION: { - clif_skill_nodamage(src,bl,skillid,skilllv, - sc_start(bl,type,100,skilllv,skill_get_time(skillid,skilllv))); + clif_skill_nodamage(src,bl,skill_id,skill_lv, + sc_start(bl,type,100,skill_lv,skill_get_time(skill_id,skill_lv))); map_foreachinrange(status_change_timer_sub, src, - skill_get_splash(skillid, skilllv), BL_CHAR, + skill_get_splash(skill_id, skill_lv), BL_CHAR, src,NULL,type,tick); } break; @@ -5492,11 +5497,11 @@ return 1; } //TODO: How much does base level affects? Dummy value of 1% per level difference used. [Skotlex] - clif_skill_nodamage(src,bl,skillid == SM_SELFPROVOKE ? SM_PROVOKE : skillid,skilllv, - (i = sc_start(bl,type, skillid == SM_SELFPROVOKE ? 100:(50 + 3*skilllv + status_get_lv(src) - status_get_lv(bl)), skilllv, skill_get_time(skillid,skilllv)))); + clif_skill_nodamage(src,bl,skill_id == SM_SELFPROVOKE ? SM_PROVOKE : skill_id,skill_lv, + (i = sc_start(bl,type, skill_id == SM_SELFPROVOKE ? 100:(50 + 3*skill_lv + status_get_lv(src) - status_get_lv(bl)), skill_lv, skill_get_time(skill_id,skill_lv)))); if (!i) { if (sd) - clif_skill_fail(sd,skillid,USESKILL_FAIL_LEVEL,0); + clif_skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0); map_freeblock_unlock(); return 0; } @@ -5512,7 +5517,7 @@ if (dstmd) { dstmd->state.provoke_flag = src->id; - mob_target(dstmd, src, skill_get_range2(src,skillid,skilllv)); + mob_target(dstmd, src, skill_get_range2(src,skill_id,skill_lv)); } break; @@ -5522,7 +5527,7 @@ if (!dstsd || (!sd && !mer)) { // Only players can be devoted if (sd) - clif_skill_fail(sd, skillid, USESKILL_FAIL_LEVEL, 0); + clif_skill_fail(sd, skill_id, USESKILL_FAIL_LEVEL, 0); break; } @@ -5530,17 +5535,17 @@ lv = -lv; if (lv > battle_config.devotion_level_difference || // Level difference requeriments (dstsd->sc.data[type] && dstsd->sc.data[type]->val1 != src->id) || // Cannot Devote a player devoted from another source - (skillid == ML_DEVOTION && (!mer || mer != dstsd->md)) || // Mercenary only can devote owner + (skill_id == ML_DEVOTION && (!mer || mer != dstsd->md)) || // Mercenary only can devote owner (dstsd->class_&MAPID_UPPERMASK) == MAPID_CRUSADER || // Crusader Cannot be devoted (dstsd->sc.data[SC_HELLPOWER])) { // Players affected by SC_HELLPOWERR cannot be devoted. if (sd) - clif_skill_fail(sd,skillid,USESKILL_FAIL_LEVEL,0); + clif_skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0); map_freeblock_unlock(); return 1; } i = 0; - count = (sd)? min(skilllv,5) : 1; // Mercenary only can Devote owner + count = (sd)? min(skill_lv,5) : 1; // Mercenary only can Devote owner if (sd) { // Player Devoting Player ARR_FIND(0, count, i, sd->devotion[i] == bl->id); @@ -5548,7 +5553,7 @@ ARR_FIND(0, count, i, sd->devotion[i] == 0); if (i == count) { // No free slots, skill Fail - clif_skill_fail(sd, skillid, USESKILL_FAIL_LEVEL, 0); + clif_skill_fail(sd, skill_id, USESKILL_FAIL_LEVEL, 0); map_freeblock_unlock(); return 1; } @@ -5558,19 +5563,19 @@ } else mer->devotion_flag = 1; // Mercenary Devoting Owner - clif_skill_nodamage(src, bl, skillid, skilllv, - sc_start4(bl, type, 100, src->id, i, skill_get_range2(src,skillid,skilllv),0, skill_get_time2(skillid, skilllv))); + clif_skill_nodamage(src, bl, skill_id, skill_lv, + sc_start4(bl, type, 100, src->id, i, skill_get_range2(src,skill_id,skill_lv),0, skill_get_time2(skill_id, skill_lv))); clif_devotion(src, NULL); } break; case MO_CALLSPIRITS: if (sd) { - int limit = skilllv; + int limit = skill_lv; if (sd->sc.data[SC_RAISINGDRAGON]) limit += sd->sc.data[SC_RAISINGDRAGON]->val1; - clif_skill_nodamage(src,bl,skillid,skilllv,1); - pc_addspiritball(sd,skill_get_time(skillid,skilllv),limit); + clif_skill_nodamage(src,bl,skill_id,skill_lv,1); + pc_addspiritball(sd,skill_get_time(skill_id,skill_lv),limit); } break; @@ -5579,23 +5584,23 @@ int limit = 5; if (sd->sc.data[SC_RAISINGDRAGON]) limit += sd->sc.data[SC_RAISINGDRAGON]->val1; - clif_skill_nodamage(src,bl,skillid,skilllv,1); + clif_skill_nodamage(src,bl,skill_id,skill_lv,1); for (i = 0; i < limit; i++) - pc_addspiritball(sd,skill_get_time(skillid,skilllv),limit); + pc_addspiritball(sd,skill_get_time(skill_id,skill_lv),limit); } break; case MO_KITRANSLATION: if (dstsd && (dstsd->class_&MAPID_BASEMASK)!=MAPID_GUNSLINGER) { - pc_addspiritball(dstsd,skill_get_time(skillid,skilllv),5); + pc_addspiritball(dstsd,skill_get_time(skill_id,skill_lv),5); } break; case TK_TURNKICK: case MO_BALKYOUNG: //Passive part of the attack. Splash knock-back+stun. [Skotlex] if (skill_area_temp[1] != bl->id) { - skill_blown(src,bl,skill_get_blewcount(skillid,skilllv),-1,0); - skill_additional_effect(src,bl,skillid,skilllv,BF_MISC,ATK_DEF,tick); //Use Misc rather than weapon to signal passive pushback + skill_blown(src,bl,skill_get_blewcount(skill_id,skill_lv),-1,0); + skill_additional_effect(src,bl,skill_id,skill_lv,BF_MISC,ATK_DEF,tick); //Use Misc rather than weapon to signal passive pushback } break; @@ -5611,40 +5616,40 @@ mob_target(dstmd,src,0); } if (i) status_heal(src, 0, i, 3); - clif_skill_nodamage(src,bl,skillid,skilllv,i?1:0); + clif_skill_nodamage(src,bl,skill_id,skill_lv,i?1:0); break; case AC_MAKINGARROW: if (sd) { clif_arrow_create_list(sd); - clif_skill_nodamage(src,bl,skillid,skilllv,1); + clif_skill_nodamage(src,bl,skill_id,skill_lv,1); } break; case AM_PHARMACY: if (sd) { - clif_skill_produce_mix_list(sd,skillid,22); - clif_skill_nodamage(src,bl,skillid,skilllv,1); + clif_skill_produce_mix_list(sd,skill_id,22); + clif_skill_nodamage(src,bl,skill_id,skill_lv,1); } break; case SA_CREATECON: if (sd) { clif_elementalconverter_list(sd); - clif_skill_nodamage(src,bl,skillid,skilllv,1); + clif_skill_nodamage(src,bl,skill_id,skill_lv,1); } break; case BS_HAMMERFALL: - clif_skill_nodamage(src,bl,skillid,skilllv, - sc_start(bl,SC_STUN,(20 + 10 * skilllv),skilllv,skill_get_time2(skillid,skilllv))); + clif_skill_nodamage(src,bl,skill_id,skill_lv, + sc_start(bl,SC_STUN,(20 + 10 * skill_lv),skill_lv,skill_get_time2(skill_id,skill_lv))); break; case RG_RAID: skill_area_temp[1] = 0; - clif_skill_nodamage(src,bl,skillid,skilllv,1); + clif_skill_nodamage(src,bl,skill_id,skill_lv,1); map_foreachinrange(skill_area_sub, bl, - skill_get_splash(skillid, skilllv), splash_target(src), - src,skillid,skilllv,tick, flag|BCT_ENEMY|1, + skill_get_splash(skill_id, skill_lv), splash_target(src), + src,skill_id,skill_lv,tick, flag|BCT_ENEMY|1, skill_castend_damage_id); status_change_end(src, SC_HIDING, INVALID_TIMER); break; @@ -5659,21 +5664,21 @@ case SR_HOWLINGOFLION: case KO_HAPPOKUNAI: skill_area_temp[1] = 0; - clif_skill_nodamage(src,bl,skillid,skilllv,1); - i = map_foreachinrange(skill_area_sub, bl, skill_get_splash(skillid, skilllv), splash_target(src), - src, skillid, skilllv, tick, flag|BCT_ENEMY|SD_SPLASH|1, skill_castend_damage_id); - if (!i && (skillid == NC_AXETORNADO || skillid == SR_SKYNETBLOW || skillid == KO_HAPPOKUNAI)) - clif_skill_damage(src,src,tick, status_get_amotion(src), 0, -30000, 1, skillid, skilllv, 6); + clif_skill_nodamage(src,bl,skill_id,skill_lv,1); + i = map_foreachinrange(skill_area_sub, bl, skill_get_splash(skill_id, skill_lv), splash_target(src), + src, skill_id, skill_lv, tick, flag|BCT_ENEMY|SD_SPLASH|1, skill_castend_damage_id); + if (!i && (skill_id == NC_AXETORNADO || skill_id == SR_SKYNETBLOW || skill_id == KO_HAPPOKUNAI)) + clif_skill_damage(src,src,tick, status_get_amotion(src), 0, -30000, 1, skill_id, skill_lv, 6); break; case NC_EMERGENCYCOOL: - clif_skill_nodamage(src,bl,skillid,skilllv,1); + clif_skill_nodamage(src,bl,skill_id,skill_lv,1); status_change_end(src,SC_OVERHEAT_LIMITPOINT,INVALID_TIMER); status_change_end(src,SC_OVERHEAT,INVALID_TIMER); break; case SR_WINDMILL: case GN_CART_TORNADO: - clif_skill_nodamage(src,bl,skillid,skilllv,1); + clif_skill_nodamage(src,bl,skill_id,skill_lv,1); case SR_EARTHSHAKER: case NC_INFRAREDSCAN: case NPC_EARTHQUAKE: @@ -5681,32 +5686,32 @@ case NPC_HELLJUDGEMENT: case NPC_PULSESTRIKE: case LG_MOONSLASHER: - skill_castend_damage_id(src, src, skillid, skilllv, tick, flag); + skill_castend_damage_id(src, src, skill_id, skill_lv, tick, flag); break; case KN_BRANDISHSPEAR: case ML_BRANDISH: - skill_brandishspear(src, bl, skillid, skilllv, tick, flag); + skill_brandishspear(src, bl, skill_id, skill_lv, tick, flag); break; case WZ_SIGHTRASHER: //Passive side of the attack. status_change_end(src, SC_SIGHT, INVALID_TIMER); - clif_skill_nodamage(src,bl,skillid,skilllv,1); + clif_skill_nodamage(src,bl,skill_id,skill_lv,1); map_foreachinrange(skill_area_sub,src, - skill_get_splash(skillid, skilllv),BL_CHAR|BL_SKILL, - src,skillid,skilllv,tick, flag|BCT_ENEMY|1, + skill_get_splash(skill_id, skill_lv),BL_CHAR|BL_SKILL, + src,skill_id,skill_lv,tick, flag|BCT_ENEMY|1, skill_castend_damage_id); break; case NJ_HYOUSYOURAKU: case NJ_RAIGEKISAI: case WZ_FROSTNOVA: - clif_skill_nodamage(src,bl,skillid,skilllv,1); + clif_skill_nodamage(src,bl,skill_id,skill_lv,1); skill_area_temp[1] = 0; map_foreachinrange(skill_attack_area, src, - skill_get_splash(skillid, skilllv), splash_target(src), - BF_MAGIC, src, src, skillid, skilllv, tick, flag, BCT_ENEMY); + skill_get_splash(skill_id, skill_lv), splash_target(src), + BF_MAGIC, src, src, skill_id, skill_lv, tick, flag, BCT_ENEMY); break; case HVAN_EXPLOSION: //[orn] @@ -5715,11 +5720,11 @@ //Except for Summoned Marine spheres on non-versus maps, where it's just enemy. i = ((!md || md->special_state.ai == 2) && !map_flag_vs(src->m))? BCT_ENEMY:BCT_ALL; - clif_skill_nodamage(src, src, skillid, -1, 1); + clif_skill_nodamage(src, src, skill_id, -1, 1); map_delblock(src); //Required to prevent chain-self-destructions hitting back. map_foreachinrange(skill_area_sub, bl, - skill_get_splash(skillid, skilllv), splash_target(src), - src, skillid, skilllv, tick, flag|i, + skill_get_splash(skill_id, skill_lv), splash_target(src), + src, skill_id, skill_lv, tick, flag|i, skill_castend_damage_id); map_addblock(src); status_damage(src, src, sstatus->max_hp,0,0,1); @@ -5733,17 +5738,17 @@ case CASH_INCAGI: case CASH_ASSUMPTIO: if (sd == NULL || sd->status.party_id == 0 || (flag & 1)) - clif_skill_nodamage(bl, bl, skillid, skilllv, sc_start(bl,type,100,skilllv,skill_get_time(skillid,skilllv))); + clif_skill_nodamage(bl, bl, skill_id, skill_lv, sc_start(bl,type,100,skill_lv,skill_get_time(skill_id,skill_lv))); else if (sd) - party_foreachsamemap(skill_area_sub, sd, skill_get_splash(skillid, skilllv), src, skillid, skilllv, tick, flag|BCT_PARTY|1, skill_castend_nodamage_id); + party_foreachsamemap(skill_area_sub, sd, skill_get_splash(skill_id, skill_lv), src, skill_id, skill_lv, tick, flag|BCT_PARTY|1, skill_castend_nodamage_id); break; case MER_MAGNIFICAT: if (mer != NULL) { - clif_skill_nodamage(bl, bl, skillid, skilllv, sc_start(bl,type,100,skilllv,skill_get_time(skillid,skilllv))); + clif_skill_nodamage(bl, bl, skill_id, skill_lv, sc_start(bl,type,100,skill_lv,skill_get_time(skill_id,skill_lv))); if (mer->master && mer->master->status.party_id != 0 && !(flag&1)) - party_foreachsamemap(skill_area_sub, mer->master, skill_get_splash(skillid, skilllv), src, skillid, skilllv, tick, flag|BCT_PARTY|1, skill_castend_nodamage_id); + party_foreachsamemap(skill_area_sub, mer->master, skill_get_splash(skill_id, skill_lv), src, skill_id, skill_lv, tick, flag|BCT_PARTY|1, skill_castend_nodamage_id); else if (mer->master && !(flag&1)) - clif_skill_nodamage(src, &mer->master->bl, skillid, skilllv, sc_start(bl,type,100,skilllv,skill_get_time(skillid,skilllv))); + clif_skill_nodamage(src, &mer->master->bl, skill_id, skill_lv, sc_start(bl,type,100,skill_lv,skill_get_time(skill_id,skill_lv))); } break; @@ -5752,12 +5757,12 @@ case BS_WEAPONPERFECT: case BS_OVERTHRUST: if (sd == NULL || sd->status.party_id == 0 || (flag & 1)) { - clif_skill_nodamage(bl,bl,skillid,skilllv, - sc_start2(bl,type,100,skilllv,(src == bl)? 1:0,skill_get_time(skillid,skilllv))); + clif_skill_nodamage(bl,bl,skill_id,skill_lv, + sc_start2(bl,type,100,skill_lv,(src == bl)? 1:0,skill_get_time(skill_id,skill_lv))); } else if (sd) { party_foreachsamemap(skill_area_sub, - sd,skill_get_splash(skillid, skilllv), - src,skillid,skilllv,tick, flag|BCT_PARTY|1, + sd,skill_get_splash(skill_id, skill_lv), + src,skill_id,skill_lv,tick, flag|BCT_PARTY|1, skill_castend_nodamage_id); } break; @@ -5777,11 +5782,11 @@ case SG_FUSION: case GS_GATLINGFEVER: if (tsce) { - clif_skill_nodamage(src,bl,skillid,skilllv,status_change_end(bl, type, INVALID_TIMER)); + clif_skill_nodamage(src,bl,skill_id,skill_lv,status_change_end(bl, type, INVALID_TIMER)); map_freeblock_unlock(); return 0; } - clif_skill_nodamage(src,bl,skillid,skilllv,sc_start(bl,type,100,skilllv,skill_get_time(skillid,skilllv))); + clif_skill_nodamage(src,bl,skill_id,skill_lv,sc_start(bl,type,100,skill_lv,skill_get_time(skill_id,skill_lv))); break; case SL_KAITE: case SL_KAAHI: @@ -5795,44 +5800,44 @@ dstsd->status.char_id == sd->status.partner_id || dstsd->status.char_id == sd->status.child )) { - status_change_start(src,SC_STUN,10000,skilllv,0,0,0,500,8); - clif_skill_fail(sd,skillid,USESKILL_FAIL_LEVEL,0); + status_change_start(src,SC_STUN,10000,skill_lv,0,0,0,500,8); + clif_skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0); break; } } - clif_skill_nodamage(src,bl,skillid,skilllv, - sc_start(bl,type,100,skilllv,skill_get_time(skillid, skilllv))); + clif_skill_nodamage(src,bl,skill_id,skill_lv, + sc_start(bl,type,100,skill_lv,skill_get_time(skill_id, skill_lv))); break; case SM_AUTOBERSERK: case MER_AUTOBERSERK: if (tsce) i = status_change_end(bl, type, INVALID_TIMER); else - i = sc_start(bl,type,100,skilllv,60000); - clif_skill_nodamage(src,bl,skillid,skilllv,i); + i = sc_start(bl,type,100,skill_lv,60000); + clif_skill_nodamage(src,bl,skill_id,skill_lv,i); break; case TF_HIDING: case ST_CHASEWALK: case KO_YAMIKUMO: if (tsce) { - clif_skill_nodamage(src,bl,skillid,-1,status_change_end(bl, type, INVALID_TIMER)); //Hide skill-scream animation. + clif_skill_nodamage(src,bl,skill_id,-1,status_change_end(bl, type, INVALID_TIMER)); //Hide skill-scream animation. map_freeblock_unlock(); return 0; } else if (tsc && tsc->option&OPTION_MADOGEAR) { //Mado Gear cannot hide - if (sd) clif_skill_fail(sd,skillid,USESKILL_FAIL_LEVEL,0); + if (sd) clif_skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0); map_freeblock_unlock(); return 0; } - clif_skill_nodamage(src,bl,skillid,-1,sc_start(bl,type,100,skilllv,skill_get_time(skillid,skilllv))); + clif_skill_nodamage(src,bl,skill_id,-1,sc_start(bl,type,100,skill_lv,skill_get_time(skill_id,skill_lv))); break; case TK_RUN: if (tsce) { - clif_skill_nodamage(src,bl,skillid,skilllv,status_change_end(bl, type, INVALID_TIMER)); + clif_skill_nodamage(src,bl,skill_id,skill_lv,status_change_end(bl, type, INVALID_TIMER)); map_freeblock_unlock(); return 0; } - clif_skill_nodamage(src,bl,skillid,skilllv,sc_start4(bl,type,100,skilllv,unit_getdir(bl),0,0,0)); + clif_skill_nodamage(src,bl,skill_id,skill_lv,sc_start4(bl,type,100,skill_lv,unit_getdir(bl),0,0,0)); if (sd) // If the client receives a skill-use packet inmediately before a walkok packet, it will discard the walk packet! [Skotlex] clif_walkok(sd); // So aegis has to resend the walk ok. break; @@ -5844,66 +5849,66 @@ if (tsce) { i = status_change_end(bl, type, INVALID_TIMER); if (i) - clif_skill_nodamage(src,bl,skillid,(skillid == LG_FORCEOFVANGUARD) ? skilllv : -1,i); + clif_skill_nodamage(src,bl,skill_id,(skill_id == LG_FORCEOFVANGUARD) ? skill_lv : -1,i); else if (sd) - clif_skill_fail(sd,skillid,USESKILL_FAIL_LEVEL,0); + clif_skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0); map_freeblock_unlock(); return 0; } case RA_CAMOUFLAGE: - i = sc_start(bl,type,100,skilllv,skill_get_time(skillid,skilllv)); + i = sc_start(bl,type,100,skill_lv,skill_get_time(skill_id,skill_lv)); if (i) - clif_skill_nodamage(src,bl,skillid,(skillid == LG_FORCEOFVANGUARD) ? skilllv : -1,i); + clif_skill_nodamage(src,bl,skill_id,(skill_id == LG_FORCEOFVANGUARD) ? skill_lv : -1,i); else if (sd) - clif_skill_fail(sd,skillid,USESKILL_FAIL_LEVEL,0); + clif_skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0); break; case BD_ADAPTATION: if (tsc && tsc->data[SC_DANCING]) { - clif_skill_nodamage(src,bl,skillid,skilllv,1); + clif_skill_nodamage(src,bl,skill_id,skill_lv,1); status_change_end(bl, SC_DANCING, INVALID_TIMER); } break; case BA_FROSTJOKER: case DC_SCREAM: - clif_skill_nodamage(src,bl,skillid,skilllv,1); - skill_addtimerskill(src,tick+2000,bl->id,src->x,src->y,skillid,skilllv,0,flag); + clif_skill_nodamage(src,bl,skill_id,skill_lv,1); + skill_addtimerskill(src,tick+2000,bl->id,src->x,src->y,skill_id,skill_lv,0,flag); if (md) { // custom hack to make the mob display the skill, because these skills don't show the skill use text themselves //NOTE: mobs don't have the sprite animation that is used when performing this skill (will cause glitches) char temp[70]; - snprintf(temp, sizeof(temp), "%s : %s !!",md->name,skill_db[skillid].desc); + snprintf(temp, sizeof(temp), "%s : %s !!",md->name,skill_db[skill_id].desc); clif_message(&md->bl,temp); } break; case BA_PANGVOICE: - clif_skill_nodamage(src,bl,skillid,skilllv, sc_start(bl,SC_CONFUSION,50,7,skill_get_time(skillid,skilllv))); + clif_skill_nodamage(src,bl,skill_id,skill_lv, sc_start(bl,SC_CONFUSION,50,7,skill_get_time(skill_id,skill_lv))); break; case DC_WINKCHARM: if (dstsd) - clif_skill_nodamage(src,bl,skillid,skilllv, sc_start(bl,SC_CONFUSION,30,7,skill_get_time2(skillid,skilllv))); + clif_skill_nodamage(src,bl,skill_id,skill_lv, sc_start(bl,SC_CONFUSION,30,7,skill_get_time2(skill_id,skill_lv))); else if (dstmd) { if (status_get_lv(src) > status_get_lv(bl) && (tstatus->race == RC_DEMON || tstatus->race == RC_DEMIHUMAN || tstatus->race == RC_ANGEL) && !(tstatus->mode&MD_BOSS)) - clif_skill_nodamage(src,bl,skillid,skilllv, sc_start2(bl,type,70,skilllv,src->id,skill_get_time(skillid,skilllv))); + clif_skill_nodamage(src,bl,skill_id,skill_lv, sc_start2(bl,type,70,skill_lv,src->id,skill_get_time(skill_id,skill_lv))); else { - clif_skill_nodamage(src,bl,skillid,skilllv,0); - if (sd) clif_skill_fail(sd,skillid,USESKILL_FAIL_LEVEL,0); + clif_skill_nodamage(src,bl,skill_id,skill_lv,0); + if (sd) clif_skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0); } } break; case TF_STEAL: if (sd) { - if (pc_steal_item(sd,bl,skilllv)) - clif_skill_nodamage(src,bl,skillid,skilllv,1); + if (pc_steal_item(sd,bl,skill_lv)) + clif_skill_nodamage(src,bl,skill_id,skill_lv,1); else - clif_skill_fail(sd,skillid,USESKILL_FAIL,0); + clif_skill_fail(sd,skill_id,USESKILL_FAIL,0); } break; @@ -5911,17 +5916,17 @@ if (sd) { if (pc_steal_coin(sd,bl)) { dstmd->state.provoke_flag = src->id; - mob_target(dstmd, src, skill_get_range2(src,skillid,skilllv)); - clif_skill_nodamage(src,bl,skillid,skilllv,1); + mob_target(dstmd, src, skill_get_range2(src,skill_id,skill_lv)); + clif_skill_nodamage(src,bl,skill_id,skill_lv,1); } else - clif_skill_fail(sd,skillid,USESKILL_FAIL_LEVEL,0); + clif_skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0); } break; case MG_STONECURSE: { if (tstatus->mode&MD_BOSS) { - if (sd) clif_skill_fail(sd,skillid,USESKILL_FAIL_LEVEL,0); + if (sd) clif_skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0); break; } if (status_isimmune(bl) || !tsc) @@ -5929,17 +5934,17 @@ if (tsc->data[SC_STONE]) { status_change_end(bl, SC_STONE, INVALID_TIMER); - if (sd) clif_skill_fail(sd,skillid,USESKILL_FAIL_LEVEL,0); + if (sd) clif_skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0); break; } - if (sc_start4(bl,SC_STONE,(skilllv*4+20), - skilllv, 0, 0, skill_get_time(skillid, skilllv), - skill_get_time2(skillid,skilllv))) - clif_skill_nodamage(src,bl,skillid,skilllv,1); + if (sc_start4(bl,SC_STONE,(skill_lv*4+20), + skill_lv, 0, 0, skill_get_time(skill_id, skill_lv), + skill_get_time2(skill_id,skill_lv))) + clif_skill_nodamage(src,bl,skill_id,skill_lv,1); else if (sd) { - clif_skill_fail(sd,skillid,USESKILL_FAIL_LEVEL,0); + clif_skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0); // Level 6-10 doesn't consume a red gem if it fails [celest] - if (skilllv > 5) { + if (skill_lv > 5) { // not to consume items map_freeblock_unlock(); return 0; @@ -5949,30 +5954,30 @@ break; case NV_FIRSTAID: - clif_skill_nodamage(src,bl,skillid,5,1); + clif_skill_nodamage(src,bl,skill_id,5,1); status_heal(bl,5,0,0); break; case AL_CURE: if (status_isimmune(bl)) { - clif_skill_nodamage(src,bl,skillid,skilllv,0); + clif_skill_nodamage(src,bl,skill_id,skill_lv,0); break; } status_change_end(bl, SC_SILENCE, INVALID_TIMER); status_change_end(bl, SC_BLIND, INVALID_TIMER); status_change_end(bl, SC_CONFUSION, INVALID_TIMER); - clif_skill_nodamage(src,bl,skillid,skilllv,1); + clif_skill_nodamage(src,bl,skill_id,skill_lv,1); break; case TF_DETOXIFY: - clif_skill_nodamage(src,bl,skillid,skilllv,1); + clif_skill_nodamage(src,bl,skill_id,skill_lv,1); status_change_end(bl, SC_POISON, INVALID_TIMER); status_change_end(bl, SC_DPOISON, INVALID_TIMER); break; case PR_STRECOVERY: if (status_isimmune(bl)) { - clif_skill_nodamage(src,bl,skillid,skilllv,0); + clif_skill_nodamage(src,bl,skill_id,skill_lv,0); break; } if (tsc && tsc->opt1) { @@ -5987,9 +5992,9 @@ status_change_start(bl, SC_BLIND, 100*(100-(tstatus->int_/2+tstatus->vit/3+tstatus->luk/10)), 1,0,0,0, - skill_get_time2(skillid, skilllv) * (100-(tstatus->int_+tstatus->vit)/2)/100,0); + skill_get_time2(skill_id, skill_lv) * (100-(tstatus->int_+tstatus->vit)/2)/100,0); } - clif_skill_nodamage(src,bl,skillid,skilllv,1); + clif_skill_nodamage(src,bl,skill_id,skill_lv,1); if (dstmd) mob_unlocktarget(dstmd,tick); break; @@ -5998,30 +6003,30 @@ case MER_BENEDICTION: status_change_end(bl, SC_CURSE, INVALID_TIMER); status_change_end(bl, SC_BLIND, INVALID_TIMER); - clif_skill_nodamage(src,bl,skillid,skilllv,1); + clif_skill_nodamage(src,bl,skill_id,skill_lv,1); break; case MER_COMPRESS: status_change_end(bl, SC_BLEEDING, INVALID_TIMER); - clif_skill_nodamage(src,bl,skillid,skilllv,1); + clif_skill_nodamage(src,bl,skill_id,skill_lv,1); break; case MER_MENTALCURE: status_change_end(bl, SC_CONFUSION, INVALID_TIMER); - clif_skill_nodamage(src,bl,skillid,skilllv,1); + clif_skill_nodamage(src,bl,skill_id,skill_lv,1); break; case MER_RECUPERATE: status_change_end(bl, SC_POISON, INVALID_TIMER); status_change_end(bl, SC_SILENCE, INVALID_TIMER); - clif_skill_nodamage(src,bl,skillid,skilllv,1); + clif_skill_nodamage(src,bl,skill_id,skill_lv,1); break; case MER_REGAIN: status_change_end(bl, SC_SLEEP, INVALID_TIMER); status_change_end(bl, SC_STUN, INVALID_TIMER); - clif_skill_nodamage(src,bl,skillid,skilllv,1); + clif_skill_nodamage(src,bl,skill_id,skill_lv,1); break; case MER_TENDER: status_change_end(bl, SC_FREEZE, INVALID_TIMER); status_change_end(bl, SC_STONE, INVALID_TIMER); - clif_skill_nodamage(src,bl,skillid,skilllv,1); + clif_skill_nodamage(src,bl,skill_id,skill_lv,1); break; case MER_SCAPEGOAT: @@ -6040,21 +6045,21 @@ break; if (dstsd) { // Fail on Players - clif_skill_fail(sd,skillid,USESKILL_FAIL_LEVEL,0); + clif_skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0); break; } if (dstmd && dstmd->class_ == MOBID_EMPERIUM) break; // Cannot be Used on Emperium - clif_skill_nodamage(src, bl, skillid, skilllv, 1); + clif_skill_nodamage(src, bl, skill_id, skill_lv, 1); clif_skill_estimation(sd, bl); - if (skillid == MER_ESTIMATION) + if (skill_id == MER_ESTIMATION) sd = NULL; break; case BS_REPAIRWEAPON: if (sd && dstsd) - clif_item_repair_list(sd,dstsd,skilllv); + clif_item_repair_list(sd,dstsd,skill_lv); break; case MC_IDENTIFY: @@ -6072,55 +6077,55 @@ if (sd) { //Prevent vending of GMs with unnecessary Level to trade/drop. [Skotlex] if (!pc_can_give_items(sd)) - clif_skill_fail(sd,skillid,USESKILL_FAIL_LEVEL,0); + clif_skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0); else { sd->state.prevend = 1; - clif_openvendingreq(sd,2+skilllv); + clif_openvendingreq(sd,2+skill_lv); } } break; case AL_TELEPORT: if (sd) { - if (map[bl->m].flag.noteleport && skilllv <= 2) { + if (map[bl->m].flag.noteleport && skill_lv <= 2) { clif_skill_teleportmessage(sd,0); break; } - if (!battle_config.duel_allow_teleport && sd->duel_group && skilllv <= 2) { // duel restriction [LuzZza] + if (!battle_config.duel_allow_teleport && sd->duel_group && skill_lv <= 2) { // duel restriction [LuzZza] char output[128]; sprintf(output, msg_txt(365), skill_get_name(AL_TELEPORT)); clif_displaymessage(sd->fd, output); //"Duel: Can't use %s in duel." break; } - if (sd->state.autocast || ((sd->skillitem == AL_TELEPORT || battle_config.skip_teleport_lv1_menu) && skilllv == 1) || skilllv == 3) { - if (skilllv == 1) + if (sd->state.autocast || ((sd->skillitem == AL_TELEPORT || battle_config.skip_teleport_lv1_menu) && skill_lv == 1) || skill_lv == 3) { + if (skill_lv == 1) pc_randomwarp(sd,CLR_TELEPORT); else pc_setpos(sd,sd->status.save_point.map,sd->status.save_point.x,sd->status.save_point.y,CLR_TELEPORT); break; } - clif_skill_nodamage(src,bl,skillid,skilllv,1); - if (skilllv == 1) - clif_skill_warppoint(sd,skillid,skilllv, (unsigned short)-1,0,0,0); + clif_skill_nodamage(src,bl,skill_id,skill_lv,1); + if (skill_lv == 1) + clif_skill_warppoint(sd,skill_id,skill_lv, (unsigned short)-1,0,0,0); else - clif_skill_warppoint(sd,skillid,skilllv, (unsigned short)-1,sd->status.save_point.map,0,0); + clif_skill_warppoint(sd,skill_id,skill_lv, (unsigned short)-1,sd->status.save_point.map,0,0); } else unit_warp(bl,-1,-1,-1,CLR_TELEPORT); break; case NPC_EXPULSION: - clif_skill_nodamage(src,bl,skillid,skilllv,1); + clif_skill_nodamage(src,bl,skill_id,skill_lv,1); unit_warp(bl,-1,-1,-1,CLR_TELEPORT); break; case AL_HOLYWATER: if (sd) { - if (skill_produce_mix(sd, skillid, 523, 0, 0, 0, 1)) - clif_skill_nodamage(src,bl,skillid,skilllv,1); + if (skill_produce_mix(sd, skill_id, 523, 0, 0, 0, 1)) + clif_skill_nodamage(src,bl,skill_id,skill_lv,1); else - clif_skill_fail(sd,skillid,USESKILL_FAIL_LEVEL,0); + clif_skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0); } break; @@ -6129,7 +6134,7 @@ int eflag; struct item item_tmp; struct block_list tbl; - clif_skill_nodamage(src,bl,skillid,skilllv,1); + clif_skill_nodamage(src,bl,skill_id,skill_lv,1); memset(&item_tmp,0,sizeof(item_tmp)); memset(&tbl,0,sizeof(tbl)); // [MouseJstr] item_tmp.nameid = ITEMID_STONE; @@ -6145,8 +6150,8 @@ break; case ASC_CDP: if (sd) { - clif_skill_nodamage(src,bl,skillid,skilllv,1); - skill_produce_mix(sd, skillid, 678, 0, 0, 0, 1); //Produce a Deadly Poison Bottle. + clif_skill_nodamage(src,bl,skill_id,skill_lv,1); + skill_produce_mix(sd, skill_id, 678, 0, 0, 0, 1); //Produce a Deadly Poison Bottle. } break; @@ -6161,29 +6166,29 @@ int d = 0; //Rate in percent - if (skillid == ST_FULLSTRIP) { - i = 5 + 2*skilllv + (sstatus->dex - tstatus->dex)/5; - } else if (skillid == SC_STRIPACCESSARY) { - i = 12 + 2 * skilllv + (sstatus->dex - tstatus->dex)/5; + if (skill_id == ST_FULLSTRIP) { + i = 5 + 2*skill_lv + (sstatus->dex - tstatus->dex)/5; + } else if (skill_id == SC_STRIPACCESSARY) { + i = 12 + 2 * skill_lv + (sstatus->dex - tstatus->dex)/5; } else { - i = 5 + 5*skilllv + (sstatus->dex - tstatus->dex)/5; + i = 5 + 5*skill_lv + (sstatus->dex - tstatus->dex)/5; } if (i < 5) i = 5; //Minimum rate 5% //Duration in ms - if (skillid == GC_WEAPONCRUSH) { - d = skill_get_time(skillid,skilllv); + if (skill_id == GC_WEAPONCRUSH) { + d = skill_get_time(skill_id,skill_lv); if (bl->type == BL_PC) - d += skilllv * 15 + (sstatus->dex - tstatus->dex); + d += skill_lv * 15 + (sstatus->dex - tstatus->dex); else - d += skilllv * 30 + (sstatus->dex - tstatus->dex) / 2; + d += skill_lv * 30 + (sstatus->dex - tstatus->dex) / 2; } else - d = skill_get_time(skillid,skilllv) + (sstatus->dex - tstatus->dex)*500; + d = skill_get_time(skill_id,skill_lv) + (sstatus->dex - tstatus->dex)*500; if (d < 0) d = 0; //Minimum duration 0ms - switch (skillid) { + switch (skill_id) { case RG_STRIPWEAPON: case GC_WEAPONCRUSH: location = EQP_WEAPON; @@ -6206,18 +6211,18 @@ } //Special message when trying to use strip on FCP [Jobbie] - if (sd && skillid == ST_FULLSTRIP && tsc && tsc->data[SC_CP_WEAPON] && tsc->data[SC_CP_HELM] && tsc->data[SC_CP_ARMOR] && tsc->data[SC_CP_SHIELD]) { + if (sd && skill_id == ST_FULLSTRIP && tsc && tsc->data[SC_CP_WEAPON] && tsc->data[SC_CP_HELM] && tsc->data[SC_CP_ARMOR] && tsc->data[SC_CP_SHIELD]) { clif_gospel_info(sd, 0x28); break; } //Attempts to strip at rate i and duration d - if ((i = skill_strip_equip(bl, location, i, skilllv, d)) || (skillid != ST_FULLSTRIP && skillid != GC_WEAPONCRUSH)) - clif_skill_nodamage(src,bl,skillid,skilllv,i); + if ((i = skill_strip_equip(bl, location, i, skill_lv, d)) || (skill_id != ST_FULLSTRIP && skill_id != GC_WEAPONCRUSH)) + clif_skill_nodamage(src,bl,skill_id,skill_lv,i); //Nothing stripped. if (sd && !i) - clif_skill_fail(sd,skillid,USESKILL_FAIL_LEVEL,0); + clif_skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0); break; } @@ -6229,21 +6234,21 @@ return 1; } if (sd) { - x = skilllv%11 - 1; - i = pc_search_inventory(sd,skill_db[skillid].itemid[x]); - if (i < 0 || skill_db[skillid].itemid[x] <= 0) { - clif_skill_fail(sd,skillid,USESKILL_FAIL_LEVEL,0); + x = skill_lv%11 - 1; + i = pc_search_inventory(sd,skill_db[skill_id].itemid[x]); + if (i < 0 || skill_db[skill_id].itemid[x] <= 0) { + clif_skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0); map_freeblock_unlock(); return 1; } - if (sd->inventory_data[i] == NULL || sd->status.inventory[i].amount < skill_db[skillid].amount[x]) { - clif_skill_fail(sd,skillid,USESKILL_FAIL_LEVEL,0); + if (sd->inventory_data[i] == NULL || sd->status.inventory[i].amount < skill_db[skill_id].amount[x]) { + clif_skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0); map_freeblock_unlock(); return 1; } - if (skillid == AM_BERSERKPITCHER) { + if (skill_id == AM_BERSERKPITCHER) { if (dstsd && dstsd->status.base_level < (unsigned int)sd->inventory_data[i]->elv) { - clif_skill_fail(sd,skillid,USESKILL_FAIL_LEVEL,0); + clif_skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0); map_freeblock_unlock(); return 1; } @@ -6282,17 +6287,17 @@ sp += sp * sd->itemgrouphealrate[IG_POTION] / 100; } - if ((i = pc_skillheal_bonus(sd, skillid))) { + if ((i = pc_skillheal_bonus(sd, skill_id))) { hp += hp * i / 100; sp += sp * i / 100; } } else { - hp = (1 + rnd()%400) * (100 + skilllv*10) / 100; + hp = (1 + rnd()%400) * (100 + skill_lv*10) / 100; hp = hp * (100 + (tstatus->vit<<1)) / 100; if (dstsd) hp = hp * (100 + pc_checkskill(dstsd,SM_RECOVERY)*10) / 100; } - if (dstsd && (i = pc_skillheal2_bonus(dstsd, skillid))) { + if (dstsd && (i = pc_skillheal2_bonus(dstsd, skill_id))) { hp += hp * i / 100; sp += sp * i / 100; } @@ -6310,8 +6315,8 @@ sp += sp / 10; } } - clif_skill_nodamage(src,bl,skillid,skilllv,1); - if (hp > 0 || (skillid == AM_POTIONPITCHER && sp <= 0)) + clif_skill_nodamage(src,bl,skill_id,skill_lv,1); + if (hp > 0 || (skill_id == AM_POTIONPITCHER && sp <= 0)) clif_skill_nodamage(NULL,bl,AL_HEAL,hp,1); if (sp > 0) clif_skill_nodamage(NULL,bl,MG_SRECOVERY,sp,1); @@ -6328,30 +6333,30 @@ case AM_CP_HELM: { unsigned int equip[] = {EQP_WEAPON, EQP_SHIELD, EQP_ARMOR, EQP_HEAD_TOP}; - if (sd && (bl->type != BL_PC || (dstsd && pc_checkequip(dstsd,equip[skillid - AM_CP_WEAPON]) < 0))) { - clif_skill_fail(sd,skillid,USESKILL_FAIL_LEVEL,0); + if (sd && (bl->type != BL_PC || (dstsd && pc_checkequip(dstsd,equip[skill_id - AM_CP_WEAPON]) < 0))) { + clif_skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0); map_freeblock_unlock(); // Don't consume item requirements return 0; } - clif_skill_nodamage(src,bl,skillid,skilllv, - sc_start(bl,type,100,skilllv,skill_get_time(skillid,skilllv))); + clif_skill_nodamage(src,bl,skill_id,skill_lv, + sc_start(bl,type,100,skill_lv,skill_get_time(skill_id,skill_lv))); } break; case AM_TWILIGHT1: if (sd) { - clif_skill_nodamage(src,bl,skillid,skilllv,1); + clif_skill_nodamage(src,bl,skill_id,skill_lv,1); //Prepare 200 White Potions. - if (!skill_produce_mix(sd, skillid, 504, 0, 0, 0, 200)) - clif_skill_fail(sd,skillid,USESKILL_FAIL_LEVEL,0); + if (!skill_produce_mix(sd, skill_id, 504, 0, 0, 0, 200)) + clif_skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0); } break; case AM_TWILIGHT2: if (sd) { - clif_skill_nodamage(src,bl,skillid,skilllv,1); + clif_skill_nodamage(src,bl,skill_id,skill_lv,1); //Prepare 200 Slim White Potions. - if (!skill_produce_mix(sd, skillid, 547, 0, 0, 0, 200)) - clif_skill_fail(sd,skillid,USESKILL_FAIL_LEVEL,0); + if (!skill_produce_mix(sd, skill_id, 547, 0, 0, 0, 200)) + clif_skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0); } break; case AM_TWILIGHT3: @@ -6365,24 +6370,24 @@ || !skill_can_produce_mix(sd,7135,-1, 50) //50 Flame Bottle || ebottle < 200 //200 empty bottle are required at total. ) { - clif_skill_fail(sd,skillid,USESKILL_FAIL_LEVEL,0); + clif_skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0); break; } - clif_skill_nodamage(src,bl,skillid,skilllv,1); - skill_produce_mix(sd, skillid, 970, 0, 0, 0, 100); - skill_produce_mix(sd, skillid, 7136, 0, 0, 0, 50); - skill_produce_mix(sd, skillid, 7135, 0, 0, 0, 50); + clif_skill_nodamage(src,bl,skill_id,skill_lv,1); + skill_produce_mix(sd, skill_id, 970, 0, 0, 0, 100); + skill_produce_mix(sd, skill_id, 7136, 0, 0, 0, 50); + skill_produce_mix(sd, skill_id, 7135, 0, 0, 0, 50); } break; case SA_DISPELL: - if (flag&1 || (i = skill_get_splash(skillid, skilllv)) < 1) { - clif_skill_nodamage(src,bl,skillid,skilllv,1); + if (flag&1 || (i = skill_get_splash(skill_id, skill_lv)) < 1) { + clif_skill_nodamage(src,bl,skill_id,skill_lv,1); if ((dstsd && (dstsd->class_&MAPID_UPPERMASK) == MAPID_SOUL_LINKER) || (tsc && tsc->data[SC_SPIRIT] && tsc->data[SC_SPIRIT]->val2 == SL_ROGUE) //Rogue's spirit defends againt dispel. - || rnd()%100 >= 50+10*skilllv + || rnd()%100 >= 50+10*skill_lv || (tsc && tsc->option&OPTION_MADOGEAR)) { //Mado Gear is immune to dispell according to bug report 49 [Ind] if (sd) - clif_skill_fail(sd,skillid,USESKILL_FAIL_LEVEL,0); + clif_skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0); break; } if (status_isimmune(bl) || !tsc || !tsc->count) @@ -6541,13 +6546,13 @@ } //Affect all targets on splash area. map_foreachinrange(skill_area_sub, bl, i, BL_CHAR, - src, skillid, skilllv, tick, flag|1, + src, skill_id, skill_lv, tick, flag|1, skill_castend_damage_id); break; case TF_BACKSLIDING: //This is the correct implementation as per packet logging information. [Skotlex] - clif_skill_nodamage(src,bl,skillid,skilllv,1); - skill_blown(src,bl,skill_get_blewcount(skillid,skilllv),unit_getdir(bl),0); + clif_skill_nodamage(src,bl,skill_id,skill_lv,1); + skill_blown(src,bl,skill_get_blewcount(skill_id,skill_lv),unit_getdir(bl),0); break; case TK_HIGHJUMP: { @@ -6560,11 +6565,11 @@ x = src->x; y = src->y; } else { - x = src->x + dirx[dir]*skilllv*2; - y = src->y + diry[dir]*skilllv*2; + x = src->x + dirx[dir]*skill_lv*2; + y = src->y + diry[dir]*skill_lv*2; } - clif_skill_nodamage(src,bl,TK_HIGHJUMP,skilllv,1); + clif_skill_nodamage(src,bl,TK_HIGHJUMP,skill_lv,1); if (!map_count_oncell(src->m,x,y,BL_PC|BL_NPC|BL_MOB) && map_getcell(src->m,x,y,CELL_CHKREACH)) { clif_slide(src,x,y); unit_movepos(src, x, y, 1, 0); @@ -6574,16 +6579,16 @@ case SA_CASTCANCEL: case SO_SPELLFIST: - clif_skill_nodamage(src,bl,skillid,skilllv,1); + clif_skill_nodamage(src,bl,skill_id,skill_lv,1); unit_skillcastcancel(src,1); if (sd) { int sp = skill_get_sp(sd->skillid_old,sd->skilllv_old); - if (skillid == SO_SPELLFIST) { - sc_start4(src,type,100,skilllv+1,skilllv,sd->skillid_old,sd->skilllv_old,skill_get_time(skillid,skilllv)); + if (skill_id == SO_SPELLFIST) { + sc_start4(src,type,100,skill_lv+1,skill_lv,sd->skillid_old,sd->skilllv_old,skill_get_time(skill_id,skill_lv)); sd->skillid_old = sd->skilllv_old = 0; break; } - sp = sp * (90 - (skilllv-1)*20) / 100; + sp = sp * (90 - (skill_lv-1)*20) / 100; if (sp < 0) sp = 0; status_zap(src, 0, sp); } @@ -6591,39 +6596,40 @@ case SA_SPELLBREAKER: { int sp; if (tsc && tsc->data[SC_MAGICROD]) { - sp = skill_get_sp(skillid,skilllv); + sp = skill_get_sp(skill_id,skill_lv); sp = sp * tsc->data[SC_MAGICROD]->val2 / 100; if (sp < 1) sp = 1; status_heal(bl,0,sp,2); status_percent_damage(bl, src, 0, -20, false); //20% max SP damage. } else { struct unit_data *ud = unit_bl2ud(bl); - int bl_skillid=0,bl_skilllv=0,hp = 0; + int bl_skillid=0,hp = 0; + short bl_skill_lv=0; if (!ud || ud->skilltimer == INVALID_TIMER) break; //Nothing to cancel. - bl_skillid = ud->skillid; - bl_skilllv = ud->skilllv; + bl_skillid = ud->skill_id; + bl_skill_lv = ud->skill_lv; if (tstatus->mode & MD_BOSS) { //Only 10% success chance against bosses. [Skotlex] if (rnd()%100 < 90) { - if (sd) clif_skill_fail(sd,skillid,USESKILL_FAIL_LEVEL,0); + if (sd) clif_skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0); break; } } else if (!dstsd || map_flag_vs(bl->m)) //HP damage only on pvp-maps when against players. hp = tstatus->max_hp/50; //Recover 2% HP [Skotlex] - clif_skill_nodamage(src,bl,skillid,skilllv,1); + clif_skill_nodamage(src,bl,skill_id,skill_lv,1); unit_skillcastcancel(bl,0); - sp = skill_get_sp(bl_skillid,bl_skilllv); + sp = skill_get_sp(bl_skillid,bl_skill_lv); status_zap(bl, hp, sp); - if (hp && skilllv >= 5) + if (hp && skill_lv >= 5) hp>>=1; //Recover half damaged HP at level 5 [Skotlex] else hp = 0; if (sp) //Recover some of the SP used - sp = sp*(25*(skilllv-1))/100; + sp = sp*(25*(skill_lv-1))/100; if (hp || sp) status_heal(src, hp, sp, 2); @@ -6631,47 +6637,47 @@ } break; case SA_MAGICROD: - clif_skill_nodamage(src,src,SA_MAGICROD,skilllv,1); - sc_start(bl,type,100,skilllv,skill_get_time(skillid,skilllv)); + clif_skill_nodamage(src,src,SA_MAGICROD,skill_lv,1); + sc_start(bl,type,100,skill_lv,skill_get_time(skill_id,skill_lv)); break; case SA_AUTOSPELL: - clif_skill_nodamage(src,bl,skillid,skilllv,1); + clif_skill_nodamage(src,bl,skill_id,skill_lv,1); if (sd) - clif_autospell(sd,skilllv); + clif_autospell(sd,skill_lv); else { int maxlv=1,spellid=0; static const int spellarray[3] = { MG_COLDBOLT,MG_FIREBOLT,MG_LIGHTNINGBOLT }; - if (skilllv >= 10) { + if (skill_lv >= 10) { spellid = MG_FROSTDIVER; // if (tsc && tsc->data[SC_SPIRIT] && tsc->data[SC_SPIRIT]->val2 == SA_SAGE) // maxlv = 10; // else - maxlv = skilllv - 9; - } else if (skilllv >=8) { + maxlv = skill_lv - 9; + } else if (skill_lv >=8) { spellid = MG_FIREBALL; - maxlv = skilllv - 7; - } else if (skilllv >=5) { + maxlv = skill_lv - 7; + } else if (skill_lv >=5) { spellid = MG_SOULSTRIKE; - maxlv = skilllv - 4; - } else if (skilllv >=2) { + maxlv = skill_lv - 4; + } else if (skill_lv >=2) { int i = rnd()%3; spellid = spellarray[i]; - maxlv = skilllv - 1; - } else if (skilllv > 0) { + maxlv = skill_lv - 1; + } else if (skill_lv > 0) { spellid = MG_NAPALMBEAT; maxlv = 3; } if (spellid > 0) - sc_start4(src,SC_AUTOSPELL,100,skilllv,spellid,maxlv,0, - skill_get_time(SA_AUTOSPELL,skilllv)); + sc_start4(src,SC_AUTOSPELL,100,skill_lv,spellid,maxlv,0, + skill_get_time(SA_AUTOSPELL,skill_lv)); } break; case BS_GREED: if (sd) { - clif_skill_nodamage(src,bl,skillid,skilllv,1); + clif_skill_nodamage(src,bl,skill_id,skill_lv,1); map_foreachinrange(skill_greed,bl, - skill_get_splash(skillid, skilllv),BL_ITEM,bl); + skill_get_splash(skill_id, skill_lv),BL_ITEM,bl); } break; @@ -6692,30 +6698,30 @@ case NPC_CHANGEHOLY: case NPC_CHANGEDARKNESS: case NPC_CHANGETELEKINESIS: - clif_skill_nodamage(src,bl,skillid,skilllv, - sc_start2(bl, type, 100, skilllv, skill_get_ele(skillid,skilllv), - skill_get_time(skillid, skilllv))); + clif_skill_nodamage(src,bl,skill_id,skill_lv, + sc_start2(bl, type, 100, skill_lv, skill_get_ele(skill_id,skill_lv), + skill_get_time(skill_id, skill_lv))); break; case NPC_CHANGEUNDEAD: //This skill should fail if target is wearing bathory/evil druid card [Brainstorm] //TO-DO This is ugly, fix it if (tstatus->def_ele==ELE_UNDEAD || tstatus->def_ele==ELE_DARK) break; - clif_skill_nodamage(src,bl,skillid,skilllv, - sc_start2(bl, type, 100, skilllv, skill_get_ele(skillid,skilllv), - skill_get_time(skillid, skilllv))); + clif_skill_nodamage(src,bl,skill_id,skill_lv, + sc_start2(bl, type, 100, skill_lv, skill_get_ele(skill_id,skill_lv), + skill_get_time(skill_id, skill_lv))); break; case NPC_PROVOCATION: - clif_skill_nodamage(src,bl,skillid,skilllv,1); + clif_skill_nodamage(src,bl,skill_id,skill_lv,1); if (md) mob_unlocktarget(md, tick); break; case NPC_KEEPING: case NPC_BARRIER: { - int skill_time = skill_get_time(skillid,skilllv); + int skill_time = skill_get_time(skill_id,skill_lv); struct unit_data *ud = unit_bl2ud(bl); - if (clif_skill_nodamage(src,bl,skillid,skilllv, - sc_start(bl,type,100,skilllv,skill_time)) + if (clif_skill_nodamage(src,bl,skill_id,skill_lv, + sc_start(bl,type,100,skill_lv,skill_time)) && ud) { //Disable attacking/acting/moving for skill's duration. ud->attackabletime = ud->canact_tick = @@ -6727,29 +6733,29 @@ case NPC_REBIRTH: if (md && md->state.rebirth) break; // only works once - sc_start(bl,type,100,skilllv,-1); + sc_start(bl,type,100,skill_lv,-1); break; case NPC_DARKBLESSING: - clif_skill_nodamage(src,bl,skillid,skilllv, - sc_start2(bl,type,(50+skilllv*5),skilllv,skilllv,skill_get_time2(skillid,skilllv))); + clif_skill_nodamage(src,bl,skill_id,skill_lv, + sc_start2(bl,type,(50+skill_lv*5),skill_lv,skill_lv,skill_get_time2(skill_id,skill_lv))); break; case NPC_LICK: status_zap(bl, 0, 100); - clif_skill_nodamage(src,bl,skillid,skilllv, - sc_start(bl,type,(skilllv*5),skilllv,skill_get_time2(skillid,skilllv))); + clif_skill_nodamage(src,bl,skill_id,skill_lv, + sc_start(bl,type,(skill_lv*5),skill_lv,skill_get_time2(skill_id,skill_lv))); break; case NPC_SUICIDE: - clif_skill_nodamage(src,bl,skillid,skilllv,1); + clif_skill_nodamage(src,bl,skill_id,skill_lv,1); status_kill(src); //When suiciding, neither exp nor drops is given. break; case NPC_SUMMONSLAVE: case NPC_SUMMONMONSTER: if (md && md->skillidx >= 0) - mob_summonslave(md,md->db->skill[md->skillidx].val,skilllv,skillid); + mob_summonslave(md,md->db->skill[md->skillidx].val,skill_lv,skill_id); break; case NPC_CALLSLAVE: @@ -6765,11 +6771,11 @@ case NPC_SPEEDUP: { // or does it increase casting rate? just a guess xD - int i = SC_ASPDPOTION0 + skilllv - 1; + int i = SC_ASPDPOTION0 + skill_lv - 1; if (i > SC_ASPDPOTION3) i = SC_ASPDPOTION3; - clif_skill_nodamage(src,bl,skillid,skilllv, - sc_start(bl,(sc_type)i,100,skilllv,skilllv * 60000)); + clif_skill_nodamage(src,bl,skill_id,skill_lv, + sc_start(bl,(sc_type)i,100,skill_lv,skill_lv * 60000)); } break; @@ -6790,7 +6796,7 @@ int dir = (bl == src)?unit_getdir(src):map_calc_dir(src,bl->x,bl->y); //If cast on self, run forward, else run away. unit_stop_attack(src); //Run skillv tiles overriding the can-move check. - if (unit_walktoxy(src, src->x + skilllv * mask[dir][0], src->y + skilllv * mask[dir][1], 2) && md) + if (unit_walktoxy(src, src->x + skill_lv * mask[dir][0], src->y + skill_lv * mask[dir][1], 2) && md) md->state.skillstate = MSS_WALK; //Otherwise it isn't updated in the ai. } break; @@ -6798,9 +6804,9 @@ case NPC_TRANSFORMATION: case NPC_METAMORPHOSIS: if (md && md->skillidx >= 0) { - int class_ = mob_random_class(md->db->skill[md->skillidx].val,0); - if (skilllv > 1) //Multiply the rest of mobs. [Skotlex] - mob_summonslave(md,md->db->skill[md->skillidx].val,skilllv-1,skillid); + short class_ = mob_random_class(md->db->skill[md->skillidx].val,0); + if (skill_lv > 1) //Multiply the rest of mobs. [Skotlex] + mob_summonslave(md,md->db->skill[md->skillidx].val,skill_lv-1,skill_id); if (class_) mob_class_change(md, class_); } break; @@ -6819,47 +6825,47 @@ status_change_end(bl, type, INVALID_TIMER); if (md->db->skill[md->skillidx].val[1] || md->db->skill[md->skillidx].val[2]) - sc_start4(src, type, 100, skilllv, + sc_start4(src, type, 100, skill_lv, md->db->skill[md->skillidx].val[1], md->db->skill[md->skillidx].val[2], md->db->skill[md->skillidx].val[3], - skill_get_time(skillid, skilllv)); + skill_get_time(skill_id, skill_lv)); } break; case NPC_POWERUP: - sc_start(bl,SC_INCATKRATE,100,200,skill_get_time(skillid, skilllv)); - clif_skill_nodamage(src,bl,skillid,skilllv, - sc_start(bl,type,100,100,skill_get_time(skillid, skilllv))); + sc_start(bl,SC_INCATKRATE,100,200,skill_get_time(skill_id, skill_lv)); + clif_skill_nodamage(src,bl,skill_id,skill_lv, + sc_start(bl,type,100,100,skill_get_time(skill_id, skill_lv))); break; case NPC_AGIUP: - sc_start(bl,SC_SPEEDUP1,100,skilllv,skill_get_time(skillid, skilllv)); - clif_skill_nodamage(src,bl,skillid,skilllv, - sc_start(bl,type,100,100,skill_get_time(skillid, skilllv))); + sc_start(bl,SC_SPEEDUP1,100,skill_lv,skill_get_time(skill_id, skill_lv)); + clif_skill_nodamage(src,bl,skill_id,skill_lv, + sc_start(bl,type,100,100,skill_get_time(skill_id, skill_lv))); break; case NPC_INVISIBLE: //Have val4 passed as 6 is for "infinite cloak" (do not end on attack/skill use). - clif_skill_nodamage(src,bl,skillid,skilllv, - sc_start4(bl,type,100,skilllv,0,0,6,skill_get_time(skillid,skilllv))); + clif_skill_nodamage(src,bl,skill_id,skill_lv, + sc_start4(bl,type,100,skill_lv,0,0,6,skill_get_time(skill_id,skill_lv))); break; case NPC_SIEGEMODE: // not sure what it does - clif_skill_nodamage(src,bl,skillid,skilllv,1); + clif_skill_nodamage(src,bl,skill_id,skill_lv,1); break; case WE_MALE: { - int hp_rate=(skilllv <= 0)? 0:skill_db[skillid].hp_rate[skilllv-1]; + int hp_rate=(skill_lv <= 0)? 0:skill_db[skill_id].hp_rate[skill_lv-1]; int gain_hp= tstatus->max_hp*abs(hp_rate)/100; // The earned is the same % of the target HP than it costed the caster. [Skotlex] - clif_skill_nodamage(src,bl,skillid,status_heal(bl, gain_hp, 0, 0),1); + clif_skill_nodamage(src,bl,skill_id,status_heal(bl, gain_hp, 0, 0),1); } break; case WE_FEMALE: { - int sp_rate=(skilllv <= 0)? 0:skill_db[skillid].sp_rate[skilllv-1]; + int sp_rate=(skill_lv <= 0)? 0:skill_db[skill_id].sp_rate[skill_lv-1]; int gain_sp=tstatus->max_sp*abs(sp_rate)/100;// The earned is the same % of the target SP than it costed the caster. [Skotlex] - clif_skill_nodamage(src,bl,skillid,status_heal(bl, 0, gain_sp, 0),1); + clif_skill_nodamage(src,bl,skill_id,status_heal(bl, 0, gain_sp, 0),1); } break; @@ -6870,25 +6876,25 @@ struct map_session_data *m_sd = pc_get_mother(sd); // if neither was found if (!f_sd && !m_sd) { - clif_skill_fail(sd,skillid,USESKILL_FAIL_LEVEL,0); + clif_skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0); map_freeblock_unlock(); return 0; } - status_change_start(bl,SC_STUN,10000,skilllv,0,0,0,skill_get_time2(skillid,skilllv),8); - if (f_sd) sc_start(&f_sd->bl,type,100,skilllv,skill_get_time(skillid,skilllv)); - if (m_sd) sc_start(&m_sd->bl,type,100,skilllv,skill_get_time(skillid,skilllv)); + status_change_start(bl,SC_STUN,10000,skill_lv,0,0,0,skill_get_time2(skill_id,skill_lv),8); + if (f_sd) sc_start(&f_sd->bl,type,100,skill_lv,skill_get_time(skill_id,skill_lv)); + if (m_sd) sc_start(&m_sd->bl,type,100,skill_lv,skill_get_time(skill_id,skill_lv)); } break; case PF_HPCONVERSION: { int hp, sp; hp = sstatus->max_hp/10; - sp = hp * 10 * skilllv / 100; + sp = hp * 10 * skill_lv / 100; if (!status_charge(src,hp,0)) { - if (sd) clif_skill_fail(sd,skillid,USESKILL_FAIL_LEVEL,0); + if (sd) clif_skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0); break; } - clif_skill_nodamage(src, bl, skillid, skilllv, 1); + clif_skill_nodamage(src, bl, skill_id, skill_lv, 1); status_heal(bl,0,sp,2); } break; @@ -6902,7 +6908,7 @@ // Mercenaries can remove any trap // Players can only remove their own traps or traps on Vs maps. if (su && (sg = su->group) && (src->type == BL_MER || sg->src_id == src->id || map_flag_vs(bl->m)) && (skill_get_inf2(sg->skill_id)&INF2_TRAP)) { - clif_skill_nodamage(src, bl, skillid, skilllv, 1); + clif_skill_nodamage(src, bl, skill_id, skill_lv, 1); if (sd && !(sg->unit_id == UNT_USED_TRAPS || (sg->unit_id == UNT_ANKLESNARE && sg->val2 != 0))) { // prevent picking up expired traps if (battle_config.skill_removetrap_type) { @@ -6934,12 +6940,12 @@ } skill_delunit(su); } else if (sd) - clif_skill_fail(sd, skillid, USESKILL_FAIL_LEVEL, 0); + clif_skill_fail(sd, skill_id, USESKILL_FAIL_LEVEL, 0); } break; case HT_SPRINGTRAP: - clif_skill_nodamage(src,bl,skillid,skilllv,1); + clif_skill_nodamage(src,bl,skill_id,skill_lv,1); { struct skill_unit *su=NULL; if ((bl->type==BL_SKILL) && (su=(struct skill_unit *)bl) && (su->group)) { @@ -6968,7 +6974,7 @@ } break; case BD_ENCORE: - clif_skill_nodamage(src,bl,skillid,skilllv,1); + clif_skill_nodamage(src,bl,skill_id,skill_lv,1); if (sd) unit_skilluse_id(src,src->id,sd->skillid_dance,sd->skilllv_dance); break; @@ -6982,13 +6988,13 @@ || tstatus-> hp > tstatus->max_hp*3/4 #endif ) { - if (sd) clif_skill_fail(sd,skillid,USESKILL_FAIL_LEVEL,0); + if (sd) clif_skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0); map_freeblock_unlock(); return 1; } - clif_skill_nodamage(src,bl,skillid,skilllv, - sc_start4(bl,type,100,skilllv,skillid,src->id,skill_get_time(skillid,skilllv),1000)); - if (sd) skill_blockpc_start(sd, skillid, skill_get_time(skillid, skilllv)+3000); + clif_skill_nodamage(src,bl,skill_id,skill_lv, + sc_start4(bl,type,100,skill_lv,skill_id,src->id,skill_get_time(skill_id,skill_lv),1000)); + if (sd) skill_blockpc_start(sd, skill_id, skill_get_time(skill_id, skill_lv)+3000); break; case PF_MINDBREAKER: { @@ -7005,9 +7011,9 @@ } //Has a 55% + skilllv*5% success chance. - if (!clif_skill_nodamage(src,bl,skillid,skilllv, - sc_start(bl,type,55+5*skilllv,skilllv,skill_get_time(skillid,skilllv)))) { - if (sd) clif_skill_fail(sd,skillid,USESKILL_FAIL_LEVEL,0); + if (!clif_skill_nodamage(src,bl,skill_id,skill_lv, + sc_start(bl,type,55+5*skill_lv,skill_lv,skill_get_time(skill_id,skill_lv)))) { + if (sd) clif_skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0); map_freeblock_unlock(); return 0; } @@ -7022,7 +7028,7 @@ } if (dstmd) - mob_target(dstmd,src,skill_get_range2(src,skillid,skilllv)); + mob_target(dstmd,src,skill_get_range2(src,skill_id,skill_lv)); } break; @@ -7030,13 +7036,13 @@ unsigned int sp1 = 0, sp2 = 0; if (dstmd) { if (dstmd->state.soul_change_flag) { - if (sd) clif_skill_fail(sd,skillid,USESKILL_FAIL_LEVEL,0); + if (sd) clif_skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0); break; } dstmd->state.soul_change_flag = 1; sp2 = sstatus->max_sp * 3 /100; status_heal(src, 0, sp2, 2); - clif_skill_nodamage(src,bl,skillid,skilllv,1); + clif_skill_nodamage(src,bl,skill_id,skill_lv,1); break; } sp1 = sstatus->sp; @@ -7049,7 +7055,7 @@ #endif status_set_sp(src, sp2, 3); status_set_sp(bl, sp1, 3); - clif_skill_nodamage(src,bl,skillid,skilllv,1); + clif_skill_nodamage(src,bl,skill_id,skill_lv,1); } break; @@ -7064,9 +7070,9 @@ sp = sp * (100 + (tstatus->int_<<1))/100; if (dstsd) { if (hp) - hp = hp * (100 + pc_checkskill(dstsd,SM_RECOVERY)*10 + pc_skillheal2_bonus(dstsd, skillid))/100; + hp = hp * (100 + pc_checkskill(dstsd,SM_RECOVERY)*10 + pc_skillheal2_bonus(dstsd, skill_id))/100; if (sp) - sp = sp * (100 + pc_checkskill(dstsd,MG_SRECOVERY)*10 + pc_skillheal2_bonus(dstsd, skillid))/100; + sp = sp * (100 + pc_checkskill(dstsd,MG_SRECOVERY)*10 + pc_skillheal2_bonus(dstsd, skill_id))/100; } if (tsc && tsc->count) { if (tsc->data[SC_CRITICALWOUND]) { @@ -7092,46 +7098,46 @@ // Full Chemical Protection case CR_FULLPROTECTION: { unsigned int equip[] = {EQP_WEAPON, EQP_SHIELD, EQP_ARMOR, EQP_HEAD_TOP}; - int i, s = 0, skilltime = skill_get_time(skillid,skilllv); + int i, s = 0, skilltime = skill_get_time(skill_id,skill_lv); for (i=0 ; i<4; i++) { if (bl->type != BL_PC || (dstsd && pc_checkequip(dstsd,equip[i]) < 0)) continue; - sc_start(bl,(sc_type)(SC_CP_WEAPON + i),100,skilllv,skilltime); + sc_start(bl,(sc_type)(SC_CP_WEAPON + i),100,skill_lv,skilltime); s++; } if (sd && !s) { - clif_skill_fail(sd,skillid,USESKILL_FAIL_LEVEL,0); + clif_skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0); map_freeblock_unlock(); // Don't consume item requirements return 0; } - clif_skill_nodamage(src,bl,skillid,skilllv,1); + clif_skill_nodamage(src,bl,skill_id,skill_lv,1); } break; case RG_CLEANER: //AppleGirl - clif_skill_nodamage(src,bl,skillid,skilllv,1); + clif_skill_nodamage(src,bl,skill_id,skill_lv,1); break; case CG_LONGINGFREEDOM: { if (tsc && !tsce && (tsce=tsc->data[SC_DANCING]) && tsce->val4 && (tsce->val1&0xFFFF) != CG_MOONLIT) { //Can't use Longing for Freedom while under Moonlight Petals. [Skotlex] - clif_skill_nodamage(src,bl,skillid,skilllv, - sc_start(bl,type,100,skilllv,skill_get_time(skillid,skilllv))); + clif_skill_nodamage(src,bl,skill_id,skill_lv, + sc_start(bl,type,100,skill_lv,skill_get_time(skill_id,skill_lv))); } } break; case CG_TAROTCARD: { int eff, count = -1; - if (rnd() % 100 > skilllv * 8 || (dstmd && ((dstmd->guardian_data && dstmd->class_ == MOBID_EMPERIUM) || mob_is_battleground(dstmd)))) { + if (rnd() % 100 > skill_lv * 8 || (dstmd && ((dstmd->guardian_data && dstmd->class_ == MOBID_EMPERIUM) || mob_is_battleground(dstmd)))) { if (sd) - clif_skill_fail(sd,skillid,USESKILL_FAIL_LEVEL,0); + clif_skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0); map_freeblock_unlock(); return 0; } - status_zap(src,0,skill_db[skill_get_index(skillid)].sp[skilllv]); // consume sp only if succeeded [Inkfish] + status_zap(src,0,skill_db[skill_get_index(skill_id)].sp[skill_lv]); // consume sp only if succeeded [Inkfish] do { eff = rnd() % 14; clif_specialeffect(bl, 523 + eff, AREA); @@ -7140,7 +7146,7 @@ status_percent_damage(src, bl, 0, 100, false); break; case 1: // matk halved - sc_start(bl,SC_INCMATKRATE,100,-50,skill_get_time2(skillid,skilllv)); + sc_start(bl,SC_INCMATKRATE,100,-50,skill_get_time2(skill_id,skill_lv)); break; case 2: // all buffs removed status_change_clear_buffs(bl,1); @@ -7154,7 +7160,7 @@ } break; case 4: // atk halved - sc_start(bl,SC_INCATKRATE,100,-50,skill_get_time2(skillid,skilllv)); + sc_start(bl,SC_INCATKRATE,100,-50,skill_get_time2(skill_id,skill_lv)); break; case 5: // 2000HP heal, random teleported status_heal(src, 2000, 0, 0); @@ -7169,43 +7175,43 @@ break; case 7: { // stop freeze or stoned enum sc_type sc[] = { SC_STOP, SC_FREEZE, SC_STONE }; - sc_start(bl,sc[rnd()%3],100,skilllv,skill_get_time2(skillid,skilllv)); + sc_start(bl,sc[rnd()%3],100,skill_lv,skill_get_time2(skill_id,skill_lv)); } break; case 8: // curse coma and poison - sc_start(bl,SC_COMA,100,skilllv,skill_get_time2(skillid,skilllv)); - sc_start(bl,SC_CURSE,100,skilllv,skill_get_time2(skillid,skilllv)); - sc_start(bl,SC_POISON,100,skilllv,skill_get_time2(skillid,skilllv)); + sc_start(bl,SC_COMA,100,skill_lv,skill_get_time2(skill_id,skill_lv)); + sc_start(bl,SC_CURSE,100,skill_lv,skill_get_time2(skill_id,skill_lv)); + sc_start(bl,SC_POISON,100,skill_lv,skill_get_time2(skill_id,skill_lv)); break; case 9: // confusion - sc_start(bl,SC_CONFUSION,100,skilllv,skill_get_time2(skillid,skilllv)); + sc_start(bl,SC_CONFUSION,100,skill_lv,skill_get_time2(skill_id,skill_lv)); break; case 10: // 6666 damage, atk matk halved, cursed status_fix_damage(src, bl, 6666, 0); clif_damage(src,bl,tick,0,0,6666,0,0,0); - sc_start(bl,SC_INCATKRATE,100,-50,skill_get_time2(skillid,skilllv)); - sc_start(bl,SC_INCMATKRATE,100,-50,skill_get_time2(skillid,skilllv)); - sc_start(bl,SC_CURSE,skilllv,100,skill_get_time2(skillid,skilllv)); + sc_start(bl,SC_INCATKRATE,100,-50,skill_get_time2(skill_id,skill_lv)); + sc_start(bl,SC_INCMATKRATE,100,-50,skill_get_time2(skill_id,skill_lv)); + sc_start(bl,SC_CURSE,skill_lv,100,skill_get_time2(skill_id,skill_lv)); break; case 11: // 4444 damage status_fix_damage(src, bl, 4444, 0); clif_damage(src,bl,tick,0,0,4444,0,0,0); break; case 12: // stun - sc_start(bl,SC_STUN,100,skilllv,5000); + sc_start(bl,SC_STUN,100,skill_lv,5000); break; case 13: // atk,matk,hit,flee,def reduced - sc_start(bl,SC_INCATKRATE,100,-20,skill_get_time2(skillid,skilllv)); - sc_start(bl,SC_INCMATKRATE,100,-20,skill_get_time2(skillid,skilllv)); - sc_start(bl,SC_INCHITRATE,100,-20,skill_get_time2(skillid,skilllv)); - sc_start(bl,SC_INCFLEERATE,100,-20,skill_get_time2(skillid,skilllv)); - sc_start(bl,SC_INCDEFRATE,100,-20,skill_get_time2(skillid,skilllv)); + sc_start(bl,SC_INCATKRATE,100,-20,skill_get_time2(skill_id,skill_lv)); + sc_start(bl,SC_INCMATKRATE,100,-20,skill_get_time2(skill_id,skill_lv)); + sc_start(bl,SC_INCHITRATE,100,-20,skill_get_time2(skill_id,skill_lv)); + sc_start(bl,SC_INCFLEERATE,100,-20,skill_get_time2(skill_id,skill_lv)); + sc_start(bl,SC_INCDEFRATE,100,-20,skill_get_time2(skill_id,skill_lv)); break; default: break; } } while ((--count) > 0); - clif_skill_nodamage(src,bl,skillid,skilllv,1); + clif_skill_nodamage(src,bl,skill_id,skill_lv,1); } break; @@ -7226,74 +7232,74 @@ case SL_WIZARD: //NOTE: here, 'type' has the value of the associated MAPID, not of the SC_SPIRIT constant. if (sd && !(dstsd && (dstsd->class_&MAPID_UPPERMASK) == type)) { - clif_skill_fail(sd,skillid,USESKILL_FAIL_LEVEL,0); + clif_skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0); break; } - if (skillid == SL_SUPERNOVICE && dstsd && dstsd->die_counter && !(rnd()%100)) { + if (skill_id == SL_SUPERNOVICE && dstsd && dstsd->die_counter && !(rnd()%100)) { //Erase death count 1% of the casts dstsd->die_counter = 0; pc_setglobalreg(dstsd,"PC_DIE_COUNTER", 0); clif_specialeffect(bl, 0x152, AREA); //SC_SPIRIT invokes status_calc_pc for us. } - clif_skill_nodamage(src,bl,skillid,skilllv, - sc_start4(bl,SC_SPIRIT,100,skilllv,skillid,0,0,skill_get_time(skillid,skilllv))); - sc_start(src,SC_SMA,100,skilllv,skill_get_time(SL_SMA,skilllv)); + clif_skill_nodamage(src,bl,skill_id,skill_lv, + sc_start4(bl,SC_SPIRIT,100,skill_lv,skill_id,0,0,skill_get_time(skill_id,skill_lv))); + sc_start(src,SC_SMA,100,skill_lv,skill_get_time(SL_SMA,skill_lv)); break; case SL_HIGH: if (sd && !(dstsd && (dstsd->class_&JOBL_UPPER) && !(dstsd->class_&JOBL_2) && dstsd->status.base_level < 70)) { - clif_skill_fail(sd,skillid,USESKILL_FAIL_LEVEL,0); + clif_skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0); break; } - clif_skill_nodamage(src,bl,skillid,skilllv, - sc_start4(bl,type,100,skilllv,skillid,0,0,skill_get_time(skillid,skilllv))); - sc_start(src,SC_SMA,100,skilllv,skill_get_time(SL_SMA,skilllv)); + clif_skill_nodamage(src,bl,skill_id,skill_lv, + sc_start4(bl,type,100,skill_lv,skill_id,0,0,skill_get_time(skill_id,skill_lv))); + sc_start(src,SC_SMA,100,skill_lv,skill_get_time(SL_SMA,skill_lv)); break; case SL_SWOO: if (tsce) { - sc_start(src,SC_STUN,100,skilllv,10000); + sc_start(src,SC_STUN,100,skill_lv,10000); break; } case SL_SKA: // [marquis007] case SL_SKE: if (sd && !battle_config.allow_es_magic_pc && bl->type != BL_MOB) { - clif_skill_fail(sd,skillid,USESKILL_FAIL_LEVEL,0); - status_change_start(src,SC_STUN,10000,skilllv,0,0,0,500,10); + clif_skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0); + status_change_start(src,SC_STUN,10000,skill_lv,0,0,0,500,10); break; } - clif_skill_nodamage(src,bl,skillid,skilllv,sc_start(bl,type,100,skilllv,skill_get_time(skillid,skilllv))); - if (skillid == SL_SKE) - sc_start(src,SC_SMA,100,skilllv,skill_get_time(SL_SMA,skilllv)); + clif_skill_nodamage(src,bl,skill_id,skill_lv,sc_start(bl,type,100,skill_lv,skill_get_time(skill_id,skill_lv))); + if (skill_id == SL_SKE) + sc_start(src,SC_SMA,100,skill_lv,skill_get_time(SL_SMA,skill_lv)); break; // New guild skills [Celest] case GD_BATTLEORDER: if (flag&1) { if (status_get_guild_id(src) == status_get_guild_id(bl)) - sc_start(bl,type,100,skilllv,skill_get_time(skillid, skilllv)); + sc_start(bl,type,100,skill_lv,skill_get_time(skill_id, skill_lv)); } else if (status_get_guild_id(src)) { - clif_skill_nodamage(src,bl,skillid,skilllv,1); + clif_skill_nodamage(src,bl,skill_id,skill_lv,1); map_foreachinrange(skill_area_sub, src, - skill_get_splash(skillid, skilllv), BL_PC, - src,skillid,skilllv,tick, flag|BCT_GUILD|1, + skill_get_splash(skill_id, skill_lv), BL_PC, + src,skill_id,skill_lv,tick, flag|BCT_GUILD|1, skill_castend_nodamage_id); if (sd) - guild_block_skill(sd,skill_get_time2(skillid,skilllv)); + guild_block_skill(sd,skill_get_time2(skill_id,skill_lv)); } break; case GD_REGENERATION: if (flag&1) { if (status_get_guild_id(src) == status_get_guild_id(bl)) - sc_start(bl,type,100,skilllv,skill_get_time(skillid, skilllv)); + sc_start(bl,type,100,skill_lv,skill_get_time(skill_id, skill_lv)); } else if (status_get_guild_id(src)) { - clif_skill_nodamage(src,bl,skillid,skilllv,1); + clif_skill_nodamage(src,bl,skill_id,skill_lv,1); map_foreachinrange(skill_area_sub, src, - skill_get_splash(skillid, skilllv), BL_PC, - src,skillid,skilllv,tick, flag|BCT_GUILD|1, + skill_get_splash(skill_id, skill_lv), BL_PC, + src,skill_id,skill_lv,tick, flag|BCT_GUILD|1, skill_castend_nodamage_id); if (sd) - guild_block_skill(sd,skill_get_time2(skillid,skilllv)); + guild_block_skill(sd,skill_get_time2(skill_id,skill_lv)); } break; case GD_RESTORE: @@ -7301,13 +7307,13 @@ if (status_get_guild_id(src) == status_get_guild_id(bl)) clif_skill_nodamage(src,bl,AL_HEAL,status_percent_heal(bl,90,90),1); } else if (status_get_guild_id(src)) { - clif_skill_nodamage(src,bl,skillid,skilllv,1); + clif_skill_nodamage(src,bl,skill_id,skill_lv,1); map_foreachinrange(skill_area_sub, src, - skill_get_splash(skillid, skilllv), BL_PC, - src,skillid,skilllv,tick, flag|BCT_GUILD|1, + skill_get_splash(skill_id, skill_lv), BL_PC, + src,skill_id,skill_lv,tick, flag|BCT_GUILD|1, skill_castend_nodamage_id); if (sd) - guild_block_skill(sd,skill_get_time2(skillid,skilllv)); + guild_block_skill(sd,skill_get_time2(skill_id,skill_lv)); } break; case GD_EMERGENCYCALL: { @@ -7319,7 +7325,7 @@ g = sd?sd->state.gmaster_flag:guild_search(status_get_guild_id(src)); if (!g) break; - clif_skill_nodamage(src,bl,skillid,skilllv,1); + clif_skill_nodamage(src,bl,skill_id,skill_lv,1); for (i = 0; i < g->max_member; i++, j++) { if (j>8) j=0; if ((dstsd = g->member[i].sd) != NULL && sd != dstsd && !dstsd->state.autotrade && !pc_isdead(dstsd)) { @@ -7331,33 +7337,33 @@ } } if (sd) - guild_block_skill(sd,skill_get_time2(skillid,skilllv)); + guild_block_skill(sd,skill_get_time2(skill_id,skill_lv)); } break; case SG_FEEL: //AuronX reported you CAN memorize the same map as all three. [Skotlex] if (sd) { - if (!sd->feel_map[skilllv-1].index) - clif_feel_req(sd->fd,sd, skilllv); + if (!sd->feel_map[skill_lv-1].index) + clif_feel_req(sd->fd,sd, skill_lv); else - clif_feel_info(sd, skilllv-1, 1); + clif_feel_info(sd, skill_lv-1, 1); } break; case SG_HATE: if (sd) { - clif_skill_nodamage(src,bl,skillid,skilllv,1); - if (!pc_set_hate_mob(sd, skilllv-1, bl)) - clif_skill_fail(sd,skillid,USESKILL_FAIL_LEVEL,0); + clif_skill_nodamage(src,bl,skill_id,skill_lv,1); + if (!pc_set_hate_mob(sd, skill_lv-1, bl)) + clif_skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0); } break; case GS_GLITTERING: if (sd) { - clif_skill_nodamage(src,bl,skillid,skilllv,1); - if (rnd()%100 < (20+10*skilllv)) - pc_addspiritball(sd,skill_get_time(skillid,skilllv),10); + clif_skill_nodamage(src,bl,skill_id,skill_lv,1); + if (rnd()%100 < (20+10*skill_lv)) + pc_addspiritball(sd,skill_get_time(skill_id,skill_lv),10); else if (sd->spiritball > 0) pc_delspiritball(sd,1,0); } @@ -7368,38 +7374,38 @@ if (sd && (dstsd || dstmd)) { i =65 -5*distance_bl(src,bl); //Base rate if (i < 30) i = 30; - clif_skill_nodamage(src,bl,skillid,skilllv,1); - sc_start(bl,SC_STUN, i,skilllv,skill_get_time2(skillid,skilllv)); + clif_skill_nodamage(src,bl,skill_id,skill_lv,1); + sc_start(bl,SC_STUN, i,skill_lv,skill_get_time2(skill_id,skill_lv)); } break; case AM_CALLHOMUN: //[orn] if (sd && !merc_call_homunculus(sd)) - clif_skill_fail(sd,skillid,USESKILL_FAIL_LEVEL,0); + clif_skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0); break; case AM_REST: if (sd) { if (merc_hom_vaporize(sd,1)) - clif_skill_nodamage(src, bl, skillid, skilllv, 1); + clif_skill_nodamage(src, bl, skill_id, skill_lv, 1); else - clif_skill_fail(sd,skillid,USESKILL_FAIL_LEVEL,0); + clif_skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0); } break; case HAMI_CASTLE: //[orn] - if (rnd()%100 < 20*skilllv && src != bl) { + if (rnd()%100 < 20*skill_lv && src != bl) { int x,y; x = src->x; y = src->y; if (hd) - skill_blockhomun_start(hd, skillid, skill_get_time2(skillid,skilllv)); + skill_blockhomun_start(hd, skill_id, skill_get_time2(skill_id,skill_lv)); if (unit_movepos(src,bl->x,bl->y,0,0)) { - clif_skill_nodamage(src,src,skillid,skilllv,1); // Homunc + clif_skill_nodamage(src,src,skill_id,skill_lv,1); // Homunc clif_slide(src,bl->x,bl->y) ; if (unit_movepos(bl,x,y,0,0)) { - clif_skill_nodamage(bl,bl,skillid,skilllv,1); // Master + clif_skill_nodamage(bl,bl,skill_id,skill_lv,1); // Master clif_slide(bl,x,y) ; } @@ -7410,14 +7416,14 @@ } // Failed else if (hd && hd->master) - clif_skill_fail(hd->master, skillid, USESKILL_FAIL_LEVEL, 0); + clif_skill_fail(hd->master, skill_id, USESKILL_FAIL_LEVEL, 0); else if (sd) - clif_skill_fail(sd, skillid, USESKILL_FAIL_LEVEL, 0); + clif_skill_fail(sd, skill_id, USESKILL_FAIL_LEVEL, 0); break; case HVAN_CHAOTIC: { //[orn] static const int per[5][2]= {{20,50},{50,60},{25,75},{60,64},{34,67}}; int r = rnd()%100; - i = (skilllv-1)%5; + i = (skill_lv-1)%5; if (rstatus.party_id) { - clif_skill_fail(sd,skillid,USESKILL_FAIL_LEVEL,0); + clif_skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0); break; } - party_foreachsamemap(skill_area_sub, sd, skill_get_splash(skillid, skilllv), src, skillid, skilllv, tick, flag|BCT_PARTY|1, skill_castend_nodamage_id); + party_foreachsamemap(skill_area_sub, sd, skill_get_splash(skill_id, skill_lv), src, skill_id, skill_lv, tick, flag|BCT_PARTY|1, skill_castend_nodamage_id); } else - clif_skill_nodamage(src,bl,skillid,skilllv,sc_start(bl,type,100,skilllv,skill_get_time(skillid,skilllv))); + clif_skill_nodamage(src,bl,skill_id,skill_lv,sc_start(bl,type,100,skill_lv,skill_get_time(skill_id,skill_lv))); break; case NPC_TALK: case ALL_WEWISH: - clif_skill_nodamage(src,bl,skillid,skilllv,1); + clif_skill_nodamage(src,bl,skill_id,skill_lv,1); break; case ALL_BUYING_STORE: if (sd) { // players only, skill allows 5 buying slots - clif_skill_nodamage(src, bl, skillid, skilllv, buyingstore_setup(sd, MAX_BUYINGSTORE_SLOTS)); + clif_skill_nodamage(src, bl, skill_id, skill_lv, buyingstore_setup(sd, MAX_BUYINGSTORE_SLOTS)); } break; case RK_ENCHANTBLADE: - clif_skill_nodamage(src,bl,skillid,skilllv,// formula not confirmed - sc_start2(bl,type,100,skilllv,100+20*skilllv/*+sstatus->int_/2+status_get_lv(bl)/10*/,skill_get_time(skillid,skilllv))); + clif_skill_nodamage(src,bl,skill_id,skill_lv,// formula not confirmed + sc_start2(bl,type,100,skill_lv,100+20*skill_lv/*+sstatus->int_/2+status_get_lv(bl)/10*/,skill_get_time(skill_id,skill_lv))); break; case RK_DRAGONHOWLING: if (flag&1) - sc_start(bl,type,50 + 6 * skilllv,skilllv,skill_get_time(skillid,skilllv)); + sc_start(bl,type,50 + 6 * skill_lv,skill_lv,skill_get_time(skill_id,skill_lv)); else { skill_area_temp[2] = 0; - clif_skill_nodamage(src,bl,skillid,skilllv,1); + clif_skill_nodamage(src,bl,skill_id,skill_lv,1); map_foreachinrange(skill_area_sub, src, - skill_get_splash(skillid,skilllv),BL_CHAR, - src,skillid,skilllv,tick,flag|BCT_ENEMY|SD_PREAMBLE|1, + skill_get_splash(skill_id,skill_lv),BL_CHAR, + src,skill_id,skill_lv,tick,flag|BCT_ENEMY|SD_PREAMBLE|1, skill_castend_nodamage_id); } break; case RK_IGNITIONBREAK: case LG_EARTHDRIVE: - clif_skill_damage(src,bl,tick, status_get_amotion(src), 0, -30000, 1, skillid, skilllv, 6); - i = skill_get_splash(skillid,skilllv); - if (skillid == LG_EARTHDRIVE) { + clif_skill_damage(src,bl,tick, status_get_amotion(src), 0, -30000, 1, skill_id, skill_lv, 6); + i = skill_get_splash(skill_id,skill_lv); + if (skill_id == LG_EARTHDRIVE) { int dummy = 1; map_foreachinarea(skill_cell_overlap, src->m, src->x-i, src->y-i, src->x+i, src->y+i, BL_SKILL, LG_EARTHDRIVE, &dummy, src); } map_foreachinrange(skill_area_sub, bl,i,BL_CHAR, - src,skillid,skilllv,tick,flag|BCT_ENEMY|1,skill_castend_damage_id); + src,skill_id,skill_lv,tick,flag|BCT_ENEMY|1,skill_castend_damage_id); break; case RK_STONEHARDSKIN: if (sd && pc_checkskill(sd,RK_RUNEMASTERY) >= 4) { int heal = sstatus->hp / 4; // 25% HP if (status_charge(bl,heal,0)) - clif_skill_nodamage(src,bl,skillid,skilllv,sc_start2(bl,type,100,skilllv,heal,skill_get_time(skillid,skilllv))); + clif_skill_nodamage(src,bl,skill_id,skill_lv,sc_start2(bl,type,100,skill_lv,heal,skill_get_time(skill_id,skill_lv))); else - clif_skill_fail(sd,skillid,USESKILL_FAIL_LEVEL,0); + clif_skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0); } break; case RK_REFRESH: if (sd && pc_checkskill(sd,RK_RUNEMASTERY) >= 8) { int heal = status_get_max_hp(bl) * 25 / 100; - clif_skill_nodamage(src,bl,skillid,skilllv, - sc_start(bl,type,100,skilllv,skill_get_time(skillid,skilllv))); + clif_skill_nodamage(src,bl,skill_id,skill_lv, + sc_start(bl,type,100,skill_lv,skill_get_time(skill_id,skill_lv))); status_heal(bl,heal,0,1); status_change_clear_buffs(bl,4); } @@ -7562,9 +7568,9 @@ case RK_MILLENNIUMSHIELD: if (sd && pc_checkskill(sd,RK_RUNEMASTERY) >= 9) { short shields = (rnd()%100<50) ? 4 : ((rnd()%100<80) ? 3 : 2); - sc_start4(bl,type,100,skilllv,shields,1000,0,skill_get_time(skillid,skilllv)); + sc_start4(bl,type,100,skill_lv,shields,1000,0,skill_get_time(skill_id,skill_lv)); clif_millenniumshield(sd,shields); - clif_skill_nodamage(src,bl,skillid,1,1); + clif_skill_nodamage(src,bl,skill_id,1,1); } break; @@ -7573,30 +7579,30 @@ case RK_ABUNDANCE: if (sd) { int lv = 1; // RK_GIANTGROWTH - if (skillid == RK_VITALITYACTIVATION) + if (skill_id == RK_VITALITYACTIVATION) lv = 2; - else if (skillid == RK_ABUNDANCE) + else if (skill_id == RK_ABUNDANCE) lv = 6; if (pc_checkskill(sd,RK_RUNEMASTERY) >= lv) - clif_skill_nodamage(src,bl,skillid,skilllv,sc_start(bl,type,100,skilllv,skill_get_time(skillid,skilllv))); + clif_skill_nodamage(src,bl,skill_id,skill_lv,sc_start(bl,type,100,skill_lv,skill_get_time(skill_id,skill_lv))); } break; case RK_FIGHTINGSPIRIT: if (flag&1) { if (src == bl) - sc_start2(bl,type,100,skill_area_temp[5],10*(sd?pc_checkskill(sd,RK_RUNEMASTERY):10),skill_get_time(skillid,skilllv)); + sc_start2(bl,type,100,skill_area_temp[5],10*(sd?pc_checkskill(sd,RK_RUNEMASTERY):10),skill_get_time(skill_id,skill_lv)); else - sc_start(bl,type,100,skill_area_temp[5]/4,skill_get_time(skillid,skilllv)); + sc_start(bl,type,100,skill_area_temp[5]/4,skill_get_time(skill_id,skill_lv)); } else if (sd && pc_checkskill(sd,RK_RUNEMASTERY) >= 5) { if (sd->status.party_id) { - i = party_foreachsamemap(skill_area_sub,sd,skill_get_splash(skillid,skilllv),src,skillid,skilllv,tick,BCT_PARTY,skill_area_sub_count); + i = party_foreachsamemap(skill_area_sub,sd,skill_get_splash(skill_id,skill_lv),src,skill_id,skill_lv,tick,BCT_PARTY,skill_area_sub_count); skill_area_temp[5] = 7 * i; // ATK - party_foreachsamemap(skill_area_sub,sd,skill_get_splash(skillid,skilllv),src,skillid,skilllv,tick,flag|BCT_PARTY|1,skill_castend_nodamage_id); + party_foreachsamemap(skill_area_sub,sd,skill_get_splash(skill_id,skill_lv),src,skill_id,skill_lv,tick,flag|BCT_PARTY|1,skill_castend_nodamage_id); } else - sc_start2(bl,type,100,7,5,skill_get_time(skillid,skilllv)); + sc_start2(bl,type,100,7,5,skill_get_time(skill_id,skill_lv)); } - clif_skill_nodamage(src,bl,skillid,1,1); + clif_skill_nodamage(src,bl,skill_id,1,1); break; /** * Guilotine Cross @@ -7604,7 +7610,7 @@ case GC_ROLLINGCUTTER: { short count = 1; skill_area_temp[2] = 0; - map_foreachinrange(skill_area_sub,src,skill_get_splash(skillid,skilllv),BL_CHAR,src,skillid,skilllv,tick,flag|BCT_ENEMY|SD_PREAMBLE|SD_SPLASH|1,skill_castend_damage_id); + map_foreachinrange(skill_area_sub,src,skill_get_splash(skill_id,skill_lv),BL_CHAR,src,skill_id,skill_lv,tick,flag|BCT_ENEMY|SD_PREAMBLE|SD_SPLASH|1,skill_castend_damage_id); if (tsc && tsc->data[SC_ROLLINGCUTTER]) { // Every time the skill is casted the status change is reseted adding a counter. count += (short)tsc->data[SC_ROLLINGCUTTER]->val1; @@ -7612,8 +7618,8 @@ count = 10; // Max coounter status_change_end(bl, SC_ROLLINGCUTTER, INVALID_TIMER); } - sc_start(bl,SC_ROLLINGCUTTER,100,count,skill_get_time(skillid,skilllv)); - clif_skill_nodamage(src,src,skillid,skilllv,1); + sc_start(bl,SC_ROLLINGCUTTER,100,count,skill_get_time(skill_id,skill_lv)); + clif_skill_nodamage(src,src,skill_id,skill_lv,1); } break; @@ -7621,26 +7627,26 @@ if (tsc && tsc->data[SC_WEAPONBLOCKING]) status_change_end(bl, SC_WEAPONBLOCKING, INVALID_TIMER); else - sc_start(bl,SC_WEAPONBLOCKING,100,skilllv,skill_get_time(skillid,skilllv)); - clif_skill_nodamage(src,bl,skillid,skilllv,1); + sc_start(bl,SC_WEAPONBLOCKING,100,skill_lv,skill_get_time(skill_id,skill_lv)); + clif_skill_nodamage(src,bl,skill_id,skill_lv,1); break; case GC_CREATENEWPOISON: if (sd) { - clif_skill_produce_mix_list(sd,skillid,25); - clif_skill_nodamage(src, bl, skillid, skilllv, 1); + clif_skill_produce_mix_list(sd,skill_id,25); + clif_skill_nodamage(src, bl, skill_id, skill_lv, 1); } break; case GC_POISONINGWEAPON: if (sd) { - clif_poison_list(sd,skilllv); - clif_skill_nodamage(src,bl,skillid,skilllv,1); + clif_poison_list(sd,skill_lv); + clif_skill_nodamage(src,bl,skill_id,skill_lv,1); } break; case GC_ANTIDOTE: - clif_skill_nodamage(src,bl,skillid,skilllv,1); + clif_skill_nodamage(src,bl,skill_id,skill_lv,1); if (tsc) { status_change_end(bl, SC_PARALYSE, INVALID_TIMER); status_change_end(bl, SC_PYREXIA, INVALID_TIMER); @@ -7654,23 +7660,23 @@ break; case GC_PHANTOMMENACE: - clif_skill_damage(src,bl,tick, status_get_amotion(src), 0, -30000, 1, skillid, skilllv, 6); - clif_skill_nodamage(src,bl,skillid,skilllv,1); - map_foreachinrange(skill_area_sub,src,skill_get_splash(skillid,skilllv),BL_CHAR, - src,skillid,skilllv,tick,flag|BCT_ENEMY|1,skill_castend_damage_id); + clif_skill_damage(src,bl,tick, status_get_amotion(src), 0, -30000, 1, skill_id, skill_lv, 6); + clif_skill_nodamage(src,bl,skill_id,skill_lv,1); + map_foreachinrange(skill_area_sub,src,skill_get_splash(skill_id,skill_lv),BL_CHAR, + src,skill_id,skill_lv,tick,flag|BCT_ENEMY|1,skill_castend_damage_id); break; case GC_HALLUCINATIONWALK: { int heal = status_get_max_hp(bl) / 10; if (status_get_hp(bl) < heal) { // if you haven't enough HP skill fails. - if (sd) clif_skill_fail(sd,skillid,USESKILL_FAIL_HP_INSUFFICIENT,0); + if (sd) clif_skill_fail(sd,skill_id,USESKILL_FAIL_HP_INSUFFICIENT,0); break; } if (!status_charge(bl,heal,0)) { - if (sd) clif_skill_fail(sd,skillid,USESKILL_FAIL_HP_INSUFFICIENT,0); + if (sd) clif_skill_fail(sd,skill_id,USESKILL_FAIL_HP_INSUFFICIENT,0); break; } - clif_skill_nodamage(src,bl,skillid,skilllv,sc_start(bl,type,100,skilllv,skill_get_time(skillid,skilllv))); + clif_skill_nodamage(src,bl,skill_id,skill_lv,sc_start(bl,type,100,skill_lv,skill_get_time(skill_id,skill_lv))); } break; /** @@ -7678,8 +7684,8 @@ **/ case AB_ANCILLA: if (sd) { - clif_skill_nodamage(src,bl,skillid,skilllv,1); - skill_produce_mix(sd, skillid, ITEMID_ANCILLA, 0, 0, 0, 1); + clif_skill_nodamage(src,bl,skill_id,skill_lv,1); + skill_produce_mix(sd, skill_id, ITEMID_ANCILLA, 0, 0, 0, 1); } break; @@ -7688,18 +7694,18 @@ int bless_lv = pc_checkskill(sd,AL_BLESSING); int agi_lv = pc_checkskill(sd,AL_INCAGI); if (sd == NULL || sd->status.party_id == 0 || flag&1) - clif_skill_nodamage(bl, bl, skillid, skilllv, sc_start(bl,type,100, - (skillid == AB_CLEMENTIA)? bless_lv : (skillid == AB_CANTO)? agi_lv : skilllv, skill_get_time(skillid,skilllv))); + clif_skill_nodamage(bl, bl, skill_id, skill_lv, sc_start(bl,type,100, + (skill_id == AB_CLEMENTIA)? bless_lv : (skill_id == AB_CANTO)? agi_lv : skill_lv, skill_get_time(skill_id,skill_lv))); else if (sd) - party_foreachsamemap(skill_area_sub, sd, skill_get_splash(skillid, skilllv), src, skillid, skilllv, tick, flag|BCT_PARTY|1, skill_castend_nodamage_id); + party_foreachsamemap(skill_area_sub, sd, skill_get_splash(skill_id, skill_lv), src, skill_id, skill_lv, tick, flag|BCT_PARTY|1, skill_castend_nodamage_id); } break; case AB_PRAEFATIO: if (sd == NULL || sd->status.party_id == 0 || flag&1) - clif_skill_nodamage(bl, bl, skillid, skilllv, sc_start4(bl, type, 100, skilllv, 0, 0, 1, skill_get_time(skillid, skilllv))); + clif_skill_nodamage(bl, bl, skill_id, skill_lv, sc_start4(bl, type, 100, skill_lv, 0, 0, 1, skill_get_time(skill_id, skill_lv))); else if (sd) - party_foreachsamemap(skill_area_sub, sd, skill_get_splash(skillid, skilllv), src, skillid, skilllv, tick, flag|BCT_PARTY|1, skill_castend_nodamage_id); + party_foreachsamemap(skill_area_sub, sd, skill_get_splash(skill_id, skill_lv), src, skill_id, skill_lv, tick, flag|BCT_PARTY|1, skill_castend_nodamage_id); break; case AB_CHEAL: @@ -7710,22 +7716,22 @@ if ((dstsd && pc_ismadogear(dstsd)) || status_isimmune(bl)) i = 0; // Should heal by 0 or won't do anything?? in iRO it breaks the healing to members.. [malufett] - clif_skill_nodamage(bl, bl, skillid, i, 1); + clif_skill_nodamage(bl, bl, skill_id, i, 1); if (tsc && tsc->data[SC_AKAITSUKI] && i) i = ~i + 1; status_heal(bl, i, 0, 0); } } else if (sd) - party_foreachsamemap(skill_area_sub, sd, skill_get_splash(skillid, skilllv), src, skillid, skilllv, tick, flag|BCT_PARTY|1, skill_castend_nodamage_id); + party_foreachsamemap(skill_area_sub, sd, skill_get_splash(skill_id, skill_lv), src, skill_id, skill_lv, tick, flag|BCT_PARTY|1, skill_castend_nodamage_id); break; case AB_ORATIO: if (flag&1) - sc_start(bl, type, 40 + 5 * skilllv, skilllv, skill_get_time(skillid, skilllv)); + sc_start(bl, type, 40 + 5 * skill_lv, skill_lv, skill_get_time(skill_id, skill_lv)); else { - map_foreachinrange(skill_area_sub, src, skill_get_splash(skillid, skilllv), BL_CHAR, - src, skillid, skilllv, tick, flag|BCT_ENEMY|1, skill_castend_nodamage_id); - clif_skill_nodamage(src, bl, skillid, skilllv, 1); + map_foreachinrange(skill_area_sub, src, skill_get_splash(skill_id, skill_lv), BL_CHAR, + src, skill_id, skill_lv, tick, flag|BCT_ENEMY|1, skill_castend_nodamage_id); + clif_skill_nodamage(src, bl, skill_id, skill_lv, 1); } break; @@ -7734,7 +7740,7 @@ if (tsc && (tsc->data[SC_FREEZE] || tsc->data[SC_STONE] || tsc->data[SC_BLIND] || tsc->data[SC_BURNING] || tsc->data[SC_FREEZING] || tsc->data[SC_CRYSTALIZE])) { // Success Chance: (40 + 10 * Skill Level) % - if (rnd()%100 > 40+10*skilllv) break; + if (rnd()%100 > 40+10*skill_lv) break; status_change_end(bl, SC_FREEZE, INVALID_TIMER); status_change_end(bl, SC_STONE, INVALID_TIMER); status_change_end(bl, SC_BLIND, INVALID_TIMER); @@ -7742,37 +7748,37 @@ status_change_end(bl, SC_FREEZING, INVALID_TIMER); status_change_end(bl, SC_CRYSTALIZE, INVALID_TIMER); } else //Success rate only applies to the curing effect and not stat bonus. Bonus status only applies to non infected targets - clif_skill_nodamage(bl, bl, skillid, skilllv, - sc_start(bl, type, 100, skilllv, skill_get_time(skillid, skilllv))); + clif_skill_nodamage(bl, bl, skill_id, skill_lv, + sc_start(bl, type, 100, skill_lv, skill_get_time(skill_id, skill_lv))); } else if (sd) - party_foreachsamemap(skill_area_sub, sd, skill_get_splash(skillid, skilllv), - src, skillid, skilllv, tick, flag|BCT_PARTY|1, skill_castend_nodamage_id); + party_foreachsamemap(skill_area_sub, sd, skill_get_splash(skill_id, skill_lv), + src, skill_id, skill_lv, tick, flag|BCT_PARTY|1, skill_castend_nodamage_id); break; case AB_LAUDARAMUS: if (flag&1 || sd == NULL) { if (tsc && (tsc->data[SC_SLEEP] || tsc->data[SC_STUN] || tsc->data[SC_MANDRAGORA] || tsc->data[SC_SILENCE])) { // Success Chance: (40 + 10 * Skill Level) % - if (rnd()%100 > 40+10*skilllv) break; + if (rnd()%100 > 40+10*skill_lv) break; status_change_end(bl, SC_SLEEP, INVALID_TIMER); status_change_end(bl, SC_STUN, INVALID_TIMER); status_change_end(bl, SC_MANDRAGORA, INVALID_TIMER); status_change_end(bl, SC_SILENCE, INVALID_TIMER); } else // Success rate only applies to the curing effect and not stat bonus. Bonus status only applies to non infected targets - clif_skill_nodamage(bl, bl, skillid, skilllv, - sc_start(bl, type, 100, skilllv, skill_get_time(skillid, skilllv))); + clif_skill_nodamage(bl, bl, skill_id, skill_lv, + sc_start(bl, type, 100, skill_lv, skill_get_time(skill_id, skill_lv))); } else if (sd) - party_foreachsamemap(skill_area_sub, sd, skill_get_splash(skillid, skilllv), - src, skillid, skilllv, tick, flag|BCT_PARTY|1, skill_castend_nodamage_id); + party_foreachsamemap(skill_area_sub, sd, skill_get_splash(skill_id, skill_lv), + src, skill_id, skill_lv, tick, flag|BCT_PARTY|1, skill_castend_nodamage_id); break; case AB_CLEARANCE: - if (flag&1 || (i = skill_get_splash(skillid, skilllv)) < 1) { + if (flag&1 || (i = skill_get_splash(skill_id, skill_lv)) < 1) { //As of the behavior in official server Clearance is just a super version of Dispell skill. [Jobbie] - clif_skill_nodamage(src,bl,skillid,skilllv,1); - if ((dstsd && (dstsd->class_&MAPID_UPPERMASK) == MAPID_SOUL_LINKER) || rnd()%100 >= 30 + 10 * skilllv) { + clif_skill_nodamage(src,bl,skill_id,skill_lv,1); + if ((dstsd && (dstsd->class_&MAPID_UPPERMASK) == MAPID_SOUL_LINKER) || rnd()%100 >= 30 + 10 * skill_lv) { if (sd) - clif_skill_fail(sd,skillid,USESKILL_FAIL_LEVEL,0); + clif_skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0); break; } if (status_isimmune(bl) || !tsc || !tsc->count) @@ -7905,24 +7911,24 @@ } break; } - map_foreachinrange(skill_area_sub, bl, i, BL_CHAR, src, skillid, skilllv, tick, flag|1, skill_castend_damage_id); + map_foreachinrange(skill_area_sub, bl, i, BL_CHAR, src, skill_id, skill_lv, tick, flag|1, skill_castend_damage_id); break; case AB_SILENTIUM: // Should the level of Lex Divina be equivalent to the level of Silentium or should the highest level learned be used? [LimitLine] - map_foreachinrange(skill_area_sub, src, skill_get_splash(skillid, skilllv), BL_CHAR, - src, PR_LEXDIVINA, skilllv, tick, flag|BCT_ENEMY|1, skill_castend_nodamage_id); - clif_skill_nodamage(src, bl, skillid, skilllv, 1); + map_foreachinrange(skill_area_sub, src, skill_get_splash(skill_id, skill_lv), BL_CHAR, + src, PR_LEXDIVINA, skill_lv, tick, flag|BCT_ENEMY|1, skill_castend_nodamage_id); + clif_skill_nodamage(src, bl, skill_id, skill_lv, 1); break; /** * Warlock **/ case WL_STASIS: if (flag&1) - sc_start(bl,type,100,skilllv,skill_get_time(skillid,skilllv)); + sc_start(bl,type,100,skill_lv,skill_get_time(skill_id,skill_lv)); else { - map_foreachinrange(skill_area_sub,src,skill_get_splash(skillid, skilllv),BL_CHAR,src,skillid,skilllv,tick,(map_flag_vs(src->m)?BCT_ALL:BCT_ENEMY|BCT_SELF)|flag|1,skill_castend_nodamage_id); - clif_skill_nodamage(src, bl, skillid, skilllv, 1); + map_foreachinrange(skill_area_sub,src,skill_get_splash(skill_id, skill_lv),BL_CHAR,src,skill_id,skill_lv,tick,(map_flag_vs(src->m)?BCT_ALL:BCT_ENEMY|BCT_SELF)|flag|1,skill_castend_nodamage_id); + clif_skill_nodamage(src, bl, skill_id, skill_lv, 1); } break; @@ -7931,37 +7937,37 @@ int rate = (sd? sd->status.job_level : 50) / 4; if (src == bl) rate = 100; // Success Chance: On self, 100% - else if (bl->type == BL_PC) rate += 20 + 10 * skilllv; // On Players, (20 + 10 * Skill Level) % - else rate += 40 + 10 * skilllv; // On Monsters, (40 + 10 * Skill Level) % + else if (bl->type == BL_PC) rate += 20 + 10 * skill_lv; // On Players, (20 + 10 * Skill Level) % + else rate += 40 + 10 * skill_lv; // On Monsters, (40 + 10 * Skill Level) % if (!(tsc && tsc->data[type])) { - i = sc_start2(bl,type,rate,skilllv,src->id,(src == bl)?5000:(bl->type == BL_PC)?skill_get_time(skillid,skilllv):skill_get_time2(skillid, skilllv)); - clif_skill_nodamage(src,bl,skillid,skilllv,i); + i = sc_start2(bl,type,rate,skill_lv,src->id,(src == bl)?5000:(bl->type == BL_PC)?skill_get_time(skill_id,skill_lv):skill_get_time2(skill_id, skill_lv)); + clif_skill_nodamage(src,bl,skill_id,skill_lv,i); } if (sd && i) - skill_blockpc_start(sd,skillid,4000); // Reuse Delay only activated on success + skill_blockpc_start(sd,skill_id,4000); // Reuse Delay only activated on success else if (sd) - clif_skill_fail(sd,skillid,USESKILL_FAIL_LEVEL,0); + clif_skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0); } else if (sd) - clif_skill_fail(sd,skillid,USESKILL_FAIL_TOTARGET,0); + clif_skill_fail(sd,skill_id,USESKILL_FAIL_TOTARGET,0); break; case WL_FROSTMISTY: - clif_skill_nodamage(src,bl,skillid,skilllv,1); - map_foreachinrange(skill_area_sub,bl,skill_get_splash(skillid,skilllv),BL_CHAR|BL_SKILL,src,skillid,skilllv,tick,flag|BCT_ENEMY,skill_castend_damage_id); + clif_skill_nodamage(src,bl,skill_id,skill_lv,1); + map_foreachinrange(skill_area_sub,bl,skill_get_splash(skill_id,skill_lv),BL_CHAR|BL_SKILL,src,skill_id,skill_lv,tick,flag|BCT_ENEMY,skill_castend_damage_id); break; case WL_JACKFROST: - clif_skill_nodamage(src,bl,skillid,skilllv,1); - map_foreachinshootrange(skill_area_sub,bl,skill_get_splash(skillid,skilllv),BL_CHAR|BL_SKILL,src,skillid,skilllv,tick,flag|BCT_ENEMY|1,skill_castend_damage_id); + clif_skill_nodamage(src,bl,skill_id,skill_lv,1); + map_foreachinshootrange(skill_area_sub,bl,skill_get_splash(skill_id,skill_lv),BL_CHAR|BL_SKILL,src,skill_id,skill_lv,tick,flag|BCT_ENEMY|1,skill_castend_damage_id); break; case WL_MARSHOFABYSS: // Should marsh of abyss still apply half reduction to players after the 28/10 patch? [LimitLine] - clif_skill_nodamage(src, bl, skillid, skilllv, - sc_start4(bl, type, 100, skilllv, status_get_int(src), sd ? sd->status.job_level : 50, 0, - skill_get_time(skillid, skilllv))); + clif_skill_nodamage(src, bl, skill_id, skill_lv, + sc_start4(bl, type, 100, skill_lv, status_get_int(src), sd ? sd->status.job_level : 50, 0, + skill_get_time(skill_id, skill_lv))); break; case WL_SIENNAEXECRATE: @@ -7975,13 +7981,13 @@ if (tsc && tsc->data[SC_STONE]) status_change_end(bl,SC_STONE,INVALID_TIMER); else - status_change_start(bl,SC_STONE,10000,skilllv,0,0,1000,skill_get_time(skillid, skilllv),2); + status_change_start(bl,SC_STONE,10000,skill_lv,0,0,1000,skill_get_time(skill_id, skill_lv),2); } else { - int rate = 40 + 8 * skilllv + (sd? sd->status.job_level : 50) / 4; + int rate = 40 + 8 * skill_lv + (sd? sd->status.job_level : 50) / 4; // IroWiki says Rate should be reduced by target stats, but currently unknown if (rnd()%100 < rate) { // Success on First Target if (!tsc->data[SC_STONE]) - rate = status_change_start(bl,SC_STONE,10000,skilllv,0,0,1000,skill_get_time(skillid, skilllv),2); + rate = status_change_start(bl,SC_STONE,10000,skill_lv,0,0,1000,skill_get_time(skill_id, skill_lv),2); else { rate = 1; status_change_end(bl,SC_STONE,INVALID_TIMER); @@ -7989,11 +7995,11 @@ if (rate) { skill_area_temp[1] = bl->id; - map_foreachinrange(skill_area_sub,bl,skill_get_splash(skillid,skilllv),BL_CHAR,src,skillid,skilllv,tick,flag|BCT_ENEMY|1,skill_castend_nodamage_id); + map_foreachinrange(skill_area_sub,bl,skill_get_splash(skill_id,skill_lv),BL_CHAR,src,skill_id,skill_lv,tick,flag|BCT_ENEMY|1,skill_castend_nodamage_id); } // Doesn't send failure packet if it fails on defense. } else if (sd) // Failure on Rate - clif_skill_fail(sd,skillid,USESKILL_FAIL_LEVEL,0); + clif_skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0); } break; @@ -8014,12 +8020,12 @@ if (!sctype) { if (sd) // No free slots to put SC - clif_skill_fail(sd,skillid,USESKILL_FAIL_SUMMON,0); + clif_skill_fail(sd,skill_id,USESKILL_FAIL_SUMMON,0); break; } pos++; // Used in val2 for SC. Indicates the order of this ball - switch (skillid) { + switch (skill_id) { // Set val1. The SC element for this ball case WL_SUMMONFB: element = WLS_FIRE; @@ -8035,8 +8041,8 @@ break; } - sc_start4(src,sctype,100,element,pos,skilllv,0,skill_get_time(skillid,skilllv)); - clif_skill_nodamage(src,bl,skillid,0,0); + sc_start4(src,sctype,100,element,pos,skill_lv,0,skill_get_time(skill_id,skill_lv)); + clif_skill_nodamage(src,bl,skill_id,0,0); } break; @@ -8052,17 +8058,17 @@ break; } - sc_start(bl, SC_STOP, 100, skilllv, INVALID_TIMER); //Can't move while selecting a spellbook. + sc_start(bl, SC_STOP, 100, skill_lv, INVALID_TIMER); //Can't move while selecting a spellbook. clif_spellbook_list(sd); - clif_skill_nodamage(src, bl, skillid, skilllv, 1); + clif_skill_nodamage(src, bl, skill_id, skill_lv, 1); } break; /** * Ranger **/ case RA_FEARBREEZE: - clif_skill_damage(src, src, tick, status_get_amotion(src), 0, -30000, 1, skillid, skilllv, 6); - clif_skill_nodamage(src, bl, skillid, skilllv, sc_start(bl, type, 100, skilllv, skill_get_time(skillid, skilllv))); + clif_skill_damage(src, src, tick, status_get_amotion(src), 0, -30000, 1, skill_id, skill_lv, 6); + clif_skill_nodamage(src, bl, skill_id, skill_lv, sc_start(bl, type, 100, skill_lv, skill_get_time(skill_id, skill_lv))); break; case RA_WUGMASTERY: @@ -8071,7 +8077,7 @@ pc_setoption(sd,sd->sc.option|OPTION_WUG); else pc_setoption(sd,sd->sc.option&~OPTION_WUG); - clif_skill_nodamage(src,bl,skillid,skilllv,1); + clif_skill_nodamage(src,bl,skill_id,skill_lv,1); } break; @@ -8084,37 +8090,37 @@ pc_setoption(sd,sd->sc.option&~OPTION_WUGRIDER); pc_setoption(sd,sd->sc.option|OPTION_WUG); } - clif_skill_nodamage(src,bl,skillid,skilllv,1); + clif_skill_nodamage(src,bl,skill_id,skill_lv,1); } break; case RA_WUGDASH: if (tsce) { - clif_skill_nodamage(src,bl,skillid,skilllv,status_change_end(bl, type, INVALID_TIMER)); + clif_skill_nodamage(src,bl,skill_id,skill_lv,status_change_end(bl, type, INVALID_TIMER)); map_freeblock_unlock(); return 0; } if (sd && pc_isridingwug(sd)) { - clif_skill_nodamage(src,bl,skillid,skilllv,sc_start4(bl,type,100,skilllv,unit_getdir(bl),0,0,1)); + clif_skill_nodamage(src,bl,skill_id,skill_lv,sc_start4(bl,type,100,skill_lv,unit_getdir(bl),0,0,1)); clif_walkok(sd); } break; case RA_SENSITIVEKEEN: - clif_skill_nodamage(src,bl,skillid,skilllv,1); - clif_skill_damage(src,src,tick, status_get_amotion(src), 0, -30000, 1, skillid, skilllv, 6); - map_foreachinrange(skill_area_sub,src,skill_get_splash(skillid,skilllv),BL_CHAR|BL_SKILL,src,skillid,skilllv,tick,flag|BCT_ENEMY,skill_castend_damage_id); + clif_skill_nodamage(src,bl,skill_id,skill_lv,1); + clif_skill_damage(src,src,tick, status_get_amotion(src), 0, -30000, 1, skill_id, skill_lv, 6); + map_foreachinrange(skill_area_sub,src,skill_get_splash(skill_id,skill_lv),BL_CHAR|BL_SKILL,src,skill_id,skill_lv,tick,flag|BCT_ENEMY,skill_castend_damage_id); break; /** * Mechanic **/ case NC_F_SIDESLIDE: case NC_B_SIDESLIDE: { - int dir = (skillid == NC_F_SIDESLIDE) ? (unit_getdir(src)+4)%8 : unit_getdir(src); - skill_blown(src,bl,skill_get_blewcount(skillid,skilllv),dir,0x1); + int dir = (skill_id == NC_F_SIDESLIDE) ? (unit_getdir(src)+4)%8 : unit_getdir(src); + skill_blown(src,bl,skill_get_blewcount(skill_id,skill_lv),dir,0x1); clif_slide(src,src->x,src->y); clif_fixpos(src); //Aegis sent this packet - clif_skill_nodamage(src,bl,skillid,skilllv,1); + clif_skill_nodamage(src,bl,skill_id,skill_lv,1); } break; @@ -8122,41 +8128,41 @@ if (sd) { if (pc_ismadogear(sd)) pc_setmadogear(sd, 0); - clif_skill_nodamage(src, bl, skillid, skilllv, 1); - skill_castend_damage_id(src, src, skillid, skilllv, tick, flag); + clif_skill_nodamage(src, bl, skill_id, skill_lv, 1); + skill_castend_damage_id(src, src, skill_id, skill_lv, tick, flag); status_set_sp(src, 0, 0); } break; case NC_ANALYZE: - clif_skill_damage(src, bl, tick, status_get_amotion(src), 0, -30000, 1, skillid, skilllv, 6); - clif_skill_nodamage(src, bl, skillid, skilllv, - sc_start(bl,type, 30 + 12 * skilllv,skilllv,skill_get_time(skillid,skilllv))); + clif_skill_damage(src, bl, tick, status_get_amotion(src), 0, -30000, 1, skill_id, skill_lv, 6); + clif_skill_nodamage(src, bl, skill_id, skill_lv, + sc_start(bl,type, 30 + 12 * skill_lv,skill_lv,skill_get_time(skill_id,skill_lv))); if (sd) pc_overheat(sd,1); break; case NC_MAGNETICFIELD: - if ((i = sc_start2(bl,type,100,skilllv,src->id,skill_get_time(skillid,skilllv)))) { - map_foreachinrange(skill_area_sub,src,skill_get_splash(skillid,skilllv),splash_target(src),src,skillid,skilllv,tick,flag|BCT_ENEMY|SD_SPLASH|1,skill_castend_damage_id);; - clif_skill_damage(src,src,tick,status_get_amotion(src),0,-30000,1,skillid,skilllv,6); + if ((i = sc_start2(bl,type,100,skill_lv,src->id,skill_get_time(skill_id,skill_lv)))) { + map_foreachinrange(skill_area_sub,src,skill_get_splash(skill_id,skill_lv),splash_target(src),src,skill_id,skill_lv,tick,flag|BCT_ENEMY|SD_SPLASH|1,skill_castend_damage_id);; + clif_skill_damage(src,src,tick,status_get_amotion(src),0,-30000,1,skill_id,skill_lv,6); if (sd) pc_overheat(sd,1); } - clif_skill_nodamage(src,src,skillid,skilllv,i); + clif_skill_nodamage(src,src,skill_id,skill_lv,i); break; case NC_REPAIR: if (sd) { int heal; if (dstsd && pc_ismadogear(dstsd)) { - heal = dstsd->status.max_hp * (3+3*skilllv) / 100; + heal = dstsd->status.max_hp * (3+3*skill_lv) / 100; status_heal(bl,heal,0,2); } else { - heal = sd->status.max_hp * (3+3*skilllv) / 100; + heal = sd->status.max_hp * (3+3*skill_lv) / 100; status_heal(src,heal,0,2); } - clif_skill_damage(src, src, tick, status_get_amotion(src), 0, -30000, 1, skillid, skilllv, 6); - clif_skill_nodamage(src, bl, skillid, skilllv, heal); + clif_skill_damage(src, src, tick, status_get_amotion(src), 0, -30000, 1, skill_id, skill_lv, 6); + clif_skill_nodamage(src, bl, skill_id, skill_lv, heal); } break; @@ -8165,26 +8171,26 @@ md = map_id2md(bl->id); if (md && md->class_ >= MOBID_SILVERSNIPER && md->class_ <= MOBID_MAGICDECOY_WIND) status_kill(bl); - clif_skill_nodamage(src, bl, skillid, skilllv, 1); + clif_skill_nodamage(src, bl, skill_id, skill_lv, 1); } break; case SC_AUTOSHADOWSPELL: if (sd) { if (sd->status.skill[sd->reproduceskill_id].id || sd->status.skill[sd->cloneskill_id].id) { - sc_start(src,SC_STOP,100,skilllv,-1);// The skilllv is stored in val1 used in skill_select_menu to determine the used skill lvl [Xazax] + sc_start(src,SC_STOP,100,skill_lv,-1);// The skilllv is stored in val1 used in skill_select_menu to determine the used skill lvl [Xazax] clif_autoshadowspell_list(sd); - clif_skill_nodamage(src,bl,skillid,1,1); + clif_skill_nodamage(src,bl,skill_id,1,1); } else - clif_skill_fail(sd,skillid,USESKILL_FAIL_IMITATION_SKILL_NONE,0); + clif_skill_fail(sd,skill_id,USESKILL_FAIL_IMITATION_SKILL_NONE,0); } break; case SC_SHADOWFORM: if (sd && dstsd && src != bl && !dstsd->shadowform_id) { - if (clif_skill_nodamage(src,bl,skillid,skilllv,sc_start4(src,type,100,skilllv,bl->id,4+skilllv,0,skill_get_time(skillid, skilllv)))) + if (clif_skill_nodamage(src,bl,skill_id,skill_lv,sc_start4(src,type,100,skill_lv,bl->id,4+skill_lv,0,skill_get_time(skill_id, skill_lv)))) dstsd->shadowform_id = src->id; } else if (sd) - clif_skill_fail(sd, skillid, USESKILL_FAIL_LEVEL, 0); + clif_skill_fail(sd, skill_id, USESKILL_FAIL_LEVEL, 0); break; case SC_BODYPAINT: @@ -8198,13 +8204,13 @@ status_change_end(bl, SC_CLOAKINGEXCEED, INVALID_TIMER); status_change_end(bl, SC__INVISIBILITY, INVALID_TIMER); - sc_start(bl,type,100,skilllv,skill_get_time(skillid,skilllv)); - sc_start(bl,SC_BLIND,53 + 2 * skilllv,skilllv,skill_get_time(skillid,skilllv)); + sc_start(bl,type,100,skill_lv,skill_get_time(skill_id,skill_lv)); + sc_start(bl,SC_BLIND,53 + 2 * skill_lv,skill_lv,skill_get_time(skill_id,skill_lv)); } } else { - clif_skill_nodamage(src, bl, skillid, 0, 1); - map_foreachinrange(skill_area_sub, bl, skill_get_splash(skillid, skilllv), BL_CHAR, - src, skillid, skilllv, tick, flag|BCT_ENEMY|1, skill_castend_nodamage_id); + clif_skill_nodamage(src, bl, skill_id, 0, 1); + map_foreachinrange(skill_area_sub, bl, skill_get_splash(skill_id, skill_lv), BL_CHAR, + src, skill_id, skill_lv, tick, flag|BCT_ENEMY|1, skill_castend_nodamage_id); } break; @@ -8215,55 +8221,55 @@ case SC_WEAKNESS: if (!(tsc && tsc->data[type])) { //((rand(myDEX / 12, myDEX / 4) + myJobLevel + 10 * skLevel) + myLevel / 10) - (targetLevel / 10 + targetLUK / 10 + (targetMaxWeight - targetWeight) / 1000 + rand(targetAGI / 6, targetAGI / 3)) - int rate = rnd_value(sstatus->dex/12,sstatus->dex/4) + 10*skilllv + (sd?sd->status.job_level:0) + status_get_lv(src)/10 + int rate = rnd_value(sstatus->dex/12,sstatus->dex/4) + 10*skill_lv + (sd?sd->status.job_level:0) + status_get_lv(src)/10 - status_get_lv(bl)/10 - tstatus->luk/10 - (dstsd?(dstsd->max_weight-dstsd->weight)/10000:0) - rnd_value(tstatus->agi/6,tstatus->agi/3); - rate = cap_value(rate, skilllv+sstatus->dex/20, 100); - clif_skill_nodamage(src,bl,skillid,0,sc_start(bl,type,rate,skilllv,skill_get_time(skillid,skilllv))); + rate = cap_value(rate, skill_lv+sstatus->dex/20, 100); + clif_skill_nodamage(src,bl,skill_id,0,sc_start(bl,type,rate,skill_lv,skill_get_time(skill_id,skill_lv))); } else if (sd) - clif_skill_fail(sd,skillid,0,0); + clif_skill_fail(sd,skill_id,0,0); break; case SC_IGNORANCE: if (!(tsc && tsc->data[type])) { - int rate = rnd_value(sstatus->dex/12,sstatus->dex/4) + 10*skilllv + (sd?sd->status.job_level:0) + status_get_lv(src)/10 + int rate = rnd_value(sstatus->dex/12,sstatus->dex/4) + 10*skill_lv + (sd?sd->status.job_level:0) + status_get_lv(src)/10 - status_get_lv(bl)/10 - tstatus->luk/10 - (dstsd?(dstsd->max_weight-dstsd->weight)/10000:0) - rnd_value(tstatus->agi/6,tstatus->agi/3); - rate = cap_value(rate, skilllv+sstatus->dex/20, 100); - if (clif_skill_nodamage(src,bl,skillid,0,sc_start(bl,type,rate,skilllv,skill_get_time(skillid,skilllv)))) { - int sp = 200 * skilllv; + rate = cap_value(rate, skill_lv+sstatus->dex/20, 100); + if (clif_skill_nodamage(src,bl,skill_id,0,sc_start(bl,type,rate,skill_lv,skill_get_time(skill_id,skill_lv)))) { + int sp = 200 * skill_lv; if (dstmd) sp = dstmd->level * 2; if (status_zap(bl,0,sp)) status_heal(src,0,sp/2,3); - } else if (sd) clif_skill_fail(sd,skillid,0,0); + } else if (sd) clif_skill_fail(sd,skill_id,0,0); } else if (sd) - clif_skill_fail(sd,skillid,0,0); + clif_skill_fail(sd,skill_id,0,0); break; case LG_TRAMPLE: - clif_skill_damage(src,bl,tick, status_get_amotion(src), 0, -30000, 1, skillid, skilllv, 6); - map_foreachinrange(skill_destroy_trap,bl,skill_get_splash(skillid,skilllv),BL_SKILL,tick); + clif_skill_damage(src,bl,tick, status_get_amotion(src), 0, -30000, 1, skill_id, skill_lv, 6); + map_foreachinrange(skill_destroy_trap,bl,skill_get_splash(skill_id,skill_lv),BL_SKILL,tick); break; case LG_REFLECTDAMAGE: if (tsc && tsc->data[type]) status_change_end(bl,type,INVALID_TIMER); else - sc_start(bl,type,100,skilllv,skill_get_time(skillid,skilllv)); - clif_skill_nodamage(src,bl,skillid,skilllv,1); + sc_start(bl,type,100,skill_lv,skill_get_time(skill_id,skill_lv)); + clif_skill_nodamage(src,bl,skill_id,skill_lv,1); break; case LG_SHIELDSPELL: if (flag&1) { int duration = (sd) ? sd->bonus.shieldmdef * 2000 : 10000; - sc_start(bl,SC_SILENCE,100,skilllv,duration); + sc_start(bl,SC_SILENCE,100,skill_lv,duration); } else if (sd) { - int opt = skilllv; + int opt = skill_lv; int rate = rnd()%100; int val, brate; - switch (skilllv) { + switch (skill_lv) { case 1: { struct item_data *shield_data = sd->inventory_data[sd->equip_index[EQI_HAND_L]]; if (!shield_data || shield_data->type != IT_ARMOR) { // No shield? - clif_skill_fail(sd, skillid, USESKILL_FAIL_LEVEL, 0); + clif_skill_fail(sd, skill_id, USESKILL_FAIL_LEVEL, 0); break; } brate = shield_data->def * 10; @@ -8277,9 +8283,9 @@ switch (opt) { case 1: sc_start(bl,SC_SHIELDSPELL_DEF,100,opt,-1); - clif_skill_damage(src,bl,tick, status_get_amotion(src), 0, -30000, 1, skillid, skilllv, 6); + clif_skill_damage(src,bl,tick, status_get_amotion(src), 0, -30000, 1, skill_id, skill_lv, 6); if (rate < brate) - map_foreachinrange(skill_area_sub,src,skill_get_splash(skillid,skilllv),BL_CHAR,src,skillid,skilllv,tick,flag|BCT_ENEMY|1,skill_castend_damage_id); + map_foreachinrange(skill_area_sub,src,skill_get_splash(skill_id,skill_lv),BL_CHAR,src,skill_id,skill_lv,tick,flag|BCT_ENEMY|1,skill_castend_damage_id); status_change_end(bl,SC_SHIELDSPELL_DEF,INVALID_TIMER); break; case 2: @@ -8305,20 +8311,20 @@ switch (opt) { case 1: sc_start(bl,SC_SHIELDSPELL_MDEF,100,opt,-1); - clif_skill_damage(src,bl,tick, status_get_amotion(src), 0, -30000, 1, skillid, skilllv, 6); + clif_skill_damage(src,bl,tick, status_get_amotion(src), 0, -30000, 1, skill_id, skill_lv, 6); if (rate < brate) - map_foreachinrange(skill_area_sub,src,skill_get_splash(skillid,skilllv),BL_CHAR,src,skillid,skilllv,tick,flag|BCT_ENEMY|2,skill_castend_damage_id); + map_foreachinrange(skill_area_sub,src,skill_get_splash(skill_id,skill_lv),BL_CHAR,src,skill_id,skill_lv,tick,flag|BCT_ENEMY|2,skill_castend_damage_id); status_change_end(bl,SC_SHIELDSPELL_MDEF,INVALID_TIMER); break; case 2: sc_start(bl,SC_SHIELDSPELL_MDEF,100,opt,-1); - clif_skill_damage(src,bl,tick, status_get_amotion(src), 0, -30000, 1, skillid, skilllv, 6); + clif_skill_damage(src,bl,tick, status_get_amotion(src), 0, -30000, 1, skill_id, skill_lv, 6); if (rate < brate) - map_foreachinrange(skill_area_sub,src,skill_get_splash(skillid,skilllv),BL_CHAR,src,skillid,skilllv,tick,flag|BCT_ENEMY|1,skill_castend_nodamage_id); + map_foreachinrange(skill_area_sub,src,skill_get_splash(skill_id,skill_lv),BL_CHAR,src,skill_id,skill_lv,tick,flag|BCT_ENEMY|1,skill_castend_nodamage_id); break; case 3: if (sc_start(bl,SC_SHIELDSPELL_MDEF,brate,opt,sd->bonus.shieldmdef * 30000)) - clif_skill_nodamage(src,bl,PR_MAGNIFICAT,skilllv, + clif_skill_nodamage(src,bl,PR_MAGNIFICAT,skill_lv, sc_start(bl,SC_MAGNIFICAT,100,1,sd->bonus.shieldmdef * 30000)); break; } @@ -8327,7 +8333,7 @@ case 3: { struct item *it = &sd->status.inventory[sd->equip_index[EQI_HAND_L]]; if (!it) { // No shield? - clif_skill_fail(sd,skillid,USESKILL_FAIL_LEVEL,0); + clif_skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0); break; } brate = it->refine * 5; @@ -8340,7 +8346,7 @@ switch (opt) { case 1: val = 105 * it->refine / 10; - sc_start2(bl,SC_SHIELDSPELL_REF,brate,opt,val,skill_get_time(skillid,skilllv)); + sc_start2(bl,SC_SHIELDSPELL_REF,brate,opt,val,skill_get_time(skill_id,skill_lv)); break; case 2: case 3: @@ -8356,17 +8362,17 @@ } break; } - clif_skill_nodamage(src,bl,skillid,skilllv,1); + clif_skill_nodamage(src,bl,skill_id,skill_lv,1); } break; case LG_PIETY: if (flag&1) - sc_start(bl,type,100,skilllv,skill_get_time(skillid,skilllv)); + sc_start(bl,type,100,skill_lv,skill_get_time(skill_id,skill_lv)); else { skill_area_temp[2] = 0; - map_foreachinrange(skill_area_sub,bl,skill_get_splash(skillid,skilllv),BL_PC,src,skillid,skilllv,tick,flag|SD_PREAMBLE|BCT_PARTY|BCT_SELF|1,skill_castend_nodamage_id); - clif_skill_nodamage(src,bl,skillid,skilllv,1); + map_foreachinrange(skill_area_sub,bl,skill_get_splash(skill_id,skill_lv),BL_PC,src,skill_id,skill_lv,tick,flag|SD_PREAMBLE|BCT_PARTY|BCT_SELF|1,skill_castend_nodamage_id); + clif_skill_nodamage(src,bl,skill_id,skill_lv,1); } break; @@ -8377,13 +8383,13 @@ clif_updatestatus(sd,SP_BASEEXP); clif_updatestatus(sd,SP_JOBEXP); } - clif_skill_nodamage(bl,src,skillid,skilllv, - sc_start(bl, type, 100, skilllv, skill_get_time(skillid, skilllv))); + clif_skill_nodamage(bl,src,skill_id,skill_lv, + sc_start(bl, type, 100, skill_lv, skill_get_time(skill_id, skill_lv))); break; case SR_CURSEDCIRCLE: if (flag&1) { if (is_boss(bl)) break; - if (sc_start2(bl, type, 100, skilllv, src->id, skill_get_time(skillid, skilllv))) { + if (sc_start2(bl, type, 100, skill_lv, src->id, skill_get_time(skill_id, skill_lv))) { if (bl->type == BL_MOB) mob_unlocktarget((TBL_MOB *)bl,gettick()); unit_stop_attack(bl); @@ -8393,22 +8399,22 @@ } } else { int count = 0; - clif_skill_damage(src, bl, tick, status_get_amotion(src), 0, -30000, 1, skillid, skilllv, 6); - count = map_forcountinrange(skill_area_sub, src, skill_get_splash(skillid,skilllv), (sd)?sd->spiritball_old:15, // Assume 15 spiritballs in non-charactors - BL_CHAR, src, skillid, skilllv, tick, flag|BCT_ENEMY|1, skill_castend_nodamage_id); + clif_skill_damage(src, bl, tick, status_get_amotion(src), 0, -30000, 1, skill_id, skill_lv, 6); + count = map_forcountinrange(skill_area_sub, src, skill_get_splash(skill_id,skill_lv), (sd)?sd->spiritball_old:15, // Assume 15 spiritballs in non-charactors + BL_CHAR, src, skill_id, skill_lv, tick, flag|BCT_ENEMY|1, skill_castend_nodamage_id); if (sd) pc_delspiritball(sd, count, 0); - clif_skill_nodamage(src, src, skillid, skilllv, - sc_start2(src, SC_CURSEDCIRCLE_ATKER, 100, skilllv, count, skill_get_time(skillid,skilllv))); + clif_skill_nodamage(src, src, skill_id, skill_lv, + sc_start2(src, SC_CURSEDCIRCLE_ATKER, 100, skill_lv, count, skill_get_time(skill_id,skill_lv))); } break; case SR_RAISINGDRAGON: if (sd) { - short max = 5 + skilllv; - sc_start(bl, SC_EXPLOSIONSPIRITS, 100, skilllv, skill_get_time(skillid, skilllv)); + short max = 5 + skill_lv; + sc_start(bl, SC_EXPLOSIONSPIRITS, 100, skill_lv, skill_get_time(skill_id, skill_lv)); for (i = 0; i < max; i++) // Don't call more than max available spheres. - pc_addspiritball(sd, skill_get_time(skillid, skilllv), max); - clif_skill_nodamage(src, bl, skillid, skilllv, sc_start(bl, type, 100, skilllv,skill_get_time(skillid, skilllv))); + pc_addspiritball(sd, skill_get_time(skill_id, skill_lv), max); + clif_skill_nodamage(src, bl, skill_id, skill_lv, sc_start(bl, type, 100, skill_lv,skill_get_time(skill_id, skill_lv))); } break; @@ -8420,10 +8426,10 @@ pc_delspiritball(dstsd, dstsd->spiritball, 0); } if (i) status_percent_heal(src, 0, i); - clif_skill_nodamage(src, bl, skillid, skilllv, i ? 1:0); + clif_skill_nodamage(src, bl, skill_id, skill_lv, i ? 1:0); } else { - clif_skill_damage(src,bl,tick, status_get_amotion(src), 0, -30000, 1, skillid, skilllv, 6); - map_foreachinrange(skill_area_sub, bl, skill_get_splash(skillid, skilllv), splash_target(src), src, skillid, skilllv, tick, flag|BCT_ENEMY|BCT_SELF|SD_SPLASH|1, skill_castend_nodamage_id); + clif_skill_damage(src,bl,tick, status_get_amotion(src), 0, -30000, 1, skill_id, skill_lv, 6); + map_foreachinrange(skill_area_sub, bl, skill_get_splash(skill_id, skill_lv), splash_target(src), src, skill_id, skill_lv, tick, flag|BCT_ENEMY|BCT_SELF|SD_SPLASH|1, skill_castend_nodamage_id); } break; @@ -8436,21 +8442,21 @@ pc_delspiritball(sd, sd->spiritball, 0); } } - clif_skill_nodamage(src, bl, skillid, skilllv, 1); + clif_skill_nodamage(src, bl, skill_id, skill_lv, 1); break; case SR_GENTLETOUCH_CURE: { int heal; if (status_isimmune(bl)) { - clif_skill_nodamage(src,bl,skillid,skilllv,0); + clif_skill_nodamage(src,bl,skill_id,skill_lv,0); break; } - heal = 120 * skilllv + status_get_max_hp(bl) * (2 + skilllv) / 100; + heal = 120 * skill_lv + status_get_max_hp(bl) * (2 + skill_lv) / 100; status_heal(bl, heal, 0, 0); - if ((tsc && tsc->opt1) && (rnd()%100 < ((skilllv * 5) + (status_get_dex(src) + status_get_lv(src)) / 4) - (1 + (rnd() % 10)))) { + if ((tsc && tsc->opt1) && (rnd()%100 < ((skill_lv * 5) + (status_get_dex(src) + status_get_lv(src)) / 4) - (1 + (rnd() % 10)))) { status_change_end(bl, SC_STONE, INVALID_TIMER); status_change_end(bl, SC_FREEZE, INVALID_TIMER); status_change_end(bl, SC_STUN, INVALID_TIMER); @@ -8462,21 +8468,21 @@ status_change_end(bl, SC_FREEZING, INVALID_TIMER); } - clif_skill_nodamage(src,bl,skillid,skilllv,1); + clif_skill_nodamage(src,bl,skill_id,skill_lv,1); } break; case SR_GENTLETOUCH_CHANGE: case SR_GENTLETOUCH_REVITALIZE: - clif_skill_nodamage(src,bl,skillid,skilllv, - sc_start2(bl,type,100,skilllv,src->id,skill_get_time(skillid,skilllv))); + clif_skill_nodamage(src,bl,skill_id,skill_lv, + sc_start2(bl,type,100,skill_lv,src->id,skill_get_time(skill_id,skill_lv))); break; case WA_SWING_DANCE: case WA_MOONLIT_SERENADE: if (sd == NULL || sd->status.party_id == 0 || (flag & 1)) - sc_start(bl,type,100,skilllv,skill_get_time(skillid,skilllv)); + sc_start(bl,type,100,skill_lv,skill_get_time(skill_id,skill_lv)); else if (sd) { // Only shows effects on caster. - clif_skill_nodamage(src,bl,skillid,skilllv,1); - party_foreachsamemap(skill_area_sub, sd, skill_get_splash(skillid, skilllv), src, skillid, skilllv, tick, flag|BCT_PARTY|1, skill_castend_nodamage_id); + clif_skill_nodamage(src,bl,skill_id,skill_lv,1); + party_foreachsamemap(skill_area_sub, sd, skill_get_splash(skill_id, skill_lv), src, skill_id, skill_lv, tick, flag|BCT_PARTY|1, skill_castend_nodamage_id); } break; @@ -8484,17 +8490,17 @@ case MI_RUSH_WINDMILL: case MI_ECHOSONG: if (sd == NULL || sd->status.party_id == 0 || (flag & 1)) - sc_start4(bl,type,100,skilllv,6*skilllv,(sd?pc_checkskill(sd,WM_LESSON):0),(sd?sd->status.job_level:0),skill_get_time(skillid,skilllv)); + sc_start4(bl,type,100,skill_lv,6*skill_lv,(sd?pc_checkskill(sd,WM_LESSON):0),(sd?sd->status.job_level:0),skill_get_time(skill_id,skill_lv)); else if (sd) { // Only shows effects on caster. - clif_skill_nodamage(src,bl,skillid,skilllv,1); - party_foreachsamemap(skill_area_sub, sd, skill_get_splash(skillid, skilllv), src, skillid, skilllv, tick, flag|BCT_PARTY|1, skill_castend_nodamage_id); + clif_skill_nodamage(src,bl,skill_id,skill_lv,1); + party_foreachsamemap(skill_area_sub, sd, skill_get_splash(skill_id, skill_lv), src, skill_id, skill_lv, tick, flag|BCT_PARTY|1, skill_castend_nodamage_id); } break; case MI_HARMONIZE: if (src != bl) - clif_skill_nodamage(src, src, skillid, skilllv, sc_start(src, type, 100, skilllv, skill_get_time(skillid,skilllv))); - clif_skill_nodamage(src, bl, skillid, skilllv, sc_start(bl, type, 100, skilllv, skill_get_time(skillid,skilllv))); + clif_skill_nodamage(src, src, skill_id, skill_lv, sc_start(src, type, 100, skill_lv, skill_get_time(skill_id,skill_lv))); + clif_skill_nodamage(src, bl, skill_id, skill_lv, sc_start(bl, type, 100, skill_lv, skill_get_time(skill_id,skill_lv))); break; case WM_DEADHILLHERE: @@ -8502,13 +8508,13 @@ if (!status_isdead(bl)) break; - if (rnd()%100 < 88 + 2 * skilllv) { + if (rnd()%100 < 88 + 2 * skill_lv) { int heal = tstatus->sp; if (heal <= 0) heal = 1; tstatus->hp = heal; - tstatus->sp -= tstatus->sp * (120 - 20 * skilllv) / 100; - clif_skill_nodamage(src,bl,skillid,skilllv,1); + tstatus->sp -= tstatus->sp * (120 - 20 * skill_lv) / 100; + clif_skill_nodamage(src,bl,skill_id,skill_lv,1); pc_revive((TBL_PC *)bl,heal,0); clif_resurrection(bl,1); } @@ -8518,48 +8524,48 @@ case WM_SIRCLEOFNATURE: flag |= BCT_SELF|BCT_PARTY|BCT_GUILD; case WM_VOICEOFSIREN: - if (skillid != WM_SIRCLEOFNATURE) + if (skill_id != WM_SIRCLEOFNATURE) flag &= ~BCT_SELF; if (flag&1) { - sc_start2(bl,type,(skillid==WM_VOICEOFSIREN)?20+10*skilllv:100,skilllv,(skillid==WM_VOICEOFSIREN)?src->id:0,skill_get_time(skillid,skilllv)); + sc_start2(bl,type,(skill_id==WM_VOICEOFSIREN)?20+10*skill_lv:100,skill_lv,(skill_id==WM_VOICEOFSIREN)?src->id:0,skill_get_time(skill_id,skill_lv)); } else { - map_foreachinrange(skill_area_sub, src, skill_get_splash(skillid,skilllv),(skillid==WM_VOICEOFSIREN)?BL_CHAR|BL_SKILL:BL_PC, src, skillid, skilllv, tick, flag|BCT_ENEMY|1, skill_castend_nodamage_id); - clif_skill_nodamage(src,bl,skillid,skilllv,1); + map_foreachinrange(skill_area_sub, src, skill_get_splash(skill_id,skill_lv),(skill_id==WM_VOICEOFSIREN)?BL_CHAR|BL_SKILL:BL_PC, src, skill_id, skill_lv, tick, flag|BCT_ENEMY|1, skill_castend_nodamage_id); + clif_skill_nodamage(src,bl,skill_id,skill_lv,1); } break; case WM_GLOOMYDAY: - clif_skill_nodamage(src,bl,skillid,skilllv,1); + clif_skill_nodamage(src,bl,skill_id,skill_lv,1); if (dstsd && (pc_checkskill(dstsd,KN_BRANDISHSPEAR) || pc_checkskill(dstsd,LK_SPIRALPIERCE) || pc_checkskill(dstsd,CR_SHIELDCHARGE) || pc_checkskill(dstsd,CR_SHIELDBOOMERANG) || pc_checkskill(dstsd,PA_SHIELDCHAIN) || pc_checkskill(dstsd,LG_SHIELDPRESS))) { - sc_start(bl,SC_GLOOMYDAY_SK,100,skilllv,skill_get_time(skillid,skilllv)); + sc_start(bl,SC_GLOOMYDAY_SK,100,skill_lv,skill_get_time(skill_id,skill_lv)); break; } - sc_start(bl,type,100,skilllv,skill_get_time(skillid,skilllv)); + sc_start(bl,type,100,skill_lv,skill_get_time(skill_id,skill_lv)); break; case WM_SATURDAY_NIGHT_FEVER: if (flag&1) { // Affect to all targets arround the caster and caster too. if (!(tsc && tsc->data[type])) - sc_start(bl, type, 100, skilllv,skill_get_time(skillid, skilllv)); + sc_start(bl, type, 100, skill_lv,skill_get_time(skill_id, skill_lv)); } else if (flag&2) { if (src->id != bl->id && battle_check_target(src,bl,BCT_ENEMY) > 0) status_fix_damage(src,bl,9999,clif_damage(src,bl,tick,0,0,9999,0,0,0)); } else if (sd) { - short chance = sstatus->int_/6 + sd->status.job_level/5 + skilllv*4; + short chance = sstatus->int_/6 + sd->status.job_level/5 + skill_lv*4; if (!sd->status.party_id || (rnd()%100 > chance)) { - clif_skill_fail(sd,skillid,USESKILL_FAIL_NEED_HELPER,0); + clif_skill_fail(sd,skill_id,USESKILL_FAIL_NEED_HELPER,0); break; } - if (map_foreachinrange(skill_area_sub, bl, skill_get_splash(skillid,skilllv), - BL_PC, src, skillid, skilllv, tick, BCT_ENEMY, skill_area_sub_count) > 7) + if (map_foreachinrange(skill_area_sub, bl, skill_get_splash(skill_id,skill_lv), + BL_PC, src, skill_id, skill_lv, tick, BCT_ENEMY, skill_area_sub_count) > 7) flag |= 2; else flag |= 1; - map_foreachinrange(skill_area_sub, src, skill_get_splash(skillid,skilllv),BL_PC, src, skillid, skilllv, tick, flag|BCT_ENEMY|BCT_SELF, skill_castend_nodamage_id); - clif_skill_nodamage(src, bl, skillid, skilllv, - sc_start(src,SC_STOP,100,skilllv,skill_get_time2(skillid,skilllv))); + map_foreachinrange(skill_area_sub, src, skill_get_splash(skill_id,skill_lv),BL_PC, src, skill_id, skill_lv, tick, flag|BCT_ENEMY|BCT_SELF, skill_castend_nodamage_id); + clif_skill_nodamage(src, bl, skill_id, skill_lv, + sc_start(src,SC_STOP,100,skill_lv,skill_get_time2(skill_id,skill_lv))); if (flag&2) // Dealed here to prevent conflicts status_fix_damage(src,bl,9999,clif_damage(src,bl,tick,0,0,9999,0,0,0)); } @@ -8571,14 +8577,14 @@ if (flag&1) { // These affect to to all party members near the caster. struct status_change *sc = status_get_sc(src); if (sc && sc->data[type]) { - sc_start2(bl,type,100,skilllv,sc->data[type]->val2,skill_get_time(skillid,skilllv)); + sc_start2(bl,type,100,skill_lv,sc->data[type]->val2,skill_get_time(skill_id,skill_lv)); } } else if (sd) { - short lv = (short)skilllv; - int count = skill_check_pc_partner(sd,skillid,&lv,skill_get_splash(skillid,skilllv),1); - if (sc_start2(bl,type,100,skilllv,count,skill_get_time(skillid,skilllv))) - party_foreachsamemap(skill_area_sub,sd,skill_get_splash(skillid,skilllv),src,skillid,skilllv,tick,flag|BCT_PARTY|1,skill_castend_nodamage_id); - clif_skill_nodamage(src,bl,skillid,skilllv,1); + uint16 lv = skill_lv; + int count = skill_check_pc_partner(sd,skill_id,&lv,skill_get_splash(skill_id,skill_lv),1); + if (sc_start2(bl,type,100,skill_lv,count,skill_get_time(skill_id,skill_lv))) + party_foreachsamemap(skill_area_sub,sd,skill_get_splash(skill_id,skill_lv),src,skill_id,skill_lv,tick,flag|BCT_PARTY|1,skill_castend_nodamage_id); + clif_skill_nodamage(src,bl,skill_id,skill_lv,1); } break; @@ -8587,39 +8593,39 @@ case WM_BEYOND_OF_WARCRY: case WM_UNLIMITED_HUMMING_VOICE: if (flag&1) { - sc_start2(bl,type,100,skilllv,skill_area_temp[0],skill_get_time(skillid,skilllv)); + sc_start2(bl,type,100,skill_lv,skill_area_temp[0],skill_get_time(skill_id,skill_lv)); } else { // These affect to all targets arround the caster. - short lv = (short)skilllv; - skill_area_temp[0] = (sd) ? skill_check_pc_partner(sd,skillid,&lv,skill_get_splash(skillid,skilllv),1) : 50; // 50% chance in non BL_PC (clones). - map_foreachinrange(skill_area_sub, src, skill_get_splash(skillid,skilllv),BL_PC, src, skillid, skilllv, tick, flag|BCT_ENEMY|1, skill_castend_nodamage_id); - clif_skill_nodamage(src,bl,skillid,skilllv,1); + uint16 lv = skill_lv; + skill_area_temp[0] = (sd) ? skill_check_pc_partner(sd,skill_id,&lv,skill_get_splash(skill_id,skill_lv),1) : 50; // 50% chance in non BL_PC (clones). + map_foreachinrange(skill_area_sub, src, skill_get_splash(skill_id,skill_lv),BL_PC, src, skill_id, skill_lv, tick, flag|BCT_ENEMY|1, skill_castend_nodamage_id); + clif_skill_nodamage(src,bl,skill_id,skill_lv,1); } break; case WM_RANDOMIZESPELL: { - int improv_skillid = 0, improv_skilllv; + int improv_skill_id = 0, improv_skill_lv; do { i = rnd() % MAX_SKILL_IMPROVISE_DB; - improv_skillid = skill_improvise_db[i].skillid; - } while (improv_skillid == 0 || rnd()%10000 >= skill_improvise_db[i].per); - improv_skilllv = 4 + skilllv; - clif_skill_nodamage(src, bl, skillid, skilllv, 1); + improv_skill_id = skill_improvise_db[i].skill_id; + } while (improv_skill_id == 0 || rnd()%10000 >= skill_improvise_db[i].per); + improv_skill_lv = 4 + skill_lv; + clif_skill_nodamage(src, bl, skill_id, skill_lv, 1); if (sd) { sd->state.abra_flag = 2; - sd->skillitem = improv_skillid; - sd->skillitemlv = improv_skilllv; - clif_item_skill(sd, improv_skillid, improv_skilllv); + sd->skillitem = improv_skill_id; + sd->skillitemlv = improv_skill_lv; + clif_item_skill(sd, improv_skill_id, improv_skill_lv); } else { struct unit_data *ud = unit_bl2ud(src); - int inf = skill_get_inf(improv_skillid); + int inf = skill_get_inf(improv_skill_id); int target_id = 0; if (!ud) break; if (inf&INF_SELF_SKILL || inf&INF_SUPPORT_SKILL) { if (src->type == BL_PET) bl = (struct block_list *)((TBL_PET *)src)->msd; if (!bl) bl = src; - unit_skilluse_id(src, bl->id, improv_skillid, improv_skilllv); + unit_skilluse_id(src, bl->id, improv_skill_id, improv_skill_lv); } else { if (ud->target) target_id = ud->target; @@ -8633,12 +8639,12 @@ } if (!target_id) break; - if (skill_get_casttype(improv_skillid) == CAST_GROUND) { + if (skill_get_casttype(improv_skill_id) == CAST_GROUND) { bl = map_id2bl(target_id); if (!bl) bl = src; - unit_skilluse_pos(src, bl->x, bl->y, improv_skillid, improv_skilllv); + unit_skilluse_pos(src, bl->x, bl->y, improv_skill_id, improv_skill_lv); } else - unit_skilluse_id(src, target_id, improv_skillid, improv_skilllv); + unit_skilluse_id(src, target_id, improv_skill_id, improv_skill_lv); } } } @@ -8651,7 +8657,7 @@ short x, y; // Destiny position. unsigned short mapindex; - if (skillid == RETURN_TO_ELDICASTES) { + if (skill_id == RETURN_TO_ELDICASTES) { x = 198; y = 187; mapindex = mapindex_name2id(MAP_DICASTES); @@ -8663,7 +8669,7 @@ if (!mapindex) { //Given map not found? - clif_skill_fail(sd,skillid,USESKILL_FAIL_LEVEL,0); + clif_skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0); map_freeblock_unlock(); return 0; } @@ -8678,17 +8684,17 @@ else tsc->opt1 = OPT1_SLEEP; clif_changeoption(bl); - clif_skill_nodamage(src, bl, skillid, skilllv, 1); + clif_skill_nodamage(src, bl, skill_id, skill_lv, 1); } break; case SO_ARRULLO: if (flag&1) - sc_start2(bl, type, 88 + 2 * skilllv, skilllv, 1, skill_get_time(skillid, skilllv)); + sc_start2(bl, type, 88 + 2 * skill_lv, skill_lv, 1, skill_get_time(skill_id, skill_lv)); else { - clif_skill_nodamage(src, bl, skillid, 0, 1); - map_foreachinrange(skill_area_sub, bl, skill_get_splash(skillid, skilllv), BL_CHAR, - src, skillid, skilllv, tick, flag|BCT_ENEMY|1, skill_castend_nodamage_id); + clif_skill_nodamage(src, bl, skill_id, 0, 1); + map_foreachinrange(skill_area_sub, bl, skill_get_splash(skill_id, skill_lv), BL_CHAR, + src, skill_id, skill_lv, tick, flag|BCT_ENEMY|1, skill_castend_nodamage_id); } break; @@ -8697,19 +8703,19 @@ case SO_SUMMON_VENTUS: case SO_SUMMON_TERA: if (sd) { - int elemental_class = skill_get_elemental_type(skillid,skilllv); + int elemental_class = skill_get_elemental_type(skill_id,skill_lv); // Remove previous elemental fisrt. if (sd->ed && elemental_delete(sd->ed,0)) { - clif_skill_fail(sd,skillid,0,0); + clif_skill_fail(sd,skill_id,0,0); break; } // Summoning the new one. - if (!elemental_create(sd,elemental_class,skill_get_time(skillid,skilllv))) { - clif_skill_fail(sd,skillid,0,0); + if (!elemental_create(sd,elemental_class,skill_get_time(skill_id,skill_lv))) { + clif_skill_fail(sd,skill_id,0,0); break; } - clif_skill_nodamage(src,bl,skillid,skilllv,1); + clif_skill_nodamage(src,bl,skill_id,skill_lv,1); } break; @@ -8717,15 +8723,15 @@ if (sd) { int mode = EL_MODE_PASSIVE; // Standard mode. if (!sd->ed) { - clif_skill_fail(sd,skillid,0,0); + clif_skill_fail(sd,skill_id,0,0); break; } - if (skilllv == 4) { // At level 4 delete elementals. + if (skill_lv == 4) { // At level 4 delete elementals. if (elemental_delete(sd->ed, 0)) - clif_skill_fail(sd,skillid,0,0); + clif_skill_fail(sd,skill_id,0,0); break; } - switch (skilllv) { // Select mode bassed on skill level used. + switch (skill_lv) { // Select mode bassed on skill level used. case 1: mode = EL_MODE_PASSIVE; break; @@ -8737,10 +8743,10 @@ break; } if (!elemental_change_mode(sd->ed,mode)) { - clif_skill_fail(sd,skillid,0,0); + clif_skill_fail(sd,skill_id,0,0); break; } - clif_skill_nodamage(src,bl,skillid,skilllv,1); + clif_skill_nodamage(src,bl,skill_id,skill_lv,1); } break; @@ -8750,7 +8756,7 @@ if (!sd->ed) break; elemental_action(sd->ed, bl, tick); - clif_skill_nodamage(src,bl,skillid,skilllv,1); + clif_skill_nodamage(src,bl,skill_id,skill_lv,1); switch(sd->ed->db->class_){ case 2115:case 2124: case 2118:case 2121: @@ -8761,7 +8767,7 @@ duration = 9000; break; } - skill_blockpc_start(sd, skillid, duration); + skill_blockpc_start(sd, skill_id, duration); } break; @@ -8771,41 +8777,41 @@ int s_hp = sd->battle_status.hp * 10 / 100, s_sp = sd->battle_status.sp * 10 / 100; int e_hp, e_sp; if (!ed) { - clif_skill_fail(sd,skillid,0,0); + clif_skill_fail(sd,skill_id,0,0); break; } if (!status_charge(&sd->bl,s_hp,s_sp)) { - clif_skill_fail(sd,skillid,0,0); + clif_skill_fail(sd,skill_id,0,0); break; } e_hp = ed->battle_status.max_hp * 10 / 100; e_sp = ed->battle_status.max_sp * 10 / 100; status_heal(&ed->bl,e_hp,e_sp,3); - clif_skill_nodamage(src,&ed->bl,skillid,skilllv,1); + clif_skill_nodamage(src,&ed->bl,skill_id,skill_lv,1); } break; case GN_CHANGEMATERIAL: case SO_EL_ANALYSIS: if (sd) { - clif_skill_nodamage(src,bl,skillid,skilllv,1); - clif_skill_itemlistwindow(sd,skillid,skilllv); + clif_skill_nodamage(src,bl,skill_id,skill_lv,1); + clif_skill_itemlistwindow(sd,skill_id,skill_lv); } break; case GN_BLOOD_SUCKER: { struct status_change *sc = status_get_sc(src); - if (sc && sc->bs_counter < skill_get_maxcount(skillid , skilllv)) { + if (sc && sc->bs_counter < skill_get_maxcount(skill_id , skill_lv)) { if (tsc && tsc->data[type]) { (sc->bs_counter)--; status_change_end(src, type, INVALID_TIMER); // the first one cancels and the last one will take effect resetting the timer } - clif_skill_nodamage(src, bl, skillid, skilllv, 1); - sc_start2(bl, type, 100, skilllv, src->id, skill_get_time(skillid,skilllv)); + clif_skill_nodamage(src, bl, skill_id, skill_lv, 1); + sc_start2(bl, type, 100, skill_lv, src->id, skill_get_time(skill_id,skill_lv)); (sc->bs_counter)++; } else if (sd) { - clif_skill_fail(sd, skillid, USESKILL_FAIL_LEVEL, 0); + clif_skill_fail(sd, skill_id, USESKILL_FAIL_LEVEL, 0); break; } } @@ -8813,12 +8819,12 @@ case GN_MANDRAGORA: if (flag&1) { - if (clif_skill_nodamage(bl, src, skillid, skilllv, - sc_start(bl, type, 25 + 10 * skilllv, skilllv, skill_get_time(skillid, skilllv)))) - status_zap(bl, 0, status_get_max_sp(bl) * (25 + 5 * skilllv) / 100); + if (clif_skill_nodamage(bl, src, skill_id, skill_lv, + sc_start(bl, type, 25 + 10 * skill_lv, skill_lv, skill_get_time(skill_id, skill_lv)))) + status_zap(bl, 0, status_get_max_sp(bl) * (25 + 5 * skill_lv) / 100); } else - map_foreachinrange(skill_area_sub, bl, skill_get_splash(skillid, skilllv), BL_CHAR, - src, skillid, skilllv, tick, flag|BCT_ENEMY|1, skill_castend_nodamage_id); + map_foreachinrange(skill_area_sub, bl, skill_get_splash(skill_id, skill_lv), BL_CHAR, + src, skill_id, skill_lv, tick, flag|BCT_ENEMY|1, skill_castend_nodamage_id); break; case GN_SLINGITEM: @@ -8834,9 +8840,9 @@ if (itemdb_is_GNbomb(ammo_id)) { if (battle_check_target(src,bl,BCT_ENEMY) > 0) { // Only attack if the target is an enemy. if (ammo_id == 13263) - map_foreachincell(skill_area_sub,bl->m,bl->x,bl->y,BL_CHAR,src,GN_SLINGITEM_RANGEMELEEATK,skilllv,tick,flag|BCT_ENEMY|1,skill_castend_damage_id); + map_foreachincell(skill_area_sub,bl->m,bl->x,bl->y,BL_CHAR,src,GN_SLINGITEM_RANGEMELEEATK,skill_lv,tick,flag|BCT_ENEMY|1,skill_castend_damage_id); else - skill_attack(BF_WEAPON,src,src,bl,GN_SLINGITEM_RANGEMELEEATK,skilllv,tick,flag); + skill_attack(BF_WEAPON,src,src,bl,GN_SLINGITEM_RANGEMELEEATK,skill_lv,tick,flag); } else //Otherwise, it fails, shows animation and removes items. clif_skill_fail(sd,GN_SLINGITEM_RANGEMELEEATK,0xa,0); } else if (itemdb_is_GNthrowable(ammo_id)) { @@ -8849,8 +8855,8 @@ run_script(script,0,src->id,0); } } - clif_skill_nodamage(src,bl,skillid,skilllv,1); - clif_skill_nodamage(src,bl,skillid,skilllv,1);// This packet is received twice actually, I think it is to show the animation. + clif_skill_nodamage(src,bl,skill_id,skill_lv,1); + clif_skill_nodamage(src,bl,skill_id,skill_lv,1);// This packet is received twice actually, I think it is to show the animation. break; case GN_MIX_COOKING: @@ -8858,12 +8864,12 @@ case GN_S_PHARMACY: if (sd) { int qty = 1; - sd->skillid_old = skillid; - sd->skilllv_old = skilllv; - if (skillid != GN_S_PHARMACY && skilllv > 1) + sd->skillid_old = skill_id; + sd->skilllv_old = skill_lv; + if (skill_id != GN_S_PHARMACY && skill_lv > 1) qty = 10; - clif_cooking_list(sd,(skillid - GN_MIX_COOKING) + 27,skillid,qty,skillid==GN_MAKEBOMB?5:6); - clif_skill_nodamage(src,bl,skillid,skilllv,1); + clif_cooking_list(sd,(skill_id - GN_MIX_COOKING) + 27,skill_id,qty,skill_id==GN_MAKEBOMB?5:6); + clif_skill_nodamage(src,bl,skill_id,skill_lv,1); } break; case EL_CIRCLE_OF_FIRE: @@ -8891,14 +8897,14 @@ struct status_change *sc = status_get_sc(&ele->bl); if ((sc && sc->data[type2]) || (tsc && tsc->data[type])) { - elemental_clean_single_effect(ele, skillid); + elemental_clean_single_effect(ele, skill_id); } else { - clif_skill_nodamage(src,bl,skillid,skilllv,1); - clif_skill_damage(src, src, tick, status_get_amotion(src), 0, -30000, 1, skillid, skilllv, 6); - if (skillid == EL_WIND_STEP) // There aren't telemport, just push to the master. - skill_blown(src,bl,skill_get_blewcount(skillid,skilllv),(map_calc_dir(src,bl->x,bl->y)+4)%8,0); - sc_start(src,type2,100,skilllv,skill_get_time(skillid,skilllv)); - sc_start(bl,type,100,skilllv,skill_get_time(skillid,skilllv)); + clif_skill_nodamage(src,bl,skill_id,skill_lv,1); + clif_skill_damage(src, src, tick, status_get_amotion(src), 0, -30000, 1, skill_id, skill_lv, 6); + if (skill_id == EL_WIND_STEP) // There aren't telemport, just push to the master. + skill_blown(src,bl,skill_get_blewcount(skill_id,skill_lv),(map_calc_dir(src,bl->x,bl->y)+4)%8,0); + sc_start(src,type2,100,skill_lv,skill_get_time(skill_id,skill_lv)); + sc_start(bl,type,100,skill_lv,skill_get_time(skill_id,skill_lv)); } } } @@ -8908,9 +8914,9 @@ case EL_WATER_BARRIER: case EL_ZEPHYR: case EL_POWER_OF_GAIA: - clif_skill_nodamage(src,src,skillid,skilllv,1); - clif_skill_damage(src, src, tick, status_get_amotion(src), 0, -30000, 1, skillid, skilllv, 6); - skill_unitsetting(src,skillid,skilllv,bl->x,bl->y,0); + clif_skill_nodamage(src,src,skill_id,skill_lv,1); + clif_skill_damage(src, src, tick, status_get_amotion(src), 0, -30000, 1, skill_id, skill_lv, 6); + skill_unitsetting(src,skill_id,skill_lv,bl->x,bl->y,0); break; case EL_WATER_SCREEN: { @@ -8919,14 +8925,14 @@ struct status_change *sc = status_get_sc(&ele->bl); sc_type type2 = type-1; - clif_skill_nodamage(src,src,skillid,skilllv,1); + clif_skill_nodamage(src,src,skill_id,skill_lv,1); if ((sc && sc->data[type2]) || (tsc && tsc->data[type])) { - elemental_clean_single_effect(ele, skillid); + elemental_clean_single_effect(ele, skill_id); } else { // This not heals at the end. - clif_skill_damage(src, src, tick, status_get_amotion(src), 0, -30000, 1, skillid, skilllv, 6); - sc_start(src,type2,100,skilllv,skill_get_time(skillid,skilllv)); - sc_start(bl,type,100,src->id,skill_get_time(skillid,skilllv)); + clif_skill_damage(src, src, tick, status_get_amotion(src), 0, -30000, 1, skill_id, skill_lv, 6); + sc_start(src,type2,100,skill_lv,skill_get_time(skill_id,skill_lv)); + sc_start(bl,type,100,src->id,skill_get_time(skill_id,skill_lv)); } } } @@ -8937,9 +8943,9 @@ case KO_KAZEHU_SEIRAN: case KO_DOHU_KOUKAI: if (sd) { - int ttype = skill_get_ele(skillid, skilllv); - clif_skill_nodamage(src, bl, skillid, skilllv, 1); - pc_add_talisman(sd, skill_get_time(skillid, skilllv), 10, ttype); + int ttype = skill_get_ele(skill_id, skill_lv); + clif_skill_nodamage(src, bl, skill_id, skill_lv, 1); + pc_add_talisman(sd, skill_get_time(skill_id, skill_lv), 10, ttype); } break; @@ -8953,54 +8959,54 @@ md->special_state.ai = AI_ZANZOU; if (md->deletetimer != INVALID_TIMER) delete_timer(md->deletetimer, mob_timer_delete); - md->deletetimer = add_timer(gettick() + skill_get_time(skillid, skilllv), mob_timer_delete, md->bl.id, 0); + md->deletetimer = add_timer(gettick() + skill_get_time(skill_id, skill_lv), mob_timer_delete, md->bl.id, 0); mob_spawn(md); pc_setinvincibletimer(sd,500);// unlock target lock - clif_skill_nodamage(src,bl,skillid,skilllv,1); - skill_blown(src,bl,skill_get_blewcount(skillid,skilllv),unit_getdir(bl),0); + clif_skill_nodamage(src,bl,skill_id,skill_lv,1); + skill_blown(src,bl,skill_get_blewcount(skill_id,skill_lv),unit_getdir(bl),0); } } break; case KO_KYOUGAKU: if (dstsd && tsc && !tsc->data[type] && rand()%100 < tstatus->int_/2) { - clif_skill_nodamage(src,bl,skillid,skilllv, - sc_start(bl,type,100,skilllv,skill_get_time(skillid,skilllv))); + clif_skill_nodamage(src,bl,skill_id,skill_lv, + sc_start(bl,type,100,skill_lv,skill_get_time(skill_id,skill_lv))); } else if (sd) - clif_skill_fail(sd,skillid,USESKILL_FAIL_LEVEL,0); + clif_skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0); break; case KO_JYUSATSU: if (dstsd && tsc && !tsc->data[type] && - rand()%100 < ((45+5*skilllv) + skilllv*5 - status_get_int(bl)/2)) {//[(Base chance of success) + (Skill Level x 5) - (int / 2)]%. - clif_skill_nodamage(src,bl,skillid,skilllv, - status_change_start(bl,type,10000,skilllv,0,0,0,skill_get_time(skillid,skilllv),1)); - status_zap(bl, tstatus->max_hp*skilllv*5/100 , 0); + rand()%100 < ((45+5*skill_lv) + skill_lv*5 - status_get_int(bl)/2)) {//[(Base chance of success) + (Skill Level x 5) - (int / 2)]%. + clif_skill_nodamage(src,bl,skill_id,skill_lv, + status_change_start(bl,type,10000,skill_lv,0,0,0,skill_get_time(skill_id,skill_lv),1)); + status_zap(bl, tstatus->max_hp*skill_lv*5/100 , 0); if (status_get_lv(bl) <= status_get_lv(src)) - status_change_start(bl,SC_COMA,10,skilllv,0,src->id,0,0,0); + status_change_start(bl,SC_COMA,10,skill_lv,0,src->id,0,0,0); } else if (sd) - clif_skill_fail(sd,skillid,USESKILL_FAIL_LEVEL,0); + clif_skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0); break; case KO_GENWAKU: if (!map_flag_gvg(src->m) && (dstsd || dstmd) && battle_check_target(src,bl,BCT_ENEMY) > 0) { int x = src->x, y = src->y; - if (sd && rnd()%100 > ((45+5*skilllv) - status_get_int(bl)/10)) {//[(Base chance of success) - (Intelligence Objectives / 10)]%. - clif_skill_fail(sd,skillid,USESKILL_FAIL_LEVEL,0); + if (sd && rnd()%100 > ((45+5*skill_lv) - status_get_int(bl)/10)) {//[(Base chance of success) - (Intelligence Objectives / 10)]%. + clif_skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0); break; } if (unit_movepos(src,bl->x,bl->y,0,0)) { - clif_skill_nodamage(src,src,skillid,skilllv,1); + clif_skill_nodamage(src,src,skill_id,skill_lv,1); clif_slide(src,bl->x,bl->y) ; - sc_start(src,SC_CONFUSION,80,skilllv,skill_get_time(skillid,skilllv)); + sc_start(src,SC_CONFUSION,80,skill_lv,skill_get_time(skill_id,skill_lv)); if (unit_movepos(bl,x,y,0,0)) { - clif_skill_damage(bl,bl,tick, status_get_amotion(src), 0, -30000, 1, skillid, -1, 6); + clif_skill_damage(bl,bl,tick, status_get_amotion(src), 0, -30000, 1, skill_id, -1, 6); if (bl->type == BL_PC && pc_issit((TBL_PC *)bl)) clif_sitting(bl); //Avoid sitting sync problem clif_slide(bl,x,y) ; - sc_start(bl,SC_CONFUSION,80,skilllv,skill_get_time(skillid,skilllv)); + sc_start(bl,SC_CONFUSION,80,skill_lv,skill_get_time(skill_id,skill_lv)); } } } @@ -9008,18 +9014,18 @@ case OB_AKAITSUKI: case OB_OBOROGENSOU: - if (sd && ((skillid == OB_OBOROGENSOU && bl->type == BL_MOB) // This skill does not work on monsters. + if (sd && ((skill_id == OB_OBOROGENSOU && bl->type == BL_MOB) // This skill does not work on monsters. || is_boss(bl))) { // Does not work on Boss monsters. - clif_skill_fail(sd,skillid,USESKILL_FAIL_LEVEL,0); + clif_skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0); break; } case KO_IZAYOI: case OB_ZANGETSU: case KG_KYOMU: case KG_KAGEMUSYA: - clif_skill_nodamage(src,bl,skillid,skilllv, - sc_start(bl,type,100,skilllv,skill_get_time(skillid,skilllv))); - clif_skill_damage(src,bl,tick, status_get_amotion(src), 0, -30000, 1, skillid, skilllv, 6); + clif_skill_nodamage(src,bl,skill_id,skill_lv, + sc_start(bl,type,100,skill_lv,skill_get_time(skill_id,skill_lv))); + clif_skill_damage(src,bl,tick, status_get_amotion(src), 0, -30000, 1, skill_id, skill_lv, 6); break; case KG_KAGEHUMI: @@ -9027,8 +9033,8 @@ if (tsc && (tsc->option&(OPTION_CLOAK|OPTION_HIDE) || tsc->data[SC_CAMOUFLAGE] || tsc->data[SC__SHADOWFORM] || tsc->data[SC_MARIONETTE] || tsc->data[SC_HARMONIZE])) { - sc_start(src, type, 100, skilllv, skill_get_time(skillid, skilllv)); - sc_start(bl, type, 100, skilllv, skill_get_time(skillid, skilllv)); + sc_start(src, type, 100, skill_lv, skill_get_time(skill_id, skill_lv)); + sc_start(bl, type, 100, skill_lv, skill_get_time(skill_id, skill_lv)); status_change_end(bl, SC_HIDING, INVALID_TIMER); status_change_end(bl, SC_CLOAKING, INVALID_TIMER); status_change_end(bl, SC_CLOAKINGEXCEED, INVALID_TIMER); @@ -9038,12 +9044,12 @@ status_change_end(bl, SC_HARMONIZE, INVALID_TIMER); } if (skill_area_temp[2] == 1) { - clif_skill_damage(src,src,tick, status_get_amotion(src), 0, -30000, 1, skillid, skilllv, 6); - sc_start(src, SC_STOP, 100, skilllv, skill_get_time(skillid, skilllv)); + clif_skill_damage(src,src,tick, status_get_amotion(src), 0, -30000, 1, skill_id, skill_lv, 6); + sc_start(src, SC_STOP, 100, skill_lv, skill_get_time(skill_id, skill_lv)); } } else { skill_area_temp[2] = 0; - map_foreachinrange(skill_area_sub, bl, skill_get_splash(skillid, skilllv), splash_target(src), src, skillid, skilllv, tick, flag|BCT_ENEMY|SD_SPLASH|1, skill_castend_nodamage_id); + map_foreachinrange(skill_area_sub, bl, skill_get_splash(skill_id, skill_lv), splash_target(src), src, skill_id, skill_lv, tick, flag|BCT_ENEMY|SD_SPLASH|1, skill_castend_nodamage_id); } break; @@ -9059,21 +9065,21 @@ if (tsc->data[scs[i]]) status_change_end(bl, scs[i], INVALID_TIMER); } if (!tsc->data[SC_SILENCE]) //put inavoidable silence on target - status_change_start(bl, SC_SILENCE, 100, skilllv, 0,0,0, skill_get_time(skillid, skilllv),1|2|8); + status_change_start(bl, SC_SILENCE, 100, skill_lv, 0,0,0, skill_get_time(skill_id, skill_lv),1|2|8); } heal = status_get_matk_min(src)*4; status_heal(bl, heal, 0, 7); //now inflict silence on everyone if (ssc && !ssc->data[SC_SILENCE]) //put inavoidable silence on homun - status_change_start(src, SC_SILENCE, 100, skilllv, 0,0,0, skill_get_time(skillid, skilllv),1|2|8); + status_change_start(src, SC_SILENCE, 100, skill_lv, 0,0,0, skill_get_time(skill_id, skill_lv),1|2|8); if (m_bl) { struct status_change *msc = status_get_sc(m_bl); if (msc && !msc->data[SC_SILENCE]) //put inavoidable silence on master - status_change_start(m_bl, SC_SILENCE, 100, skilllv, 0,0,0, skill_get_time(skillid, skilllv),1|2|8); + status_change_start(m_bl, SC_SILENCE, 100, skill_lv, 0,0,0, skill_get_time(skill_id, skill_lv),1|2|8); } if (hd) - skill_blockhomun_start(hd, skillid, skill_get_cooldown(skillid, skilllv)); + skill_blockhomun_start(hd, skill_id, skill_get_cooldown(skill_id, skill_lv)); } break; case MH_OVERED_BOOST: @@ -9086,18 +9092,18 @@ if (s_bl && s_bl->type==BL_PC) { status_set_sp(s_bl,status_get_max_sp(s_bl)/2,0); //master drain 50% sp clif_send_homdata(((TBL_PC *)s_bl), SP_HUNGRY, hd->homunculus.hunger); //refresh hunger info - sc_start(s_bl, type, 100, skilllv, skill_get_time(skillid, skilllv)); //gene bonus + sc_start(s_bl, type, 100, skill_lv, skill_get_time(skill_id, skill_lv)); //gene bonus } - sc_start(bl, type, 100, skilllv, skill_get_time(skillid, skilllv)); - skill_blockhomun_start(hd, skillid, skill_get_cooldown(skillid, skilllv)); + sc_start(bl, type, 100, skill_lv, skill_get_time(skill_id, skill_lv)); + skill_blockhomun_start(hd, skill_id, skill_get_cooldown(skill_id, skill_lv)); } break; case MH_GRANITIC_ARMOR: case MH_PYROCLASTIC: { struct block_list *s_bl = battle_get_master(src); - if (s_bl) sc_start2(s_bl, type, 100, skilllv, hd->homunculus.level, skill_get_time(skillid, skilllv)); //start on master - sc_start2(bl, type, 100, skilllv, hd->homunculus.level, skill_get_time(skillid, skilllv)); - if (hd) skill_blockhomun_start(hd, skillid, skill_get_cooldown(skillid, skilllv)); + if (s_bl) sc_start2(s_bl, type, 100, skill_lv, hd->homunculus.level, skill_get_time(skill_id, skill_lv)); //start on master + sc_start2(bl, type, 100, skill_lv, hd->homunculus.level, skill_get_time(skill_id, skill_lv)); + if (hd) skill_blockhomun_start(hd, skill_id, skill_get_cooldown(skill_id, skill_lv)); } break; @@ -9110,9 +9116,9 @@ case MH_STYLE_CHANGE: case MH_MAGMA_FLOW: case MH_PAIN_KILLER: - sc_start(bl, type, 100, skilllv, skill_get_time(skillid, skilllv)); + sc_start(bl, type, 100, skill_lv, skill_get_time(skill_id, skill_lv)); if (hd) - skill_blockhomun_start(hd, skillid, skill_get_cooldown(skillid, skilllv)); + skill_blockhomun_start(hd, skill_id, skill_get_cooldown(skill_id, skill_lv)); break; case MH_SUMMON_LEGION: { int summons[5] = {1004, 1303, 1303, 1994, 1994}; @@ -9120,29 +9126,29 @@ struct mob_data *md; int i; - for (i=0; im, src->x, src->y, status_get_name(src), summons[skilllv - 1], "", SZ_SMALL, AI_ATTACK); + for (i=0; im, src->x, src->y, status_get_name(src), summons[skill_lv - 1], "", SZ_SMALL, AI_ATTACK); if (md) { md->master_id = src->id; if (md->deletetimer != INVALID_TIMER) delete_timer(md->deletetimer, mob_timer_delete); - md->deletetimer = add_timer(gettick() + skill_get_time(skillid, skilllv), mob_timer_delete, md->bl.id, 0); + md->deletetimer = add_timer(gettick() + skill_get_time(skill_id, skill_lv), mob_timer_delete, md->bl.id, 0); mob_spawn(md); //Now it is ready for spawning. sc_start4(&md->bl, SC_MODECHANGE, 100, 1, 0, MD_ASSIST, 0, 60000); } } if (hd) - skill_blockhomun_start(hd, skillid, skill_get_cooldown(skillid, skilllv)); + skill_blockhomun_start(hd, skill_id, skill_get_cooldown(skill_id, skill_lv)); } break; default: - ShowWarning("skill_castend_nodamage_id: Unknown skill used:%d\n",skillid); - clif_skill_nodamage(src,bl,skillid,skilllv,1); + ShowWarning("skill_castend_nodamage_id: Unknown skill used:%d\n",skill_id); + clif_skill_nodamage(src,bl,skill_id,skill_lv,1); map_freeblock_unlock(); return 1; } - if (skillid != SR_CURSEDCIRCLE) { + if (skill_id != SR_CURSEDCIRCLE) { struct status_change *sc = status_get_sc(src); if (sc && sc->data[SC_CURSEDCIRCLE_ATKER]) //Should only remove after the skill had been casted. status_change_end(src,SC_CURSEDCIRCLE_ATKER,INVALID_TIMER); @@ -9150,7 +9156,7 @@ if (dstmd) { //Mob skill event for no damage skills (damage ones are handled in battle_calc_damage) [Skotlex] mob_log_damage(dstmd, src, 0); //Log interaction (counts as 'attacker' for the exp bonus) - mobskill_event(dstmd, src, tick, MSC_SKILLUSED|(skillid<<16)); + mobskill_event(dstmd, src, tick, MSC_SKILLUSED|(skill_id<<16)); } if (sd && !(flag&1)) { @@ -9159,11 +9165,11 @@ if (sd->state.arrow_atk) { // consume arrow on last invocation to this skill. - battle_consume_ammo(sd, skillid, skilllv); + battle_consume_ammo(sd, skill_id, skill_lv); } - skill_onskillusage(sd, bl, skillid, tick); + skill_onskillusage(sd, bl, skill_id, tick); // perform skill requirement consumption - skill_consume_requirement(sd,skillid,skilllv,2); + skill_consume_requirement(sd,skill_id,skill_lv,2); } map_freeblock_unlock(); @@ -9202,14 +9208,14 @@ return 0; } - if (ud->skillid != SA_CASTCANCEL && ud->skillid != SO_SPELLFIST) { // otherwise handled in unit_skillcastcancel() + if (ud->skill_id != SA_CASTCANCEL && ud->skill_id != SO_SPELLFIST) { // otherwise handled in unit_skillcastcancel() if (ud->skilltimer != tid) { ShowError("skill_castend_id: Timer mismatch %d!=%d!\n", ud->skilltimer, tid); ud->skilltimer = INVALID_TIMER; return 0; } - if (sd && ud->skilltimer != INVALID_TIMER && (pc_checkskill(sd,SA_FREECAST) > 0 || ud->skillid == LG_EXEEDBREAK)) { + if (sd && ud->skilltimer != INVALID_TIMER && (pc_checkskill(sd,SA_FREECAST) > 0 || ud->skill_id == LG_EXEEDBREAK)) { // restore original walk speed ud->skilltimer = INVALID_TIMER; status_calc_bl(&sd->bl, SCB_SPEED); @@ -9229,7 +9235,7 @@ if (src->m != target->m || status_isdead(src)) break; - switch (ud->skillid) { + switch (ud->skill_id) { //These should become skill_castend_pos case WE_CALLPARTNER: if (sd) clif_callpartner(sd); @@ -9238,7 +9244,7 @@ case AM_RESURRECTHOMUN: case PF_SPIDERWEB: //Find a random spot to place the skill. [Skotlex] - inf2 = skill_get_splash(ud->skillid, ud->skilllv); + inf2 = skill_get_splash(ud->skill_id, ud->skill_lv); ud->skillx = target->x + inf2; ud->skilly = target->y + inf2; if (inf2 && !map_random_dir(target, &ud->skillx, &ud->skilly)) { @@ -9254,35 +9260,35 @@ return skill_castend_pos(tid,tick,id,data); } - if (ud->skillid == RG_BACKSTAP) { + if (ud->skill_id == RG_BACKSTAP) { int dir = map_calc_dir(src,target->x,target->y),t_dir = unit_getdir(target); if (check_distance_bl(src, target, 0) || map_check_dir(dir,t_dir)) { break; } } - if (ud->skillid == PR_TURNUNDEAD) { + if (ud->skill_id == PR_TURNUNDEAD) { struct status_data *tstatus = status_get_status_data(target); if (!battle_check_undead(tstatus->race, tstatus->def_ele)) break; } - if (ud->skillid == RA_WUGSTRIKE) { + if (ud->skill_id == RA_WUGSTRIKE) { if (!path_search(NULL,src->m,src->x,src->y,target->x,target->y,1,CELL_CHKNOREACH)) break; } - if (ud->skillid == PR_LEXDIVINA || ud->skillid == MER_LEXDIVINA) { + if (ud->skill_id == PR_LEXDIVINA || ud->skill_id == MER_LEXDIVINA) { sc = status_get_sc(target); if (battle_check_target(src,target, BCT_ENEMY) <= 0 && (!sc || !sc->data[SC_SILENCE])) { //If it's not an enemy, and not silenced, you can't use the skill on them. [Skotlex] - clif_skill_nodamage(src, target, ud->skillid, ud->skilllv, 0); + clif_skill_nodamage(src, target, ud->skill_id, ud->skill_lv, 0); break; } } else { // Check target validity. - inf = skill_get_inf(ud->skillid); - inf2 = skill_get_inf2(ud->skillid); + inf = skill_get_inf(ud->skill_id); + inf2 = skill_get_inf2(ud->skill_id); if (inf&INF_ATTACK_SKILL || (inf&INF_SELF_SKILL && inf2&INF2_NO_TARGET_SELF) //Combo skills @@ -9301,24 +9307,24 @@ inf &= ~BCT_NEUTRAL; } - if (ud->skillid >= SL_SKE && ud->skillid <= SL_SKA && target->type == BL_MOB) { + if (ud->skill_id >= SL_SKE && ud->skill_id <= SL_SKA && target->type == BL_MOB) { if (((TBL_MOB *)target)->class_ == MOBID_EMPERIUM) break; } else if (inf && battle_check_target(src, target, inf) <= 0) { - if (sd) clif_skill_fail(sd,ud->skillid,USESKILL_FAIL_LEVEL,0); + if (sd) clif_skill_fail(sd,ud->skill_id,USESKILL_FAIL_LEVEL,0); break; } if (inf&BCT_ENEMY && (sc = status_get_sc(target)) && sc->data[SC_FOGWALL] && rnd() % 100 < 75) { //Fogwall makes all offensive-type targetted skills fail at 75% - if (sd) clif_skill_fail(sd, ud->skillid, USESKILL_FAIL_LEVEL, 0); + if (sd) clif_skill_fail(sd, ud->skill_id, USESKILL_FAIL_LEVEL, 0); break; } } //Avoid doing double checks for instant-cast skills. - if (tid != INVALID_TIMER && !status_check_skilluse(src, target, ud->skillid, 1)) + if (tid != INVALID_TIMER && !status_check_skilluse(src, target, ud->skill_id, 1)) break; if (md) { @@ -9328,116 +9334,116 @@ } if (src != target && battle_config.skill_add_range && - !check_distance_bl(src, target, skill_get_range2(src,ud->skillid,ud->skilllv)+battle_config.skill_add_range)) { + !check_distance_bl(src, target, skill_get_range2(src,ud->skill_id,ud->skill_lv)+battle_config.skill_add_range)) { if (sd) { - clif_skill_fail(sd,ud->skillid,USESKILL_FAIL_LEVEL,0); + clif_skill_fail(sd,ud->skill_id,USESKILL_FAIL_LEVEL,0); if (battle_config.skill_out_range_consume) //Consume items anyway. [Skotlex] - skill_consume_requirement(sd,ud->skillid,ud->skilllv,3); + skill_consume_requirement(sd,ud->skill_id,ud->skill_lv,3); } break; } if (sd) { - if (!skill_check_condition_castend(sd, ud->skillid, ud->skilllv)) + if (!skill_check_condition_castend(sd, ud->skill_id, ud->skill_lv)) break; else - skill_consume_requirement(sd,ud->skillid,ud->skilllv,1); + skill_consume_requirement(sd,ud->skill_id,ud->skill_lv,1); } #ifdef OFFICIAL_WALKPATH if (!path_search_long(NULL, src->m, src->x, src->y, target->x, target->y, CELL_CHKWALL)) break; #endif - if ((src->type == BL_MER || src->type == BL_HOM) && !skill_check_condition_mercenary(src, ud->skillid, ud->skilllv, 1)) + if ((src->type == BL_MER || src->type == BL_HOM) && !skill_check_condition_mercenary(src, ud->skill_id, ud->skill_lv, 1)) break; - if (ud->state.running && ud->skillid == TK_JUMPKICK) { + if (ud->state.running && ud->skill_id == TK_JUMPKICK) { ud->state.running = 0; status_change_end(src, SC_RUN, INVALID_TIMER); flag = 1; } - if (ud->walktimer != INVALID_TIMER && ud->skillid != TK_RUN && ud->skillid != RA_WUGDASH) + if (ud->walktimer != INVALID_TIMER && ud->skill_id != TK_RUN && ud->skill_id != RA_WUGDASH) unit_stop_walking(src,1); - if (!sd || sd->skillitem != ud->skillid || skill_get_delay(ud->skillid,ud->skilllv)) - ud->canact_tick = tick + skill_delayfix(src, ud->skillid, ud->skilllv); //Tests show wings don't overwrite the delay but skill scrolls do. [Inkfish] + if (!sd || sd->skillitem != ud->skill_id || skill_get_delay(ud->skill_id,ud->skill_lv)) + ud->canact_tick = tick + skill_delayfix(src, ud->skill_id, ud->skill_lv); //Tests show wings don't overwrite the delay but skill scrolls do. [Inkfish] if (sd) { //Cooldown application - int i, cooldown = skill_get_cooldown(ud->skillid, ud->skilllv); + int i, cooldown = skill_get_cooldown(ud->skill_id, ud->skill_lv); for (i = 0; i < ARRAYLENGTH(sd->skillcooldown) && sd->skillcooldown[i].id; i++) { // Increases/Decreases cooldown of a skill by item/card bonuses. - if (sd->skillcooldown[i].id == ud->skillid) { + if (sd->skillcooldown[i].id == ud->skill_id) { cooldown += sd->skillcooldown[i].val; break; } } if(cooldown) - skill_blockpc_start(sd, ud->skillid, cooldown); + skill_blockpc_start(sd, ud->skill_id, cooldown); } if (battle_config.display_status_timers && sd) - clif_status_change(src, SI_ACTIONDELAY, 1, skill_delayfix(src, ud->skillid, ud->skilllv), 0, 0, 0); + clif_status_change(src, SI_ACTIONDELAY, 1, skill_delayfix(src, ud->skill_id, ud->skill_lv), 0, 0, 0); if (sd) { - switch (ud->skillid) { + switch (ud->skill_id) { case GS_DESPERADO: - sd->canequip_tick = tick + skill_get_time(ud->skillid, ud->skilllv); + sd->canequip_tick = tick + skill_get_time(ud->skill_id, ud->skill_lv); break; case CR_GRANDCROSS: case NPC_GRANDDARKNESS: if ((sc = status_get_sc(src)) && sc->data[SC_STRIPSHIELD]) { const struct TimerData *timer = get_timer(sc->data[SC_STRIPSHIELD]->timer); - if (timer && timer->func == status_change_timer && DIFF_TICK(timer->tick,gettick()+skill_get_time(ud->skillid, ud->skilllv)) > 0) + if (timer && timer->func == status_change_timer && DIFF_TICK(timer->tick,gettick()+skill_get_time(ud->skill_id, ud->skill_lv)) > 0) break; } - sc_start2(src, SC_STRIPSHIELD, 100, 0, 1, skill_get_time(ud->skillid, ud->skilllv)); + sc_start2(src, SC_STRIPSHIELD, 100, 0, 1, skill_get_time(ud->skill_id, ud->skill_lv)); break; } } - if (skill_get_state(ud->skillid) != ST_MOVE_ENABLE) - unit_set_walkdelay(src, tick, battle_config.default_walk_delay+skill_get_walkdelay(ud->skillid, ud->skilllv), 1); + if (skill_get_state(ud->skill_id) != ST_MOVE_ENABLE) + unit_set_walkdelay(src, tick, battle_config.default_walk_delay+skill_get_walkdelay(ud->skill_id, ud->skill_lv), 1); if (battle_config.skill_log && battle_config.skill_log&src->type) ShowInfo("Type %d, ID %d skill castend id [id =%d, lv=%d, target ID %d]\n", - src->type, src->id, ud->skillid, ud->skilllv, target->id); + src->type, src->id, ud->skill_id, ud->skill_lv, target->id); map_freeblock_lock(); // SC_MAGICPOWER needs to switch states before any damage is actually dealt - skill_toggle_magicpower(src, ud->skillid); - if (ud->skillid != RA_CAMOUFLAGE) // only normal attack and auto cast skills benefit from its bonuses + skill_toggle_magicpower(src, ud->skill_id); + if (ud->skill_id != RA_CAMOUFLAGE) // only normal attack and auto cast skills benefit from its bonuses status_change_end(src,SC_CAMOUFLAGE, INVALID_TIMER); - if (skill_get_casttype(ud->skillid) == CAST_NODAMAGE) - skill_castend_nodamage_id(src,target,ud->skillid,ud->skilllv,tick,flag); + if (skill_get_casttype(ud->skill_id) == CAST_NODAMAGE) + skill_castend_nodamage_id(src,target,ud->skill_id,ud->skill_lv,tick,flag); else - skill_castend_damage_id(src,target,ud->skillid,ud->skilllv,tick,flag); + skill_castend_damage_id(src,target,ud->skill_id,ud->skill_lv,tick,flag); sc = status_get_sc(src); if (sc && sc->count) { if (sc->data[SC_SPIRIT] && sc->data[SC_SPIRIT]->val2 == SL_WIZARD && - sc->data[SC_SPIRIT]->val3 == ud->skillid && - ud->skillid != WZ_WATERBALL) + sc->data[SC_SPIRIT]->val3 == ud->skill_id && + ud->skill_id != WZ_WATERBALL) sc->data[SC_SPIRIT]->val3 = 0; //Clear bounced spell check. - if (sc->data[SC_DANCING] && skill_get_inf2(ud->skillid)&INF2_SONG_DANCE && sd) + if (sc->data[SC_DANCING] && skill_get_inf2(ud->skill_id)&INF2_SONG_DANCE && sd) skill_blockpc_start(sd,BD_ADAPTATION,3000); } - if (sd && ud->skillid != SA_ABRACADABRA && ud->skillid != WM_RANDOMIZESPELL) // they just set the data so leave it as it is.[Inkfish] + if (sd && ud->skill_id != SA_ABRACADABRA && ud->skill_id != WM_RANDOMIZESPELL) // they just set the data so leave it as it is.[Inkfish] sd->skillitem = sd->skillitemlv = 0; if (ud->skilltimer == INVALID_TIMER) { if (md) md->skillidx = -1; - else ud->skillid = 0; //mobs can't clear this one as it is used for skill condition 'afterskill' - ud->skilllv = ud->skilltarget = 0; + else ud->skill_id = 0; //mobs can't clear this one as it is used for skill condition 'afterskill' + ud->skill_lv = ud->skilltarget = 0; } map_freeblock_unlock(); return 1; } while (0); //Skill failed. - if (ud->skillid == MO_EXTREMITYFIST && sd && !(sc && sc->data[SC_FOGWALL])) { + if (ud->skill_id == MO_EXTREMITYFIST && sd && !(sc && sc->data[SC_FOGWALL])) { //When Asura fails... (except when it fails from Fog of Wall) //Consume SP/spheres - skill_consume_requirement(sd,ud->skillid, ud->skilllv,1); + skill_consume_requirement(sd,ud->skill_id, ud->skill_lv,1); status_set_sp(src, 0, 0); sc = &sd->sc; if (sc->count) { @@ -9445,7 +9451,7 @@ status_change_end(src, SC_EXPLOSIONSPIRITS, INVALID_TIMER); status_change_end(src, SC_BLADESTOP, INVALID_TIMER); #ifdef RENEWAL - sc_start(src, SC_EXTREMITYFIST2, 100, ud->skilllv, skill_get_time(ud->skillid, ud->skilllv)); + sc_start(src, SC_EXTREMITYFIST2, 100, ud->skill_lv, skill_get_time(ud->skill_id, ud->skill_lv)); #endif } if (target && target->m == src->m) { @@ -9461,14 +9467,14 @@ if (unit_movepos(src, src->x+dx, src->y+dy, 1, 1)) { //Display movement + animation. clif_slide(src,src->x,src->y); - clif_skill_damage(src,target,tick,sd->battle_status.amotion,0,0,1,ud->skillid, ud->skilllv, 5); + clif_skill_damage(src,target,tick,sd->battle_status.amotion,0,0,1,ud->skill_id, ud->skill_lv, 5); } - clif_skill_fail(sd,ud->skillid,USESKILL_FAIL_LEVEL,0); + clif_skill_fail(sd,ud->skill_id,USESKILL_FAIL_LEVEL,0); } } - ud->skillid = ud->skilllv = ud->skilltarget = 0; - if (!sd || sd->skillitem != ud->skillid || skill_get_delay(ud->skillid,ud->skilllv)) + ud->skill_id = ud->skill_lv = ud->skilltarget = 0; + if (!sd || sd->skillitem != ud->skill_id || skill_get_delay(ud->skill_id,ud->skill_lv)) ud->canact_tick = tick; //You can't place a skill failed packet here because it would be //sent in ALL cases, even cases where skill_check_condition fails @@ -9507,7 +9513,7 @@ return 0; } - if (sd && ud->skilltimer != INVALID_TIMER && (pc_checkskill(sd,SA_FREECAST) > 0 || ud->skillid == LG_EXEEDBREAK)) { + if (sd && ud->skilltimer != INVALID_TIMER && (pc_checkskill(sd,SA_FREECAST) > 0 || ud->skill_id == LG_EXEEDBREAK)) { // restore original walk speed ud->skilltimer = INVALID_TIMER; status_calc_bl(&sd->bl, SCB_SPEED); @@ -9519,53 +9525,53 @@ break; if (!(src->type&battle_config.skill_reiteration) && - skill_get_unit_flag(ud->skillid)&UF_NOREITERATION && - skill_check_unit_range(src,ud->skillx,ud->skilly,ud->skillid,ud->skilllv) + skill_get_unit_flag(ud->skill_id)&UF_NOREITERATION && + skill_check_unit_range(src,ud->skillx,ud->skilly,ud->skill_id,ud->skill_lv) ) { - if (sd) clif_skill_fail(sd,ud->skillid,USESKILL_FAIL_LEVEL,0); + if (sd) clif_skill_fail(sd,ud->skill_id,USESKILL_FAIL_LEVEL,0); break; } if (src->type&battle_config.skill_nofootset && - skill_get_unit_flag(ud->skillid)&UF_NOFOOTSET && - skill_check_unit_range2(src,ud->skillx,ud->skilly,ud->skillid,ud->skilllv) + skill_get_unit_flag(ud->skill_id)&UF_NOFOOTSET && + skill_check_unit_range2(src,ud->skillx,ud->skilly,ud->skill_id,ud->skill_lv) ) { - if (sd) clif_skill_fail(sd,ud->skillid,USESKILL_FAIL_LEVEL,0); + if (sd) clif_skill_fail(sd,ud->skill_id,USESKILL_FAIL_LEVEL,0); break; } if (src->type&battle_config.land_skill_limit && - (maxcount = skill_get_maxcount(ud->skillid, ud->skilllv)) > 0 + (maxcount = skill_get_maxcount(ud->skill_id, ud->skill_lv)) > 0 ) { int i; for (i=0; iskillunit[i] && maxcount; i++) { - if (ud->skillunit[i]->skill_id == ud->skillid) + if (ud->skillunit[i]->skill_id == ud->skill_id) maxcount--; } if (maxcount == 0) { - if (sd) clif_skill_fail(sd,ud->skillid,USESKILL_FAIL_LEVEL,0); + if (sd) clif_skill_fail(sd,ud->skill_id,USESKILL_FAIL_LEVEL,0); break; } } if (tid != INVALID_TIMER) { //Avoid double checks on instant cast skills. [Skotlex] - if (!status_check_skilluse(src, NULL, ud->skillid, 1)) + if (!status_check_skilluse(src, NULL, ud->skill_id, 1)) break; if (battle_config.skill_add_range && - !check_distance_blxy(src, ud->skillx, ud->skilly, skill_get_range2(src,ud->skillid,ud->skilllv)+battle_config.skill_add_range)) { + !check_distance_blxy(src, ud->skillx, ud->skilly, skill_get_range2(src,ud->skill_id,ud->skill_lv)+battle_config.skill_add_range)) { if (sd && battle_config.skill_out_range_consume) //Consume items anyway. - skill_consume_requirement(sd,ud->skillid,ud->skilllv,3); + skill_consume_requirement(sd,ud->skill_id,ud->skill_lv,3); break; } } if (sd) { - if (!skill_check_condition_castend(sd, ud->skillid, ud->skilllv)) + if (!skill_check_condition_castend(sd, ud->skill_id, ud->skill_lv)) break; else - skill_consume_requirement(sd,ud->skillid,ud->skilllv,1); + skill_consume_requirement(sd,ud->skill_id,ud->skill_lv,1); } - if ((src->type == BL_MER || src->type == BL_HOM) && !skill_check_condition_mercenary(src, ud->skillid, ud->skilllv, 1)) + if ((src->type == BL_MER || src->type == BL_HOM) && !skill_check_condition_mercenary(src, ud->skill_id, ud->skill_lv, 1)) break; if (md) { @@ -9576,26 +9582,26 @@ if (battle_config.skill_log && battle_config.skill_log&src->type) ShowInfo("Type %d, ID %d skill castend pos [id =%d, lv=%d, (%d,%d)]\n", - src->type, src->id, ud->skillid, ud->skilllv, ud->skillx, ud->skilly); + src->type, src->id, ud->skill_id, ud->skill_lv, ud->skillx, ud->skilly); if (ud->walktimer != INVALID_TIMER) unit_stop_walking(src,1); - if (!sd || sd->skillitem != ud->skillid || skill_get_delay(ud->skillid,ud->skilllv)) - ud->canact_tick = tick + skill_delayfix(src, ud->skillid, ud->skilllv); + if (!sd || sd->skillitem != ud->skill_id || skill_get_delay(ud->skill_id,ud->skill_lv)) + ud->canact_tick = tick + skill_delayfix(src, ud->skill_id, ud->skill_lv); if (sd) { //Cooldown application - int i, cooldown = skill_get_cooldown(ud->skillid, ud->skilllv); + int i, cooldown = skill_get_cooldown(ud->skill_id, ud->skill_lv); for (i = 0; i < ARRAYLENGTH(sd->skillcooldown) && sd->skillcooldown[i].id; i++) { // Increases/Decreases cooldown of a skill by item/card bonuses. - if (sd->skillcooldown[i].id == ud->skillid) { + if (sd->skillcooldown[i].id == ud->skill_id) { cooldown += sd->skillcooldown[i].val; break; } } if(cooldown) - skill_blockpc_start(sd, ud->skillid, cooldown); + skill_blockpc_start(sd, ud->skill_id, cooldown); } if (battle_config.display_status_timers && sd) - clif_status_change(src, SI_ACTIONDELAY, 1, skill_delayfix(src, ud->skillid, ud->skilllv), 0, 0, 0); + clif_status_change(src, SI_ACTIONDELAY, 1, skill_delayfix(src, ud->skill_id, ud->skill_lv), 0, 0, 0); // if( sd ) // { // switch( ud->skillid ) @@ -9605,27 +9611,27 @@ // break; // } // } - unit_set_walkdelay(src, tick, battle_config.default_walk_delay+skill_get_walkdelay(ud->skillid, ud->skilllv), 1); + unit_set_walkdelay(src, tick, battle_config.default_walk_delay+skill_get_walkdelay(ud->skill_id, ud->skill_lv), 1); status_change_end(src,SC_CAMOUFLAGE, INVALID_TIMER);// only normal attack and auto cast skills benefit from its bonuses map_freeblock_lock(); - skill_castend_pos2(src,ud->skillx,ud->skilly,ud->skillid,ud->skilllv,tick,0); + skill_castend_pos2(src,ud->skillx,ud->skilly,ud->skill_id,ud->skill_lv,tick,0); if (sd && sd->skillitem != AL_WARP) // Warp-Portal thru items will clear data in skill_castend_map. [Inkfish] sd->skillitem = sd->skillitemlv = 0; if (ud->skilltimer == INVALID_TIMER) { if (md) md->skillidx = -1; - else ud->skillid = 0; //Non mobs can't clear this one as it is used for skill condition 'afterskill' - ud->skilllv = ud->skillx = ud->skilly = 0; + else ud->skill_id = 0; //Non mobs can't clear this one as it is used for skill condition 'afterskill' + ud->skill_lv = ud->skillx = ud->skilly = 0; } map_freeblock_unlock(); return 1; } while (0); - if (!sd || sd->skillitem != ud->skillid || skill_get_delay(ud->skillid,ud->skilllv)) + if (!sd || sd->skillitem != ud->skill_id || skill_get_delay(ud->skill_id,ud->skill_lv)) ud->canact_tick = tick; - ud->skillid = ud->skilllv = 0; + ud->skill_id = ud->skill_lv = 0; if (sd) sd->skillitem = sd->skillitemlv = 0; else if (md) @@ -9637,7 +9643,7 @@ /*========================================== * *------------------------------------------*/ -int skill_castend_pos2(struct block_list *src, int x, int y, int skillid, int skilllv, unsigned int tick, int flag) +int skill_castend_pos2(struct block_list *src, short x, short y, uint16 skill_id, uint16 skill_lv, unsigned int tick, int flag) { struct map_session_data *sd; struct status_change *sc; @@ -9646,8 +9652,8 @@ enum sc_type type; int i; - //if(skilllv <= 0) return 0; - if (skillid > 0 && skilllv <= 0) return 0; // celest + //if(skill_lv <= 0) return 0; + if (skill_id > 0 && skill_lv <= 0) return 0; // celest nullpo_ret(src); @@ -9657,10 +9663,10 @@ sd = BL_CAST(BL_PC, src); sc = status_get_sc(src); - type = status_skill2sc(skillid); + type = status_skill2sc(skill_id); sce = (sc && type != -1)?sc->data[type]:NULL; - switch (skillid) { //Skill effect. + switch (skill_id) { //Skill effect. case WZ_METEOR: case MO_BODYRELOCATION: case CR_CULTIVATION: @@ -9668,39 +9674,39 @@ case LG_EARTHDRIVE: break; //Effect is displayed on respective switch case. default: - if (skill_get_inf(skillid)&INF_SELF_SKILL) - clif_skill_nodamage(src,src,skillid,skilllv,1); + if (skill_get_inf(skill_id)&INF_SELF_SKILL) + clif_skill_nodamage(src,src,skill_id,skill_lv,1); else - clif_skill_poseffect(src,skillid,skilllv,x,y,tick); + clif_skill_poseffect(src,skill_id,skill_lv,x,y,tick); } // SC_MAGICPOWER needs to switch states before any damage is actually dealt - skill_toggle_magicpower(src, skillid); + skill_toggle_magicpower(src, skill_id); - switch (skillid) { + switch (skill_id) { case PR_BENEDICTIO: skill_area_temp[1] = src->id; - i = skill_get_splash(skillid, skilllv); + i = skill_get_splash(skill_id, skill_lv); map_foreachinarea(skill_area_sub, src->m, x-i, y-i, x+i, y+i, BL_PC, - src, skillid, skilllv, tick, flag|BCT_ALL|1, + src, skill_id, skill_lv, tick, flag|BCT_ALL|1, skill_castend_nodamage_id); map_foreachinarea(skill_area_sub, src->m, x-i, y-i, x+i, y+i, BL_CHAR, - src, skillid, skilllv, tick, flag|BCT_ENEMY|1, + src, skill_id, skill_lv, tick, flag|BCT_ENEMY|1, skill_castend_damage_id); break; case BS_HAMMERFALL: - i = skill_get_splash(skillid, skilllv); + i = skill_get_splash(skill_id, skill_lv); map_foreachinarea(skill_area_sub, src->m, x-i, y-i, x+i, y+i, BL_CHAR, - src, skillid, skilllv, tick, flag|BCT_ENEMY|2, + src, skill_id, skill_lv, tick, flag|BCT_ENEMY|2, skill_castend_nodamage_id); break; case HT_DETECTING: - i = skill_get_splash(skillid, skilllv); + i = skill_get_splash(skill_id, skill_lv); map_foreachinarea(status_change_timer_sub, src->m, x-i, y-i, x+i,y+i,BL_CHAR, src,NULL,SC_SIGHT,tick); @@ -9710,9 +9716,9 @@ break; case SR_RIDEINLIGHTNING: - i = skill_get_splash(skillid, skilllv); + i = skill_get_splash(skill_id, skill_lv); map_foreachinarea(skill_area_sub, src->m, x-i, y-i, x+i, y+i, BL_CHAR, - src, skillid, skilllv, tick, flag|BCT_ENEMY|1, skill_castend_damage_id); + src, skill_id, skill_lv, tick, flag|BCT_ENEMY|1, skill_castend_damage_id); break; case SA_VOLCANO: @@ -9722,12 +9728,12 @@ struct skill_unit_group *sg; if ((sg= skill_locate_element_field(src)) != NULL && (sg->skill_id == SA_VOLCANO || sg->skill_id == SA_DELUGE || sg->skill_id == SA_VIOLENTGALE)) { if (sg->limit - DIFF_TICK(gettick(), sg->tick) > 0) { - skill_unitsetting(src,skillid,skilllv,x,y,0); + skill_unitsetting(src,skill_id,skill_lv,x,y,0); return 0; // not to consume items } else sg->limit = 0; //Disable it. } - skill_unitsetting(src,skillid,skilllv,x,y,0); + skill_unitsetting(src,skill_id,skill_lv,x,y,0); break; } case MG_SAFETYWALL: @@ -9837,11 +9843,11 @@ case MH_XENO_SLASHER: flag|=1;//Set flag to 1 to prevent deleting ammo (it will be deleted on group-delete). case GS_GROUNDDRIFT: //Ammo should be deleted right away. - skill_unitsetting(src,skillid,skilllv,x,y,0); + skill_unitsetting(src,skill_id,skill_lv,x,y,0); break; case RG_GRAFFITI: /* Graffiti [Valaris] */ skill_clear_unitgroup(src); - skill_unitsetting(src,skillid,skilllv,x,y,0); + skill_unitsetting(src,skill_id,skill_lv,x,y,0); flag|=1; break; case HP_BASILICA: @@ -9850,58 +9856,58 @@ else { // Create Basilica. Start SC on caster. Unit timer start SC on others. skill_clear_unitgroup(src); - if (skill_unitsetting(src,skillid,skilllv,x,y,0)) - sc_start4(src,type,100,skilllv,0,0,src->id,skill_get_time(skillid,skilllv)); + if (skill_unitsetting(src,skill_id,skill_lv,x,y,0)) + sc_start4(src,type,100,skill_lv,0,0,src->id,skill_get_time(skill_id,skill_lv)); flag|=1; } break; case CG_HERMODE: skill_clear_unitgroup(src); - if ((sg = skill_unitsetting(src,skillid,skilllv,x,y,0))) + if ((sg = skill_unitsetting(src,skill_id,skill_lv,x,y,0))) sc_start4(src,SC_DANCING,100, - skillid,0,skilllv,sg->group_id,skill_get_time(skillid,skilllv)); + skill_id,0,skill_lv,sg->group_id,skill_get_time(skill_id,skill_lv)); flag|=1; break; case RG_CLEANER: // [Valaris] - i = skill_get_splash(skillid, skilllv); + i = skill_get_splash(skill_id, skill_lv); map_foreachinarea(skill_graffitiremover,src->m,x-i,y-i,x+i,y+i,BL_SKILL); break; case SO_WARMER: flag|= 8; case SO_CLOUD_KILL: - skill_unitsetting(src,skillid,skilllv,x,y,0); + skill_unitsetting(src,skill_id,skill_lv,x,y,0); break; case WZ_METEOR: { - int area = skill_get_splash(skillid, skilllv); + int area = skill_get_splash(skill_id, skill_lv); short tmpx = 0, tmpy = 0, x1 = 0, y1 = 0; - for (i = 0; i < 2 + (skilllv>>1); i++) { + for (i = 0; i < 2 + (skill_lv>>1); i++) { // Creates a random Cell in the Splash Area tmpx = x - area + rnd()%(area * 2 + 1); tmpy = y - area + rnd()%(area * 2 + 1); if (i == 0 && path_search_long(NULL, src->m, src->x, src->y, tmpx, tmpy, CELL_CHKWALL)) - clif_skill_poseffect(src,skillid,skilllv,tmpx,tmpy,tick); + clif_skill_poseffect(src,skill_id,skill_lv,tmpx,tmpy,tick); if (i > 0) - skill_addtimerskill(src,tick+i*1000,0,tmpx,tmpy,skillid,skilllv,(x1<<16)|y1,0); + skill_addtimerskill(src,tick+i*1000,0,tmpx,tmpy,skill_id,skill_lv,(x1<<16)|y1,0); x1 = tmpx; y1 = tmpy; } - skill_addtimerskill(src,tick+i*1000,0,tmpx,tmpy,skillid,skilllv,-1,0); + skill_addtimerskill(src,tick+i*1000,0,tmpx,tmpy,skill_id,skill_lv,-1,0); } break; case AL_WARP: if (sd) { - clif_skill_warppoint(sd, skillid, skilllv, sd->status.save_point.map, - (skilllv >= 2) ? sd->status.memo_point[0].map : 0, - (skilllv >= 3) ? sd->status.memo_point[1].map : 0, - (skilllv >= 4) ? sd->status.memo_point[2].map : 0 + clif_skill_warppoint(sd, skill_id, skill_lv, sd->status.save_point.map, + (skill_lv >= 2) ? sd->status.memo_point[0].map : 0, + (skill_lv >= 3) ? sd->status.memo_point[1].map : 0, + (skill_lv >= 4) ? sd->status.memo_point[2].map : 0 ); } return 0; // not to consume item. @@ -9911,7 +9917,7 @@ #if PACKETVER >= 20111005 clif_snap(src, src->x, src->y); #else - clif_skill_poseffect(src,skillid,skilllv,src->x,src->y,tick); + clif_skill_poseffect(src,skill_id,skill_lv,src->x,src->y,tick); #endif if (sd) skill_blockpc_start(sd, MO_EXTREMITYFIST, 2000); @@ -9928,17 +9934,17 @@ case AM_CANNIBALIZE: { int summons[5] = { 1589, 1579, 1575, 1555, 1590 }; //int summons[5] = { 1020, 1068, 1118, 1500, 1368 }; - int class_ = skillid==AM_SPHEREMINE?1142:summons[skilllv-1]; + short class_ = skill_id==AM_SPHEREMINE?1142:summons[skill_lv-1]; struct mob_data *md; // Correct info, don't change any of this! [celest] md = mob_once_spawn_sub(src, src->m, x, y, status_get_name(src), class_, "", SZ_SMALL, AI_NONE); if (md) { md->master_id = src->id; - md->special_state.ai = (skillid == AM_SPHEREMINE) ? AI_SPHERE : AI_FLORA; + md->special_state.ai = (skill_id == AM_SPHEREMINE) ? AI_SPHERE : AI_FLORA; if (md->deletetimer != INVALID_TIMER) delete_timer(md->deletetimer, mob_timer_delete); - md->deletetimer = add_timer(gettick() + skill_get_time(skillid,skilllv), mob_timer_delete, md->bl.id, 0); + md->deletetimer = add_timer(gettick() + skill_get_time(skill_id,skill_lv), mob_timer_delete, md->bl.id, 0); mob_spawn(md); //Now it is ready for spawning. } } @@ -9947,10 +9953,10 @@ // Slim Pitcher [Celest] case CR_SLIMPITCHER: if (sd) { - int i = skilllv%11 - 1; - int j = pc_search_inventory(sd,skill_db[skillid].itemid[i]); - if (j < 0 || skill_db[skillid].itemid[i] <= 0 || sd->inventory_data[j] == NULL || sd->status.inventory[j].amount < skill_db[skillid].amount[i]) { - clif_skill_fail(sd,skillid,USESKILL_FAIL_LEVEL,0); + int i = skill_lv%11 - 1; + int j = pc_search_inventory(sd,skill_db[skill_id].itemid[i]); + if (j < 0 || skill_db[skill_id].itemid[i] <= 0 || sd->inventory_data[j] == NULL || sd->status.inventory[j].amount < skill_db[skill_id].amount[i]) { + clif_skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0); return 1; } potion_flag = 1; @@ -9962,22 +9968,22 @@ i = pc_checkskill(sd,CR_SLIMPITCHER)*10 + pc_checkskill(sd,AM_POTIONPITCHER)*10 + pc_checkskill(sd,AM_LEARNINGPOTION)*5 - + pc_skillheal_bonus(sd, skillid); + + pc_skillheal_bonus(sd, skill_id); potion_hp = potion_hp * (100+i)/100; potion_sp = potion_sp * (100+i)/100; if (potion_hp > 0 || potion_sp > 0) { - i = skill_get_splash(skillid, skilllv); + i = skill_get_splash(skill_id, skill_lv); map_foreachinarea(skill_area_sub, src->m,x-i,y-i,x+i,y+i,BL_CHAR, - src,skillid,skilllv,tick,flag|BCT_PARTY|BCT_GUILD|1, + src,skill_id,skill_lv,tick,flag|BCT_PARTY|BCT_GUILD|1, skill_castend_nodamage_id); } } else { - int i = skilllv%11 - 1; + int i = skill_lv%11 - 1; struct item_data *item; - i = skill_db[skillid].itemid[i]; + i = skill_db[skill_id].itemid[i]; item = itemdb_search(i); potion_flag = 1; potion_hp = 0; @@ -9990,10 +9996,10 @@ potion_sp = potion_sp * (100+i)/100; if (potion_hp > 0 || potion_sp > 0) { - i = skill_get_splash(skillid, skilllv); + i = skill_get_splash(skill_id, skill_lv); map_foreachinarea(skill_area_sub, src->m,x-i,y-i,x+i,y+i,BL_CHAR, - src,skillid,skilllv,tick,flag|BCT_PARTY|BCT_GUILD|1, + src,skill_id,skill_lv,tick,flag|BCT_PARTY|BCT_GUILD|1, skill_castend_nodamage_id); } } @@ -10002,18 +10008,18 @@ case HW_GANBANTEIN: if (rnd()%100 < 80) { int dummy = 1; - clif_skill_poseffect(src,skillid,skilllv,x,y,tick); - i = skill_get_splash(skillid, skilllv); + clif_skill_poseffect(src,skill_id,skill_lv,x,y,tick); + i = skill_get_splash(skill_id, skill_lv); map_foreachinarea(skill_cell_overlap, src->m, x-i, y-i, x+i, y+i, BL_SKILL, HW_GANBANTEIN, &dummy, src); } else { - if (sd) clif_skill_fail(sd,skillid,USESKILL_FAIL_LEVEL,0); + if (sd) clif_skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0); return 1; } break; case HW_GRAVITATION: - if ((sg = skill_unitsetting(src,skillid,skilllv,x,y,0))) - sc_start4(src,type,100,skilllv,0,BCT_SELF,sg->group_id,skill_get_time(skillid,skilllv)); + if ((sg = skill_unitsetting(src,skill_id,skill_lv,x,y,0))) + sc_start4(src,type,100,skill_lv,0,BCT_SELF,sg->group_id,skill_get_time(skill_id,skill_lv)); flag|=1; break; @@ -10021,17 +10027,17 @@ case CR_CULTIVATION: if (sd) { if (map_count_oncell(src->m,x,y,BL_CHAR) > 0) { - clif_skill_fail(sd,skillid,USESKILL_FAIL_LEVEL,0); + clif_skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0); return 1; } - clif_skill_poseffect(src,skillid,skilllv,x,y,tick); + clif_skill_poseffect(src,skill_id,skill_lv,x,y,tick); if (rnd()%100 < 50) { - clif_skill_fail(sd,skillid,USESKILL_FAIL_LEVEL,0); + clif_skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0); } else { - TBL_MOB *md = mob_once_spawn_sub(src, src->m, x, y, "--ja--",(skilllv < 2 ? 1084+rnd()%2 : 1078+rnd()%6),"", SZ_SMALL, AI_NONE); + TBL_MOB *md = mob_once_spawn_sub(src, src->m, x, y, "--ja--",(skill_lv < 2 ? 1084+rnd()%2 : 1078+rnd()%6),"", SZ_SMALL, AI_NONE); int i; if (!md) break; - if ((i = skill_get_time(skillid, skilllv)) > 0) { + if ((i = skill_get_time(skill_id, skill_lv)) > 0) { if (md->deletetimer != INVALID_TIMER) delete_timer(md->deletetimer, mob_timer_delete); md->deletetimer = add_timer(tick + i, mob_timer_delete, md->bl.id, 0); @@ -10045,8 +10051,8 @@ case SG_MOON_WARM: case SG_STAR_WARM: skill_clear_unitgroup(src); - if ((sg = skill_unitsetting(src,skillid,skilllv,src->x,src->y,0))) - sc_start4(src,type,100,skilllv,0,0,sg->group_id,skill_get_time(skillid,skilllv)); + if ((sg = skill_unitsetting(src,skill_id,skill_lv,src->x,src->y,0))) + sc_start4(src,type,100,skill_lv,0,0,sg->group_id,skill_get_time(skill_id,skill_lv)); flag|=1; break; @@ -10055,23 +10061,23 @@ status_change_end(src, SC_GOSPEL, INVALID_TIMER); return 0; } else { - sg = skill_unitsetting(src,skillid,skilllv,src->x,src->y,0); + sg = skill_unitsetting(src,skill_id,skill_lv,src->x,src->y,0); if (!sg) break; if (sce) status_change_end(src, type, INVALID_TIMER); //Was under someone else's Gospel. [Skotlex] - sc_start4(src,type,100,skilllv,0,sg->group_id,BCT_SELF,skill_get_time(skillid,skilllv)); - clif_skill_poseffect(src, skillid, skilllv, 0, 0, tick); // PA_GOSPEL music packet + sc_start4(src,type,100,skill_lv,0,sg->group_id,BCT_SELF,skill_get_time(skill_id,skill_lv)); + clif_skill_poseffect(src, skill_id, skill_lv, 0, 0, tick); // PA_GOSPEL music packet } break; case NJ_TATAMIGAESHI: - if (skill_unitsetting(src,skillid,skilllv,src->x,src->y,0)) - sc_start(src,type,100,skilllv,skill_get_time2(skillid,skilllv)); + if (skill_unitsetting(src,skill_id,skill_lv,src->x,src->y,0)) + sc_start(src,type,100,skill_lv,skill_get_time2(skill_id,skill_lv)); break; case AM_RESURRECTHOMUN: //[orn] if (sd) { - if (!merc_resurrect_homunculus(sd, 20*skilllv, x, y)) { - clif_skill_fail(sd,skillid,USESKILL_FAIL_LEVEL,0); + if (!merc_resurrect_homunculus(sd, 20*skill_lv, x, y)) { + clif_skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0); break; } } @@ -10082,9 +10088,9 @@ case RK_DRAGONBREATH: case RK_WINDCUTTER: case WM_LULLABY_DEEPSLEEP: - i = skill_get_splash(skillid,skilllv); + i = skill_get_splash(skill_id,skill_lv); map_foreachinarea(skill_area_sub,src->m,x-i,y-i,x+i,y+i,splash_target(src), - src,skillid,skilllv,tick,flag|(skillid==WM_LULLABY_DEEPSLEEP?BCT_ALL:BCT_ENEMY)|1,skill_castend_damage_id); + src,skill_id,skill_lv,tick,flag|(skill_id==WM_LULLABY_DEEPSLEEP?BCT_ALL:BCT_ENEMY)|1,skill_castend_damage_id); break; /** * Guilotine Cross @@ -10092,18 +10098,18 @@ case GC_POISONSMOKE: if (!(sc && sc->data[SC_POISONINGWEAPON])) { if (sd) - clif_skill_fail(sd,skillid,USESKILL_FAIL_GC_POISONINGWEAPON,0); + clif_skill_fail(sd,skill_id,USESKILL_FAIL_GC_POISONINGWEAPON,0); return 0; } - clif_skill_damage(src,src,tick,status_get_amotion(src),0,-30000,1,skillid,skilllv,6); - skill_unitsetting(src, skillid, skilllv, x, y, flag); + clif_skill_damage(src,src,tick,status_get_amotion(src),0,-30000,1,skill_id,skill_lv,6); + skill_unitsetting(src, skill_id, skill_lv, x, y, flag); //status_change_end(src,SC_POISONINGWEAPON,INVALID_TIMER); // 08/31/2011 - When using poison smoke, you no longer lose the poisoning weapon effect. break; /** * Arch Bishop **/ case AB_EPICLESIS: - if ((sg = skill_unitsetting(src, skillid, skilllv, x, y, 0))) { + if ((sg = skill_unitsetting(src, skill_id, skill_lv, x, y, 0))) { i = sg->unit->range; map_foreachinarea(skill_area_sub, src->m, x - i, y - i, x + i, y + i, BL_CHAR, src, ALL_RESURRECTION, 1, tick, flag|BCT_NOENEMY|1,skill_castend_nodamage_id); } @@ -10116,12 +10122,12 @@ sc->comet_x = x; sc->comet_y = y; } - i = skill_get_splash(skillid,skilllv); - map_foreachinarea(skill_area_sub,src->m,x-i,y-i,x+i,y+i,splash_target(src),src,skillid,skilllv,tick,flag|BCT_ENEMY|1,skill_castend_damage_id); + i = skill_get_splash(skill_id,skill_lv); + map_foreachinarea(skill_area_sub,src->m,x-i,y-i,x+i,y+i,splash_target(src),src,skill_id,skill_lv,tick,flag|BCT_ENEMY|1,skill_castend_damage_id); break; case WL_EARTHSTRAIN: { - int i, wave = skilllv + 4, dir = map_calc_dir(src,x,y); + int i, wave = skill_lv + 4, dir = map_calc_dir(src,x,y); int sx = x = src->x, sy = y = src->y; // Store first caster's location to avoid glitch on unit setting for (i = 1; i <= wave; i++) { @@ -10143,7 +10149,7 @@ sx = x + i; break; } - skill_addtimerskill(src,gettick() + (150 * i),0,sx,sy,skillid,skilllv,dir,flag&2); + skill_addtimerskill(src,gettick() + (150 * i),0,sx,sy,skill_id,skill_lv,dir,flag&2); } } break; @@ -10151,9 +10157,9 @@ * Ranger **/ case RA_DETONATOR: - i = skill_get_splash(skillid, skilllv); + i = skill_get_splash(skill_id, skill_lv); map_foreachinarea(skill_detonator, src->m, x-i, y-i, x+i, y+i, BL_SKILL, src); - clif_skill_damage(src, src, tick, status_get_amotion(src), 0, -30000, 1, skillid, skilllv, 6); + clif_skill_damage(src, src, tick, status_get_amotion(src), 0, -30000, 1, skill_id, skill_lv, 6); break; /** * Mechanic @@ -10161,14 +10167,14 @@ case NC_NEUTRALBARRIER: case NC_STEALTHFIELD: skill_clear_unitgroup(src); // To remove previous skills - cannot used combined - if ((sg = skill_unitsetting(src,skillid,skilllv,src->x,src->y,0)) != NULL) { - sc_start2(src,skillid == NC_NEUTRALBARRIER ? SC_NEUTRALBARRIER_MASTER : SC_STEALTHFIELD_MASTER,100,skilllv,sg->group_id,skill_get_time(skillid,skilllv)); + if ((sg = skill_unitsetting(src,skill_id,skill_lv,src->x,src->y,0)) != NULL) { + sc_start2(src,skill_id == NC_NEUTRALBARRIER ? SC_NEUTRALBARRIER_MASTER : SC_STEALTHFIELD_MASTER,100,skill_lv,sg->group_id,skill_get_time(skill_id,skill_lv)); if (sd) pc_overheat(sd,1); } break; case NC_SILVERSNIPER: { - int class_ = 2042; + short class_ = 2042; struct mob_data *md; md = mob_once_spawn_sub(src, src->m, x, y, status_get_name(src), class_, "", SZ_SMALL, AI_NONE); @@ -10177,19 +10183,19 @@ md->special_state.ai = AI_FLORA; if (md->deletetimer != INVALID_TIMER) delete_timer(md->deletetimer, mob_timer_delete); - md->deletetimer = add_timer(gettick() + skill_get_time(skillid, skilllv), mob_timer_delete, md->bl.id, 0); + md->deletetimer = add_timer(gettick() + skill_get_time(skill_id, skill_lv), mob_timer_delete, md->bl.id, 0); mob_spawn(md); } } break; case NC_MAGICDECOY: - if (sd) clif_magicdecoy_list(sd,skilllv,x,y); + if (sd) clif_magicdecoy_list(sd,skill_lv,x,y); break; case SC_FEINTBOMB: - clif_skill_nodamage(src,src,skillid,skilllv,1); - skill_unitsetting(src,skillid,skilllv,x,y,0); // Set bomb on current Position + clif_skill_nodamage(src,src,skill_id,skill_lv,1); + skill_unitsetting(src,skill_id,skill_lv,x,y,0); // Set bomb on current Position if (skill_blown(src,src,6,unit_getdir(src),0)) skill_castend_nodamage_id(src,src,TF_HIDING,1,tick,0); break; @@ -10198,50 +10204,50 @@ int width;//according to data from irowiki it actually is a square for (width = 0; width < 7; width++) for (i = 0; i < 7; i++) - map_foreachincell(skill_area_sub, src->m, x-2+i, y-2+width, splash_target(src), src, LG_OVERBRAND_BRANDISH, skilllv, tick, flag|BCT_ENEMY,skill_castend_damage_id); + map_foreachincell(skill_area_sub, src->m, x-2+i, y-2+width, splash_target(src), src, LG_OVERBRAND_BRANDISH, skill_lv, tick, flag|BCT_ENEMY,skill_castend_damage_id); for (width = 0; width < 7; width++) for (i = 0; i < 7; i++) - map_foreachincell(skill_area_sub, src->m, x-2+i, y-2+width, splash_target(src), src, skillid, skilllv, tick, flag|BCT_ENEMY,skill_castend_damage_id); + map_foreachincell(skill_area_sub, src->m, x-2+i, y-2+width, splash_target(src), src, skill_id, skill_lv, tick, flag|BCT_ENEMY,skill_castend_damage_id); } break; case LG_BANDING: if (sc && sc->data[SC_BANDING]) status_change_end(src,SC_BANDING,INVALID_TIMER); - else if ((sg = skill_unitsetting(src,skillid,skilllv,src->x,src->y,0)) != NULL) { - sc_start4(src,SC_BANDING,100,skilllv,0,0,sg->group_id,skill_get_time(skillid,skilllv)); - if (sd) pc_banding(sd,skilllv); + else if ((sg = skill_unitsetting(src,skill_id,skill_lv,src->x,src->y,0)) != NULL) { + sc_start4(src,SC_BANDING,100,skill_lv,0,0,sg->group_id,skill_get_time(skill_id,skill_lv)); + if (sd) pc_banding(sd,skill_lv); } - clif_skill_nodamage(src,src,skillid,skilllv,1); + clif_skill_nodamage(src,src,skill_id,skill_lv,1); break; case LG_RAYOFGENESIS: - if (status_charge(src,status_get_max_hp(src)*3*skilllv / 100,0)) { - i = skill_get_splash(skillid,skilllv); + if (status_charge(src,status_get_max_hp(src)*3*skill_lv / 100,0)) { + i = skill_get_splash(skill_id,skill_lv); map_foreachinarea(skill_area_sub,src->m,x-i,y-i,x+i,y+i,splash_target(src), - src,skillid,skilllv,tick,flag|BCT_ENEMY|1,skill_castend_damage_id); + src,skill_id,skill_lv,tick,flag|BCT_ENEMY|1,skill_castend_damage_id); } else if (sd) - clif_skill_fail(sd,skillid,USESKILL_FAIL,0); + clif_skill_fail(sd,skill_id,USESKILL_FAIL,0); break; case WM_DOMINION_IMPULSE: - i = skill_get_splash(skillid, skilllv); + i = skill_get_splash(skill_id, skill_lv); map_foreachinarea(skill_ative_reverberation, src->m, x-i, y-i, x+i,y+i,BL_SKILL); break; case WM_GREAT_ECHO: flag|=1; // Should counsume 1 item per skill usage. - map_foreachinrange(skill_area_sub, src, skill_get_splash(skillid,skilllv),splash_target(src), src, skillid, skilllv, tick, flag|BCT_ENEMY, skill_castend_damage_id); + map_foreachinrange(skill_area_sub, src, skill_get_splash(skill_id,skill_lv),splash_target(src), src, skill_id, skill_lv, tick, flag|BCT_ENEMY, skill_castend_damage_id); break; case GN_CRAZYWEED: { - int area = skill_get_splash(GN_CRAZYWEED_ATK, skilllv); + int area = skill_get_splash(GN_CRAZYWEED_ATK, skill_lv); short x1 = 0, y1 = 0; - for (i = 0; i < 3 + (skilllv/2); i++) { + for (i = 0; i < 3 + (skill_lv/2); i++) { x1 = x - area + rnd()%(area * 2 + 1); y1 = y - area + rnd()%(area * 2 + 1); - skill_addtimerskill(src,tick+i*150,0,x1,y1,GN_CRAZYWEED_ATK,skilllv,-1,0); + skill_addtimerskill(src,tick+i*150,0,x1,y1,GN_CRAZYWEED_ATK,skill_lv,-1,0); } } break; @@ -10254,7 +10260,7 @@ for (i = 0; i < MAX_SKILLUNITGROUP && ud->skillunit[i]; i ++) { if (ud->skillunit[i]->skill_id == GN_DEMONIC_FIRE && distance_xy(x, y, ud->skillunit[i]->unit->bl.x, ud->skillunit[i]->unit->bl.y) < 4) { - switch (skilllv) { + switch (skill_lv) { case 3: ud->skillunit[i]->unit_id = UNT_FIRE_EXPANSION_SMOKE_POWDER; clif_changetraplook(&ud->skillunit[i]->unit->bl, UNT_FIRE_EXPANSION_SMOKE_POWDER); @@ -10267,12 +10273,12 @@ map_foreachinarea(skill_area_sub, src->m, ud->skillunit[i]->unit->bl.x - 3, ud->skillunit[i]->unit->bl.y - 3, ud->skillunit[i]->unit->bl.x + 3, ud->skillunit[i]->unit->bl.y + 3, BL_CHAR, - src, CR_ACIDDEMONSTRATION, sd ? pc_checkskill(sd, CR_ACIDDEMONSTRATION) : skilllv, tick, flag|BCT_ENEMY|1|SD_LEVEL, skill_castend_damage_id); + src, CR_ACIDDEMONSTRATION, sd ? pc_checkskill(sd, CR_ACIDDEMONSTRATION) : skill_lv, tick, flag|BCT_ENEMY|1|SD_LEVEL, skill_castend_damage_id); skill_delunit(ud->skillunit[i]->unit); break; default: - ud->skillunit[i]->unit->val2 = skilllv; - ud->skillunit[i]->unit->group->val2 = skilllv; + ud->skillunit[i]->unit->val2 = skill_lv; + ud->skillunit[i]->unit->group->val2 = skill_lv; break; } } @@ -10284,25 +10290,25 @@ case SO_ELECTRICWALK: if (sc && sc->data[type]) status_change_end(src,type,INVALID_TIMER); - clif_skill_nodamage(src, src ,skillid, skilllv, - sc_start2(src, type, 100, skillid, skilllv, skill_get_time(skillid, skilllv))); + clif_skill_nodamage(src, src ,skill_id, skill_lv, + sc_start2(src, type, 100, skill_id, skill_lv, skill_get_time(skill_id, skill_lv))); break; case SC_BLOODYLUST: //set in another group so instance will move if recasted flag |= 33; - skill_unitsetting(src, skillid, skilllv, x, y, 0); + skill_unitsetting(src, skill_id, skill_lv, x, y, 0); break; case KO_MAKIBISHI: - for (i = 0; i < (skilllv+2); i++) { + for (i = 0; i < (skill_lv+2); i++) { x = src->x - 1 + rnd()%3; y = src->y - 1 + rnd()%3; - skill_unitsetting(src,skillid,skilllv,x,y,0); + skill_unitsetting(src,skill_id,skill_lv,x,y,0); } break; default: - ShowWarning("skill_castend_pos2: Unknown skill used:%d\n",skillid); + ShowWarning("skill_castend_pos2: Unknown skill used:%d\n",skill_id); return 1; } @@ -10315,11 +10321,11 @@ if (sd->state.arrow_atk && !(flag&1)) { // consume arrow if this is a ground skill - battle_consume_ammo(sd, skillid, skilllv); + battle_consume_ammo(sd, skill_id, skill_lv); } // perform skill requirement consumption - skill_consume_requirement(sd,skillid,skilllv,2); + skill_consume_requirement(sd,skill_id,skill_lv,2); } return 0; @@ -10328,13 +10334,13 @@ /*========================================== * *------------------------------------------*/ -int skill_castend_map(struct map_session_data *sd, short skill_num, const char *map) +int skill_castend_map(struct map_session_data *sd, uint16 skill_id, const char *map) { nullpo_ret(sd); //Simplify skill_failed code. #define skill_failed(sd) { sd->menuskill_id = sd->menuskill_val = 0; } - if (skill_num != sd->menuskill_id) + if (skill_id != sd->menuskill_id) return 0; if (sd->bl.prev == NULL || pc_isdead(sd)) { @@ -10351,13 +10357,13 @@ sd->sc.data[SC_ROKISWEIL] || sd->sc.data[SC_AUTOCOUNTER] || sd->sc.data[SC_STEELBODY] || - (sd->sc.data[SC_DANCING] && skill_num < RK_ENCHANTBLADE && !pc_checkskill(sd, WM_LESSON)) || + (sd->sc.data[SC_DANCING] && skill_id < RK_ENCHANTBLADE && !pc_checkskill(sd, WM_LESSON)) || sd->sc.data[SC_BERSERK] || sd->sc.data[SC__BLOODYLUST] || sd->sc.data[SC_BASILICA] || sd->sc.data[SC_MARIONETTE] || sd->sc.data[SC_WHITEIMPRISON] || - (sd->sc.data[SC_STASIS] && skill_block_check(&sd->bl, SC_STASIS, skill_num)) || - (sd->sc.data[SC_KAGEHUMI] && skill_block_check(&sd->bl, SC_KAGEHUMI, skill_num)) || + (sd->sc.data[SC_STASIS] && skill_block_check(&sd->bl, SC_STASIS, skill_id)) || + (sd->sc.data[SC_KAGEHUMI] && skill_block_check(&sd->bl, SC_KAGEHUMI, skill_id)) || sd->sc.data[SC_OBLIVIONCURSE] || sd->sc.data[SC__MANHOLE] || (sd->sc.data[SC_ASH] && rnd()%2) //50% fail chance under ASH @@ -10370,14 +10376,14 @@ pc_stop_walking(sd,0); if (battle_config.skill_log && battle_config.skill_log&BL_PC) - ShowInfo("PC %d skill castend skill =%d map=%s\n",sd->bl.id,skill_num,map); + ShowInfo("PC %d skill castend skill =%d map=%s\n",sd->bl.id,skill_id,map); if (strcmp(map,"cancel")==0) { skill_failed(sd); return 0; } - switch (skill_num) { + switch (skill_id) { case AL_TELEPORT: if (strcmp(map,"Random")==0) pc_randomwarp(sd,CLR_TELEPORT); @@ -10395,7 +10401,7 @@ mapindex = mapindex_name2id((char *)map); if (!mapindex) { //Given map not found? - clif_skill_fail(sd,skill_num,USESKILL_FAIL_LEVEL,0); + clif_skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0); skill_failed(sd); return 0; } @@ -10404,19 +10410,19 @@ p[2] = &sd->status.memo_point[1]; p[3] = &sd->status.memo_point[2]; - if ((maxcount = skill_get_maxcount(skill_num, sd->menuskill_val)) > 0) { + if ((maxcount = skill_get_maxcount(skill_id, sd->menuskill_val)) > 0) { for (i=0; iud.skillunit[i] && maxcount; i++) { - if (sd->ud.skillunit[i]->skill_id == skill_num) + if (sd->ud.skillunit[i]->skill_id == skill_id) maxcount--; } if (!maxcount) { - clif_skill_fail(sd,skill_num,USESKILL_FAIL_LEVEL,0); + clif_skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0); skill_failed(sd); return 0; } } - lv = sd->skillitem==skill_num?sd->skillitemlv:pc_checkskill(sd,skill_num); + lv = sd->skillitem==skill_id?sd->skillitemlv:pc_checkskill(sd,skill_id); wx = sd->menuskill_val>>16; wy = sd->menuskill_val&0xffff; @@ -10442,7 +10448,7 @@ skill_consume_requirement(sd,sd->menuskill_id,lv,2); sd->skillitem = sd->skillitemlv = 0; // Clear data that's skipped in 'skill_castend_pos' [Inkfish] - if ((group=skill_unitsetting(&sd->bl,skill_num,lv,wx,wy,0))==NULL) { + if ((group=skill_unitsetting(&sd->bl,skill_id,lv,wx,wy,0))==NULL) { skill_failed(sd); return 0; } @@ -10528,7 +10534,7 @@ if (!flag) { //Transform - int skillid = unit->val2&UF_SONG ? BA_DISSONANCE : DC_UGLYDANCE; + uint16 skill_id = unit->val2&UF_SONG ? BA_DISSONANCE : DC_UGLYDANCE; // backup backup.skill_id = group->skill_id; @@ -10539,12 +10545,12 @@ backup.interval = group->interval; // replace - group->skill_id = skillid; + group->skill_id = skill_id; group->skill_lv = 1; - group->unit_id = skill_get_unit_id(skillid,0); - group->target_flag = skill_get_unit_target(skillid); - group->bl_flag = skill_get_unit_bl_target(skillid); - group->interval = skill_get_unit_interval(skillid); + group->unit_id = skill_get_unit_id(skill_id,0); + group->target_flag = skill_get_unit_target(skill_id); + group->bl_flag = skill_get_unit_bl_target(skill_id); + group->interval = skill_get_unit_interval(skill_id); } else { //Restore group->skill_id = backup.skill_id; @@ -10584,7 +10590,7 @@ * Initializes and sets a ground skill. * flag&1 is used to determine when the skill 'morphs' (Warp portal becomes active, or Fire Pillar becomes active) *------------------------------------------*/ -struct skill_unit_group *skill_unitsetting(struct block_list *src, short skillid, short skilllv, short x, short y, int flag) { +struct skill_unit_group *skill_unitsetting(struct block_list *src, uint16 skill_id, uint16 skill_lv, short x, short y, int flag) { struct skill_unit_group *group; int i,limit,val1=0,val2=0,val3=0; int target,interval,range,unit_flag,req_item=0; @@ -10597,20 +10603,20 @@ nullpo_retr(NULL, src); - limit = skill_get_time(skillid,skilllv); - range = skill_get_unit_range(skillid,skilllv); - interval = skill_get_unit_interval(skillid); - target = skill_get_unit_target(skillid); - unit_flag = skill_get_unit_flag(skillid); - layout = skill_get_unit_layout(skillid,skilllv,src,x,y); + limit = skill_get_time(skill_id,skill_lv); + range = skill_get_unit_range(skill_id,skill_lv); + interval = skill_get_unit_interval(skill_id); + target = skill_get_unit_target(skill_id); + unit_flag = skill_get_unit_flag(skill_id); + layout = skill_get_unit_layout(skill_id,skill_lv,src,x,y); sd = BL_CAST(BL_PC, src); status = status_get_status_data(src); sc = status_get_sc(src); // for traps, firewall and fogwall - celest - switch (skillid) { + switch (skill_id) { case MH_STEINWAND: - val2 = 4 + skilllv; //nb of attack blocked + val2 = 4 + skill_lv; //nb of attack blocked break; case MG_SAFETYWALL: #ifdef RENEWAL @@ -10619,17 +10625,17 @@ **/ val2 = status_get_max_hp(src) * 3; #else - val2 = skilllv+1; + val2 = skill_lv+1; #endif break; case MG_FIREWALL: if (sc && sc->data[SC_VIOLENTGALE]) limit = limit*3/2; - val2=4+skilllv; + val2=4+skill_lv; break; case AL_WARP: - val1=skilllv+6; + val1=skill_lv+6; if (!(flag&1)) limit=2000; else { // previous implementation (not used anymore) @@ -10648,13 +10654,13 @@ case PR_SANCTUARY: case NPC_EVILLAND: - val1=(skilllv+3)*2; + val1=(skill_lv+3)*2; break; case WZ_FIREPILLAR: if ((flag&1)!=0) limit=1000; - val1=skilllv+2; + val1=skill_lv+2; break; case WZ_QUAGMIRE: //The target changes to "all" if used in a gvg map. [Skotlex] case AM_DEMONSTRATION: @@ -10664,7 +10670,7 @@ target = BCT_ALL; break; case HT_SHOCKWAVE: - val1=skilllv*15+10; + val1=skill_lv*15+10; case HT_SANDMAN: case MA_SANDMAN: case HT_CLAYMORETRAP: @@ -10688,7 +10694,7 @@ case RA_VERDURETRAP: case RA_FIRINGTRAP: case RA_ICEBOUNDTRAP: { - struct skill_condition req = skill_get_requirement(sd,skillid,skilllv); + struct skill_condition req = skill_get_requirement(sd,skill_id,skill_lv); ARR_FIND(0, MAX_SKILL_ITEM_REQUIRE, i, req.itemid[i] && (req.itemid[i] == ITEMID_TRAP || req.itemid[i] == ITEMID_TRAP_ALLOY)); if (req.itemid[i]) req_item = req.itemid[i]; @@ -10715,7 +10721,7 @@ //Use the previous limit (minus the elapsed time) [Skotlex] limit = old_sg->limit - DIFF_TICK(gettick(), old_sg->tick); if (limit < 0) //This can happen... - limit = skill_get_time(skillid,skilllv); + limit = skill_get_time(skill_id,skill_lv); } skill_clear_group(src,1); } @@ -10727,15 +10733,15 @@ val1 = 10; //FIXME: This value is not used anywhere, what is it for? [Skotlex] break; case BA_WHISTLE: - val1 = skilllv +status->agi/10; // Flee increase - val2 = ((skilllv+1)/2)+status->luk/10; // Perfect dodge increase + val1 = skill_lv +status->agi/10; // Flee increase + val2 = ((skill_lv+1)/2)+status->luk/10; // Perfect dodge increase if (sd) { val1 += pc_checkskill(sd,BA_MUSICALLESSON); val2 += pc_checkskill(sd,BA_MUSICALLESSON); } break; case DC_HUMMING: - val1 = 2*skilllv+status->dex/10; // Hit increase + val1 = 2*skill_lv+status->dex/10; // Hit increase #ifdef RENEWAL val1 *= 2; #endif @@ -10743,64 +10749,64 @@ val1 += pc_checkskill(sd,DC_DANCINGLESSON); break; case BA_POEMBRAGI: - val1 = 3*skilllv+status->dex/10; // Casting time reduction + val1 = 3*skill_lv+status->dex/10; // Casting time reduction //For some reason at level 10 the base delay reduction is 50%. - val2 = (skilllv<10?3*skilllv:50)+status->int_/5; // After-cast delay reduction + val2 = (skill_lv<10?3*skill_lv:50)+status->int_/5; // After-cast delay reduction if (sd) { val1 += 2*pc_checkskill(sd,BA_MUSICALLESSON); val2 += 2*pc_checkskill(sd,BA_MUSICALLESSON); } break; case DC_DONTFORGETME: - val1 = status->dex/10 + 3*skilllv + 5; // ASPD decrease - val2 = status->agi/10 + 3*skilllv + 5; // Movement speed adjustment. + val1 = status->dex/10 + 3*skill_lv + 5; // ASPD decrease + val2 = status->agi/10 + 3*skill_lv + 5; // Movement speed adjustment. if (sd) { val1 += pc_checkskill(sd,DC_DANCINGLESSON); val2 += pc_checkskill(sd,DC_DANCINGLESSON); } break; case BA_APPLEIDUN: - val1 = 5+2*skilllv+status->vit/10; // MaxHP percent increase + val1 = 5+2*skill_lv+status->vit/10; // MaxHP percent increase if (sd) val1 += pc_checkskill(sd,BA_MUSICALLESSON); break; case DC_SERVICEFORYOU: - val1 = 15+skilllv+(status->int_/10); // MaxSP percent increase TO-DO: this INT bonus value is guessed - val2 = 20+3*skilllv+(status->int_/10); // SP cost reduction + val1 = 15+skill_lv+(status->int_/10); // MaxSP percent increase TO-DO: this INT bonus value is guessed + val2 = 20+3*skill_lv+(status->int_/10); // SP cost reduction if (sd) { val1 += pc_checkskill(sd,DC_DANCINGLESSON); //TO-DO This bonus value is guessed val2 += pc_checkskill(sd,DC_DANCINGLESSON); //TO-DO Should be half this value } break; case BA_ASSASSINCROSS: - val1 = 100+(10*skilllv)+(status->agi/10); // ASPD increase + val1 = 100+(10*skill_lv)+(status->agi/10); // ASPD increase if (sd) val1 += 5*pc_checkskill(sd,BA_MUSICALLESSON); break; case DC_FORTUNEKISS: - val1 = 10+skilllv+(status->luk/10); // Critical increase + val1 = 10+skill_lv+(status->luk/10); // Critical increase if (sd) val1 += pc_checkskill(sd,DC_DANCINGLESSON); val1*=10; //Because every 10 crit is an actual cri point. break; case BD_DRUMBATTLEFIELD: #ifdef RENEWAL - val1 = (skilllv+5)*25; //Watk increase - val2 = skilllv*10; //Def increase + val1 = (skill_lv+5)*25; //Watk increase + val2 = skill_lv*10; //Def increase #else - val1 = (skilllv+1)*25; //Watk increase - val2 = (skilllv+1)*2; //Def increase + val1 = (skill_lv+1)*25; //Watk increase + val2 = (skill_lv+1)*2; //Def increase #endif break; case BD_RINGNIBELUNGEN: - val1 = (skilllv+2)*25; //Watk increase + val1 = (skill_lv+2)*25; //Watk increase break; case BD_RICHMANKIM: - val1 = 25 + 11*skilllv; //Exp increase bonus. + val1 = 25 + 11*skill_lv; //Exp increase bonus. break; case BD_SIEGFRIED: - val1 = 55 + skilllv*5; //Elemental Resistance - val2 = skilllv*10; //Status ailment resistance + val1 = 55 + skill_lv*5; //Elemental Resistance + val2 = skill_lv*10; //Status ailment resistance break; case WE_CALLPARTNER: if (sd) val1 = sd->status.partner_id; @@ -10816,7 +10822,7 @@ break; case NJ_KAENSIN: skill_clear_group(src, 1); //Delete previous Kaensins/Suitons - val2 = (skilllv+1)/2 + 4; + val2 = (skill_lv+1)/2 + 4; break; case NJ_SUITON: skill_clear_group(src, 1); @@ -10852,7 +10858,7 @@ return NULL; val2 = sc->data[SC_POISONINGWEAPON]->val2; // Type of Poison val3 = sc->data[SC_POISONINGWEAPON]->val1; - limit = 4000 + 2000 * skilllv; + limit = 4000 + 2000 * skill_lv; break; case GD_LEADERSHIP: case GD_GLORYWOUNDS: @@ -10902,21 +10908,21 @@ break; } - nullpo_retr(NULL, group=skill_initunitgroup(src,layout->count,skillid,skilllv,skill_get_unit_id(skillid,flag&1)+subunt, limit, interval)); + nullpo_retr(NULL, group=skill_initunitgroup(src,layout->count,skill_id,skill_lv,skill_get_unit_id(skill_id,flag&1)+subunt, limit, interval)); group->val1=val1; group->val2=val2; group->val3=val3; group->target_flag=target; - group->bl_flag= skill_get_unit_bl_target(skillid); - group->state.ammo_consume = (sd && sd->state.arrow_atk && skillid != GS_GROUNDDRIFT); //Store if this skill needs to consume ammo. + group->bl_flag= skill_get_unit_bl_target(skill_id); + group->state.ammo_consume = (sd && sd->state.arrow_atk && skill_id != GS_GROUNDDRIFT); //Store if this skill needs to consume ammo. group->state.song_dance = (unit_flag&(UF_DANCE|UF_SONG)?1:0)|(unit_flag&UF_ENSEMBLE?2:0); //Signals if this is a song/dance/duet - group->state.guildaura = (skillid >= GD_LEADERSHIP && skillid <= GD_HAWKEYES)?1:0; + group->state.guildaura = (skill_id >= GD_LEADERSHIP && skill_id <= GD_HAWKEYES)?1:0; group->item_id = req_item; //if tick is greater than current, do not invoke onplace function just yet. [Skotlex] if (DIFF_TICK(group->tick, gettick()) > SKILLUNITTIMER_INTERVAL) active_flag = 0; - if (skillid==HT_TALKIEBOX || skillid==RG_GRAFFITI) { + if (skill_id==HT_TALKIEBOX || skill_id==RG_GRAFFITI) { group->valstr=(char *) aMalloc(MESSAGE_SIZE*sizeof(char)); if (sd) safestrncpy(group->valstr, sd->message, MESSAGE_SIZE); @@ -10926,15 +10932,15 @@ if (group->state.song_dance) { if (sd) { - sd->skillid_dance = skillid; - sd->skilllv_dance = skilllv; + sd->skillid_dance = skill_id; + sd->skilllv_dance = skill_lv; } if ( - sc_start4(src, SC_DANCING, 100, skillid, group->group_id, skilllv, + sc_start4(src, SC_DANCING, 100, skill_id, group->group_id, skill_lv, (group->state.song_dance&2?BCT_SELF:0), limit+1000) && - sd && group->state.song_dance&2 && skillid != CG_HERMODE //Hermod is a encore with a warp! + sd && group->state.song_dance&2 && skill_id != CG_HERMODE //Hermod is a encore with a warp! ) - skill_check_pc_partner(sd, skillid, &skilllv, 1, 1); + skill_check_pc_partner(sd, skill_id, &skill_lv, 1, 1); } limit = group->limit; @@ -10942,22 +10948,22 @@ struct skill_unit *unit; int ux = x + layout->dx[i]; int uy = y + layout->dy[i]; - int val1 = skilllv; + int val1 = skill_lv; int val2 = 0; int alive = 1; if (!group->state.song_dance && !map_getcell(src->m,ux,uy,CELL_CHKREACH)) continue; // don't place skill units on walls (except for songs/dances/encores) - if (battle_config.skill_wall_check && skill_get_unit_flag(skillid)&UF_PATHCHECK && !path_search_long(NULL,src->m,ux,uy,x,y,CELL_CHKWALL)) + if (battle_config.skill_wall_check && skill_get_unit_flag(skill_id)&UF_PATHCHECK && !path_search_long(NULL,src->m,ux,uy,x,y,CELL_CHKWALL)) continue; // no path between cell and center of casting. - switch (skillid) { + switch (skill_id) { case MG_FIREWALL: case NJ_KAENSIN: val2=group->val2; break; case WZ_ICEWALL: - val1 = (skilllv <= 1) ? 500 : 200 + 200*skilllv; + val1 = (skill_lv <= 1) ? 500 : 200 + 200*skill_lv; val2 = map_getcell(src->m, ux, uy, CELL_GETTYPE); break; case HT_LANDMINE: @@ -11000,21 +11006,21 @@ val2 = 0; break; case WM_REVERBERATION: - val1 = 1 + skilllv; + val1 = 1 + skill_lv; break; case GN_WALLOFTHORN: - val1 = 1000 * skilllv; // Need official value. [LimitLine] + val1 = 1000 * skill_lv; // Need official value. [LimitLine] break; default: if (group->state.song_dance&0x1) val2 = unit_flag&(UF_DANCE|UF_SONG); //Store whether this is a song/dance break; } - if (skill_get_unit_flag(skillid) & UF_RANGEDSINGLEUNIT && i == (layout->count / 2)) + if (skill_get_unit_flag(skill_id) & UF_RANGEDSINGLEUNIT && i == (layout->count / 2)) val2 |= UF_RANGEDSINGLEUNIT; // center. if (range <= 0) - map_foreachincell(skill_cell_overlap,src->m,ux,uy,BL_SKILL,skillid, &alive, src); + map_foreachincell(skill_cell_overlap,src->m,ux,uy,BL_SKILL,skill_id, &alive, src); if (!alive) continue; @@ -11022,7 +11028,7 @@ unit->limit=limit; unit->range=range; - if (skillid == PF_FOGWALL && alive == 2) { + if (skill_id == PF_FOGWALL && alive == 2) { //Double duration of cells on top of Deluge/Suiton unit->limit *= 2; group->limit = unit->limit; @@ -11040,7 +11046,7 @@ } //success, unit created. - switch (skillid) { + switch (skill_id) { case WZ_ICEWALL: map_foreachinrange(skill_icewall_block, src, AREA_SIZE, BL_MOB); break; @@ -11066,7 +11072,7 @@ struct status_change *sc; struct status_change_entry *sce; enum sc_type type; - int skillid; + uint16 skill_id; nullpo_ret(src); nullpo_ret(bl); @@ -11087,7 +11093,7 @@ type = status_skill2sc(sg->skill_id); sce = (sc && type != -1)?sc->data[type]:NULL; - skillid = sg->skill_id; //In case the group is deleted, we need to return the correct skill id, still. + skill_id = sg->skill_id; //In case the group is deleted, we need to return the correct skill id, still. switch (sg->unit_id) { case UNT_SPIDERWEB: if (sc && sc->data[SC_SPIDERWEB] && sc->data[SC_SPIDERWEB]->val1 > 0) { @@ -11158,7 +11164,7 @@ pc_setpos(sd,m,x,y,CLR_TELEPORT); } } else if (bl->type == BL_MOB && battle_config.mob_warp&2) { - int m = map_mapindex2mapid(sg->val3); + short m = map_mapindex2mapid(sg->val3); if (m < 0) break; //Map not available on this map-server. unit_warp(bl,m,sg->val2>>16,sg->val2&0xffff,CLR_TELEPORT); } @@ -11196,7 +11202,7 @@ case UNT_SIEGFRIED: //Needed to check when a dancer/bard leaves their ensemble area. if (sg->src_id==bl->id && !(sc && sc->data[SC_SPIRIT] && sc->data[SC_SPIRIT]->val2 == SL_BARDDANCER)) - return skillid; + return skill_id; if (!sce) sc_start4(bl,type,100,sg->skill_lv,sg->val1,sg->val2,0,sg->limit); break; @@ -11273,7 +11279,7 @@ sc_start4(bl,type,100,sg->skill_lv,0,0,0,1000); break; } - return skillid; + return skill_id; } /*========================================== @@ -11288,7 +11294,7 @@ struct status_change *tsc; struct skill_unit_group_tickset *ts; enum sc_type type; - int skillid; + uint16 skill_id; int diff=0; nullpo_ret(src); @@ -11307,7 +11313,7 @@ tstatus = status_get_status_data(bl); type = status_skill2sc(sg->skill_id); - skillid = sg->skill_id; + skill_id = sg->skill_id; if (sg->interval == -1) { switch (sg->unit_id) { @@ -11329,7 +11335,7 @@ return 0; ts->tick = tick+sg->interval; - if ((skillid==CR_GRANDCROSS || skillid==NPC_GRANDDARKNESS) && !battle_config.gx_allhit) + if ((skill_id==CR_GRANDCROSS || skill_id==NPC_GRANDDARKNESS) && !battle_config.gx_allhit) ts->tick += sg->interval*(map_count_oncell(bl->m,bl->x,bl->y,BL_CHAR)-1); } @@ -11985,9 +11991,9 @@ } if (bl->type == BL_MOB && ss != bl) - mobskill_event((TBL_MOB *)bl, ss, tick, MSC_SKILLUSED|(skillid<<16)); + mobskill_event((TBL_MOB *)bl, ss, tick, MSC_SKILLUSED|(skill_id<<16)); - return skillid; + return skill_id; } /*========================================== * Triggered when a char steps out of a skill cell @@ -12045,7 +12051,7 @@ /*========================================== * Triggered when a char steps out of a skill group (entirely) [Skotlex] *------------------------------------------*/ -static int skill_unit_onleft(int skill_id, struct block_list *bl, unsigned int tick) +static int skill_unit_onleft(uint16 skill_id, struct block_list *bl, unsigned int tick) { struct status_change *sc; struct status_change_entry *sce; @@ -12168,7 +12174,7 @@ struct skill_unit_group *group = unit->group; unsigned int tick = va_arg(ap,unsigned int); unsigned int flag = va_arg(ap,unsigned int); - int skill_id; + uint16 skill_id; bool dissonance; if ((!unit->alive && !(flag&4)) || bl->prev == NULL) @@ -12238,7 +12244,8 @@ *------------------------------------------*/ static int skill_check_condition_char_sub(struct block_list *bl, va_list ap) { - int *c, skillid; + int *c; + uint16 skill_id; struct block_list *src; struct map_session_data *sd; struct map_session_data *tsd; @@ -12251,9 +12258,9 @@ c=va_arg(ap,int *); p_sd = va_arg(ap, int *); - skillid = va_arg(ap,int); + skill_id = va_arg(ap,int); - if (((skillid != PR_BENEDICTIO && *c >=1) || *c >=2) && !(skill_get_inf2(skillid)&INF2_CHORUS_SKILL)) + if (((skill_id != PR_BENEDICTIO && *c >=1) || *c >=2) && !(skill_get_inf2(skill_id)&INF2_CHORUS_SKILL)) return 0; //Partner found for ensembles, or the two companions for Benedictio. [Skotlex] if (bl == src) @@ -12265,13 +12272,12 @@ if (tsd->sc.data[SC_SILENCE] || (tsd->sc.opt1 && tsd->sc.opt1 != OPT1_BURNING)) return 0; - if (skill_get_inf2(skillid)&INF2_CHORUS_SKILL) { + if (skill_get_inf2(skill_id)&INF2_CHORUS_SKILL) { if (tsd->status.party_id == sd->status.party_id && (tsd->class_&MAPID_THIRDMASK) == MAPID_MINSTRELWANDERER) p_sd[(*c)++] = tsd->bl.id; return 1; } else { - - switch (skillid) { + switch (skill_id) { case PR_BENEDICTIO: { int dir = map_calc_dir(&sd->bl,tsd->bl.x,tsd->bl.y); dir = (unit_getdir(&sd->bl) + dir)%8; //This adjusts dir to account for the direction the sd is facing. @@ -12296,20 +12302,18 @@ p_sd[(*c)++] = tsd->bl.id; return 1; default: { //Warning: Assuming Ensemble Dance/Songs for code speed. [Skotlex] - int skilllv; + uint16 skill_lv; if (pc_issit(tsd) || !unit_can_move(&tsd->bl)) return 0; if (sd->status.sex != tsd->status.sex && (tsd->class_&MAPID_UPPERMASK) == MAPID_BARDDANCER && - (skilllv = pc_checkskill(tsd, skillid)) > 0 && + (skill_lv = pc_checkskill(tsd, skill_id)) > 0 && (tsd->weapontype1==W_MUSICAL || tsd->weapontype1==W_WHIP) && sd->status.party_id && tsd->status.party_id && sd->status.party_id == tsd->status.party_id && !tsd->sc.data[SC_DANCING]) { p_sd[(*c)++]=tsd->bl.id; - return skilllv; - } else { - return 0; + return skill_lv; } } break; @@ -12322,7 +12326,7 @@ /*========================================== * Checks and stores partners for ensemble skills [Skotlex] *------------------------------------------*/ -int skill_check_pc_partner(struct map_session_data *sd, short skill_id, short *skill_lv, int range, int cast_flag) +int skill_check_pc_partner(struct map_session_data *sd, uint16 skill_id, uint16 *skill_lv, int range, int cast_flag) { static int c=0; static int p_sd[2] = { 0, 0 }; @@ -12419,7 +12423,7 @@ ); } -int skill_check_condition_castbegin(struct map_session_data *sd, short skill, short lv) +int skill_check_condition_castbegin(struct map_session_data *sd, uint16 skill, uint16 lv) { struct status_data *status; struct status_change *sc; @@ -13259,7 +13263,7 @@ return 1; } -int skill_check_condition_castend(struct map_session_data *sd, short skill, short lv) +int skill_check_condition_castend(struct map_session_data *sd, uint16 skill_id, uint16 skill_lv) { struct skill_condition require; struct status_data *status; @@ -13268,19 +13272,19 @@ nullpo_ret(sd); - if (lv <= 0 || sd->chatID) + if (skill_lv <= 0 || sd->chatID) return 0; - if (pc_has_permission(sd, PC_PERM_SKILL_UNCONDITIONAL) && sd->skillitem != skill) { + if (pc_has_permission(sd, PC_PERM_SKILL_UNCONDITIONAL) && sd->skillitem != skill_id) { //GMs don't override the skillItem check, otherwise they can use items without them being consumed! [Skotlex] - sd->state.arrow_atk = skill_get_ammotype(skill)?1:0; //Need to do arrow state check. + sd->state.arrow_atk = skill_get_ammotype(skill_id)?1:0; //Need to do arrow state check. sd->spiritball_old = sd->spiritball; //Need to do Spiritball check. return 1; } switch (sd->menuskill_id) { // Cast start or cast end?? case AM_PHARMACY: - switch (skill) { + switch (skill_id) { case AM_PHARMACY: case AC_MAKINGARROW: case BS_REPAIRWEAPON: @@ -13294,37 +13298,37 @@ case GN_MAKEBOMB: case GN_S_PHARMACY: case GN_CHANGEMATERIAL: - if (sd->menuskill_id != skill) + if (sd->menuskill_id != skill_id) return 0; break; } - if (sd->skillitem == skill) // Casting finished (Item skill or Hocus-Pocus) + if (sd->skillitem == skill_id) // Casting finished (Item skill or Hocus-Pocus) return 1; if (pc_is90overweight(sd)) { - clif_skill_fail(sd,skill,USESKILL_FAIL_WEIGHTOVER,0); + clif_skill_fail(sd,skill_id,USESKILL_FAIL_WEIGHTOVER,0); return 0; } // perform skill-specific checks (and actions) - switch (skill) { + switch (skill_id) { case PR_BENEDICTIO: - skill_check_pc_partner(sd, skill, &lv, 1, 1); + skill_check_pc_partner(sd, skill_id, &skill_lv, 1, 1); break; case AM_CANNIBALIZE: case AM_SPHEREMINE: { int c=0; int summons[5] = { 1589, 1579, 1575, 1555, 1590 }; //int summons[5] = { 1020, 1068, 1118, 1500, 1368 }; - int maxcount = (skill==AM_CANNIBALIZE)? 6-lv : skill_get_maxcount(skill,lv); - int mob_class = (skill==AM_CANNIBALIZE)? summons[lv-1] :1142; + int maxcount = (skill_id==AM_CANNIBALIZE)? 6-skill_lv : skill_get_maxcount(skill_id,skill_lv); + int mob_class = (skill_id==AM_CANNIBALIZE)? summons[skill_lv-1] :1142; if (battle_config.land_skill_limit && maxcount>0 && (battle_config.land_skill_limit&BL_PC)) { - i = map_foreachinmap(skill_check_condition_mob_master_sub ,sd->bl.m, BL_MOB, sd->bl.id, mob_class, skill, &c); + i = map_foreachinmap(skill_check_condition_mob_master_sub ,sd->bl.m, BL_MOB, sd->bl.id, mob_class, skill_id, &c); if (c >= maxcount || - (skill==AM_CANNIBALIZE && c != i && battle_config.summon_flora&2)) { + (skill_id==AM_CANNIBALIZE && c != i && battle_config.summon_flora&2)) { //Fails when: exceed max limit. There are other plant types already out. - clif_skill_fail(sd,skill,USESKILL_FAIL_LEVEL,0); + clif_skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0); return 0; } } @@ -13333,19 +13337,19 @@ case NC_SILVERSNIPER: case NC_MAGICDECOY: { int c = 0, j; - int maxcount = skill_get_maxcount(skill,lv); + int maxcount = skill_get_maxcount(skill_id,skill_lv); int mob_class = 2042; - if (skill == NC_MAGICDECOY) + if (skill_id == NC_MAGICDECOY) mob_class = 2043; if (battle_config.land_skill_limit && maxcount > 0 && (battle_config.land_skill_limit&BL_PC)) { - if (skill == NC_MAGICDECOY) { + if (skill_id == NC_MAGICDECOY) { for (j = mob_class; j <= 2046; j++) - map_foreachinmap(skill_check_condition_mob_master_sub, sd->bl.m, BL_MOB, sd->bl.id, j, skill, &c); + map_foreachinmap(skill_check_condition_mob_master_sub, sd->bl.m, BL_MOB, sd->bl.id, j, skill_id, &c); } else - map_foreachinmap(skill_check_condition_mob_master_sub, sd->bl.m, BL_MOB, sd->bl.id, mob_class, skill, &c); + map_foreachinmap(skill_check_condition_mob_master_sub, sd->bl.m, BL_MOB, sd->bl.id, mob_class, skill_id, &c); if (c >= maxcount) { - clif_skill_fail(sd , skill, USESKILL_FAIL_LEVEL, 0); + clif_skill_fail(sd , skill_id, USESKILL_FAIL_LEVEL, 0); return 0; } } @@ -13353,9 +13357,9 @@ break; case KO_ZANZOU: { int c = 0; - i = map_foreachinmap(skill_check_condition_mob_master_sub, sd->bl.m, BL_MOB, sd->bl.id, 2308, skill, &c); - if (c >= skill_get_maxcount(skill,lv) || c != i) { - clif_skill_fail(sd , skill, USESKILL_FAIL_LEVEL, 0); + i = map_foreachinmap(skill_check_condition_mob_master_sub, sd->bl.m, BL_MOB, sd->bl.id, 2308, skill_id, &c); + if (c >= skill_get_maxcount(skill_id,skill_lv) || c != i) { + clif_skill_fail(sd , skill_id, USESKILL_FAIL_LEVEL, 0); return 0; } } @@ -13364,15 +13368,15 @@ status = &sd->battle_status; - require = skill_get_requirement(sd,skill,lv); + require = skill_get_requirement(sd,skill_id,skill_lv); if (require.hp > 0 && status->hp <= (unsigned int)require.hp) { - clif_skill_fail(sd,skill,USESKILL_FAIL_HP_INSUFFICIENT,0); + clif_skill_fail(sd,skill_id,USESKILL_FAIL_HP_INSUFFICIENT,0); return 0; } if (require.weapon && !pc_check_weapontype(sd,require.weapon)) { - clif_skill_fail(sd,skill,USESKILL_FAIL_THIS_WEAPON,0); + clif_skill_fail(sd,skill_id,USESKILL_FAIL_THIS_WEAPON,0); return 0; } @@ -13383,7 +13387,7 @@ } else if (sd->status.inventory[i].amount < require.ammo_qty) { char e_msg[100]; sprintf(e_msg,"Skill Failed. [%s] requires %dx %s.", - skill_get_desc(skill), + skill_get_desc(skill_id), require.ammo_qty, itemdb_jname(sd->status.inventory[i].nameid)); clif_colormes(sd,COLOR_RED,e_msg); @@ -13403,11 +13407,11 @@ index[i] = pc_search_inventory(sd,require.itemid[i]); if (index[i] < 0 || sd->status.inventory[index[i]].amount < require.amount[i]) { if (require.itemid[i] == ITEMID_RED_GEMSTONE) - clif_skill_fail(sd,skill,USESKILL_FAIL_REDJAMSTONE,0);// red gemstone required + clif_skill_fail(sd,skill_id,USESKILL_FAIL_REDJAMSTONE,0);// red gemstone required else if (require.itemid[i] == ITEMID_BLUE_GEMSTONE) - clif_skill_fail(sd,skill,USESKILL_FAIL_BLUEJAMSTONE,0);// blue gemstone required + clif_skill_fail(sd,skill_id,USESKILL_FAIL_BLUEJAMSTONE,0);// blue gemstone required else - clif_skill_fail(sd,skill,USESKILL_FAIL_LEVEL,0); + clif_skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0); return 0; } } @@ -13417,16 +13421,16 @@ // type&2: consume items (after skill was used) // type&1: consume the others (before skill was used) -int skill_consume_requirement(struct map_session_data *sd, short skill, short lv, short type) +int skill_consume_requirement(struct map_session_data *sd, uint16 skill_id, uint16 skill_lv, short type) { struct skill_condition req; nullpo_ret(sd); - req = skill_get_requirement(sd,skill,lv); + req = skill_get_requirement(sd,skill_id,skill_lv); if (type&1) { - if (skill == CG_TAROTCARD || sd->state.autocast) + if (skill_id == CG_TAROTCARD || sd->state.autocast) req.sp = 0; // TarotCard will consume sp in skill_cast_nodamage_id [Inkfish] if (req.hp || req.sp) status_zap(&sd->bl, req.hp, req.sp); @@ -13435,7 +13439,7 @@ pc_delspiritball(sd,req.spiritball,0); if (req.zeny > 0) { - if (skill == NJ_ZENYNAGE) + if (skill_id == NJ_ZENYNAGE) req.zeny = 0; //Zeny is reduced on skill_attack. if (sd->status.zeny < req.zeny) req.zeny = sd->status.zeny; @@ -13454,7 +13458,7 @@ if (!req.itemid[i]) continue; - if (itemid_isgemstone(req.itemid[i]) && skill != HW_GANBANTEIN && sc && sc->data[SC_SPIRIT] && sc->data[SC_SPIRIT]->val2 == SL_WIZARD) + if (itemid_isgemstone(req.itemid[i]) && skill_id != HW_GANBANTEIN && sc && sc->data[SC_SPIRIT] && sc->data[SC_SPIRIT]->val2 == SL_WIZARD) continue; //Gemstones are checked, but not substracted from inventory. if ((n = pc_search_inventory(sd,req.itemid[i])) >= 0) @@ -13465,7 +13469,7 @@ return 1; } -struct skill_condition skill_get_requirement(struct map_session_data *sd, short skill, short lv) { +struct skill_condition skill_get_requirement(struct map_session_data *sd, uint16 skill_id, uint16 skill_lv) { struct skill_condition req; struct status_data *status; struct status_change *sc; @@ -13476,14 +13480,14 @@ if (!sd) return req; - if (sd->skillitem == skill) + if (sd->skillitem == skill_id) return req; // Item skills and Hocus-Pocus don't have requirements.[Inkfish] sc = &sd->sc; if (!sc->count) sc = NULL; - switch (skill) { + switch (skill_id) { // Turn off check. case BS_MAXIMIZE: case NV_TRICKDEAD: @@ -13504,29 +13508,29 @@ case TK_READYTURN: case SG_FUSION: case KO_YAMIKUMO: - if (sc && sc->data[status_skill2sc(skill)]) + if (sc && sc->data[status_skill2sc(skill_id)]) return req; } - j = skill_get_index(skill); + j = skill_get_index(skill_id); if (j == 0) // invalid skill id return req; - if (lv < 1 || lv > MAX_SKILL_LEVEL) + if (skill_lv < 1 || skill_lv > MAX_SKILL_LEVEL) return req; status = &sd->battle_status; - req.hp = skill_db[j].hp[lv-1]; - hp_rate = skill_db[j].hp_rate[lv-1]; + req.hp = skill_db[j].hp[skill_lv-1]; + hp_rate = skill_db[j].hp_rate[skill_lv-1]; if (hp_rate > 0) req.hp += (status->hp *hp_rate)/100; else req.hp += (status->max_hp * (-hp_rate))/100; - req.sp = skill_db[j].sp[lv-1]; - if ((sd->skillid_old == BD_ENCORE) && skill == sd->skillid_dance) + req.sp = skill_db[j].sp[skill_lv-1]; + if ((sd->skillid_old == BD_ENCORE) && skill_id == sd->skillid_dance) req.sp /= 2; - sp_rate = skill_db[j].sp_rate[lv-1]; + sp_rate = skill_db[j].sp_rate[skill_lv-1]; if (sp_rate > 0) req.sp += (status->sp *sp_rate)/100; else @@ -13534,10 +13538,10 @@ if (sd->dsprate != 100) req.sp = req.sp *sd->dsprate / 100; - ARR_FIND(0, ARRAYLENGTH(sd->skillusesprate), i, sd->skillusesprate[i].id == skill); + ARR_FIND(0, ARRAYLENGTH(sd->skillusesprate), i, sd->skillusesprate[i].id == skill_id); if (i < ARRAYLENGTH(sd->skillusesprate)) sp_skill_rate_bonus += sd->skillusesprate[i].val; - ARR_FIND(0, ARRAYLENGTH(sd->skillusesp), i, sd->skillusesp[i].id == skill); + ARR_FIND(0, ARRAYLENGTH(sd->skillusesp), i, sd->skillusesp[i].id == skill_id); if (i < ARRAYLENGTH(sd->skillusesp)) req.sp -= sd->skillusesp[i].val; @@ -13552,34 +13556,34 @@ req.sp += req.sp / 4; } - req.zeny = skill_db[j].zeny[lv-1]; + req.zeny = skill_db[j].zeny[skill_lv-1]; if (sc && sc->data[SC__UNLUCKY]) req.zeny += sc->data[SC__UNLUCKY]->val1 * 500; - req.spiritball = skill_db[j].spiritball[lv-1]; + req.spiritball = skill_db[j].spiritball[skill_lv-1]; req.state = skill_db[j].state; - req.mhp = skill_db[j].mhp[lv-1]; + req.mhp = skill_db[j].mhp[skill_lv-1]; req.weapon = skill_db[j].weapon; - req.ammo_qty = skill_db[j].ammo_qty[lv-1]; + req.ammo_qty = skill_db[j].ammo_qty[skill_lv-1]; if (req.ammo_qty) req.ammo = skill_db[j].ammo; - if (!req.ammo && skill && skill_isammotype(sd, skill)) { + if (!req.ammo && skill_id && skill_isammotype(sd, skill_id)) { //Assume this skill is using the weapon, therefore it requires arrows. req.ammo = 0xFFFFFFFF; //Enable use on all ammo types. req.ammo_qty = 1; } for (i = 0; i < MAX_SKILL_ITEM_REQUIRE; i++) { - if ((skill == AM_POTIONPITCHER || skill == CR_SLIMPITCHER || skill == CR_CULTIVATION) && i != lv%11 - 1) + if ((skill_id == AM_POTIONPITCHER || skill_id == CR_SLIMPITCHER || skill_id == CR_CULTIVATION) && i != skill_lv%11 - 1) continue; - switch (skill) { + switch (skill_id) { case AM_CALLHOMUN: if (sd->status.hom_id) //Don't delete items when hom is already out. continue; @@ -13589,15 +13593,15 @@ continue; break; case WZ_FIREPILLAR: // celest - if (lv <= 5) // no gems required at level 1-5 + if (skill_lv <= 5) // no gems required at level 1-5 continue; break; case AB_ADORAMUS: - if (itemid_isgemstone(skill_db[j].itemid[i]) && skill_check_pc_partner(sd,skill,&lv, 1, 2)) + if (itemid_isgemstone(skill_db[j].itemid[i]) && skill_check_pc_partner(sd,skill_id,&skill_lv, 1, 2)) continue; break; case WL_COMET: - if (itemid_isgemstone(skill_db[j].itemid[i]) && skill_check_pc_partner(sd,skill,&lv, 1, 0)) + if (itemid_isgemstone(skill_db[j].itemid[i]) && skill_check_pc_partner(sd,skill_id,&skill_lv, 1, 0)) continue; break; case GN_FIRE_EXPANSION: @@ -13620,20 +13624,20 @@ req.itemid[i] = skill_db[j].itemid[i]; req.amount[i] = skill_db[j].amount[i]; - if (itemid_isgemstone(req.itemid[i]) && skill != HW_GANBANTEIN) { + if (itemid_isgemstone(req.itemid[i]) && skill_id != HW_GANBANTEIN) { if (sd->special_state.no_gemstone) { //Make it substract 1 gem rather than skipping the cost. if (--req.amount[i] < 1) req.itemid[i] = 0; } if (sc && sc->data[SC_INTOABYSS]) { - if (skill != SA_ABRACADABRA) + if (skill_id != SA_ABRACADABRA) req.itemid[i] = req.amount[i] = 0; else if (--req.amount[i] < 1) req.amount[i] = 1; // Hocus Pocus allways use at least 1 gem } } - if (skill >= HT_SKIDTRAP && skill <= HT_TALKIEBOX && pc_checkskill(sd, RA_RESEARCHTRAP) > 0) { + if (skill_id >= HT_SKIDTRAP && skill_id <= HT_TALKIEBOX && pc_checkskill(sd, RA_RESEARCHTRAP) > 0) { if ((j=pc_search_inventory(sd,req.itemid[i])) < 0 || (j >= 0 && sd->status.inventory[j].amount < req.amount[i])) { req.itemid[i] = ITEMID_TRAP_ALLOY; req.amount[i] = 1; @@ -13643,7 +13647,7 @@ } /* requirements are level-dependent */ - switch (skill) { + switch (skill_id) { case NC_SHAPESHIFT: case GN_FIRE_EXPANSION: case SO_SUMMON_AGNI: @@ -13654,13 +13658,13 @@ case SO_FIRE_INSIGNIA: case SO_WIND_INSIGNIA: case SO_EARTH_INSIGNIA: - req.itemid[lv-1] = skill_db[j].itemid[lv-1]; - req.amount[lv-1] = skill_db[j].amount[lv-1]; + req.itemid[skill_lv-1] = skill_db[j].itemid[skill_lv-1]; + req.amount[skill_lv-1] = skill_db[j].amount[skill_lv-1]; break; } // Check for cost reductions due to skills & SCs - switch (skill) { + switch (skill_id) { case MC_MAMMONITE: if (pc_checkskill(sd,BS_UNFAIRLYTRICK)>0) req.zeny -= req.zeny*10/100; @@ -13737,7 +13741,7 @@ /*========================================== * Does cast-time reductions based on dex, item bonuses and config setting *------------------------------------------*/ -int skill_castfix(struct block_list *bl, int skill_id, int skill_lv) +int skill_castfix(struct block_list *bl, uint16 skill_id, uint16 skill_lv) { int time = skill_get_cast(skill_id, skill_lv); @@ -13817,7 +13821,7 @@ return time; } #ifdef RENEWAL_CAST -int skill_vfcastfix(struct block_list *bl, double time, int skill_id, int skill_lv) +int skill_vfcastfix(struct block_list *bl, double time, uint16 skill_id, uint16 skill_lv) { struct status_change *sc = status_get_sc(bl); struct map_session_data *sd = BL_CAST(BL_PC,bl); @@ -13908,7 +13912,7 @@ /*========================================== * Does delay reductions based on dex/agi, sc data, item bonuses, ... *------------------------------------------*/ -int skill_delayfix(struct block_list *bl, int skill_id, int skill_lv) +int skill_delayfix(struct block_list *bl, uint16 skill_id, uint16 skill_lv) { int delaynodex = skill_get_delaynodex(skill_id, skill_lv); int time = skill_get_delay(skill_id, skill_lv); @@ -14141,7 +14145,7 @@ } } -void skill_brandishspear(struct block_list *src, struct block_list *bl, int skillid, int skilllv, unsigned int tick, int flag) +void skill_brandishspear(struct block_list *src, struct block_list *bl, uint16 skill_id, uint16 skill_lv, unsigned int tick, int flag) { int c,n=4; int dir = map_calc_dir(src,bl->x,bl->y); @@ -14151,15 +14155,15 @@ skill_brandishspear_dir(&tc,dir,4); skill_area_temp[1] = bl->id; - if (skilllv > 9) { + if (skill_lv > 9) { for (c=1; c<4; c++) { map_foreachincell(skill_area_sub, bl->m,tc.val1[c],tc.val2[c],BL_CHAR, - src,skillid,skilllv,tick, flag|BCT_ENEMY|n, + src,skill_id,skill_lv,tick, flag|BCT_ENEMY|n, skill_castend_damage_id); } } - if (skilllv > 6) { + if (skill_lv > 6) { skill_brandishspear_dir(&tc,dir,-1); n--; } else { @@ -14167,13 +14171,13 @@ n-=2; } - if (skilllv > 3) { + if (skill_lv > 3) { for (c=0; c<5; c++) { map_foreachincell(skill_area_sub, bl->m,tc.val1[c],tc.val2[c],BL_CHAR, - src,skillid,skilllv,tick, flag|BCT_ENEMY|n, + src,skill_id,skill_lv,tick, flag|BCT_ENEMY|n, skill_castend_damage_id); - if (skilllv > 6 && n==3 && c==4) { + if (skill_lv > 6 && n==3 && c==4) { skill_brandishspear_dir(&tc,dir,-1); n--; c=-1; @@ -14184,7 +14188,7 @@ if (c==0||c==5) skill_brandishspear_dir(&tc,dir,-1); map_foreachincell(skill_area_sub, bl->m,tc.val1[c%5],tc.val2[c%5],BL_CHAR, - src,skillid,skilllv,tick, flag|BCT_ENEMY|1, + src,skill_id,skill_lv,tick, flag|BCT_ENEMY|1, skill_castend_damage_id); } } @@ -14332,40 +14336,40 @@ /*========================================== * *------------------------------------------*/ -int skill_autospell(struct map_session_data *sd, int skillid) +int skill_autospell(struct map_session_data *sd, uint16 skill_id) { - int skilllv; + uint16 skill_lv; int maxlv=1,lv; nullpo_ret(sd); - skilllv = sd->menuskill_val; - lv=pc_checkskill(sd,skillid); + skill_lv = sd->menuskill_val; + lv=pc_checkskill(sd,skill_id); - if (skilllv <= 0 || !lv) return 0; // Player must learn the skill before doing auto-spell [Lance] + if (skill_lv <= 0 || !lv) return 0; // Player must learn the skill before doing auto-spell [Lance] - if (skillid==MG_NAPALMBEAT) maxlv=3; - else if (skillid==MG_COLDBOLT || skillid==MG_FIREBOLT || skillid==MG_LIGHTNINGBOLT) { + if (skill_id==MG_NAPALMBEAT) maxlv=3; + else if (skill_id==MG_COLDBOLT || skill_id==MG_FIREBOLT || skill_id==MG_LIGHTNINGBOLT) { if (sd->sc.data[SC_SPIRIT] && sd->sc.data[SC_SPIRIT]->val2 == SL_SAGE) maxlv =10; //Soul Linker bonus. [Skotlex] - else if (skilllv==2) maxlv=1; - else if (skilllv==3) maxlv=2; - else if (skilllv>=4) maxlv=3; - } else if (skillid==MG_SOULSTRIKE) { - if (skilllv==5) maxlv=1; - else if (skilllv==6) maxlv=2; - else if (skilllv>=7) maxlv=3; - } else if (skillid==MG_FIREBALL) { - if (skilllv==8) maxlv=1; - else if (skilllv>=9) maxlv=2; - } else if (skillid==MG_FROSTDIVER) maxlv=1; + else if (skill_lv==2) maxlv=1; + else if (skill_lv==3) maxlv=2; + else if (skill_lv>=4) maxlv=3; + } else if (skill_id==MG_SOULSTRIKE) { + if (skill_lv==5) maxlv=1; + else if (skill_lv==6) maxlv=2; + else if (skill_lv>=7) maxlv=3; + } else if (skill_id==MG_FIREBALL) { + if (skill_lv==8) maxlv=1; + else if (skill_lv>=9) maxlv=2; + } else if (skill_id==MG_FROSTDIVER) maxlv=1; else return 0; if (maxlv > lv) maxlv = lv; - sc_start4(&sd->bl,SC_AUTOSPELL,100,skilllv,skillid,maxlv,0, - skill_get_time(SA_AUTOSPELL,skilllv)); + sc_start4(&sd->bl,SC_AUTOSPELL,100,skill_lv,skill_id,maxlv,0, + skill_get_time(SA_AUTOSPELL,skill_lv)); return 0; } @@ -14470,15 +14474,15 @@ int skill_frostjoke_scream(struct block_list *bl, va_list ap) { struct block_list *src; - int skillnum,skilllv; + uint16 skill_id,skill_lv; unsigned int tick; nullpo_ret(bl); nullpo_ret(src=va_arg(ap,struct block_list *)); - skillnum=va_arg(ap,int); - skilllv=va_arg(ap,int); - if (skilllv <= 0) return 0; + skill_id=va_arg(ap,int); + skill_lv=va_arg(ap,int); + if (skill_lv <= 0) return 0; tick=va_arg(ap,unsigned int); if (src == bl || status_isdead(bl)) @@ -14490,9 +14494,9 @@ } //It has been reported that Scream/Joke works the same regardless of woe-setting. [Skotlex] if (battle_check_target(src,bl,BCT_ENEMY) > 0) - skill_additional_effect(src,bl,skillnum,skilllv,BF_MISC,ATK_DEF,tick); + skill_additional_effect(src,bl,skill_id,skill_lv,BF_MISC,ATK_DEF,tick); else if (battle_check_target(src,bl,BCT_PARTY) > 0 && rnd()%100 < 10) - skill_additional_effect(src,bl,skillnum,skilllv,BF_MISC,ATK_DEF,tick); + skill_additional_effect(src,bl,skill_id,skill_lv,BF_MISC,ATK_DEF,tick); return 0; } @@ -14500,9 +14504,9 @@ /*========================================== * *------------------------------------------*/ -static void skill_unitsetmapcell(struct skill_unit *src, int skill_num, int skill_lv, cell_t cell, bool flag) +static void skill_unitsetmapcell(struct skill_unit *src, uint16 skill_id, uint16 skill_lv, cell_t cell, bool flag) { - int range = skill_get_unit_range(skill_num,skill_lv); + int range = skill_get_unit_range(skill_id,skill_lv); int x,y; for (y = src->bl.y - range; y <= src->bl.y + range; ++y) @@ -14516,7 +14520,8 @@ int skill_attack_area(struct block_list *bl, va_list ap) { struct block_list *src,*dsrc; - int atk_type,skillid,skilllv,flag,type; + int atk_type,flag,type; + uint16 skill_id,skill_lv; unsigned int tick; if (status_isdead(bl)) @@ -14525,32 +14530,32 @@ atk_type = va_arg(ap,int); src=va_arg(ap,struct block_list *); dsrc=va_arg(ap,struct block_list *); - skillid=va_arg(ap,int); - skilllv=va_arg(ap,int); + skill_id=va_arg(ap,int); + skill_lv=va_arg(ap,int); tick=va_arg(ap,unsigned int); flag=va_arg(ap,int); type=va_arg(ap,int); if (skill_area_temp[1] == bl->id) //This is the target of the skill, do a full attack and skip target checks. - return skill_attack(atk_type,src,dsrc,bl,skillid,skilllv,tick,flag); + return skill_attack(atk_type,src,dsrc,bl,skill_id,skill_lv,tick,flag); if (battle_check_target(dsrc,bl,type) <= 0 || - !status_check_skilluse(NULL, bl, skillid, 2)) + !status_check_skilluse(NULL, bl, skill_id, 2)) return 0; - switch (skillid) { + switch (skill_id) { case WZ_FROSTNOVA: //Skills that don't require the animation to be removed case NPC_ACIDBREATH: case NPC_DARKNESSBREATH: case NPC_FIREBREATH: case NPC_ICEBREATH: case NPC_THUNDERBREATH: - return skill_attack(atk_type,src,dsrc,bl,skillid,skilllv,tick,flag); + return skill_attack(atk_type,src,dsrc,bl,skill_id,skill_lv,tick,flag); default: //Area-splash, disable skill animation. - return skill_attack(atk_type,src,dsrc,bl,skillid,skilllv,tick,flag|SD_ANIMATION); + return skill_attack(atk_type,src,dsrc,bl,skill_id,skill_lv,tick,flag|SD_ANIMATION); } } /*========================================== @@ -14698,18 +14703,18 @@ *------------------------------------------*/ static int skill_cell_overlap(struct block_list *bl, va_list ap) { - int skillid; + uint16 skill_id; int *alive; struct skill_unit *unit; - skillid = va_arg(ap,int); + skill_id = va_arg(ap,int); alive = va_arg(ap,int *); unit = (struct skill_unit *)bl; if (unit == NULL || unit->group == NULL || (*alive) == 0) return 0; - switch (skillid) { + switch (skill_id) { case SA_LANDPROTECTOR: if (unit->group->skill_id == SA_LANDPROTECTOR) { //Check for offensive Land Protector to delete both. [Skotlex] (*alive) = 0; @@ -14789,7 +14794,7 @@ break; } - if (unit->group->skill_id == SA_LANDPROTECTOR && !(skill_get_inf2(skillid)&(INF2_SONG_DANCE|INF2_TRAP))) { //It deletes everything except songs/dances/traps + if (unit->group->skill_id == SA_LANDPROTECTOR && !(skill_get_inf2(skill_id)&(INF2_SONG_DANCE|INF2_TRAP))) { //It deletes everything except songs/dances/traps (*alive) = 0; return 1; } @@ -15106,10 +15111,10 @@ /*========================================== * *------------------------------------------*/ -static DBMap *group_db = NULL;// int group_id -> struct skill_unit_group* +static DBMap *group_db = NULL;// uint32 group_id -> struct skill_unit_group* /// Returns the target skill_unit_group or NULL if not found. -struct skill_unit_group *skill_id2group(int group_id) { +struct skill_unit_group *skill_id2group(uint32 group_id) { return (struct skill_unit_group *)idb_get(group_db, group_id); } @@ -15137,12 +15142,12 @@ } } -struct skill_unit_group *skill_initunitgroup(struct block_list *src, int count, short skillid, short skilllv, int unit_id, int limit, int interval) { +struct skill_unit_group *skill_initunitgroup(struct block_list *src, int count, uint16 skill_id, uint16 skill_lv, int unit_id, int limit, int interval) { struct unit_data *ud = unit_bl2ud(src); struct skill_unit_group *group; int i; - if (skillid <= 0 || skilllv <= 0) return 0; + if (skill_id <= 0 || skill_lv <= 0) return 0; nullpo_retr(NULL, src); nullpo_retr(NULL, ud); @@ -15175,8 +15180,8 @@ group->val1 = 0; group->val2 = 0; group->val3 = 0; - group->skill_id = skillid; - group->skill_lv = skilllv; + group->skill_id = skill_id; + group->skill_lv = skill_lv; group->unit_id = unit_id; group->map = src->m; group->limit = limit; @@ -15186,7 +15191,7 @@ ud->skillunit[i] = group; - if (skillid == PR_SANCTUARY) //Sanctuary starts healing +1500ms after casted. [Skotlex] + if (skill_id == PR_SANCTUARY) //Sanctuary starts healing +1500ms after casted. [Skotlex] group->tick += 1500; idb_put(group_db, group->group_id, group); @@ -15645,7 +15650,7 @@ int flag = va_arg(ap,int); bool dissonance; - int skill_id; + uint16 skill_id; int i; nullpo_ret(group); @@ -15766,7 +15771,7 @@ /*========================================== * *------------------------------------------*/ -int skill_unit_move_unit_group(struct skill_unit_group *group, int m, int dx, int dy) +int skill_unit_move_unit_group(struct skill_unit_group *group, short m, int dx, int dy) { int i,j; unsigned int tick = gettick(); @@ -15918,10 +15923,11 @@ /*========================================== * *------------------------------------------*/ -int skill_produce_mix(struct map_session_data *sd, int skill_id, int nameid, int slot1, int slot2, int slot3, int qty) +int skill_produce_mix(struct map_session_data *sd, uint16 skill_id, int nameid, int slot1, int slot2, int slot3, int qty) { int slot[3]; - int i,sc,ele,idx,equip,wlv,make_per = 0,flag = 0,skilllv = 0; + int i,sc,ele,idx,equip,wlv,make_per = 0,flag = 0; + uint16 skill_lv = 0; int num = -1; // exclude the recipe struct status_data *status; struct item_data *data; @@ -15930,7 +15936,7 @@ status = status_get_status_data(&sd->bl); if (sd->skillid_old == skill_id) - skilllv = sd->skilllv_old; + skill_lv = sd->skilllv_old; if (!(idx=skill_can_produce_mix(sd,nameid,-1, qty))) return 0; @@ -16149,7 +16155,7 @@ case GN_S_PHARMACY: { int difficulty = 0; - difficulty = (620 - 20 * skilllv);// (620 - 20 * Skill Level) + difficulty = (620 - 20 * skill_lv);// (620 - 20 * Skill Level) make_per = status->int_ + status->dex/2 + status->luk + sd->status.job_level + (30+rnd()%120) + // (Caster?s INT) + (Caster?s DEX / 2) + (Caster?s LUK) + (Caster?s Job Level) + Random number between (30 ~ 150) + (sd->status.base_level-100) + pc_checkskill(sd, AM_LEARNINGPOTION) + pc_checkskill(sd, CR_FULLPROTECTION)*(4+rnd()%6); // (Caster?s Base Level - 100) + (Potion Research x 5) + (Full Chemical Protection Skill Level) x (Random number between 4 ~ 10) @@ -16234,12 +16240,12 @@ else if (make_per >= 30 && make_per < difficulty) qty = 5; - if (qty < 0 || (skilllv == 1 && make_per < difficulty)) { + if (qty < 0 || (skill_lv == 1 && make_per < difficulty)) { qty = ~qty + 1; make_per = 0; } else make_per = 10000; - qty = (skilllv > 1 ? qty : 1); + qty = (skill_lv > 1 ? qty : 1); } break; default: @@ -16597,12 +16603,12 @@ return 0; } -static void skill_toggle_magicpower(struct block_list *bl, short skillid) +static void skill_toggle_magicpower(struct block_list *bl, uint16 skill_id) { struct status_change *sc = status_get_sc(bl); // non-offensive and non-magic skills do not affect the status - if (skill_get_nk(skillid)&NK_NO_DAMAGE || !(skill_get_type(skillid)&BF_MAGIC)) + if (skill_get_nk(skill_id)&NK_NO_DAMAGE || !(skill_get_type(skill_id)&BF_MAGIC)) return; if (sc && sc->count && sc->data[SC_MAGICPOWER]) { @@ -16678,7 +16684,7 @@ ARR_FIND(0,MAX_SKILL_SPELLBOOK_DB,i,skill_spellbook_db[i].nameid == nameid); // Search for information of this item if (i == MAX_SKILL_SPELLBOOK_DB) return 0; - if (!pc_checkskill(sd, (skill_id = skill_spellbook_db[i].skillid))) { + if (!pc_checkskill(sd, (skill_id = skill_spellbook_db[i].skill_id))) { // User don't know the skill sc_start(&sd->bl, SC_SLEEP, 100, 1, skill_get_time(WL_READING_SB, pc_checkskill(sd,WL_READING_SB))); clif_skill_fail(sd, WL_READING_SB, USESKILL_FAIL_SPELLBOOK_DIFFICULT_SLEEP, 0); @@ -16707,7 +16713,7 @@ return 1; } -int skill_select_menu(struct map_session_data *sd,int skill_id) +int skill_select_menu(struct map_session_data *sd,uint16 skill_id) { int id, lv, prob, aslvl = 0; nullpo_ret(sd); @@ -16729,7 +16735,7 @@ sc_start4(&sd->bl,SC__AUTOSHADOWSPELL,100,id,lv,prob,0,skill_get_time(SC_AUTOSHADOWSPELL,aslvl)); return 0; } -int skill_elementalanalysis(struct map_session_data *sd, int n, int skill_lv, unsigned short *item_list) +int skill_elementalanalysis(struct map_session_data *sd, int n, uint16 skill_lv, unsigned short *item_list) { int i; @@ -16941,24 +16947,24 @@ * @param load whether this assignment is being loaded upon player login * @return 0 if successful, -1 otherwise */ -int skill_blockpc_start_(struct map_session_data *sd, int skillid, int tick, bool load) +int skill_blockpc_start_(struct map_session_data *sd, uint16 skill_id, int tick, bool load) { - int oskillid = skillid; + short oskillid = skill_id; struct skill_cd *cd = NULL; nullpo_retr(-1, sd); - skillid = skill_get_index(skillid); - if (skillid == 0) + skill_id = skill_get_index(skill_id); + if (skill_id == 0) return -1; if (tick < 1) { - sd->blockskill[skillid] = 0; + sd->blockskill[skill_id] = 0; return -1; } if (battle_config.display_status_timers) - clif_skill_cooldown(sd, skillid, tick); + clif_skill_cooldown(sd, skill_id, tick); if (!load) { // not being loaded initially so ensure the skill delay is recorded @@ -16970,12 +16976,12 @@ // record the skill duration in the database map cd->duration[cd->cursor] = tick; - cd->skidx[cd->cursor] = skillid; + cd->skidx[cd->cursor] = skill_id; cd->nameid[cd->cursor] = oskillid; cd->cursor++; } - sd->blockskill[skillid] = 0x1|(0xFE&add_timer(gettick()+tick,skill_blockpc_end,sd->bl.id,skillid)); + sd->blockskill[skill_id] = 0x1|(0xFE&add_timer(gettick()+tick,skill_blockpc_end,sd->bl.id,skill_id)); return 0; } @@ -16989,20 +16995,20 @@ return 1; } -int skill_blockhomun_start(struct homun_data *hd, int skillid, int tick) //[orn] +int skill_blockhomun_start(struct homun_data *hd, uint16 skill_id, int tick) //[orn] { nullpo_retr(-1, hd); - skillid = skill_get_index(skillid); - if (skillid == 0) + skill_id = skill_get_index(skill_id); + if (skill_id == 0) return -1; if (tick < 1) { - hd->blockskill[skillid] = 0; + hd->blockskill[skill_id] = 0; return -1; } - hd->blockskill[skillid] = 1; - return add_timer(gettick() + tick, skill_blockhomun_end, hd->bl.id, skillid); + hd->blockskill[skill_id] = 1; + return add_timer(gettick() + tick, skill_blockhomun_end, hd->bl.id, skill_id); } int skill_blockmerc_end(int tid, unsigned int tick, int id, intptr_t data) //[orn] @@ -17015,23 +17021,23 @@ return 1; } -int skill_blockmerc_start(struct mercenary_data *md, int skillid, int tick) +int skill_blockmerc_start(struct mercenary_data *md, uint16 skill_id, int tick) { nullpo_retr(-1, md); - if ((skillid = skill_get_index(skillid)) == 0) + if ((skill_id = skill_get_index(skill_id)) == 0) return -1; if (tick < 1) { - md->blockskill[skillid] = 0; + md->blockskill[skill_id] = 0; return -1; } - md->blockskill[skillid] = 1; - return add_timer(gettick() + tick, skill_blockmerc_end, md->bl.id, skillid); + md->blockskill[skill_id] = 1; + return add_timer(gettick() + tick, skill_blockmerc_end, md->bl.id, skill_id); } /** * Adds a new skill unit entry for this player to recast after map load **/ -void skill_usave_add(struct map_session_data *sd, int skill_num, int skill_lv) +void skill_usave_add(struct map_session_data *sd, uint16 skill_id, uint16 skill_lv) { struct skill_usave *sus = NULL; @@ -17042,7 +17048,7 @@ CREATE(sus, struct skill_usave, 1); idb_put(skillusave_db, sd->status.char_id, sus); - sus->skill_num = skill_num; + sus->skill_id = skill_id; sus->skill_lv = skill_lv; return; @@ -17055,7 +17061,7 @@ return; } - skill_unitsetting(&sd->bl,sus->skill_num,sus->skill_lv,sd->bl.x,sd->bl.y,0); + skill_unitsetting(&sd->bl,sus->skill_id,sus->skill_lv,sd->bl.x,sd->bl.y,0); idb_remove(skillusave_db,sd->status.char_id); @@ -17418,20 +17424,20 @@ } -int skill_block_check(struct block_list *bl, sc_type type , int skillid) +int skill_block_check(struct block_list *bl, sc_type type , uint16 skill_id) { int inf = 0; struct status_change *sc = status_get_sc(bl); - if (!sc || !bl || skillid < 1) + if (!sc || !bl || skill_id < 1) return 0; // Can do it switch (type) { case SC_STASIS: - inf = skill_get_inf2(skillid); + inf = skill_get_inf2(skill_id); if (inf == INF2_SONG_DANCE || /*skill_get_inf2(skillid) == INF2_CHORUS_SKILL ||*/ inf == INF2_SPIRIT_SKILL) return 1; // Can't do it. - switch (skillid) { + switch (skill_id) { case NV_FIRSTAID: case TF_HIDING: case AS_CLOAKING: @@ -17546,7 +17552,7 @@ } break; case SC_KAGEHUMI: - switch (skillid) { + switch (skill_id) { case TF_HIDING: case AS_CLOAKING: case GC_CLOAKINGEXCEED: @@ -17566,7 +17572,7 @@ return 0; } -int skill_get_elemental_type(int skill_id , int skill_lv) +int skill_get_elemental_type(uint16 skill_id , uint16 skill_lv) { int type = 0; @@ -17889,18 +17895,18 @@ { // SkillID,PreservePoints - int skillid = atoi(split[0]), - points = atoi(split[1]), - nameid = atoi(split[2]); + uint16 skill_id = (short) atoi(split[0]); + int points = atoi(split[1]); + int nameid = atoi(split[2]); - if (!skill_get_index(skillid) || !skill_get_max(skillid)) - ShowError("spellbook_db: Invalid skill ID %d\n", skillid); - if (!skill_get_inf(skillid)) - ShowError("spellbook_db: Passive skills cannot be memorized (%d/%s)\n", skillid, skill_get_name(skillid)); + if (!skill_get_index(skill_id) || !skill_get_max(skill_id)) + ShowError("spellbook_db: Invalid skill ID %d\n", skill_id); + if (!skill_get_inf(skill_id)) + ShowError("spellbook_db: Passive skills cannot be memorized (%d/%s)\n", skill_id, skill_get_name(skill_id)); if (points < 1) - ShowError("spellbook_db: PreservePoints have to be 1 or above! (%d/%s)\n", skillid, skill_get_name(skillid)); + ShowError("spellbook_db: PreservePoints have to be 1 or above! (%d/%s)\n", skill_id, skill_get_name(skill_id)); else { - skill_spellbook_db[current].skillid = skillid; + skill_spellbook_db[current].skill_id = skill_id; skill_spellbook_db[current].point = points; skill_spellbook_db[current].nameid = nameid; @@ -17930,7 +17936,7 @@ if (current >= MAX_SKILL_IMPROVISE_DB) { ShowError("skill_improvise_db: Maximum amount of entries reached (%d), increase MAX_SKILL_IMPROVISE_DB\n",MAX_SKILL_IMPROVISE_DB); } - skill_improvise_db[current].skillid = i; + skill_improvise_db[current].skill_id = i; skill_improvise_db[current].per = j; // Still need confirm it. return true; @@ -17948,20 +17954,20 @@ return false; } - skill_magicmushroom_db[current].skillid = i; + skill_magicmushroom_db[current].skill_id = i; return true; } static bool skill_parse_row_reproducedb(char *split[], int column, int current) { - int skillid = atoi(split[0]); + uint16 skill_id = (short) atoi(split[0]); - skillid = skill_get_index(skillid); - if (!skillid) + skill_id = skill_get_index(skill_id); + if (!skill_id) return false; - skill_reproduce_db[skillid] = true; + skill_reproduce_db[skill_id] = true; return true; } @@ -17980,7 +17986,7 @@ return false; } - skill_abra_db[current].skillid = i; + skill_abra_db[current].skill_id = i; skill_abra_db[current].req_lv = atoi(split[2]); skill_abra_db[current].per = atoi(split[3]); Index: src/map/skill.h --- src/map/skill.h Base (BASE) +++ src/map/skill.h Locally Modified (Based On LOCAL) @@ -128,7 +128,7 @@ int target_id; int map; short x,y; - short skill_id,skill_lv; + uint16 skill_id,skill_lv; int type; // a BF_ type (NOTE: some places use this as general-purpose storage...) int flag; }; @@ -137,7 +137,7 @@ struct skill_unit_group { int src_id; int party_id; - int guild_id; + uint32 guild_id; int bg_id; int map; int target_flag; //Holds BCT_* flag for battle_check_target @@ -145,11 +145,11 @@ unsigned int tick; int limit,interval; - short skill_id,skill_lv; + uint16 skill_id,skill_lv; int val1,val2,val3; char *valstr; int unit_id; - int group_id; + uint32 group_id; int unit_count,alive_count; int item_id; //store item used. struct skill_unit *unit; @@ -213,7 +213,7 @@ // Abracadabra database struct s_skill_abra_db { - int skillid; + uint16 skill_id; int req_lv; int per; }; @@ -265,7 +265,7 @@ int skill_get_blewcount(int id ,int lv); int skill_get_unit_flag(int id); int skill_get_unit_target(int id); -int skill_tree_get_max(int id, int b_class); // Celest +int skill_tree_get_max(int id, short b_class); // Celest const char *skill_get_name(int id); // [Skotlex] const char *skill_get_desc(int id); // [Skotlex] @@ -274,23 +274,23 @@ int skill_isammotype(struct map_session_data *sd, int skill); int skill_castend_id(int tid, unsigned int tick, int id, intptr_t data); int skill_castend_pos(int tid, unsigned int tick, int id, intptr_t data); -int skill_castend_map(struct map_session_data *sd,short skill_num, const char *map); +int skill_castend_map(struct map_session_data *sd,uint16 skill_id, const char *map); int skill_cleartimerskill(struct block_list *src); -int skill_addtimerskill(struct block_list *src,unsigned int tick,int target,int x,int y,int skill_id,int skill_lv,int type,int flag); +int skill_addtimerskill(struct block_list *src,unsigned int tick,int target,short x,short y,uint16 skill_id,uint16 skill_lv,int type,int flag); // Results? Added -int skill_additional_effect(struct block_list *src, struct block_list *bl,int skillid,int skilllv,int attack_type,int dmg_lv,unsigned int tick); -int skill_counter_additional_effect(struct block_list *src, struct block_list *bl,int skillid,int skilllv,int attack_type,unsigned int tick); +int skill_additional_effect(struct block_list *src, struct block_list *bl,uint16 skill_id,uint16 skill_lv,int attack_type,int dmg_lv,unsigned int tick); +int skill_counter_additional_effect(struct block_list *src, struct block_list *bl,uint16 skill_id,uint16 skill_lv,int attack_type,unsigned int tick); int skill_blown(struct block_list *src, struct block_list *target, int count, int direction, int flag); int skill_break_equip(struct block_list *bl, unsigned short where, int rate, int flag); int skill_strip_equip(struct block_list *bl, unsigned short where, int rate, int lv, int time); // Skills unit -struct skill_unit_group *skill_id2group(int group_id); -struct skill_unit_group *skill_unitsetting(struct block_list *src, short skillid, short skilllv, short x, short y, int flag); +struct skill_unit_group *skill_id2group(uint32 group_id); +struct skill_unit_group *skill_unitsetting(struct block_list *src, uint16 skill_id, uint16 skill_lv, short x, short y, int flag); struct skill_unit *skill_initunit(struct skill_unit_group *group, int idx, int x, int y, int val1, int val2); int skill_delunit(struct skill_unit *unit); -struct skill_unit_group *skill_initunitgroup(struct block_list *src, int count, short skillid, short skilllv, int unit_id, int limit, int interval); +struct skill_unit_group *skill_initunitgroup(struct block_list *src, int count, uint16 skill_id, uint16 skill_lv, int unit_id, int limit, int interval); int skill_delunitgroup_(struct skill_unit_group *group, const char *file, int line, const char *func); #define skill_delunitgroup(group) skill_delunitgroup_(group,__FILE__,__LINE__,__func__) int skill_clear_unitgroup(struct block_list *src); @@ -299,25 +299,25 @@ int skill_unit_ondamaged(struct skill_unit *src,struct block_list *bl,int damage,unsigned int tick); -int skill_castfix(struct block_list *bl, int skill_id, int skill_lv); +int skill_castfix(struct block_list *bl, uint16 skill_id, uint16 skill_lv); int skill_castfix_sc(struct block_list *bl, int time); #ifdef RENEWAL_CAST -int skill_vfcastfix(struct block_list *bl, double time, int skill_id, int skill_lv); +int skill_vfcastfix(struct block_list *bl, double time, uint16 skill_id, uint16 skill_lv); #endif -int skill_delayfix(struct block_list *bl, int skill_id, int skill_lv); +int skill_delayfix(struct block_list *bl, uint16 skill_id, uint16 skill_lv); // Skill conditions check and remove [Inkfish] -int skill_check_condition_castbegin(struct map_session_data *sd, short skill, short lv); -int skill_check_condition_castend(struct map_session_data *sd, short skill, short lv); -int skill_consume_requirement(struct map_session_data *sd, short skill, short lv, short type); -struct skill_condition skill_get_requirement(struct map_session_data *sd, short skill, short lv); +int skill_check_condition_castbegin(struct map_session_data *sd, uint16 skill_id, uint16 skill_lv); +int skill_check_condition_castend(struct map_session_data *sd, uint16 skill_id, uint16 skill_lv); +int skill_consume_requirement(struct map_session_data *sd, uint16 skill_id, uint16 skill_lv, short type); +struct skill_condition skill_get_requirement(struct map_session_data *sd, uint16 skill_id, uint16 skill_lv); -int skill_check_pc_partner(struct map_session_data *sd, short skill_id, short *skill_lv, int range, int cast_flag); +int skill_check_pc_partner(struct map_session_data *sd, uint16 skill_id, uint16 *skill_lv, int range, int cast_flag); // -- moonsoul (added skill_check_unit_cell) -int skill_check_unit_cell(int skillid,int m,int x,int y,int unit_id); +int skill_check_unit_cell(uint16 skill_id,short m,short x,short y,int unit_id); int skill_unit_out_all(struct block_list *bl,unsigned int tick,int range); int skill_unit_move(struct block_list *bl,unsigned int tick,int flag); -int skill_unit_move_unit_group(struct skill_unit_group *group, int m,int dx,int dy); +int skill_unit_move_unit_group(struct skill_unit_group *group, short m,int dx,int dy); struct skill_unit_group *skill_check_dancing(struct block_list *src); @@ -328,40 +328,40 @@ int skill_castcancel(struct block_list *bl,int type); int skill_sit(struct map_session_data *sd, int type); -void skill_brandishspear(struct block_list *src, struct block_list *bl, int skillid, int skilllv, unsigned int tick, int flag); +void skill_brandishspear(struct block_list *src, struct block_list *bl, uint16 skill_id, uint16 skill_lv, unsigned int tick, int flag); void skill_repairweapon(struct map_session_data *sd, int idx); void skill_identify(struct map_session_data *sd,int idx); void skill_weaponrefine(struct map_session_data *sd,int idx); // [Celest] -int skill_autospell(struct map_session_data *md,int skillid); +int skill_autospell(struct map_session_data *md,uint16 skill_id); -int skill_calc_heal(struct block_list *src, struct block_list *target, int skill_id, int skill_lv, bool heal); +int skill_calc_heal(struct block_list *src, struct block_list *target, uint16 skill_id, uint16 skill_lv, bool heal); bool skill_check_cloaking(struct block_list *bl, struct status_change_entry *sce); // Abnormal status int skill_enchant_elemental_end(struct block_list *bl, int type); -int skillnotok(int skillid, struct map_session_data *sd); -int skillnotok_hom(int skillid, struct homun_data *hd); -int skillnotok_mercenary(int skillid, struct mercenary_data *md); +int skillnotok(uint16 skill_id, struct map_session_data *sd); +int skillnotok_hom(uint16 skill_id, struct homun_data *hd); +int skillnotok_mercenary(uint16 skill_id, struct mercenary_data *md); int skill_chastle_mob_changetarget(struct block_list *bl,va_list ap); // Item creation int skill_can_produce_mix(struct map_session_data *sd, int nameid, int trigger, int qty); -int skill_produce_mix(struct map_session_data *sd, int skill_id, int nameid, int slot1, int slot2, int slot3, int qty); +int skill_produce_mix(struct map_session_data *sd, uint16 skill_id, int nameid, int slot1, int slot2, int slot3, int qty); int skill_arrow_create(struct map_session_data *sd,int nameid); // skills for the mob -int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl,int skillid,int skilllv,unsigned int tick,int flag); -int skill_castend_damage_id(struct block_list *src, struct block_list *bl,int skillid,int skilllv,unsigned int tick,int flag); -int skill_castend_pos2(struct block_list *src, int x,int y,int skillid,int skilllv,unsigned int tick,int flag); +int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl,uint16 skill_id,uint16 skill_lv,unsigned int tick,int flag); +int skill_castend_damage_id(struct block_list *src, struct block_list *bl,uint16 skill_id,uint16 skill_lv,unsigned int tick,int flag); +int skill_castend_pos2(struct block_list *src, short x,short y,uint16 skill_id,uint16 skill_lv,unsigned int tick,int flag); -int skill_blockpc_start_(struct map_session_data *, int, int, bool); -int skill_blockhomun_start(struct homun_data *,int,int); -int skill_blockmerc_start(struct mercenary_data *,int,int); +int skill_blockpc_start_(struct map_session_data *, uint16 skill_id, int, bool); +int skill_blockhomun_start(struct homun_data *,uint16 skill_id,int); +int skill_blockmerc_start(struct mercenary_data *,uint16 skill_id,int); -#define skill_blockpc_start(sd, skillid, tick) skill_blockpc_start_( sd, skillid, tick, false ) +#define skill_blockpc_start(sd, skill_id, tick) skill_blockpc_start_( sd, skill_id, tick, false ) // (Epoque:) To-do: replace this macro with some sort of skill tree check (rather than hard-coded skill names) #define skill_ischangesex(id) ( \ @@ -369,7 +369,7 @@ ((id) >= CG_LONGINGFREEDOM && (id) <= CG_TAROTCARD) || ((id) >= WA_SWING_DANCE && (id) <= WM_UNLIMITED_HUMMING_VOICE)) // Skill action, (return dmg,heal) -int skill_attack(int attack_type, struct block_list *src, struct block_list *dsrc,struct block_list *bl,int skillid,int skilllv,unsigned int tick,int flag); +int skill_attack(int attack_type, struct block_list *src, struct block_list *dsrc,struct block_list *bl,uint16 skill_id,uint16 skill_lv,unsigned int tick,int flag); void skill_reload(void); @@ -1796,7 +1796,7 @@ /** * Skill Unit Save **/ -void skill_usave_add(struct map_session_data *sd, int skill_num, int skill_lv); +void skill_usave_add(struct map_session_data *sd, uint16 skill_id, uint16 skill_lv); void skill_usave_trigger(struct map_session_data *sd); /** * Skill Cool Downs - load from pc.c when the character logs in @@ -1813,13 +1813,13 @@ WLS_STONE, }; int skill_spellbook(struct map_session_data *sd, int nameid); -int skill_block_check(struct block_list *bl, enum sc_type type, int skillid); +int skill_block_check(struct block_list *bl, enum sc_type type, uint16 skill_id); /** * Guilottine Cross **/ #define MAX_SKILL_MAGICMUSHROOM_DB 23 struct s_skill_magicmushroom_db { - int skillid; + uint16 skill_id; }; extern struct s_skill_magicmushroom_db skill_magicmushroom_db[MAX_SKILL_MAGICMUSHROOM_DB]; /** @@ -1848,10 +1848,10 @@ /** * Auto Shadow Spell (Shadow Chaser) **/ -int skill_select_menu(struct map_session_data *sd,int skill_id); +int skill_select_menu(struct map_session_data *sd,uint16 skill_id); -int skill_elementalanalysis(struct map_session_data *sd, int n, int type, unsigned short *item_list); // Sorcerer Four Elemental Analisys. +int skill_elementalanalysis(struct map_session_data *sd, int n, uint16 skill_lv, unsigned short *item_list); // Sorcerer Four Elemental Analisys. int skill_changematerial(struct map_session_data *sd, int n, unsigned short *item_list); // Genetic Change Material. -int skill_get_elemental_type(int skill_id, int skill_lv); +int skill_get_elemental_type(uint16 skill_id, uint16 skill_lv); #endif /* _SKILL_H_ */ Index: src/map/status.c --- src/map/status.c Base (BASE) +++ src/map/status.c Locally Modified (Based On LOCAL) @@ -1569,7 +1569,7 @@ * target MAY Be null, in which case the checks are only to see * whether the source can cast or not the skill on the ground. *------------------------------------------*/ -int status_check_skilluse(struct block_list *src, struct block_list *target, int skill_num, int flag) +int status_check_skilluse(struct block_list *src, struct block_list *target, uint16 skill_id, int flag) { struct status_data *status; struct status_change *sc=NULL, *tsc; @@ -1580,7 +1580,7 @@ if (src && src->type != BL_PC && status_isdead(src)) return 0; - if (!skill_num) { //Normal attack checks. + if (!skill_id) { //Normal attack checks. if (!(status->mode&MD_CANATTACK)) return 0; //This mode is only needed for melee attacking. //Dead state is not checked for skills as some skills can be used @@ -1591,7 +1591,7 @@ return 0; } - switch (skill_num) { + switch (skill_id) { case PA_PRESSURE: if (flag && target) { //Gloria Avoids pretty much everything.... @@ -1608,7 +1608,7 @@ //Should fail when used on top of Land Protector [Skotlex] if (src && map_getcell(src->m, src->x, src->y, CELL_CHKLANDPROTECTOR) && !(status->mode&MD_BOSS) - && (src->type != BL_PC || ((TBL_PC *)src)->skillitem != skill_num)) + && (src->type != BL_PC || ((TBL_PC *)src)->skillitem != skill_id)) return 0; break; default: @@ -1619,17 +1619,17 @@ if (sc && sc->count) { - if (skill_num != RK_REFRESH && sc->opt1 >0 && (sc->opt1 != OPT1_CRYSTALIZE && src->type != BL_MOB) && sc->opt1 != OPT1_BURNING && skill_num != SR_GENTLETOUCH_CURE) { //Stuned/Frozen/etc + if (skill_id != RK_REFRESH && sc->opt1 >0 && (sc->opt1 != OPT1_CRYSTALIZE && src->type != BL_MOB) && sc->opt1 != OPT1_BURNING && skill_id != SR_GENTLETOUCH_CURE) { //Stuned/Frozen/etc if (flag != 1) //Can't cast, casted stuff can't damage. return 0; - if (!(skill_get_inf(skill_num)&INF_GROUND_SKILL)) + if (!(skill_get_inf(skill_id)&INF_GROUND_SKILL)) return 0; //Targetted spells can't come off. } if ( - (sc->data[SC_TRICKDEAD] && skill_num != NV_TRICKDEAD) + (sc->data[SC_TRICKDEAD] && skill_id != NV_TRICKDEAD) || (sc->data[SC_AUTOCOUNTER] && !flag) - || (sc->data[SC_GOSPEL] && sc->data[SC_GOSPEL]->val4 == BCT_SELF && skill_num != PA_GOSPEL) + || (sc->data[SC_GOSPEL] && sc->data[SC_GOSPEL]->val4 == BCT_SELF && skill_id != PA_GOSPEL) || (sc->data[SC_GRAVITATION] && sc->data[SC_GRAVITATION]->val3 == BCT_SELF && flag != 2) ) return 0; @@ -1644,30 +1644,30 @@ if (sc->data[SC_BLADESTOP]) { switch (sc->data[SC_BLADESTOP]->val1) { case 5: - if (skill_num == MO_EXTREMITYFIST) break; + if (skill_id == MO_EXTREMITYFIST) break; case 4: - if (skill_num == MO_CHAINCOMBO) break; + if (skill_id == MO_CHAINCOMBO) break; case 3: - if (skill_num == MO_INVESTIGATE) break; + if (skill_id == MO_INVESTIGATE) break; case 2: - if (skill_num == MO_FINGEROFFENSIVE) break; + if (skill_id == MO_FINGEROFFENSIVE) break; default: return 0; } } if (sc->data[SC_DANCING] && flag!=2) { - if (src->type == BL_PC && skill_num >= WA_SWING_DANCE && skill_num <= WM_UNLIMITED_HUMMING_VOICE) { + if (src->type == BL_PC && skill_id >= WA_SWING_DANCE && skill_id <= WM_UNLIMITED_HUMMING_VOICE) { // Lvl 5 Lesson or higher allow you use 3rd job skills while dancing.v if (pc_checkskill((TBL_PC *)src,WM_LESSON) < 5) return 0; } else if (sc->data[SC_LONGING]) { //Allow everything except dancing/re-dancing. [Skotlex] - if (skill_num == BD_ENCORE || - skill_get_inf2(skill_num)&(INF2_SONG_DANCE|INF2_ENSEMBLE_SKILL) + if (skill_id == BD_ENCORE || + skill_get_inf2(skill_id)&(INF2_SONG_DANCE|INF2_ENSEMBLE_SKILL) ) return 0; } else { - switch (skill_num) { + switch (skill_id) { case BD_ADAPTATION: case CG_LONGINGFREEDOM: case BA_MUSICALSTRIKE: @@ -1677,33 +1677,33 @@ return 0; } } - if ((sc->data[SC_DANCING]->val1&0xFFFF) == CG_HERMODE && skill_num == BD_ADAPTATION) + if ((sc->data[SC_DANCING]->val1&0xFFFF) == CG_HERMODE && skill_id == BD_ADAPTATION) return 0; //Can't amp out of Wand of Hermode :/ [Skotlex] } - if (skill_num && //Do not block item-casted skills. - (src->type != BL_PC || ((TBL_PC *)src)->skillitem != skill_num) + if (skill_id && //Do not block item-casted skills. + (src->type != BL_PC || ((TBL_PC *)src)->skillitem != skill_id) ) { //Skills blocked through status changes... if (!flag && ( //Blocked only from using the skill (stuff like autospell may still go through sc->cant.cast || - (sc->data[SC_MARIONETTE] && skill_num != CG_MARIONETTE) || //Only skill you can use is marionette again to cancel it - (sc->data[SC_MARIONETTE2] && skill_num == CG_MARIONETTE) || //Cannot use marionette if you are being buffed by another - (sc->data[SC_STASIS] && skill_block_check(src, SC_STASIS, skill_num)) || - (sc->data[SC_KAGEHUMI] && skill_block_check(src, SC_KAGEHUMI, skill_num)) + (sc->data[SC_MARIONETTE] && skill_id != CG_MARIONETTE) || //Only skill you can use is marionette again to cancel it + (sc->data[SC_MARIONETTE2] && skill_id == CG_MARIONETTE) || //Cannot use marionette if you are being buffed by another + (sc->data[SC_STASIS] && skill_block_check(src, SC_STASIS, skill_id)) || + (sc->data[SC_KAGEHUMI] && skill_block_check(src, SC_KAGEHUMI, skill_id)) )) return 0; //Skill blocking. if ( - (sc->data[SC_VOLCANO] && skill_num == WZ_ICEWALL) || - (sc->data[SC_ROKISWEIL] && skill_num != BD_ADAPTATION) || - (sc->data[SC_HERMODE] && skill_get_inf(skill_num) & INF_SUPPORT_SKILL) || + (sc->data[SC_VOLCANO] && skill_id == WZ_ICEWALL) || + (sc->data[SC_ROKISWEIL] && skill_id != BD_ADAPTATION) || + (sc->data[SC_HERMODE] && skill_get_inf(skill_id) & INF_SUPPORT_SKILL) || (sc->data[SC_NOCHAT] && sc->data[SC_NOCHAT]->val1&MANNER_NOSKILL) ) return 0; if (sc->data[SC__MANHOLE] || ((tsc = status_get_sc(target)) && tsc->data[SC__MANHOLE])) { - switch (skill_num) { //##TODO## make this a flag in skill_db? + switch (skill_id) { //##TODO## make this a flag in skill_db? // Skills that can be used even under Man Hole effects. case SC_SHADOWFORM: case SC_STRIPACCESSARY: @@ -1718,7 +1718,7 @@ if (sc && sc->option) { if (sc->option&OPTION_HIDE) - switch (skill_num) { //Usable skills while hiding. + switch (skill_id) { //Usable skills while hiding. case TF_HIDING: case AS_GRIMTOOTH: case RG_BACKSTAP: @@ -1729,10 +1729,10 @@ break; default: //Non players can use all skills while hidden. - if (!skill_num || src->type == BL_PC) + if (!skill_id || src->type == BL_PC) return 0; } - if (sc->option&OPTION_CHASEWALK && skill_num != ST_CHASEWALK) + if (sc->option&OPTION_CHASEWALK && skill_id != ST_CHASEWALK) return 0; if (sc->option&OPTION_MOUNTING) return 0;//New mounts can't attack nor use skills in the client; this check makes it cheat-safe [Ind] @@ -1745,14 +1745,14 @@ if (tsc && tsc->count) { /* attacks in invincible are capped to 1 damage and handled in batte.c; allow spell break and eske for sealed shrine GDB when in INVINCIBLE state. */ - if (tsc->data[SC_INVINCIBLE] && !tsc->data[SC_INVINCIBLEOFF] && skill_num && !(skill_num&(SA_SPELLBREAKER|SL_SKE))) + if (tsc->data[SC_INVINCIBLE] && !tsc->data[SC_INVINCIBLEOFF] && skill_id && !(skill_id&(SA_SPELLBREAKER|SL_SKE))) return 0; - if (!skill_num && tsc->data[SC_TRICKDEAD]) + if (!skill_id && tsc->data[SC_TRICKDEAD]) return 0; - if ((skill_num == WZ_STORMGUST || skill_num == WZ_FROSTNOVA || skill_num == NJ_HYOUSYOURAKU) + if ((skill_id == WZ_STORMGUST || skill_id == WZ_FROSTNOVA || skill_id == NJ_HYOUSYOURAKU) && tsc->data[SC_FREEZE]) return 0; - if (skill_num == PR_LEXAETERNA && (tsc->data[SC_FREEZE] || (tsc->data[SC_STONE] && tsc->opt1 == OPT1_STONE))) + if (skill_id == PR_LEXAETERNA && (tsc->data[SC_FREEZE] || (tsc->data[SC_STONE] && tsc->opt1 == OPT1_STONE))) return 0; } @@ -1760,7 +1760,7 @@ hide_flag = flag?OPTION_HIDE:(OPTION_HIDE|OPTION_CLOAK|OPTION_CHASEWALK); //You cannot hide from ground skills. - if (skill_get_ele(skill_num,1) == ELE_EARTH) //TODO: Need Skill Lv here :/ + if (skill_get_ele(skill_id,1) == ELE_EARTH) //TODO: Need Skill Lv here :/ hide_flag &= ~OPTION_HIDE; switch (target->type) { @@ -1774,7 +1774,7 @@ ((sd->special_state.perfect_hiding || !is_detect) || (tsc->data[SC_CLOAKINGEXCEED] && is_detect))) return 0; - if (tsc->data[SC_CAMOUFLAGE] && !(is_boss || is_detect) && !skill_num) + if (tsc->data[SC_CAMOUFLAGE] && !(is_boss || is_detect) && !skill_id) return 0; if (tsc->data[SC_STEALTHFIELD] && !is_boss) return 0; @@ -1788,11 +1788,11 @@ case BL_HOM: case BL_MER: case BL_ELEM: - if (target->type == BL_HOM && skill_num && battle_config.hom_setting&0x1 && skill_get_inf(skill_num)&INF_SUPPORT_SKILL && battle_get_master(target) != src) + if (target->type == BL_HOM && skill_id && battle_config.hom_setting&0x1 && skill_get_inf(skill_id)&INF_SUPPORT_SKILL && battle_get_master(target) != src) return 0; // Can't use support skills on Homunculus (only Master/Self) - if (target->type == BL_MER && (skill_num == PR_ASPERSIO || (skill_num >= SA_FLAMELAUNCHER && skill_num <= SA_SEISMICWEAPON)) && battle_get_master(target) != src) + if (target->type == BL_MER && (skill_id == PR_ASPERSIO || (skill_id >= SA_FLAMELAUNCHER && skill_id <= SA_SEISMICWEAPON)) && battle_get_master(target) != src) return 0; // Can't use Weapon endow skills on Mercenary (only Master) - if (skill_num == AM_POTIONPITCHER && (target->type == BL_MER || target->type == BL_ELEM)) + if (skill_id == AM_POTIONPITCHER && (target->type == BL_MER || target->type == BL_ELEM)) return 0; // Can't use Potion Pitcher on Mercenaries default: //Check for chase-walk/hiding/cloaking opponents. @@ -2080,12 +2080,12 @@ md->special_state.ai = 0; if (ud) { // different levels of HP according to skill level - if (ud->skillid == AM_SPHEREMINE) { - status->max_hp = 2000 + 400*ud->skilllv; - } else if (ud->skillid == KO_ZANZOU) { - status->max_hp = 3000 + 3000 * ud->skilllv; + if (ud->skill_id == AM_SPHEREMINE) { + status->max_hp = 2000 + 400*ud->skill_lv; + } else if (ud->skill_id == KO_ZANZOU) { + status->max_hp = 3000 + 3000 * ud->skill_lv; } else { //AM_CANNIBALIZE - status->max_hp = 1500 + 200*ud->skilllv + 10*status_get_lv(mbl); + status->max_hp = 1500 + 200*ud->skill_lv + 10*status_get_lv(mbl); status->mode|= MD_CANATTACK|MD_AGGRESSIVE; } status->hp = status->max_hp; @@ -5019,9 +5019,9 @@ if (sc == NULL) return cap_value(speed,10,USHRT_MAX); - if (sd && sd->ud.skilltimer != INVALID_TIMER && (pc_checkskill(sd,SA_FREECAST) > 0 || sd->ud.skillid == LG_EXEEDBREAK)) { - if (sd->ud.skillid == LG_EXEEDBREAK) - speed_rate = 100 + 60 - (sd->ud.skilllv * 10); + if (sd && sd->ud.skilltimer != INVALID_TIMER && (pc_checkskill(sd,SA_FREECAST) > 0 || sd->ud.skill_id == LG_EXEEDBREAK)) { + if (sd->ud.skill_id == LG_EXEEDBREAK) + speed_rate = 100 + 60 - (sd->ud.skill_lv * 10); else speed_rate = 175 - 5 * pc_checkskill(sd,SA_FREECAST); } else { @@ -5788,7 +5788,7 @@ int def = status?status->def:0; ud = unit_bl2ud(bl); if (ud && ud->skilltimer != INVALID_TIMER) - def -= def * skill_get_castdef(ud->skillid)/100; + def -= def * skill_get_castdef(ud->skill_id)/100; return cap_value(def, DEFTYPE_MIN, DEFTYPE_MAX); } @@ -5979,7 +5979,7 @@ return NULL; } -void status_set_viewdata(struct block_list *bl, int class_) +void status_set_viewdata(struct block_list *bl, short class_) { struct view_data *vd; nullpo_retv(bl); @@ -7313,7 +7313,7 @@ case SC_DANCING: //val1 : Skill ID + LV //val2 : Skill Group of the Dance. - //val3 : Brings the skilllv (merged into val1 here) + //val3 : Brings the skill_lv (merged into val1 here) //val4 : Partner if (val1 == CG_MOONLIT) clif_status_change(bl,SI_MOONLIT,1,tick,0, 0, 0); @@ -7684,7 +7684,7 @@ } break; case SC_KAITE: - val2 = 1+val1/5; //Number of bounces: 1 + skilllv/5 + val2 = 1+val1/5; //Number of bounces: 1 + skill_lv/5 break; case SC_KAUPE: switch (val1) { @@ -7719,7 +7719,7 @@ } break; case SC_EARTHSCROLL: - val2 = 11-val1; //Chance to consume: 11-skilllv% + val2 = 11-val1; //Chance to consume: 11-skill_lv% break; case SC_RUN: val4 = gettick(); //Store time at which you started running. @@ -10118,12 +10118,12 @@ if (!flag) { // Random Skill Cast if (sd && !pc_issit(sd)) { //can't cast if sit - int mushroom_skillid = 0, i; + short mushroom_skillid = 0, i; unit_stop_attack(bl); unit_skillcastcancel(bl,1); do { i = rnd() % MAX_SKILL_MAGICMUSHROOM_DB; - mushroom_skillid = skill_magicmushroom_db[i].skillid; + mushroom_skillid = skill_magicmushroom_db[i].skill_id; } while (mushroom_skillid == 0); switch (skill_get_casttype(mushroom_skillid)) { // Magic Mushroom skills are buffs or area damage @@ -10276,7 +10276,7 @@ case SC__INVISIBILITY: if (--(sce->val4) >= 0) { - if (!status_charge(bl, 0, (status->sp * 6 - sce->val1) / 100)) // 6% - skilllv. + if (!status_charge(bl, 0, (status->sp * 6 - sce->val1) / 100)) // 6% - skill_lv. break; sc_timer_next(1000 + tick, status_change_timer, bl->id, data); return 0; Index: src/map/status.h --- src/map/status.h Base (BASE) +++ src/map/status.h Locally Modified (Based On LOCAL) @@ -1752,7 +1752,7 @@ int status_get_race2(struct block_list *bl); struct view_data *status_get_viewdata(struct block_list *bl); -void status_set_viewdata(struct block_list *bl, int class_); +void status_set_viewdata(struct block_list *bl, short class_); void status_change_init(struct block_list *bl); struct status_change *status_get_sc(struct block_list *bl); @@ -1794,7 +1794,7 @@ void status_calc_regen(struct block_list *bl, struct status_data *status, struct regen_data *regen); void status_calc_regen_rate(struct block_list *bl, struct regen_data *regen, struct status_change *sc); -int status_check_skilluse(struct block_list *src, struct block_list *target, int skill_num, int flag); // [Skotlex] +int status_check_skilluse(struct block_list *src, struct block_list *target, uint16 skill_id, int flag); // [Skotlex] int status_check_visibility(struct block_list *src, struct block_list *target); //[Skotlex] int status_change_spread(struct block_list *src, struct block_list *bl); Index: src/map/storage.c --- src/map/storage.c Base (BASE) +++ src/map/storage.c Locally Modified (Based On LOCAL) @@ -24,7 +24,7 @@ #include -static DBMap *guild_storage_db; // int guild_id -> struct guild_storage* +static DBMap *guild_storage_db; // uint32 guild_id -> struct guild_storage* /*========================================== * Sort items in the warehouse @@ -351,7 +351,7 @@ return db_ptr2data(gs); } -struct guild_storage *guild2storage(int guild_id) { +struct guild_storage *guild2storage(uint32 guild_id) { struct guild_storage *gs = NULL; if (guild_search(guild_id) != NULL) gs = idb_ensure(guild_storage_db,guild_id,create_guildstorage); @@ -359,11 +359,11 @@ } //For just locating a storage without creating one. [Skotlex] -struct guild_storage *guild2storage2(int guild_id) { +struct guild_storage *guild2storage2(uint32 guild_id) { return (struct guild_storage *)idb_get(guild_storage_db,guild_id); } -int guild_storage_delete(int guild_id) +int guild_storage_delete(uint32 guild_id) { idb_remove(guild_storage_db,guild_id); return 0; @@ -629,7 +629,7 @@ * 0 : fail (no storage) * 1 : succes *------------------------------------------*/ -int storage_guild_storagesave(int account_id, int guild_id, int flag) +int storage_guild_storagesave(uint32 account_id, uint32 guild_id, int flag) { struct guild_storage *stor = guild2storage2(guild_id); @@ -649,7 +649,7 @@ * 0 : fail (no storage) * 1 : succes *------------------------------------------*/ -int storage_guild_storagesaved(int guild_id) +int storage_guild_storagesaved(uint32 guild_id) { struct guild_storage *stor; Index: src/map/storage.h --- src/map/storage.h Base (BASE) +++ src/map/storage.h Locally Modified (Based On LOCAL) @@ -23,8 +23,8 @@ void do_reconnect_storage(void); void storage_storage_quit(struct map_session_data *sd, int flag); -struct guild_storage *guild2storage(int guild_id); -int guild_storage_delete(int guild_id); +struct guild_storage *guild2storage(uint32 guild_id); +int guild_storage_delete(uint32 guild_id); int storage_guild_storageopen(struct map_session_data *sd); int guild_storage_additem(struct map_session_data *sd,struct guild_storage *stor,struct item *item_data,int amount); int guild_storage_delitem(struct map_session_data *sd,struct guild_storage *stor,int n,int amount); @@ -34,7 +34,7 @@ int storage_guild_storagegettocart(struct map_session_data *sd,int index,int amount); int storage_guild_storageclose(struct map_session_data *sd); int storage_guild_storage_quit(struct map_session_data *sd,int flag); -int storage_guild_storagesave(int account_id, int guild_id, int flag); -int storage_guild_storagesaved(int guild_id); //Ack from char server that guild store was saved. +int storage_guild_storagesave(uint32 account_id, uint32 guild_id, int flag); +int storage_guild_storagesaved(uint32 guild_id); //Ack from char server that guild store was saved. #endif /* _STORAGE_H_ */ Index: src/map/unit.c --- src/map/unit.c Base (BASE) +++ src/map/unit.c Locally Modified (Based On LOCAL) @@ -40,18 +40,19 @@ #include -const short dirx[8]= {0,-1,-1,-1,0,1,1,1}; -const short diry[8]= {1,1,0,-1,-1,-1,0,1}; +const short dirx[8] = {0, -1, -1, -1, 0, 1, 1, 1}; +const short diry[8] = {1, 1, 0, -1, -1, -1, 0, 1}; -struct unit_data *unit_bl2ud(struct block_list *bl) { +struct unit_data *unit_bl2ud(struct block_list *bl) +{ if (bl == NULL) return NULL; - if (bl->type == BL_PC) return &((struct map_session_data *)bl)->ud; - if (bl->type == BL_MOB) return &((struct mob_data *)bl)->ud; - if (bl->type == BL_PET) return &((struct pet_data *)bl)->ud; - if (bl->type == BL_NPC) return &((struct npc_data *)bl)->ud; - if (bl->type == BL_HOM) return &((struct homun_data *)bl)->ud; - if (bl->type == BL_MER) return &((struct mercenary_data *)bl)->ud; - if (bl->type == BL_ELEM) return &((struct elemental_data *)bl)->ud; + if (bl->type == BL_PC) return &((struct map_session_data *) bl)->ud; + if (bl->type == BL_MOB) return &((struct mob_data *) bl)->ud; + if (bl->type == BL_PET) return &((struct pet_data *) bl)->ud; + if (bl->type == BL_NPC) return &((struct npc_data *) bl)->ud; + if (bl->type == BL_HOM) return &((struct homun_data *) bl)->ud; + if (bl->type == BL_MER) return &((struct mercenary_data *) bl)->ud; + if (bl->type == BL_ELEM) return &((struct elemental_data *) bl)->ud; return NULL; } @@ -68,58 +69,58 @@ ud = unit_bl2ud(bl); if (ud == NULL) return 0; - if (!path_search(&wpd,bl->m,bl->x,bl->y,ud->to_x,ud->to_y,ud->state.walk_easy,CELL_CHKNOPASS)) + if (!path_search(&wpd, bl->m, bl->x, bl->y, ud->to_x, ud->to_y, ud->state.walk_easy, CELL_CHKNOPASS)) return 0; - memcpy(&ud->walkpath,&wpd,sizeof(wpd)); + memcpy(&ud->walkpath, &wpd, sizeof (wpd)); - if (ud->target_to && ud->chaserange>1) { + if (ud->target_to && ud->chaserange > 1) { //Generally speaking, the walk path is already to an adjacent tile //so we only need to shorten the path if the range is greater than 1. int dir; //Trim the last part of the path to account for range, //but always move at least one cell when requested to move. - for (i = ud->chaserange*10; i > 0 && ud->walkpath.path_len>1;) { + for (i = ud->chaserange * 10; i > 0 && ud->walkpath.path_len > 1;) { ud->walkpath.path_len--; dir = ud->walkpath.path[ud->walkpath.path_len]; - if (dir&1) - i-=14; + if (dir & 1) + i -= 14; else - i-=10; + i -= 10; ud->to_x -= dirx[dir]; ud->to_y -= diry[dir]; } } - ud->state.change_walk_target=0; + ud->state.change_walk_target = 0; if (bl->type == BL_PC) { - ((TBL_PC *)bl)->head_dir = 0; - clif_walkok((TBL_PC *)bl); + ((TBL_PC *) bl)->head_dir = 0; + clif_walkok((TBL_PC *) bl); } clif_move(ud); - if (ud->walkpath.path_pos>=ud->walkpath.path_len) + if (ud->walkpath.path_pos >= ud->walkpath.path_len) i = -1; else if (ud->walkpath.path[ud->walkpath.path_pos]&1) - i = status_get_speed(bl)*14/10; + i = status_get_speed(bl)*14 / 10; else i = status_get_speed(bl); if (i > 0) - ud->walktimer = add_timer(gettick()+i,unit_walktoxy_timer,bl->id,i); + ud->walktimer = add_timer(gettick() + i, unit_walktoxy_timer, bl->id, i); return 1; } static int unit_walktoxy_timer(int tid, unsigned int tick, int id, intptr_t data) { int i; - int x,y,dx,dy; + int x, y, dx, dy; uint8 dir; - struct block_list *bl; + struct block_list *bl; struct map_session_data *sd; - struct mob_data *md; - struct unit_data *ud; - struct mercenary_data *mrd; + struct mob_data *md; + struct unit_data *ud; + struct mercenary_data *mrd; bl = map_id2bl(id); if (bl == NULL) @@ -132,16 +133,16 @@ if (ud == NULL) return 0; if (ud->walktimer != tid) { - ShowError("unit_walk_timer mismatch %d != %d\n",ud->walktimer,tid); + ShowError("unit_walk_timer mismatch %d != %d\n", ud->walktimer, tid); return 0; } ud->walktimer = INVALID_TIMER; if (bl->prev == NULL) return 0; // Stop moved because it is missing from the block_list - if (ud->walkpath.path_pos>=ud->walkpath.path_len) + if (ud->walkpath.path_pos >= ud->walkpath.path_len) return 0; - if (ud->walkpath.path[ud->walkpath.path_pos]>=8) + if (ud->walkpath.path[ud->walkpath.path_pos] >= 8) return 1; x = bl->x; y = bl->y; @@ -149,14 +150,14 @@ dir = ud->walkpath.path[ud->walkpath.path_pos]; ud->dir = dir; - dx = dirx[(int)dir]; - dy = diry[(int)dir]; + dx = dirx[(int) dir]; + dy = diry[(int) dir]; - if (map_getcell(bl->m,x+dx,y+dy,CELL_CHKNOPASS)) + if (map_getcell(bl->m, x + dx, y + dy, CELL_CHKNOPASS)) return unit_walktoxy_sub(bl); //Refresh view for all those we lose sight - map_foreachinmovearea(clif_outsight, bl, AREA_SIZE, dx, dy, sd?BL_ALL:BL_PC, bl); + map_foreachinmovearea(clif_outsight, bl, AREA_SIZE, dx, dy, sd ? BL_ALL : BL_PC, bl); x += dx; y += dy; @@ -168,18 +169,18 @@ return 0; //map_moveblock has altered the object beyond what we expected (moved/warped it) ud->walktimer = -2; // arbitrary non-INVALID_TIMER value to make the clif code send walking packets - map_foreachinmovearea(clif_insight, bl, AREA_SIZE, -dx, -dy, sd?BL_ALL:BL_PC, bl); + map_foreachinmovearea(clif_insight, bl, AREA_SIZE, -dx, -dy, sd ? BL_ALL : BL_PC, bl); ud->walktimer = INVALID_TIMER; if (sd) { if (sd->touching_id) - npc_touchnext_areanpc(sd,false); - if (map_getcell(bl->m,x,y,CELL_CHKNPC)) { - npc_touch_areanpc(sd,bl->m,x,y); + npc_touchnext_areanpc(sd, false); + if (map_getcell(bl->m, x, y, CELL_CHKNPC)) { + npc_touch_areanpc(sd, bl->m, x, y); if (bl->prev == NULL) //Script could have warped char, abort remaining of the function. return 0; } else - sd->areanpc_id=0; + sd->areanpc_id = 0; if (sd->md && !check_distance_bl(&sd->bl, &sd->md->bl, MAX_MER_DISTANCE)) { // mercenary should be warped after being 3 seconds too far from the master [greenbox] @@ -194,17 +195,17 @@ sd->md->masterteleport_timer = 0; } } else if (md) { - if (map_getcell(bl->m,x,y,CELL_CHKNPC)) { - if (npc_touch_areanpc2(md)) return 0; // Warped + if (map_getcell(bl->m, x, y, CELL_CHKNPC)) { + if (npc_touch_areanpc2(md)) return 0; // Warped } else md->areanpc_id = 0; if (md->min_chase > md->db->range3) md->min_chase--; //Walk skills are triggered regardless of target due to the idle-walk mob state. //But avoid triggering on stop-walk calls. if (tid != INVALID_TIMER && - !(ud->walk_count%WALK_SKILL_INTERVAL) && + !(ud->walk_count % WALK_SKILL_INTERVAL) && mobskill_use(md, tick, -1)) { - if (!(ud->skillid == NPC_SELFDESTRUCTION && ud->skilltimer != INVALID_TIMER)) { + if (!(ud->skill_id == NPC_SELFDESTRUCTION && ud->skilltimer != INVALID_TIMER)) { //Skill used, abort walking clif_fixpos(bl); //Fix position as walk has been cancelled. return 0; @@ -233,28 +234,28 @@ return unit_walktoxy_sub(bl); ud->walkpath.path_pos++; - if (ud->walkpath.path_pos>=ud->walkpath.path_len) + if (ud->walkpath.path_pos >= ud->walkpath.path_len) i = -1; else if (ud->walkpath.path[ud->walkpath.path_pos]&1) - i = status_get_speed(bl)*14/10; + i = status_get_speed(bl)*14 / 10; else i = status_get_speed(bl); if (i > 0) { - ud->walktimer = add_timer(tick+i,unit_walktoxy_timer,id,i); - if (md && DIFF_TICK(tick,md->dmgtick) < 3000) //not required not damaged recently + ud->walktimer = add_timer(tick + i, unit_walktoxy_timer, id, i); + if (md && DIFF_TICK(tick, md->dmgtick) < 3000) //not required not damaged recently clif_move(ud); } else if (ud->state.running) { //Keep trying to run. - if (!(unit_run(bl) || unit_wugdash(bl,sd))) + if (!(unit_run(bl) || unit_wugdash(bl, sd))) ud->state.running = 0; } else if (ud->target_to) { //Update target trajectory. struct block_list *tbl = map_id2bl(ud->target_to); - if (!tbl || !status_check_visibility(bl, tbl)) { //Cancel chase. + if (!tbl || !status_check_visibility(bl, tbl)) { //Cancel chase. ud->to_x = bl->x; ud->to_y = bl->y; - if (tbl && bl->type == BL_MOB && mob_warpchase((TBL_MOB *)bl, tbl)) + if (tbl && bl->type == BL_MOB && mob_warpchase((TBL_MOB *) bl, tbl)) return 0; ud->target_to = 0; return 0; @@ -269,7 +270,7 @@ unit_attack(bl, tbl->id, ud->state.attack_continue); } } else { //Update chase-path - unit_walktobl(bl, tbl, ud->chaserange, ud->state.walk_easy|(ud->state.attack_continue?2:0)); + unit_walktobl(bl, tbl, ud->chaserange, ud->state.walk_easy | (ud->state.attack_continue ? 2 : 0)); return 0; } } else { //Stopped walking. Update to_x and to_y to current location [Skotlex] @@ -286,7 +287,7 @@ if (!bl || bl->prev == NULL) return 0; - unit_walktoxy(bl, (short)((data>>16)&0xffff), (short)(data&0xffff), 0); + unit_walktoxy(bl, (short) ((data >> 16)&0xffff), (short) (data & 0xffff), 0); return 1; } @@ -294,6 +295,7 @@ //&1 -> 1/0 = easy/hard //&2 -> force walking //&4 -> Delay walking if the reason you can't walk is the canwalk delay + int unit_walktoxy(struct block_list *bl, short x, short y, int flag) { struct unit_data *ud = NULL; @@ -308,17 +310,17 @@ //#ifdef OFFICIAL_WALKPATH // if( !path_search_long(NULL, bl->m, bl->x, bl->y, x, y, CELL_CHKWALL) ) return 0; //#endif - if (flag&4 && DIFF_TICK(ud->canmove_tick, gettick()) > 0 && + if (flag & 4 && DIFF_TICK(ud->canmove_tick, gettick()) > 0 && DIFF_TICK(ud->canmove_tick, gettick()) < 2000) { // Delay walking command. [Skotlex] - add_timer(ud->canmove_tick+1, unit_delay_walktoxy_timer, bl->id, (x<<16)|(y&0xFFFF)); + add_timer(ud->canmove_tick + 1, unit_delay_walktoxy_timer, bl->id, (x << 16) | (y & 0xFFFF)); return 1; } - if (!(flag&2) && (!(status_get_mode(bl)&MD_CANMOVE) || !unit_can_move(bl))) + if (!(flag & 2) && (!(status_get_mode(bl) & MD_CANMOVE) || !unit_can_move(bl))) return 0; - ud->state.walk_easy = flag&1; + ud->state.walk_easy = flag & 1; ud->to_x = x; ud->to_y = y; unit_set_target(ud, 0); @@ -343,9 +345,10 @@ } //To set Mob's CHASE/FOLLOW states (shouldn't be done if there's no path to reach) + static inline void set_mobstate(struct block_list *bl, int flag) { - struct mob_data *md = BL_CAST(BL_MOB,bl); + struct mob_data *md = BL_CAST(BL_MOB, bl); if (md && flag) md->state.skillstate = md->state.aggressive ? MSS_FOLLOW : MSS_RUSH; @@ -354,11 +357,11 @@ static int unit_walktobl_sub(int tid, unsigned int tick, int id, intptr_t data) { struct block_list *bl = map_id2bl(id); - struct unit_data *ud = bl?unit_bl2ud(bl):NULL; + struct unit_data *ud = bl ? unit_bl2ud(bl) : NULL; if (ud && ud->walktimer == INVALID_TIMER && ud->target == data) { if (DIFF_TICK(ud->canmove_tick, tick) > 0) //Keep waiting? - add_timer(ud->canmove_tick+1, unit_walktobl_sub, id, data); + add_timer(ud->canmove_tick + 1, unit_walktobl_sub, id, data); else if (unit_can_move(bl)) { if (unit_walktoxy_sub(bl)) set_mobstate(bl, ud->state.attack_continue); @@ -369,30 +372,31 @@ // Chases a tbl. If the flag&1, use hard-path seek, // if flag&2, start attacking upon arrival within range, otherwise just walk to that character. + int unit_walktobl(struct block_list *bl, struct block_list *tbl, int range, int flag) { - struct unit_data *ud = NULL; - struct status_change *sc = NULL; + struct unit_data *ud = NULL; + struct status_change *sc = NULL; nullpo_ret(bl); nullpo_ret(tbl); ud = unit_bl2ud(bl); if (ud == NULL) return 0; - if (!(status_get_mode(bl)&MD_CANMOVE)) + if (!(status_get_mode(bl) & MD_CANMOVE)) return 0; - if (!unit_can_reach_bl(bl, tbl, distance_bl(bl, tbl)+1, flag&1, &ud->to_x, &ud->to_y)) { + if (!unit_can_reach_bl(bl, tbl, distance_bl(bl, tbl) + 1, flag & 1, &ud->to_x, &ud->to_y)) { ud->to_x = bl->x; ud->to_y = bl->y; ud->target_to = 0; return 0; } - ud->state.walk_easy = flag&1; + ud->state.walk_easy = flag & 1; ud->target_to = tbl->id; ud->chaserange = range; //Note that if flag&2, this SHOULD be attack-range - ud->state.attack_continue = flag&2?1:0; //Chase to attack. + ud->state.attack_continue = flag & 2 ? 1 : 0; //Chase to attack. unit_set_target(ud, 0); sc = status_get_sc(bl); @@ -401,13 +405,13 @@ if (ud->walktimer != INVALID_TIMER) { ud->state.change_walk_target = 1; - set_mobstate(bl, flag&2); + set_mobstate(bl, flag & 2); return 1; } if (DIFF_TICK(ud->canmove_tick, gettick()) > 0) { //Can't move, wait a bit before invoking the movement. - add_timer(ud->canmove_tick+1, unit_walktobl_sub, bl->id, ud->target); + add_timer(ud->canmove_tick + 1, unit_walktobl_sub, bl->id, ud->target); return 1; } @@ -420,7 +424,7 @@ } if (unit_walktoxy_sub(bl)) { - set_mobstate(bl, flag&2); + set_mobstate(bl, flag & 2); return 1; } return 0; @@ -429,7 +433,7 @@ int unit_run(struct block_list *bl) { struct status_change *sc = status_get_sc(bl); - short to_x,to_y,dir_x,dir_y; + short to_x, to_y, dir_x, dir_y; int lv; int i; @@ -448,19 +452,19 @@ // determine destination cell to_x = bl->x; to_y = bl->y; - for (i=0; im,to_x+dir_x,to_y+dir_y,CELL_CHKPASS)) + for (i = 0; i < AREA_SIZE; i++) { + if (!map_getcell(bl->m, to_x + dir_x, to_y + dir_y, CELL_CHKPASS)) break; //if sprinting and there's a PC/Mob/NPC, block the path [Kevin] - if (sc->data[SC_RUN] && map_count_oncell(bl->m, to_x+dir_x, to_y+dir_y, BL_PC|BL_MOB|BL_NPC)) + if (sc->data[SC_RUN] && map_count_oncell(bl->m, to_x + dir_x, to_y + dir_y, BL_PC | BL_MOB | BL_NPC)) break; to_x += dir_x; to_y += dir_y; } - if ((to_x == bl->x && to_y == bl->y) || (to_x == (bl->x+1) || to_y == (bl->y+1)) || (to_x == (bl->x-1) || to_y == (bl->y-1))) { + if ((to_x == bl->x && to_y == bl->y) || (to_x == (bl->x + 1) || to_y == (bl->y + 1)) || (to_x == (bl->x - 1) || to_y == (bl->y - 1))) { //If you can't run forward, you must be next to a wall, so bounce back. [Skotlex] clif_status_change(bl, SI_BUMP, 1, 0, 0, 0, 0); @@ -468,7 +472,7 @@ unit_bl2ud(bl)->state.running = 0; status_change_end(bl, SC_RUN, INVALID_TIMER); - skill_blown(bl,bl,skill_get_blewcount(TK_RUN,lv),unit_getdir(bl),0); + skill_blown(bl, bl, skill_get_blewcount(TK_RUN, lv), unit_getdir(bl), 0); clif_fixpos(bl); //Why is a clif_slide (skill_blown) AND a fixpos needed? Ask Aegis. clif_status_change(bl, SI_BUMP, 0, 0, 0, 0, 0); return 0; @@ -480,7 +484,7 @@ to_x -= dir_x; to_y -= dir_y; } while (--i > 0 && !unit_walktoxy(bl, to_x, to_y, 1)); - if (i==0) { + if (i == 0) { // copy-paste from above clif_status_change(bl, SI_BUMP, 1, 0, 0, 0, 0); @@ -488,7 +492,7 @@ unit_bl2ud(bl)->state.running = 0; status_change_end(bl, SC_RUN, INVALID_TIMER); - skill_blown(bl,bl,skill_get_blewcount(TK_RUN,lv),unit_getdir(bl),0); + skill_blown(bl, bl, skill_get_blewcount(TK_RUN, lv), unit_getdir(bl), 0); clif_fixpos(bl); clif_status_change(bl, SI_BUMP, 0, 0, 0, 0, 0); return 0; @@ -497,10 +501,11 @@ } //Exclusive function to Wug Dash state. [Jobbie/3CeAM] + int unit_wugdash(struct block_list *bl, struct map_session_data *sd) { struct status_change *sc = status_get_sc(bl); - short to_x,to_y,dir_x,dir_y; + short to_x, to_y, dir_x, dir_y; int lv; int i; if (!(sc && sc->data[SC_WUGDASH])) @@ -510,7 +515,7 @@ nullpo_ret(bl); if (!unit_can_move(bl)) { - status_change_end(bl,SC_WUGDASH,INVALID_TIMER); + status_change_end(bl, SC_WUGDASH, INVALID_TIMER); return 0; } @@ -520,11 +525,11 @@ to_x = bl->x; to_y = bl->y; - for (i=0; im,to_x+dir_x,to_y+dir_y,CELL_CHKPASS)) + for (i = 0; i < AREA_SIZE; i++) { + if (!map_getcell(bl->m, to_x + dir_x, to_y + dir_y, CELL_CHKPASS)) break; - if (sc->data[SC_WUGDASH] && map_count_oncell(bl->m, to_x+dir_x, to_y+dir_y, BL_PC|BL_MOB|BL_NPC)) + if (sc->data[SC_WUGDASH] && map_count_oncell(bl->m, to_x + dir_x, to_y + dir_y, BL_PC | BL_MOB | BL_NPC)) break; to_x += dir_x; @@ -534,7 +539,7 @@ if (to_x == bl->x && to_y == bl->y) { unit_bl2ud(bl)->state.running = 0; - status_change_end(bl,SC_WUGDASH,INVALID_TIMER); + status_change_end(bl, SC_WUGDASH, INVALID_TIMER); if (sd) { clif_fixpos(bl); @@ -548,10 +553,10 @@ to_x -= dir_x; to_y -= dir_y; } while (--i > 0 && !unit_walktoxy(bl, to_x, to_y, 1)); - if (i==0) { + if (i == 0) { unit_bl2ud(bl)->state.running = 0; - status_change_end(bl,SC_WUGDASH,INVALID_TIMER); + status_change_end(bl, SC_WUGDASH, INVALID_TIMER); if (sd) { clif_fixpos(bl); @@ -563,20 +568,22 @@ } //Makes bl attempt to run dist cells away from target. Uses hard-paths. + int unit_escape(struct block_list *bl, struct block_list *target, short dist) { int dir = map_calc_dir(target, bl->x, bl->y); - while (dist > 0 && map_getcell(bl->m, bl->x + dist*dirx[dir], bl->y + dist*diry[dir], CELL_CHKNOREACH)) + while (dist > 0 && map_getcell(bl->m, bl->x + dist * dirx[dir], bl->y + dist * diry[dir], CELL_CHKNOREACH)) dist--; - return (dist > 0 && unit_walktoxy(bl, bl->x + dist*dirx[dir], bl->y + dist*diry[dir], 0)); + return (dist > 0 && unit_walktoxy(bl, bl->x + dist * dirx[dir], bl->y + dist * diry[dir], 0)); } //Instant warp function. + int unit_movepos(struct block_list *bl, short dst_x, short dst_y, int easy, bool checkpath) { - short dx,dy; + short dx, dy; uint8 dir; - struct unit_data *ud = NULL; + struct unit_data *ud = NULL; struct map_session_data *sd = NULL; nullpo_ret(bl); @@ -585,10 +592,10 @@ if (ud == NULL) return 0; - unit_stop_walking(bl,1); + unit_stop_walking(bl, 1); unit_stop_attack(bl); - if (checkpath && (map_getcell(bl->m,dst_x,dst_y,CELL_CHKNOPASS) || !path_search(NULL,bl->m,bl->x,bl->y,dst_x,dst_y,easy,CELL_CHKNOREACH))) + if (checkpath && (map_getcell(bl->m, dst_x, dst_y, CELL_CHKNOPASS) || !path_search(NULL, bl->m, bl->x, bl->y, dst_x, dst_y, easy, CELL_CHKNOREACH))) return 0; // unreachable ud->to_x = dst_x; @@ -600,42 +607,42 @@ dx = dst_x - bl->x; dy = dst_y - bl->y; - map_foreachinmovearea(clif_outsight, bl, AREA_SIZE, dx, dy, sd?BL_ALL:BL_PC, bl); + map_foreachinmovearea(clif_outsight, bl, AREA_SIZE, dx, dy, sd ? BL_ALL : BL_PC, bl); map_moveblock(bl, dst_x, dst_y, gettick()); ud->walktimer = -2; // arbitrary non-INVALID_TIMER value to make the clif code send walking packets - map_foreachinmovearea(clif_insight, bl, AREA_SIZE, -dx, -dy, sd?BL_ALL:BL_PC, bl); + map_foreachinmovearea(clif_insight, bl, AREA_SIZE, -dx, -dy, sd ? BL_ALL : BL_PC, bl); ud->walktimer = INVALID_TIMER; if (sd) { if (sd->touching_id) - npc_touchnext_areanpc(sd,false); - if (map_getcell(bl->m,bl->x,bl->y,CELL_CHKNPC)) { - npc_touch_areanpc(sd,bl->m,bl->x,bl->y); + npc_touchnext_areanpc(sd, false); + if (map_getcell(bl->m, bl->x, bl->y, CELL_CHKNPC)) { + npc_touch_areanpc(sd, bl->m, bl->x, bl->y); if (bl->prev == NULL) //Script could have warped char, abort remaining of the function. return 0; } else - sd->areanpc_id=0; + sd->areanpc_id = 0; if (sd->status.pet_id > 0 && sd->pd && sd->pd->pet.intimate > 0) { // Check if pet needs to be teleported. [Skotlex] int flag = 0; struct block_list *bl = &sd->pd->bl; - if (!checkpath && !path_search(NULL,bl->m,bl->x,bl->y,dst_x,dst_y,0,CELL_CHKNOPASS)) + if (!checkpath && !path_search(NULL, bl->m, bl->x, bl->y, dst_x, dst_y, 0, CELL_CHKNOPASS)) flag = 1; else if (!check_distance_bl(&sd->bl, bl, AREA_SIZE)) //Too far, teleport. flag = 2; if (flag) { - unit_movepos(bl,sd->bl.x,sd->bl.y, 0, 0); - clif_slide(bl,bl->x,bl->y); + unit_movepos(bl, sd->bl.x, sd->bl.y, 0, 0); + clif_slide(bl, bl->x, bl->y); } } } return 1; } -int unit_setdir(struct block_list *bl,unsigned char dir) +int unit_setdir(struct block_list *bl, unsigned char dir) { struct unit_data *ud; nullpo_ret(bl); @@ -643,7 +650,7 @@ if (!ud) return 0; ud->dir = dir; if (bl->type == BL_PC) - ((TBL_PC *)bl)->head_dir = 0; + ((TBL_PC *) bl)->head_dir = 0; clif_changed_dir(bl, AREA); return 0; } @@ -661,20 +668,22 @@ // map cell restrictions are respected. // flag: // &1 Do not send position update packets. + int unit_blown(struct block_list *bl, int dx, int dy, int count, int flag) { if (count) { struct map_session_data *sd; struct skill_unit *su = NULL; - int nx, ny, result; + short nx, ny; + int result; sd = BL_CAST(BL_PC, bl); su = BL_CAST(BL_SKILL, bl); result = path_blownpos(bl->m, bl->x, bl->y, dx, dy, count); - nx = result>>16; - ny = result&0xffff; + nx = result >> 16; + ny = result & 0xffff; if (!su) { unit_stop_walking(bl, 0); @@ -685,8 +694,8 @@ sd->ud.to_y = ny; } - dx = nx-bl->x; - dy = ny-bl->y; + dx = nx - bl->x; + dy = ny - bl->y; if (dx || dy) { map_foreachinmovearea(clif_outsight, bl, AREA_SIZE, dx, dy, bl->type == BL_PC ? BL_ALL : BL_PC, bl); @@ -699,7 +708,7 @@ map_foreachinmovearea(clif_insight, bl, AREA_SIZE, -dx, -dy, bl->type == BL_PC ? BL_ALL : BL_PC, bl); - if (!(flag&1)) { + if (!(flag & 1)) { clif_blown(bl); } @@ -718,19 +727,20 @@ count = distance(dx, dy); } - return count; // return amount of knocked back cells + return count; // return amount of knocked back cells } //Warps a unit/ud to a given map/position. //In the case of players, pc_setpos is used. //it respects the no warp flags, so it is safe to call this without doing nowarpto/nowarp checks. -int unit_warp(struct block_list *bl,short m,short x,short y,clr_type type) + +int unit_warp(struct block_list *bl, short m, short x, short y, clr_type type) { struct unit_data *ud; nullpo_ret(bl); ud = unit_bl2ud(bl); - if (bl->prev==NULL || !ud) + if (bl->prev == NULL || !ud) return 1; if (type == CLR_DEAD) @@ -738,13 +748,13 @@ //animation, it messes up with unit_remove_map! [Skotlex] return 1; - if (m<0) m=bl->m; + if (m < 0) m = bl->m; switch (bl->type) { case BL_MOB: - if (map[bl->m].flag.monster_noteleport && ((TBL_MOB *)bl)->master_id == 0) + if (map[bl->m].flag.monster_noteleport && ((TBL_MOB *) bl)->master_id == 0) return 1; - if (m != bl->m && map[m].flag.nobranch && battle_config.mob_warp&4 && !(((TBL_MOB *)bl)->master_id)) + if (m != bl->m && map[m].flag.nobranch && battle_config.mob_warp & 4 && !(((TBL_MOB *) bl)->master_id)) return 1; break; case BL_PC: @@ -753,16 +763,16 @@ break; } - if (x<0 || y<0) { + if (x < 0 || y < 0) { //Random map position. if (!map_search_freecell(NULL, m, &x, &y, -1, -1, 1)) { ShowWarning("unit_warp failed. Unit Id:%d/Type:%d, target position map %d (%s) at [%d,%d]\n", bl->id, bl->type, m, map[m].name, x, y); return 2; } - } else if (map_getcell(m,x,y,CELL_CHKNOREACH)) { + } else if (map_getcell(m, x, y, CELL_CHKNOREACH)) { //Invalid target cell - ShowWarning("unit_warp: Specified non-walkable target cell: %d (%s) at [%d,%d]\n", m, map[m].name, x,y); + ShowWarning("unit_warp: Specified non-walkable target cell: %d (%s) at [%d,%d]\n", m, map[m].name, x, y); if (!map_search_freecell(NULL, m, &x, &y, 4, 4, 1)) { //Can't find a nearby cell @@ -772,22 +782,22 @@ } if (bl->type == BL_PC) //Use pc_setpos - return pc_setpos((TBL_PC *)bl, map_id2index(m), x, y, type); + return pc_setpos((TBL_PC *) bl, map_id2index(m), x, y, type); if (!unit_remove_map(bl, type)) return 3; if (bl->m != m && battle_config.clear_unit_onwarp && - battle_config.clear_unit_onwarp&bl->type) + battle_config.clear_unit_onwarp & bl->type) skill_clear_unitgroup(bl); - bl->x=ud->to_x=x; - bl->y=ud->to_y=y; - bl->m=m; + bl->x = ud->to_x = x; + bl->y = ud->to_y = y; + bl->m = m; map_addblock(bl); clif_spawn(bl); - skill_unit_move(bl,gettick(),1); + skill_unit_move(bl, gettick(), 1); return 0; } @@ -800,7 +810,7 @@ * &0x4: Enable moving to the next cell when unit was already half-way there * (may cause on-touch/place side-effects, such as a scripted map change) *------------------------------------------*/ -int unit_stop_walking(struct block_list *bl,int type) +int unit_stop_walking(struct block_list *bl, int type) { struct unit_data *ud; const struct TimerData *td; @@ -818,14 +828,14 @@ ud->walktimer = INVALID_TIMER; ud->state.change_walk_target = 0; tick = gettick(); - if ((type&0x02 && !ud->walkpath.path_pos) //Force moving at least one cell. - || (type&0x04 && td && DIFF_TICK(td->tick, tick) <= td->data/2) //Enough time has passed to cover half-cell + if ((type & 0x02 && !ud->walkpath.path_pos) //Force moving at least one cell. + || (type & 0x04 && td && DIFF_TICK(td->tick, tick) <= td->data / 2) //Enough time has passed to cover half-cell ) { - ud->walkpath.path_len = ud->walkpath.path_pos+1; + ud->walkpath.path_len = ud->walkpath.path_pos + 1; unit_walktoxy_timer(INVALID_TIMER, tick, bl->id, ud->walkpath.path_pos); } - if (type&0x01) + if (type & 0x01) clif_fixpos(bl); ud->walkpath.path_len = 0; @@ -833,7 +843,7 @@ ud->to_x = bl->x; ud->to_y = bl->y; if (bl->type == BL_PET && type&~0xff) - ud->canmove_tick = gettick() + (type>>8); + ud->canmove_tick = gettick() + (type >> 8); //Readded, the check in unit_set_walkdelay means dmg during running won't fall through to this place in code [Kevin] if (ud->state.running) { @@ -843,14 +853,14 @@ return 1; } -int unit_skilluse_id(struct block_list *src, int target_id, short skill_num, short skill_lv) +int unit_skilluse_id(struct block_list *src, int target_id, uint16 skill_id, uint16 skill_lv) { - if (skill_num < 0) return 0; + if (skill_id < 0) return 0; return unit_skilluse_id2( - src, target_id, skill_num, skill_lv, - skill_castfix(src, skill_num, skill_lv), - skill_get_castcancel(skill_num) + src, target_id, skill_id, skill_lv, + skill_castfix(src, skill_id, skill_lv), + skill_get_castcancel(skill_id) ); } @@ -879,7 +889,7 @@ if (!ud) return 0; - if (ud->skilltimer != INVALID_TIMER && ud->skillid != LG_EXEEDBREAK && (!sd || !pc_checkskill(sd, SA_FREECAST) || skill_get_inf2(ud->skillid)&INF2_GUILD_SKILL)) + if (ud->skilltimer != INVALID_TIMER && ud->skill_id != LG_EXEEDBREAK && (!sd || !pc_checkskill(sd, SA_FREECAST) || skill_get_inf2(ud->skill_id) & INF2_GUILD_SKILL)) return 0; // prevent moving while casting if (DIFF_TICK(ud->canmove_tick, gettick()) > 0) @@ -899,11 +909,11 @@ || (sc->data[SC_SPIDERWEB] && sc->data[SC_SPIDERWEB]->val1) || (sc->data[SC_DANCING] && sc->data[SC_DANCING]->val4 && ( !sc->data[SC_LONGING] || - (sc->data[SC_DANCING]->val1&0xFFFF) == CG_MOONLIT || - (sc->data[SC_DANCING]->val1&0xFFFF) == CG_HERMODE + (sc->data[SC_DANCING]->val1 & 0xFFFF) == CG_MOONLIT || + (sc->data[SC_DANCING]->val1 & 0xFFFF) == CG_HERMODE )) || (sc->data[SC_CLOAKING] && //Need wall at level 1-2 - sc->data[SC_CLOAKING]->val1 < 3 && !(sc->data[SC_CLOAKING]->val4&1)) + sc->data[SC_CLOAKING]->val1 < 3 && !(sc->data[SC_CLOAKING]->val4 & 1)) ) return 0; @@ -924,15 +934,15 @@ int unit_resume_running(int tid, unsigned int tick, int id, intptr_t data) { - struct unit_data *ud = (struct unit_data *)data; + struct unit_data *ud = (struct unit_data *) data; TBL_PC *sd = map_id2sd(id); if (sd && pc_isridingwug(sd)) - clif_skill_nodamage(ud->bl,ud->bl,RA_WUGDASH,ud->skilllv, - sc_start4(ud->bl,status_skill2sc(RA_WUGDASH),100,ud->skilllv,unit_getdir(ud->bl),0,0,1)); + clif_skill_nodamage(ud->bl, ud->bl, RA_WUGDASH, ud->skill_lv, + sc_start4(ud->bl, status_skill2sc(RA_WUGDASH), 100, ud->skill_lv, unit_getdir(ud->bl), 0, 0, 1)); else - clif_skill_nodamage(ud->bl,ud->bl,TK_RUN,ud->skilllv, - sc_start4(ud->bl,status_skill2sc(TK_RUN),100,ud->skilllv,unit_getdir(ud->bl),0,0,0)); + clif_skill_nodamage(ud->bl, ud->bl, TK_RUN, ud->skill_lv, + sc_start4(ud->bl, status_skill2sc(TK_RUN), 100, ud->skill_lv, unit_getdir(ud->bl), 0, 0, 0)); if (sd) clif_walkok(sd); @@ -940,7 +950,6 @@ } - /*========================================== * Applies walk delay to character, considering that * if type is 0, this is a damage induced delay: if previous delay is active, do not change it. @@ -954,11 +963,11 @@ /** * MvP mobs have no walk delay **/ - if (bl->type == BL_MOB && (((TBL_MOB *)bl)->status.mode&MD_BOSS)) + if (bl->type == BL_MOB && (((TBL_MOB *) bl)->status.mode & MD_BOSS)) return 0; if (type) { - if (DIFF_TICK(ud->canmove_tick, tick+delay) > 0) + if (DIFF_TICK(ud->canmove_tick, tick + delay) > 0) return 0; } else { //Don't set walk delays when already trapped. @@ -970,22 +979,22 @@ //Stop walking, if chasing, readjust timers. if (delay == 1) { //Minimal delay (walk-delay) disabled. Just stop walking. - unit_stop_walking(bl,4); + unit_stop_walking(bl, 4); } else { //Resume running after can move again [Kevin] if (ud->state.running) { - add_timer(ud->canmove_tick, unit_resume_running, bl->id, (intptr_t)ud); + add_timer(ud->canmove_tick, unit_resume_running, bl->id, (intptr_t) ud); } else { - unit_stop_walking(bl,2|4); + unit_stop_walking(bl, 2 | 4); if (ud->target) - add_timer(ud->canmove_tick+1, unit_walktobl_sub, bl->id, ud->target); + add_timer(ud->canmove_tick + 1, unit_walktobl_sub, bl->id, ud->target); } } } return 1; } -int unit_skilluse_id2(struct block_list *src, int target_id, short skill_num, short skill_lv, int casttime, int castcancel) +int unit_skilluse_id2(struct block_list *src, int target_id, uint16 skill_id, uint16 skill_lv, int casttime, int castcancel) { struct unit_data *ud; struct status_data *tstatus; @@ -1008,33 +1017,33 @@ sc = NULL; //Unneeded //temp: used to signal combo-skills right now. - if (sc && sc->data[SC_COMBO] && (sc->data[SC_COMBO]->val1 == skill_num || - (sd?skill_check_condition_castbegin(sd,skill_num,skill_lv):0))) { + if (sc && sc->data[SC_COMBO] && (sc->data[SC_COMBO]->val1 == skill_id || + (sd ? skill_check_condition_castbegin(sd, skill_id, skill_lv) : 0))) { if (sc->data[SC_COMBO]->val2) target_id = sc->data[SC_COMBO]->val2; else target_id = ud->target; - if (skill_get_inf(skill_num)&INF_SELF_SKILL && skill_get_nk(skill_num)&NK_NO_DAMAGE) // exploit fix + if (skill_get_inf(skill_id) & INF_SELF_SKILL && skill_get_nk(skill_id) & NK_NO_DAMAGE) // exploit fix target_id = src->id; temp = 1; } else if (target_id == src->id && - skill_get_inf(skill_num)&INF_SELF_SKILL && - skill_get_inf2(skill_num)&INF2_NO_TARGET_SELF) { + skill_get_inf(skill_id) & INF_SELF_SKILL && + skill_get_inf2(skill_id) & INF2_NO_TARGET_SELF) { target_id = ud->target; //Auto-select target. [Skotlex] temp = 1; } if (sd) { //Target_id checking. - if (skillnotok(skill_num, sd)) // [MouseJstr] + if (skillnotok(skill_id, sd)) // [MouseJstr] return 0; - switch (skill_num) { + switch (skill_id) { //Check for skills that auto-select target case MO_CHAINCOMBO: if (sc && sc->data[SC_BLADESTOP]) { - if ((target=map_id2bl(sc->data[SC_BLADESTOP]->val4)) == NULL) + if ((target = map_id2bl(sc->data[SC_BLADESTOP]->val4)) == NULL) return 0; } break; @@ -1042,9 +1051,9 @@ case WE_FEMALE: if (!sd->status.partner_id) return 0; - target = (struct block_list *)map_charid2sd(sd->status.partner_id); + target = (struct block_list *) map_charid2sd(sd->status.partner_id); if (!target) { - clif_skill_fail(sd,skill_num,USESKILL_FAIL_LEVEL,0); + clif_skill_fail(sd, skill_id, USESKILL_FAIL_LEVEL, 0); return 0; } break; @@ -1052,8 +1061,8 @@ if (target) target_id = target->id; } - if (src->type==BL_HOM) - switch (skill_num) { + if (src->type == BL_HOM) + switch (skill_id) { //Homun-auto-target skills. case HLIF_HEAL: case HLIF_AVOID: @@ -1064,7 +1073,7 @@ target_id = target->id; } - if (!target) // choose default target + if (!target) // choose default target target = map_id2bl(target_id); if (!target || src->m != target->m || !src->prev || !target->prev) @@ -1074,32 +1083,32 @@ return 0; //Normally not needed because clif.c checks for it, but the at/char/script commands don't! [Skotlex] - if (ud->skilltimer != INVALID_TIMER && skill_num != SA_CASTCANCEL && skill_num != SO_SPELLFIST) + if (ud->skilltimer != INVALID_TIMER && skill_id != SA_CASTCANCEL && skill_id != SO_SPELLFIST) return 0; - if (skill_get_inf2(skill_num)&INF2_NO_TARGET_SELF && src->id == target_id) + if (skill_get_inf2(skill_id) & INF2_NO_TARGET_SELF && src->id == target_id) return 0; - if (!status_check_skilluse(src, target, skill_num, 0)) + if (!status_check_skilluse(src, target, skill_id, 0)) return 0; tstatus = status_get_status_data(target); // Record the status of the previous skill) if (sd) { - switch (skill_num) { + switch (skill_id) { case SA_CASTCANCEL: - if (ud->skillid != skill_num) { - sd->skillid_old = ud->skillid; - sd->skilllv_old = ud->skilllv; + if (ud->skill_id != skill_id) { + sd->skillid_old = ud->skill_id; + sd->skilllv_old = ud->skill_lv; } break; case BD_ENCORE: //Prevent using the dance skill if you no longer have the skill in your tree. - if (!sd->skillid_dance || pc_checkskill(sd,sd->skillid_dance)<=0) { - clif_skill_fail(sd,skill_num,USESKILL_FAIL_LEVEL,0); + if (!sd->skillid_dance || pc_checkskill(sd, sd->skillid_dance) <= 0) { + clif_skill_fail(sd, skill_id, USESKILL_FAIL_LEVEL, 0); return 0; } - sd->skillid_old = skill_num; + sd->skillid_old = skill_id; break; case BD_LULLABY: case BD_RICHMANKIM: @@ -1110,47 +1119,47 @@ case BD_INTOABYSS: case BD_SIEGFRIED: case CG_MOONLIT: - if (skill_check_pc_partner(sd, skill_num, &skill_lv, 1, 0) < 1) { - clif_skill_fail(sd,skill_num,USESKILL_FAIL_LEVEL,0); + if (skill_check_pc_partner(sd, skill_id, &skill_lv, 1, 0) < 1) { + clif_skill_fail(sd, skill_id, USESKILL_FAIL_LEVEL, 0); return 0; } break; case WL_WHITEIMPRISON: - if (battle_check_target(src,target,BCT_SELF|BCT_ENEMY) < 0) { - clif_skill_fail(sd,skill_num,USESKILL_FAIL_TOTARGET,0); + if (battle_check_target(src, target, BCT_SELF | BCT_ENEMY) < 0) { + clif_skill_fail(sd, skill_id, USESKILL_FAIL_TOTARGET, 0); return 0; } break; case MG_FIREBOLT: case MG_LIGHTNINGBOLT: case MG_COLDBOLT: - sd->skillid_old = skill_num; + sd->skillid_old = skill_id; sd->skilllv_old = skill_lv; break; } - if (!skill_check_condition_castbegin(sd, skill_num, skill_lv)) + if (!skill_check_condition_castbegin(sd, skill_id, skill_lv)) return 0; } if (src->type == BL_MOB) - switch (skill_num) { + switch (skill_id) { case NPC_SUMMONSLAVE: case NPC_SUMMONMONSTER: case AL_TELEPORT: - if (((TBL_MOB *)src)->master_id && ((TBL_MOB *)src)->special_state.ai) + if (((TBL_MOB *) src)->master_id && ((TBL_MOB *) src)->special_state.ai) return 0; } //Check range when not using skill on yourself or is a combo-skill during attack //(these are supposed to always have the same range as your attack) if (src->id != target_id && (!temp || ud->attacktimer == INVALID_TIMER)) { - if (skill_get_state(ud->skillid) == ST_MOVE_ENABLE) { - if (!unit_can_reach_bl(src, target, skill_get_range2(src, skill_num,skill_lv) + 1, 1, NULL, NULL)) + if (skill_get_state(ud->skill_id) == ST_MOVE_ENABLE) { + if (!unit_can_reach_bl(src, target, skill_get_range2(src, skill_id, skill_lv) + 1, 1, NULL, NULL)) return 0; // Walk-path check failed. - } else if (src->type == BL_MER && skill_num == MA_REMOVETRAP) { - if (!battle_check_range(battle_get_master(src), target, skill_get_range2(src, skill_num, skill_lv) + 1)) + } else if (src->type == BL_MER && skill_id == MA_REMOVETRAP) { + if (!battle_check_range(battle_get_master(src), target, skill_get_range2(src, skill_id, skill_lv) + 1)) return 0; // Aegis calc remove trap based on Master position, ignoring mercenary O.O - } else if (!battle_check_range(src, target, skill_get_range2(src, skill_num,skill_lv) + (skill_num == RG_CLOSECONFINE?0:2))) { + } else if (!battle_check_range(src, target, skill_get_range2(src, skill_id, skill_lv) + (skill_id == RG_CLOSECONFINE ? 0 : 2))) { return 0; // Arrow-path check failed. } } @@ -1165,9 +1174,9 @@ //temp: Used to signal force cast now. temp = 0; - switch (skill_num) { + switch (skill_id) { case ALL_RESURRECTION: - if (battle_check_undead(tstatus->race,tstatus->def_ele)) { + if (battle_check_undead(tstatus->race, tstatus->def_ele)) { temp = 1; } else if (!status_isdead(target)) return 0; //Can't cast on non-dead characters. @@ -1206,14 +1215,15 @@ if (sc && sc->data[SC_BASILICA]) casttime = -1; // No Casting time on basilica cancel break; - case KN_CHARGEATK: { - unsigned int k = (distance_bl(src,target)-1)/3; //+100% every 3 cells of distance - if (k > 2) k = 2; // ...but hard-limited to 300%. + case KN_CHARGEATK: + { + unsigned int k = (distance_bl(src, target) - 1) / 3; //+100% every 3 cells of distance + if (k > 2) k = 2; // ...but hard-limited to 300%. casttime += casttime * k; } break; case GD_EMERGENCYCALL: //Emergency Call double cast when the user has learned Leap [Daegaladh] - if (sd && pc_checkskill(sd,TK_HIGHJUMP)) + if (sd && pc_checkskill(sd, TK_HIGHJUMP)) casttime *= 2; break; case RA_WUGDASH: @@ -1224,36 +1234,36 @@ // moved here to prevent Suffragium from ending if skill fails #ifndef RENEWAL_CAST - if (!(skill_get_castnodex(skill_num, skill_lv)&2)) + if (!(skill_get_castnodex(skill_id, skill_lv)&2)) casttime = skill_castfix_sc(src, casttime); #else - casttime = skill_vfcastfix(src, casttime, skill_num, skill_lv); + casttime = skill_vfcastfix(src, casttime, skill_id, skill_lv); #endif - unit_stop_walking(src,1);// eventhough this is not how official works but this will do the trick. bugreport:6829 + unit_stop_walking(src, 1); // eventhough this is not how official works but this will do the trick. bugreport:6829 // in official this is triggered even if no cast time. - clif_skillcasting(src, src->id, target_id, 0,0, skill_num, skill_get_ele(skill_num, skill_lv), casttime); + clif_skillcasting(src, src->id, target_id, 0, 0, skill_id, skill_get_ele(skill_id, skill_lv), casttime); if (casttime > 0 || temp) { if (sd && target->type == BL_MOB) { - TBL_MOB *md = (TBL_MOB *)target; + TBL_MOB *md = (TBL_MOB *) target; mobskill_event(md, src, tick, -1); //Cast targetted skill event. - if (tstatus->mode&(MD_CASTSENSOR_IDLE|MD_CASTSENSOR_CHASE) && + if (tstatus->mode & (MD_CASTSENSOR_IDLE | MD_CASTSENSOR_CHASE) && battle_check_target(target, src, BCT_ENEMY) > 0) { switch (md->state.skillstate) { case MSS_RUSH: case MSS_FOLLOW: - if (!(tstatus->mode&MD_CASTSENSOR_CHASE)) + if (!(tstatus->mode & MD_CASTSENSOR_CHASE)) break; md->target_id = src->id; - md->state.aggressive = (tstatus->mode&MD_ANGRY)?1:0; + md->state.aggressive = (tstatus->mode & MD_ANGRY) ? 1 : 0; md->min_chase = md->db->range3; break; case MSS_IDLE: case MSS_WALK: - if (!(tstatus->mode&MD_CASTSENSOR_IDLE)) + if (!(tstatus->mode & MD_CASTSENSOR_IDLE)) break; md->target_id = src->id; - md->state.aggressive = (tstatus->mode&MD_ANGRY)?1:0; + md->state.aggressive = (tstatus->mode & MD_ANGRY) ? 1 : 0; md->min_chase = md->db->range3; break; } @@ -1264,62 +1274,62 @@ if (casttime <= 0) ud->state.skillcastcancel = 0; - if (!sd || sd->skillitem != skill_num || skill_get_cast(skill_num,skill_lv)) + if (!sd || sd->skillitem != skill_id || skill_get_cast(skill_id, skill_lv)) ud->canact_tick = tick + casttime + 100; if (sd) { - switch (skill_num) { + switch (skill_id) { case CG_ARROWVULCAN: sd->canequip_tick = tick + casttime; break; } } - ud->skilltarget = target_id; - ud->skillx = 0; - ud->skilly = 0; - ud->skillid = skill_num; - ud->skilllv = skill_lv; + ud->skilltarget = target_id; + ud->skillx = 0; + ud->skilly = 0; + ud->skill_id = skill_id; + ud->skill_lv = skill_lv; if (sc) { /** * why the if else chain: these 3 status do not stack, so its efficient that way. **/ - if (sc->data[SC_CLOAKING] && !(sc->data[SC_CLOAKING]->val4&4) && skill_num != AS_CLOAKING) { + if (sc->data[SC_CLOAKING] && !(sc->data[SC_CLOAKING]->val4 & 4) && skill_id != AS_CLOAKING) { status_change_end(src, SC_CLOAKING, INVALID_TIMER); if (!src->prev) return 0; //Warped away! - } else if (sc->data[SC_CLOAKINGEXCEED] && !(sc->data[SC_CLOAKINGEXCEED]->val4&4) && skill_num != GC_CLOAKINGEXCEED) { - status_change_end(src,SC_CLOAKINGEXCEED, INVALID_TIMER); + } else if (sc->data[SC_CLOAKINGEXCEED] && !(sc->data[SC_CLOAKINGEXCEED]->val4 & 4) && skill_id != GC_CLOAKINGEXCEED) { + status_change_end(src, SC_CLOAKINGEXCEED, INVALID_TIMER); if (!src->prev) return 0; } } if (casttime > 0) { - ud->skilltimer = add_timer(tick+casttime, skill_castend_id, src->id, 0); - if (sd && (pc_checkskill(sd,SA_FREECAST) > 0 || skill_num == LG_EXEEDBREAK)) + ud->skilltimer = add_timer(tick + casttime, skill_castend_id, src->id, 0); + if (sd && (pc_checkskill(sd, SA_FREECAST) > 0 || skill_id == LG_EXEEDBREAK)) status_calc_bl(&sd->bl, SCB_SPEED); } else - skill_castend_id(ud->skilltimer,tick,src->id,0); + skill_castend_id(ud->skilltimer, tick, src->id, 0); return 1; } -int unit_skilluse_pos(struct block_list *src, short skill_x, short skill_y, short skill_num, short skill_lv) +int unit_skilluse_pos(struct block_list *src, short skill_x, short skill_y, uint16 skill_id, uint16 skill_lv) { - if (skill_num < 0) + if (skill_id < 0) return 0; return unit_skilluse_pos2( - src, skill_x, skill_y, skill_num, skill_lv, - skill_castfix(src, skill_num, skill_lv), - skill_get_castcancel(skill_num) + src, skill_x, skill_y, skill_id, skill_lv, + skill_castfix(src, skill_id, skill_lv), + skill_get_castcancel(skill_id) ); } -int unit_skilluse_pos2(struct block_list *src, short skill_x, short skill_y, short skill_num, short skill_lv, int casttime, int castcancel) +int unit_skilluse_pos2(struct block_list *src, short skill_x, short skill_y, uint16 skill_id, uint16 skill_lv, int casttime, int castcancel) { struct map_session_data *sd = NULL; - struct unit_data *ud = NULL; + struct unit_data *ud = NULL; struct status_change *sc; - struct block_list bl; + struct block_list bl; unsigned int tick = gettick(); nullpo_ret(src); @@ -1339,24 +1349,24 @@ sc = NULL; if (sd) { - if (skillnotok(skill_num, sd) || !skill_check_condition_castbegin(sd, skill_num, skill_lv)) + if (skillnotok(skill_id, sd) || !skill_check_condition_castbegin(sd, skill_id, skill_lv)) return 0; /** * "WHY IS IT HEREE": pneuma cannot be cancelled past this point, the client displays the animation even, * if we cancel it from nodamage_id, so it has to be here for it to not display the animation. **/ - if (skill_num == AL_PNEUMA && map_getcell(src->m, skill_x, skill_y, CELL_CHKLANDPROTECTOR)) { - clif_skill_fail(sd,skill_num,USESKILL_FAIL_LEVEL,0); + if (skill_id == AL_PNEUMA && map_getcell(src->m, skill_x, skill_y, CELL_CHKLANDPROTECTOR)) { + clif_skill_fail(sd, skill_id, USESKILL_FAIL_LEVEL, 0); return 0; } } - if (!status_check_skilluse(src, NULL, skill_num, 0)) + if (!status_check_skilluse(src, NULL, skill_id, 0)) return 0; if (map_getcell(src->m, skill_x, skill_y, CELL_CHKWALL)) { // can't cast ground targeted spells on wall cells - if (sd) clif_skill_fail(sd,skill_num,USESKILL_FAIL_LEVEL,0); + if (sd) clif_skill_fail(sd, skill_id, USESKILL_FAIL_LEVEL, 0); return 0; } @@ -1366,63 +1376,63 @@ bl.x = skill_x; bl.y = skill_y; - if (skill_get_state(ud->skillid) == ST_MOVE_ENABLE) { - if (!unit_can_reach_bl(src, &bl, skill_get_range2(src, skill_num,skill_lv) + 1, 1, NULL, NULL)) + if (skill_get_state(ud->skill_id) == ST_MOVE_ENABLE) { + if (!unit_can_reach_bl(src, &bl, skill_get_range2(src, skill_id, skill_lv) + 1, 1, NULL, NULL)) return 0; //Walk-path check failed. - } else if (!battle_check_range(src, &bl, skill_get_range2(src, skill_num,skill_lv) + 1)) + } else if (!battle_check_range(src, &bl, skill_get_range2(src, skill_id, skill_lv) + 1)) return 0; //Arrow-path check failed. unit_stop_attack(src); // moved here to prevent Suffragium from ending if skill fails #ifndef RENEWAL_CAST - if (!(skill_get_castnodex(skill_num, skill_lv)&2)) + if (!(skill_get_castnodex(skill_id, skill_lv)&2)) casttime = skill_castfix_sc(src, casttime); #else - casttime = skill_vfcastfix(src, casttime, skill_num, skill_lv); + casttime = skill_vfcastfix(src, casttime, skill_id, skill_lv); #endif - ud->state.skillcastcancel = castcancel&&casttime>0?1:0; - if (!sd || sd->skillitem != skill_num || skill_get_cast(skill_num,skill_lv)) - ud->canact_tick = tick + casttime + 100; + ud->state.skillcastcancel = castcancel && casttime > 0 ? 1 : 0; + if (!sd || sd->skillitem != skill_id || skill_get_cast(skill_id, skill_lv)) + ud->canact_tick = tick + casttime + 100; // if( sd ) // { - // switch( skill_num ) + // switch( skillid ) // { // case ????: // sd->canequip_tick = tick + casttime; // } // } - ud->skillid = skill_num; - ud->skilllv = skill_lv; - ud->skillx = skill_x; - ud->skilly = skill_y; - ud->skilltarget = 0; + ud->skill_id = skill_id; + ud->skill_lv = skill_lv; + ud->skillx = skill_x; + ud->skilly = skill_y; + ud->skilltarget = 0; if (sc) { /** * why the if else chain: these 3 status do not stack, so its efficient that way. **/ - if (sc->data[SC_CLOAKING] && !(sc->data[SC_CLOAKING]->val4&4)) { + if (sc->data[SC_CLOAKING] && !(sc->data[SC_CLOAKING]->val4 & 4)) { status_change_end(src, SC_CLOAKING, INVALID_TIMER); if (!src->prev) return 0; //Warped away! - } else if (sc->data[SC_CLOAKINGEXCEED] && !(sc->data[SC_CLOAKINGEXCEED]->val4&4)) { + } else if (sc->data[SC_CLOAKINGEXCEED] && !(sc->data[SC_CLOAKINGEXCEED]->val4 & 4)) { status_change_end(src, SC_CLOAKINGEXCEED, INVALID_TIMER); if (!src->prev) return 0; } } - unit_stop_walking(src,1); + unit_stop_walking(src, 1); // in official this is triggered even if no cast time. - clif_skillcasting(src, src->id, 0, skill_x, skill_y, skill_num, skill_get_ele(skill_num, skill_lv), casttime); + clif_skillcasting(src, src->id, 0, skill_x, skill_y, skill_id, skill_get_ele(skill_id, skill_lv), casttime); if (casttime > 0) { - ud->skilltimer = add_timer(tick+casttime, skill_castend_pos, src->id, 0); - if ((sd && pc_checkskill(sd,SA_FREECAST) > 0) || skill_num == LG_EXEEDBREAK) + ud->skilltimer = add_timer(tick + casttime, skill_castend_pos, src->id, 0); + if ((sd && pc_checkskill(sd, SA_FREECAST) > 0) || skill_id == LG_EXEEDBREAK) status_calc_bl(&sd->bl, SCB_SPEED); } else { ud->skilltimer = INVALID_TIMER; - skill_castend_pos(ud->skilltimer,tick,src->id,0); + skill_castend_pos(ud->skilltimer, tick, src->id, 0); } return 1; } @@ -1439,9 +1449,9 @@ if (ud->target != target_id) { if (ud->target && (target = map_id2bl(ud->target)) && (ux = unit_bl2ud(target)) && ux->target_count > 0) - ux->target_count --; + ux->target_count--; if (target_id && (target = map_id2bl(target_id)) && (ux = unit_bl2ud(target))) - ux->target_count ++; + ux->target_count++; } ud->target = target_id; @@ -1463,6 +1473,7 @@ } //Means current target is unattackable. For now only unlocks mobs. + int unit_unattackable(struct block_list *bl) { struct unit_data *ud = unit_bl2ud(bl); @@ -1472,9 +1483,9 @@ } if (bl->type == BL_MOB) - mob_unlocktarget((struct mob_data *)bl, gettick()) ; + mob_unlocktarget((struct mob_data *) bl, gettick()); else if (bl->type == BL_PET) - pet_unlocktarget((struct pet_data *)bl); + pet_unlocktarget((struct pet_data *) bl); return 0; } @@ -1482,31 +1493,31 @@ * Attack request * If type is an ongoing attack *------------------------------------------*/ -int unit_attack(struct block_list *src,int target_id,int continuous) +int unit_attack(struct block_list *src, int target_id, int continuous) { struct block_list *target; - struct unit_data *ud; + struct unit_data *ud; nullpo_ret(ud = unit_bl2ud(src)); target = map_id2bl(target_id); - if (target==NULL || status_isdead(target)) { + if (target == NULL || status_isdead(target)) { unit_unattackable(src); return 1; } if (src->type == BL_PC) { - TBL_PC *sd = (TBL_PC *)src; - if (target->type == BL_NPC) { // monster npcs [Valaris] - npc_click(sd,(TBL_NPC *)target); // submitted by leinsirk10 [Celest] + TBL_PC *sd = (TBL_PC *) src; + if (target->type == BL_NPC) { // monster npcs [Valaris] + npc_click(sd, (TBL_NPC *) target); // submitted by leinsirk10 [Celest] return 0; } - if (pc_is90overweight(sd) || pc_isridingwug(sd)) { // overweight or mounted on warg - stop attacking + if (pc_is90overweight(sd) || pc_isridingwug(sd)) { // overweight or mounted on warg - stop attacking unit_stop_attack(src); return 0; } } - if (battle_check_target(src,target,BCT_ENEMY) <= 0 || !status_check_skilluse(src, target, 0, 0)) { + if (battle_check_target(src, target, BCT_ENEMY) <= 0 || !status_check_skilluse(src, target, 0, 0)) { unit_unattackable(src); return 1; } @@ -1522,11 +1533,11 @@ //Set Mob's ANGRY/BERSERK states. if (src->type == BL_MOB) - ((TBL_MOB *)src)->state.skillstate = ((TBL_MOB *)src)->state.aggressive?MSS_ANGRY:MSS_BERSERK; + ((TBL_MOB *) src)->state.skillstate = ((TBL_MOB *) src)->state.aggressive ? MSS_ANGRY : MSS_BERSERK; if (DIFF_TICK(ud->attackabletime, gettick()) > 0) //Do attack next time it is possible. [Skotlex] - ud->attacktimer=add_timer(ud->attackabletime,unit_attack_timer,src->id,0); + ud->attacktimer = add_timer(ud->attackabletime, unit_attack_timer, src->id, 0); else //Attack NOW. unit_attack_timer(INVALID_TIMER, gettick(), src->id, 0); @@ -1535,9 +1546,10 @@ //Cancels an ongoing combo, resets attackable time and restarts the //attack timer to resume attacking after amotion time. [Skotlex] + int unit_cancel_combo(struct block_list *bl) { - struct unit_data *ud; + struct unit_data *ud; if (!status_change_end(bl, SC_COMBO, INVALID_TIMER)) return 0; //Combo wasn't active. @@ -1551,63 +1563,65 @@ return 1; //Nothing more to do. delete_timer(ud->attacktimer, unit_attack_timer); - ud->attacktimer=add_timer(ud->attackabletime,unit_attack_timer,bl->id,0); + ud->attacktimer = add_timer(ud->attackabletime, unit_attack_timer, bl->id, 0); return 1; } + /*========================================== * *------------------------------------------*/ -bool unit_can_reach_pos(struct block_list *bl,int x,int y, int easy) +bool unit_can_reach_pos(struct block_list *bl, int x, int y, int easy) { nullpo_retr(false, bl); if (bl->x == x && bl->y == y) //Same place return true; - return path_search(NULL,bl->m,bl->x,bl->y,x,y,easy,CELL_CHKNOREACH); + return path_search(NULL, bl->m, bl->x, bl->y, x, y, easy, CELL_CHKNOREACH); } /*========================================== * *------------------------------------------*/ -bool unit_can_reach_bl(struct block_list *bl,struct block_list *tbl, int range, int easy, short *x, short *y) +bool unit_can_reach_bl(struct block_list *bl, struct block_list *tbl, int range, int easy, short *x, short *y) { int i; - short dx,dy; + short dx, dy; nullpo_retr(false, bl); nullpo_retr(false, tbl); if (bl->m != tbl->m) return false; - if (bl->x==tbl->x && bl->y==tbl->y) + if (bl->x == tbl->x && bl->y == tbl->y) return true; - if (range>0 && !check_distance_bl(bl, tbl, range)) + if (range > 0 && !check_distance_bl(bl, tbl, range)) return false; // It judges whether it can adjoin or not. - dx=tbl->x - bl->x; - dy=tbl->y - bl->y; - dx=(dx>0)?1:((dx<0)?-1:0); - dy=(dy>0)?1:((dy<0)?-1:0); + dx = tbl->x - bl->x; + dy = tbl->y - bl->y; + dx = (dx > 0) ? 1 : ((dx < 0) ? -1 : 0); + dy = (dy > 0) ? 1 : ((dy < 0) ? -1 : 0); - if (map_getcell(tbl->m,tbl->x-dx,tbl->y-dy,CELL_CHKNOPASS)) { + if (map_getcell(tbl->m, tbl->x - dx, tbl->y - dy, CELL_CHKNOPASS)) { //Look for a suitable cell to place in. - for (i=0; i<9 && map_getcell(tbl->m,tbl->x-dirx[i],tbl->y-diry[i],CELL_CHKNOPASS); i++); - if (i==9) return false; //No valid cells. + for (i = 0; i < 9 && map_getcell(tbl->m, tbl->x - dirx[i], tbl->y - diry[i], CELL_CHKNOPASS); i++); + if (i == 9) return false; //No valid cells. dx = dirx[i]; dy = diry[i]; } - if (x) *x = tbl->x-dx; - if (y) *y = tbl->y-dy; - return path_search(NULL,bl->m,bl->x,bl->y,tbl->x-dx,tbl->y-dy,easy,CELL_CHKNOREACH); + if (x) *x = tbl->x - dx; + if (y) *y = tbl->y - dy; + return path_search(NULL, bl->m, bl->x, bl->y, tbl->x - dx, tbl->y - dy, easy, CELL_CHKNOREACH); } + /*========================================== * Calculates position of Pet/Mercenary/Homunculus/Elemental *------------------------------------------*/ -int unit_calc_pos(struct block_list *bl, int tx, int ty, int dir) +int unit_calc_pos(struct block_list *bl, short tx, short ty, int dir) { int dx, dy, x, y, i, k; struct unit_data *ud = unit_bl2ud(bl); @@ -1632,7 +1646,7 @@ else if (dy < 0) y++; if (!unit_can_reach_pos(bl, x, y, 0)) { for (i = 0; i < 12; i++) { - k = rnd()%8; // Pick a Random Dir + k = rnd() % 8; // Pick a Random Dir dx = -dirx[k] * 2; dy = -diry[k] * 2; x = tx + dx; @@ -1674,23 +1688,23 @@ struct mob_data *md = NULL; int range; - if ((ud=unit_bl2ud(src))==NULL) + if ((ud = unit_bl2ud(src)) == NULL) return 0; if (ud->attacktimer != tid) { - ShowError("unit_attack_timer %d != %d\n",ud->attacktimer,tid); + ShowError("unit_attack_timer %d != %d\n", ud->attacktimer, tid); return 0; } sd = BL_CAST(BL_PC, src); md = BL_CAST(BL_MOB, src); ud->attacktimer = INVALID_TIMER; - target=map_id2bl(ud->target); + target = map_id2bl(ud->target); - if (src == NULL || src->prev == NULL || target==NULL || target->prev == NULL) + if (src == NULL || src->prev == NULL || target == NULL || target->prev == NULL) return 0; if (status_isdead(src) || status_isdead(target) || - battle_check_target(src,target,BCT_ENEMY) <= 0 || !status_check_skilluse(src, target, 0, 0) + battle_check_target(src, target, BCT_ENEMY) <= 0 || !status_check_skilluse(src, target, 0, 0) #ifdef OFFICIAL_WALKPATH || !path_search_long(NULL, src->m, src->x, src->y, target->x, target->y, CELL_CHKWALL) #endif @@ -1698,26 +1712,26 @@ return 0; // can't attack under these conditions if (src->m != target->m) { - if (src->type == BL_MOB && mob_warpchase((TBL_MOB *)src, target)) + if (src->type == BL_MOB && mob_warpchase((TBL_MOB *) src, target)) return 1; // Follow up. return 0; } - if (ud->skilltimer != INVALID_TIMER && !(sd && pc_checkskill(sd,SA_FREECAST) > 0)) + if (ud->skilltimer != INVALID_TIMER && !(sd && pc_checkskill(sd, SA_FREECAST) > 0)) return 0; // can't attack while casting - if (!battle_config.sdelay_attack_enable && DIFF_TICK(ud->canact_tick,tick) > 0 && !(sd && pc_checkskill(sd,SA_FREECAST) > 0)) { + if (!battle_config.sdelay_attack_enable && DIFF_TICK(ud->canact_tick, tick) > 0 && !(sd && pc_checkskill(sd, SA_FREECAST) > 0)) { // attacking when under cast delay has restrictions: if (tid == INVALID_TIMER) { //requested attack. - if (sd) clif_skill_fail(sd,1,USESKILL_FAIL_SKILLINTERVAL,0); + if (sd) clif_skill_fail(sd, 1, USESKILL_FAIL_SKILLINTERVAL, 0); return 0; } //Otherwise, we are in a combo-attack, delay this until your canact time is over. [Skotlex] if (ud->state.attack_continue) { if (DIFF_TICK(ud->canact_tick, ud->attackabletime) > 0) ud->attackabletime = ud->canact_tick; - ud->attacktimer=add_timer(ud->attackabletime,unit_attack_timer,src->id,0); + ud->attacktimer = add_timer(ud->attackabletime, unit_attack_timer, src->id, 0); } return 1; } @@ -1727,18 +1741,18 @@ if (unit_is_walking(target)) range++; //Extra range when chasing - if (!check_distance_bl(src,target,range)) { //Chase if required. + if (!check_distance_bl(src, target, range)) { //Chase if required. if (sd) - clif_movetoattack(sd,target); + clif_movetoattack(sd, target); else if (ud->state.attack_continue) - unit_walktobl(src,target,ud->chaserange,ud->state.walk_easy|2); + unit_walktobl(src, target, ud->chaserange, ud->state.walk_easy | 2); return 1; } - if (!battle_check_range(src,target,range)) { + if (!battle_check_range(src, target, range)) { //Within range, but no direct line of attack if (ud->state.attack_continue) { - if (ud->chaserange > 2) ud->chaserange-=2; - unit_walktobl(src,target,ud->chaserange,ud->state.walk_easy|2); + if (ud->chaserange > 2) ud->chaserange -= 2; + unit_walktobl(src, target, ud->chaserange, ud->state.walk_easy | 2); } return 1; } @@ -1746,29 +1760,29 @@ //Non-players use the sync packet on the walk timer. [Skotlex] if (tid == INVALID_TIMER && sd) clif_fixpos(src); - if (DIFF_TICK(ud->attackabletime,tick) <= 0) { - if (battle_config.attack_direction_change && (src->type&battle_config.attack_direction_change)) { - ud->dir = map_calc_dir(src, target->x,target->y); + if (DIFF_TICK(ud->attackabletime, tick) <= 0) { + if (battle_config.attack_direction_change && (src->type & battle_config.attack_direction_change)) { + ud->dir = map_calc_dir(src, target->x, target->y); } if (ud->walktimer != INVALID_TIMER) - unit_stop_walking(src,1); + unit_stop_walking(src, 1); if (md) { - if (mobskill_use(md,tick,-1)) + if (mobskill_use(md, tick, -1)) return 1; - if (sstatus->mode&MD_ASSIST && DIFF_TICK(md->last_linktime, tick) < MIN_MOBLINKTIME) { + if (sstatus->mode & MD_ASSIST && DIFF_TICK(md->last_linktime, tick) < MIN_MOBLINKTIME) { // Link monsters nearby [Skotlex] md->last_linktime = tick; map_foreachinrange(mob_linksearch, src, md->db->range2, BL_MOB, md->class_, target, tick); } } - if (src->type == BL_PET && pet_attackskill((TBL_PET *)src, target->id)) + if (src->type == BL_PET && pet_attackskill((TBL_PET *) src, target->id)) return 1; map_freeblock_lock(); - ud->attacktarget_lv = battle_weapon_attack(src,target,tick,0); + ud->attacktarget_lv = battle_weapon_attack(src, target, tick, 0); if (sd && sd->status.pet_id > 0 && sd->pd && battle_config.pet_attack_support) - pet_target_check(sd,target,0); + pet_target_check(sd, target, 0); map_freeblock_unlock(); /** * Applied when you're unable to attack (e.g. out of ammo) @@ -1779,12 +1793,12 @@ ud->attackabletime = tick + sstatus->adelay; // You can't move if you can't attack neither. - if (src->type&battle_config.attack_walk_delay) + if (src->type & battle_config.attack_walk_delay) unit_set_walkdelay(src, tick, sstatus->amotion, 1); } if (ud->state.attack_continue) - ud->attacktimer = add_timer(ud->attackabletime,unit_attack_timer,src->id,0); + ud->attacktimer = add_timer(ud->attackabletime, unit_attack_timer, src->id, 0); return 1; } @@ -1803,12 +1817,12 @@ * flag&1: Cast-Cancel invoked. * flag&2: Cancel only if skill is cancellable. *------------------------------------------*/ -int unit_skillcastcancel(struct block_list *bl,int type) +int unit_skillcastcancel(struct block_list *bl, int type) { struct map_session_data *sd = NULL; struct unit_data *ud = unit_bl2ud(bl); - unsigned int tick=gettick(); - int ret=0, skill; + unsigned int tick = gettick(); + int ret = 0, skill; nullpo_ret(bl); if (!ud || ud->skilltimer == INVALID_TIMER) @@ -1816,7 +1830,7 @@ sd = BL_CAST(BL_PC, bl); - if (type&2) { + if (type & 2) { //See if it can be cancelled. if (!ud->state.skillcastcancel) return 0; @@ -1828,21 +1842,21 @@ ud->canact_tick = tick; - if (type&1 && sd) + if (type & 1 && sd) skill = sd->skillid_old; else - skill = ud->skillid; + skill = ud->skill_id; if (skill_get_inf(skill) & INF_GROUND_SKILL) - ret=delete_timer(ud->skilltimer, skill_castend_pos); + ret = delete_timer(ud->skilltimer, skill_castend_pos); else - ret=delete_timer(ud->skilltimer, skill_castend_id); - if (ret<0) - ShowError("delete timer error : skillid : %d\n",ret); + ret = delete_timer(ud->skilltimer, skill_castend_id); + if (ret < 0) + ShowError("delete timer error : skillid : %d\n", ret); ud->skilltimer = INVALID_TIMER; - if (sd && pc_checkskill(sd,SA_FREECAST) > 0) + if (sd && pc_checkskill(sd, SA_FREECAST) > 0) status_calc_bl(&sd->bl, SCB_SPEED); if (sd) { @@ -1853,26 +1867,27 @@ } } - if (bl->type==BL_MOB)((TBL_MOB *)bl)->skillidx = -1; + if (bl->type == BL_MOB)((TBL_MOB *) bl)->skillidx = -1; clif_skillcastcancel(bl); return 1; } // unit_data initialization process + void unit_dataset(struct block_list *bl) { struct unit_data *ud; nullpo_retv(ud = unit_bl2ud(bl)); - memset(ud, 0, sizeof(struct unit_data)); - ud->bl = bl; - ud->walktimer = INVALID_TIMER; - ud->skilltimer = INVALID_TIMER; - ud->attacktimer = INVALID_TIMER; + memset(ud, 0, sizeof (struct unit_data)); + ud->bl = bl; + ud->walktimer = INVALID_TIMER; + ud->skilltimer = INVALID_TIMER; + ud->attacktimer = INVALID_TIMER; ud->attackabletime = - ud->canact_tick = - ud->canmove_tick = gettick(); + ud->canact_tick = + ud->canmove_tick = gettick(); } /*========================================== @@ -1889,33 +1904,33 @@ /*========================================== * *------------------------------------------*/ -int unit_fixdamage(struct block_list *src,struct block_list *target,unsigned int tick,int sdelay,int ddelay,int damage,int div,int type,int damage2) +int unit_fixdamage(struct block_list *src, struct block_list *target, unsigned int tick, int sdelay, int ddelay, int damage, int div, int type, int damage2) { nullpo_ret(target); - if (damage+damage2 <= 0) + if (damage + damage2 <= 0) return 0; - return status_fix_damage(src,target,damage+damage2,clif_damage(target,target,tick,sdelay,ddelay,damage,div,type,damage2)); + return status_fix_damage(src, target, damage + damage2, clif_damage(target, target, tick, sdelay, ddelay, damage, div, type, damage2)); } /*========================================== * To change the size of the char (player or mob only) *------------------------------------------*/ -int unit_changeviewsize(struct block_list *bl,short size) +int unit_changeviewsize(struct block_list *bl, short size) { nullpo_ret(bl); - size=(size<0)?-1:(size>0)?1:0; + size = (size < 0) ? -1 : (size > 0) ? 1 : 0; if (bl->type == BL_PC) { - ((TBL_PC *)bl)->state.size=size; + ((TBL_PC *) bl)->state.size = size; } else if (bl->type == BL_MOB) { - ((TBL_MOB *)bl)->special_state.size=size; + ((TBL_MOB *) bl)->special_state.size = size; } else return 0; - if (size!=0) - clif_specialeffect(bl,421+size, AREA); + if (size != 0) + clif_specialeffect(bl, 421 + size, AREA); return 0; } @@ -1940,11 +1955,11 @@ unit_set_target(ud, 0); if (ud->walktimer != INVALID_TIMER) - unit_stop_walking(bl,0); + unit_stop_walking(bl, 0); if (ud->attacktimer != INVALID_TIMER) unit_stop_attack(bl); if (ud->skilltimer != INVALID_TIMER) - unit_skillcastcancel(bl,0); + unit_skillcastcancel(bl, 0); // Do not reset can-act delay. [Skotlex] ud->attackabletime = ud->canmove_tick /*= ud->canact_tick*/ = gettick(); @@ -1981,37 +1996,38 @@ status_change_end(bl, SC_CURSEDCIRCLE_ATKER, INVALID_TIMER); //callme before warp } - if (bl->type&(BL_CHAR|BL_PET)) { - skill_unit_move(bl,gettick(),4); + if (bl->type & (BL_CHAR | BL_PET)) { + skill_unit_move(bl, gettick(), 4); skill_cleartimerskill(bl); } switch (bl->type) { - case BL_PC: { - struct map_session_data *sd = (struct map_session_data *)bl; + case BL_PC: + { + struct map_session_data *sd = (struct map_session_data *) bl; //Leave/reject all invitations. if (sd->chatID) - chat_leavechat(sd,0); + chat_leavechat(sd, 0); if (sd->trade_partner) trade_tradecancel(sd); buyingstore_close(sd); searchstore_close(sd); if (sd->state.storage_flag == 1) - storage_storage_quit(sd,0); + storage_storage_quit(sd, 0); else if (sd->state.storage_flag == 2) - storage_guild_storage_quit(sd,0); + storage_guild_storage_quit(sd, 0); sd->state.storage_flag = 0; //Force close it when being warped. - if (sd->party_invite>0) - party_reply_invite(sd,sd->party_invite,0); - if (sd->guild_invite>0) - guild_reply_invite(sd,sd->guild_invite,0); - if (sd->guild_alliance>0) - guild_reply_reqalliance(sd,sd->guild_alliance_account,0); + if (sd->party_invite > 0) + party_reply_invite(sd, sd->party_invite, 0); + if (sd->guild_invite > 0) + guild_reply_invite(sd, sd->guild_invite, 0); + if (sd->guild_alliance > 0) + guild_reply_reqalliance(sd, sd->guild_alliance_account, 0); if (sd->menuskill_id) sd->menuskill_id = sd->menuskill_val = 0; - if (sd->touching_id && !sd->state.warping) // Only if the player isn't warping and there is a touching_id. - npc_touchnext_areanpc(sd,true); + if (sd->touching_id && !sd->state.warping) // Only if the player isn't warping and there is a touching_id. + npc_touchnext_areanpc(sd, true); // Check if warping and not changing the map. if (sd->state.warping && !sd->state.changemap) { @@ -2023,7 +2039,7 @@ sd->adopt_invite = 0; if (sd->pvp_timer != INVALID_TIMER) { - delete_timer(sd->pvp_timer,pc_calc_pvprank_timer); + delete_timer(sd->pvp_timer, pc_calc_pvprank_timer); sd->pvp_timer = INVALID_TIMER; sd->pvp_rank = 0; } @@ -2032,9 +2048,9 @@ if (pc_issit(sd)) { pc_setstand(sd); - skill_sit(sd,0); + skill_sit(sd, 0); } - party_send_dot_remove(sd);//minimap dot fix [Kevin] + party_send_dot_remove(sd); //minimap dot fix [Kevin] guild_send_dot_remove(sd); bg_send_dot_remove(sd); @@ -2056,7 +2072,7 @@ sd->debug_file, sd->debug_line, sd->debug_func, file, line, func); } else if (--map[bl->m].users == 0 && battle_config.dynamic_mobs) //[Skotlex] map_removemobs(bl->m); - if (!(sd->sc.option&OPTION_INVISIBLE)) { + if (!(sd->sc.option & OPTION_INVISIBLE)) { // decrement the number of active pvp players on the map --map[bl->m].users_pvp; } @@ -2071,76 +2087,81 @@ break; } - case BL_MOB: { - struct mob_data *md = (struct mob_data *)bl; + case BL_MOB: + { + struct mob_data *md = (struct mob_data *) bl; // Drop previous target mob_slave_keep_target: no. if (!battle_config.mob_slave_keep_target) - md->target_id=0; + md->target_id = 0; - md->attacked_id=0; - md->state.skillstate= MSS_IDLE; + md->attacked_id = 0; + md->state.skillstate = MSS_IDLE; break; } - case BL_PET: { - struct pet_data *pd = (struct pet_data *)bl; + case BL_PET: + { + struct pet_data *pd = (struct pet_data *) bl; if (pd->pet.intimate <= 0 && !(pd->msd && !pd->msd->state.active)) { //If logging out, this is deleted on unit_free - clif_clearunit_area(bl,clrtype); + clif_clearunit_area(bl, clrtype); map_delblock(bl); - unit_free(bl,CLR_OUTSIGHT); + unit_free(bl, CLR_OUTSIGHT); map_freeblock_unlock(); return 0; } break; } - case BL_HOM: { - struct homun_data *hd = (struct homun_data *)bl; + case BL_HOM: + { + struct homun_data *hd = (struct homun_data *) bl; ud->canact_tick = ud->canmove_tick; //It appears HOM do reset the can-act tick. if (!hd->homunculus.intimacy && !(hd->master && !hd->master->state.active)) { //If logging out, this is deleted on unit_free clif_emotion(bl, E_SOB); - clif_clearunit_area(bl,clrtype); + clif_clearunit_area(bl, clrtype); map_delblock(bl); - unit_free(bl,CLR_OUTSIGHT); + unit_free(bl, CLR_OUTSIGHT); map_freeblock_unlock(); return 0; } break; } - case BL_MER: { - struct mercenary_data *md = (struct mercenary_data *)bl; + case BL_MER: + { + struct mercenary_data *md = (struct mercenary_data *) bl; ud->canact_tick = ud->canmove_tick; if (mercenary_get_lifetime(md) <= 0 && !(md->master && !md->master->state.active)) { - clif_clearunit_area(bl,clrtype); + clif_clearunit_area(bl, clrtype); map_delblock(bl); - unit_free(bl,CLR_OUTSIGHT); + unit_free(bl, CLR_OUTSIGHT); map_freeblock_unlock(); return 0; } break; } - case BL_ELEM: { - struct elemental_data *ed = (struct elemental_data *)bl; + case BL_ELEM: + { + struct elemental_data *ed = (struct elemental_data *) bl; ud->canact_tick = ud->canmove_tick; if (elemental_get_lifetime(ed) <= 0 && !(ed->master && !ed->master->state.active)) { - clif_clearunit_area(bl,clrtype); + clif_clearunit_area(bl, clrtype); map_delblock(bl); - unit_free(bl,0); + unit_free(bl, 0); map_freeblock_unlock(); return 0; } break; } default: - break;// do nothing + break; // do nothing } /** * BL_MOB is handled by mob_dead unless the monster is not dead. **/ if (bl->type != BL_MOB || !status_isdead(bl)) - clif_clearunit_area(bl,clrtype); + clif_clearunit_area(bl, clrtype); map_delblock(bl); map_freeblock_unlock(); return 1; @@ -2148,7 +2169,7 @@ void unit_remove_map_pc(struct map_session_data *sd, clr_type clrtype) { - unit_remove_map(&sd->bl,clrtype); + unit_remove_map(&sd->bl, clrtype); if (clrtype == CLR_TELEPORT) clrtype = CLR_OUTSIGHT; //CLR_TELEPORT is the warp from logging out, but pets/homunc need to just 'vanish' instead of showing the warping out animation. @@ -2164,11 +2185,11 @@ void unit_free_pc(struct map_session_data *sd) { - if (sd->pd) unit_free(&sd->pd->bl,CLR_OUTSIGHT); - if (sd->hd) unit_free(&sd->hd->bl,CLR_OUTSIGHT); - if (sd->md) unit_free(&sd->md->bl,CLR_OUTSIGHT); - if (sd->ed) unit_free(&sd->ed->bl,CLR_OUTSIGHT); - unit_free(&sd->bl,CLR_TELEPORT); + if (sd->pd) unit_free(&sd->pd->bl, CLR_OUTSIGHT); + if (sd->hd) unit_free(&sd->hd->bl, CLR_OUTSIGHT); + if (sd->md) unit_free(&sd->md->bl, CLR_OUTSIGHT); + if (sd->ed) unit_free(&sd->ed->bl, CLR_OUTSIGHT); + unit_free(&sd->bl, CLR_TELEPORT); } /*========================================== @@ -2181,21 +2202,22 @@ nullpo_ret(ud); map_freeblock_lock(); - if (bl->prev) //Players are supposed to logout with a "warp" effect. + if (bl->prev) //Players are supposed to logout with a "warp" effect. unit_remove_map(bl, clrtype); switch (bl->type) { - case BL_PC: { - struct map_session_data *sd = (struct map_session_data *)bl; + case BL_PC: + { + struct map_session_data *sd = (struct map_session_data *) bl; int i; if (status_isdead(bl)) - pc_setrestartvalue(sd,2); + pc_setrestartvalue(sd, 2); pc_delinvincibletimer(sd); - pc_delautobonus(sd,sd->autobonus,ARRAYLENGTH(sd->autobonus),false); - pc_delautobonus(sd,sd->autobonus2,ARRAYLENGTH(sd->autobonus2),false); - pc_delautobonus(sd,sd->autobonus3,ARRAYLENGTH(sd->autobonus3),false); + pc_delautobonus(sd, sd->autobonus, ARRAYLENGTH(sd->autobonus), false); + pc_delautobonus(sd, sd->autobonus2, ARRAYLENGTH(sd->autobonus2), false); + pc_delautobonus(sd, sd->autobonus3, ARRAYLENGTH(sd->autobonus3), false); if (sd->followtimer != INVALID_TIMER) pc_stop_following(sd); @@ -2206,14 +2228,14 @@ // Notify friends that this char logged out. [Skotlex] map_foreachpc(clif_friendslist_toggle_sub, sd->status.account_id, sd->status.char_id, 0); party_send_logout(sd); - guild_send_memberinfoshort(sd,0); + guild_send_memberinfoshort(sd, 0); pc_cleareventtimer(sd); pc_inventory_rental_clear(sd); - pc_delspiritball(sd,sd->spiritball,1); + pc_delspiritball(sd, sd->spiritball, 1); for (i = 1; i < 5; i++) pc_del_talisman(sd, sd->talisman[i], i); - if (sd->reg) { //Double logout already freed pointer fix... [Skotlex] + if (sd->reg) { //Double logout already freed pointer fix... [Skotlex] aFree(sd->reg); sd->reg = NULL; sd->reg_num = 0; @@ -2239,8 +2261,9 @@ } break; } - case BL_PET: { - struct pet_data *pd = (struct pet_data *)bl; + case BL_PET: + { + struct pet_data *pd = (struct pet_data *) bl; struct map_session_data *sd = pd->msd; pet_hungry_timer_delete(pd); if (pd->a_skill) { @@ -2270,14 +2293,14 @@ pd->bonus = NULL; } if (pd->loot) { - pet_lootitem_drop(pd,sd); + pet_lootitem_drop(pd, sd); if (pd->loot->item) aFree(pd->loot->item); aFree(pd->loot); pd->loot = NULL; } if (pd->pet.intimate > 0) - intif_save_petdata(pd->pet.account_id,&pd->pet); + intif_save_petdata(pd->pet.account_id, &pd->pet); else { //Remove pet. intif_delete_petdata(pd->pet.pet_id); @@ -2287,19 +2310,20 @@ sd->pd = NULL; break; } - case BL_MOB: { - struct mob_data *md = (struct mob_data *)bl; + case BL_MOB: + { + struct mob_data *md = (struct mob_data *) bl; if (md->spawn_timer != INVALID_TIMER) { - delete_timer(md->spawn_timer,mob_delayspawn); + delete_timer(md->spawn_timer, mob_delayspawn); md->spawn_timer = INVALID_TIMER; } if (md->deletetimer != INVALID_TIMER) { - delete_timer(md->deletetimer,mob_timer_delete); + delete_timer(md->deletetimer, mob_timer_delete); md->deletetimer = INVALID_TIMER; } if (md->lootitem) { aFree(md->lootitem); - md->lootitem=NULL; + md->lootitem = NULL; } if (md->guardian_data) { struct guild_castle *gc = md->guardian_data->castle; @@ -2335,8 +2359,9 @@ mvptomb_destroy(md); break; } - case BL_HOM: { - struct homun_data *hd = (TBL_HOM *)bl; + case BL_HOM: + { + struct homun_data *hd = (TBL_HOM *) bl; struct map_session_data *sd = hd->master; merc_hom_hungry_timer_delete(hd); if (hd->homunculus.intimacy > 0) @@ -2350,8 +2375,9 @@ sd->hd = NULL; break; } - case BL_MER: { - struct mercenary_data *md = (TBL_MER *)bl; + case BL_MER: + { + struct mercenary_data *md = (TBL_MER *) bl; struct map_session_data *sd = md->master; if (mercenary_get_lifetime(md) > 0) mercenary_save(md); @@ -2366,8 +2392,9 @@ merc_contract_stop(md); break; } - case BL_ELEM: { - struct elemental_data *ed = (TBL_ELEM *)bl; + case BL_ELEM: + { + struct elemental_data *ed = (TBL_ELEM *) bl; struct map_session_data *sd = ed->master; if (elemental_get_lifetime(ed) > 0) elemental_save(ed); @@ -2385,9 +2412,9 @@ } skill_clear_unitgroup(bl); - status_change_clear(bl,1); + status_change_clear(bl, 1); map_deliddb(bl); - if (bl->type != BL_PC) //Players are handled by map_quit + if (bl->type != BL_PC) //Players are handled by map_quit map_freeblock(bl); map_freeblock_unlock(); return 0; @@ -2395,10 +2422,10 @@ int do_init_unit(void) { - add_timer_func_list(unit_attack_timer, "unit_attack_timer"); - add_timer_func_list(unit_walktoxy_timer,"unit_walktoxy_timer"); + add_timer_func_list(unit_attack_timer, "unit_attack_timer"); + add_timer_func_list(unit_walktoxy_timer, "unit_walktoxy_timer"); add_timer_func_list(unit_walktobl_sub, "unit_walktobl_sub"); - add_timer_func_list(unit_delay_walktoxy_timer,"unit_delay_walktoxy_timer"); + add_timer_func_list(unit_delay_walktoxy_timer, "unit_delay_walktoxy_timer"); return 0; } Index: src/map/unit.h --- src/map/unit.h Base (BASE) +++ src/map/unit.h Locally Modified (Based On LOCAL) @@ -23,7 +23,7 @@ short attacktarget_lv; short to_x,to_y; short skillx,skilly; - short skillid,skilllv; + uint16 skill_id,skill_lv; int skilltarget; int skilltimer; int target; @@ -48,13 +48,8 @@ }; struct view_data { -#ifdef __64BIT__ - unsigned int class_; -#endif unsigned short -#ifndef __64BIT__ class_, -#endif weapon, shield, //Or left-hand weapon. robe, @@ -75,7 +70,7 @@ int unit_walktoxy(struct block_list *bl, short x, short y, int easy); int unit_walktobl(struct block_list *bl, struct block_list *target, int range, int easy); int unit_run(struct block_list *bl); -int unit_calc_pos(struct block_list *bl, int tx, int ty, int dir); +int unit_calc_pos(struct block_list *bl, short tx, short ty, int dir); // ���s��~ // type�͈ȉ��̑g�ݍ��킹 : @@ -105,12 +100,12 @@ int unit_cancel_combo(struct block_list *bl); // �X�L���g�p -int unit_skilluse_id(struct block_list *src, int target_id, short skill_num, short skill_lv); -int unit_skilluse_pos(struct block_list *src, short skill_x, short skill_y, short skill_num, short skill_lv); +int unit_skilluse_id(struct block_list *src, int target_id, uint16 skill_id, uint16 skill_lv); +int unit_skilluse_pos(struct block_list *src, short skill_x, short skill_y, uint16 skill_id, uint16 skill_lv); // �X�L���g�p( �␳�ς݃L���X�g���ԁA�L�����Z���s�ݒ�t�� ) -int unit_skilluse_id2(struct block_list *src, int target_id, short skill_num, short skill_lv, int casttime, int castcancel); -int unit_skilluse_pos2(struct block_list *src, short skill_x, short skill_y, short skill_num, short skill_lv, int casttime, int castcancel); +int unit_skilluse_id2(struct block_list *src, int target_id, uint16 skill_id, uint16 skill_lv, int casttime, int castcancel); +int unit_skilluse_pos2(struct block_list *src, short skill_x, short skill_y, uint16 skill_id, uint16 skill_lv, int casttime, int castcancel); // �r���L�����Z�� int unit_skillcastcancel(struct block_list *bl,int type); Index: src/tool/mapcache.c --- src/tool/mapcache.c Base (BASE) +++ src/tool/mapcache.c Locally Modified (Based On LOCAL) @@ -67,18 +67,17 @@ int32 MakeLongLE(int32 val) { unsigned char buf[4]; - buf[0] = (unsigned char)((val & 0x000000FF)); - buf[1] = (unsigned char)((val & 0x0000FF00) >> 0x08); - buf[2] = (unsigned char)((val & 0x00FF0000) >> 0x10); - buf[3] = (unsigned char)((val & 0xFF000000) >> 0x18); + buf[0] = (unsigned char)(((uint)val & 0x000000FF)); + buf[1] = (unsigned char)(((uint)val & 0x0000FF00) >> 0x08); + buf[2] = (unsigned char)(((uint)val & 0x00FF0000) >> 0x10); + buf[3] = (unsigned char)(((uint)val & 0xFF000000) >> 0x18); return *((int32 *)buf); } // Reads an uint16 in little-endian from the buffer uint16 GetUShort(const unsigned char *buf) { - return (((uint16)(buf[0]))) - |(((uint16)(buf[1])) << 0x08); + return (uint16)((buf[0] | buf[1]) << 0x08); } // Reads an uint32 in little-endian from the buffer @@ -169,10 +168,10 @@ unsigned char *write_buf; // Create an output buffer twice as big as the uncompressed map... this way we're sure it fits - len = (unsigned long)m->xs*(unsigned long)m->ys*2; + len = (unsigned long)(m->xs*m->ys*2); write_buf = (unsigned char *)aMalloc(len); // Compress the cells and get the compressed length - encode_zip(write_buf, &len, m->cells, m->xs*m->ys); + encode_zip(write_buf, &len, m->cells, (unsigned long)(m->xs*m->ys) ); // Fill the map header if (strlen(name) > MAP_NAME_LENGTH) // It does not hurt to warn that there are maps with name longer than allowed. @@ -180,13 +179,13 @@ strncpy(info.name, name, MAP_NAME_LENGTH); info.xs = MakeShortLE(m->xs); info.ys = MakeShortLE(m->ys); - info.len = MakeLongLE(len); + info.len = MakeLongLE((int32)len); // Append map header then compressed cells at the end of the file fseek(map_cache_fp, header.file_size, SEEK_SET); fwrite(&info, sizeof(struct map_info), 1, map_cache_fp); fwrite(write_buf, 1, len, map_cache_fp); - header.file_size += sizeof(struct map_info) + len; + header.file_size +=(uint32)(sizeof(struct map_info) + len); header.map_count++; aFree(write_buf); Index: vcproj-10/char-server_sql.vcxproj --- vcproj-10/char-server_sql.vcxproj Base (BASE) +++ vcproj-10/char-server_sql.vcxproj Locally Modified (Based On LOCAL) @@ -66,7 +66,7 @@ - Level3 \ No newline at end of file + Level4 \ No newline at end of file EditAndContinue CompileAsC 4800;%(DisableSpecificWarnings) Index: vcproj-10/login-server_sql.vcxproj --- vcproj-10/login-server_sql.vcxproj Base (BASE) +++ vcproj-10/login-server_sql.vcxproj Locally Modified (Based On LOCAL) @@ -64,7 +64,7 @@ - Level3 \ No newline at end of file + Level4 \ No newline at end of file EditAndContinue CompileAsC 4100;4800;%(DisableSpecificWarnings) Index: vcproj-10/map-server_sql.vcxproj --- vcproj-10/map-server_sql.vcxproj Base (BASE) +++ vcproj-10/map-server_sql.vcxproj Locally Modified (Based On LOCAL) @@ -63,7 +63,7 @@ - Level3 + Level4 \ No newline at end of file EditAndContinue CompileAsC 4018;4100;4800;%(DisableSpecificWarnings) Index: vcproj-10/mapcache.vcxproj --- vcproj-10/mapcache.vcxproj Base (BASE) +++ vcproj-10/mapcache.vcxproj Locally Modified (Based On LOCAL) @@ -62,7 +62,7 @@ - Level3 \ No newline at end of file + Level4 \ No newline at end of file EditAndContinue CompileAsC true Index: vcproj-10/mapcache.vcxproj.filters --- vcproj-10/mapcache.vcxproj.filters Base (BASE) +++ vcproj-10/mapcache.vcxproj.filters Locally Modified (Based On LOCAL) @@ -57,6 +57,7 @@ common + \ No newline at end of file