# 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<N; mti++) {
- mt[mti] =
- (1812433253UL * (mt[mti-1] ^ (mt[mti-1] >> 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 <D.o,T> 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: [email protected]) 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 <char id>.L <Msg:0-5>.L <deleteDate>.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 <char id>.L <Msg:0-5>.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 <char id>.L <Msg:1-2>.L
WFIFOHEAD(fd,10);
@@ -3397,7 +3399,8 @@
static void char_delete2_req(int fd, struct char_session_data *sd)
{
// CH: <0827>.W <char id>.L
- int char_id, i;
+ uint32 char_id;
+ int i;
char *data;
time_t delete_date;
@@ -3458,7 +3461,8 @@
{
// CH: <0829>.W <char id>.L <birth date:YYMMDD>.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 <char id>.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 <string.h>
#include <stdlib.h>
-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 <stdlib.h>
#include <string.h>
-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 <stdlib.h>
//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 <errno.h>
+#ifdef __linux__
+ #include <sys/select.h>
+#endif
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
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: [email protected])
- 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 <color> <message>).
@@ -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 <item name/ID> <quantity>
clif_displaymessage(fd, msg_txt(985)); // <identify_flag> <refine> <attribute> <card1> <card2> <card3> <card4>).
@@ -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 <number of levels>).
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 <equip position> <+/- 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 <equip name/ID> <element> <# 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 <skill ID> <skill level> <target>
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 <skill ID> {<skill level>}
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 <skill ID> <target>
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<<tstatus->def_ele) ||
sd->right_weapon.def_ratio_atk_race & (1<<tstatus->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<<tstatus->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 <account_id>.L <login_id1>.L <login_id2>.L <char_id>.L <map_index>.W <x>.W <y>.W <ip>.L <port>.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 <id>.L <type>.B <value>.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 <x>.W <y>.W <type>.W <map name>.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 <skill id>.W <level>.W <sp cost>.W <attack range>.W <upgradable>.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 <skill ID>.W <tick>.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 <skill id>.W <src id>.L <dst id>.L <tick>.L <src delay>.L <dst delay>.L <damage>.W <level>.W <div>.W <type>.B (ZC_NOTIFY_SKILL)
/// 01de <skill id>.W <src id>.L <dst id>.L <tick>.L <src delay>.L <dst delay>.L <damage>.L <level>.W <div>.W <type>.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 <skill id>.W <src id>.L <dst id>.L <tick>.L <src delay>.L <dst delay>.L <x>.W <y>.W <damage>.W <level>.W <div>.W <type>.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 <skill id>.W <skill lv>.W <dst id>.L <src id>.L <result>.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 <skill id>.W <src id>.L <level>.W <x>.W <y>.W <tick>.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 <skill id>.W { <map name>.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 <packet len>.W { <name id>.W { <material id>.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<MAX_SKILL_PRODUCE_DB; i++) {
if (skill_can_produce_mix(sd,skill_produce_db[i].nameid, trigger, 1) &&
- ((skillid > 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; i<MAX_INVENTORY; i++) {
- if (sd->status.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 <skill id>.W <type>.L <level>.W <sp cost>.W <atk range>.W <skill name>.24B <upgradable>.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 <packet len>.W <account id>.L <message>.?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 { <skill id>.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 <char name>.24B <reason>.40B <account name>.24B (ZC_ACK_BAN_GUILD)
/// 0839 <char name>.24B <reason>.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 <packet len>.W <message>.?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 <inviter account id>.L <guild name>.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 <skill id>.W <map name>.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 <guild id>.L <msg1>.60B <msg2>.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 <account id>.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 <account id>.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 <account id>.L <account name>.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 <account id>.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 <req account id>.L <req char id>.L <req char name>.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 <camp A points>.W <camp B points>.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 <account id>.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 <string.h>
-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)
{
// <skill id>,<max lv>,<req id1>,<req lv1>,<req id2>,<req lv2>,<req id3>,<req lv3>,<req id4>,<req lv4>,<req id5>,<req lv5>
- 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 @@
// <merc id>,<skill id>,<skill level>
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 <account_id, name>.
-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); // <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); // <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(<guild id>,"<skill name>") -> <level>
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; v<MAX_SKILLUNITGROUP && sd->ud.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; v<MAX_SKILLUNITGROUP && sd->ud.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; v<MAX_SKILLUNITGROUP && dstsd->ud.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<c; i++) {
if (!skill_blown(src,bl,1,(unit_getdir(src)+4)%8,0x1))
break; //Can't knockback
- skill_area_temp[0] = map_foreachinrange(skill_area_sub, bl, skill_get_splash(skillid, skilllv), BL_CHAR, src, skillid, skilllv, tick, flag|BCT_ENEMY, skill_area_sub_count);
+ skill_area_temp[0] = map_foreachinrange(skill_area_sub, bl, skill_get_splash(skill_id, skill_lv), BL_CHAR, src, skill_id, skill_lv, tick, flag|BCT_ENEMY, skill_area_sub_count);
if (skill_area_temp[0] > 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 (r<per[i][0]) //Self
bl = src;
else if (r<per[i][1]) //Master
@@ -7426,10 +7432,10 @@
bl = map_id2bl(battle_gettarget(src));
if (!bl) bl = src;
- i = skill_calc_heal(src, bl, skillid, 1+rnd()%skilllv, true);
+ i = skill_calc_heal(src, bl, skill_id, 1+rnd()%skill_lv, true);
//Eh? why double skill packet?
clif_skill_nodamage(src,bl,AL_HEAL,i,1);
- clif_skill_nodamage(src,bl,skillid,i,1);
+ clif_skill_nodamage(src,bl,skill_id,i,1);
status_heal(bl, i, 0, 0);
}
break;
@@ -7440,10 +7446,10 @@
case HLIF_CHANGE:
case MH_ANGRIFFS_MODUS:
case MH_GOLDENE_FERSE:
- 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 (hd)
- skill_blockhomun_start(hd, skillid, skill_get_time2(skillid,skilllv));
+ skill_blockhomun_start(hd, skill_id, skill_get_time2(skill_id,skill_lv));
break;
case NPC_DRAGONFEAR:
@@ -7451,7 +7457,7 @@
const enum sc_type sc[] = { SC_STUN, SC_SILENCE, SC_CONFUSION, SC_BLEEDING };
int j;
j = i = rnd()%ARRAYLENGTH(sc);
- while (!sc_start(bl,sc[i],100,skilllv,skill_get_time2(skillid,i+1))) {
+ while (!sc_start(bl,sc[i],100,skill_lv,skill_get_time2(skill_id,i+1))) {
i++;
if (i == ARRAYLENGTH(sc))
i = 0;
@@ -7471,89 +7477,89 @@
case NPC_SLOWCAST:
case NPC_WIDEHELLDIGNITY:
if (flag&1)
- sc_start(bl,type,100,skilllv,skill_get_time2(skillid,skilllv));
+ sc_start(bl,type,100,skill_lv,skill_get_time2(skill_id,skill_lv));
else {
skill_area_temp[2] = 0; //For SD_PREAMBLE
- 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),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 NPC_WIDESOULDRAIN:
if (flag&1)
- status_percent_damage(src,bl,0,((skilllv-1)%5+1)*20,false);
+ status_percent_damage(src,bl,0,((skill_lv-1)%5+1)*20,false);
else {
skill_area_temp[2] = 0; //For SD_PREAMBLE
- 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),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 ALL_PARTYFLEE:
if (sd && !(flag&1)) {
if (!sd->status.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; i<qty[skilllv - 1]; i++) { //easy way
- md = mob_once_spawn_sub(src, src->m, src->x, src->y, status_get_name(src), summons[skilllv - 1], "", SZ_SMALL, AI_ATTACK);
+ for (i=0; i<qty[skill_lv - 1]; i++) { //easy way
+ md = mob_once_spawn_sub(src, src->m, 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; i<MAX_SKILLUNITGROUP && ud->skillunit[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; i<MAX_SKILLUNITGROUP && sd->ud.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 <string.h>
-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 <string.h>
-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; i<AREA_SIZE; i++) {
- if (!map_getcell(bl->m,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; i<AREA_SIZE; i++) {
- if (!map_getcell(bl->m,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 @@
</AdditionalOptions>
<PrecompiledHeader>
</PrecompiledHeader>
- <WarningLevel>Level3</WarningLevel>
\ No newline at end of file
+ <WarningLevel>Level4</WarningLevel>
\ No newline at end of file
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
<CompileAs>CompileAsC</CompileAs>
<DisableSpecificWarnings>4800;%(DisableSpecificWarnings)</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 @@
</AdditionalOptions>
<PrecompiledHeader>
</PrecompiledHeader>
- <WarningLevel>Level3</WarningLevel>
\ No newline at end of file
+ <WarningLevel>Level4</WarningLevel>
\ No newline at end of file
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
<CompileAs>CompileAsC</CompileAs>
<DisableSpecificWarnings>4100;4800;%(DisableSpecificWarnings)</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 @@
</AdditionalOptions>
<PrecompiledHeader>
</PrecompiledHeader>
- <WarningLevel>Level3</WarningLevel>
+ <WarningLevel>Level4</WarningLevel>
\ No newline at end of file
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
<CompileAs>CompileAsC</CompileAs>
<DisableSpecificWarnings>4018;4100;4800;%(DisableSpecificWarnings)</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 @@
</AdditionalOptions>
<PrecompiledHeader>
</PrecompiledHeader>
- <WarningLevel>Level3</WarningLevel>
\ No newline at end of file
+ <WarningLevel>Level4</WarningLevel>
\ No newline at end of file
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
<CompileAs>CompileAsC</CompileAs>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
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 @@
<ClInclude Include="..\src\common\winapi.h">
<Filter>common</Filter>
</ClInclude>
+ <ClInclude Include="..\src\config\renewal.h" />
\ No newline at end of file
</ItemGroup>
<ItemGroup>
<Filter Include="common">