summaryrefslogtreecommitdiff
path: root/servergreps/hercules/20150226
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2016-04-19 14:13:38 +0300
committerAndrei Karas <akaras@inbox.ru>2016-04-19 14:31:48 +0300
commita3a1410376877d7d30d206ba3cba44a6e07679c6 (patch)
treef64cb9bf19852dc0ce7c0198bf9c28ba4224c74d /servergreps/hercules/20150226
parent214c08d1bd659aff9f4d886c9e095140f6e890fe (diff)
downloadevol-tools-a3a1410376877d7d30d206ba3cba44a6e07679c6.tar.gz
evol-tools-a3a1410376877d7d30d206ba3cba44a6e07679c6.tar.bz2
evol-tools-a3a1410376877d7d30d206ba3cba44a6e07679c6.tar.xz
evol-tools-a3a1410376877d7d30d206ba3cba44a6e07679c6.zip
servergreps: Remove temp src files added before into git
Diffstat (limited to 'servergreps/hercules/20150226')
-rw-r--r--servergreps/hercules/20150226/serverpackets.txt3
-rw-r--r--servergreps/hercules/20150226/src/char.c16371
-rw-r--r--servergreps/hercules/20150226/src/clif.c46996
-rw-r--r--servergreps/hercules/20150226/src/login.c9118
4 files changed, 0 insertions, 72488 deletions
diff --git a/servergreps/hercules/20150226/serverpackets.txt b/servergreps/hercules/20150226/serverpackets.txt
index 24182a1..2f11fd1 100644
--- a/servergreps/hercules/20150226/serverpackets.txt
+++ b/servergreps/hercules/20150226/serverpackets.txt
@@ -1,5 +1,4 @@
j
-69 client name: SMSG_LOGIN_DATA
6a client name: SMSG_LOGIN_ERROR
6b client name: SMSG_CHAR_LOGIN
6c client name: SMSG_CHAR_LOGIN_ERROR
@@ -175,7 +174,6 @@ fb client name: SMSG_PARTY_INFO
1d4 client name: SMSG_NPC_STR_INPUT
1d6 client name: SMSG_MAP_TYPE
1d7 client name: SMSG_BEING_CHANGE_LOOKS2
-1dc client name: SMSG_LOGIN_CODING_KEY
1de client name: SMSG_SKILL_DAMAGE
1e0 client name: SMSG_ADMIN_GET_LOGIN_ACK
1e1 client name: SMSG_SPIRIT_BALL_SINGLE
@@ -323,7 +321,6 @@ fb client name: SMSG_PARTY_INFO
837 client name: SMSG_SEARCHSTORE_SEARCH_FAILED
83a client name: SMSG_SEARCHSTORE_OPEN
83d client name: SMSG_SEARCHSTORE_CLICK_ACK
-83e client name: SMSG_LOGIN_ERROR2
840 client name: SMSG_MAP_NOT_FOUND
845 client name: SMSG_NPC_CASH_POINTS
849 client name: SMSG_NPC_CASH_BUY
diff --git a/servergreps/hercules/20150226/src/char.c b/servergreps/hercules/20150226/src/char.c
deleted file mode 100644
index 793ea73..0000000
--- a/servergreps/hercules/20150226/src/char.c
+++ /dev/null
@@ -1,16371 +0,0 @@
-# 1 "../../../server-code/src/char/char.c"
-# 1 "<built-in>"
-# 1 "<command-line>"
-# 1 "/usr/include/stdc-predef.h" 1 3 4
-# 1 "<command-line>" 2
-# 1 "../../../server-code/src/char/char.c"
-# 23 "../../../server-code/src/char/char.c"
-# 1 "../../../server-code/src/config/core.h" 1
-# 90 "../../../server-code/src/config/core.h"
-# 1 "../../../server-code/src/config/./renewal.h" 1
-# 91 "../../../server-code/src/config/core.h" 2
-# 1 "../../../server-code/src/config/./secure.h" 1
-# 92 "../../../server-code/src/config/core.h" 2
-# 1 "../../../server-code/src/config/./classes/general.h" 1
-# 93 "../../../server-code/src/config/core.h" 2
-
-
-
-
-# 1 "../../../server-code/src/config/./const.h" 1
-# 62 "../../../server-code/src/config/./const.h"
- typedef short defType;
-# 98 "../../../server-code/src/config/core.h" 2
-# 24 "../../../server-code/src/char/char.c" 2
-# 1 "../../../server-code/src/char/char.h" 1
-# 24 "../../../server-code/src/char/char.h"
-# 1 "../../../server-code/src/common/hercules.h" 1
-# 24 "../../../server-code/src/common/hercules.h"
-# 1 "../../../server-code/src/common/cbasetypes.h" 1
-# 116 "../../../server-code/src/common/cbasetypes.h"
-# 1 "/usr/include/inttypes.h" 1 3 4
-# 25 "/usr/include/inttypes.h" 3 4
-# 1 "/usr/include/features.h" 1 3 4
-# 361 "/usr/include/features.h" 3 4
-# 1 "/usr/include/x86_64-linux-gnu/sys/cdefs.h" 1 3 4
-# 410 "/usr/include/x86_64-linux-gnu/sys/cdefs.h" 3 4
-# 1 "/usr/include/x86_64-linux-gnu/bits/wordsize.h" 1 3 4
-# 411 "/usr/include/x86_64-linux-gnu/sys/cdefs.h" 2 3 4
-# 362 "/usr/include/features.h" 2 3 4
-# 385 "/usr/include/features.h" 3 4
-# 1 "/usr/include/x86_64-linux-gnu/gnu/stubs.h" 1 3 4
-# 10 "/usr/include/x86_64-linux-gnu/gnu/stubs.h" 3 4
-# 1 "/usr/include/x86_64-linux-gnu/gnu/stubs-64.h" 1 3 4
-# 11 "/usr/include/x86_64-linux-gnu/gnu/stubs.h" 2 3 4
-# 386 "/usr/include/features.h" 2 3 4
-# 26 "/usr/include/inttypes.h" 2 3 4
-
-# 1 "/usr/lib/gcc/x86_64-linux-gnu/5/include/stdint.h" 1 3 4
-# 9 "/usr/lib/gcc/x86_64-linux-gnu/5/include/stdint.h" 3 4
-# 1 "/usr/include/stdint.h" 1 3 4
-# 26 "/usr/include/stdint.h" 3 4
-# 1 "/usr/include/x86_64-linux-gnu/bits/wchar.h" 1 3 4
-# 27 "/usr/include/stdint.h" 2 3 4
-# 1 "/usr/include/x86_64-linux-gnu/bits/wordsize.h" 1 3 4
-# 28 "/usr/include/stdint.h" 2 3 4
-# 36 "/usr/include/stdint.h" 3 4
-
-# 36 "/usr/include/stdint.h" 3 4
-typedef signed char int8_t;
-typedef short int int16_t;
-typedef int int32_t;
-
-typedef long int int64_t;
-
-
-
-
-
-
-
-typedef unsigned char uint8_t;
-typedef unsigned short int uint16_t;
-
-typedef unsigned int uint32_t;
-
-
-
-typedef unsigned long int uint64_t;
-# 65 "/usr/include/stdint.h" 3 4
-typedef signed char int_least8_t;
-typedef short int int_least16_t;
-typedef int int_least32_t;
-
-typedef long int int_least64_t;
-
-
-
-
-
-
-typedef unsigned char uint_least8_t;
-typedef unsigned short int uint_least16_t;
-typedef unsigned int uint_least32_t;
-
-typedef unsigned long int uint_least64_t;
-# 90 "/usr/include/stdint.h" 3 4
-typedef signed char int_fast8_t;
-
-typedef long int int_fast16_t;
-typedef long int int_fast32_t;
-typedef long int int_fast64_t;
-# 103 "/usr/include/stdint.h" 3 4
-typedef unsigned char uint_fast8_t;
-
-typedef unsigned long int uint_fast16_t;
-typedef unsigned long int uint_fast32_t;
-typedef unsigned long int uint_fast64_t;
-# 119 "/usr/include/stdint.h" 3 4
-typedef long int intptr_t;
-
-
-typedef unsigned long int uintptr_t;
-# 134 "/usr/include/stdint.h" 3 4
-typedef long int intmax_t;
-typedef unsigned long int uintmax_t;
-# 10 "/usr/lib/gcc/x86_64-linux-gnu/5/include/stdint.h" 2 3 4
-# 28 "/usr/include/inttypes.h" 2 3 4
-
-
-
-
-
-
-typedef int __gwchar_t;
-# 266 "/usr/include/inttypes.h" 3 4
-
-
-
-
-
-typedef struct
- {
- long int quot;
- long int rem;
- } imaxdiv_t;
-# 290 "/usr/include/inttypes.h" 3 4
-extern intmax_t imaxabs (intmax_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__));
-
-
-extern imaxdiv_t imaxdiv (intmax_t __numer, intmax_t __denom)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__));
-
-
-extern intmax_t strtoimax (const char *__restrict __nptr,
- char **__restrict __endptr, int __base) __attribute__ ((__nothrow__ , __leaf__));
-
-
-extern uintmax_t strtoumax (const char *__restrict __nptr,
- char ** __restrict __endptr, int __base) __attribute__ ((__nothrow__ , __leaf__));
-
-
-extern intmax_t wcstoimax (const __gwchar_t *__restrict __nptr,
- __gwchar_t **__restrict __endptr, int __base)
- __attribute__ ((__nothrow__ , __leaf__));
-
-
-extern uintmax_t wcstoumax (const __gwchar_t *__restrict __nptr,
- __gwchar_t ** __restrict __endptr, int __base)
- __attribute__ ((__nothrow__ , __leaf__));
-# 432 "/usr/include/inttypes.h" 3 4
-
-# 117 "../../../server-code/src/common/cbasetypes.h" 2
-
-# 1 "/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/limits.h" 1 3 4
-# 34 "/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/limits.h" 3 4
-# 1 "/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/syslimits.h" 1 3 4
-
-
-
-
-
-
-# 1 "/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/limits.h" 1 3 4
-# 168 "/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/limits.h" 3 4
-# 1 "/usr/include/limits.h" 1 3 4
-# 143 "/usr/include/limits.h" 3 4
-# 1 "/usr/include/x86_64-linux-gnu/bits/posix1_lim.h" 1 3 4
-# 160 "/usr/include/x86_64-linux-gnu/bits/posix1_lim.h" 3 4
-# 1 "/usr/include/x86_64-linux-gnu/bits/local_lim.h" 1 3 4
-# 38 "/usr/include/x86_64-linux-gnu/bits/local_lim.h" 3 4
-# 1 "/usr/include/linux/limits.h" 1 3 4
-# 39 "/usr/include/x86_64-linux-gnu/bits/local_lim.h" 2 3 4
-# 161 "/usr/include/x86_64-linux-gnu/bits/posix1_lim.h" 2 3 4
-# 144 "/usr/include/limits.h" 2 3 4
-
-
-
-# 1 "/usr/include/x86_64-linux-gnu/bits/posix2_lim.h" 1 3 4
-# 148 "/usr/include/limits.h" 2 3 4
-# 169 "/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/limits.h" 2 3 4
-# 8 "/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/syslimits.h" 2 3 4
-# 35 "/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/limits.h" 2 3 4
-# 119 "../../../server-code/src/common/cbasetypes.h" 2
-# 1 "/usr/include/time.h" 1 3 4
-# 29 "/usr/include/time.h" 3 4
-
-
-
-
-
-
-
-
-# 1 "/usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h" 1 3 4
-# 216 "/usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h" 3 4
-typedef long unsigned int size_t;
-# 38 "/usr/include/time.h" 2 3 4
-
-
-
-# 1 "/usr/include/x86_64-linux-gnu/bits/time.h" 1 3 4
-# 42 "/usr/include/time.h" 2 3 4
-# 55 "/usr/include/time.h" 3 4
-# 1 "/usr/include/x86_64-linux-gnu/bits/types.h" 1 3 4
-# 27 "/usr/include/x86_64-linux-gnu/bits/types.h" 3 4
-# 1 "/usr/include/x86_64-linux-gnu/bits/wordsize.h" 1 3 4
-# 28 "/usr/include/x86_64-linux-gnu/bits/types.h" 2 3 4
-
-
-typedef unsigned char __u_char;
-typedef unsigned short int __u_short;
-typedef unsigned int __u_int;
-typedef unsigned long int __u_long;
-
-
-typedef signed char __int8_t;
-typedef unsigned char __uint8_t;
-typedef signed short int __int16_t;
-typedef unsigned short int __uint16_t;
-typedef signed int __int32_t;
-typedef unsigned int __uint32_t;
-
-typedef signed long int __int64_t;
-typedef unsigned long int __uint64_t;
-
-
-
-
-
-
-
-typedef long int __quad_t;
-typedef unsigned long int __u_quad_t;
-# 121 "/usr/include/x86_64-linux-gnu/bits/types.h" 3 4
-# 1 "/usr/include/x86_64-linux-gnu/bits/typesizes.h" 1 3 4
-# 122 "/usr/include/x86_64-linux-gnu/bits/types.h" 2 3 4
-
-
-typedef unsigned long int __dev_t;
-typedef unsigned int __uid_t;
-typedef unsigned int __gid_t;
-typedef unsigned long int __ino_t;
-typedef unsigned long int __ino64_t;
-typedef unsigned int __mode_t;
-typedef unsigned long int __nlink_t;
-typedef long int __off_t;
-typedef long int __off64_t;
-typedef int __pid_t;
-typedef struct { int __val[2]; } __fsid_t;
-typedef long int __clock_t;
-typedef unsigned long int __rlim_t;
-typedef unsigned long int __rlim64_t;
-typedef unsigned int __id_t;
-typedef long int __time_t;
-typedef unsigned int __useconds_t;
-typedef long int __suseconds_t;
-
-typedef int __daddr_t;
-typedef int __key_t;
-
-
-typedef int __clockid_t;
-
-
-typedef void * __timer_t;
-
-
-typedef long int __blksize_t;
-
-
-
-
-typedef long int __blkcnt_t;
-typedef long int __blkcnt64_t;
-
-
-typedef unsigned long int __fsblkcnt_t;
-typedef unsigned long int __fsblkcnt64_t;
-
-
-typedef unsigned long int __fsfilcnt_t;
-typedef unsigned long int __fsfilcnt64_t;
-
-
-typedef long int __fsword_t;
-
-typedef long int __ssize_t;
-
-
-typedef long int __syscall_slong_t;
-
-typedef unsigned long int __syscall_ulong_t;
-
-
-
-typedef __off64_t __loff_t;
-typedef __quad_t *__qaddr_t;
-typedef char *__caddr_t;
-
-
-typedef long int __intptr_t;
-
-
-typedef unsigned int __socklen_t;
-# 56 "/usr/include/time.h" 2 3 4
-
-
-
-typedef __clock_t clock_t;
-
-
-
-# 73 "/usr/include/time.h" 3 4
-
-
-typedef __time_t time_t;
-
-
-
-# 91 "/usr/include/time.h" 3 4
-typedef __clockid_t clockid_t;
-# 103 "/usr/include/time.h" 3 4
-typedef __timer_t timer_t;
-# 120 "/usr/include/time.h" 3 4
-struct timespec
- {
- __time_t tv_sec;
- __syscall_slong_t tv_nsec;
- };
-
-
-
-
-
-
-
-
-struct tm
-{
- int tm_sec;
- int tm_min;
- int tm_hour;
- int tm_mday;
- int tm_mon;
- int tm_year;
- int tm_wday;
- int tm_yday;
- int tm_isdst;
-
-
- long int tm_gmtoff;
- const char *tm_zone;
-
-
-
-
-};
-
-
-
-
-
-
-
-
-struct itimerspec
- {
- struct timespec it_interval;
- struct timespec it_value;
- };
-
-
-struct sigevent;
-
-
-
-
-
-typedef __pid_t pid_t;
-# 186 "/usr/include/time.h" 3 4
-
-
-
-extern clock_t clock (void) __attribute__ ((__nothrow__ , __leaf__));
-
-
-extern time_t time (time_t *__timer) __attribute__ ((__nothrow__ , __leaf__));
-
-
-extern double difftime (time_t __time1, time_t __time0)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__));
-
-
-extern time_t mktime (struct tm *__tp) __attribute__ ((__nothrow__ , __leaf__));
-
-
-
-
-
-extern size_t strftime (char *__restrict __s, size_t __maxsize,
- const char *__restrict __format,
- const struct tm *__restrict __tp) __attribute__ ((__nothrow__ , __leaf__));
-
-# 221 "/usr/include/time.h" 3 4
-# 1 "/usr/include/xlocale.h" 1 3 4
-# 27 "/usr/include/xlocale.h" 3 4
-typedef struct __locale_struct
-{
-
- struct __locale_data *__locales[13];
-
-
- const unsigned short int *__ctype_b;
- const int *__ctype_tolower;
- const int *__ctype_toupper;
-
-
- const char *__names[13];
-} *__locale_t;
-
-
-typedef __locale_t locale_t;
-# 222 "/usr/include/time.h" 2 3 4
-
-extern size_t strftime_l (char *__restrict __s, size_t __maxsize,
- const char *__restrict __format,
- const struct tm *__restrict __tp,
- __locale_t __loc) __attribute__ ((__nothrow__ , __leaf__));
-# 236 "/usr/include/time.h" 3 4
-
-
-
-extern struct tm *gmtime (const time_t *__timer) __attribute__ ((__nothrow__ , __leaf__));
-
-
-
-extern struct tm *localtime (const time_t *__timer) __attribute__ ((__nothrow__ , __leaf__));
-
-
-
-
-
-extern struct tm *gmtime_r (const time_t *__restrict __timer,
- struct tm *__restrict __tp) __attribute__ ((__nothrow__ , __leaf__));
-
-
-
-extern struct tm *localtime_r (const time_t *__restrict __timer,
- struct tm *__restrict __tp) __attribute__ ((__nothrow__ , __leaf__));
-
-
-
-
-
-extern char *asctime (const struct tm *__tp) __attribute__ ((__nothrow__ , __leaf__));
-
-
-extern char *ctime (const time_t *__timer) __attribute__ ((__nothrow__ , __leaf__));
-
-
-
-
-
-
-
-extern char *asctime_r (const struct tm *__restrict __tp,
- char *__restrict __buf) __attribute__ ((__nothrow__ , __leaf__));
-
-
-extern char *ctime_r (const time_t *__restrict __timer,
- char *__restrict __buf) __attribute__ ((__nothrow__ , __leaf__));
-
-
-
-
-extern char *__tzname[2];
-extern int __daylight;
-extern long int __timezone;
-
-
-
-
-extern char *tzname[2];
-
-
-
-extern void tzset (void) __attribute__ ((__nothrow__ , __leaf__));
-
-
-
-extern int daylight;
-extern long int timezone;
-
-
-
-
-
-extern int stime (const time_t *__when) __attribute__ ((__nothrow__ , __leaf__));
-# 319 "/usr/include/time.h" 3 4
-extern time_t timegm (struct tm *__tp) __attribute__ ((__nothrow__ , __leaf__));
-
-
-extern time_t timelocal (struct tm *__tp) __attribute__ ((__nothrow__ , __leaf__));
-
-
-extern int dysize (int __year) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__));
-# 334 "/usr/include/time.h" 3 4
-extern int nanosleep (const struct timespec *__requested_time,
- struct timespec *__remaining);
-
-
-
-extern int clock_getres (clockid_t __clock_id, struct timespec *__res) __attribute__ ((__nothrow__ , __leaf__));
-
-
-extern int clock_gettime (clockid_t __clock_id, struct timespec *__tp) __attribute__ ((__nothrow__ , __leaf__));
-
-
-extern int clock_settime (clockid_t __clock_id, const struct timespec *__tp)
- __attribute__ ((__nothrow__ , __leaf__));
-
-
-
-
-
-
-extern int clock_nanosleep (clockid_t __clock_id, int __flags,
- const struct timespec *__req,
- struct timespec *__rem);
-
-
-extern int clock_getcpuclockid (pid_t __pid, clockid_t *__clock_id) __attribute__ ((__nothrow__ , __leaf__));
-
-
-
-
-extern int timer_create (clockid_t __clock_id,
- struct sigevent *__restrict __evp,
- timer_t *__restrict __timerid) __attribute__ ((__nothrow__ , __leaf__));
-
-
-extern int timer_delete (timer_t __timerid) __attribute__ ((__nothrow__ , __leaf__));
-
-
-extern int timer_settime (timer_t __timerid, int __flags,
- const struct itimerspec *__restrict __value,
- struct itimerspec *__restrict __ovalue) __attribute__ ((__nothrow__ , __leaf__));
-
-
-extern int timer_gettime (timer_t __timerid, struct itimerspec *__value)
- __attribute__ ((__nothrow__ , __leaf__));
-
-
-extern int timer_getoverrun (timer_t __timerid) __attribute__ ((__nothrow__ , __leaf__));
-
-
-
-
-
-extern int timespec_get (struct timespec *__ts, int __base)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
-# 430 "/usr/include/time.h" 3 4
-
-# 120 "../../../server-code/src/common/cbasetypes.h" 2
-# 140 "../../../server-code/src/common/cbasetypes.h"
-
-# 140 "../../../server-code/src/common/cbasetypes.h"
-typedef int8_t int8;
-typedef int16_t int16;
-typedef int32_t int32;
-typedef int64_t int64;
-
-typedef int8_t sint8;
-typedef int16_t sint16;
-typedef int32_t sint32;
-typedef int64_t sint64;
-
-typedef uint8_t uint8;
-typedef uint16_t uint16;
-typedef uint32_t uint32;
-typedef uint64_t uint64;
-# 196 "../../../server-code/src/common/cbasetypes.h"
-typedef long int ppint;
-typedef long int ppint8;
-typedef long int ppint16;
-typedef long int ppint32;
-
-typedef unsigned long int ppuint;
-typedef unsigned long int ppuint8;
-typedef unsigned long int ppuint16;
-typedef unsigned long int ppuint32;
-
-
-
-
-
-# 1 "/usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h" 1 3 4
-# 149 "/usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h" 3 4
-
-# 149 "/usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h" 3 4
-typedef long int ptrdiff_t;
-# 328 "/usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h" 3 4
-typedef int wchar_t;
-# 426 "/usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h" 3 4
-typedef struct {
- long long __max_align_ll __attribute__((__aligned__(__alignof__(long long))));
- long double __max_align_ld __attribute__((__aligned__(__alignof__(long double))));
-} max_align_t;
-# 211 "../../../server-code/src/common/cbasetypes.h" 2
-# 227 "../../../server-code/src/common/cbasetypes.h"
-
-# 227 "../../../server-code/src/common/cbasetypes.h"
-typedef intptr_t intptr;
-typedef uintptr_t uintptr;
-
-
-
-
-
-
-
- typedef int64 sysint;
- typedef uint64 usysint;
-# 305 "../../../server-code/src/common/cbasetypes.h"
-# 1 "/usr/lib/gcc/x86_64-linux-gnu/5/include/stdbool.h" 1 3 4
-# 306 "../../../server-code/src/common/cbasetypes.h" 2
-# 395 "../../../server-code/src/common/cbasetypes.h"
-# 1 "/usr/include/ctype.h" 1 3 4
-# 28 "/usr/include/ctype.h" 3 4
-
-# 39 "/usr/include/ctype.h" 3 4
-# 1 "/usr/include/endian.h" 1 3 4
-# 36 "/usr/include/endian.h" 3 4
-# 1 "/usr/include/x86_64-linux-gnu/bits/endian.h" 1 3 4
-# 37 "/usr/include/endian.h" 2 3 4
-# 60 "/usr/include/endian.h" 3 4
-# 1 "/usr/include/x86_64-linux-gnu/bits/byteswap.h" 1 3 4
-# 28 "/usr/include/x86_64-linux-gnu/bits/byteswap.h" 3 4
-# 1 "/usr/include/x86_64-linux-gnu/bits/wordsize.h" 1 3 4
-# 29 "/usr/include/x86_64-linux-gnu/bits/byteswap.h" 2 3 4
-
-
-
-
-
-
-# 1 "/usr/include/x86_64-linux-gnu/bits/byteswap-16.h" 1 3 4
-# 36 "/usr/include/x86_64-linux-gnu/bits/byteswap.h" 2 3 4
-# 44 "/usr/include/x86_64-linux-gnu/bits/byteswap.h" 3 4
-
-# 44 "/usr/include/x86_64-linux-gnu/bits/byteswap.h" 3 4
-static __inline unsigned int
-__bswap_32 (unsigned int __bsx)
-{
- return __builtin_bswap32 (__bsx);
-}
-# 108 "/usr/include/x86_64-linux-gnu/bits/byteswap.h" 3 4
-static __inline __uint64_t
-__bswap_64 (__uint64_t __bsx)
-{
- return __builtin_bswap64 (__bsx);
-}
-# 61 "/usr/include/endian.h" 2 3 4
-# 40 "/usr/include/ctype.h" 2 3 4
-
-
-
-
-
-
-enum
-{
- _ISupper = ((0) < 8 ? ((1 << (0)) << 8) : ((1 << (0)) >> 8)),
- _ISlower = ((1) < 8 ? ((1 << (1)) << 8) : ((1 << (1)) >> 8)),
- _ISalpha = ((2) < 8 ? ((1 << (2)) << 8) : ((1 << (2)) >> 8)),
- _ISdigit = ((3) < 8 ? ((1 << (3)) << 8) : ((1 << (3)) >> 8)),
- _ISxdigit = ((4) < 8 ? ((1 << (4)) << 8) : ((1 << (4)) >> 8)),
- _ISspace = ((5) < 8 ? ((1 << (5)) << 8) : ((1 << (5)) >> 8)),
- _ISprint = ((6) < 8 ? ((1 << (6)) << 8) : ((1 << (6)) >> 8)),
- _ISgraph = ((7) < 8 ? ((1 << (7)) << 8) : ((1 << (7)) >> 8)),
- _ISblank = ((8) < 8 ? ((1 << (8)) << 8) : ((1 << (8)) >> 8)),
- _IScntrl = ((9) < 8 ? ((1 << (9)) << 8) : ((1 << (9)) >> 8)),
- _ISpunct = ((10) < 8 ? ((1 << (10)) << 8) : ((1 << (10)) >> 8)),
- _ISalnum = ((11) < 8 ? ((1 << (11)) << 8) : ((1 << (11)) >> 8))
-};
-# 79 "/usr/include/ctype.h" 3 4
-extern const unsigned short int **__ctype_b_loc (void)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__));
-extern const __int32_t **__ctype_tolower_loc (void)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__));
-extern const __int32_t **__ctype_toupper_loc (void)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__));
-# 104 "/usr/include/ctype.h" 3 4
-
-
-
-
-
-
-extern int isalnum (int) __attribute__ ((__nothrow__ , __leaf__));
-extern int isalpha (int) __attribute__ ((__nothrow__ , __leaf__));
-extern int iscntrl (int) __attribute__ ((__nothrow__ , __leaf__));
-extern int isdigit (int) __attribute__ ((__nothrow__ , __leaf__));
-extern int islower (int) __attribute__ ((__nothrow__ , __leaf__));
-extern int isgraph (int) __attribute__ ((__nothrow__ , __leaf__));
-extern int isprint (int) __attribute__ ((__nothrow__ , __leaf__));
-extern int ispunct (int) __attribute__ ((__nothrow__ , __leaf__));
-extern int isspace (int) __attribute__ ((__nothrow__ , __leaf__));
-extern int isupper (int) __attribute__ ((__nothrow__ , __leaf__));
-extern int isxdigit (int) __attribute__ ((__nothrow__ , __leaf__));
-
-
-
-extern int tolower (int __c) __attribute__ ((__nothrow__ , __leaf__));
-
-
-extern int toupper (int __c) __attribute__ ((__nothrow__ , __leaf__));
-
-
-
-
-
-
-
-
-extern int isblank (int) __attribute__ ((__nothrow__ , __leaf__));
-
-
-# 150 "/usr/include/ctype.h" 3 4
-extern int isascii (int __c) __attribute__ ((__nothrow__ , __leaf__));
-
-
-
-extern int toascii (int __c) __attribute__ ((__nothrow__ , __leaf__));
-
-
-
-extern int _toupper (int) __attribute__ ((__nothrow__ , __leaf__));
-extern int _tolower (int) __attribute__ ((__nothrow__ , __leaf__));
-# 271 "/usr/include/ctype.h" 3 4
-extern int isalnum_l (int, __locale_t) __attribute__ ((__nothrow__ , __leaf__));
-extern int isalpha_l (int, __locale_t) __attribute__ ((__nothrow__ , __leaf__));
-extern int iscntrl_l (int, __locale_t) __attribute__ ((__nothrow__ , __leaf__));
-extern int isdigit_l (int, __locale_t) __attribute__ ((__nothrow__ , __leaf__));
-extern int islower_l (int, __locale_t) __attribute__ ((__nothrow__ , __leaf__));
-extern int isgraph_l (int, __locale_t) __attribute__ ((__nothrow__ , __leaf__));
-extern int isprint_l (int, __locale_t) __attribute__ ((__nothrow__ , __leaf__));
-extern int ispunct_l (int, __locale_t) __attribute__ ((__nothrow__ , __leaf__));
-extern int isspace_l (int, __locale_t) __attribute__ ((__nothrow__ , __leaf__));
-extern int isupper_l (int, __locale_t) __attribute__ ((__nothrow__ , __leaf__));
-extern int isxdigit_l (int, __locale_t) __attribute__ ((__nothrow__ , __leaf__));
-
-extern int isblank_l (int, __locale_t) __attribute__ ((__nothrow__ , __leaf__));
-
-
-
-extern int __tolower_l (int __c, __locale_t __l) __attribute__ ((__nothrow__ , __leaf__));
-extern int tolower_l (int __c, __locale_t __l) __attribute__ ((__nothrow__ , __leaf__));
-
-
-extern int __toupper_l (int __c, __locale_t __l) __attribute__ ((__nothrow__ , __leaf__));
-extern int toupper_l (int __c, __locale_t __l) __attribute__ ((__nothrow__ , __leaf__));
-# 347 "/usr/include/ctype.h" 3 4
-
-# 396 "../../../server-code/src/common/cbasetypes.h" 2
-# 417 "../../../server-code/src/common/cbasetypes.h"
-# 1 "/usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h" 1 3 4
-# 40 "/usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h" 3 4
-typedef __builtin_va_list __gnuc_va_list;
-# 98 "/usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h" 3 4
-typedef __gnuc_va_list va_list;
-# 418 "../../../server-code/src/common/cbasetypes.h" 2
-# 25 "../../../server-code/src/common/hercules.h" 2
-# 25 "../../../server-code/src/char/char.h" 2
-# 1 "../../../server-code/src/common/core.h" 1
-# 25 "../../../server-code/src/common/core.h"
-# 1 "../../../server-code/src/common/db.h" 1
-# 90 "../../../server-code/src/common/db.h"
-
-# 90 "../../../server-code/src/common/db.h"
-enum DBReleaseOption {
- DB_RELEASE_NOTHING = 0x0,
- DB_RELEASE_KEY = 0x1,
- DB_RELEASE_DATA = 0x2,
- DB_RELEASE_BOTH = DB_RELEASE_KEY|DB_RELEASE_DATA,
-};
-# 117 "../../../server-code/src/common/db.h"
-enum DBType {
- DB_INT,
- DB_UINT,
- DB_STRING,
- DB_ISTRING,
- DB_INT64,
- DB_UINT64,
-};
-# 148 "../../../server-code/src/common/db.h"
-enum DBOptions {
- DB_OPT_BASE = 0x00,
- DB_OPT_DUP_KEY = 0x01,
- DB_OPT_RELEASE_KEY = 0x02,
- DB_OPT_RELEASE_DATA = 0x04,
- DB_OPT_RELEASE_BOTH = DB_OPT_RELEASE_KEY|DB_OPT_RELEASE_DATA,
- DB_OPT_ALLOW_NULL_KEY = 0x08,
- DB_OPT_ALLOW_NULL_DATA = 0x10,
-};
-# 169 "../../../server-code/src/common/db.h"
-union DBKey {
- int i;
- unsigned int ui;
- const char *str;
- char *mutstr;
- int64 i64;
- uint64 ui64;
-};
-# 186 "../../../server-code/src/common/db.h"
-enum DBDataType {
- DB_DATA_INT,
- DB_DATA_UINT,
- DB_DATA_PTR,
-};
-# 201 "../../../server-code/src/common/db.h"
-struct DBData {
- enum DBDataType type;
- union {
- int i;
- unsigned int ui;
- void *ptr;
- } u;
-};
-# 220 "../../../server-code/src/common/db.h"
-typedef struct DBData (*DBCreateData)(union DBKey key, va_list args);
-# 237 "../../../server-code/src/common/db.h"
-typedef int (*DBApply)(union DBKey key, struct DBData *data, va_list args);
-# 250 "../../../server-code/src/common/db.h"
-typedef int (*DBMatcher)(union DBKey key, struct DBData data, va_list args);
-# 264 "../../../server-code/src/common/db.h"
-typedef int (*DBComparator)(union DBKey key1, union DBKey key2, unsigned short maxlen);
-# 276 "../../../server-code/src/common/db.h"
-typedef uint64 (*DBHasher)(union DBKey key, unsigned short maxlen);
-# 290 "../../../server-code/src/common/db.h"
-typedef void (*DBReleaser)(union DBKey key, struct DBData data, enum DBReleaseOption which);
-# 304 "../../../server-code/src/common/db.h"
-struct DBIterator {
-# 314 "../../../server-code/src/common/db.h"
- struct DBData *(*first)(struct DBIterator *self, union DBKey *out_key);
-# 325 "../../../server-code/src/common/db.h"
- struct DBData *(*last)(struct DBIterator *self, union DBKey *out_key);
-# 336 "../../../server-code/src/common/db.h"
- struct DBData *(*next)(struct DBIterator *self, union DBKey *out_key);
-# 347 "../../../server-code/src/common/db.h"
- struct DBData *(*prev)(struct DBIterator *self, union DBKey *out_key);
-# 357 "../../../server-code/src/common/db.h"
-
-# 357 "../../../server-code/src/common/db.h" 3 4
-_Bool
-# 357 "../../../server-code/src/common/db.h"
- (*exists)(struct DBIterator *self);
-# 372 "../../../server-code/src/common/db.h"
- int (*remove)(struct DBIterator *self, struct DBData *out_data);
-
-
-
-
-
-
- void (*destroy)(struct DBIterator *self);
-
-};
-
-
-
-
-
-
-
-struct DBMap {
-# 400 "../../../server-code/src/common/db.h"
- struct DBIterator *(*iterator)(struct DBMap *self);
-# 409 "../../../server-code/src/common/db.h"
-
-# 409 "../../../server-code/src/common/db.h" 3 4
-_Bool
-# 409 "../../../server-code/src/common/db.h"
- (*exists)(struct DBMap *self, union DBKey key);
-# 418 "../../../server-code/src/common/db.h"
- struct DBData *(*get)(struct DBMap *self, union DBKey key);
-# 438 "../../../server-code/src/common/db.h"
- unsigned int (*getall)(struct DBMap *self, struct DBData **buf, unsigned int max, DBMatcher match, ...);
-# 456 "../../../server-code/src/common/db.h"
- unsigned int (*vgetall)(struct DBMap *self, struct DBData **buf, unsigned int max, DBMatcher match, va_list args);
-# 472 "../../../server-code/src/common/db.h"
- struct DBData *(*ensure)(struct DBMap *self, union DBKey key, DBCreateData create, ...);
-# 486 "../../../server-code/src/common/db.h"
- struct DBData *(*vensure)(struct DBMap *self, union DBKey key, DBCreateData create, va_list args);
-# 499 "../../../server-code/src/common/db.h"
- int (*put)(struct DBMap *self, union DBKey key, struct DBData data, struct DBData *out_data);
-# 511 "../../../server-code/src/common/db.h"
- int (*remove)(struct DBMap *self, union DBKey key, struct DBData *out_data);
-# 525 "../../../server-code/src/common/db.h"
- int (*foreach)(struct DBMap *self, DBApply func, ...);
-# 537 "../../../server-code/src/common/db.h"
- int (*vforeach)(struct DBMap *self, DBApply func, va_list args);
-# 553 "../../../server-code/src/common/db.h"
- int (*clear)(struct DBMap *self, DBApply func, ...);
-# 567 "../../../server-code/src/common/db.h"
- int (*vclear)(struct DBMap *self, DBApply func, va_list args);
-# 584 "../../../server-code/src/common/db.h"
- int (*destroy)(struct DBMap *self, DBApply func, ...);
-# 599 "../../../server-code/src/common/db.h"
- int (*vdestroy)(struct DBMap *self, DBApply func, va_list args);
-
-
-
-
-
-
-
- unsigned int (*size)(struct DBMap *self);
-
-
-
-
-
-
-
- enum DBType (*type)(struct DBMap *self);
-
-
-
-
-
-
-
- enum DBOptions (*options)(struct DBMap *self);
-
-};
-# 745 "../../../server-code/src/common/db.h"
-struct db_interface {
-# 758 "../../../server-code/src/common/db.h"
-enum DBOptions (*fix_options) (enum DBType type, enum DBOptions options);
-# 768 "../../../server-code/src/common/db.h"
-DBComparator (*default_cmp) (enum DBType type);
-# 778 "../../../server-code/src/common/db.h"
-DBHasher (*default_hash) (enum DBType type);
-# 797 "../../../server-code/src/common/db.h"
-DBReleaser (*default_release) (enum DBType type, enum DBOptions options);
-# 808 "../../../server-code/src/common/db.h"
-DBReleaser (*custom_release) (enum DBReleaseOption which);
-# 834 "../../../server-code/src/common/db.h"
-struct DBMap *(*alloc) (const char *file, const char *func, int line, enum DBType type, enum DBOptions options, unsigned short maxlen);
-
-
-
-
-
-
-
-union DBKey (*i2key) (int key);
-
-
-
-
-
-
-
-union DBKey (*ui2key) (unsigned int key);
-
-
-
-
-
-
-
-union DBKey (*str2key) (const char *key);
-
-
-
-
-
-
-
-union DBKey (*i642key) (int64 key);
-
-
-
-
-
-
-
-union DBKey (*ui642key) (uint64 key);
-
-
-
-
-
-
-
-struct DBData (*i2data) (int data);
-
-
-
-
-
-
-
-struct DBData (*ui2data) (unsigned int data);
-
-
-
-
-
-
-
-struct DBData (*ptr2data) (void *data);
-# 907 "../../../server-code/src/common/db.h"
-int (*data2i) (struct DBData *data);
-# 916 "../../../server-code/src/common/db.h"
-unsigned int (*data2ui) (struct DBData *data);
-# 925 "../../../server-code/src/common/db.h"
-void* (*data2ptr) (struct DBData *data);
-
-
-
-
-
-
-void (*init) (void);
-
-
-
-
-
-
-
-void (*final) (void);
-};
-
-
-struct linkdb_node {
- struct linkdb_node *next;
- struct linkdb_node *prev;
- void *key;
- void *data;
-};
-
-typedef void (*LinkDBFunc)(void* key, void* data, va_list args);
-
-
-void linkdb_insert (struct linkdb_node** head, void *key, void* data);
-void linkdb_replace (struct linkdb_node** head, void *key, void* data);
-void* linkdb_search (struct linkdb_node** head, void *key);
-void* linkdb_erase (struct linkdb_node** head, void *key);
-void linkdb_final (struct linkdb_node** head);
-void linkdb_vforeach(struct linkdb_node** head, LinkDBFunc func, va_list ap);
-void linkdb_foreach (struct linkdb_node** head, LinkDBFunc func, ...);
-
-void db_defaults(void);
-
-
-extern struct db_interface *DB;
-# 26 "../../../server-code/src/common/core.h" 2
-# 34 "../../../server-code/src/common/core.h"
-enum server_types {
- SERVER_TYPE_UNKNOWN = 0x0,
- SERVER_TYPE_LOGIN = 0x1,
- SERVER_TYPE_CHAR = 0x2,
- SERVER_TYPE_MAP = 0x4,
-};
-
-
-enum E_CORE_ST {
- CORE_ST_STOP = 0,
- CORE_ST_RUN,
- CORE_ST_LAST
-};
-
-
-enum cmdline_options {
- CMDLINE_OPT_NORMAL = 0x0,
- CMDLINE_OPT_PARAM = 0x1,
- CMDLINE_OPT_SILENT = 0x2,
- CMDLINE_OPT_PREINIT = 0x4,
-};
-typedef
-# 55 "../../../server-code/src/common/core.h" 3 4
- _Bool
-# 55 "../../../server-code/src/common/core.h"
- (*CmdlineExecFunc)(const char *name, const char *params);
-struct CmdlineArgData {
- unsigned int pluginID;
- unsigned int options;
- char *name;
- char shortname;
- CmdlineExecFunc func;
- char *help;
-};
-
-struct cmdline_interface {
- struct { int _max_; int _len_; struct CmdlineArgData *_data_; } args_data;
-
- void (*init) (void);
- void (*final) (void);
-
-# 70 "../../../server-code/src/common/core.h" 3 4
-_Bool
-# 70 "../../../server-code/src/common/core.h"
- (*arg_add) (unsigned int pluginID, const char *name, char shortname, CmdlineExecFunc func, const char *help, unsigned int options);
- int (*exec) (int argc, char **argv, unsigned int options);
-
-# 72 "../../../server-code/src/common/core.h" 3 4
-_Bool
-# 72 "../../../server-code/src/common/core.h"
- (*arg_next_value) (const char *name, int current_arg, int argc);
- const char *(*arg_source) (struct CmdlineArgData *arg);
-};
-
-struct core_interface {
- int arg_c;
- char **arg_v;
-
- int runflag;
- char *server_name;
- enum server_types server_type;
-
-
-
- void (*shutdown_callback)(void);
-};
-
-
-
-
-
-
-extern void cmdline_args_init_local(void);
-extern int do_init(int,char**);
-extern void set_server_type(void);
-extern void do_abort(void);
-extern int do_final(void);
-
-
-
-
-
-
-
-void cmdline_defaults(void);
-
-
-extern struct core_interface *core;
-extern struct cmdline_interface *cmdline;
-# 26 "../../../server-code/src/char/char.h" 2
-
-# 1 "../../../server-code/src/common/mmo.h" 1
-# 225 "../../../server-code/src/common/mmo.h"
-struct hplugin_data_store;
-
-enum item_types {
- IT_HEALING = 0,
- IT_UNKNOWN,
- IT_USABLE,
- IT_ETC,
- IT_WEAPON,
- IT_ARMOR,
- IT_CARD,
- IT_PETEGG,
- IT_PETARMOR,
- IT_UNKNOWN2,
- IT_AMMO,
- IT_DELAYCONSUME,
- IT_CASH = 18,
- IT_MAX
-};
-
-
-
-
-enum quest_state {
- Q_INACTIVE,
- Q_ACTIVE,
- Q_COMPLETE,
-};
-
-
-struct quest {
- int quest_id;
- unsigned int time;
- int count[3];
- enum quest_state state;
-};
-
-struct item {
- int id;
- short nameid;
- short amount;
- unsigned int equip;
- char identify;
- char refine;
- char attribute;
- short card[4];
- unsigned int expire_time;
- char favorite;
- unsigned char bound;
- uint64 unique_id;
-};
-
-
-enum equip_pos {
- EQP_NONE = 0x000000,
- EQP_HEAD_LOW = 0x000001,
- EQP_HEAD_MID = 0x000200,
- EQP_HEAD_TOP = 0x000100,
- EQP_HAND_R = 0x000002,
- EQP_HAND_L = 0x000020,
- EQP_ARMOR = 0x000010,
- EQP_SHOES = 0x000040,
- EQP_GARMENT = 0x000004,
- EQP_ACC_L = 0x000008,
- EQP_ACC_R = 0x000080,
- EQP_COSTUME_HEAD_TOP = 0x000400,
- EQP_COSTUME_HEAD_MID = 0x000800,
- EQP_COSTUME_HEAD_LOW = 0x001000,
- EQP_COSTUME_GARMENT = 0x002000,
-
- EQP_AMMO = 0x008000,
- EQP_SHADOW_ARMOR = 0x010000,
- EQP_SHADOW_WEAPON = 0x020000,
- EQP_SHADOW_SHIELD = 0x040000,
- EQP_SHADOW_SHOES = 0x080000,
- EQP_SHADOW_ACC_R = 0x100000,
- EQP_SHADOW_ACC_L = 0x200000,
-};
-
-struct point {
- unsigned short map;
- short x,y;
-};
-
-enum e_skill_flag
-{
- SKILL_FLAG_PERMANENT,
- SKILL_FLAG_TEMPORARY,
- SKILL_FLAG_PLAGIARIZED,
- SKILL_FLAG_UNUSED,
- SKILL_FLAG_PERM_GRANTED,
-
-
- SKILL_FLAG_REPLACED_LV_0,
-};
-
-enum e_mmo_charstatus_opt {
- OPT_NONE = 0x0,
- OPT_SHOW_EQUIP = 0x1,
- OPT_ALLOW_PARTY = 0x2,
-};
-
-enum e_item_bound_type {
- IBT_NONE = 0x0,
- IBT_MIN = 0x1,
- IBT_ACCOUNT = 0x1,
- IBT_GUILD = 0x2,
- IBT_PARTY = 0x3,
- IBT_CHARACTER = 0x4,
- IBT_MAX = 0x4,
-};
-
-enum {
- OPTION_NOTHING = 0x00000000,
- OPTION_SIGHT = 0x00000001,
- OPTION_HIDE = 0x00000002,
- OPTION_CLOAK = 0x00000004,
- OPTION_FALCON = 0x00000010,
- OPTION_RIDING = 0x00000020,
- OPTION_INVISIBLE = 0x00000040,
- OPTION_ORCISH = 0x00000800,
- OPTION_WEDDING = 0x00001000,
- OPTION_RUWACH = 0x00002000,
- OPTION_CHASEWALK = 0x00004000,
- OPTION_FLYING = 0x00008000,
- OPTION_XMAS = 0x00010000,
- OPTION_TRANSFORM = 0x00020000,
- OPTION_SUMMER = 0x00040000,
- OPTION_DRAGON1 = 0x00080000,
- OPTION_WUG = 0x00100000,
- OPTION_WUGRIDER = 0x00200000,
- OPTION_MADOGEAR = 0x00400000,
- OPTION_DRAGON2 = 0x00800000,
- OPTION_DRAGON3 = 0x01000000,
- OPTION_DRAGON4 = 0x02000000,
- OPTION_DRAGON5 = 0x04000000,
- OPTION_HANBOK = 0x08000000,
- OPTION_OKTOBERFEST = 0x10000000,
-# 372 "../../../server-code/src/common/mmo.h"
- OPTION_DRAGON = OPTION_DRAGON1|OPTION_DRAGON2|OPTION_DRAGON3|OPTION_DRAGON4|OPTION_DRAGON5,
- OPTION_COSTUME = OPTION_WEDDING|OPTION_XMAS|OPTION_SUMMER|OPTION_HANBOK|OPTION_OKTOBERFEST,
-};
-
-struct s_skill {
- unsigned short id;
- unsigned char lv;
- unsigned char flag;
-};
-
-struct script_reg_state {
- unsigned int type : 1;
- unsigned int update : 1;
-};
-
-struct script_reg_num {
- struct script_reg_state flag;
- int value;
-};
-
-struct script_reg_str {
- struct script_reg_state flag;
- char *value;
-};
-
-
-struct status_change_data {
- unsigned short type;
- int val1, val2, val3, val4;
- int tick;
-};
-
-struct storage_data {
- int storage_amount;
- struct item items[600];
-};
-
-struct guild_storage {
- int dirty;
- int guild_id;
- short storage_status;
- short storage_amount;
- struct item items[600];
- unsigned short lock;
-};
-
-struct s_pet {
- int account_id;
- int char_id;
- int pet_id;
- short class_;
- short level;
- short egg_id;
- short equip;
- short intimate;
- short hungry;
- char name[(23 + 1)];
- char rename_flag;
- char incubate;
-};
-
-struct s_homunculus {
- char name[(23 + 1)];
- int hom_id;
- int char_id;
- short class_;
- short prev_class;
- int hp,max_hp,sp,max_sp;
- unsigned int intimacy;
- short hunger;
- struct s_skill hskill[43];
- short skillpts;
- short level;
- unsigned int exp;
- short rename_flag;
- short vaporize;
- int str;
- int agi;
- int vit;
- int int_;
- int dex;
- int luk;
-
- int str_value;
- int agi_value;
- int vit_value;
- int int_value;
- int dex_value;
- int luk_value;
-
- int8 spiritball;
-};
-
-struct s_mercenary {
- int mercenary_id;
- int char_id;
- short class_;
- int hp, sp;
- unsigned int kill_count;
- unsigned int life_time;
-};
-
-struct s_elemental {
- int elemental_id;
- int char_id;
- short class_;
- uint32 mode;
- int hp, sp, max_hp, max_sp, matk, atk, atk2;
- short hit, flee, amotion, def, mdef;
- int life_time;
-};
-
-struct s_friend {
- int account_id;
- int char_id;
- char name[(23 + 1)];
-};
-
-struct hotkey {
-
- unsigned int id;
- unsigned short lv;
- unsigned char type;
-
-
-
-};
-
-struct mmo_charstatus {
- int char_id;
- int account_id;
- int partner_id;
- int father;
- int mother;
- int child;
-
- unsigned int base_exp,job_exp;
- int zeny;
- int bank_vault;
-
- short class_;
- unsigned int status_point,skill_point;
- int hp,max_hp,sp,max_sp;
- unsigned int option;
- short manner;
- unsigned char karma;
- short hair,hair_color,clothes_color,body;
- int party_id,guild_id,pet_id,hom_id,mer_id,ele_id;
- int fame;
-
-
- int arch_faith, arch_calls;
- int spear_faith, spear_calls;
- int sword_faith, sword_calls;
-
- short weapon;
- short shield;
- short head_top,head_mid,head_bottom;
- short robe;
-
- char name[(23 + 1)];
- unsigned int base_level,job_level;
- short str,agi,vit,int_,dex,luk;
- unsigned char slot,sex;
-
- uint32 mapip;
- uint16 mapport;
-
- struct point last_point,save_point,memo_point[3];
- struct item inventory[100],cart[100];
- struct storage_data storage;
- struct s_skill skill[1478];
-
- struct s_friend friends[40];
-
- struct hotkey hotkeys[38];
-
-
-# 549 "../../../server-code/src/common/mmo.h" 3 4
-_Bool
-# 549 "../../../server-code/src/common/mmo.h"
- show_equip, allow_party;
- unsigned short rename;
- unsigned short slotchange;
-
- time_t delete_date;
-
-
- unsigned short mod_exp,mod_drop,mod_death;
-
- unsigned char font;
-
- uint32 uniqueitem_counter;
-
- unsigned char hotkey_rowshift;
-};
-
-typedef enum mail_status {
- MAIL_NEW,
- MAIL_UNREAD,
- MAIL_READ,
-} mail_status;
-
-struct mail_message {
- int id;
- int send_id;
- char send_name[(23 + 1)];
- int dest_id;
- char dest_name[(23 + 1)];
- char title[40];
- char body[200];
-
- mail_status status;
- time_t timestamp;
-
- int zeny;
- struct item item;
-};
-
-struct mail_data {
- short amount;
-
-# 589 "../../../server-code/src/common/mmo.h" 3 4
-_Bool
-# 589 "../../../server-code/src/common/mmo.h"
- full;
- short unchecked, unread;
- struct mail_message msg[30];
-};
-
-struct auction_data {
- unsigned int auction_id;
- int seller_id;
- char seller_name[(23 + 1)];
- int buyer_id;
- char buyer_name[(23 + 1)];
-
- struct item item;
-
- char item_name[50];
- short type;
-
- unsigned short hours;
- int price, buynow;
- time_t timestamp;
- int auction_end_timer;
-};
-
-struct party_member {
- int account_id;
- int char_id;
- char name[(23 + 1)];
- unsigned short class_;
- unsigned short map;
- unsigned short lv;
- unsigned leader : 1,
- online : 1;
-};
-
-struct party {
- int party_id;
- char name[(23 + 1)];
- unsigned char count;
- unsigned exp : 1,
- item : 2;
- struct party_member member[12];
-};
-
-struct map_session_data;
-struct guild_member {
- int account_id, char_id;
- short hair,hair_color,gender,class_,lv;
- uint64 exp;
- int exp_payper;
- short online,position;
- char name[(23 + 1)];
- struct map_session_data *sd;
- unsigned char modified;
-};
-
-struct guild_position {
- char name[(23 + 1)];
- int mode;
- int exp_mode;
- unsigned char modified;
-};
-
-struct guild_alliance {
- int opposition;
- int guild_id;
- char name[(23 + 1)];
-};
-
-struct guild_expulsion {
- char name[(23 + 1)];
- char mes[40];
- int account_id;
-};
-
-struct guild_skill {
- int id,lv;
-};
-
-struct channel_data;
-struct guild {
- int guild_id;
- short guild_lv, connect_member, max_member, average_lv;
- uint64 exp;
- unsigned int next_exp;
- int skill_point;
- char name[(23 + 1)],master[(23 + 1)];
- struct guild_member member[(16 +10*6)];
- struct guild_position position[20];
- char mes1[60],mes2[120];
- int emblem_len,emblem_id;
- char emblem_data[2048];
- struct guild_alliance alliance[16];
- struct guild_expulsion expulsion[32];
- struct guild_skill skill[15];
-
-
- unsigned short save_flag;
-
- short *instance;
- unsigned short instances;
-
- struct channel_data *channel;
- struct hplugin_data_store *hdata;
-};
-
-struct guild_castle {
- int castle_id;
- int mapindex;
- char castle_name[(23 + 1)];
- char castle_event[(23 + 1)];
- int guild_id;
- int economy;
- int defense;
- int triggerE;
- int triggerD;
- int nextTime;
- int payTime;
- int createTime;
- int visibleC;
- struct {
- unsigned visible : 1;
- int id;
- } guardian[8];
- int* temp_guardians;
- int temp_guardians_max;
-};
-
-struct fame_list {
- int id;
- int fame;
- char name[(23 + 1)];
-};
-
-enum fame_list_type {
- RANKTYPE_BLACKSMITH = 0,
- RANKTYPE_ALCHEMIST = 1,
- RANKTYPE_TAEKWON = 2,
- RANKTYPE_PK = 3,
-};
-
-
-
-
-
-
-enum guild_basic_info {
- GBI_EXP = 1,
- GBI_GUILDLV,
- GBI_SKILLPOINT,
-
-
-
-
-
- GBI_SKILLLV,
-};
-
-enum {
- GMI_POSITION = 0,
- GMI_EXP,
- GMI_HAIR,
- GMI_HAIR_COLOR,
- GMI_GENDER,
- GMI_CLASS,
- GMI_LEVEL,
-};
-
-enum guild_permission {
- GPERM_INVITE = 0x01,
- GPERM_EXPEL = 0x10,
- GPERM_ALL = GPERM_INVITE|GPERM_EXPEL,
- GPERM_MASK = GPERM_ALL,
-};
-
-enum {
- GD_SKILLBASE=10000,
- GD_APPROVAL=10000,
- GD_KAFRACONTRACT=10001,
- GD_GUARDRESEARCH=10002,
- GD_GUARDUP=10003,
- GD_EXTENSION=10004,
- GD_GLORYGUILD=10005,
- GD_LEADERSHIP=10006,
- GD_GLORYWOUNDS=10007,
- GD_SOULCOLD=10008,
- GD_HAWKEYES=10009,
- GD_BATTLEORDER=10010,
- GD_REGENERATION=10011,
- GD_RESTORE=10012,
- GD_EMERGENCYCALL=10013,
- GD_DEVELOPMENT=10014,
- GD_MAX,
-};
-
-
-enum {
- JOB_NOVICE,
- JOB_SWORDMAN,
- JOB_MAGE,
- JOB_ARCHER,
- JOB_ACOLYTE,
- JOB_MERCHANT,
- JOB_THIEF,
- JOB_KNIGHT,
- JOB_PRIEST,
- JOB_WIZARD,
- JOB_BLACKSMITH,
- JOB_HUNTER,
- JOB_ASSASSIN,
- JOB_KNIGHT2,
- JOB_CRUSADER,
- JOB_MONK,
- JOB_SAGE,
- JOB_ROGUE,
- JOB_ALCHEMIST,
- JOB_BARD,
- JOB_DANCER,
- JOB_CRUSADER2,
- JOB_WEDDING,
- JOB_SUPER_NOVICE,
- JOB_GUNSLINGER,
- JOB_NINJA,
- JOB_XMAS,
- JOB_SUMMER,
- JOB_MAX_BASIC,
-
- JOB_NOVICE_HIGH = 4001,
- JOB_SWORDMAN_HIGH,
- JOB_MAGE_HIGH,
- JOB_ARCHER_HIGH,
- JOB_ACOLYTE_HIGH,
- JOB_MERCHANT_HIGH,
- JOB_THIEF_HIGH,
- JOB_LORD_KNIGHT,
- JOB_HIGH_PRIEST,
- JOB_HIGH_WIZARD,
- JOB_WHITESMITH,
- JOB_SNIPER,
- JOB_ASSASSIN_CROSS,
- JOB_LORD_KNIGHT2,
- JOB_PALADIN,
- JOB_CHAMPION,
- JOB_PROFESSOR,
- JOB_STALKER,
- JOB_CREATOR,
- JOB_CLOWN,
- JOB_GYPSY,
- JOB_PALADIN2,
-
- JOB_BABY,
- JOB_BABY_SWORDMAN,
- JOB_BABY_MAGE,
- JOB_BABY_ARCHER,
- JOB_BABY_ACOLYTE,
- JOB_BABY_MERCHANT,
- JOB_BABY_THIEF,
- JOB_BABY_KNIGHT,
- JOB_BABY_PRIEST,
- JOB_BABY_WIZARD,
- JOB_BABY_BLACKSMITH,
- JOB_BABY_HUNTER,
- JOB_BABY_ASSASSIN,
- JOB_BABY_KNIGHT2,
- JOB_BABY_CRUSADER,
- JOB_BABY_MONK,
- JOB_BABY_SAGE,
- JOB_BABY_ROGUE,
- JOB_BABY_ALCHEMIST,
- JOB_BABY_BARD,
- JOB_BABY_DANCER,
- JOB_BABY_CRUSADER2,
- JOB_SUPER_BABY,
-
- JOB_TAEKWON,
- JOB_STAR_GLADIATOR,
- JOB_STAR_GLADIATOR2,
- JOB_SOUL_LINKER,
-
- JOB_GANGSI,
- JOB_DEATH_KNIGHT,
- JOB_DARK_COLLECTOR,
-
- JOB_RUNE_KNIGHT = 4054,
- JOB_WARLOCK,
- JOB_RANGER,
- JOB_ARCH_BISHOP,
- JOB_MECHANIC,
- JOB_GUILLOTINE_CROSS,
-
- JOB_RUNE_KNIGHT_T,
- JOB_WARLOCK_T,
- JOB_RANGER_T,
- JOB_ARCH_BISHOP_T,
- JOB_MECHANIC_T,
- JOB_GUILLOTINE_CROSS_T,
-
- JOB_ROYAL_GUARD,
- JOB_SORCERER,
- JOB_MINSTREL,
- JOB_WANDERER,
- JOB_SURA,
- JOB_GENETIC,
- JOB_SHADOW_CHASER,
-
- JOB_ROYAL_GUARD_T,
- JOB_SORCERER_T,
- JOB_MINSTREL_T,
- JOB_WANDERER_T,
- JOB_SURA_T,
- JOB_GENETIC_T,
- JOB_SHADOW_CHASER_T,
-
- JOB_RUNE_KNIGHT2,
- JOB_RUNE_KNIGHT_T2,
- JOB_ROYAL_GUARD2,
- JOB_ROYAL_GUARD_T2,
- JOB_RANGER2,
- JOB_RANGER_T2,
- JOB_MECHANIC2,
- JOB_MECHANIC_T2,
-
- JOB_BABY_RUNE = 4096,
- JOB_BABY_WARLOCK,
- JOB_BABY_RANGER,
- JOB_BABY_BISHOP,
- JOB_BABY_MECHANIC,
- JOB_BABY_CROSS,
-
- JOB_BABY_GUARD,
- JOB_BABY_SORCERER,
- JOB_BABY_MINSTREL,
- JOB_BABY_WANDERER,
- JOB_BABY_SURA,
- JOB_BABY_GENETIC,
- JOB_BABY_CHASER,
-
- JOB_BABY_RUNE2,
- JOB_BABY_GUARD2,
- JOB_BABY_RANGER2,
- JOB_BABY_MECHANIC2,
-
- JOB_SUPER_NOVICE_E = 4190,
- JOB_SUPER_BABY_E,
-
- JOB_KAGEROU = 4211,
- JOB_OBORO,
- JOB_REBELLION = 4215,
-
- JOB_MAX,
-};
-
-
-
-
-enum {
- SEX_FEMALE = 0,
- SEX_MALE,
- SEX_SERVER
-};
-
-enum weapon_type {
- W_FIST,
- W_DAGGER,
- W_1HSWORD,
- W_2HSWORD,
- W_1HSPEAR,
- W_2HSPEAR,
- W_1HAXE,
- W_2HAXE,
- W_MACE,
- W_2HMACE,
- W_STAFF,
- W_BOW,
- W_KNUCKLE,
- W_MUSICAL,
- W_WHIP,
- W_BOOK,
- W_KATAR,
- W_REVOLVER,
- W_RIFLE,
- W_GATLING,
- W_SHOTGUN,
- W_GRENADE,
- W_HUUMA,
- W_2HSTAFF,
- MAX_SINGLE_WEAPON_TYPE,
-
- W_DOUBLE_DD,
- W_DOUBLE_SS,
- W_DOUBLE_AA,
- W_DOUBLE_DS,
- W_DOUBLE_DA,
- W_DOUBLE_SA,
- MAX_WEAPON_TYPE,
-};
-
-enum ammo_type {
- A_ARROW = 1,
- A_DAGGER,
- A_BULLET,
- A_SHELL,
- A_GRENADE,
- A_SHURIKEN,
- A_KUNAI,
- A_CANNONBALL,
- A_THROWWEAPON,
-};
-
-enum e_char_server_type {
- CST_NORMAL = 0,
- CST_MAINTENANCE = 1,
- CST_OVER18 = 2,
- CST_PAYING = 3,
- CST_F2P = 4,
-};
-
-enum e_pc_reg_loading {
- PRL_NONE = 0x0,
- PRL_CHAR = 0x1,
- PRL_ACCL = 0x2,
- PRL_ACCG = 0x4,
- PRL_ALL = 0xFF,
-};
-
-
-
-
-enum zh_char_ask_name_type {
- CHAR_ASK_NAME_BLOCK = 1,
- CHAR_ASK_NAME_BAN = 2,
- CHAR_ASK_NAME_UNBLOCK = 3,
- CHAR_ASK_NAME_UNBAN = 4,
- CHAR_ASK_NAME_CHANGESEX = 5,
- CHAR_ASK_NAME_CHARBAN = 6,
- CHAR_ASK_NAME_CHARUNBAN = 7,
- CHAR_ASK_NAME_CHANGECHARSEX = 8,
-};
-
-
-
-
-enum hz_char_ask_name_answer {
- CHAR_ASK_NAME_ANS_DONE = 0,
- CHAR_ASK_NAME_ANS_NOTFOUND = 1,
- CHAR_ASK_NAME_ANS_GMLOW = 2,
- CHAR_ASK_NAME_ANS_OFFLINE = 3,
-};
-# 28 "../../../server-code/src/char/char.h" 2
-
-enum E_CHARSERVER_ST {
- CHARSERVER_ST_RUNNING = CORE_ST_LAST,
- CHARSERVER_ST_SHUTDOWN,
- CHARSERVER_ST_LAST
-};
-
-struct char_session_data {
-
-# 36 "../../../server-code/src/char/char.h" 3 4
-_Bool
-# 36 "../../../server-code/src/char/char.h"
- auth;
- int account_id, login_id1, login_id2, sex;
- int found_char[9];
- time_t unban_time[9];
- char email[40];
- time_t expiration_time;
- int group_id;
- uint8 char_slots;
- uint32 version;
- uint8 clienttype;
- char pincode[4+1];
- uint32 pincode_seed;
- uint16 pincode_try;
- uint32 pincode_change;
- char new_name[(23 + 1)];
- char birthdate[10+1];
-};
-
-struct online_char_data {
- int account_id;
- int char_id;
- int fd;
- int waiting_disconnect;
- short server;
- int pincode_enable;
-};
-
-struct mmo_map_server {
- int fd;
- uint32 ip;
- uint16 port;
- int users;
- struct { int _max_; int _len_; uint16 *_data_; } maps;
-};
-
-
-
-
-
-enum inventory_table_type {
- TABLE_INVENTORY,
- TABLE_CART,
- TABLE_STORAGE,
- TABLE_GUILD_STORAGE,
-};
-
-struct char_auth_node {
- int account_id;
- int char_id;
- uint32 login_id1;
- uint32 login_id2;
- uint32 ip;
- int sex;
- time_t expiration_time;
- int group_id;
- unsigned changing_mapservers : 1;
-};
-
-
-
-
-struct char_interface {
- struct mmo_map_server server[2];
- int login_fd;
- int char_fd;
- struct DBMap *online_char_db;
- struct DBMap *char_db_;
- char userid[(23 + 1)];
- char passwd[(23 + 1)];
- char server_name[20];
- uint32 ip;
- uint16 port;
- int server_type;
- int new_display;
-
- char *CHAR_CONF_NAME;
- char *NET_CONF_NAME;
- char *SQL_CONF_NAME;
- char *INTER_CONF_NAME;
-
- int (*waiting_disconnect) (int tid, int64 tick, int id, intptr_t data);
- int (*delete_char_sql) (int char_id);
- struct DBData (*create_online_char_data) (union DBKey key, va_list args);
- void (*set_account_online) (int account_id);
- void (*set_account_offline) (int account_id);
- void (*set_char_charselect) (int account_id);
- void (*set_char_online) (int map_id, int char_id, int account_id);
- void (*set_char_offline) (int char_id, int account_id);
- int (*db_setoffline) (union DBKey key, struct DBData *data, va_list ap);
- int (*db_kickoffline) (union DBKey key, struct DBData *data, va_list ap);
- void (*set_login_all_offline) (void);
- void (*set_all_offline) (int id);
- void (*set_all_offline_sql) (void);
- struct DBData (*create_charstatus) (union DBKey key, va_list args);
- int (*mmo_char_tosql) (int char_id, struct mmo_charstatus* p);
- int (*memitemdata_to_sql) (const struct item items[], int max, int id, int tableswitch);
- int (*mmo_gender) (const struct char_session_data *sd, const struct mmo_charstatus *p, char sex);
- int (*mmo_chars_fromsql) (struct char_session_data* sd, uint8* buf);
- int (*mmo_char_fromsql) (int char_id, struct mmo_charstatus* p,
-# 134 "../../../server-code/src/char/char.h" 3 4
- _Bool
-# 134 "../../../server-code/src/char/char.h"
- load_everything);
- int (*mmo_char_sql_init) (void);
-
-# 136 "../../../server-code/src/char/char.h" 3 4
-_Bool
-# 136 "../../../server-code/src/char/char.h"
- (*char_slotchange) (struct char_session_data *sd, int fd, unsigned short from, unsigned short to);
- int (*rename_char_sql) (struct char_session_data *sd, int char_id);
- int (*check_char_name) (char * name, char * esc_name);
- int (*make_new_char_sql) (struct char_session_data *sd, const char *name_, int str, int agi, int vit, int int_, int dex, int luk, int slot, int hair_color, int hair_style);
- int (*divorce_char_sql) (int partner_id1, int partner_id2);
- int (*count_users) (void);
- int (*mmo_char_tobuf) (uint8* buffer, struct mmo_charstatus* p);
- void (*mmo_char_send099d) (int fd, struct char_session_data *sd);
- void (*mmo_char_send_ban_list) (int fd, struct char_session_data *sd);
- void (*mmo_char_send_slots_info) (int fd, struct char_session_data* sd);
- int (*mmo_char_send_characters) (int fd, struct char_session_data* sd);
- int (*char_married) (int pl1, int pl2);
- int (*char_child) (int parent_id, int child_id);
- int (*char_family) (int cid1, int cid2, int cid3);
- void (*disconnect_player) (int account_id);
- void (*authfail_fd) (int fd, int type);
- void (*request_account_data) (int account_id);
- void (*auth_ok) (int fd, struct char_session_data *sd);
- void (*ping_login_server) (int fd);
- int (*parse_fromlogin_connection_state) (int fd);
- void (*auth_error) (int fd, unsigned char flag);
- void (*parse_fromlogin_auth_state) (int fd);
- void (*parse_fromlogin_account_data) (int fd);
- void (*parse_fromlogin_login_pong) (int fd);
- void (*changesex) (int account_id, int sex);
- int (*parse_fromlogin_changesex_reply) (int fd);
- void (*parse_fromlogin_account_reg2) (int fd);
- void (*parse_fromlogin_ban) (int fd);
- void (*parse_fromlogin_kick) (int fd);
- void (*update_ip) (int fd);
- void (*parse_fromlogin_update_ip) (int fd);
- void (*parse_fromlogin_accinfo2_failed) (int fd);
- void (*parse_fromlogin_accinfo2_ok) (int fd);
- int (*parse_fromlogin) (int fd);
- int (*request_accreg2) (int account_id, int char_id);
- void (*global_accreg_to_login_start) (int account_id, int char_id);
- void (*global_accreg_to_login_send) (void);
- void (*global_accreg_to_login_add) (const char *key, unsigned int index, intptr_t val,
-# 173 "../../../server-code/src/char/char.h" 3 4
- _Bool
-# 173 "../../../server-code/src/char/char.h"
- is_string);
- void (*read_fame_list) (void);
- int (*send_fame_list) (int fd);
- void (*update_fame_list) (int type, int index, int fame);
- int (*loadName) (int char_id, char* name);
- void (*parse_frommap_datasync) (int fd);
- void (*parse_frommap_skillid2idx) (int fd);
- void (*map_received_ok) (int fd);
- void (*send_maps) (int fd, int id, int j);
- void (*parse_frommap_map_names) (int fd, int id);
- void (*send_scdata) (int fd, int aid, int cid);
- void (*parse_frommap_request_scdata) (int fd);
- void (*parse_frommap_set_users_count) (int fd, int id);
- void (*parse_frommap_set_users) (int fd, int id);
- void (*save_character_ack) (int fd, int aid, int cid);
- void (*parse_frommap_save_character) (int fd, int id);
- void (*select_ack) (int fd, int account_id, uint8 flag);
- void (*parse_frommap_char_select_req) (int fd);
- void (*change_map_server_ack) (int fd, const uint8 *data,
-# 191 "../../../server-code/src/char/char.h" 3 4
- _Bool
-# 191 "../../../server-code/src/char/char.h"
- ok);
- void (*parse_frommap_change_map_server) (int fd);
- void (*parse_frommap_remove_friend) (int fd);
- void (*char_name_ack) (int fd, int char_id);
- void (*parse_frommap_char_name_request) (int fd);
- void (*parse_frommap_change_email) (int fd);
- void (*ban) (int account_id, int char_id, time_t *unban_time, short year, short month, short day, short hour, short minute, short second);
- void (*unban) (int char_id, int *result);
- void (*ask_name_ack) (int fd, int acc, const char* name, int type, int result);
- int (*changecharsex) (int char_id, int sex);
- void (*parse_frommap_change_account) (int fd);
- void (*parse_frommap_fame_list) (int fd);
- void (*parse_frommap_divorce_char) (int fd);
- void (*parse_frommap_ragsrvinfo) (int fd);
- void (*parse_frommap_set_char_offline) (int fd);
- void (*parse_frommap_set_all_offline) (int fd, int id);
- void (*parse_frommap_set_char_online) (int fd, int id);
- void (*parse_frommap_build_fame_list) (int fd);
- void (*parse_frommap_save_status_change_data) (int fd);
- void (*send_pong) (int fd);
- void (*parse_frommap_ping) (int fd);
- void (*map_auth_ok) (int fd, int account_id, struct char_auth_node* node, struct mmo_charstatus* cd);
- void (*map_auth_failed) (int fd, int account_id, int char_id, int login_id1, char sex, uint32 ip);
- void (*parse_frommap_auth_request) (int fd, int id);
- void (*parse_frommap_update_ip) (int fd, int id);
- void (*parse_frommap_request_stats_report) (int fd);
- void (*parse_frommap_scdata_update) (int fd);
- void (*parse_frommap_scdata_delete) (int fd);
- int (*parse_frommap) (int fd);
- int (*search_mapserver) (unsigned short map, uint32 ip, uint16 port);
- int (*mapif_init) (int fd);
- uint32 (*lan_subnet_check) (uint32 ip);
- void (*delete2_ack) (int fd, int char_id, uint32 result, time_t delete_date);
- void (*delete2_accept_actual_ack) (int fd, int char_id, uint32 result);
- void (*delete2_accept_ack) (int fd, int char_id, uint32 result);
- void (*delete2_cancel_ack) (int fd, int char_id, uint32 result);
- void (*delete2_req) (int fd, struct char_session_data* sd);
- void (*delete2_accept) (int fd, struct char_session_data* sd);
- void (*delete2_cancel) (int fd, struct char_session_data* sd);
- void (*send_account_id) (int fd, int account_id);
- void (*parse_char_connect) (int fd, struct char_session_data* sd, uint32 ipl);
- void (*send_map_info) (int fd, int i, uint32 subnet_map_ip, struct mmo_charstatus *cd);
- void (*send_wait_char_server) (int fd);
- int (*search_default_maps_mapserver) (struct mmo_charstatus *cd);
- void (*parse_char_select) (int fd, struct char_session_data* sd, uint32 ipl);
- void (*creation_failed) (int fd, int result);
- void (*creation_ok) (int fd, struct mmo_charstatus *char_dat);
- void (*parse_char_create_new_char) (int fd, struct char_session_data* sd);
- void (*delete_char_failed) (int fd, int flag);
- void (*delete_char_ok) (int fd);
- void (*parse_char_delete_char) (int fd, struct char_session_data* sd, unsigned short cmd);
- void (*parse_char_ping) (int fd);
- void (*allow_rename) (int fd, int flag);
- void (*parse_char_rename_char) (int fd, struct char_session_data* sd);
- void (*parse_char_rename_char2) (int fd, struct char_session_data* sd);
- void (*rename_char_ack) (int fd, int flag);
- void (*parse_char_rename_char_confirm) (int fd, struct char_session_data* sd);
- void (*captcha_notsupported) (int fd);
- void (*parse_char_request_captcha) (int fd);
- void (*parse_char_check_captcha) (int fd);
- void (*parse_char_delete2_req) (int fd, struct char_session_data* sd);
- void (*parse_char_delete2_accept) (int fd, struct char_session_data* sd);
- void (*parse_char_delete2_cancel) (int fd, struct char_session_data* sd);
- void (*login_map_server_ack) (int fd, uint8 flag);
- void (*parse_char_login_map_server) (int fd, uint32 ipl);
- void (*parse_char_pincode_check) (int fd, struct char_session_data* sd);
- void (*parse_char_pincode_window) (int fd, struct char_session_data* sd);
- void (*parse_char_pincode_change) (int fd, struct char_session_data* sd);
- void (*parse_char_pincode_first_pin) (int fd, struct char_session_data* sd);
- void (*parse_char_request_chars) (int fd, struct char_session_data* sd);
- void (*change_character_slot_ack) (int fd,
-# 261 "../../../server-code/src/char/char.h" 3 4
- _Bool
-# 261 "../../../server-code/src/char/char.h"
- ret);
- void (*parse_char_move_character) (int fd, struct char_session_data* sd);
- int (*parse_char_unknown_packet) (int fd, uint32 ipl);
- int (*parse_char) (int fd);
- int (*broadcast_user_count) (int tid, int64 tick, int id, intptr_t data);
- int (*send_accounts_tologin_sub) (union DBKey key, struct DBData *data, va_list ap);
- int (*send_accounts_tologin) (int tid, int64 tick, int id, intptr_t data);
- int (*check_connect_login_server) (int tid, int64 tick, int id, intptr_t data);
- int (*online_data_cleanup_sub) (union DBKey key, struct DBData *data, va_list ap);
- int (*online_data_cleanup) (int tid, int64 tick, int id, intptr_t data);
- void (*sql_config_read) (const char* cfgName);
- void (*config_dispatch) (char *w1, char *w2);
- int (*config_read) (const char* cfgName);
-};
-
-
-extern int char_name_option;
-extern char char_name_letters[];
-extern
-# 279 "../../../server-code/src/char/char.h" 3 4
- _Bool
-# 279 "../../../server-code/src/char/char.h"
- char_gm_read;
-extern int autosave_interval;
-extern int save_log;
-extern char db_path[];
-extern char char_db[256];
-extern char scdata_db[256];
-extern char cart_db[256];
-extern char inventory_db[256];
-extern char charlog_db[256];
-extern char storage_db[256];
-extern char interlog_db[256];
-extern char skill_db[256];
-extern char memo_db[256];
-extern char guild_db[256];
-extern char guild_alliance_db[256];
-extern char guild_castle_db[256];
-extern char guild_expulsion_db[256];
-extern char guild_member_db[256];
-extern char guild_position_db[256];
-extern char guild_skill_db[256];
-extern char guild_storage_db[256];
-extern char party_db[256];
-extern char pet_db[256];
-extern char mail_db[256];
-extern char auction_db[256];
-extern char quest_db[256];
-extern char homunculus_db[256];
-extern char skill_homunculus_db[256];
-extern char mercenary_db[256];
-extern char mercenary_owner_db[256];
-extern char ragsrvinfo_db[256];
-extern char elemental_db[256];
-extern char acc_reg_num_db[32];
-extern char acc_reg_str_db[32];
-extern char char_reg_str_db[32];
-extern char char_reg_num_db[32];
-
-extern int guild_exp_rate;
-extern int log_inter;
-
-void char_load_defaults(void);
-void char_defaults(void);
-
-
-extern struct char_interface *chr;
-# 25 "../../../server-code/src/char/char.c" 2
-
-# 1 "../../../server-code/src/char/HPMchar.h" 1
-# 28 "../../../server-code/src/char/HPMchar.h"
-# 1 "../../../server-code/src/common/HPM.h" 1
-# 29 "../../../server-code/src/common/HPM.h"
-# 1 "../../../server-code/src/common/HPMi.h" 1
-# 24 "../../../server-code/src/common/HPMi.h"
-# 1 "../../../server-code/src/common/console.h" 1
-# 25 "../../../server-code/src/common/console.h"
-# 1 "../../../server-code/src/common/mutex.h" 1
-# 26 "../../../server-code/src/common/mutex.h"
-typedef struct ramutex ramutex;
-typedef struct racond racond;
-
-
-
-
-
-
-
-ramutex *ramutex_create(void);
-
-
-
-
-
-
-void ramutex_destroy(ramutex *m);
-
-
-
-
-
-
-void ramutex_lock(ramutex *m);
-# 58 "../../../server-code/src/common/mutex.h"
-
-# 58 "../../../server-code/src/common/mutex.h" 3 4
-_Bool
-# 58 "../../../server-code/src/common/mutex.h"
- ramutex_trylock(ramutex *m);
-
-
-
-
-
-
-void ramutex_unlock(ramutex *m);
-
-
-
-
-
-
-
-racond *racond_create(void);
-
-
-
-
-
-
-void racond_destroy(racond *c);
-# 89 "../../../server-code/src/common/mutex.h"
-void racond_wait(racond *c, ramutex *m, sysint timeout_ticks);
-# 99 "../../../server-code/src/common/mutex.h"
-void racond_signal(racond *c);
-# 108 "../../../server-code/src/common/mutex.h"
-void racond_broadcast(racond *c);
-# 26 "../../../server-code/src/common/console.h" 2
-# 1 "../../../server-code/src/common/spinlock.h" 1
-# 31 "../../../server-code/src/common/spinlock.h"
-# 1 "../../../server-code/src/common/atomic.h" 1
-# 110 "../../../server-code/src/common/atomic.h"
-static __attribute__((always_inline)) inline int64 InterlockedExchangeAdd64(volatile int64 *addend, int64 increment){
- return __sync_fetch_and_add(addend, increment);
-}
-
-static __attribute__((always_inline)) inline int32 InterlockedExchangeAdd(volatile int32 *addend, int32 increment){
- return __sync_fetch_and_add(addend, increment);
-}
-
-static __attribute__((always_inline)) inline int64 InterlockedIncrement64(volatile int64 *addend){
- return __sync_add_and_fetch(addend, 1);
-}
-
-static __attribute__((always_inline)) inline int32 InterlockedIncrement(volatile int32 *addend){
- return __sync_add_and_fetch(addend, 1);
-}
-
-static __attribute__((always_inline)) inline int64 InterlockedDecrement64(volatile int64 *addend){
- return __sync_sub_and_fetch(addend, 1);
-}
-
-static __attribute__((always_inline)) inline int32 InterlockedDecrement(volatile int32 *addend){
- return __sync_sub_and_fetch(addend, 1);
-}
-
-static __attribute__((always_inline)) inline int64 InterlockedCompareExchange64(volatile int64 *dest, int64 exch, int64 cmp){
- return __sync_val_compare_and_swap(dest, cmp, exch);
-}
-
-static __attribute__((always_inline)) inline int32 InterlockedCompareExchange(volatile int32 *dest, int32 exch, int32 cmp){
- return __sync_val_compare_and_swap(dest, cmp, exch);
-}
-
-static __attribute__((always_inline)) inline int64 InterlockedExchange64(volatile int64 *target, int64 val){
- return __sync_lock_test_and_set(target, val);
-}
-
-static __attribute__((always_inline)) inline int32 InterlockedExchange(volatile int32 *target, int32 val){
- return __sync_lock_test_and_set(target, val);
-}
-# 32 "../../../server-code/src/common/spinlock.h" 2
-
-# 1 "../../../server-code/src/common/thread.h" 1
-# 26 "../../../server-code/src/common/thread.h"
-typedef struct rAthread rAthread;
-typedef void* (*rAthreadProc)(void*);
-
-typedef enum RATHREAD_PRIO {
- RAT_PRIO_LOW = 0,
- RAT_PRIO_NORMAL,
- RAT_PRIO_HIGH
-} RATHREAD_PRIO;
-# 45 "../../../server-code/src/common/thread.h"
-rAthread *rathread_create(rAthreadProc entryPoint, void *param);
-# 58 "../../../server-code/src/common/thread.h"
-rAthread *rathread_createEx(rAthreadProc entryPoint, void *param, size_t szStack, RATHREAD_PRIO prio);
-# 68 "../../../server-code/src/common/thread.h"
-void rathread_destroy(rAthread *handle);
-# 79 "../../../server-code/src/common/thread.h"
-rAthread *rathread_self(void);
-# 90 "../../../server-code/src/common/thread.h"
-int rathread_get_tid(void);
-# 101 "../../../server-code/src/common/thread.h"
-
-# 101 "../../../server-code/src/common/thread.h" 3 4
-_Bool
-# 101 "../../../server-code/src/common/thread.h"
- rathread_wait(rAthread *handle, void **out_exitCode);
-# 110 "../../../server-code/src/common/thread.h"
-void rathread_prio_set(rAthread *handle, RATHREAD_PRIO prio);
-
-
-
-
-
-
-
-RATHREAD_PRIO rathread_prio_get(rAthread *handle);
-# 128 "../../../server-code/src/common/thread.h"
-void rathread_yield(void);
-
-void rathread_init(void);
-void rathread_final(void);
-# 34 "../../../server-code/src/common/spinlock.h" 2
-# 47 "../../../server-code/src/common/spinlock.h"
-typedef struct SPIN_LOCK{
- volatile int32 lock;
- volatile int32 nest;
-
- volatile int32 sync_lock;
-} __attribute__((aligned(64))) SPIN_LOCK;
-
-
-
-
-static __attribute__((always_inline)) inline void InitializeSpinLock(SPIN_LOCK *lck){
- lck->lock = 0;
- lck->nest = 0;
- lck->sync_lock = 0;
-}
-
-static __attribute__((always_inline)) inline void FinalizeSpinLock(SPIN_LOCK *lck){
- return;
-}
-
-
-
-
-
-static __attribute__((always_inline)) inline void EnterSpinLock(SPIN_LOCK *lck){
- int tid = rathread_get_tid();
-
-
-
- do { if(InterlockedCompareExchange((&lck->sync_lock), 1, 0) == 0) break; rathread_yield(); } while( 1);
- if(InterlockedCompareExchange(&lck->lock, tid, tid) == tid){
- InterlockedIncrement(&lck->nest);
- do { InterlockedExchange((&lck->sync_lock), 0); } while(0);
- return;
- }
-
- do { InterlockedExchange((&lck->sync_lock), 0); } while(0);
-
-
- while(1){
- if(InterlockedCompareExchange(&lck->lock, tid, 0) == 0){
- InterlockedIncrement(&lck->nest);
- return;
- }
- rathread_yield();
- }
-
-}
-
-
-static __attribute__((always_inline)) inline void LeaveSpinLock(SPIN_LOCK *lck){
- int tid = rathread_get_tid();
-
- do { if(InterlockedCompareExchange((&lck->sync_lock), 1, 0) == 0) break; rathread_yield(); } while( 1);
-
- if(InterlockedCompareExchange(&lck->lock, tid, tid) == tid){
- if(InterlockedDecrement(&lck->nest) == 0)
- InterlockedExchange(&lck->lock, 0);
- }
-
- do { InterlockedExchange((&lck->sync_lock), 0); } while(0);
-}
-# 27 "../../../server-code/src/common/console.h" 2
-
-
-
-struct Sql;
-# 41 "../../../server-code/src/common/console.h"
-typedef void (*CParseFunc)(char *line);
-# 56 "../../../server-code/src/common/console.h"
-enum CONSOLE_PARSE_ENTRY_TYPE {
- CPET_UNKNOWN,
- CPET_FUNCTION,
- CPET_CATEGORY,
-};
-
-struct CParseEntry {
- char cmd[20];
- int type;
- union {
- CParseFunc func;
- struct { int _max_; int _len_; struct CParseEntry * *_data_; } children;
- } u;
-};
-
-struct console_input_interface {
-
-
- SPIN_LOCK ptlock;
- rAthread *pthread;
- volatile int32 ptstate;
- ramutex *ptmutex;
- racond *ptcond;
-
- struct { int _max_; int _len_; struct CParseEntry * *_data_; } command_list;
- struct { int _max_; int _len_; struct CParseEntry * *_data_; } commands;
-
- struct Sql *SQL;
-
- void (*parse_init) (void);
- void (*parse_final) (void);
- int (*parse_timer) (int tid, int64 tick, int id, intptr_t data);
- void *(*pthread_main) (void *x);
- void (*parse) (char* line);
- void (*parse_sub) (char* line);
- int (*key_pressed) (void);
- void (*load_defaults) (void);
- void (*parse_list_subs) (struct CParseEntry *cmd, unsigned char depth);
- void (*addCommand) (char *name, CParseFunc func);
- void (*setSQL) (struct Sql *SQL_handle);
-
-
-
-};
-
-struct console_interface {
- void (*init) (void);
- void (*final) (void);
- void (*display_title) (void);
- void (*display_gplnotice) (void);
-
- struct console_input_interface *input;
-};
-
-
-void console_defaults(void);
-
-
-extern struct console_interface *console;
-# 25 "../../../server-code/src/common/HPMi.h" 2
-
-# 1 "../../../server-code/src/common/showmsg.h" 1
-# 29 "../../../server-code/src/common/showmsg.h"
-struct config_setting_t;
-# 89 "../../../server-code/src/common/showmsg.h"
-enum msg_type {
- MSG_NONE,
- MSG_STATUS,
- MSG_SQL,
- MSG_INFORMATION,
- MSG_NOTICE,
- MSG_WARNING,
- MSG_DEBUG,
- MSG_ERROR,
- MSG_FATALERROR
-};
-
-struct showmsg_interface {
-
-# 102 "../../../server-code/src/common/showmsg.h" 3 4
-_Bool
-# 102 "../../../server-code/src/common/showmsg.h"
- stdout_with_ansisequence;
- int silent;
- int console_log;
- char timestamp_format[20];
-
- void (*init) (void);
- void (*final) (void);
-
- void (*clearScreen) (void);
- int (*showMessageV) (const char *string, va_list ap);
-
- void (*showMessage) (const char *, ...) __attribute__((format(printf, 1, 2)));
- void (*showStatus) (const char *, ...) __attribute__((format(printf, 1, 2)));
- void (*showSQL) (const char *, ...) __attribute__((format(printf, 1, 2)));
- void (*showInfo) (const char *, ...) __attribute__((format(printf, 1, 2)));
- void (*showNotice) (const char *, ...) __attribute__((format(printf, 1, 2)));
- void (*showWarning) (const char *, ...) __attribute__((format(printf, 1, 2)));
- void (*showDebug) (const char *, ...) __attribute__((format(printf, 1, 2)));
- void (*showError) (const char *, ...) __attribute__((format(printf, 1, 2)));
- void (*showFatalError) (const char *, ...) __attribute__((format(printf, 1, 2)));
- void (*showConfigWarning) (struct config_setting_t *config, const char *string, ...) __attribute__((format(printf, 2, 3)));
-};
-# 140 "../../../server-code/src/common/showmsg.h"
-void showmsg_defaults(void);
-
-
-extern struct showmsg_interface *showmsg;
-# 27 "../../../server-code/src/common/HPMi.h" 2
-
-struct Sql;
-struct script_state;
-struct AtCommandInfo;
-struct socket_data;
-struct map_session_data;
-struct hplugin_data_store;
-
-
-
-
-struct hplugin_info {
- char* name;
- enum server_types type;
- char* version;
- char* req_version;
-};
-
-struct s_HPMDataCheck {
- char *name;
- unsigned int size;
- int type;
-};
-
-
-
-enum hp_event_types {
- HPET_INIT,
- HPET_FINAL,
- HPET_READY,
- HPET_POST_FINAL,
- HPET_PRE_INIT,
- HPET_MAX,
-};
-
-enum HPluginPacketHookingPoints {
- hpClif_Parse,
- hpChrif_Parse,
- hpParse_FromMap,
- hpParse_FromLogin,
- hpParse_Char,
- hpParse_FromChar,
- hpParse_Login,
-
- hpPHP_MAX,
-};
-
-enum HPluginHookType {
- HOOK_TYPE_PRE,
- HOOK_TYPE_POST,
-};
-
-
-
-
-enum HPluginDataTypes {
- HPDT_UNKNOWN,
- HPDT_SESSION,
- HPDT_MSD,
- HPDT_NPCD,
- HPDT_MAP,
- HPDT_INSTANCE,
- HPDT_GUILD,
- HPDT_PARTY,
- HPDT_MOBDB,
- HPDT_MOBDATA,
- HPDT_ITEMDATA,
- HPDT_BGDATA,
- HPDT_AUTOTRADE_VEND,
-};
-
-
-enum HPluginConfType {
- HPCT_BATTLE,
- HPCT_LOGIN,
- HPCT_CHAR,
- HPCT_CHAR_INTER,
- HPCT_MAP_INTER,
- HPCT_LOG,
- HPCT_SCRIPT,
- HPCT_MAX,
-};
-# 220 "../../../server-code/src/common/HPMi.h"
-struct HPMi_interface {
-
- unsigned int pid;
-
- void (*event[HPET_MAX]) (void);
-
-# 225 "../../../server-code/src/common/HPMi.h" 3 4
-_Bool
-# 225 "../../../server-code/src/common/HPMi.h"
- (*addCommand) (char *name,
-# 225 "../../../server-code/src/common/HPMi.h" 3 4
- _Bool
-# 225 "../../../server-code/src/common/HPMi.h"
- (*func)(const int fd, struct map_session_data* sd, const char* command, const char* message,struct AtCommandInfo *info));
-
-# 226 "../../../server-code/src/common/HPMi.h" 3 4
-_Bool
-# 226 "../../../server-code/src/common/HPMi.h"
- (*addScript) (char *name, char *args,
-# 226 "../../../server-code/src/common/HPMi.h" 3 4
- _Bool
-# 226 "../../../server-code/src/common/HPMi.h"
- (*func)(struct script_state *st),
-# 226 "../../../server-code/src/common/HPMi.h" 3 4
- _Bool
-# 226 "../../../server-code/src/common/HPMi.h"
- isDeprecated);
- void (*addCPCommand) (char *name, CParseFunc func);
-
- void (*addToHPData) (enum HPluginDataTypes type, uint32 pluginID, struct hplugin_data_store **storeptr, void *data, uint32 classid,
-# 229 "../../../server-code/src/common/HPMi.h" 3 4
- _Bool
-# 229 "../../../server-code/src/common/HPMi.h"
- autofree);
- void *(*getFromHPData) (enum HPluginDataTypes type, uint32 pluginID, struct hplugin_data_store *store, uint32 classid);
- void (*removeFromHPData) (enum HPluginDataTypes type, uint32 pluginID, struct hplugin_data_store *store, uint32 classid);
-
-
-# 233 "../../../server-code/src/common/HPMi.h" 3 4
-_Bool
-# 233 "../../../server-code/src/common/HPMi.h"
- (*addPacket) (unsigned short cmd, unsigned short length, void (*receive)(int fd), unsigned int point, unsigned int pluginID);
-
-
-# 235 "../../../server-code/src/common/HPMi.h" 3 4
-_Bool
-# 235 "../../../server-code/src/common/HPMi.h"
- (*AddHook) (enum HPluginHookType type, const char *target, void *hook, unsigned int pID);
- void (*HookStop) (const char *func, unsigned int pID);
-
-# 237 "../../../server-code/src/common/HPMi.h" 3 4
-_Bool
-# 237 "../../../server-code/src/common/HPMi.h"
- (*HookStopped) (void);
-
-
-# 239 "../../../server-code/src/common/HPMi.h" 3 4
-_Bool
-# 239 "../../../server-code/src/common/HPMi.h"
- (*addArg) (unsigned int pluginID, char *name,
-# 239 "../../../server-code/src/common/HPMi.h" 3 4
- _Bool
-# 239 "../../../server-code/src/common/HPMi.h"
- has_param, CmdlineExecFunc func, const char *help);
-
-
-# 241 "../../../server-code/src/common/HPMi.h" 3 4
-_Bool
-# 241 "../../../server-code/src/common/HPMi.h"
- (*addConf) (unsigned int pluginID, enum HPluginConfType type, char *name, void (*parse_func) (const char *key, const char *val), int (*return_func) (const char *key));
-
- void (*addPCGPermission) (unsigned int pluginID, char *name, unsigned int *mask);
-
- struct Sql *sql_handle;
-};
-# 30 "../../../server-code/src/common/HPM.h" 2
-# 44 "../../../server-code/src/common/HPM.h"
-# 1 "/usr/include/dlfcn.h" 1 3 4
-# 24 "/usr/include/dlfcn.h" 3 4
-# 1 "/usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h" 1 3 4
-# 25 "/usr/include/dlfcn.h" 2 3 4
-
-
-# 1 "/usr/include/x86_64-linux-gnu/bits/dlfcn.h" 1 3 4
-# 28 "/usr/include/dlfcn.h" 2 3 4
-# 52 "/usr/include/dlfcn.h" 3 4
-
-
-
-
-
-# 56 "/usr/include/dlfcn.h" 3 4
-extern void *dlopen (const char *__file, int __mode) __attribute__ ((__nothrow__));
-
-
-
-extern int dlclose (void *__handle) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
-
-
-
-extern void *dlsym (void *__restrict __handle,
- const char *__restrict __name) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2)));
-# 82 "/usr/include/dlfcn.h" 3 4
-extern char *dlerror (void) __attribute__ ((__nothrow__ , __leaf__));
-# 188 "/usr/include/dlfcn.h" 3 4
-
-# 45 "../../../server-code/src/common/HPM.h" 2
-# 64 "../../../server-code/src/common/HPM.h"
-# 1 "/usr/include/string.h" 1 3 4
-# 27 "/usr/include/string.h" 3 4
-
-
-
-
-
-# 1 "/usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h" 1 3 4
-# 33 "/usr/include/string.h" 2 3 4
-
-
-
-
-
-
-
-
-
-extern void *memcpy (void *__restrict __dest, const void *__restrict __src,
- size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
-
-
-extern void *memmove (void *__dest, const void *__src, size_t __n)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
-
-
-
-
-
-
-extern void *memccpy (void *__restrict __dest, const void *__restrict __src,
- int __c, size_t __n)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
-
-
-
-
-
-extern void *memset (void *__s, int __c, size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
-
-
-extern int memcmp (const void *__s1, const void *__s2, size_t __n)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
-# 92 "/usr/include/string.h" 3 4
-extern void *memchr (const void *__s, int __c, size_t __n)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
-
-
-# 123 "/usr/include/string.h" 3 4
-
-
-extern char *strcpy (char *__restrict __dest, const char *__restrict __src)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
-
-extern char *strncpy (char *__restrict __dest,
- const char *__restrict __src, size_t __n)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
-
-
-extern char *strcat (char *__restrict __dest, const char *__restrict __src)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
-
-extern char *strncat (char *__restrict __dest, const char *__restrict __src,
- size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
-
-
-extern int strcmp (const char *__s1, const char *__s2)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
-
-extern int strncmp (const char *__s1, const char *__s2, size_t __n)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
-
-
-extern int strcoll (const char *__s1, const char *__s2)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
-
-extern size_t strxfrm (char *__restrict __dest,
- const char *__restrict __src, size_t __n)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2)));
-
-# 162 "/usr/include/string.h" 3 4
-extern int strcoll_l (const char *__s1, const char *__s2, __locale_t __l)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 3)));
-
-extern size_t strxfrm_l (char *__dest, const char *__src, size_t __n,
- __locale_t __l) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 4)));
-
-
-
-
-extern char *strdup (const char *__s)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1)));
-
-
-
-
-
-
-extern char *strndup (const char *__string, size_t __n)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1)));
-# 206 "/usr/include/string.h" 3 4
-
-# 231 "/usr/include/string.h" 3 4
-extern char *strchr (const char *__s, int __c)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
-# 258 "/usr/include/string.h" 3 4
-extern char *strrchr (const char *__s, int __c)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
-
-
-# 277 "/usr/include/string.h" 3 4
-
-
-
-extern size_t strcspn (const char *__s, const char *__reject)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
-
-
-extern size_t strspn (const char *__s, const char *__accept)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
-# 310 "/usr/include/string.h" 3 4
-extern char *strpbrk (const char *__s, const char *__accept)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
-# 337 "/usr/include/string.h" 3 4
-extern char *strstr (const char *__haystack, const char *__needle)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
-
-
-
-
-extern char *strtok (char *__restrict __s, const char *__restrict __delim)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2)));
-
-
-
-
-extern char *__strtok_r (char *__restrict __s,
- const char *__restrict __delim,
- char **__restrict __save_ptr)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 3)));
-
-extern char *strtok_r (char *__restrict __s, const char *__restrict __delim,
- char **__restrict __save_ptr)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 3)));
-# 392 "/usr/include/string.h" 3 4
-
-
-extern size_t strlen (const char *__s)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
-
-
-
-
-
-extern size_t strnlen (const char *__string, size_t __maxlen)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
-
-
-
-
-
-extern char *strerror (int __errnum) __attribute__ ((__nothrow__ , __leaf__));
-
-# 422 "/usr/include/string.h" 3 4
-extern int strerror_r (int __errnum, char *__buf, size_t __buflen) __asm__ ("" "__xpg_strerror_r") __attribute__ ((__nothrow__ , __leaf__))
-
- __attribute__ ((__nonnull__ (2)));
-# 440 "/usr/include/string.h" 3 4
-extern char *strerror_l (int __errnum, __locale_t __l) __attribute__ ((__nothrow__ , __leaf__));
-
-
-
-
-
-extern void __bzero (void *__s, size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
-
-
-
-extern void bcopy (const void *__src, void *__dest, size_t __n)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
-
-
-extern void bzero (void *__s, size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
-
-
-extern int bcmp (const void *__s1, const void *__s2, size_t __n)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
-# 484 "/usr/include/string.h" 3 4
-extern char *index (const char *__s, int __c)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
-# 512 "/usr/include/string.h" 3 4
-extern char *rindex (const char *__s, int __c)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
-
-
-
-
-extern int ffs (int __i) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__));
-# 529 "/usr/include/string.h" 3 4
-extern int strcasecmp (const char *__s1, const char *__s2)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
-
-
-extern int strncasecmp (const char *__s1, const char *__s2, size_t __n)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
-# 552 "/usr/include/string.h" 3 4
-extern char *strsep (char **__restrict __stringp,
- const char *__restrict __delim)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
-
-
-
-
-extern char *strsignal (int __sig) __attribute__ ((__nothrow__ , __leaf__));
-
-
-extern char *__stpcpy (char *__restrict __dest, const char *__restrict __src)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
-extern char *stpcpy (char *__restrict __dest, const char *__restrict __src)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
-
-
-
-extern char *__stpncpy (char *__restrict __dest,
- const char *__restrict __src, size_t __n)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
-extern char *stpncpy (char *__restrict __dest,
- const char *__restrict __src, size_t __n)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
-# 639 "/usr/include/string.h" 3 4
-
-# 65 "../../../server-code/src/common/HPM.h" 2
-
-
-
-
-# 68 "../../../server-code/src/common/HPM.h"
-struct hplugin {
- void * dll;
- unsigned int idx;
- char *filename;
- struct hplugin_info *info;
- struct HPMi_interface *hpi;
-};
-
-
-
-
-struct hpm_symbol {
- const char *name;
- void *ptr;
-};
-
-
-
-
-struct hplugin_data_entry {
- uint32 pluginID;
- uint32 classid;
- struct {
- unsigned int free : 1;
- } flag;
- void *data;
-};
-
-
-
-
-struct hplugin_data_store {
- enum HPluginDataTypes type;
- struct { int _max_; int _len_; struct hplugin_data_entry * *_data_; } entries;
-};
-
-struct HPluginPacket {
- unsigned int pluginID;
- unsigned short cmd;
- short len;
- void (*receive) (int fd);
-};
-
-struct HPMFileNameCache {
- const char *addr;
- char *name;
-};
-
-
-struct HPConfListenStorage {
- unsigned int pluginID;
- char key[40];
- void (*parse_func) (const char *key, const char *val);
- int (*return_func) (const char *key);
-};
-
-
-struct HPM_interface {
-
- unsigned int version[2];
-
-# 128 "../../../server-code/src/common/HPM.h" 3 4
-_Bool
-# 128 "../../../server-code/src/common/HPM.h"
- off;
-
-# 129 "../../../server-code/src/common/HPM.h" 3 4
-_Bool
-# 129 "../../../server-code/src/common/HPM.h"
- hooking;
-
-
-# 131 "../../../server-code/src/common/HPM.h" 3 4
-_Bool
-# 131 "../../../server-code/src/common/HPM.h"
- force_return;
-
- struct { int _max_; int _len_; struct hplugin * *_data_; } plugins;
- struct { int _max_; int _len_; struct hpm_symbol * *_data_; } symbols;
-
- struct { int _max_; int _len_; struct HPluginPacket *_data_; } packets[hpPHP_MAX];
-
- struct {
-
- int count;
- struct HPMFileNameCache *data;
- } filenames;
-
- struct { int _max_; int _len_; struct HPConfListenStorage *_data_; } config_listeners[HPCT_MAX];
-
- struct { int _max_; int _len_; char * *_data_; } cmdline_load_plugins;
-
- void (*init) (void);
- void (*final) (void);
- struct hplugin * (*create) (void);
- struct hplugin * (*load) (const char* filename);
- void (*unload) (struct hplugin* plugin);
-
-# 153 "../../../server-code/src/common/HPM.h" 3 4
-_Bool
-# 153 "../../../server-code/src/common/HPM.h"
- (*exists) (const char *filename);
-
-# 154 "../../../server-code/src/common/HPM.h" 3 4
-_Bool
-# 154 "../../../server-code/src/common/HPM.h"
- (*iscompatible) (char* version);
- void (*event) (enum hp_event_types type);
- void *(*import_symbol) (char *name, unsigned int pID);
- void (*share) (void *value, const char *name);
- void (*config_read) (void);
- char *(*pid2name) (unsigned int pid);
- unsigned char (*parse_packets) (int fd, int packet_id, enum HPluginPacketHookingPoints point);
- void (*load_sub) (struct hplugin *plugin);
-
-# 162 "../../../server-code/src/common/HPM.h" 3 4
-_Bool
-# 162 "../../../server-code/src/common/HPM.h"
- (*addhook_sub) (enum HPluginHookType type, const char *target, void *hook, unsigned int pID);
-
-
-# 164 "../../../server-code/src/common/HPM.h" 3 4
-_Bool
-# 164 "../../../server-code/src/common/HPM.h"
- (*parseConf) (const char *w1, const char *w2, enum HPluginConfType point);
-
-# 165 "../../../server-code/src/common/HPM.h" 3 4
-_Bool
-# 165 "../../../server-code/src/common/HPM.h"
- (*getBattleConf) (const char* w1, int *value);
-
-
-# 167 "../../../server-code/src/common/HPM.h" 3 4
-_Bool
-# 167 "../../../server-code/src/common/HPM.h"
- (*DataCheck) (struct s_HPMDataCheck *src, unsigned int size, int version, char *name);
- void (*datacheck_init) (const struct s_HPMDataCheck *src, unsigned int length, int version);
- void (*datacheck_final) (void);
-
- void (*data_store_create) (struct hplugin_data_store **storeptr, enum HPluginDataTypes type);
- void (*data_store_destroy) (struct hplugin_data_store **storeptr);
-
-# 173 "../../../server-code/src/common/HPM.h" 3 4
-_Bool
-# 173 "../../../server-code/src/common/HPM.h"
- (*data_store_validate) (enum HPluginDataTypes type, struct hplugin_data_store **storeptr,
-# 173 "../../../server-code/src/common/HPM.h" 3 4
- _Bool
-# 173 "../../../server-code/src/common/HPM.h"
- initialize);
-
-
-# 175 "../../../server-code/src/common/HPM.h" 3 4
-_Bool
-# 175 "../../../server-code/src/common/HPM.h"
- (*data_store_validate_sub) (enum HPluginDataTypes type, struct hplugin_data_store **storeptr,
-# 175 "../../../server-code/src/common/HPM.h" 3 4
- _Bool
-# 175 "../../../server-code/src/common/HPM.h"
- initialize);
-};
-
-
-# 178 "../../../server-code/src/common/HPM.h" 3 4
-_Bool
-# 178 "../../../server-code/src/common/HPM.h"
-cmdline_arg_loadplugin (const char *name, const char *params);
-
-extern struct HPM_interface *HPM;
-
-void hpm_defaults(void);
-# 29 "../../../server-code/src/char/HPMchar.h" 2
-
-struct hplugin;
-
-
-# 32 "../../../server-code/src/char/HPMchar.h" 3 4
-_Bool
-# 32 "../../../server-code/src/char/HPMchar.h"
- HPM_char_data_store_validate(enum HPluginDataTypes type, struct hplugin_data_store **storeptr,
-# 32 "../../../server-code/src/char/HPMchar.h" 3 4
- _Bool
-# 32 "../../../server-code/src/char/HPMchar.h"
- initialize);
-
-void HPM_char_plugin_load_sub(struct hplugin *plugin);
-
-void HPM_char_do_final(void);
-
-void HPM_char_do_init(void);
-# 27 "../../../server-code/src/char/char.c" 2
-# 1 "../../../server-code/src/char/geoip.h" 1
-# 29 "../../../server-code/src/char/geoip.h"
-struct s_geoip {
- unsigned char *cache;
-
-# 31 "../../../server-code/src/char/geoip.h" 3 4
-_Bool
-# 31 "../../../server-code/src/char/geoip.h"
- active;
-};
-
-
-
-
-
-struct geoip_interface {
- struct s_geoip *data;
- const char* (*getcountry) (uint32 ipnum);
- void (*final) (
-# 41 "../../../server-code/src/char/geoip.h" 3 4
- _Bool
-# 41 "../../../server-code/src/char/geoip.h"
- shutdown);
- void (*init) (void);
-};
-
-
-void geoip_defaults(void);
-
-
-extern struct geoip_interface *geoip;
-# 28 "../../../server-code/src/char/char.c" 2
-# 1 "../../../server-code/src/char/int_auction.h" 1
-# 28 "../../../server-code/src/char/int_auction.h"
-struct DBMap;
-
-
-
-
-struct inter_auction_interface {
- struct DBMap *db;
- int (*count) (int char_id,
-# 35 "../../../server-code/src/char/int_auction.h" 3 4
- _Bool
-# 35 "../../../server-code/src/char/int_auction.h"
- buy);
- void (*save) (struct auction_data *auction);
- unsigned int (*create) (struct auction_data *auction);
- int (*end_timer) (int tid, int64 tick, int id, intptr_t data);
- void (*delete_) (struct auction_data *auction);
- void (*fromsql) (void);
- int (*parse_frommap) (int fd);
- int (*sql_init) (void);
- void (*sql_final) (void);
-};
-
-
-void inter_auction_defaults(void);
-
-
-extern struct inter_auction_interface *inter_auction;
-# 29 "../../../server-code/src/char/char.c" 2
-# 1 "../../../server-code/src/char/int_elemental.h" 1
-# 29 "../../../server-code/src/char/int_elemental.h"
-struct inter_elemental_interface {
- void (*sql_init) (void);
- void (*sql_final) (void);
- int (*parse_frommap) (int fd);
-};
-
-
-void inter_elemental_defaults(void);
-
-
-extern struct inter_elemental_interface *inter_elemental;
-# 30 "../../../server-code/src/char/char.c" 2
-# 1 "../../../server-code/src/char/int_guild.h" 1
-# 27 "../../../server-code/src/char/int_guild.h"
-enum {
- GS_BASIC = 0x0001,
- GS_MEMBER = 0x0002,
- GS_POSITION = 0x0004,
- GS_ALLIANCE = 0x0008,
- GS_EXPULSION = 0x0010,
- GS_SKILL = 0x0020,
- GS_EMBLEM = 0x0040,
- GS_CONNECT = 0x0080,
- GS_LEVEL = 0x0100,
- GS_MES = 0x0200,
- GS_MASK = 0x03FF,
- GS_BASIC_MASK = (GS_BASIC | GS_EMBLEM | GS_CONNECT | GS_LEVEL | GS_MES),
- GS_REMOVE = 0x8000,
-};
-
-
-
-
-struct inter_guild_interface {
- struct DBMap *guild_db;
- struct DBMap *castle_db;
- unsigned int exp[50];
-
- int (*save_timer) (int tid, int64 tick, int id, intptr_t data);
- int (*removemember_tosql) (int account_id, int char_id);
- int (*tosql) (struct guild *g, int flag);
- struct guild* (*fromsql) (int guild_id);
- int (*castle_tosql) (struct guild_castle *gc);
- struct guild_castle* (*castle_fromsql) (int castle_id);
-
-# 57 "../../../server-code/src/char/int_guild.h" 3 4
-_Bool
-# 57 "../../../server-code/src/char/int_guild.h"
- (*exp_parse_row) (char* split[], int column, int current);
- int (*CharOnline) (int char_id, int guild_id);
- int (*CharOffline) (int char_id, int guild_id);
- int (*sql_init) (void);
- int (*db_final) (union DBKey key, struct DBData *data, va_list ap);
- void (*sql_final) (void);
- int (*search_guildname) (const char *str);
-
-# 64 "../../../server-code/src/char/int_guild.h" 3 4
-_Bool
-# 64 "../../../server-code/src/char/int_guild.h"
- (*check_empty) (struct guild *g);
- unsigned int (*nextexp) (int level);
- int (*checkskill) (struct guild *g, int id);
- int (*calcinfo) (struct guild *g);
- int (*sex_changed) (int guild_id, int account_id, int char_id, short gender);
- int (*charname_changed) (int guild_id, int account_id, int char_id, char *name);
- int (*parse_frommap) (int fd);
- int (*leave) (int guild_id, int account_id, int char_id);
- int (*broken) (int guild_id);
-};
-
-
-void inter_guild_defaults(void);
-
-
-extern struct inter_guild_interface *inter_guild;
-# 31 "../../../server-code/src/char/char.c" 2
-# 1 "../../../server-code/src/char/int_homun.h" 1
-# 29 "../../../server-code/src/char/int_homun.h"
-struct inter_homunculus_interface {
- int (*sql_init) (void);
- void (*sql_final) (void);
- int (*parse_frommap) (int fd);
-};
-
-
-void inter_homunculus_defaults(void);
-
-
-extern struct inter_homunculus_interface *inter_homunculus;
-# 32 "../../../server-code/src/char/char.c" 2
-# 1 "../../../server-code/src/char/int_mail.h" 1
-# 26 "../../../server-code/src/char/int_mail.h"
-struct item;
-struct mail_data;
-struct mail_message;
-
-
-
-
-struct inter_mail_interface {
- int (*sql_init) (void);
- void (*sql_final) (void);
- int (*parse_frommap) (int fd);
- int (*fromsql) (int char_id, struct mail_data* md);
- int (*savemessage) (struct mail_message* msg);
-
-# 39 "../../../server-code/src/char/int_mail.h" 3 4
-_Bool
-# 39 "../../../server-code/src/char/int_mail.h"
- (*loadmessage) (int mail_id, struct mail_message* msg);
-
-# 40 "../../../server-code/src/char/int_mail.h" 3 4
-_Bool
-# 40 "../../../server-code/src/char/int_mail.h"
- (*DeleteAttach) (int mail_id);
- void (*sendmail) (int send_id, const char* send_name, int dest_id, const char* dest_name, const char* title, const char* body, int zeny, struct item *item);
-};
-
-
-void inter_mail_defaults(void);
-
-
-extern struct inter_mail_interface *inter_mail;
-# 33 "../../../server-code/src/char/char.c" 2
-# 1 "../../../server-code/src/char/int_mercenary.h" 1
-# 26 "../../../server-code/src/char/int_mercenary.h"
-struct mmo_charstatus;
-
-
-
-
-struct inter_mercenary_interface {
-
-# 32 "../../../server-code/src/char/int_mercenary.h" 3 4
-_Bool
-# 32 "../../../server-code/src/char/int_mercenary.h"
- (*owner_fromsql) (int char_id, struct mmo_charstatus *status);
-
-# 33 "../../../server-code/src/char/int_mercenary.h" 3 4
-_Bool
-# 33 "../../../server-code/src/char/int_mercenary.h"
- (*owner_tosql) (int char_id, struct mmo_charstatus *status);
-
-# 34 "../../../server-code/src/char/int_mercenary.h" 3 4
-_Bool
-# 34 "../../../server-code/src/char/int_mercenary.h"
- (*owner_delete) (int char_id);
- int (*sql_init) (void);
- void (*sql_final) (void);
- int (*parse_frommap) (int fd);
-};
-
-
-void inter_mercenary_defaults(void);
-
-
-extern struct inter_mercenary_interface *inter_mercenary;
-# 34 "../../../server-code/src/char/char.c" 2
-# 1 "../../../server-code/src/char/int_party.h" 1
-# 28 "../../../server-code/src/char/int_party.h"
-struct DBMap;
-
-
-enum {
- PS_CREATE = 0x01,
- PS_BASIC = 0x02,
- PS_LEADER = 0x04,
- PS_ADDMEMBER = 0x08,
- PS_DELMEMBER = 0x10,
- PS_BREAK = 0x20,
-};
-
-struct party_data {
- struct party party;
- unsigned int min_lv, max_lv;
- int family;
- unsigned char size;
-};
-
-
-
-
-struct inter_party_interface {
- struct party_data *pt;
- struct DBMap *db;
- int (*check_lv) (struct party_data *p);
- void (*calc_state) (struct party_data *p);
- int (*tosql) (struct party *p, int flag, int index);
- struct party_data* (*fromsql) (int party_id);
- int (*sql_init) (void);
- void (*sql_final) (void);
- struct party_data* (*search_partyname) (const char *str);
- int (*check_exp_share) (struct party_data *p);
- int (*check_empty) (struct party_data *p);
- int (*parse_frommap) (int fd);
- int (*leave) (int party_id,int account_id, int char_id);
- int (*CharOnline) (int char_id, int party_id);
- int (*CharOffline) (int char_id, int party_id);
-};
-
-
-void inter_party_defaults(void);
-
-
-extern struct inter_party_interface *inter_party;
-# 35 "../../../server-code/src/char/char.c" 2
-# 1 "../../../server-code/src/char/int_pet.h" 1
-# 26 "../../../server-code/src/char/int_pet.h"
-struct s_pet;
-
-
-
-
-struct inter_pet_interface {
- struct s_pet *pt;
- int (*tosql) (const struct s_pet *p);
- int (*fromsql) (int pet_id, struct s_pet* p);
- int (*sql_init) (void);
- void (*sql_final) (void);
- int (*delete_) (int pet_id);
- int (*parse_frommap) (int fd);
-};
-
-
-void inter_pet_defaults(void);
-
-
-extern struct inter_pet_interface *inter_pet;
-# 36 "../../../server-code/src/char/char.c" 2
-# 1 "../../../server-code/src/char/int_quest.h" 1
-# 29 "../../../server-code/src/char/int_quest.h"
-struct inter_quest_interface {
- int (*parse_frommap) (int fd);
-};
-
-
-void inter_quest_defaults(void);
-
-
-extern struct inter_quest_interface *inter_quest;
-# 37 "../../../server-code/src/char/char.c" 2
-# 1 "../../../server-code/src/char/int_storage.h" 1
-# 26 "../../../server-code/src/char/int_storage.h"
-struct storage_data;
-struct guild_storage;
-
-
-
-
-struct inter_storage_interface {
- int (*tosql) (int account_id, struct storage_data* p);
- int (*fromsql) (int account_id, struct storage_data* p);
- int (*guild_storage_tosql) (int guild_id, const struct guild_storage *p);
- int (*guild_storage_fromsql) (int guild_id, struct guild_storage* p);
- int (*sql_init) (void);
- void (*sql_final) (void);
- int (*delete_) (int account_id);
- int (*guild_storage_delete) (int guild_id);
- int (*parse_frommap) (int fd);
-};
-
-
-void inter_storage_defaults(void);
-
-
-extern struct inter_storage_interface *inter_storage;
-# 38 "../../../server-code/src/char/char.c" 2
-# 1 "../../../server-code/src/char/inter.h" 1
-# 30 "../../../server-code/src/char/inter.h"
-struct Sql;
-
-
-
-
-struct inter_interface {
- struct Sql *sql_handle;
- const char* (*msg_txt) (int msg_number);
-
-# 38 "../../../server-code/src/char/inter.h" 3 4
-_Bool
-# 38 "../../../server-code/src/char/inter.h"
- (*msg_config_read) (const char *cfg_name,
-# 38 "../../../server-code/src/char/inter.h" 3 4
- _Bool
-# 38 "../../../server-code/src/char/inter.h"
- allow_override);
- void (*do_final_msg) (void);
- const char* (*job_name) (int class_);
- void (*vmsg_to_fd) (int fd, int u_fd, int aid, char* msg, va_list ap);
- void (*msg_to_fd) (int fd, int u_fd, int aid, char *msg, ...) __attribute__((format(printf, 4, 5)));
- void (*savereg) (int account_id, int char_id, const char *key, unsigned int index, intptr_t val,
-# 43 "../../../server-code/src/char/inter.h" 3 4
- _Bool
-# 43 "../../../server-code/src/char/inter.h"
- is_string);
- int (*accreg_fromsql) (int account_id,int char_id, int fd, int type);
- int (*config_read) (const char* cfgName);
- int (*vlog) (char* fmt, va_list ap);
- int (*log) (char* fmt, ...);
- int (*init_sql) (const char *file);
- int (*mapif_init) (int fd);
- int (*check_ttl_wisdata_sub) (union DBKey key, struct DBData *data, va_list ap);
- int (*check_ttl_wisdata) (void);
- int (*check_length) (int fd, int length);
- int (*parse_frommap) (int fd);
- void (*final) (void);
-};
-
-
-extern unsigned int party_share_level;
-
-void inter_defaults(void);
-
-
-extern struct inter_interface *inter;
-# 39 "../../../server-code/src/char/char.c" 2
-# 1 "../../../server-code/src/char/loginif.h" 1
-# 26 "../../../server-code/src/char/loginif.h"
-struct char_session_data;
-
-
-
-
-struct loginif_interface {
- void (*init) (void);
- void (*final) (void);
- void (*reset) (void);
- void (*check_shutdown) (void);
- void (*on_disconnect) (void);
- void (*on_ready) (void);
- void (*block_account) (int account_id, int flag);
- void (*ban_account) (int account_id, short year, short month, short day, short hour, short minute, short second);
- void (*unban_account) (int account_id);
- void (*changesex) (int account_id);
- void (*auth) (int fd, struct char_session_data* sd, uint32 ipl);
- void (*send_users_count) (int users);
- void (*connect_to_server) (void);
-};
-
-
-void loginif_defaults(void);
-
-
-extern struct loginif_interface *loginif;
-# 40 "../../../server-code/src/char/char.c" 2
-# 1 "../../../server-code/src/char/mapif.h" 1
-# 26 "../../../server-code/src/char/mapif.h"
-struct WisData;
-
-
-
-
-struct mapif_interface {
- void (*ban) (int id, unsigned int flag, int status);
- void (*server_init) (int id);
- void (*server_destroy) (int id);
- void (*server_reset) (int id);
- void (*on_disconnect) (int id);
- void (*on_parse_accinfo) (int account_id, int u_fd, int u_aid, int u_group, int map_fd);
- void (*char_ban) (int char_id, time_t timestamp);
- int (*sendall) (const unsigned char *buf, unsigned int len);
- int (*sendallwos) (int sfd, unsigned char *buf, unsigned int len);
- int (*send) (int fd, unsigned char *buf, unsigned int len);
- void (*send_users_count) (int users);
- void (*auction_message) (int char_id, unsigned char result);
- void (*auction_sendlist) (int fd, int char_id, short count, short pages, unsigned char *buf);
- void (*parse_auction_requestlist) (int fd);
- void (*auction_register) (int fd, struct auction_data *auction);
- void (*parse_auction_register) (int fd);
- void (*auction_cancel) (int fd, int char_id, unsigned char result);
- void (*parse_auction_cancel) (int fd);
- void (*auction_close) (int fd, int char_id, unsigned char result);
- void (*parse_auction_close) (int fd);
- void (*auction_bid) (int fd, int char_id, int bid, unsigned char result);
- void (*parse_auction_bid) (int fd);
-
-# 54 "../../../server-code/src/char/mapif.h" 3 4
-_Bool
-# 54 "../../../server-code/src/char/mapif.h"
- (*elemental_create) (struct s_elemental *ele);
-
-# 55 "../../../server-code/src/char/mapif.h" 3 4
-_Bool
-# 55 "../../../server-code/src/char/mapif.h"
- (*elemental_save) (const struct s_elemental *ele);
-
-# 56 "../../../server-code/src/char/mapif.h" 3 4
-_Bool
-# 56 "../../../server-code/src/char/mapif.h"
- (*elemental_load) (int ele_id, int char_id, struct s_elemental *ele);
-
-# 57 "../../../server-code/src/char/mapif.h" 3 4
-_Bool
-# 57 "../../../server-code/src/char/mapif.h"
- (*elemental_delete) (int ele_id);
- void (*elemental_send) (int fd, struct s_elemental *ele, unsigned char flag);
- void (*parse_elemental_create) (int fd, const struct s_elemental *ele);
- void (*parse_elemental_load) (int fd, int ele_id, int char_id);
- void (*elemental_deleted) (int fd, unsigned char flag);
- void (*parse_elemental_delete) (int fd, int ele_id);
- void (*elemental_saved) (int fd, unsigned char flag);
- void (*parse_elemental_save) (int fd, const struct s_elemental *ele);
- int (*guild_created) (int fd, int account_id, struct guild *g);
- int (*guild_noinfo) (int fd, int guild_id);
- int (*guild_info) (int fd, struct guild *g);
- int (*guild_memberadded) (int fd, int guild_id, int account_id, int char_id, int flag);
- int (*guild_withdraw) (int guild_id, int account_id, int char_id, int flag, const char *name, const char *mes);
- int (*guild_memberinfoshort) (struct guild *g, int idx);
- int (*guild_broken) (int guild_id, int flag);
- int (*guild_message) (int guild_id, int account_id, const char *mes, int len, int sfd);
- int (*guild_basicinfochanged) (int guild_id, int type, const void *data, int len);
- int (*guild_memberinfochanged) (int guild_id, int account_id, int char_id, int type, const void *data, int len);
- int (*guild_skillupack) (int guild_id, uint16 skill_id, int account_id);
- int (*guild_alliance) (int guild_id1, int guild_id2, int account_id1, int account_id2, int flag, const char *name1, const char *name2);
- int (*guild_position) (struct guild *g, int idx);
- int (*guild_notice) (struct guild *g);
- int (*guild_emblem) (struct guild *g);
- int (*guild_master_changed) (struct guild *g, int aid, int cid);
- int (*guild_castle_dataload) (int fd, int sz, const int *castle_ids);
- int (*parse_CreateGuild) (int fd, int account_id, const char *name, const struct guild_member *master);
- int (*parse_GuildInfo) (int fd, int guild_id);
- int (*parse_GuildAddMember) (int fd, int guild_id, const struct guild_member *m);
- int (*parse_GuildLeave) (int fd, int guild_id, int account_id, int char_id, int flag, const char *mes);
- int (*parse_GuildChangeMemberInfoShort) (int fd, int guild_id, int account_id, int char_id, int online, int lv, int class_);
- int (*parse_BreakGuild) (int fd, int guild_id);
- int (*parse_GuildMessage) (int fd, int guild_id, int account_id, const char *mes, int len);
- int (*parse_GuildBasicInfoChange) (int fd, int guild_id, int type, const void *data, int len);
- int (*parse_GuildMemberInfoChange) (int fd, int guild_id, int account_id, int char_id, int type, const char *data, int len);
- int (*parse_GuildPosition) (int fd, int guild_id, int idx, const struct guild_position *p);
- int (*parse_GuildSkillUp) (int fd, int guild_id, uint16 skill_id, int account_id, int max);
- int (*parse_GuildDeleteAlliance) (struct guild *g, int guild_id, int account_id1, int account_id2, int flag);
- int (*parse_GuildAlliance) (int fd, int guild_id1, int guild_id2, int account_id1, int account_id2, int flag);
- int (*parse_GuildNotice) (int fd, int guild_id, const char *mes1, const char *mes2);
- int (*parse_GuildEmblem) (int fd, int len, int guild_id, int dummy, const char *data);
- int (*parse_GuildCastleDataLoad) (int fd, int len, const int *castle_ids);
- int (*parse_GuildCastleDataSave) (int fd, int castle_id, int index, int value);
- int (*parse_GuildMasterChange) (int fd, int guild_id, const char* name, int len);
- void (*homunculus_created) (int fd, int account_id, const struct s_homunculus *sh, unsigned char flag);
- void (*homunculus_deleted) (int fd, int flag);
- void (*homunculus_loaded) (int fd, int account_id, struct s_homunculus *hd);
- void (*homunculus_saved) (int fd, int account_id,
-# 103 "../../../server-code/src/char/mapif.h" 3 4
- _Bool
-# 103 "../../../server-code/src/char/mapif.h"
- flag);
- void (*homunculus_renamed) (int fd, int account_id, int char_id, unsigned char flag, const char *name);
-
-# 105 "../../../server-code/src/char/mapif.h" 3 4
-_Bool
-# 105 "../../../server-code/src/char/mapif.h"
- (*homunculus_create) (struct s_homunculus *hd);
-
-# 106 "../../../server-code/src/char/mapif.h" 3 4
-_Bool
-# 106 "../../../server-code/src/char/mapif.h"
- (*homunculus_save) (const struct s_homunculus *hd);
-
-# 107 "../../../server-code/src/char/mapif.h" 3 4
-_Bool
-# 107 "../../../server-code/src/char/mapif.h"
- (*homunculus_load) (int homun_id, struct s_homunculus* hd);
-
-# 108 "../../../server-code/src/char/mapif.h" 3 4
-_Bool
-# 108 "../../../server-code/src/char/mapif.h"
- (*homunculus_delete) (int homun_id);
-
-# 109 "../../../server-code/src/char/mapif.h" 3 4
-_Bool
-# 109 "../../../server-code/src/char/mapif.h"
- (*homunculus_rename) (const char *name);
- void (*parse_homunculus_create) (int fd, int len, int account_id, const struct s_homunculus *phd);
- void (*parse_homunculus_delete) (int fd, int homun_id);
- void (*parse_homunculus_load) (int fd, int account_id, int homun_id);
- void (*parse_homunculus_save) (int fd, int len, int account_id, const struct s_homunculus *phd);
- void (*parse_homunculus_rename) (int fd, int account_id, int char_id, const char *name);
- void (*mail_sendinbox) (int fd, int char_id, unsigned char flag, struct mail_data *md);
- void (*parse_mail_requestinbox) (int fd);
- void (*parse_mail_read) (int fd);
- void (*mail_sendattach) (int fd, int char_id, struct mail_message *msg);
- void (*mail_getattach) (int fd, int char_id, int mail_id);
- void (*parse_mail_getattach) (int fd);
- void (*mail_delete) (int fd, int char_id, int mail_id,
-# 121 "../../../server-code/src/char/mapif.h" 3 4
- _Bool
-# 121 "../../../server-code/src/char/mapif.h"
- failed);
- void (*parse_mail_delete) (int fd);
- void (*mail_new) (struct mail_message *msg);
- void (*mail_return) (int fd, int char_id, int mail_id, int new_mail);
- void (*parse_mail_return) (int fd);
- void (*mail_send) (int fd, struct mail_message* msg);
- void (*parse_mail_send) (int fd);
-
-# 128 "../../../server-code/src/char/mapif.h" 3 4
-_Bool
-# 128 "../../../server-code/src/char/mapif.h"
- (*mercenary_create) (struct s_mercenary *merc);
-
-# 129 "../../../server-code/src/char/mapif.h" 3 4
-_Bool
-# 129 "../../../server-code/src/char/mapif.h"
- (*mercenary_save) (const struct s_mercenary *merc);
-
-# 130 "../../../server-code/src/char/mapif.h" 3 4
-_Bool
-# 130 "../../../server-code/src/char/mapif.h"
- (*mercenary_load) (int merc_id, int char_id, struct s_mercenary *merc);
-
-# 131 "../../../server-code/src/char/mapif.h" 3 4
-_Bool
-# 131 "../../../server-code/src/char/mapif.h"
- (*mercenary_delete) (int merc_id);
- void (*mercenary_send) (int fd, struct s_mercenary *merc, unsigned char flag);
- void (*parse_mercenary_create) (int fd, const struct s_mercenary *merc);
- void (*parse_mercenary_load) (int fd, int merc_id, int char_id);
- void (*mercenary_deleted) (int fd, unsigned char flag);
- void (*parse_mercenary_delete) (int fd, int merc_id);
- void (*mercenary_saved) (int fd, unsigned char flag);
- void (*parse_mercenary_save) (int fd, const struct s_mercenary *merc);
- int (*party_created) (int fd, int account_id, int char_id, struct party *p);
- void (*party_noinfo) (int fd, int party_id, int char_id);
- void (*party_info) (int fd, struct party* p, int char_id);
- int (*party_memberadded) (int fd, int party_id, int account_id, int char_id, int flag);
- int (*party_optionchanged) (int fd, struct party *p, int account_id, int flag);
- int (*party_withdraw) (int party_id,int account_id, int char_id);
- int (*party_membermoved) (struct party *p, int idx);
- int (*party_broken) (int party_id, int flag);
- int (*party_message) (int party_id, int account_id, const char *mes, int len, int sfd);
- int (*parse_CreateParty) (int fd, const char *name, int item, int item2, const struct party_member *leader);
- void (*parse_PartyInfo) (int fd, int party_id, int char_id);
- int (*parse_PartyAddMember) (int fd, int party_id, const struct party_member *member);
- int (*parse_PartyChangeOption) (int fd,int party_id,int account_id,int exp,int item);
- int (*parse_PartyLeave) (int fd, int party_id, int account_id, int char_id);
- int (*parse_PartyChangeMap) (int fd, int party_id, int account_id, int char_id, unsigned short map, int online, unsigned int lv);
- int (*parse_BreakParty) (int fd, int party_id);
- int (*parse_PartyMessage) (int fd, int party_id, int account_id, const char *mes, int len);
- int (*parse_PartyLeaderChange) (int fd, int party_id, int account_id, int char_id);
- int (*pet_created) (int fd, int account_id, struct s_pet *p);
- int (*pet_info) (int fd, int account_id, struct s_pet *p);
- int (*pet_noinfo) (int fd, int account_id);
- int (*save_pet_ack) (int fd, int account_id, int flag);
- int (*delete_pet_ack) (int fd, int flag);
- int (*create_pet) (int fd, int account_id, int char_id, short pet_class, short pet_lv, short pet_egg_id,
- short pet_equip, short intimate, short hungry, char rename_flag, char incubate, const char *pet_name);
- int (*load_pet) (int fd, int account_id, int char_id, int pet_id);
- int (*save_pet) (int fd, int account_id, const struct s_pet *data);
- int (*delete_pet) (int fd, int pet_id);
- int (*parse_CreatePet) (int fd);
- int (*parse_LoadPet) (int fd);
- int (*parse_SavePet) (int fd);
- int (*parse_DeletePet) (int fd);
- struct quest *(*quests_fromsql) (int char_id, int *count);
-
-# 172 "../../../server-code/src/char/mapif.h" 3 4
-_Bool
-# 172 "../../../server-code/src/char/mapif.h"
- (*quest_delete) (int char_id, int quest_id);
-
-# 173 "../../../server-code/src/char/mapif.h" 3 4
-_Bool
-# 173 "../../../server-code/src/char/mapif.h"
- (*quest_add) (int char_id, struct quest qd);
-
-# 174 "../../../server-code/src/char/mapif.h" 3 4
-_Bool
-# 174 "../../../server-code/src/char/mapif.h"
- (*quest_update) (int char_id, struct quest qd);
- void (*quest_save_ack) (int fd, int char_id,
-# 175 "../../../server-code/src/char/mapif.h" 3 4
- _Bool
-# 175 "../../../server-code/src/char/mapif.h"
- success);
- int (*parse_quest_save) (int fd);
- void (*send_quests) (int fd, int char_id, struct quest *tmp_questlog, int num_quests);
- int (*parse_quest_load) (int fd);
- int (*load_guild_storage) (int fd, int account_id, int guild_id, char flag);
- int (*save_guild_storage_ack) (int fd, int account_id, int guild_id, int fail);
- int (*parse_LoadGuildStorage) (int fd);
- int (*parse_SaveGuildStorage) (int fd);
- int (*itembound_ack) (int fd, int aid, int guild_id);
- int (*parse_ItemBoundRetrieve_sub) (int fd);
- void (*parse_ItemBoundRetrieve) (int fd);
- void (*parse_accinfo) (int fd);
- void (*parse_accinfo2) (
-# 187 "../../../server-code/src/char/mapif.h" 3 4
- _Bool
-# 187 "../../../server-code/src/char/mapif.h"
- success, int map_fd, int u_fd, int u_aid, int account_id, const char *userid, const char *user_pass,
- const char *email, const char *last_ip, const char *lastlogin, const char *pin_code, const char *birthdate, int group_id, int logincount, int state);
- int (*broadcast) (const unsigned char *mes, int len, unsigned int fontColor, short fontType, short fontSize, short fontAlign, short fontY, int sfd);
- int (*wis_message) (struct WisData *wd);
- void (*wis_response) (int fd, const unsigned char *src, int flag);
- int (*wis_end) (struct WisData *wd, int flag);
- int (*account_reg_reply) (int fd,int account_id,int char_id, int type);
- int (*disconnectplayer) (int fd, int account_id, int char_id, int reason);
- int (*parse_broadcast) (int fd);
- int (*parse_WisRequest) (int fd);
- int (*parse_WisReply) (int fd);
- int (*parse_WisToGM) (int fd);
- int (*parse_Registry) (int fd);
- int (*parse_RegistryRequest) (int fd);
- void (*namechange_ack) (int fd, int account_id, int char_id, int type, int flag, const char *name);
- int (*parse_NameChangeRequest) (int fd);
-};
-
-
-void mapif_defaults(void);
-
-
-extern struct mapif_interface *mapif;
-# 41 "../../../server-code/src/char/char.c" 2
-# 1 "../../../server-code/src/char/pincode.h" 1
-# 26 "../../../server-code/src/char/pincode.h"
-struct char_session_data;
-
-enum PincodeResponseCode {
- PINCODE_OK = 0,
- PINCODE_ASK = 1,
- PINCODE_NOTSET = 2,
- PINCODE_EXPIRED = 3,
- PINCODE_UNUSED = 7,
- PINCODE_WRONG = 8,
-};
-
-
-
-
-struct pincode_interface {
-
- int enabled;
- int changetime;
- int maxtry;
- int charselect;
- unsigned int multiplier;
- unsigned int baseSeed;
-
- void (*handle) (int fd, struct char_session_data* sd);
- void (*decrypt) (unsigned int userSeed, char* pin);
- void (*error) (int account_id);
- void (*update) (int account_id, char* pin);
- void (*sendstate) (int fd, struct char_session_data* sd, uint16 state);
- void (*setnew) (int fd, struct char_session_data* sd);
- void (*change) (int fd, struct char_session_data* sd);
- int (*compare) (int fd, struct char_session_data* sd, char* pin);
- void (*check) (int fd, struct char_session_data* sd);
-
-# 58 "../../../server-code/src/char/pincode.h" 3 4
-_Bool
-# 58 "../../../server-code/src/char/pincode.h"
- (*config_read) (char *w1, char *w2);
-};
-
-
-void pincode_defaults(void);
-
-
-extern struct pincode_interface *pincode;
-# 42 "../../../server-code/src/char/char.c" 2
-
-
-
-
-
-
-# 1 "../../../server-code/src/common/memmgr.h" 1
-# 80 "../../../server-code/src/common/memmgr.h"
-struct malloc_interface {
- void (*init) (void);
- void (*final) (void);
-
- void* (*malloc)(size_t size, const char *file, int line, const char *func);
- void* (*calloc)(size_t num, size_t size, const char *file, int line, const char *func);
- void* (*realloc)(void *p, size_t size, const char *file, int line, const char *func);
- void* (*reallocz)(void *p, size_t size, const char *file, int line, const char *func);
- char* (*astrdup)(const char *p, const char *file, int line, const char *func);
- char *(*astrndup)(const char *p, size_t size, const char *file, int line, const char *func);
- void (*free)(void *p, const char *file, int line, const char *func);
-
- void (*memory_check)(void);
-
-# 93 "../../../server-code/src/common/memmgr.h" 3 4
-_Bool
-# 93 "../../../server-code/src/common/memmgr.h"
- (*verify_ptr)(void* ptr);
- size_t (*usage) (void);
-
- void (*post_shutdown) (void);
- void (*init_messages) (void);
-};
-
-
-void malloc_defaults(void);
-
-void memmgr_report(int extra);
-
-
-extern struct malloc_interface *iMalloc;
-# 49 "../../../server-code/src/char/char.c" 2
-# 1 "../../../server-code/src/common/mapindex.h" 1
-# 28 "../../../server-code/src/common/mapindex.h"
-struct DBMap;
-# 84 "../../../server-code/src/common/mapindex.h"
-struct mapindex_interface {
- char config_file[80];
-
- struct DBMap *db;
-
- int num;
-
- char *default_map;
-
- int default_x;
-
- int default_y;
-
- struct {
- char name[(11 + 1)];
- } list[2000];
-
- int (*init) (void);
- void (*final) (void);
-
- int (*addmap) (int index, const char* name);
- void (*removemap) (int index);
- const char* (*getmapname) (const char* string, char* output);
-
-
- const char* (*getmapname_ext) (const char* string, char* output);
-
- unsigned short (*name2id) (const char*);
- const char * (*id2name) (uint16 id, const char *file, int line, const char *func);
-
-# 113 "../../../server-code/src/common/mapindex.h" 3 4
-_Bool
-# 113 "../../../server-code/src/common/mapindex.h"
- (*check_default) (void);
-};
-
-
-void mapindex_defaults(void);
-
-
-extern struct mapindex_interface *mapindex;
-# 50 "../../../server-code/src/char/char.c" 2
-
-# 1 "../../../server-code/src/common/nullpo.h" 1
-# 40 "../../../server-code/src/common/nullpo.h"
-# 1 "/usr/include/assert.h" 1 3 4
-# 66 "/usr/include/assert.h" 3 4
-
-
-
-
-# 69 "/usr/include/assert.h" 3 4
-extern void __assert_fail (const char *__assertion, const char *__file,
- unsigned int __line, const char *__function)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__noreturn__));
-
-
-extern void __assert_perror_fail (int __errnum, const char *__file,
- unsigned int __line, const char *__function)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__noreturn__));
-
-
-
-
-extern void __assert (const char *__assertion, const char *__file, int __line)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__noreturn__));
-
-
-
-# 41 "../../../server-code/src/common/nullpo.h" 2
-# 155 "../../../server-code/src/common/nullpo.h"
-
-# 155 "../../../server-code/src/common/nullpo.h"
-struct nullpo_interface {
- void (*assert_report) (const char *file, int line, const char *func, const char *targetname, const char *title);
-};
-
-
-void nullpo_defaults(void);
-
-
-extern struct nullpo_interface *nullpo;
-# 52 "../../../server-code/src/char/char.c" 2
-
-# 1 "../../../server-code/src/common/socket.h" 1
-# 54 "../../../server-code/src/char/char.c" 2
-# 1 "../../../server-code/src/common/strlib.h" 1
-# 54 "../../../server-code/src/common/strlib.h"
-typedef enum e_svopt {
-
- SV_NOESCAPE_NOTERMINATE = 0,
-
- SV_ESCAPE_C = 1,
-
- SV_TERMINATE_LF = 2,
- SV_TERMINATE_CRLF = 4,
- SV_TERMINATE_CR = 8,
-
- SV_KEEP_TERMINATOR = 16
-} e_svopt;
-
-
-
-
-
-
-struct s_svstate {
- const char* str;
- int len;
- int off;
- int start;
- int end;
- enum e_svopt opt;
- char delim;
-
-# 80 "../../../server-code/src/common/strlib.h" 3 4
-_Bool
-# 80 "../../../server-code/src/common/strlib.h"
- done;
-};
-
-
-
-struct StringBuf {
- char *buf_;
- char *ptr_;
- unsigned int max_;
-};
-typedef struct StringBuf StringBuf;
-
-struct strlib_interface {
- char *(*jstrescape) (char* pt);
- char *(*jstrescapecpy) (char* pt, const char* spt);
- int (*jmemescapecpy) (char* pt, const char* spt, int size);
- int (*remove_control_chars_) (char* str);
- char *(*trim_) (char* str);
- char *(*normalize_name_) (char* str,const char* delims);
- const char *(*stristr_) (const char *haystack, const char *needle);
-
-
- size_t (*strnlen_) (const char* string, size_t maxlen);
-
-
- char * (*strtok_r_) (char *s1, const char *s2, char **lasts);
-
- int (*e_mail_check_) (char* email);
- int (*config_switch_) (const char* str);
-
-
- char *(*safestrncpy_) (char* dst, const char* src, size_t n);
-
-
- size_t (*safestrnlen_) (const char* string, size_t maxlen);
-
-
-
-
- int (*safesnprintf_) (char *buf, size_t sz, const char *fmt, ...) __attribute__((format(printf, 3, 4)));
-
-
-
- int (*strline_) (const char* str, size_t pos);
-
-
-
-
-
-# 128 "../../../server-code/src/common/strlib.h" 3 4
-_Bool
-# 128 "../../../server-code/src/common/strlib.h"
- (*bin2hex_) (char* output, unsigned char* input, size_t count);
-};
-
-struct stringbuf_interface {
- StringBuf* (*Malloc) (void);
- void (*Init) (StringBuf* self);
- int (*Printf) (StringBuf *self, const char *fmt, ...) __attribute__((format(printf, 2, 3)));
- int (*Vprintf) (StringBuf* self, const char* fmt, va_list args);
- int (*Append) (StringBuf* self, const StringBuf *sbuf);
- int (*AppendStr) (StringBuf* self, const char* str);
- int (*Length) (StringBuf* self);
- char* (*Value) (StringBuf* self);
- void (*Clear) (StringBuf* self);
- void (*Destroy) (StringBuf* self);
- void (*Free) (StringBuf* self);
-};
-
-struct sv_interface {
-
-
-
-
-
- int (*parse_next) (struct s_svstate* svstate);
-
-
-
-
-
-
- int (*parse) (const char* str, int len, int startoff, char delim, int* out_pos, int npos, enum e_svopt opt);
-
-
-
-
-
-
-
- int (*split) (char* str, int len, int startoff, char delim, char** out_fields, int nfields, enum e_svopt opt);
-
-
-
-
- size_t (*escape_c) (char* out_dest, const char* src, size_t len, const char* escapes);
-
-
-
-
- size_t (*unescape_c) (char* out_dest, const char* src, size_t len);
-
-
- const char* (*skip_escaped_c) (const char* p);
-
-
-
-
-
-# 184 "../../../server-code/src/common/strlib.h" 3 4
-_Bool
-# 184 "../../../server-code/src/common/strlib.h"
- (*readdb) (const char* directory, const char* filename, char delim, int mincols, int maxcols, int maxrows,
-# 184 "../../../server-code/src/common/strlib.h" 3 4
- _Bool
-# 184 "../../../server-code/src/common/strlib.h"
- (*parseproc)(char* fields[], int columns, int current));
-};
-
-
-void strlib_defaults(void);
-
-
-extern struct strlib_interface *strlib;
-extern struct stringbuf_interface *StrBuf;
-extern struct sv_interface *sv;
-# 55 "../../../server-code/src/char/char.c" 2
-# 1 "../../../server-code/src/common/sql.h" 1
-# 40 "../../../server-code/src/common/sql.h"
-enum SqlDataType {
- SQLDT_NULL,
-
- SQLDT_INT8,
- SQLDT_INT16,
- SQLDT_INT32,
- SQLDT_INT64,
- SQLDT_UINT8,
- SQLDT_UINT16,
- SQLDT_UINT32,
- SQLDT_UINT64,
-
- SQLDT_CHAR,
- SQLDT_SHORT,
- SQLDT_INT,
- SQLDT_LONG,
- SQLDT_LONGLONG,
- SQLDT_UCHAR,
- SQLDT_USHORT,
- SQLDT_UINT,
- SQLDT_ULONG,
- SQLDT_ULONGLONG,
-
- SQLDT_FLOAT,
- SQLDT_DOUBLE,
-
- SQLDT_STRING,
- SQLDT_ENUM,
-
-
- SQLDT_BLOB,
- SQLDT_LASTID
-};
-
-struct Sql;
-struct SqlStmt;
-
-struct sql_interface {
-
-
-
- int (*Connect) (struct Sql *self, const char *user, const char *passwd, const char *host, uint16 port, const char *db);
-
-
-
- int (*GetTimeout) (struct Sql *self, uint32 *out_timeout);
-
-
-
- int (*GetColumnNames) (struct Sql *self, const char *table, char *out_buf, size_t buf_len, char sep);
-
-
-
- int (*SetEncoding) (struct Sql *self, const char *encoding);
-
-
-
- int (*Ping) (struct Sql *self);
-
-
-
-
- size_t (*EscapeString) (struct Sql *self, char *out_to, const char *from);
-
-
-
-
- size_t (*EscapeStringLen) (struct Sql *self, char *out_to, const char *from, size_t from_len);
-
-
-
-
-
- int (*Query) (struct Sql *self, const char *query, ...) __attribute__((format(printf, 2, 3)));
-
-
-
-
-
- int (*QueryV) (struct Sql *self, const char *query, va_list args);
-
-
-
-
-
- int (*QueryStr) (struct Sql *self, const char *query);
-
-
-
- uint64 (*LastInsertId) (struct Sql *self);
-
-
-
- uint32 (*NumColumns) (struct Sql *self);
-
-
-
- uint64 (*NumRows) (struct Sql *self);
-
-
-
-
- int (*NextRow) (struct Sql *self);
-
-
-
-
- int (*GetData) (struct Sql *self, size_t col, char **out_buf, size_t *out_len);
-
- void (*FreeResult) (struct Sql *self);
-
- void (*ShowDebug_) (struct Sql *self, const char *debug_file, const unsigned long debug_line);
-
- void (*Free) (struct Sql *self);
-
- struct Sql *(*Malloc) (void);
-# 179 "../../../server-code/src/common/sql.h"
- struct SqlStmt* (*StmtMalloc)(struct Sql *sql);
-
-
-
-
-
-
- int (*StmtPrepare) (struct SqlStmt *self, const char *query, ...) __attribute__((format(printf, 2, 3)));
-
-
-
-
-
-
- int (*StmtPrepareV)(struct SqlStmt *self, const char *query, va_list args);
-
-
-
-
-
-
- int (*StmtPrepareStr)(struct SqlStmt *self, const char *query);
-
-
-
-
- size_t (*StmtNumParams)(struct SqlStmt *self);
-
-
-
-
-
-
- int (*StmtBindParam)(struct SqlStmt *self, size_t idx, enum SqlDataType buffer_type, const void *buffer, size_t buffer_len);
-
-
-
-
-
- int (*StmtExecute)(struct SqlStmt *self);
-
-
-
-
- uint64 (*StmtLastInsertId)(struct SqlStmt *self);
-
-
-
-
- size_t (*StmtNumColumns)(struct SqlStmt *self);
-
-
-
-
-
-
-
- int (*StmtBindColumn)(struct SqlStmt *self, size_t idx, enum SqlDataType buffer_type, void *buffer, size_t buffer_len, uint32 *out_length, int8 *out_is_null);
-
-
-
-
- uint64 (*StmtNumRows)(struct SqlStmt *self);
-
-
-
-
-
- int (*StmtNextRow)(struct SqlStmt *self);
-
-
- void (*StmtFreeResult)(struct SqlStmt *self);
-
-
- void (*StmtFree)(struct SqlStmt *self);
-
- void (*StmtShowDebug_)(struct SqlStmt *self, const char *debug_file, const unsigned long debug_line);
-
-};
-
-
-void sql_defaults(void);
-
-void Sql_Init(void);
-
-void Sql_HerculesUpdateCheck(struct Sql *self);
-void Sql_HerculesUpdateSkip(struct Sql *self, const char *filename);
-
-
-extern struct sql_interface *SQL;
-# 56 "../../../server-code/src/char/char.c" 2
-# 1 "../../../server-code/src/common/timer.h" 1
-# 32 "../../../server-code/src/common/timer.h"
-enum {
- TIMER_ONCE_AUTODEL = 0x01,
- TIMER_INTERVAL = 0x02,
- TIMER_REMOVE_HEAP = 0x10,
-};
-
-
-
-typedef int (*TimerFunc)(int tid, int64 tick, int id, intptr_t data);
-
-struct TimerData {
- int64 tick;
- TimerFunc func;
- unsigned char type;
- int interval;
-
-
- int id;
- intptr_t data;
-};
-
-
-
-
-
-
-
-struct timer_interface {
-
-
- int64 (*gettick) (void);
- int64 (*gettick_nocache) (void);
-
- int (*add) (int64 tick, TimerFunc func, int id, intptr_t data);
- int (*add_interval) (int64 tick, TimerFunc func, int id, intptr_t data, int interval);
- const struct TimerData *(*get) (int tid);
- int (*delete) (int tid, TimerFunc func);
-
- int64 (*addtick) (int tid, int64 tick);
- int64 (*settick) (int tid, int64 tick);
-
- int (*add_func_list) (TimerFunc func, char* name);
-
- unsigned long (*get_uptime) (void);
-
- int (*perform) (int64 tick);
- void (*init) (void);
- void (*final) (void);
-};
-
-
-void timer_defaults(void);
-
-
-extern struct timer_interface *timer;
-# 57 "../../../server-code/src/char/char.c" 2
-# 1 "../../../server-code/src/common/utils.h" 1
-# 26 "../../../server-code/src/common/utils.h"
-# 1 "/usr/include/stdio.h" 1 3 4
-# 29 "/usr/include/stdio.h" 3 4
-
-
-
-
-# 1 "/usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h" 1 3 4
-# 34 "/usr/include/stdio.h" 2 3 4
-# 44 "/usr/include/stdio.h" 3 4
-
-# 44 "/usr/include/stdio.h" 3 4
-struct _IO_FILE;
-
-
-
-typedef struct _IO_FILE FILE;
-
-
-
-
-
-# 64 "/usr/include/stdio.h" 3 4
-typedef struct _IO_FILE __FILE;
-# 74 "/usr/include/stdio.h" 3 4
-# 1 "/usr/include/libio.h" 1 3 4
-# 31 "/usr/include/libio.h" 3 4
-# 1 "/usr/include/_G_config.h" 1 3 4
-# 15 "/usr/include/_G_config.h" 3 4
-# 1 "/usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h" 1 3 4
-# 16 "/usr/include/_G_config.h" 2 3 4
-
-
-
-
-# 1 "/usr/include/wchar.h" 1 3 4
-# 82 "/usr/include/wchar.h" 3 4
-typedef struct
-{
- int __count;
- union
- {
-
- unsigned int __wch;
-
-
-
- char __wchb[4];
- } __value;
-} __mbstate_t;
-# 21 "/usr/include/_G_config.h" 2 3 4
-typedef struct
-{
- __off_t __pos;
- __mbstate_t __state;
-} _G_fpos_t;
-typedef struct
-{
- __off64_t __pos;
- __mbstate_t __state;
-} _G_fpos64_t;
-# 32 "/usr/include/libio.h" 2 3 4
-# 144 "/usr/include/libio.h" 3 4
-struct _IO_jump_t; struct _IO_FILE;
-
-
-
-
-
-typedef void _IO_lock_t;
-
-
-
-
-
-struct _IO_marker {
- struct _IO_marker *_next;
- struct _IO_FILE *_sbuf;
-
-
-
- int _pos;
-# 173 "/usr/include/libio.h" 3 4
-};
-
-
-enum __codecvt_result
-{
- __codecvt_ok,
- __codecvt_partial,
- __codecvt_error,
- __codecvt_noconv
-};
-# 241 "/usr/include/libio.h" 3 4
-struct _IO_FILE {
- int _flags;
-
-
-
-
- char* _IO_read_ptr;
- char* _IO_read_end;
- char* _IO_read_base;
- char* _IO_write_base;
- char* _IO_write_ptr;
- char* _IO_write_end;
- char* _IO_buf_base;
- char* _IO_buf_end;
-
- char *_IO_save_base;
- char *_IO_backup_base;
- char *_IO_save_end;
-
- struct _IO_marker *_markers;
-
- struct _IO_FILE *_chain;
-
- int _fileno;
-
-
-
- int _flags2;
-
- __off_t _old_offset;
-
-
-
- unsigned short _cur_column;
- signed char _vtable_offset;
- char _shortbuf[1];
-
-
-
- _IO_lock_t *_lock;
-# 289 "/usr/include/libio.h" 3 4
- __off64_t _offset;
-# 298 "/usr/include/libio.h" 3 4
- void *__pad1;
- void *__pad2;
- void *__pad3;
- void *__pad4;
- size_t __pad5;
-
- int _mode;
-
- char _unused2[15 * sizeof (int) - 4 * sizeof (void *) - sizeof (size_t)];
-
-};
-
-
-typedef struct _IO_FILE _IO_FILE;
-
-
-struct _IO_FILE_plus;
-
-extern struct _IO_FILE_plus _IO_2_1_stdin_;
-extern struct _IO_FILE_plus _IO_2_1_stdout_;
-extern struct _IO_FILE_plus _IO_2_1_stderr_;
-# 334 "/usr/include/libio.h" 3 4
-typedef __ssize_t __io_read_fn (void *__cookie, char *__buf, size_t __nbytes);
-
-
-
-
-
-
-
-typedef __ssize_t __io_write_fn (void *__cookie, const char *__buf,
- size_t __n);
-
-
-
-
-
-
-
-typedef int __io_seek_fn (void *__cookie, __off64_t *__pos, int __w);
-
-
-typedef int __io_close_fn (void *__cookie);
-# 386 "/usr/include/libio.h" 3 4
-extern int __underflow (_IO_FILE *);
-extern int __uflow (_IO_FILE *);
-extern int __overflow (_IO_FILE *, int);
-# 430 "/usr/include/libio.h" 3 4
-extern int _IO_getc (_IO_FILE *__fp);
-extern int _IO_putc (int __c, _IO_FILE *__fp);
-extern int _IO_feof (_IO_FILE *__fp) __attribute__ ((__nothrow__ , __leaf__));
-extern int _IO_ferror (_IO_FILE *__fp) __attribute__ ((__nothrow__ , __leaf__));
-
-extern int _IO_peekc_locked (_IO_FILE *__fp);
-
-
-
-
-
-extern void _IO_flockfile (_IO_FILE *) __attribute__ ((__nothrow__ , __leaf__));
-extern void _IO_funlockfile (_IO_FILE *) __attribute__ ((__nothrow__ , __leaf__));
-extern int _IO_ftrylockfile (_IO_FILE *) __attribute__ ((__nothrow__ , __leaf__));
-# 460 "/usr/include/libio.h" 3 4
-extern int _IO_vfscanf (_IO_FILE * __restrict, const char * __restrict,
- __gnuc_va_list, int *__restrict);
-extern int _IO_vfprintf (_IO_FILE *__restrict, const char *__restrict,
- __gnuc_va_list);
-extern __ssize_t _IO_padn (_IO_FILE *, int, __ssize_t);
-extern size_t _IO_sgetn (_IO_FILE *, void *, size_t);
-
-extern __off64_t _IO_seekoff (_IO_FILE *, __off64_t, int, int);
-extern __off64_t _IO_seekpos (_IO_FILE *, __off64_t, int);
-
-extern void _IO_free_backup_area (_IO_FILE *) __attribute__ ((__nothrow__ , __leaf__));
-# 75 "/usr/include/stdio.h" 2 3 4
-# 90 "/usr/include/stdio.h" 3 4
-typedef __off_t off_t;
-# 102 "/usr/include/stdio.h" 3 4
-typedef __ssize_t ssize_t;
-
-
-
-
-
-
-
-typedef _G_fpos_t fpos_t;
-
-
-
-
-# 164 "/usr/include/stdio.h" 3 4
-# 1 "/usr/include/x86_64-linux-gnu/bits/stdio_lim.h" 1 3 4
-# 165 "/usr/include/stdio.h" 2 3 4
-
-
-
-extern struct _IO_FILE *stdin;
-extern struct _IO_FILE *stdout;
-extern struct _IO_FILE *stderr;
-
-
-
-
-
-
-
-extern int remove (const char *__filename) __attribute__ ((__nothrow__ , __leaf__));
-
-extern int rename (const char *__old, const char *__new) __attribute__ ((__nothrow__ , __leaf__));
-
-
-
-
-extern int renameat (int __oldfd, const char *__old, int __newfd,
- const char *__new) __attribute__ ((__nothrow__ , __leaf__));
-
-
-
-
-
-
-
-
-extern FILE *tmpfile (void) ;
-# 209 "/usr/include/stdio.h" 3 4
-extern char *tmpnam (char *__s) __attribute__ ((__nothrow__ , __leaf__)) ;
-
-
-
-
-
-extern char *tmpnam_r (char *__s) __attribute__ ((__nothrow__ , __leaf__)) ;
-# 227 "/usr/include/stdio.h" 3 4
-extern char *tempnam (const char *__dir, const char *__pfx)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)) ;
-
-
-
-
-
-
-
-
-extern int fclose (FILE *__stream);
-
-
-
-
-extern int fflush (FILE *__stream);
-
-# 252 "/usr/include/stdio.h" 3 4
-extern int fflush_unlocked (FILE *__stream);
-# 266 "/usr/include/stdio.h" 3 4
-
-
-
-
-
-
-extern FILE *fopen (const char *__restrict __filename,
- const char *__restrict __modes) ;
-
-
-
-
-extern FILE *freopen (const char *__restrict __filename,
- const char *__restrict __modes,
- FILE *__restrict __stream) ;
-# 295 "/usr/include/stdio.h" 3 4
-
-# 306 "/usr/include/stdio.h" 3 4
-extern FILE *fdopen (int __fd, const char *__modes) __attribute__ ((__nothrow__ , __leaf__)) ;
-# 319 "/usr/include/stdio.h" 3 4
-extern FILE *fmemopen (void *__s, size_t __len, const char *__modes)
- __attribute__ ((__nothrow__ , __leaf__)) ;
-
-
-
-
-extern FILE *open_memstream (char **__bufloc, size_t *__sizeloc) __attribute__ ((__nothrow__ , __leaf__)) ;
-
-
-
-
-
-
-extern void setbuf (FILE *__restrict __stream, char *__restrict __buf) __attribute__ ((__nothrow__ , __leaf__));
-
-
-
-extern int setvbuf (FILE *__restrict __stream, char *__restrict __buf,
- int __modes, size_t __n) __attribute__ ((__nothrow__ , __leaf__));
-
-
-
-
-
-extern void setbuffer (FILE *__restrict __stream, char *__restrict __buf,
- size_t __size) __attribute__ ((__nothrow__ , __leaf__));
-
-
-extern void setlinebuf (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__));
-
-
-
-
-
-
-
-
-extern int fprintf (FILE *__restrict __stream,
- const char *__restrict __format, ...);
-
-
-
-
-extern int printf (const char *__restrict __format, ...);
-
-extern int sprintf (char *__restrict __s,
- const char *__restrict __format, ...) __attribute__ ((__nothrow__));
-
-
-
-
-
-extern int vfprintf (FILE *__restrict __s, const char *__restrict __format,
- __gnuc_va_list __arg);
-
-
-
-
-extern int vprintf (const char *__restrict __format, __gnuc_va_list __arg);
-
-extern int vsprintf (char *__restrict __s, const char *__restrict __format,
- __gnuc_va_list __arg) __attribute__ ((__nothrow__));
-
-
-
-
-
-extern int snprintf (char *__restrict __s, size_t __maxlen,
- const char *__restrict __format, ...)
- __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 3, 4)));
-
-extern int vsnprintf (char *__restrict __s, size_t __maxlen,
- const char *__restrict __format, __gnuc_va_list __arg)
- __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 3, 0)));
-
-# 412 "/usr/include/stdio.h" 3 4
-extern int vdprintf (int __fd, const char *__restrict __fmt,
- __gnuc_va_list __arg)
- __attribute__ ((__format__ (__printf__, 2, 0)));
-extern int dprintf (int __fd, const char *__restrict __fmt, ...)
- __attribute__ ((__format__ (__printf__, 2, 3)));
-
-
-
-
-
-
-
-
-extern int fscanf (FILE *__restrict __stream,
- const char *__restrict __format, ...) ;
-
-
-
-
-extern int scanf (const char *__restrict __format, ...) ;
-
-extern int sscanf (const char *__restrict __s,
- const char *__restrict __format, ...) __attribute__ ((__nothrow__ , __leaf__));
-# 443 "/usr/include/stdio.h" 3 4
-extern int fscanf (FILE *__restrict __stream, const char *__restrict __format, ...) __asm__ ("" "__isoc99_fscanf")
-
- ;
-extern int scanf (const char *__restrict __format, ...) __asm__ ("" "__isoc99_scanf")
- ;
-extern int sscanf (const char *__restrict __s, const char *__restrict __format, ...) __asm__ ("" "__isoc99_sscanf") __attribute__ ((__nothrow__ , __leaf__))
-
- ;
-# 463 "/usr/include/stdio.h" 3 4
-
-
-
-
-
-
-
-
-extern int vfscanf (FILE *__restrict __s, const char *__restrict __format,
- __gnuc_va_list __arg)
- __attribute__ ((__format__ (__scanf__, 2, 0))) ;
-
-
-
-
-
-extern int vscanf (const char *__restrict __format, __gnuc_va_list __arg)
- __attribute__ ((__format__ (__scanf__, 1, 0))) ;
-
-
-extern int vsscanf (const char *__restrict __s,
- const char *__restrict __format, __gnuc_va_list __arg)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__format__ (__scanf__, 2, 0)));
-# 494 "/usr/include/stdio.h" 3 4
-extern int vfscanf (FILE *__restrict __s, const char *__restrict __format, __gnuc_va_list __arg) __asm__ ("" "__isoc99_vfscanf")
-
-
-
- __attribute__ ((__format__ (__scanf__, 2, 0))) ;
-extern int vscanf (const char *__restrict __format, __gnuc_va_list __arg) __asm__ ("" "__isoc99_vscanf")
-
- __attribute__ ((__format__ (__scanf__, 1, 0))) ;
-extern int vsscanf (const char *__restrict __s, const char *__restrict __format, __gnuc_va_list __arg) __asm__ ("" "__isoc99_vsscanf") __attribute__ ((__nothrow__ , __leaf__))
-
-
-
- __attribute__ ((__format__ (__scanf__, 2, 0)));
-# 522 "/usr/include/stdio.h" 3 4
-
-
-
-
-
-
-
-
-
-extern int fgetc (FILE *__stream);
-extern int getc (FILE *__stream);
-
-
-
-
-
-extern int getchar (void);
-
-# 550 "/usr/include/stdio.h" 3 4
-extern int getc_unlocked (FILE *__stream);
-extern int getchar_unlocked (void);
-# 561 "/usr/include/stdio.h" 3 4
-extern int fgetc_unlocked (FILE *__stream);
-
-
-
-
-
-
-
-
-
-
-
-extern int fputc (int __c, FILE *__stream);
-extern int putc (int __c, FILE *__stream);
-
-
-
-
-
-extern int putchar (int __c);
-
-# 594 "/usr/include/stdio.h" 3 4
-extern int fputc_unlocked (int __c, FILE *__stream);
-
-
-
-
-
-
-
-extern int putc_unlocked (int __c, FILE *__stream);
-extern int putchar_unlocked (int __c);
-
-
-
-
-
-
-extern int getw (FILE *__stream);
-
-
-extern int putw (int __w, FILE *__stream);
-
-
-
-
-
-
-
-
-extern char *fgets (char *__restrict __s, int __n, FILE *__restrict __stream)
- ;
-# 640 "/usr/include/stdio.h" 3 4
-
-# 665 "/usr/include/stdio.h" 3 4
-extern __ssize_t __getdelim (char **__restrict __lineptr,
- size_t *__restrict __n, int __delimiter,
- FILE *__restrict __stream) ;
-extern __ssize_t getdelim (char **__restrict __lineptr,
- size_t *__restrict __n, int __delimiter,
- FILE *__restrict __stream) ;
-
-
-
-
-
-
-
-extern __ssize_t getline (char **__restrict __lineptr,
- size_t *__restrict __n,
- FILE *__restrict __stream) ;
-
-
-
-
-
-
-
-
-extern int fputs (const char *__restrict __s, FILE *__restrict __stream);
-
-
-
-
-
-extern int puts (const char *__s);
-
-
-
-
-
-
-extern int ungetc (int __c, FILE *__stream);
-
-
-
-
-
-
-extern size_t fread (void *__restrict __ptr, size_t __size,
- size_t __n, FILE *__restrict __stream) ;
-
-
-
-
-extern size_t fwrite (const void *__restrict __ptr, size_t __size,
- size_t __n, FILE *__restrict __s);
-
-# 737 "/usr/include/stdio.h" 3 4
-extern size_t fread_unlocked (void *__restrict __ptr, size_t __size,
- size_t __n, FILE *__restrict __stream) ;
-extern size_t fwrite_unlocked (const void *__restrict __ptr, size_t __size,
- size_t __n, FILE *__restrict __stream);
-
-
-
-
-
-
-
-
-extern int fseek (FILE *__stream, long int __off, int __whence);
-
-
-
-
-extern long int ftell (FILE *__stream) ;
-
-
-
-
-extern void rewind (FILE *__stream);
-
-# 773 "/usr/include/stdio.h" 3 4
-extern int fseeko (FILE *__stream, __off_t __off, int __whence);
-
-
-
-
-extern __off_t ftello (FILE *__stream) ;
-# 792 "/usr/include/stdio.h" 3 4
-
-
-
-
-
-
-extern int fgetpos (FILE *__restrict __stream, fpos_t *__restrict __pos);
-
-
-
-
-extern int fsetpos (FILE *__stream, const fpos_t *__pos);
-# 815 "/usr/include/stdio.h" 3 4
-
-# 824 "/usr/include/stdio.h" 3 4
-
-
-extern void clearerr (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__));
-
-extern int feof (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) ;
-
-extern int ferror (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) ;
-
-
-
-
-extern void clearerr_unlocked (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__));
-extern int feof_unlocked (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) ;
-extern int ferror_unlocked (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) ;
-
-
-
-
-
-
-
-
-extern void perror (const char *__s);
-
-
-
-
-
-
-# 1 "/usr/include/x86_64-linux-gnu/bits/sys_errlist.h" 1 3 4
-# 26 "/usr/include/x86_64-linux-gnu/bits/sys_errlist.h" 3 4
-extern int sys_nerr;
-extern const char *const sys_errlist[];
-# 854 "/usr/include/stdio.h" 2 3 4
-
-
-
-
-extern int fileno (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) ;
-
-
-
-
-extern int fileno_unlocked (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) ;
-# 872 "/usr/include/stdio.h" 3 4
-extern FILE *popen (const char *__command, const char *__modes) ;
-
-
-
-
-
-extern int pclose (FILE *__stream);
-
-
-
-
-
-extern char *ctermid (char *__s) __attribute__ ((__nothrow__ , __leaf__));
-# 912 "/usr/include/stdio.h" 3 4
-extern void flockfile (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__));
-
-
-
-extern int ftrylockfile (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) ;
-
-
-extern void funlockfile (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__));
-# 942 "/usr/include/stdio.h" 3 4
-
-# 27 "../../../server-code/src/common/utils.h" 2
-
-# 1 "/usr/include/unistd.h" 1 3 4
-# 27 "/usr/include/unistd.h" 3 4
-
-# 205 "/usr/include/unistd.h" 3 4
-# 1 "/usr/include/x86_64-linux-gnu/bits/posix_opt.h" 1 3 4
-# 206 "/usr/include/unistd.h" 2 3 4
-
-
-
-# 1 "/usr/include/x86_64-linux-gnu/bits/environments.h" 1 3 4
-# 22 "/usr/include/x86_64-linux-gnu/bits/environments.h" 3 4
-# 1 "/usr/include/x86_64-linux-gnu/bits/wordsize.h" 1 3 4
-# 23 "/usr/include/x86_64-linux-gnu/bits/environments.h" 2 3 4
-# 210 "/usr/include/unistd.h" 2 3 4
-# 229 "/usr/include/unistd.h" 3 4
-# 1 "/usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h" 1 3 4
-# 230 "/usr/include/unistd.h" 2 3 4
-
-
-
-
-
-typedef __gid_t gid_t;
-
-
-
-
-typedef __uid_t uid_t;
-# 258 "/usr/include/unistd.h" 3 4
-typedef __useconds_t useconds_t;
-# 277 "/usr/include/unistd.h" 3 4
-typedef __socklen_t socklen_t;
-# 290 "/usr/include/unistd.h" 3 4
-extern int access (const char *__name, int __type) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
-# 307 "/usr/include/unistd.h" 3 4
-extern int faccessat (int __fd, const char *__file, int __type, int __flag)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2))) ;
-# 337 "/usr/include/unistd.h" 3 4
-extern __off_t lseek (int __fd, __off_t __offset, int __whence) __attribute__ ((__nothrow__ , __leaf__));
-# 356 "/usr/include/unistd.h" 3 4
-extern int close (int __fd);
-
-
-
-
-
-
-extern ssize_t read (int __fd, void *__buf, size_t __nbytes) ;
-
-
-
-
-
-extern ssize_t write (int __fd, const void *__buf, size_t __n) ;
-# 379 "/usr/include/unistd.h" 3 4
-extern ssize_t pread (int __fd, void *__buf, size_t __nbytes,
- __off_t __offset) ;
-
-
-
-
-
-
-extern ssize_t pwrite (int __fd, const void *__buf, size_t __n,
- __off_t __offset) ;
-# 420 "/usr/include/unistd.h" 3 4
-extern int pipe (int __pipedes[2]) __attribute__ ((__nothrow__ , __leaf__)) ;
-# 435 "/usr/include/unistd.h" 3 4
-extern unsigned int alarm (unsigned int __seconds) __attribute__ ((__nothrow__ , __leaf__));
-# 447 "/usr/include/unistd.h" 3 4
-extern unsigned int sleep (unsigned int __seconds);
-
-
-
-
-
-
-
-extern __useconds_t ualarm (__useconds_t __value, __useconds_t __interval)
- __attribute__ ((__nothrow__ , __leaf__));
-
-
-
-
-
-
-extern int usleep (__useconds_t __useconds);
-# 472 "/usr/include/unistd.h" 3 4
-extern int pause (void);
-
-
-
-extern int chown (const char *__file, __uid_t __owner, __gid_t __group)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ;
-
-
-
-extern int fchown (int __fd, __uid_t __owner, __gid_t __group) __attribute__ ((__nothrow__ , __leaf__)) ;
-
-
-
-
-extern int lchown (const char *__file, __uid_t __owner, __gid_t __group)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ;
-
-
-
-
-
-
-extern int fchownat (int __fd, const char *__file, __uid_t __owner,
- __gid_t __group, int __flag)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2))) ;
-
-
-
-extern int chdir (const char *__path) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ;
-
-
-
-extern int fchdir (int __fd) __attribute__ ((__nothrow__ , __leaf__)) ;
-# 514 "/usr/include/unistd.h" 3 4
-extern char *getcwd (char *__buf, size_t __size) __attribute__ ((__nothrow__ , __leaf__)) ;
-# 528 "/usr/include/unistd.h" 3 4
-extern char *getwd (char *__buf)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__deprecated__)) ;
-
-
-
-
-extern int dup (int __fd) __attribute__ ((__nothrow__ , __leaf__)) ;
-
-
-extern int dup2 (int __fd, int __fd2) __attribute__ ((__nothrow__ , __leaf__));
-# 546 "/usr/include/unistd.h" 3 4
-extern char **__environ;
-
-
-
-
-
-
-
-extern int execve (const char *__path, char *const __argv[],
- char *const __envp[]) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
-
-
-
-
-extern int fexecve (int __fd, char *const __argv[], char *const __envp[])
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2)));
-
-
-
-
-extern int execv (const char *__path, char *const __argv[])
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
-
-
-
-extern int execle (const char *__path, const char *__arg, ...)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
-
-
-
-extern int execl (const char *__path, const char *__arg, ...)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
-
-
-
-extern int execvp (const char *__file, char *const __argv[])
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
-
-
-
-
-extern int execlp (const char *__file, const char *__arg, ...)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
-# 601 "/usr/include/unistd.h" 3 4
-extern int nice (int __inc) __attribute__ ((__nothrow__ , __leaf__)) ;
-
-
-
-
-extern void _exit (int __status) __attribute__ ((__noreturn__));
-
-
-
-
-
-# 1 "/usr/include/x86_64-linux-gnu/bits/confname.h" 1 3 4
-# 24 "/usr/include/x86_64-linux-gnu/bits/confname.h" 3 4
-enum
- {
- _PC_LINK_MAX,
-
- _PC_MAX_CANON,
-
- _PC_MAX_INPUT,
-
- _PC_NAME_MAX,
-
- _PC_PATH_MAX,
-
- _PC_PIPE_BUF,
-
- _PC_CHOWN_RESTRICTED,
-
- _PC_NO_TRUNC,
-
- _PC_VDISABLE,
-
- _PC_SYNC_IO,
-
- _PC_ASYNC_IO,
-
- _PC_PRIO_IO,
-
- _PC_SOCK_MAXBUF,
-
- _PC_FILESIZEBITS,
-
- _PC_REC_INCR_XFER_SIZE,
-
- _PC_REC_MAX_XFER_SIZE,
-
- _PC_REC_MIN_XFER_SIZE,
-
- _PC_REC_XFER_ALIGN,
-
- _PC_ALLOC_SIZE_MIN,
-
- _PC_SYMLINK_MAX,
-
- _PC_2_SYMLINKS
-
- };
-
-
-enum
- {
- _SC_ARG_MAX,
-
- _SC_CHILD_MAX,
-
- _SC_CLK_TCK,
-
- _SC_NGROUPS_MAX,
-
- _SC_OPEN_MAX,
-
- _SC_STREAM_MAX,
-
- _SC_TZNAME_MAX,
-
- _SC_JOB_CONTROL,
-
- _SC_SAVED_IDS,
-
- _SC_REALTIME_SIGNALS,
-
- _SC_PRIORITY_SCHEDULING,
-
- _SC_TIMERS,
-
- _SC_ASYNCHRONOUS_IO,
-
- _SC_PRIORITIZED_IO,
-
- _SC_SYNCHRONIZED_IO,
-
- _SC_FSYNC,
-
- _SC_MAPPED_FILES,
-
- _SC_MEMLOCK,
-
- _SC_MEMLOCK_RANGE,
-
- _SC_MEMORY_PROTECTION,
-
- _SC_MESSAGE_PASSING,
-
- _SC_SEMAPHORES,
-
- _SC_SHARED_MEMORY_OBJECTS,
-
- _SC_AIO_LISTIO_MAX,
-
- _SC_AIO_MAX,
-
- _SC_AIO_PRIO_DELTA_MAX,
-
- _SC_DELAYTIMER_MAX,
-
- _SC_MQ_OPEN_MAX,
-
- _SC_MQ_PRIO_MAX,
-
- _SC_VERSION,
-
- _SC_PAGESIZE,
-
-
- _SC_RTSIG_MAX,
-
- _SC_SEM_NSEMS_MAX,
-
- _SC_SEM_VALUE_MAX,
-
- _SC_SIGQUEUE_MAX,
-
- _SC_TIMER_MAX,
-
-
-
-
- _SC_BC_BASE_MAX,
-
- _SC_BC_DIM_MAX,
-
- _SC_BC_SCALE_MAX,
-
- _SC_BC_STRING_MAX,
-
- _SC_COLL_WEIGHTS_MAX,
-
- _SC_EQUIV_CLASS_MAX,
-
- _SC_EXPR_NEST_MAX,
-
- _SC_LINE_MAX,
-
- _SC_RE_DUP_MAX,
-
- _SC_CHARCLASS_NAME_MAX,
-
-
- _SC_2_VERSION,
-
- _SC_2_C_BIND,
-
- _SC_2_C_DEV,
-
- _SC_2_FORT_DEV,
-
- _SC_2_FORT_RUN,
-
- _SC_2_SW_DEV,
-
- _SC_2_LOCALEDEF,
-
-
- _SC_PII,
-
- _SC_PII_XTI,
-
- _SC_PII_SOCKET,
-
- _SC_PII_INTERNET,
-
- _SC_PII_OSI,
-
- _SC_POLL,
-
- _SC_SELECT,
-
- _SC_UIO_MAXIOV,
-
- _SC_IOV_MAX = _SC_UIO_MAXIOV,
-
- _SC_PII_INTERNET_STREAM,
-
- _SC_PII_INTERNET_DGRAM,
-
- _SC_PII_OSI_COTS,
-
- _SC_PII_OSI_CLTS,
-
- _SC_PII_OSI_M,
-
- _SC_T_IOV_MAX,
-
-
-
- _SC_THREADS,
-
- _SC_THREAD_SAFE_FUNCTIONS,
-
- _SC_GETGR_R_SIZE_MAX,
-
- _SC_GETPW_R_SIZE_MAX,
-
- _SC_LOGIN_NAME_MAX,
-
- _SC_TTY_NAME_MAX,
-
- _SC_THREAD_DESTRUCTOR_ITERATIONS,
-
- _SC_THREAD_KEYS_MAX,
-
- _SC_THREAD_STACK_MIN,
-
- _SC_THREAD_THREADS_MAX,
-
- _SC_THREAD_ATTR_STACKADDR,
-
- _SC_THREAD_ATTR_STACKSIZE,
-
- _SC_THREAD_PRIORITY_SCHEDULING,
-
- _SC_THREAD_PRIO_INHERIT,
-
- _SC_THREAD_PRIO_PROTECT,
-
- _SC_THREAD_PROCESS_SHARED,
-
-
- _SC_NPROCESSORS_CONF,
-
- _SC_NPROCESSORS_ONLN,
-
- _SC_PHYS_PAGES,
-
- _SC_AVPHYS_PAGES,
-
- _SC_ATEXIT_MAX,
-
- _SC_PASS_MAX,
-
-
- _SC_XOPEN_VERSION,
-
- _SC_XOPEN_XCU_VERSION,
-
- _SC_XOPEN_UNIX,
-
- _SC_XOPEN_CRYPT,
-
- _SC_XOPEN_ENH_I18N,
-
- _SC_XOPEN_SHM,
-
-
- _SC_2_CHAR_TERM,
-
- _SC_2_C_VERSION,
-
- _SC_2_UPE,
-
-
- _SC_XOPEN_XPG2,
-
- _SC_XOPEN_XPG3,
-
- _SC_XOPEN_XPG4,
-
-
- _SC_CHAR_BIT,
-
- _SC_CHAR_MAX,
-
- _SC_CHAR_MIN,
-
- _SC_INT_MAX,
-
- _SC_INT_MIN,
-
- _SC_LONG_BIT,
-
- _SC_WORD_BIT,
-
- _SC_MB_LEN_MAX,
-
- _SC_NZERO,
-
- _SC_SSIZE_MAX,
-
- _SC_SCHAR_MAX,
-
- _SC_SCHAR_MIN,
-
- _SC_SHRT_MAX,
-
- _SC_SHRT_MIN,
-
- _SC_UCHAR_MAX,
-
- _SC_UINT_MAX,
-
- _SC_ULONG_MAX,
-
- _SC_USHRT_MAX,
-
-
- _SC_NL_ARGMAX,
-
- _SC_NL_LANGMAX,
-
- _SC_NL_MSGMAX,
-
- _SC_NL_NMAX,
-
- _SC_NL_SETMAX,
-
- _SC_NL_TEXTMAX,
-
-
- _SC_XBS5_ILP32_OFF32,
-
- _SC_XBS5_ILP32_OFFBIG,
-
- _SC_XBS5_LP64_OFF64,
-
- _SC_XBS5_LPBIG_OFFBIG,
-
-
- _SC_XOPEN_LEGACY,
-
- _SC_XOPEN_REALTIME,
-
- _SC_XOPEN_REALTIME_THREADS,
-
-
- _SC_ADVISORY_INFO,
-
- _SC_BARRIERS,
-
- _SC_BASE,
-
- _SC_C_LANG_SUPPORT,
-
- _SC_C_LANG_SUPPORT_R,
-
- _SC_CLOCK_SELECTION,
-
- _SC_CPUTIME,
-
- _SC_THREAD_CPUTIME,
-
- _SC_DEVICE_IO,
-
- _SC_DEVICE_SPECIFIC,
-
- _SC_DEVICE_SPECIFIC_R,
-
- _SC_FD_MGMT,
-
- _SC_FIFO,
-
- _SC_PIPE,
-
- _SC_FILE_ATTRIBUTES,
-
- _SC_FILE_LOCKING,
-
- _SC_FILE_SYSTEM,
-
- _SC_MONOTONIC_CLOCK,
-
- _SC_MULTI_PROCESS,
-
- _SC_SINGLE_PROCESS,
-
- _SC_NETWORKING,
-
- _SC_READER_WRITER_LOCKS,
-
- _SC_SPIN_LOCKS,
-
- _SC_REGEXP,
-
- _SC_REGEX_VERSION,
-
- _SC_SHELL,
-
- _SC_SIGNALS,
-
- _SC_SPAWN,
-
- _SC_SPORADIC_SERVER,
-
- _SC_THREAD_SPORADIC_SERVER,
-
- _SC_SYSTEM_DATABASE,
-
- _SC_SYSTEM_DATABASE_R,
-
- _SC_TIMEOUTS,
-
- _SC_TYPED_MEMORY_OBJECTS,
-
- _SC_USER_GROUPS,
-
- _SC_USER_GROUPS_R,
-
- _SC_2_PBS,
-
- _SC_2_PBS_ACCOUNTING,
-
- _SC_2_PBS_LOCATE,
-
- _SC_2_PBS_MESSAGE,
-
- _SC_2_PBS_TRACK,
-
- _SC_SYMLOOP_MAX,
-
- _SC_STREAMS,
-
- _SC_2_PBS_CHECKPOINT,
-
-
- _SC_V6_ILP32_OFF32,
-
- _SC_V6_ILP32_OFFBIG,
-
- _SC_V6_LP64_OFF64,
-
- _SC_V6_LPBIG_OFFBIG,
-
-
- _SC_HOST_NAME_MAX,
-
- _SC_TRACE,
-
- _SC_TRACE_EVENT_FILTER,
-
- _SC_TRACE_INHERIT,
-
- _SC_TRACE_LOG,
-
-
- _SC_LEVEL1_ICACHE_SIZE,
-
- _SC_LEVEL1_ICACHE_ASSOC,
-
- _SC_LEVEL1_ICACHE_LINESIZE,
-
- _SC_LEVEL1_DCACHE_SIZE,
-
- _SC_LEVEL1_DCACHE_ASSOC,
-
- _SC_LEVEL1_DCACHE_LINESIZE,
-
- _SC_LEVEL2_CACHE_SIZE,
-
- _SC_LEVEL2_CACHE_ASSOC,
-
- _SC_LEVEL2_CACHE_LINESIZE,
-
- _SC_LEVEL3_CACHE_SIZE,
-
- _SC_LEVEL3_CACHE_ASSOC,
-
- _SC_LEVEL3_CACHE_LINESIZE,
-
- _SC_LEVEL4_CACHE_SIZE,
-
- _SC_LEVEL4_CACHE_ASSOC,
-
- _SC_LEVEL4_CACHE_LINESIZE,
-
-
-
- _SC_IPV6 = _SC_LEVEL1_ICACHE_SIZE + 50,
-
- _SC_RAW_SOCKETS,
-
-
- _SC_V7_ILP32_OFF32,
-
- _SC_V7_ILP32_OFFBIG,
-
- _SC_V7_LP64_OFF64,
-
- _SC_V7_LPBIG_OFFBIG,
-
-
- _SC_SS_REPL_MAX,
-
-
- _SC_TRACE_EVENT_NAME_MAX,
-
- _SC_TRACE_NAME_MAX,
-
- _SC_TRACE_SYS_MAX,
-
- _SC_TRACE_USER_EVENT_MAX,
-
-
- _SC_XOPEN_STREAMS,
-
-
- _SC_THREAD_ROBUST_PRIO_INHERIT,
-
- _SC_THREAD_ROBUST_PRIO_PROTECT
-
- };
-
-
-enum
- {
- _CS_PATH,
-
-
- _CS_V6_WIDTH_RESTRICTED_ENVS,
-
-
-
- _CS_GNU_LIBC_VERSION,
-
- _CS_GNU_LIBPTHREAD_VERSION,
-
-
- _CS_V5_WIDTH_RESTRICTED_ENVS,
-
-
-
- _CS_V7_WIDTH_RESTRICTED_ENVS,
-
-
-
- _CS_LFS_CFLAGS = 1000,
-
- _CS_LFS_LDFLAGS,
-
- _CS_LFS_LIBS,
-
- _CS_LFS_LINTFLAGS,
-
- _CS_LFS64_CFLAGS,
-
- _CS_LFS64_LDFLAGS,
-
- _CS_LFS64_LIBS,
-
- _CS_LFS64_LINTFLAGS,
-
-
- _CS_XBS5_ILP32_OFF32_CFLAGS = 1100,
-
- _CS_XBS5_ILP32_OFF32_LDFLAGS,
-
- _CS_XBS5_ILP32_OFF32_LIBS,
-
- _CS_XBS5_ILP32_OFF32_LINTFLAGS,
-
- _CS_XBS5_ILP32_OFFBIG_CFLAGS,
-
- _CS_XBS5_ILP32_OFFBIG_LDFLAGS,
-
- _CS_XBS5_ILP32_OFFBIG_LIBS,
-
- _CS_XBS5_ILP32_OFFBIG_LINTFLAGS,
-
- _CS_XBS5_LP64_OFF64_CFLAGS,
-
- _CS_XBS5_LP64_OFF64_LDFLAGS,
-
- _CS_XBS5_LP64_OFF64_LIBS,
-
- _CS_XBS5_LP64_OFF64_LINTFLAGS,
-
- _CS_XBS5_LPBIG_OFFBIG_CFLAGS,
-
- _CS_XBS5_LPBIG_OFFBIG_LDFLAGS,
-
- _CS_XBS5_LPBIG_OFFBIG_LIBS,
-
- _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS,
-
-
- _CS_POSIX_V6_ILP32_OFF32_CFLAGS,
-
- _CS_POSIX_V6_ILP32_OFF32_LDFLAGS,
-
- _CS_POSIX_V6_ILP32_OFF32_LIBS,
-
- _CS_POSIX_V6_ILP32_OFF32_LINTFLAGS,
-
- _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS,
-
- _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS,
-
- _CS_POSIX_V6_ILP32_OFFBIG_LIBS,
-
- _CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS,
-
- _CS_POSIX_V6_LP64_OFF64_CFLAGS,
-
- _CS_POSIX_V6_LP64_OFF64_LDFLAGS,
-
- _CS_POSIX_V6_LP64_OFF64_LIBS,
-
- _CS_POSIX_V6_LP64_OFF64_LINTFLAGS,
-
- _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS,
-
- _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS,
-
- _CS_POSIX_V6_LPBIG_OFFBIG_LIBS,
-
- _CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS,
-
-
- _CS_POSIX_V7_ILP32_OFF32_CFLAGS,
-
- _CS_POSIX_V7_ILP32_OFF32_LDFLAGS,
-
- _CS_POSIX_V7_ILP32_OFF32_LIBS,
-
- _CS_POSIX_V7_ILP32_OFF32_LINTFLAGS,
-
- _CS_POSIX_V7_ILP32_OFFBIG_CFLAGS,
-
- _CS_POSIX_V7_ILP32_OFFBIG_LDFLAGS,
-
- _CS_POSIX_V7_ILP32_OFFBIG_LIBS,
-
- _CS_POSIX_V7_ILP32_OFFBIG_LINTFLAGS,
-
- _CS_POSIX_V7_LP64_OFF64_CFLAGS,
-
- _CS_POSIX_V7_LP64_OFF64_LDFLAGS,
-
- _CS_POSIX_V7_LP64_OFF64_LIBS,
-
- _CS_POSIX_V7_LP64_OFF64_LINTFLAGS,
-
- _CS_POSIX_V7_LPBIG_OFFBIG_CFLAGS,
-
- _CS_POSIX_V7_LPBIG_OFFBIG_LDFLAGS,
-
- _CS_POSIX_V7_LPBIG_OFFBIG_LIBS,
-
- _CS_POSIX_V7_LPBIG_OFFBIG_LINTFLAGS,
-
-
- _CS_V6_ENV,
-
- _CS_V7_ENV
-
- };
-# 613 "/usr/include/unistd.h" 2 3 4
-
-
-extern long int pathconf (const char *__path, int __name)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
-
-
-extern long int fpathconf (int __fd, int __name) __attribute__ ((__nothrow__ , __leaf__));
-
-
-extern long int sysconf (int __name) __attribute__ ((__nothrow__ , __leaf__));
-
-
-
-extern size_t confstr (int __name, char *__buf, size_t __len) __attribute__ ((__nothrow__ , __leaf__));
-
-
-
-
-extern __pid_t getpid (void) __attribute__ ((__nothrow__ , __leaf__));
-
-
-extern __pid_t getppid (void) __attribute__ ((__nothrow__ , __leaf__));
-
-
-extern __pid_t getpgrp (void) __attribute__ ((__nothrow__ , __leaf__));
-
-
-extern __pid_t __getpgid (__pid_t __pid) __attribute__ ((__nothrow__ , __leaf__));
-
-extern __pid_t getpgid (__pid_t __pid) __attribute__ ((__nothrow__ , __leaf__));
-
-
-
-
-
-
-extern int setpgid (__pid_t __pid, __pid_t __pgid) __attribute__ ((__nothrow__ , __leaf__));
-# 663 "/usr/include/unistd.h" 3 4
-extern int setpgrp (void) __attribute__ ((__nothrow__ , __leaf__));
-
-
-
-
-
-
-extern __pid_t setsid (void) __attribute__ ((__nothrow__ , __leaf__));
-
-
-
-extern __pid_t getsid (__pid_t __pid) __attribute__ ((__nothrow__ , __leaf__));
-
-
-
-extern __uid_t getuid (void) __attribute__ ((__nothrow__ , __leaf__));
-
-
-extern __uid_t geteuid (void) __attribute__ ((__nothrow__ , __leaf__));
-
-
-extern __gid_t getgid (void) __attribute__ ((__nothrow__ , __leaf__));
-
-
-extern __gid_t getegid (void) __attribute__ ((__nothrow__ , __leaf__));
-
-
-
-
-extern int getgroups (int __size, __gid_t __list[]) __attribute__ ((__nothrow__ , __leaf__)) ;
-# 703 "/usr/include/unistd.h" 3 4
-extern int setuid (__uid_t __uid) __attribute__ ((__nothrow__ , __leaf__)) ;
-
-
-
-
-extern int setreuid (__uid_t __ruid, __uid_t __euid) __attribute__ ((__nothrow__ , __leaf__)) ;
-
-
-
-
-extern int seteuid (__uid_t __uid) __attribute__ ((__nothrow__ , __leaf__)) ;
-
-
-
-
-
-
-extern int setgid (__gid_t __gid) __attribute__ ((__nothrow__ , __leaf__)) ;
-
-
-
-
-extern int setregid (__gid_t __rgid, __gid_t __egid) __attribute__ ((__nothrow__ , __leaf__)) ;
-
-
-
-
-extern int setegid (__gid_t __gid) __attribute__ ((__nothrow__ , __leaf__)) ;
-# 759 "/usr/include/unistd.h" 3 4
-extern __pid_t fork (void) __attribute__ ((__nothrow__));
-
-
-
-
-
-
-
-extern __pid_t vfork (void) __attribute__ ((__nothrow__ , __leaf__));
-
-
-
-
-
-extern char *ttyname (int __fd) __attribute__ ((__nothrow__ , __leaf__));
-
-
-
-extern int ttyname_r (int __fd, char *__buf, size_t __buflen)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2))) ;
-
-
-
-extern int isatty (int __fd) __attribute__ ((__nothrow__ , __leaf__));
-
-
-
-
-
-extern int ttyslot (void) __attribute__ ((__nothrow__ , __leaf__));
-
-
-
-
-extern int link (const char *__from, const char *__to)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))) ;
-
-
-
-
-extern int linkat (int __fromfd, const char *__from, int __tofd,
- const char *__to, int __flags)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 4))) ;
-
-
-
-
-extern int symlink (const char *__from, const char *__to)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))) ;
-
-
-
-
-extern ssize_t readlink (const char *__restrict __path,
- char *__restrict __buf, size_t __len)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))) ;
-
-
-
-
-extern int symlinkat (const char *__from, int __tofd,
- const char *__to) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 3))) ;
-
-
-extern ssize_t readlinkat (int __fd, const char *__restrict __path,
- char *__restrict __buf, size_t __len)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 3))) ;
-
-
-
-extern int unlink (const char *__name) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
-
-
-
-extern int unlinkat (int __fd, const char *__name, int __flag)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2)));
-
-
-
-extern int rmdir (const char *__path) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
-
-
-
-extern __pid_t tcgetpgrp (int __fd) __attribute__ ((__nothrow__ , __leaf__));
-
-
-extern int tcsetpgrp (int __fd, __pid_t __pgrp_id) __attribute__ ((__nothrow__ , __leaf__));
-
-
-
-
-
-
-extern char *getlogin (void);
-
-
-
-
-
-
-
-extern int getlogin_r (char *__name, size_t __name_len) __attribute__ ((__nonnull__ (1)));
-
-
-
-
-extern int setlogin (const char *__name) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
-# 874 "/usr/include/unistd.h" 3 4
-# 1 "/usr/include/getopt.h" 1 3 4
-# 57 "/usr/include/getopt.h" 3 4
-extern char *optarg;
-# 71 "/usr/include/getopt.h" 3 4
-extern int optind;
-
-
-
-
-extern int opterr;
-
-
-
-extern int optopt;
-# 150 "/usr/include/getopt.h" 3 4
-extern int getopt (int ___argc, char *const *___argv, const char *__shortopts)
- __attribute__ ((__nothrow__ , __leaf__));
-# 875 "/usr/include/unistd.h" 2 3 4
-
-
-
-
-
-
-
-extern int gethostname (char *__name, size_t __len) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
-
-
-
-
-
-
-extern int sethostname (const char *__name, size_t __len)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ;
-
-
-
-extern int sethostid (long int __id) __attribute__ ((__nothrow__ , __leaf__)) ;
-
-
-
-
-
-extern int getdomainname (char *__name, size_t __len)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ;
-extern int setdomainname (const char *__name, size_t __len)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ;
-
-
-
-
-
-extern int vhangup (void) __attribute__ ((__nothrow__ , __leaf__));
-
-
-extern int revoke (const char *__file) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ;
-
-
-
-
-
-
-
-extern int profil (unsigned short int *__sample_buffer, size_t __size,
- size_t __offset, unsigned int __scale)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
-
-
-
-
-
-extern int acct (const char *__name) __attribute__ ((__nothrow__ , __leaf__));
-
-
-
-extern char *getusershell (void) __attribute__ ((__nothrow__ , __leaf__));
-extern void endusershell (void) __attribute__ ((__nothrow__ , __leaf__));
-extern void setusershell (void) __attribute__ ((__nothrow__ , __leaf__));
-
-
-
-
-
-extern int daemon (int __nochdir, int __noclose) __attribute__ ((__nothrow__ , __leaf__)) ;
-
-
-
-
-
-
-extern int chroot (const char *__path) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ;
-
-
-
-extern char *getpass (const char *__prompt) __attribute__ ((__nonnull__ (1)));
-
-
-
-
-
-
-
-extern int fsync (int __fd);
-# 972 "/usr/include/unistd.h" 3 4
-extern long int gethostid (void);
-
-
-extern void sync (void) __attribute__ ((__nothrow__ , __leaf__));
-
-
-
-
-
-extern int getpagesize (void) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__));
-
-
-
-
-extern int getdtablesize (void) __attribute__ ((__nothrow__ , __leaf__));
-# 996 "/usr/include/unistd.h" 3 4
-extern int truncate (const char *__file, __off_t __length)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ;
-# 1019 "/usr/include/unistd.h" 3 4
-extern int ftruncate (int __fd, __off_t __length) __attribute__ ((__nothrow__ , __leaf__)) ;
-# 1040 "/usr/include/unistd.h" 3 4
-extern int brk (void *__addr) __attribute__ ((__nothrow__ , __leaf__)) ;
-
-
-
-
-
-extern void *sbrk (intptr_t __delta) __attribute__ ((__nothrow__ , __leaf__));
-# 1061 "/usr/include/unistd.h" 3 4
-extern long int syscall (long int __sysno, ...) __attribute__ ((__nothrow__ , __leaf__));
-# 1084 "/usr/include/unistd.h" 3 4
-extern int lockf (int __fd, int __cmd, __off_t __len) ;
-# 1115 "/usr/include/unistd.h" 3 4
-extern int fdatasync (int __fildes);
-# 1154 "/usr/include/unistd.h" 3 4
-
-# 29 "../../../server-code/src/common/utils.h" 2
-# 39 "../../../server-code/src/common/utils.h"
-
-# 39 "../../../server-code/src/common/utils.h"
-void WriteDump(FILE* fp, const void* buffer, size_t length);
-void ShowDump(const void* buffer, size_t length);
-
-void findfile(const char *p, const char *pat, void (func)(const char*));
-
-# 43 "../../../server-code/src/common/utils.h" 3 4
-_Bool
-# 43 "../../../server-code/src/common/utils.h"
- exists(const char* filename);
-
-
-unsigned int get_percentage(const unsigned int A, const unsigned int B);
-
-int64 apply_percentrate64(int64 value, int rate, int maxrate);
-int apply_percentrate(int value, int rate, int maxrate);
-
-const char* timestamp2string(char* str, size_t size, time_t timestamp, const char* format);
-
-
-
-
-
-extern uint8 GetByte(uint32 val, int idx);
-extern uint16 GetWord(uint32 val, int idx);
-extern uint16 MakeWord(uint8 byte0, uint8 byte1);
-extern uint32 MakeDWord(uint16 word0, uint16 word1);
-
-
-
-
-extern int16 MakeShortLE(int16 val);
-extern int32 MakeLongLE(int32 val);
-extern uint16 GetUShort(const unsigned char* buf);
-extern uint32 GetULong(const unsigned char* buf);
-extern int32 GetLong(const unsigned char* buf);
-extern float GetFloat(const unsigned char* buf);
-
-size_t hread(void * ptr, size_t size, size_t count, FILE * stream);
-size_t hwrite(const void * ptr, size_t size, size_t count, FILE * stream);
-# 83 "../../../server-code/src/common/utils.h"
-struct HCache_interface {
- void (*init) (void);
-
-
-# 86 "../../../server-code/src/common/utils.h" 3 4
-_Bool
-# 86 "../../../server-code/src/common/utils.h"
- (*check) (const char *file);
- FILE *(*open) (const char *file, const char *opt);
-
- time_t recompile_time;
-
-# 90 "../../../server-code/src/common/utils.h" 3 4
-_Bool
-# 90 "../../../server-code/src/common/utils.h"
- enabled;
-};
-
-
-void HCache_defaults(void);
-
-
-extern struct HCache_interface *HCache;
-# 58 "../../../server-code/src/char/char.c" 2
-
-# 1 "/usr/include/signal.h" 1 3 4
-# 30 "/usr/include/signal.h" 3 4
-
-
-# 1 "/usr/include/x86_64-linux-gnu/bits/sigset.h" 1 3 4
-# 22 "/usr/include/x86_64-linux-gnu/bits/sigset.h" 3 4
-
-# 22 "/usr/include/x86_64-linux-gnu/bits/sigset.h" 3 4
-typedef int __sig_atomic_t;
-
-
-
-
-typedef struct
- {
- unsigned long int __val[(1024 / (8 * sizeof (unsigned long int)))];
- } __sigset_t;
-# 102 "/usr/include/x86_64-linux-gnu/bits/sigset.h" 3 4
-extern int __sigismember (const __sigset_t *, int);
-extern int __sigaddset (__sigset_t *, int);
-extern int __sigdelset (__sigset_t *, int);
-# 33 "/usr/include/signal.h" 2 3 4
-
-
-
-
-
-
-
-typedef __sig_atomic_t sig_atomic_t;
-
-
-
-
-
-
-
-
-typedef __sigset_t sigset_t;
-
-
-
-
-
-
-
-# 1 "/usr/include/x86_64-linux-gnu/bits/signum.h" 1 3 4
-# 58 "/usr/include/signal.h" 2 3 4
-# 80 "/usr/include/signal.h" 3 4
-# 1 "/usr/include/x86_64-linux-gnu/bits/siginfo.h" 1 3 4
-# 24 "/usr/include/x86_64-linux-gnu/bits/siginfo.h" 3 4
-# 1 "/usr/include/x86_64-linux-gnu/bits/wordsize.h" 1 3 4
-# 25 "/usr/include/x86_64-linux-gnu/bits/siginfo.h" 2 3 4
-
-
-
-
-
-
-
-typedef union sigval
- {
- int sival_int;
- void *sival_ptr;
- } sigval_t;
-# 58 "/usr/include/x86_64-linux-gnu/bits/siginfo.h" 3 4
-typedef __clock_t __sigchld_clock_t;
-
-
-
-typedef struct
- {
- int si_signo;
- int si_errno;
-
- int si_code;
-
- union
- {
- int _pad[((128 / sizeof (int)) - 4)];
-
-
- struct
- {
- __pid_t si_pid;
- __uid_t si_uid;
- } _kill;
-
-
- struct
- {
- int si_tid;
- int si_overrun;
- sigval_t si_sigval;
- } _timer;
-
-
- struct
- {
- __pid_t si_pid;
- __uid_t si_uid;
- sigval_t si_sigval;
- } _rt;
-
-
- struct
- {
- __pid_t si_pid;
- __uid_t si_uid;
- int si_status;
- __sigchld_clock_t si_utime;
- __sigchld_clock_t si_stime;
- } _sigchld;
-
-
- struct
- {
- void *si_addr;
- short int si_addr_lsb;
- struct
- {
- void *_lower;
- void *_upper;
- } si_addr_bnd;
- } _sigfault;
-
-
- struct
- {
- long int si_band;
- int si_fd;
- } _sigpoll;
-
-
- struct
- {
- void *_call_addr;
- int _syscall;
- unsigned int _arch;
- } _sigsys;
- } _sifields;
- } siginfo_t ;
-# 160 "/usr/include/x86_64-linux-gnu/bits/siginfo.h" 3 4
-enum
-{
- SI_ASYNCNL = -60,
-
- SI_TKILL = -6,
-
- SI_SIGIO,
-
- SI_ASYNCIO,
-
- SI_MESGQ,
-
- SI_TIMER,
-
- SI_QUEUE,
-
- SI_USER,
-
- SI_KERNEL = 0x80
-
-};
-
-
-
-
-enum
-{
- ILL_ILLOPC = 1,
-
- ILL_ILLOPN,
-
- ILL_ILLADR,
-
- ILL_ILLTRP,
-
- ILL_PRVOPC,
-
- ILL_PRVREG,
-
- ILL_COPROC,
-
- ILL_BADSTK
-
-};
-
-
-enum
-{
- FPE_INTDIV = 1,
-
- FPE_INTOVF,
-
- FPE_FLTDIV,
-
- FPE_FLTOVF,
-
- FPE_FLTUND,
-
- FPE_FLTRES,
-
- FPE_FLTINV,
-
- FPE_FLTSUB
-
-};
-
-
-enum
-{
- SEGV_MAPERR = 1,
-
- SEGV_ACCERR
-
-};
-
-
-enum
-{
- BUS_ADRALN = 1,
-
- BUS_ADRERR,
-
- BUS_OBJERR,
-
- BUS_MCEERR_AR,
-
- BUS_MCEERR_AO
-
-};
-# 264 "/usr/include/x86_64-linux-gnu/bits/siginfo.h" 3 4
-enum
-{
- CLD_EXITED = 1,
-
- CLD_KILLED,
-
- CLD_DUMPED,
-
- CLD_TRAPPED,
-
- CLD_STOPPED,
-
- CLD_CONTINUED
-
-};
-
-
-enum
-{
- POLL_IN = 1,
-
- POLL_OUT,
-
- POLL_MSG,
-
- POLL_ERR,
-
- POLL_PRI,
-
- POLL_HUP
-
-};
-# 316 "/usr/include/x86_64-linux-gnu/bits/siginfo.h" 3 4
-typedef union pthread_attr_t pthread_attr_t;
-
-
-
-typedef struct sigevent
- {
- sigval_t sigev_value;
- int sigev_signo;
- int sigev_notify;
-
- union
- {
- int _pad[((64 / sizeof (int)) - 4)];
-
-
-
- __pid_t _tid;
-
- struct
- {
- void (*_function) (sigval_t);
- pthread_attr_t *_attribute;
- } _sigev_thread;
- } _sigev_un;
- } sigevent_t;
-
-
-
-
-
-
-enum
-{
- SIGEV_SIGNAL = 0,
-
- SIGEV_NONE,
-
- SIGEV_THREAD,
-
-
- SIGEV_THREAD_ID = 4
-
-};
-# 81 "/usr/include/signal.h" 2 3 4
-
-
-
-
-typedef void (*__sighandler_t) (int);
-
-
-
-
-extern __sighandler_t __sysv_signal (int __sig, __sighandler_t __handler)
- __attribute__ ((__nothrow__ , __leaf__));
-# 100 "/usr/include/signal.h" 3 4
-
-
-extern __sighandler_t signal (int __sig, __sighandler_t __handler)
- __attribute__ ((__nothrow__ , __leaf__));
-# 114 "/usr/include/signal.h" 3 4
-
-# 127 "/usr/include/signal.h" 3 4
-extern int kill (__pid_t __pid, int __sig) __attribute__ ((__nothrow__ , __leaf__));
-
-
-
-
-
-
-extern int killpg (__pid_t __pgrp, int __sig) __attribute__ ((__nothrow__ , __leaf__));
-
-
-
-
-extern int raise (int __sig) __attribute__ ((__nothrow__ , __leaf__));
-
-
-
-
-extern __sighandler_t ssignal (int __sig, __sighandler_t __handler)
- __attribute__ ((__nothrow__ , __leaf__));
-extern int gsignal (int __sig) __attribute__ ((__nothrow__ , __leaf__));
-
-
-
-
-extern void psignal (int __sig, const char *__s);
-
-
-extern void psiginfo (const siginfo_t *__pinfo, const char *__s);
-# 187 "/usr/include/signal.h" 3 4
-extern int sigblock (int __mask) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__deprecated__));
-
-
-extern int sigsetmask (int __mask) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__deprecated__));
-
-
-extern int siggetmask (void) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__deprecated__));
-# 207 "/usr/include/signal.h" 3 4
-typedef __sighandler_t sig_t;
-
-
-
-
-
-extern int sigemptyset (sigset_t *__set) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
-
-
-extern int sigfillset (sigset_t *__set) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
-
-
-extern int sigaddset (sigset_t *__set, int __signo) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
-
-
-extern int sigdelset (sigset_t *__set, int __signo) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
-
-
-extern int sigismember (const sigset_t *__set, int __signo)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
-# 243 "/usr/include/signal.h" 3 4
-# 1 "/usr/include/x86_64-linux-gnu/bits/sigaction.h" 1 3 4
-# 24 "/usr/include/x86_64-linux-gnu/bits/sigaction.h" 3 4
-struct sigaction
- {
-
-
- union
- {
-
- __sighandler_t sa_handler;
-
- void (*sa_sigaction) (int, siginfo_t *, void *);
- }
- __sigaction_handler;
-
-
-
-
-
-
-
- __sigset_t sa_mask;
-
-
- int sa_flags;
-
-
- void (*sa_restorer) (void);
- };
-# 244 "/usr/include/signal.h" 2 3 4
-
-
-extern int sigprocmask (int __how, const sigset_t *__restrict __set,
- sigset_t *__restrict __oset) __attribute__ ((__nothrow__ , __leaf__));
-
-
-
-
-
-
-extern int sigsuspend (const sigset_t *__set) __attribute__ ((__nonnull__ (1)));
-
-
-extern int sigaction (int __sig, const struct sigaction *__restrict __act,
- struct sigaction *__restrict __oact) __attribute__ ((__nothrow__ , __leaf__));
-
-
-extern int sigpending (sigset_t *__set) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
-
-
-
-
-
-
-extern int sigwait (const sigset_t *__restrict __set, int *__restrict __sig)
- __attribute__ ((__nonnull__ (1, 2)));
-
-
-
-
-
-
-extern int sigwaitinfo (const sigset_t *__restrict __set,
- siginfo_t *__restrict __info) __attribute__ ((__nonnull__ (1)));
-
-
-
-
-
-
-extern int sigtimedwait (const sigset_t *__restrict __set,
- siginfo_t *__restrict __info,
- const struct timespec *__restrict __timeout)
- __attribute__ ((__nonnull__ (1)));
-
-
-
-extern int sigqueue (__pid_t __pid, int __sig, const union sigval __val)
- __attribute__ ((__nothrow__ , __leaf__));
-# 301 "/usr/include/signal.h" 3 4
-extern const char *const _sys_siglist[65];
-extern const char *const sys_siglist[65];
-
-
-
-# 1 "/usr/include/x86_64-linux-gnu/bits/sigcontext.h" 1 3 4
-# 29 "/usr/include/x86_64-linux-gnu/bits/sigcontext.h" 3 4
-struct _fpx_sw_bytes
-{
- __uint32_t magic1;
- __uint32_t extended_size;
- __uint64_t xstate_bv;
- __uint32_t xstate_size;
- __uint32_t padding[7];
-};
-
-struct _fpreg
-{
- unsigned short significand[4];
- unsigned short exponent;
-};
-
-struct _fpxreg
-{
- unsigned short significand[4];
- unsigned short exponent;
- unsigned short padding[3];
-};
-
-struct _xmmreg
-{
- __uint32_t element[4];
-};
-# 121 "/usr/include/x86_64-linux-gnu/bits/sigcontext.h" 3 4
-struct _fpstate
-{
-
- __uint16_t cwd;
- __uint16_t swd;
- __uint16_t ftw;
- __uint16_t fop;
- __uint64_t rip;
- __uint64_t rdp;
- __uint32_t mxcsr;
- __uint32_t mxcr_mask;
- struct _fpxreg _st[8];
- struct _xmmreg _xmm[16];
- __uint32_t padding[24];
-};
-
-struct sigcontext
-{
- __uint64_t r8;
- __uint64_t r9;
- __uint64_t r10;
- __uint64_t r11;
- __uint64_t r12;
- __uint64_t r13;
- __uint64_t r14;
- __uint64_t r15;
- __uint64_t rdi;
- __uint64_t rsi;
- __uint64_t rbp;
- __uint64_t rbx;
- __uint64_t rdx;
- __uint64_t rax;
- __uint64_t rcx;
- __uint64_t rsp;
- __uint64_t rip;
- __uint64_t eflags;
- unsigned short cs;
- unsigned short gs;
- unsigned short fs;
- unsigned short __pad0;
- __uint64_t err;
- __uint64_t trapno;
- __uint64_t oldmask;
- __uint64_t cr2;
- __extension__ union
- {
- struct _fpstate * fpstate;
- __uint64_t __fpstate_word;
- };
- __uint64_t __reserved1 [8];
-};
-
-
-
-struct _xsave_hdr
-{
- __uint64_t xstate_bv;
- __uint64_t reserved1[2];
- __uint64_t reserved2[5];
-};
-
-struct _ymmh_state
-{
- __uint32_t ymmh_space[64];
-};
-
-struct _xstate
-{
- struct _fpstate fpstate;
- struct _xsave_hdr xstate_hdr;
- struct _ymmh_state ymmh;
-};
-# 307 "/usr/include/signal.h" 2 3 4
-
-
-extern int sigreturn (struct sigcontext *__scp) __attribute__ ((__nothrow__ , __leaf__));
-
-
-
-
-
-
-# 1 "/usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h" 1 3 4
-# 317 "/usr/include/signal.h" 2 3 4
-
-
-
-
-extern int siginterrupt (int __sig, int __interrupt) __attribute__ ((__nothrow__ , __leaf__));
-
-# 1 "/usr/include/x86_64-linux-gnu/bits/sigstack.h" 1 3 4
-# 25 "/usr/include/x86_64-linux-gnu/bits/sigstack.h" 3 4
-struct sigstack
- {
- void *ss_sp;
- int ss_onstack;
- };
-
-
-
-enum
-{
- SS_ONSTACK = 1,
-
- SS_DISABLE
-
-};
-# 49 "/usr/include/x86_64-linux-gnu/bits/sigstack.h" 3 4
-typedef struct sigaltstack
- {
- void *ss_sp;
- int ss_flags;
- size_t ss_size;
- } stack_t;
-# 324 "/usr/include/signal.h" 2 3 4
-
-
-# 1 "/usr/include/x86_64-linux-gnu/sys/ucontext.h" 1 3 4
-# 22 "/usr/include/x86_64-linux-gnu/sys/ucontext.h" 3 4
-# 1 "/usr/include/signal.h" 1 3 4
-# 23 "/usr/include/x86_64-linux-gnu/sys/ucontext.h" 2 3 4
-# 31 "/usr/include/x86_64-linux-gnu/sys/ucontext.h" 3 4
-__extension__ typedef long long int greg_t;
-
-
-
-
-
-typedef greg_t gregset_t[23];
-# 92 "/usr/include/x86_64-linux-gnu/sys/ucontext.h" 3 4
-struct _libc_fpxreg
-{
- unsigned short int significand[4];
- unsigned short int exponent;
- unsigned short int padding[3];
-};
-
-struct _libc_xmmreg
-{
- __uint32_t element[4];
-};
-
-struct _libc_fpstate
-{
-
- __uint16_t cwd;
- __uint16_t swd;
- __uint16_t ftw;
- __uint16_t fop;
- __uint64_t rip;
- __uint64_t rdp;
- __uint32_t mxcsr;
- __uint32_t mxcr_mask;
- struct _libc_fpxreg _st[8];
- struct _libc_xmmreg _xmm[16];
- __uint32_t padding[24];
-};
-
-
-typedef struct _libc_fpstate *fpregset_t;
-
-
-typedef struct
- {
- gregset_t gregs;
-
- fpregset_t fpregs;
- __extension__ unsigned long long __reserved1 [8];
-} mcontext_t;
-
-
-typedef struct ucontext
- {
- unsigned long int uc_flags;
- struct ucontext *uc_link;
- stack_t uc_stack;
- mcontext_t uc_mcontext;
- __sigset_t uc_sigmask;
- struct _libc_fpstate __fpregs_mem;
- } ucontext_t;
-# 327 "/usr/include/signal.h" 2 3 4
-
-
-
-
-
-extern int sigstack (struct sigstack *__ss, struct sigstack *__oss)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__deprecated__));
-
-
-
-extern int sigaltstack (const struct sigaltstack *__restrict __ss,
- struct sigaltstack *__restrict __oss) __attribute__ ((__nothrow__ , __leaf__));
-# 361 "/usr/include/signal.h" 3 4
-# 1 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h" 1 3 4
-# 21 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h" 3 4
-# 1 "/usr/include/x86_64-linux-gnu/bits/wordsize.h" 1 3 4
-# 22 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h" 2 3 4
-# 60 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h" 3 4
-typedef unsigned long int pthread_t;
-
-
-union pthread_attr_t
-{
- char __size[56];
- long int __align;
-};
-
-
-
-
-
-
-
-typedef struct __pthread_internal_list
-{
- struct __pthread_internal_list *__prev;
- struct __pthread_internal_list *__next;
-} __pthread_list_t;
-# 90 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h" 3 4
-typedef union
-{
- struct __pthread_mutex_s
- {
- int __lock;
- unsigned int __count;
- int __owner;
-
- unsigned int __nusers;
-
-
-
- int __kind;
-
- short __spins;
- short __elision;
- __pthread_list_t __list;
-# 125 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h" 3 4
- } __data;
- char __size[40];
- long int __align;
-} pthread_mutex_t;
-
-typedef union
-{
- char __size[4];
- int __align;
-} pthread_mutexattr_t;
-
-
-
-
-typedef union
-{
- struct
- {
- int __lock;
- unsigned int __futex;
- __extension__ unsigned long long int __total_seq;
- __extension__ unsigned long long int __wakeup_seq;
- __extension__ unsigned long long int __woken_seq;
- void *__mutex;
- unsigned int __nwaiters;
- unsigned int __broadcast_seq;
- } __data;
- char __size[48];
- __extension__ long long int __align;
-} pthread_cond_t;
-
-typedef union
-{
- char __size[4];
- int __align;
-} pthread_condattr_t;
-
-
-
-typedef unsigned int pthread_key_t;
-
-
-
-typedef int pthread_once_t;
-
-
-
-
-
-typedef union
-{
-
- struct
- {
- int __lock;
- unsigned int __nr_readers;
- unsigned int __readers_wakeup;
- unsigned int __writer_wakeup;
- unsigned int __nr_readers_queued;
- unsigned int __nr_writers_queued;
- int __writer;
- int __shared;
- signed char __rwelision;
-
-
-
-
- unsigned char __pad1[7];
-
-
- unsigned long int __pad2;
-
-
- unsigned int __flags;
-
- } __data;
-# 220 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h" 3 4
- char __size[56];
- long int __align;
-} pthread_rwlock_t;
-
-typedef union
-{
- char __size[8];
- long int __align;
-} pthread_rwlockattr_t;
-
-
-
-
-
-typedef volatile int pthread_spinlock_t;
-
-
-
-
-typedef union
-{
- char __size[32];
- long int __align;
-} pthread_barrier_t;
-
-typedef union
-{
- char __size[4];
- int __align;
-} pthread_barrierattr_t;
-# 362 "/usr/include/signal.h" 2 3 4
-# 1 "/usr/include/x86_64-linux-gnu/bits/sigthread.h" 1 3 4
-# 30 "/usr/include/x86_64-linux-gnu/bits/sigthread.h" 3 4
-extern int pthread_sigmask (int __how,
- const __sigset_t *__restrict __newmask,
- __sigset_t *__restrict __oldmask)__attribute__ ((__nothrow__ , __leaf__));
-
-
-extern int pthread_kill (pthread_t __threadid, int __signo) __attribute__ ((__nothrow__ , __leaf__));
-# 363 "/usr/include/signal.h" 2 3 4
-
-
-
-
-
-
-extern int __libc_current_sigrtmin (void) __attribute__ ((__nothrow__ , __leaf__));
-
-extern int __libc_current_sigrtmax (void) __attribute__ ((__nothrow__ , __leaf__));
-
-
-
-
-# 60 "../../../server-code/src/char/char.c" 2
-
-
-# 1 "/usr/include/stdlib.h" 1 3 4
-# 32 "/usr/include/stdlib.h" 3 4
-# 1 "/usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h" 1 3 4
-# 33 "/usr/include/stdlib.h" 2 3 4
-
-
-
-
-
-
-
-
-# 1 "/usr/include/x86_64-linux-gnu/bits/waitflags.h" 1 3 4
-# 50 "/usr/include/x86_64-linux-gnu/bits/waitflags.h" 3 4
-typedef enum
-{
- P_ALL,
- P_PID,
- P_PGID
-} idtype_t;
-# 42 "/usr/include/stdlib.h" 2 3 4
-# 1 "/usr/include/x86_64-linux-gnu/bits/waitstatus.h" 1 3 4
-# 66 "/usr/include/x86_64-linux-gnu/bits/waitstatus.h" 3 4
-union wait
- {
- int w_status;
- struct
- {
-
- unsigned int __w_termsig:7;
- unsigned int __w_coredump:1;
- unsigned int __w_retcode:8;
- unsigned int:16;
-
-
-
-
-
-
-
- } __wait_terminated;
- struct
- {
-
- unsigned int __w_stopval:8;
- unsigned int __w_stopsig:8;
- unsigned int:16;
-
-
-
-
-
-
- } __wait_stopped;
- };
-# 43 "/usr/include/stdlib.h" 2 3 4
-# 67 "/usr/include/stdlib.h" 3 4
-typedef union
- {
- union wait *__uptr;
- int *__iptr;
- } __WAIT_STATUS __attribute__ ((__transparent_union__));
-# 95 "/usr/include/stdlib.h" 3 4
-
-
-typedef struct
- {
- int quot;
- int rem;
- } div_t;
-
-
-
-typedef struct
- {
- long int quot;
- long int rem;
- } ldiv_t;
-
-
-
-
-
-
-
-__extension__ typedef struct
- {
- long long int quot;
- long long int rem;
- } lldiv_t;
-
-
-# 139 "/usr/include/stdlib.h" 3 4
-extern size_t __ctype_get_mb_cur_max (void) __attribute__ ((__nothrow__ , __leaf__)) ;
-
-
-
-
-extern double atof (const char *__nptr)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
-
-extern int atoi (const char *__nptr)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
-
-extern long int atol (const char *__nptr)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
-
-
-
-
-
-__extension__ extern long long int atoll (const char *__nptr)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
-
-
-
-
-
-extern double strtod (const char *__restrict __nptr,
- char **__restrict __endptr)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
-
-
-
-
-
-extern float strtof (const char *__restrict __nptr,
- char **__restrict __endptr) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
-
-extern long double strtold (const char *__restrict __nptr,
- char **__restrict __endptr)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
-
-
-
-
-
-extern long int strtol (const char *__restrict __nptr,
- char **__restrict __endptr, int __base)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
-
-extern unsigned long int strtoul (const char *__restrict __nptr,
- char **__restrict __endptr, int __base)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
-
-
-
-
-__extension__
-extern long long int strtoq (const char *__restrict __nptr,
- char **__restrict __endptr, int __base)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
-
-__extension__
-extern unsigned long long int strtouq (const char *__restrict __nptr,
- char **__restrict __endptr, int __base)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
-
-
-
-
-
-__extension__
-extern long long int strtoll (const char *__restrict __nptr,
- char **__restrict __endptr, int __base)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
-
-__extension__
-extern unsigned long long int strtoull (const char *__restrict __nptr,
- char **__restrict __endptr, int __base)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
-
-# 305 "/usr/include/stdlib.h" 3 4
-extern char *l64a (long int __n) __attribute__ ((__nothrow__ , __leaf__)) ;
-
-
-extern long int a64l (const char *__s)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
-
-
-
-
-# 1 "/usr/include/x86_64-linux-gnu/sys/types.h" 1 3 4
-# 27 "/usr/include/x86_64-linux-gnu/sys/types.h" 3 4
-
-
-
-
-
-
-typedef __u_char u_char;
-typedef __u_short u_short;
-typedef __u_int u_int;
-typedef __u_long u_long;
-typedef __quad_t quad_t;
-typedef __u_quad_t u_quad_t;
-typedef __fsid_t fsid_t;
-
-
-
-
-typedef __loff_t loff_t;
-
-
-
-typedef __ino_t ino_t;
-# 60 "/usr/include/x86_64-linux-gnu/sys/types.h" 3 4
-typedef __dev_t dev_t;
-# 70 "/usr/include/x86_64-linux-gnu/sys/types.h" 3 4
-typedef __mode_t mode_t;
-
-
-
-
-typedef __nlink_t nlink_t;
-# 104 "/usr/include/x86_64-linux-gnu/sys/types.h" 3 4
-typedef __id_t id_t;
-# 115 "/usr/include/x86_64-linux-gnu/sys/types.h" 3 4
-typedef __daddr_t daddr_t;
-typedef __caddr_t caddr_t;
-
-
-
-
-
-typedef __key_t key_t;
-# 146 "/usr/include/x86_64-linux-gnu/sys/types.h" 3 4
-# 1 "/usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h" 1 3 4
-# 147 "/usr/include/x86_64-linux-gnu/sys/types.h" 2 3 4
-
-
-
-typedef unsigned long int ulong;
-typedef unsigned short int ushort;
-typedef unsigned int uint;
-# 200 "/usr/include/x86_64-linux-gnu/sys/types.h" 3 4
-typedef unsigned int u_int8_t __attribute__ ((__mode__ (__QI__)));
-typedef unsigned int u_int16_t __attribute__ ((__mode__ (__HI__)));
-typedef unsigned int u_int32_t __attribute__ ((__mode__ (__SI__)));
-typedef unsigned int u_int64_t __attribute__ ((__mode__ (__DI__)));
-
-typedef int register_t __attribute__ ((__mode__ (__word__)));
-# 219 "/usr/include/x86_64-linux-gnu/sys/types.h" 3 4
-# 1 "/usr/include/x86_64-linux-gnu/sys/select.h" 1 3 4
-# 30 "/usr/include/x86_64-linux-gnu/sys/select.h" 3 4
-# 1 "/usr/include/x86_64-linux-gnu/bits/select.h" 1 3 4
-# 22 "/usr/include/x86_64-linux-gnu/bits/select.h" 3 4
-# 1 "/usr/include/x86_64-linux-gnu/bits/wordsize.h" 1 3 4
-# 23 "/usr/include/x86_64-linux-gnu/bits/select.h" 2 3 4
-# 31 "/usr/include/x86_64-linux-gnu/sys/select.h" 2 3 4
-
-
-# 1 "/usr/include/x86_64-linux-gnu/bits/sigset.h" 1 3 4
-# 34 "/usr/include/x86_64-linux-gnu/sys/select.h" 2 3 4
-# 45 "/usr/include/x86_64-linux-gnu/sys/select.h" 3 4
-# 1 "/usr/include/x86_64-linux-gnu/bits/time.h" 1 3 4
-# 30 "/usr/include/x86_64-linux-gnu/bits/time.h" 3 4
-struct timeval
- {
- __time_t tv_sec;
- __suseconds_t tv_usec;
- };
-# 46 "/usr/include/x86_64-linux-gnu/sys/select.h" 2 3 4
-
-
-typedef __suseconds_t suseconds_t;
-
-
-
-
-
-typedef long int __fd_mask;
-# 64 "/usr/include/x86_64-linux-gnu/sys/select.h" 3 4
-typedef struct
- {
-
-
-
-
-
-
- __fd_mask __fds_bits[1024 / (8 * (int) sizeof (__fd_mask))];
-
-
- } fd_set;
-
-
-
-
-
-
-typedef __fd_mask fd_mask;
-# 96 "/usr/include/x86_64-linux-gnu/sys/select.h" 3 4
-
-# 106 "/usr/include/x86_64-linux-gnu/sys/select.h" 3 4
-extern int select (int __nfds, fd_set *__restrict __readfds,
- fd_set *__restrict __writefds,
- fd_set *__restrict __exceptfds,
- struct timeval *__restrict __timeout);
-# 118 "/usr/include/x86_64-linux-gnu/sys/select.h" 3 4
-extern int pselect (int __nfds, fd_set *__restrict __readfds,
- fd_set *__restrict __writefds,
- fd_set *__restrict __exceptfds,
- const struct timespec *__restrict __timeout,
- const __sigset_t *__restrict __sigmask);
-# 131 "/usr/include/x86_64-linux-gnu/sys/select.h" 3 4
-
-# 220 "/usr/include/x86_64-linux-gnu/sys/types.h" 2 3 4
-
-
-# 1 "/usr/include/x86_64-linux-gnu/sys/sysmacros.h" 1 3 4
-# 24 "/usr/include/x86_64-linux-gnu/sys/sysmacros.h" 3 4
-
-
-__extension__
-extern unsigned int gnu_dev_major (unsigned long long int __dev)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__));
-__extension__
-extern unsigned int gnu_dev_minor (unsigned long long int __dev)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__));
-__extension__
-extern unsigned long long int gnu_dev_makedev (unsigned int __major,
- unsigned int __minor)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__));
-# 58 "/usr/include/x86_64-linux-gnu/sys/sysmacros.h" 3 4
-
-# 223 "/usr/include/x86_64-linux-gnu/sys/types.h" 2 3 4
-
-
-
-
-
-typedef __blksize_t blksize_t;
-
-
-
-
-
-
-typedef __blkcnt_t blkcnt_t;
-
-
-
-typedef __fsblkcnt_t fsblkcnt_t;
-
-
-
-typedef __fsfilcnt_t fsfilcnt_t;
-# 273 "/usr/include/x86_64-linux-gnu/sys/types.h" 3 4
-
-# 315 "/usr/include/stdlib.h" 2 3 4
-
-
-
-
-
-
-extern long int random (void) __attribute__ ((__nothrow__ , __leaf__));
-
-
-extern void srandom (unsigned int __seed) __attribute__ ((__nothrow__ , __leaf__));
-
-
-
-
-
-extern char *initstate (unsigned int __seed, char *__statebuf,
- size_t __statelen) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2)));
-
-
-
-extern char *setstate (char *__statebuf) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
-
-
-
-
-
-
-
-struct random_data
- {
- int32_t *fptr;
- int32_t *rptr;
- int32_t *state;
- int rand_type;
- int rand_deg;
- int rand_sep;
- int32_t *end_ptr;
- };
-
-extern int random_r (struct random_data *__restrict __buf,
- int32_t *__restrict __result) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
-
-extern int srandom_r (unsigned int __seed, struct random_data *__buf)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2)));
-
-extern int initstate_r (unsigned int __seed, char *__restrict __statebuf,
- size_t __statelen,
- struct random_data *__restrict __buf)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 4)));
-
-extern int setstate_r (char *__restrict __statebuf,
- struct random_data *__restrict __buf)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
-
-
-
-
-
-
-extern int rand (void) __attribute__ ((__nothrow__ , __leaf__));
-
-extern void srand (unsigned int __seed) __attribute__ ((__nothrow__ , __leaf__));
-
-
-
-
-extern int rand_r (unsigned int *__seed) __attribute__ ((__nothrow__ , __leaf__));
-
-
-
-
-
-
-
-extern double drand48 (void) __attribute__ ((__nothrow__ , __leaf__));
-extern double erand48 (unsigned short int __xsubi[3]) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
-
-
-extern long int lrand48 (void) __attribute__ ((__nothrow__ , __leaf__));
-extern long int nrand48 (unsigned short int __xsubi[3])
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
-
-
-extern long int mrand48 (void) __attribute__ ((__nothrow__ , __leaf__));
-extern long int jrand48 (unsigned short int __xsubi[3])
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
-
-
-extern void srand48 (long int __seedval) __attribute__ ((__nothrow__ , __leaf__));
-extern unsigned short int *seed48 (unsigned short int __seed16v[3])
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
-extern void lcong48 (unsigned short int __param[7]) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
-
-
-
-
-
-struct drand48_data
- {
- unsigned short int __x[3];
- unsigned short int __old_x[3];
- unsigned short int __c;
- unsigned short int __init;
- __extension__ unsigned long long int __a;
-
- };
-
-
-extern int drand48_r (struct drand48_data *__restrict __buffer,
- double *__restrict __result) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
-extern int erand48_r (unsigned short int __xsubi[3],
- struct drand48_data *__restrict __buffer,
- double *__restrict __result) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
-
-
-extern int lrand48_r (struct drand48_data *__restrict __buffer,
- long int *__restrict __result)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
-extern int nrand48_r (unsigned short int __xsubi[3],
- struct drand48_data *__restrict __buffer,
- long int *__restrict __result)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
-
-
-extern int mrand48_r (struct drand48_data *__restrict __buffer,
- long int *__restrict __result)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
-extern int jrand48_r (unsigned short int __xsubi[3],
- struct drand48_data *__restrict __buffer,
- long int *__restrict __result)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
-
-
-extern int srand48_r (long int __seedval, struct drand48_data *__buffer)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2)));
-
-extern int seed48_r (unsigned short int __seed16v[3],
- struct drand48_data *__buffer) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
-
-extern int lcong48_r (unsigned short int __param[7],
- struct drand48_data *__buffer)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
-
-
-
-
-
-
-
-
-
-extern void *malloc (size_t __size) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)) ;
-
-extern void *calloc (size_t __nmemb, size_t __size)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)) ;
-
-
-
-
-
-
-
-
-
-
-extern void *realloc (void *__ptr, size_t __size)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__));
-
-extern void free (void *__ptr) __attribute__ ((__nothrow__ , __leaf__));
-
-
-
-
-extern void cfree (void *__ptr) __attribute__ ((__nothrow__ , __leaf__));
-
-
-
-# 1 "/usr/include/alloca.h" 1 3 4
-# 24 "/usr/include/alloca.h" 3 4
-# 1 "/usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h" 1 3 4
-# 25 "/usr/include/alloca.h" 2 3 4
-
-
-
-
-
-
-
-extern void *alloca (size_t __size) __attribute__ ((__nothrow__ , __leaf__));
-
-
-
-
-
-
-# 493 "/usr/include/stdlib.h" 2 3 4
-
-
-
-
-
-extern void *valloc (size_t __size) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)) ;
-
-
-
-
-extern int posix_memalign (void **__memptr, size_t __alignment, size_t __size)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ;
-
-
-
-
-extern void *aligned_alloc (size_t __alignment, size_t __size)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)) __attribute__ ((__alloc_size__ (2))) ;
-
-
-
-
-extern void abort (void) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__noreturn__));
-
-
-
-extern int atexit (void (*__func) (void)) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
-
-
-
-
-
-
-
-extern int at_quick_exit (void (*__func) (void)) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
-
-
-
-
-
-
-
-extern int on_exit (void (*__func) (int __status, void *__arg), void *__arg)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
-
-
-
-
-
-
-extern void exit (int __status) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__noreturn__));
-
-
-
-
-
-extern void quick_exit (int __status) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__noreturn__));
-
-
-
-
-
-
-
-extern void _Exit (int __status) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__noreturn__));
-
-
-
-
-
-
-extern char *getenv (const char *__name) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ;
-
-# 578 "/usr/include/stdlib.h" 3 4
-extern int putenv (char *__string) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
-
-
-
-
-
-extern int setenv (const char *__name, const char *__value, int __replace)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2)));
-
-
-extern int unsetenv (const char *__name) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
-
-
-
-
-
-
-extern int clearenv (void) __attribute__ ((__nothrow__ , __leaf__));
-# 606 "/usr/include/stdlib.h" 3 4
-extern char *mktemp (char *__template) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
-# 619 "/usr/include/stdlib.h" 3 4
-extern int mkstemp (char *__template) __attribute__ ((__nonnull__ (1))) ;
-# 641 "/usr/include/stdlib.h" 3 4
-extern int mkstemps (char *__template, int __suffixlen) __attribute__ ((__nonnull__ (1))) ;
-# 662 "/usr/include/stdlib.h" 3 4
-extern char *mkdtemp (char *__template) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ;
-# 711 "/usr/include/stdlib.h" 3 4
-
-
-
-
-
-extern int system (const char *__command) ;
-
-# 733 "/usr/include/stdlib.h" 3 4
-extern char *realpath (const char *__restrict __name,
- char *__restrict __resolved) __attribute__ ((__nothrow__ , __leaf__)) ;
-
-
-
-
-
-
-typedef int (*__compar_fn_t) (const void *, const void *);
-# 751 "/usr/include/stdlib.h" 3 4
-
-
-
-extern void *bsearch (const void *__key, const void *__base,
- size_t __nmemb, size_t __size, __compar_fn_t __compar)
- __attribute__ ((__nonnull__ (1, 2, 5))) ;
-
-
-
-
-
-
-
-extern void qsort (void *__base, size_t __nmemb, size_t __size,
- __compar_fn_t __compar) __attribute__ ((__nonnull__ (1, 4)));
-# 774 "/usr/include/stdlib.h" 3 4
-extern int abs (int __x) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)) ;
-extern long int labs (long int __x) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)) ;
-
-
-
-__extension__ extern long long int llabs (long long int __x)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)) ;
-
-
-
-
-
-
-
-extern div_t div (int __numer, int __denom)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)) ;
-extern ldiv_t ldiv (long int __numer, long int __denom)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)) ;
-
-
-
-
-__extension__ extern lldiv_t lldiv (long long int __numer,
- long long int __denom)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)) ;
-
-# 811 "/usr/include/stdlib.h" 3 4
-extern char *ecvt (double __value, int __ndigit, int *__restrict __decpt,
- int *__restrict __sign) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4))) ;
-
-
-
-
-extern char *fcvt (double __value, int __ndigit, int *__restrict __decpt,
- int *__restrict __sign) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4))) ;
-
-
-
-
-extern char *gcvt (double __value, int __ndigit, char *__buf)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3))) ;
-
-
-
-
-extern char *qecvt (long double __value, int __ndigit,
- int *__restrict __decpt, int *__restrict __sign)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4))) ;
-extern char *qfcvt (long double __value, int __ndigit,
- int *__restrict __decpt, int *__restrict __sign)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4))) ;
-extern char *qgcvt (long double __value, int __ndigit, char *__buf)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3))) ;
-
-
-
-
-extern int ecvt_r (double __value, int __ndigit, int *__restrict __decpt,
- int *__restrict __sign, char *__restrict __buf,
- size_t __len) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4, 5)));
-extern int fcvt_r (double __value, int __ndigit, int *__restrict __decpt,
- int *__restrict __sign, char *__restrict __buf,
- size_t __len) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4, 5)));
-
-extern int qecvt_r (long double __value, int __ndigit,
- int *__restrict __decpt, int *__restrict __sign,
- char *__restrict __buf, size_t __len)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4, 5)));
-extern int qfcvt_r (long double __value, int __ndigit,
- int *__restrict __decpt, int *__restrict __sign,
- char *__restrict __buf, size_t __len)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4, 5)));
-
-
-
-
-
-
-extern int mblen (const char *__s, size_t __n) __attribute__ ((__nothrow__ , __leaf__));
-
-
-extern int mbtowc (wchar_t *__restrict __pwc,
- const char *__restrict __s, size_t __n) __attribute__ ((__nothrow__ , __leaf__));
-
-
-extern int wctomb (char *__s, wchar_t __wchar) __attribute__ ((__nothrow__ , __leaf__));
-
-
-
-extern size_t mbstowcs (wchar_t *__restrict __pwcs,
- const char *__restrict __s, size_t __n) __attribute__ ((__nothrow__ , __leaf__));
-
-extern size_t wcstombs (char *__restrict __s,
- const wchar_t *__restrict __pwcs, size_t __n)
- __attribute__ ((__nothrow__ , __leaf__));
-
-
-
-
-
-
-
-
-extern int rpmatch (const char *__response) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ;
-# 898 "/usr/include/stdlib.h" 3 4
-extern int getsubopt (char **__restrict __optionp,
- char *const *__restrict __tokens,
- char **__restrict __valuep)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2, 3))) ;
-# 950 "/usr/include/stdlib.h" 3 4
-extern int getloadavg (double __loadavg[], int __nelem)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
-
-
-# 1 "/usr/include/x86_64-linux-gnu/bits/stdlib-float.h" 1 3 4
-# 955 "/usr/include/stdlib.h" 2 3 4
-# 967 "/usr/include/stdlib.h" 3 4
-
-# 63 "../../../server-code/src/char/char.c" 2
-
-
-
-
-# 66 "../../../server-code/src/char/char.c"
-char char_db[256] = "char";
-char scdata_db[256] = "sc_data";
-char cart_db[256] = "cart_inventory";
-char inventory_db[256] = "inventory";
-char charlog_db[256] = "charlog";
-char storage_db[256] = "storage";
-char interlog_db[256] = "interlog";
-char skill_db[256] = "skill";
-char memo_db[256] = "memo";
-char guild_db[256] = "guild";
-char guild_alliance_db[256] = "guild_alliance";
-char guild_castle_db[256] = "guild_castle";
-char guild_expulsion_db[256] = "guild_expulsion";
-char guild_member_db[256] = "guild_member";
-char guild_position_db[256] = "guild_position";
-char guild_skill_db[256] = "guild_skill";
-char guild_storage_db[256] = "guild_storage";
-char party_db[256] = "party";
-char pet_db[256] = "pet";
-char mail_db[256] = "mail";
-char auction_db[256] = "auction";
-char friend_db[256] = "friends";
-char hotkey_db[256] = "hotkey";
-char quest_db[256] = "quest";
-char homunculus_db[256] = "homunculus";
-char skill_homunculus_db[256] = "skill_homunculus";
-char mercenary_db[256] = "mercenary";
-char mercenary_owner_db[256] = "mercenary_owner";
-char ragsrvinfo_db[256] = "ragsrvinfo";
-char elemental_db[256] = "elemental";
-char account_data_db[256] = "account_data";
-char acc_reg_num_db[32] = "acc_reg_num_db";
-char acc_reg_str_db[32] = "acc_reg_str_db";
-char char_reg_str_db[32] = "char_reg_str_db";
-char char_reg_num_db[32] = "char_reg_num_db";
-
-struct char_interface char_s;
-struct char_interface *chr;
-
-
-int save_log = 1;
-
-char db_path[1024] = "db";
-
-char wisp_server_name[(23 + 1)] = "Server";
-char login_ip_str[128];
-uint32 login_ip = 0;
-uint16 login_port = 6900;
-char char_ip_str[128];
-char bind_ip_str[128];
-uint32 bind_ip = INADDR_ANY;
-int char_maintenance_min_group_id = 0;
-
-# 118 "../../../server-code/src/char/char.c" 3 4
-_Bool
-# 118 "../../../server-code/src/char/char.c"
- char_new =
-# 118 "../../../server-code/src/char/char.c" 3 4
- 1
-# 118 "../../../server-code/src/char/char.c"
- ;
-
-
-# 120 "../../../server-code/src/char/char.c" 3 4
-_Bool
-# 120 "../../../server-code/src/char/char.c"
- name_ignoring_case =
-# 120 "../../../server-code/src/char/char.c" 3 4
- 0
-# 120 "../../../server-code/src/char/char.c"
- ;
-int char_name_option = 0;
-char unknown_char_name[(23 + 1)] = "Unknown";
-
-char char_name_letters[1024] = "";
-
-int char_del_level = 0;
-int char_del_delay = 86400;
-
-int log_char = 1;
-int log_inter = 1;
-
-int char_aegis_delete = 0;
-
-int max_connect_user = -1;
-int gm_allow_group = -1;
-int autosave_interval = (300*1000);
-int start_zeny = 0;
-int start_items[32*3];
-int guild_exp_rate = 100;
-
-
-int fame_list_size_chemist = 10;
-int fame_list_size_smith = 10;
-int fame_list_size_taekwon = 10;
-
-
-struct fame_list smith_fame_list[10];
-struct fame_list chemist_fame_list[10];
-struct fame_list taekwon_fame_list[10];
-
-
-
- struct point start_point = { 0, 97, 90 };
-
-
-
-
-unsigned short skillid2idx[10015];
-
-
-
-
-
-
-static struct DBMap *auth_db;
-# 174 "../../../server-code/src/char/char.c"
-static struct DBData char_create_online_char_data(union DBKey key, va_list args)
-{
- struct online_char_data* character;
- ((character) = (struct online_char_data *) (iMalloc->calloc(((1)),(sizeof(struct online_char_data)),"../../../server-code/src/char/char.c", 177, __func__)));
- character->account_id = key.i;
- character->char_id = -1;
- character->server = -1;
- character->pincode_enable = -1;
- character->fd = -1;
- character->waiting_disconnect = (-1);
- return DB->ptr2data(character);
-}
-
-void char_set_account_online(int account_id)
-{
- WFIFOHEAD(chr->login_fd,6);
- WFIFOW(chr->login_fd,0) = 0x272b;
- WFIFOL(chr->login_fd,2) = account_id;
- WFIFOSET(chr->login_fd,6);
-}
-
-void char_set_account_offline(int account_id)
-{
- WFIFOHEAD(chr->login_fd,6);
- WFIFOW(chr->login_fd,0) = 0x272c;
- WFIFOL(chr->login_fd,2) = account_id;
- WFIFOSET(chr->login_fd,6);
-}
-
-void char_set_char_charselect(int account_id)
-{
- struct online_char_data* character;
-
- character = (struct online_char_data*)( DB->data2ptr((chr->online_char_db)->ensure((chr->online_char_db),DB->i2key(account_id),(chr->create_online_char_data))) );
-
- if( character->server > -1 )
- if( chr->server[character->server].users > 0 )
- chr->server[character->server].users--;
-
- character->char_id = -1;
- character->server = -1;
- if(character->pincode_enable == -1)
- character->pincode_enable = pincode->charselect + pincode->enabled;
-
- if(character->waiting_disconnect != (-1)) {
- timer->delete(character->waiting_disconnect, chr->waiting_disconnect);
- character->waiting_disconnect = (-1);
- }
-
- if (chr->login_fd > 0 && !sockt->session[chr->login_fd]->flag.eof)
- chr->set_account_online(account_id);
-}
-
-void char_set_char_online(int map_id, int char_id, int account_id)
-{
- struct online_char_data* character;
- struct mmo_charstatus *cp;
-
-
- if( (-1) == SQL->Query(inter->sql_handle, "UPDATE `%s` SET `online`='1' WHERE `char_id`='%d' LIMIT 1", char_db, char_id) )
- (SQL->ShowDebug_((inter->sql_handle), "../../../server-code/src/char/char.c", 234));
-
-
- character = (struct online_char_data*)( DB->data2ptr((chr->online_char_db)->ensure((chr->online_char_db),DB->i2key(account_id),(chr->create_online_char_data))) );
- if( character->char_id != -1 && character->server > -1 && character->server != map_id )
- {
- (showmsg->showNotice(("chr->set_char_online: Character %d:%d marked in map server %d, but map server %d claims to have (%d:%d) online!\n"), character->account_id, character->char_id, character->server, map_id, account_id, char_id))
- ;
- mapif->disconnectplayer(chr->server[character->server].fd, character->account_id, character->char_id, 2);
- }
-
-
- character->char_id = char_id;
- character->server = map_id;
-
- if( character->server > -1 )
- chr->server[character->server].users++;
-
-
- if(character->waiting_disconnect != (-1)) {
- timer->delete(character->waiting_disconnect, chr->waiting_disconnect);
- character->waiting_disconnect = (-1);
- }
-
-
- cp = (struct mmo_charstatus*)( DB->data2ptr((chr->char_db_)->get((chr->char_db_),DB->i2key(char_id))) );
- inter_guild->CharOnline(char_id, cp?cp->guild_id:-1);
-
-
- if (chr->login_fd > 0 && !sockt->session[chr->login_fd]->flag.eof)
- chr->set_account_online(account_id);
-}
-
-void char_set_char_offline(int char_id, int account_id)
-{
- struct online_char_data* character;
-
- if ( char_id == -1 )
- {
- if( (-1) == SQL->Query(inter->sql_handle, "UPDATE `%s` SET `online`='0' WHERE `account_id`='%d'", char_db, account_id) )
- (SQL->ShowDebug_((inter->sql_handle), "../../../server-code/src/char/char.c", 274));
- }
- else
- {
- struct mmo_charstatus* cp = (struct mmo_charstatus*)( DB->data2ptr((chr->char_db_)->get((chr->char_db_),DB->i2key(char_id))) );
- inter_guild->CharOffline(char_id, cp?cp->guild_id:-1);
- if (cp)
- ( (chr->char_db_)->remove((chr->char_db_),DB->i2key(char_id),
-# 281 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 281 "../../../server-code/src/char/char.c"
- ) );
-
- if( (-1) == SQL->Query(inter->sql_handle, "UPDATE `%s` SET `online`='0' WHERE `char_id`='%d' LIMIT 1", char_db, char_id) )
- (SQL->ShowDebug_((inter->sql_handle), "../../../server-code/src/char/char.c", 284));
- }
-
- if ((character = (struct online_char_data*)( DB->data2ptr((chr->online_char_db)->get((chr->online_char_db),DB->i2key(account_id))) )) !=
-# 287 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 287 "../../../server-code/src/char/char.c"
- ) {
-
- if( character->server > -1 )
- if( chr->server[character->server].users > 0 )
- chr->server[character->server].users--;
-
- if(character->waiting_disconnect != (-1)){
- timer->delete(character->waiting_disconnect, chr->waiting_disconnect);
- character->waiting_disconnect = (-1);
- }
-
- if(character->char_id == char_id)
- {
- character->char_id = -1;
- character->server = -1;
- character->pincode_enable = -1;
- }
-
-
- }
-
-
- if (chr->login_fd > 0 && !sockt->session[chr->login_fd]->flag.eof && (char_id == -1 || character ==
-# 309 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 309 "../../../server-code/src/char/char.c"
- || character->fd == -1))
- chr->set_account_offline(account_id);
-}
-
-
-
-
-static int char_db_setoffline(union DBKey key, struct DBData *data, va_list ap)
-{
- struct online_char_data* character = (struct online_char_data*)DB->data2ptr(data);
- int server_id =
-# 319 "../../../server-code/src/char/char.c" 3 4
- __builtin_va_arg(
-# 319 "../../../server-code/src/char/char.c"
- ap
-# 319 "../../../server-code/src/char/char.c" 3 4
- ,
-# 319 "../../../server-code/src/char/char.c"
- int
-# 319 "../../../server-code/src/char/char.c" 3 4
- )
-# 319 "../../../server-code/src/char/char.c"
- ;
- do { if (((void)(character),
-# 320 "../../../server-code/src/char/char.c" 3 4
-0
-# 320 "../../../server-code/src/char/char.c"
-)) return(0); } while(0);
- if (server_id == -1) {
- character->char_id = -1;
- character->server = -1;
- if(character->waiting_disconnect != (-1)){
- timer->delete(character->waiting_disconnect, chr->waiting_disconnect);
- character->waiting_disconnect = (-1);
- }
- } else if (character->server == server_id)
- character->server = -2;
- return 0;
-}
-
-
-
-
-static int char_db_kickoffline(union DBKey key, struct DBData *data, va_list ap)
-{
- struct online_char_data* character = (struct online_char_data*)DB->data2ptr(data);
- int server_id =
-# 339 "../../../server-code/src/char/char.c" 3 4
- __builtin_va_arg(
-# 339 "../../../server-code/src/char/char.c"
- ap
-# 339 "../../../server-code/src/char/char.c" 3 4
- ,
-# 339 "../../../server-code/src/char/char.c"
- int
-# 339 "../../../server-code/src/char/char.c" 3 4
- )
-# 339 "../../../server-code/src/char/char.c"
- ;
- do { if (((void)(character),
-# 340 "../../../server-code/src/char/char.c" 3 4
-0
-# 340 "../../../server-code/src/char/char.c"
-)) return(0); } while(0);
-
- if (server_id > -1 && character->server != server_id)
- return 0;
-
-
- if (character->server > -1 && character->server < 2)
- mapif->disconnectplayer(chr->server[character->server].fd, character->account_id, character->char_id, 1);
- else if (character->waiting_disconnect == (-1))
- chr->set_char_offline(character->char_id, character->account_id);
- else
- return 0;
-
- return 1;
-}
-
-void char_set_login_all_offline(void)
-{
-
- WFIFOHEAD(chr->login_fd,2);
- WFIFOW(chr->login_fd,0) = 0x2737;
- WFIFOSET(chr->login_fd,2);
-}
-
-void char_set_all_offline(int id)
-{
- if (id < 0)
- (showmsg->showNotice(("Sending all users offline.\n")));
- else
- (showmsg->showNotice(("Sending users of map-server %d offline.\n"),id));
- chr->online_char_db->foreach(chr->online_char_db,chr->db_kickoffline,id);
-
- if (id >= 0 || chr->login_fd <= 0 || sockt->session[chr->login_fd]->flag.eof)
- return;
- chr->set_login_all_offline();
-}
-
-void char_set_all_offline_sql(void)
-{
-
- if( (-1) == SQL->Query(inter->sql_handle, "UPDATE `%s` SET `online` = '0'", char_db) )
- (SQL->ShowDebug_((inter->sql_handle), "../../../server-code/src/char/char.c", 381));
- if( (-1) == SQL->Query(inter->sql_handle, "UPDATE `%s` SET `online` = '0'", guild_member_db) )
- (SQL->ShowDebug_((inter->sql_handle), "../../../server-code/src/char/char.c", 383));
- if( (-1) == SQL->Query(inter->sql_handle, "UPDATE `%s` SET `connect_member` = '0'", guild_db) )
- (SQL->ShowDebug_((inter->sql_handle), "../../../server-code/src/char/char.c", 385));
-}
-
-
-
-
-static struct DBData char_create_charstatus(union DBKey key, va_list args)
-{
- struct mmo_charstatus *cp;
- cp = (struct mmo_charstatus *) (iMalloc->calloc((1),(sizeof(struct mmo_charstatus)),"../../../server-code/src/char/char.c", 394, __func__));
- cp->char_id = key.i;
- return DB->ptr2data(cp);
-}
-
-int char_mmo_char_tosql(int char_id, struct mmo_charstatus* p)
-{
- int i = 0;
- int count = 0;
- int diff = 0;
- char save_status[128];
- struct mmo_charstatus *cp;
- int errors = 0;
- StringBuf buf;
-
- do { if (((void)(p),
-# 409 "../../../server-code/src/char/char.c" 3 4
-0
-# 409 "../../../server-code/src/char/char.c"
-)) return(0); } while(0);
- if (char_id != p->char_id) return 0;
-
- cp = ( DB->data2ptr((chr->char_db_)->ensure((chr->char_db_),DB->i2key(char_id),(chr->create_charstatus))) );
-
- StrBuf->Init(&buf);
- memset(save_status, 0, sizeof(save_status));
-
-
- if( memcmp(p->inventory, cp->inventory, sizeof(p->inventory)) ) {
- if (!chr->memitemdata_to_sql(p->inventory, 100, p->char_id, TABLE_INVENTORY))
- strcat(save_status, " inventory");
- else
- errors++;
- }
-
-
- if( memcmp(p->cart, cp->cart, sizeof(p->cart)) ) {
- if (!chr->memitemdata_to_sql(p->cart, 100, p->char_id, TABLE_CART))
- strcat(save_status, " cart");
- else
- errors++;
- }
-
-
- if( memcmp(p->storage.items, cp->storage.items, sizeof(p->storage.items)) ) {
- if (!chr->memitemdata_to_sql(p->storage.items, 600, p->account_id, TABLE_STORAGE))
- strcat(save_status, " storage");
- else
- errors++;
- }
-
- if (
- (p->base_exp != cp->base_exp) || (p->base_level != cp->base_level) ||
- (p->job_level != cp->job_level) || (p->job_exp != cp->job_exp) ||
- (p->zeny != cp->zeny) ||
- (p->last_point.map != cp->last_point.map) ||
- (p->last_point.x != cp->last_point.x) || (p->last_point.y != cp->last_point.y) ||
- (p->max_hp != cp->max_hp) || (p->hp != cp->hp) ||
- (p->max_sp != cp->max_sp) || (p->sp != cp->sp) ||
- (p->status_point != cp->status_point) || (p->skill_point != cp->skill_point) ||
- (p->str != cp->str) || (p->agi != cp->agi) || (p->vit != cp->vit) ||
- (p->int_ != cp->int_) || (p->dex != cp->dex) || (p->luk != cp->luk) ||
- (p->option != cp->option) ||
- (p->party_id != cp->party_id) || (p->guild_id != cp->guild_id) ||
- (p->pet_id != cp->pet_id) || (p->weapon != cp->weapon) || (p->hom_id != cp->hom_id) ||
- (p->ele_id != cp->ele_id) || (p->shield != cp->shield) || (p->head_top != cp->head_top) ||
- (p->head_mid != cp->head_mid) || (p->head_bottom != cp->head_bottom) || (p->delete_date != cp->delete_date) ||
- (p->rename != cp->rename) || (p->slotchange != cp->slotchange) || (p->robe != cp->robe) ||
- (p->show_equip != cp->show_equip) || (p->allow_party != cp->allow_party) || (p->font != cp->font) ||
- (p->uniqueitem_counter != cp->uniqueitem_counter) || (p->hotkey_rowshift != cp->hotkey_rowshift)
- ) {
-
- unsigned int opt = 0;
-
- if( p->allow_party )
- opt |= OPT_ALLOW_PARTY;
- if( p->show_equip )
- opt |= OPT_SHOW_EQUIP;
-
- if( (-1) == SQL->Query(inter->sql_handle, "UPDATE `%s` SET `base_level`='%u', `job_level`='%u',"
- "`base_exp`='%u', `job_exp`='%u', `zeny`='%d',"
- "`max_hp`='%d',`hp`='%d',`max_sp`='%d',`sp`='%d',`status_point`='%u',`skill_point`='%u',"
- "`str`='%d',`agi`='%d',`vit`='%d',`int`='%d',`dex`='%d',`luk`='%d',"
- "`option`='%u',`party_id`='%d',`guild_id`='%d',`pet_id`='%d',`homun_id`='%d',`elemental_id`='%d',"
- "`weapon`='%d',`shield`='%d',`head_top`='%d',`head_mid`='%d',`head_bottom`='%d',"
- "`last_map`='%s',`last_x`='%d',`last_y`='%d',`save_map`='%s',`save_x`='%d',`save_y`='%d', `rename`='%d',"
- "`delete_date`='%lu',`robe`='%d',`slotchange`='%d', `char_opt`='%u', `font`='%u', `uniqueitem_counter` ='%u',"
- "`hotkey_rowshift`='%d'"
- " WHERE `account_id`='%d' AND `char_id` = '%d'",
- char_db, p->base_level, p->job_level,
- p->base_exp, p->job_exp, p->zeny,
- p->max_hp, p->hp, p->max_sp, p->sp, p->status_point, p->skill_point,
- p->str, p->agi, p->vit, p->int_, p->dex, p->luk,
- p->option, p->party_id, p->guild_id, p->pet_id, p->hom_id, p->ele_id,
- p->weapon, p->shield, p->head_top, p->head_mid, p->head_bottom,
- mapindex->id2name((p->last_point.map),"../../../server-code/src/char/char.c", 485, __func__), p->last_point.x, p->last_point.y,
- mapindex->id2name((p->save_point.map),"../../../server-code/src/char/char.c", 486, __func__), p->save_point.x, p->save_point.y, p->rename,
- (unsigned long)p->delete_date,
- p->robe,p->slotchange,opt,p->font,p->uniqueitem_counter,
- p->hotkey_rowshift,
- p->account_id, p->char_id) )
- {
- (SQL->ShowDebug_((inter->sql_handle), "../../../server-code/src/char/char.c", 492));
- errors++;
- } else
- strcat(save_status, " status");
- }
-
- if( p->bank_vault != cp->bank_vault || p->mod_exp != cp->mod_exp || p->mod_drop != cp->mod_drop || p->mod_death != cp->mod_death ) {
- if( (-1) == SQL->Query(inter->sql_handle, "REPLACE INTO `%s` (`account_id`,`bank_vault`,`base_exp`,`base_drop`,`base_death`) VALUES ('%d','%d','%d','%d','%d')",account_data_db,p->account_id,p->bank_vault,p->mod_exp,p->mod_drop,p->mod_death) ) {
- (SQL->ShowDebug_((inter->sql_handle), "../../../server-code/src/char/char.c", 500));
- errors++;
- } else
- strcat(save_status, " accdata");
- }
-
-
- if (
- (p->hair != cp->hair) || (p->hair_color != cp->hair_color) ||
- (p->clothes_color != cp->clothes_color) || (p->body != cp->body) ||
- (p->class_ != cp->class_) ||
- (p->partner_id != cp->partner_id) || (p->father != cp->father) ||
- (p->mother != cp->mother) || (p->child != cp->child) ||
- (p->karma != cp->karma) || (p->manner != cp->manner) ||
- (p->fame != cp->fame)
- )
- {
- if( (-1) == SQL->Query(inter->sql_handle, "UPDATE `%s` SET `class`='%d',"
- "`hair`='%d', `hair_color`='%d', `clothes_color`='%d', `body`='%d',"
- "`partner_id`='%d', `father`='%d', `mother`='%d', `child`='%d',"
- "`karma`='%d', `manner`='%d', `fame`='%d'"
- " WHERE `account_id`='%d' AND `char_id` = '%d'",
- char_db, p->class_,
- p->hair, p->hair_color, p->clothes_color, p->body,
- p->partner_id, p->father, p->mother, p->child,
- p->karma, p->manner, p->fame,
- p->account_id, p->char_id) )
- {
- (SQL->ShowDebug_((inter->sql_handle), "../../../server-code/src/char/char.c", 528));
- errors++;
- } else
- strcat(save_status, " status2");
- }
-
-
- if( (p->mer_id != cp->mer_id) ||
- (p->arch_calls != cp->arch_calls) || (p->arch_faith != cp->arch_faith) ||
- (p->spear_calls != cp->spear_calls) || (p->spear_faith != cp->spear_faith) ||
- (p->sword_calls != cp->sword_calls) || (p->sword_faith != cp->sword_faith) )
- {
- if (inter_mercenary->owner_tosql(char_id, p))
- strcat(save_status, " mercenary");
- else
- errors++;
- }
-
-
- if( memcmp(p->memo_point, cp->memo_point, sizeof(p->memo_point)) )
- {
- char esc_mapname[(23 + 1)*2+1];
-
-
- if( (-1) == SQL->Query(inter->sql_handle, "DELETE FROM `%s` WHERE `char_id`='%d'", memo_db, p->char_id) )
- {
- (SQL->ShowDebug_((inter->sql_handle), "../../../server-code/src/char/char.c", 554));
- errors++;
- }
-
-
- StrBuf->Clear(&buf);
- StrBuf->Printf(&buf, "INSERT INTO `%s`(`char_id`,`map`,`x`,`y`) VALUES ", memo_db);
- for( i = 0, count = 0; i < 3; ++i )
- {
- if( p->memo_point[i].map )
- {
- if( count )
- StrBuf->AppendStr(&buf, ",");
- SQL->EscapeString(inter->sql_handle, esc_mapname, mapindex->id2name((p->memo_point[i].map),"../../../server-code/src/char/char.c", 567, __func__));
- StrBuf->Printf(&buf, "('%d', '%s', '%d', '%d')", char_id, esc_mapname, p->memo_point[i].x, p->memo_point[i].y);
- ++count;
- }
- }
- if( count )
- {
- if( (-1) == SQL->QueryStr(inter->sql_handle, StrBuf->Value(&buf)) )
- {
- (SQL->ShowDebug_((inter->sql_handle), "../../../server-code/src/char/char.c", 576));
- errors++;
- }
- }
- strcat(save_status, " memo");
- }
-
-
- if( memcmp(p->skill, cp->skill, sizeof(p->skill)) ) {
-
- if( (-1) == SQL->Query(inter->sql_handle, "DELETE FROM `%s` WHERE `char_id`='%d'", skill_db, p->char_id) ) {
- (SQL->ShowDebug_((inter->sql_handle), "../../../server-code/src/char/char.c", 587));
- errors++;
- }
-
- StrBuf->Clear(&buf);
- StrBuf->Printf(&buf, "INSERT INTO `%s`(`char_id`,`id`,`lv`,`flag`) VALUES ", skill_db);
-
- for( i = 0, count = 0; i < 1478; ++i ) {
- if( p->skill[i].id != 0 && p->skill[i].flag != SKILL_FLAG_TEMPORARY ) {
- if( p->skill[i].lv == 0 && ( p->skill[i].flag == SKILL_FLAG_PERM_GRANTED || p->skill[i].flag == SKILL_FLAG_PERMANENT ) )
- continue;
- if( p->skill[i].flag != SKILL_FLAG_PERMANENT && p->skill[i].flag != SKILL_FLAG_PERM_GRANTED && (p->skill[i].flag - SKILL_FLAG_REPLACED_LV_0) == 0 )
- continue;
- if( count )
- StrBuf->AppendStr(&buf, ",");
- StrBuf->Printf(&buf, "('%d','%d','%d','%d')", char_id, p->skill[i].id,
- ( (p->skill[i].flag == SKILL_FLAG_PERMANENT || p->skill[i].flag == SKILL_FLAG_PERM_GRANTED) ? p->skill[i].lv : p->skill[i].flag - SKILL_FLAG_REPLACED_LV_0),
- p->skill[i].flag == SKILL_FLAG_PERM_GRANTED ? p->skill[i].flag : 0);
- ++count;
- }
- }
- if( count )
- {
- if( (-1) == SQL->QueryStr(inter->sql_handle, StrBuf->Value(&buf)) )
- {
- (SQL->ShowDebug_((inter->sql_handle), "../../../server-code/src/char/char.c", 612));
- errors++;
- }
- }
-
- strcat(save_status, " skills");
- }
-
- diff = 0;
- for(i = 0; i < 40; i++){
- if(p->friends[i].char_id != cp->friends[i].char_id ||
- p->friends[i].account_id != cp->friends[i].account_id){
- diff = 1;
- break;
- }
- }
-
- if(diff == 1) {
-
- if( (-1) == SQL->Query(inter->sql_handle, "DELETE FROM `%s` WHERE `char_id`='%d'", friend_db, char_id) )
- {
- (SQL->ShowDebug_((inter->sql_handle), "../../../server-code/src/char/char.c", 633));
- errors++;
- }
-
- StrBuf->Clear(&buf);
- StrBuf->Printf(&buf, "INSERT INTO `%s` (`char_id`, `friend_account`, `friend_id`) VALUES ", friend_db);
- for( i = 0, count = 0; i < 40; ++i )
- {
- if( p->friends[i].char_id > 0 )
- {
- if( count )
- StrBuf->AppendStr(&buf, ",");
- StrBuf->Printf(&buf, "('%d','%d','%d')", char_id, p->friends[i].account_id, p->friends[i].char_id);
- count++;
- }
- }
- if( count )
- {
- if( (-1) == SQL->QueryStr(inter->sql_handle, StrBuf->Value(&buf)) )
- {
- (SQL->ShowDebug_((inter->sql_handle), "../../../server-code/src/char/char.c", 653));
- errors++;
- }
- }
- strcat(save_status, " friends");
- }
-
-
-
- StrBuf->Clear(&buf);
- StrBuf->Printf(&buf, "REPLACE INTO `%s` (`char_id`, `hotkey`, `type`, `itemskill_id`, `skill_lvl`) VALUES ", hotkey_db);
- diff = 0;
- for(i = 0; i < ( (int)(sizeof(p->hotkeys)/sizeof((p->hotkeys)[0])) ); i++){
- if(memcmp(&p->hotkeys[i], &cp->hotkeys[i], sizeof(struct hotkey)))
- {
- if( diff )
- StrBuf->AppendStr(&buf, ",");
- StrBuf->Printf(&buf, "('%d','%u','%u','%u','%u')", char_id, (unsigned int)i, (unsigned int)p->hotkeys[i].type, p->hotkeys[i].id , (unsigned int)p->hotkeys[i].lv);
- diff = 1;
- }
- }
- if(diff) {
- if( (-1) == SQL->QueryStr(inter->sql_handle, StrBuf->Value(&buf)) )
- {
- (SQL->ShowDebug_((inter->sql_handle), "../../../server-code/src/char/char.c", 677));
- errors++;
- } else
- strcat(save_status, " hotkeys");
- }
-
-
- StrBuf->Destroy(&buf);
- if (save_status[0]!='\0' && save_log)
- (showmsg->showInfo(("Saved char %d - %s:%s.\n"), char_id, p->name, save_status));
- if (!errors)
- memcpy(cp, p, sizeof(struct mmo_charstatus));
- return 0;
-}
-# 702 "../../../server-code/src/char/char.c"
-int char_memitemdata_to_sql(const struct item items[], int max, int id, int tableswitch)
-{
- StringBuf buf;
- struct SqlStmt *stmt =
-# 705 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 705 "../../../server-code/src/char/char.c"
- ;
- int i, j;
- const char *tablename =
-# 707 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 707 "../../../server-code/src/char/char.c"
- ;
- const char *selectoption =
-# 708 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 708 "../../../server-code/src/char/char.c"
- ;
-
-# 709 "../../../server-code/src/char/char.c" 3 4
-_Bool
-# 709 "../../../server-code/src/char/char.c"
- has_favorite =
-# 709 "../../../server-code/src/char/char.c" 3 4
- 0
-# 709 "../../../server-code/src/char/char.c"
- ;
- struct item item = { 0 };
-
-# 711 "../../../server-code/src/char/char.c" 3 4
-_Bool
-# 711 "../../../server-code/src/char/char.c"
- *flag =
-# 711 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 711 "../../../server-code/src/char/char.c"
- ;
-
-# 712 "../../../server-code/src/char/char.c" 3 4
-_Bool
-# 712 "../../../server-code/src/char/char.c"
- found;
- int errors = 0;
-
- do { if (((void)(items),
-# 715 "../../../server-code/src/char/char.c" 3 4
-0
-# 715 "../../../server-code/src/char/char.c"
-)) return(0); } while(0);
-
- switch (tableswitch) {
- case TABLE_INVENTORY: tablename = inventory_db; selectoption = "char_id"; has_favorite =
-# 718 "../../../server-code/src/char/char.c" 3 4
- 1
-# 718 "../../../server-code/src/char/char.c"
- ; break;
- case TABLE_CART: tablename = cart_db; selectoption = "char_id"; break;
- case TABLE_STORAGE: tablename = storage_db; selectoption = "account_id"; break;
- case TABLE_GUILD_STORAGE: tablename = guild_storage_db; selectoption = "guild_id"; break;
- default:
- (showmsg->showError(("Invalid table name!\n")));
- do { if (( (tableswitch) ?
-# 724 "../../../server-code/src/char/char.c" 3 4
- 0
-# 724 "../../../server-code/src/char/char.c"
- : (nullpo->assert_report("../../../server-code/src/char/char.c", 724, __func__, "tableswitch", "failed assertion"),
-# 724 "../../../server-code/src/char/char.c" 3 4
- 1
-# 724 "../../../server-code/src/char/char.c"
- ) )) return(1); } while(0);
- }
-
-
-
-
-
-
- StrBuf->Init(&buf);
- StrBuf->AppendStr(&buf, "SELECT `id`, `nameid`, `amount`, `equip`, `identify`, `refine`, `attribute`, `expire_time`, `bound`, `unique_id`");
- for (j = 0; j < 4; ++j)
- StrBuf->Printf(&buf, ", `card%d`", j);
- if (has_favorite)
- StrBuf->AppendStr(&buf, ", `favorite`");
- StrBuf->Printf(&buf, " FROM `%s` WHERE `%s`='%d'", tablename, selectoption, id);
-
- stmt = SQL->StmtMalloc(inter->sql_handle);
- if ((-1) == SQL->StmtPrepareStr(stmt, StrBuf->Value(&buf))
- || (-1) == SQL->StmtExecute(stmt)) {
- (SQL->StmtShowDebug_((stmt), "../../../server-code/src/char/char.c", 743));
- SQL->StmtFree(stmt);
- StrBuf->Destroy(&buf);
- return 1;
- }
-
- SQL->StmtBindColumn(stmt, 0, SQLDT_INT, &item.id, 0,
-# 749 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 749 "../../../server-code/src/char/char.c"
- ,
-# 749 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 749 "../../../server-code/src/char/char.c"
- );
- SQL->StmtBindColumn(stmt, 1, SQLDT_SHORT, &item.nameid, 0,
-# 750 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 750 "../../../server-code/src/char/char.c"
- ,
-# 750 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 750 "../../../server-code/src/char/char.c"
- );
- SQL->StmtBindColumn(stmt, 2, SQLDT_SHORT, &item.amount, 0,
-# 751 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 751 "../../../server-code/src/char/char.c"
- ,
-# 751 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 751 "../../../server-code/src/char/char.c"
- );
- SQL->StmtBindColumn(stmt, 3, SQLDT_UINT, &item.equip, 0,
-# 752 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 752 "../../../server-code/src/char/char.c"
- ,
-# 752 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 752 "../../../server-code/src/char/char.c"
- );
- SQL->StmtBindColumn(stmt, 4, SQLDT_CHAR, &item.identify, 0,
-# 753 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 753 "../../../server-code/src/char/char.c"
- ,
-# 753 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 753 "../../../server-code/src/char/char.c"
- );
- SQL->StmtBindColumn(stmt, 5, SQLDT_CHAR, &item.refine, 0,
-# 754 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 754 "../../../server-code/src/char/char.c"
- ,
-# 754 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 754 "../../../server-code/src/char/char.c"
- );
- SQL->StmtBindColumn(stmt, 6, SQLDT_CHAR, &item.attribute, 0,
-# 755 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 755 "../../../server-code/src/char/char.c"
- ,
-# 755 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 755 "../../../server-code/src/char/char.c"
- );
- SQL->StmtBindColumn(stmt, 7, SQLDT_UINT, &item.expire_time, 0,
-# 756 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 756 "../../../server-code/src/char/char.c"
- ,
-# 756 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 756 "../../../server-code/src/char/char.c"
- );
- SQL->StmtBindColumn(stmt, 8, SQLDT_UCHAR, &item.bound, 0,
-# 757 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 757 "../../../server-code/src/char/char.c"
- ,
-# 757 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 757 "../../../server-code/src/char/char.c"
- );
- SQL->StmtBindColumn(stmt, 9, SQLDT_UINT64, &item.unique_id, 0,
-# 758 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 758 "../../../server-code/src/char/char.c"
- ,
-# 758 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 758 "../../../server-code/src/char/char.c"
- );
- for (j = 0; j < 4; ++j)
- SQL->StmtBindColumn(stmt, 10+j, SQLDT_SHORT, &item.card[j], 0,
-# 760 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 760 "../../../server-code/src/char/char.c"
- ,
-# 760 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 760 "../../../server-code/src/char/char.c"
- );
- if (has_favorite)
- SQL->StmtBindColumn(stmt, 10+4, SQLDT_UCHAR, &item.favorite, 0,
-# 762 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 762 "../../../server-code/src/char/char.c"
- ,
-# 762 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 762 "../../../server-code/src/char/char.c"
- );
-
-
- flag = (iMalloc->calloc((max),(sizeof(
-# 765 "../../../server-code/src/char/char.c" 3 4
- _Bool
-# 765 "../../../server-code/src/char/char.c"
- )),"../../../server-code/src/char/char.c", 765, __func__));
-
- while (0 == SQL->StmtNextRow(stmt)) {
- found =
-# 768 "../../../server-code/src/char/char.c" 3 4
- 0
-# 768 "../../../server-code/src/char/char.c"
- ;
-
- for (i = 0; i < max; ++i) {
-
- if (items[i].nameid == 0 || flag[i])
- continue;
-
- if (items[i].nameid == item.nameid
- && items[i].unique_id == item.unique_id
- && items[i].card[0] == item.card[0]
- && items[i].card[2] == item.card[2]
- && items[i].card[3] == item.card[3]
- ) {
-
- do { for ((j) = (0); (j) < (4); ++(j)) if (items[i].card[j] != item.card[j]) break; } while(
-# 782 "../../../server-code/src/char/char.c" 3 4
- 0
-# 782 "../../../server-code/src/char/char.c"
- );
- if (j == 4
- && items[i].amount == item.amount
- && items[i].equip == item.equip
- && items[i].identify == item.identify
- && items[i].refine == item.refine
- && items[i].attribute == item.attribute
- && items[i].expire_time == item.expire_time
- && items[i].bound == item.bound
- && (!has_favorite || items[i].favorite == item.favorite)
- ) {
- ;
- } else {
-
- StrBuf->Clear(&buf);
- StrBuf->Printf(&buf, "UPDATE `%s` SET `amount`='%d', `equip`='%u', `identify`='%d', `refine`='%d',`attribute`='%d', `expire_time`='%u', `bound`='%d'",
- tablename, items[i].amount, items[i].equip, items[i].identify, items[i].refine, items[i].attribute, items[i].expire_time, items[i].bound);
- for (j = 0; j < 4; ++j)
- StrBuf->Printf(&buf, ", `card%d`=%d", j, items[i].card[j]);
- if (has_favorite)
- StrBuf->Printf(&buf, ", `favorite`='%d'", items[i].favorite);
- StrBuf->Printf(&buf, " WHERE `id`='%d' LIMIT 1", item.id);
-
- if ((-1) == SQL->QueryStr(inter->sql_handle, StrBuf->Value(&buf))) {
- (SQL->ShowDebug_((inter->sql_handle), "../../../server-code/src/char/char.c", 806));
- errors++;
- }
- }
-
- found = flag[i] =
-# 811 "../../../server-code/src/char/char.c" 3 4
- 1
-# 811 "../../../server-code/src/char/char.c"
- ;
- break;
- }
- }
- if (!found) {
-
- if ((-1) == SQL->Query(inter->sql_handle, "DELETE from `%s` where `id`='%d' LIMIT 1", tablename, item.id)) {
- (SQL->ShowDebug_((inter->sql_handle), "../../../server-code/src/char/char.c", 818));
- errors++;
- }
- }
- }
- SQL->StmtFree(stmt);
-
- StrBuf->Clear(&buf);
- StrBuf->Printf(&buf, "INSERT INTO `%s`(`%s`, `nameid`, `amount`, `equip`, `identify`, `refine`, `attribute`, `expire_time`, `bound`, `unique_id`", tablename, selectoption);
- for (j = 0; j < 4; ++j)
- StrBuf->Printf(&buf, ", `card%d`", j);
- if (has_favorite)
- StrBuf->AppendStr(&buf, ", `favorite`");
- StrBuf->AppendStr(&buf, ") VALUES ");
-
- found =
-# 833 "../../../server-code/src/char/char.c" 3 4
- 0
-# 833 "../../../server-code/src/char/char.c"
- ;
-
- for (i = 0; i < max; ++i) {
-
- if (items[i].nameid == 0 || flag[i])
- continue;
-
- if (found)
- StrBuf->AppendStr(&buf, ",");
- else
- found =
-# 843 "../../../server-code/src/char/char.c" 3 4
- 1
-# 843 "../../../server-code/src/char/char.c"
- ;
-
- StrBuf->Printf(&buf, "('%d', '%d', '%d', '%u', '%d', '%d', '%d', '%u', '%d', '%"
-# 845 "../../../server-code/src/char/char.c" 3 4
- "l" "u"
-# 845 "../../../server-code/src/char/char.c"
- "'",
- id, items[i].nameid, items[i].amount, items[i].equip, items[i].identify, items[i].refine, items[i].attribute, items[i].expire_time, items[i].bound, items[i].unique_id);
- for (j = 0; j < 4; ++j)
- StrBuf->Printf(&buf, ", '%d'", items[i].card[j]);
- if (has_favorite)
- StrBuf->Printf(&buf, ", '%d'", items[i].favorite);
- StrBuf->AppendStr(&buf, ")");
- }
-
- if (found && (-1) == SQL->QueryStr(inter->sql_handle, StrBuf->Value(&buf))) {
- (SQL->ShowDebug_((inter->sql_handle), "../../../server-code/src/char/char.c", 855));
- errors++;
- }
-
- StrBuf->Destroy(&buf);
- (iMalloc->free((flag),"../../../server-code/src/char/char.c", 860, __func__));
-
- return errors;
-}
-# 878 "../../../server-code/src/char/char.c"
-int char_mmo_gender(const struct char_session_data *sd, const struct mmo_charstatus *p, char sex)
-{
-
- (void)sd; (void)p;
- switch (sex) {
- case 'M':
- return SEX_MALE;
- case 'F':
- return SEX_FEMALE;
- case 'U':
- default:
- return 99;
- }
-# 912 "../../../server-code/src/char/char.c"
-}
-
-
-
-int char_mmo_chars_fromsql(struct char_session_data* sd, uint8* buf)
-{
- struct SqlStmt *stmt;
- struct mmo_charstatus p;
- int j = 0, i;
- char last_map[((11 + 1) + 4)];
- time_t unban_time = 0;
- char sex[2];
-
- do { if (((void)(sd),
-# 925 "../../../server-code/src/char/char.c" 3 4
-0
-# 925 "../../../server-code/src/char/char.c"
-)) return(0); } while(0);
- do { if (((void)(buf),
-# 926 "../../../server-code/src/char/char.c" 3 4
-0
-# 926 "../../../server-code/src/char/char.c"
-)) return(0); } while(0);
-
- stmt = SQL->StmtMalloc(inter->sql_handle);
- if( stmt ==
-# 929 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 929 "../../../server-code/src/char/char.c"
- ) {
- (SQL->StmtShowDebug_((stmt), "../../../server-code/src/char/char.c", 930));
- return 0;
- }
- memset(&p, 0, sizeof(p));
-
- for(i = 0 ; i < 9; i++ ) {
- sd->found_char[i] = -1;
- sd->unban_time[i] = 0;
- }
-
-
- if ((-1) == SQL->StmtPrepare(stmt, "SELECT "
- "`char_id`,`char_num`,`name`,`class`,`base_level`,`job_level`,`base_exp`,`job_exp`,`zeny`,"
- "`str`,`agi`,`vit`,`int`,`dex`,`luk`,`max_hp`,`hp`,`max_sp`,`sp`,"
- "`status_point`,`skill_point`,`option`,`karma`,`manner`,`hair`,`hair_color`,"
- "`clothes_color`,`body`,`weapon`,`shield`,`head_top`,`head_mid`,`head_bottom`,`last_map`,`rename`,`delete_date`,"
- "`robe`,`slotchange`,`unban_time`,`sex`"
- " FROM `%s` WHERE `account_id`='%d' AND `char_num` < '%d'", char_db, sd->account_id, 9)
- || (-1) == SQL->StmtExecute(stmt)
- || (-1) == SQL->StmtBindColumn(stmt, 0, SQLDT_INT, &p.char_id, 0,
-# 949 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 949 "../../../server-code/src/char/char.c"
- ,
-# 949 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 949 "../../../server-code/src/char/char.c"
- )
- || (-1) == SQL->StmtBindColumn(stmt, 1, SQLDT_UCHAR, &p.slot, 0,
-# 950 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 950 "../../../server-code/src/char/char.c"
- ,
-# 950 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 950 "../../../server-code/src/char/char.c"
- )
- || (-1) == SQL->StmtBindColumn(stmt, 2, SQLDT_STRING, &p.name, sizeof(p.name),
-# 951 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 951 "../../../server-code/src/char/char.c"
- ,
-# 951 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 951 "../../../server-code/src/char/char.c"
- )
- || (-1) == SQL->StmtBindColumn(stmt, 3, SQLDT_SHORT, &p.class_, 0,
-# 952 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 952 "../../../server-code/src/char/char.c"
- ,
-# 952 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 952 "../../../server-code/src/char/char.c"
- )
- || (-1) == SQL->StmtBindColumn(stmt, 4, SQLDT_UINT, &p.base_level, 0,
-# 953 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 953 "../../../server-code/src/char/char.c"
- ,
-# 953 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 953 "../../../server-code/src/char/char.c"
- )
- || (-1) == SQL->StmtBindColumn(stmt, 5, SQLDT_UINT, &p.job_level, 0,
-# 954 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 954 "../../../server-code/src/char/char.c"
- ,
-# 954 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 954 "../../../server-code/src/char/char.c"
- )
- || (-1) == SQL->StmtBindColumn(stmt, 6, SQLDT_UINT, &p.base_exp, 0,
-# 955 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 955 "../../../server-code/src/char/char.c"
- ,
-# 955 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 955 "../../../server-code/src/char/char.c"
- )
- || (-1) == SQL->StmtBindColumn(stmt, 7, SQLDT_UINT, &p.job_exp, 0,
-# 956 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 956 "../../../server-code/src/char/char.c"
- ,
-# 956 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 956 "../../../server-code/src/char/char.c"
- )
- || (-1) == SQL->StmtBindColumn(stmt, 8, SQLDT_INT, &p.zeny, 0,
-# 957 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 957 "../../../server-code/src/char/char.c"
- ,
-# 957 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 957 "../../../server-code/src/char/char.c"
- )
- || (-1) == SQL->StmtBindColumn(stmt, 9, SQLDT_SHORT, &p.str, 0,
-# 958 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 958 "../../../server-code/src/char/char.c"
- ,
-# 958 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 958 "../../../server-code/src/char/char.c"
- )
- || (-1) == SQL->StmtBindColumn(stmt, 10, SQLDT_SHORT, &p.agi, 0,
-# 959 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 959 "../../../server-code/src/char/char.c"
- ,
-# 959 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 959 "../../../server-code/src/char/char.c"
- )
- || (-1) == SQL->StmtBindColumn(stmt, 11, SQLDT_SHORT, &p.vit, 0,
-# 960 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 960 "../../../server-code/src/char/char.c"
- ,
-# 960 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 960 "../../../server-code/src/char/char.c"
- )
- || (-1) == SQL->StmtBindColumn(stmt, 12, SQLDT_SHORT, &p.int_, 0,
-# 961 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 961 "../../../server-code/src/char/char.c"
- ,
-# 961 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 961 "../../../server-code/src/char/char.c"
- )
- || (-1) == SQL->StmtBindColumn(stmt, 13, SQLDT_SHORT, &p.dex, 0,
-# 962 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 962 "../../../server-code/src/char/char.c"
- ,
-# 962 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 962 "../../../server-code/src/char/char.c"
- )
- || (-1) == SQL->StmtBindColumn(stmt, 14, SQLDT_SHORT, &p.luk, 0,
-# 963 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 963 "../../../server-code/src/char/char.c"
- ,
-# 963 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 963 "../../../server-code/src/char/char.c"
- )
- || (-1) == SQL->StmtBindColumn(stmt, 15, SQLDT_INT, &p.max_hp, 0,
-# 964 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 964 "../../../server-code/src/char/char.c"
- ,
-# 964 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 964 "../../../server-code/src/char/char.c"
- )
- || (-1) == SQL->StmtBindColumn(stmt, 16, SQLDT_INT, &p.hp, 0,
-# 965 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 965 "../../../server-code/src/char/char.c"
- ,
-# 965 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 965 "../../../server-code/src/char/char.c"
- )
- || (-1) == SQL->StmtBindColumn(stmt, 17, SQLDT_INT, &p.max_sp, 0,
-# 966 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 966 "../../../server-code/src/char/char.c"
- ,
-# 966 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 966 "../../../server-code/src/char/char.c"
- )
- || (-1) == SQL->StmtBindColumn(stmt, 18, SQLDT_INT, &p.sp, 0,
-# 967 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 967 "../../../server-code/src/char/char.c"
- ,
-# 967 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 967 "../../../server-code/src/char/char.c"
- )
- || (-1) == SQL->StmtBindColumn(stmt, 19, SQLDT_UINT, &p.status_point, 0,
-# 968 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 968 "../../../server-code/src/char/char.c"
- ,
-# 968 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 968 "../../../server-code/src/char/char.c"
- )
- || (-1) == SQL->StmtBindColumn(stmt, 20, SQLDT_UINT, &p.skill_point, 0,
-# 969 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 969 "../../../server-code/src/char/char.c"
- ,
-# 969 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 969 "../../../server-code/src/char/char.c"
- )
- || (-1) == SQL->StmtBindColumn(stmt, 21, SQLDT_UINT, &p.option, 0,
-# 970 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 970 "../../../server-code/src/char/char.c"
- ,
-# 970 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 970 "../../../server-code/src/char/char.c"
- )
- || (-1) == SQL->StmtBindColumn(stmt, 22, SQLDT_UCHAR, &p.karma, 0,
-# 971 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 971 "../../../server-code/src/char/char.c"
- ,
-# 971 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 971 "../../../server-code/src/char/char.c"
- )
- || (-1) == SQL->StmtBindColumn(stmt, 23, SQLDT_SHORT, &p.manner, 0,
-# 972 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 972 "../../../server-code/src/char/char.c"
- ,
-# 972 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 972 "../../../server-code/src/char/char.c"
- )
- || (-1) == SQL->StmtBindColumn(stmt, 24, SQLDT_SHORT, &p.hair, 0,
-# 973 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 973 "../../../server-code/src/char/char.c"
- ,
-# 973 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 973 "../../../server-code/src/char/char.c"
- )
- || (-1) == SQL->StmtBindColumn(stmt, 25, SQLDT_SHORT, &p.hair_color, 0,
-# 974 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 974 "../../../server-code/src/char/char.c"
- ,
-# 974 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 974 "../../../server-code/src/char/char.c"
- )
- || (-1) == SQL->StmtBindColumn(stmt, 26, SQLDT_SHORT, &p.clothes_color, 0,
-# 975 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 975 "../../../server-code/src/char/char.c"
- ,
-# 975 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 975 "../../../server-code/src/char/char.c"
- )
- || (-1) == SQL->StmtBindColumn(stmt, 27, SQLDT_SHORT, &p.body, 0,
-# 976 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 976 "../../../server-code/src/char/char.c"
- ,
-# 976 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 976 "../../../server-code/src/char/char.c"
- )
- || (-1) == SQL->StmtBindColumn(stmt, 28, SQLDT_SHORT, &p.weapon, 0,
-# 977 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 977 "../../../server-code/src/char/char.c"
- ,
-# 977 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 977 "../../../server-code/src/char/char.c"
- )
- || (-1) == SQL->StmtBindColumn(stmt, 29, SQLDT_SHORT, &p.shield, 0,
-# 978 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 978 "../../../server-code/src/char/char.c"
- ,
-# 978 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 978 "../../../server-code/src/char/char.c"
- )
- || (-1) == SQL->StmtBindColumn(stmt, 30, SQLDT_SHORT, &p.head_top, 0,
-# 979 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 979 "../../../server-code/src/char/char.c"
- ,
-# 979 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 979 "../../../server-code/src/char/char.c"
- )
- || (-1) == SQL->StmtBindColumn(stmt, 31, SQLDT_SHORT, &p.head_mid, 0,
-# 980 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 980 "../../../server-code/src/char/char.c"
- ,
-# 980 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 980 "../../../server-code/src/char/char.c"
- )
- || (-1) == SQL->StmtBindColumn(stmt, 32, SQLDT_SHORT, &p.head_bottom, 0,
-# 981 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 981 "../../../server-code/src/char/char.c"
- ,
-# 981 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 981 "../../../server-code/src/char/char.c"
- )
- || (-1) == SQL->StmtBindColumn(stmt, 33, SQLDT_STRING, &last_map, sizeof(last_map),
-# 982 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 982 "../../../server-code/src/char/char.c"
- ,
-# 982 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 982 "../../../server-code/src/char/char.c"
- )
- || (-1) == SQL->StmtBindColumn(stmt, 34, SQLDT_USHORT, &p.rename, 0,
-# 983 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 983 "../../../server-code/src/char/char.c"
- ,
-# 983 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 983 "../../../server-code/src/char/char.c"
- )
- || (-1) == SQL->StmtBindColumn(stmt, 35, SQLDT_UINT32, &p.delete_date, 0,
-# 984 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 984 "../../../server-code/src/char/char.c"
- ,
-# 984 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 984 "../../../server-code/src/char/char.c"
- )
- || (-1) == SQL->StmtBindColumn(stmt, 36, SQLDT_SHORT, &p.robe, 0,
-# 985 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 985 "../../../server-code/src/char/char.c"
- ,
-# 985 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 985 "../../../server-code/src/char/char.c"
- )
- || (-1) == SQL->StmtBindColumn(stmt, 37, SQLDT_USHORT, &p.slotchange, 0,
-# 986 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 986 "../../../server-code/src/char/char.c"
- ,
-# 986 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 986 "../../../server-code/src/char/char.c"
- )
- || (-1) == SQL->StmtBindColumn(stmt, 38, SQLDT_LONG, &unban_time, 0,
-# 987 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 987 "../../../server-code/src/char/char.c"
- ,
-# 987 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 987 "../../../server-code/src/char/char.c"
- )
- || (-1) == SQL->StmtBindColumn(stmt, 39, SQLDT_ENUM, &sex, sizeof(sex),
-# 988 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 988 "../../../server-code/src/char/char.c"
- ,
-# 988 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 988 "../../../server-code/src/char/char.c"
- )
- ) {
- (SQL->StmtShowDebug_((stmt), "../../../server-code/src/char/char.c", 990));
- SQL->StmtFree(stmt);
- return 0;
- }
-
- for( i = 0; i < 9 && 0 == SQL->StmtNextRow(stmt); i++ ) {
- if (p.slot >= 9)
- continue;
- p.last_point.map = mapindex->name2id(last_map);
- sd->found_char[p.slot] = p.char_id;
- sd->unban_time[p.slot] = unban_time;
- p.sex = chr->mmo_gender(sd, &p, sex[0]);
- j += chr->mmo_char_tobuf(WBUFP(buf, j), &p);
- }
-
- memset(sd->new_name,0,sizeof(sd->new_name));
-
- SQL->StmtFree(stmt);
- return j;
-}
-
-
-int char_mmo_char_fromsql(int char_id, struct mmo_charstatus* p,
-# 1012 "../../../server-code/src/char/char.c" 3 4
- _Bool
-# 1012 "../../../server-code/src/char/char.c"
- load_everything)
-{
- int i,j;
- char t_msg[128] = "";
- struct mmo_charstatus* cp;
- StringBuf buf;
- struct SqlStmt *stmt;
- char last_map[((11 + 1) + 4)];
- char save_map[((11 + 1) + 4)];
- char point_map[((11 + 1) + 4)];
- struct point tmp_point;
- struct item tmp_item;
- struct s_skill tmp_skill;
- struct s_friend tmp_friend;
-
- struct hotkey tmp_hotkey;
- int hotkey_num = 0;
-
- unsigned int opt;
- int account_id;
- char sex[2];
-
- do { if (((void)(p),
-# 1034 "../../../server-code/src/char/char.c" 3 4
-0
-# 1034 "../../../server-code/src/char/char.c"
-)) return(0); } while(0);
-
- memset(p, 0, sizeof(struct mmo_charstatus));
-
- if (save_log) (showmsg->showInfo(("Char load request (%d)\n"), char_id));
-
- stmt = SQL->StmtMalloc(inter->sql_handle);
- if( stmt ==
-# 1041 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1041 "../../../server-code/src/char/char.c"
- )
- {
- (SQL->StmtShowDebug_((stmt), "../../../server-code/src/char/char.c", 1043));
- return 0;
- }
-
-
- if ((-1) == SQL->StmtPrepare(stmt, "SELECT "
- "`char_id`,`account_id`,`char_num`,`name`,`class`,`base_level`,`job_level`,`base_exp`,`job_exp`,`zeny`,"
- "`str`,`agi`,`vit`,`int`,`dex`,`luk`,`max_hp`,`hp`,`max_sp`,`sp`,"
- "`status_point`,`skill_point`,`option`,`karma`,`manner`,`party_id`,`guild_id`,`pet_id`,`homun_id`,`elemental_id`,`hair`,"
- "`hair_color`,`clothes_color`,`body`,`weapon`,`shield`,`head_top`,`head_mid`,`head_bottom`,`last_map`,`last_x`,`last_y`,"
- "`save_map`,`save_x`,`save_y`,`partner_id`,`father`,`mother`,`child`,`fame`,`rename`,`delete_date`,`robe`,`slotchange`,"
- "`char_opt`,`font`,`uniqueitem_counter`,`sex`,`hotkey_rowshift`"
- " FROM `%s` WHERE `char_id`=? LIMIT 1", char_db)
- || (-1) == SQL->StmtBindParam(stmt, 0, SQLDT_INT, &char_id, 0)
- || (-1) == SQL->StmtExecute(stmt)
- || (-1) == SQL->StmtBindColumn(stmt, 0, SQLDT_INT, &p->char_id, 0,
-# 1058 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1058 "../../../server-code/src/char/char.c"
- ,
-# 1058 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1058 "../../../server-code/src/char/char.c"
- )
- || (-1) == SQL->StmtBindColumn(stmt, 1, SQLDT_INT, &p->account_id, 0,
-# 1059 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1059 "../../../server-code/src/char/char.c"
- ,
-# 1059 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1059 "../../../server-code/src/char/char.c"
- )
- || (-1) == SQL->StmtBindColumn(stmt, 2, SQLDT_UCHAR, &p->slot, 0,
-# 1060 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1060 "../../../server-code/src/char/char.c"
- ,
-# 1060 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1060 "../../../server-code/src/char/char.c"
- )
- || (-1) == SQL->StmtBindColumn(stmt, 3, SQLDT_STRING, &p->name, sizeof(p->name),
-# 1061 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1061 "../../../server-code/src/char/char.c"
- ,
-# 1061 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1061 "../../../server-code/src/char/char.c"
- )
- || (-1) == SQL->StmtBindColumn(stmt, 4, SQLDT_SHORT, &p->class_, 0,
-# 1062 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1062 "../../../server-code/src/char/char.c"
- ,
-# 1062 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1062 "../../../server-code/src/char/char.c"
- )
- || (-1) == SQL->StmtBindColumn(stmt, 5, SQLDT_UINT, &p->base_level, 0,
-# 1063 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1063 "../../../server-code/src/char/char.c"
- ,
-# 1063 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1063 "../../../server-code/src/char/char.c"
- )
- || (-1) == SQL->StmtBindColumn(stmt, 6, SQLDT_UINT, &p->job_level, 0,
-# 1064 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1064 "../../../server-code/src/char/char.c"
- ,
-# 1064 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1064 "../../../server-code/src/char/char.c"
- )
- || (-1) == SQL->StmtBindColumn(stmt, 7, SQLDT_UINT, &p->base_exp, 0,
-# 1065 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1065 "../../../server-code/src/char/char.c"
- ,
-# 1065 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1065 "../../../server-code/src/char/char.c"
- )
- || (-1) == SQL->StmtBindColumn(stmt, 8, SQLDT_UINT, &p->job_exp, 0,
-# 1066 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1066 "../../../server-code/src/char/char.c"
- ,
-# 1066 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1066 "../../../server-code/src/char/char.c"
- )
- || (-1) == SQL->StmtBindColumn(stmt, 9, SQLDT_INT, &p->zeny, 0,
-# 1067 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1067 "../../../server-code/src/char/char.c"
- ,
-# 1067 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1067 "../../../server-code/src/char/char.c"
- )
- || (-1) == SQL->StmtBindColumn(stmt, 10, SQLDT_SHORT, &p->str, 0,
-# 1068 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1068 "../../../server-code/src/char/char.c"
- ,
-# 1068 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1068 "../../../server-code/src/char/char.c"
- )
- || (-1) == SQL->StmtBindColumn(stmt, 11, SQLDT_SHORT, &p->agi, 0,
-# 1069 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1069 "../../../server-code/src/char/char.c"
- ,
-# 1069 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1069 "../../../server-code/src/char/char.c"
- )
- || (-1) == SQL->StmtBindColumn(stmt, 12, SQLDT_SHORT, &p->vit, 0,
-# 1070 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1070 "../../../server-code/src/char/char.c"
- ,
-# 1070 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1070 "../../../server-code/src/char/char.c"
- )
- || (-1) == SQL->StmtBindColumn(stmt, 13, SQLDT_SHORT, &p->int_, 0,
-# 1071 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1071 "../../../server-code/src/char/char.c"
- ,
-# 1071 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1071 "../../../server-code/src/char/char.c"
- )
- || (-1) == SQL->StmtBindColumn(stmt, 14, SQLDT_SHORT, &p->dex, 0,
-# 1072 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1072 "../../../server-code/src/char/char.c"
- ,
-# 1072 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1072 "../../../server-code/src/char/char.c"
- )
- || (-1) == SQL->StmtBindColumn(stmt, 15, SQLDT_SHORT, &p->luk, 0,
-# 1073 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1073 "../../../server-code/src/char/char.c"
- ,
-# 1073 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1073 "../../../server-code/src/char/char.c"
- )
- || (-1) == SQL->StmtBindColumn(stmt, 16, SQLDT_INT, &p->max_hp, 0,
-# 1074 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1074 "../../../server-code/src/char/char.c"
- ,
-# 1074 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1074 "../../../server-code/src/char/char.c"
- )
- || (-1) == SQL->StmtBindColumn(stmt, 17, SQLDT_INT, &p->hp, 0,
-# 1075 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1075 "../../../server-code/src/char/char.c"
- ,
-# 1075 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1075 "../../../server-code/src/char/char.c"
- )
- || (-1) == SQL->StmtBindColumn(stmt, 18, SQLDT_INT, &p->max_sp, 0,
-# 1076 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1076 "../../../server-code/src/char/char.c"
- ,
-# 1076 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1076 "../../../server-code/src/char/char.c"
- )
- || (-1) == SQL->StmtBindColumn(stmt, 19, SQLDT_INT, &p->sp, 0,
-# 1077 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1077 "../../../server-code/src/char/char.c"
- ,
-# 1077 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1077 "../../../server-code/src/char/char.c"
- )
- || (-1) == SQL->StmtBindColumn(stmt, 20, SQLDT_UINT, &p->status_point, 0,
-# 1078 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1078 "../../../server-code/src/char/char.c"
- ,
-# 1078 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1078 "../../../server-code/src/char/char.c"
- )
- || (-1) == SQL->StmtBindColumn(stmt, 21, SQLDT_UINT, &p->skill_point, 0,
-# 1079 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1079 "../../../server-code/src/char/char.c"
- ,
-# 1079 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1079 "../../../server-code/src/char/char.c"
- )
- || (-1) == SQL->StmtBindColumn(stmt, 22, SQLDT_UINT, &p->option, 0,
-# 1080 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1080 "../../../server-code/src/char/char.c"
- ,
-# 1080 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1080 "../../../server-code/src/char/char.c"
- )
- || (-1) == SQL->StmtBindColumn(stmt, 23, SQLDT_UCHAR, &p->karma, 0,
-# 1081 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1081 "../../../server-code/src/char/char.c"
- ,
-# 1081 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1081 "../../../server-code/src/char/char.c"
- )
- || (-1) == SQL->StmtBindColumn(stmt, 24, SQLDT_SHORT, &p->manner, 0,
-# 1082 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1082 "../../../server-code/src/char/char.c"
- ,
-# 1082 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1082 "../../../server-code/src/char/char.c"
- )
- || (-1) == SQL->StmtBindColumn(stmt, 25, SQLDT_INT, &p->party_id, 0,
-# 1083 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1083 "../../../server-code/src/char/char.c"
- ,
-# 1083 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1083 "../../../server-code/src/char/char.c"
- )
- || (-1) == SQL->StmtBindColumn(stmt, 26, SQLDT_INT, &p->guild_id, 0,
-# 1084 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1084 "../../../server-code/src/char/char.c"
- ,
-# 1084 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1084 "../../../server-code/src/char/char.c"
- )
- || (-1) == SQL->StmtBindColumn(stmt, 27, SQLDT_INT, &p->pet_id, 0,
-# 1085 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1085 "../../../server-code/src/char/char.c"
- ,
-# 1085 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1085 "../../../server-code/src/char/char.c"
- )
- || (-1) == SQL->StmtBindColumn(stmt, 28, SQLDT_INT, &p->hom_id, 0,
-# 1086 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1086 "../../../server-code/src/char/char.c"
- ,
-# 1086 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1086 "../../../server-code/src/char/char.c"
- )
- || (-1) == SQL->StmtBindColumn(stmt, 29, SQLDT_INT, &p->ele_id, 0,
-# 1087 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1087 "../../../server-code/src/char/char.c"
- ,
-# 1087 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1087 "../../../server-code/src/char/char.c"
- )
- || (-1) == SQL->StmtBindColumn(stmt, 30, SQLDT_SHORT, &p->hair, 0,
-# 1088 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1088 "../../../server-code/src/char/char.c"
- ,
-# 1088 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1088 "../../../server-code/src/char/char.c"
- )
- || (-1) == SQL->StmtBindColumn(stmt, 31, SQLDT_SHORT, &p->hair_color, 0,
-# 1089 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1089 "../../../server-code/src/char/char.c"
- ,
-# 1089 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1089 "../../../server-code/src/char/char.c"
- )
- || (-1) == SQL->StmtBindColumn(stmt, 32, SQLDT_SHORT, &p->clothes_color, 0,
-# 1090 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1090 "../../../server-code/src/char/char.c"
- ,
-# 1090 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1090 "../../../server-code/src/char/char.c"
- )
- || (-1) == SQL->StmtBindColumn(stmt, 33, SQLDT_SHORT, &p->body, 0,
-# 1091 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1091 "../../../server-code/src/char/char.c"
- ,
-# 1091 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1091 "../../../server-code/src/char/char.c"
- )
- || (-1) == SQL->StmtBindColumn(stmt, 34, SQLDT_SHORT, &p->weapon, 0,
-# 1092 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1092 "../../../server-code/src/char/char.c"
- ,
-# 1092 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1092 "../../../server-code/src/char/char.c"
- )
- || (-1) == SQL->StmtBindColumn(stmt, 35, SQLDT_SHORT, &p->shield, 0,
-# 1093 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1093 "../../../server-code/src/char/char.c"
- ,
-# 1093 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1093 "../../../server-code/src/char/char.c"
- )
- || (-1) == SQL->StmtBindColumn(stmt, 36, SQLDT_SHORT, &p->head_top, 0,
-# 1094 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1094 "../../../server-code/src/char/char.c"
- ,
-# 1094 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1094 "../../../server-code/src/char/char.c"
- )
- || (-1) == SQL->StmtBindColumn(stmt, 37, SQLDT_SHORT, &p->head_mid, 0,
-# 1095 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1095 "../../../server-code/src/char/char.c"
- ,
-# 1095 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1095 "../../../server-code/src/char/char.c"
- )
- || (-1) == SQL->StmtBindColumn(stmt, 38, SQLDT_SHORT, &p->head_bottom, 0,
-# 1096 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1096 "../../../server-code/src/char/char.c"
- ,
-# 1096 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1096 "../../../server-code/src/char/char.c"
- )
- || (-1) == SQL->StmtBindColumn(stmt, 39, SQLDT_STRING, &last_map, sizeof(last_map),
-# 1097 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1097 "../../../server-code/src/char/char.c"
- ,
-# 1097 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1097 "../../../server-code/src/char/char.c"
- )
- || (-1) == SQL->StmtBindColumn(stmt, 40, SQLDT_SHORT, &p->last_point.x, 0,
-# 1098 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1098 "../../../server-code/src/char/char.c"
- ,
-# 1098 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1098 "../../../server-code/src/char/char.c"
- )
- || (-1) == SQL->StmtBindColumn(stmt, 41, SQLDT_SHORT, &p->last_point.y, 0,
-# 1099 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1099 "../../../server-code/src/char/char.c"
- ,
-# 1099 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1099 "../../../server-code/src/char/char.c"
- )
- || (-1) == SQL->StmtBindColumn(stmt, 42, SQLDT_STRING, &save_map, sizeof(save_map),
-# 1100 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1100 "../../../server-code/src/char/char.c"
- ,
-# 1100 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1100 "../../../server-code/src/char/char.c"
- )
- || (-1) == SQL->StmtBindColumn(stmt, 43, SQLDT_SHORT, &p->save_point.x, 0,
-# 1101 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1101 "../../../server-code/src/char/char.c"
- ,
-# 1101 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1101 "../../../server-code/src/char/char.c"
- )
- || (-1) == SQL->StmtBindColumn(stmt, 44, SQLDT_SHORT, &p->save_point.y, 0,
-# 1102 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1102 "../../../server-code/src/char/char.c"
- ,
-# 1102 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1102 "../../../server-code/src/char/char.c"
- )
- || (-1) == SQL->StmtBindColumn(stmt, 45, SQLDT_INT, &p->partner_id, 0,
-# 1103 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1103 "../../../server-code/src/char/char.c"
- ,
-# 1103 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1103 "../../../server-code/src/char/char.c"
- )
- || (-1) == SQL->StmtBindColumn(stmt, 46, SQLDT_INT, &p->father, 0,
-# 1104 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1104 "../../../server-code/src/char/char.c"
- ,
-# 1104 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1104 "../../../server-code/src/char/char.c"
- )
- || (-1) == SQL->StmtBindColumn(stmt, 47, SQLDT_INT, &p->mother, 0,
-# 1105 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1105 "../../../server-code/src/char/char.c"
- ,
-# 1105 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1105 "../../../server-code/src/char/char.c"
- )
- || (-1) == SQL->StmtBindColumn(stmt, 48, SQLDT_INT, &p->child, 0,
-# 1106 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1106 "../../../server-code/src/char/char.c"
- ,
-# 1106 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1106 "../../../server-code/src/char/char.c"
- )
- || (-1) == SQL->StmtBindColumn(stmt, 49, SQLDT_INT, &p->fame, 0,
-# 1107 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1107 "../../../server-code/src/char/char.c"
- ,
-# 1107 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1107 "../../../server-code/src/char/char.c"
- )
- || (-1) == SQL->StmtBindColumn(stmt, 50, SQLDT_USHORT, &p->rename, 0,
-# 1108 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1108 "../../../server-code/src/char/char.c"
- ,
-# 1108 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1108 "../../../server-code/src/char/char.c"
- )
- || (-1) == SQL->StmtBindColumn(stmt, 51, SQLDT_UINT32, &p->delete_date, 0,
-# 1109 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1109 "../../../server-code/src/char/char.c"
- ,
-# 1109 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1109 "../../../server-code/src/char/char.c"
- )
- || (-1) == SQL->StmtBindColumn(stmt, 52, SQLDT_SHORT, &p->robe, 0,
-# 1110 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1110 "../../../server-code/src/char/char.c"
- ,
-# 1110 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1110 "../../../server-code/src/char/char.c"
- )
- || (-1) == SQL->StmtBindColumn(stmt, 53, SQLDT_USHORT, &p->slotchange, 0,
-# 1111 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1111 "../../../server-code/src/char/char.c"
- ,
-# 1111 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1111 "../../../server-code/src/char/char.c"
- )
- || (-1) == SQL->StmtBindColumn(stmt, 54, SQLDT_UINT, &opt, 0,
-# 1112 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1112 "../../../server-code/src/char/char.c"
- ,
-# 1112 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1112 "../../../server-code/src/char/char.c"
- )
- || (-1) == SQL->StmtBindColumn(stmt, 55, SQLDT_UCHAR, &p->font, 0,
-# 1113 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1113 "../../../server-code/src/char/char.c"
- ,
-# 1113 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1113 "../../../server-code/src/char/char.c"
- )
- || (-1) == SQL->StmtBindColumn(stmt, 56, SQLDT_UINT, &p->uniqueitem_counter, 0,
-# 1114 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1114 "../../../server-code/src/char/char.c"
- ,
-# 1114 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1114 "../../../server-code/src/char/char.c"
- )
- || (-1) == SQL->StmtBindColumn(stmt, 57, SQLDT_ENUM, &sex, sizeof(sex),
-# 1115 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1115 "../../../server-code/src/char/char.c"
- ,
-# 1115 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1115 "../../../server-code/src/char/char.c"
- )
- || (-1) == SQL->StmtBindColumn(stmt, 58, SQLDT_UCHAR, &p->hotkey_rowshift, 0,
-# 1116 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1116 "../../../server-code/src/char/char.c"
- ,
-# 1116 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1116 "../../../server-code/src/char/char.c"
- )
- ) {
- (SQL->StmtShowDebug_((stmt), "../../../server-code/src/char/char.c", 1118));
- SQL->StmtFree(stmt);
- return 0;
- }
- if (0 != SQL->StmtNextRow(stmt))
- {
- (showmsg->showError(("Requested non-existant character id: %d!\n"), char_id));
- SQL->StmtFree(stmt);
- return 0;
- }
-
- p->sex = chr->mmo_gender(
-# 1129 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1129 "../../../server-code/src/char/char.c"
- , p, sex[0]);
-
- account_id = p->account_id;
-
- p->last_point.map = mapindex->name2id(last_map);
- p->save_point.map = mapindex->name2id(save_map);
-
- if( p->last_point.map == 0 ) {
- p->last_point.map = (unsigned short)( DB->data2i((mapindex->db)->get((mapindex->db),DB->str2key(mapindex->default_map))) );
- p->last_point.x = mapindex->default_x;
- p->last_point.y = mapindex->default_y;
- }
-
- if( p->save_point.map == 0 ) {
- p->save_point.map = (unsigned short)( DB->data2i((mapindex->db)->get((mapindex->db),DB->str2key(mapindex->default_map))) );
- p->save_point.x = mapindex->default_x;
- p->save_point.y = mapindex->default_y;
- }
-
- strcat(t_msg, " status");
-
- if (!load_everything)
- {
- SQL->StmtFree(stmt);
- return 1;
- }
-
-
-
- memset(&tmp_point, 0, sizeof(tmp_point));
- if ((-1) == SQL->StmtPrepare(stmt, "SELECT `map`,`x`,`y` FROM `%s` WHERE `char_id`=? ORDER by `memo_id` LIMIT %d", memo_db, 3)
- || (-1) == SQL->StmtBindParam(stmt, 0, SQLDT_INT, &char_id, 0)
- || (-1) == SQL->StmtExecute(stmt)
- || (-1) == SQL->StmtBindColumn(stmt, 0, SQLDT_STRING, &point_map, sizeof(point_map),
-# 1162 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1162 "../../../server-code/src/char/char.c"
- ,
-# 1162 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1162 "../../../server-code/src/char/char.c"
- )
- || (-1) == SQL->StmtBindColumn(stmt, 1, SQLDT_SHORT, &tmp_point.x, 0,
-# 1163 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1163 "../../../server-code/src/char/char.c"
- ,
-# 1163 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1163 "../../../server-code/src/char/char.c"
- )
- || (-1) == SQL->StmtBindColumn(stmt, 2, SQLDT_SHORT, &tmp_point.y, 0,
-# 1164 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1164 "../../../server-code/src/char/char.c"
- ,
-# 1164 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1164 "../../../server-code/src/char/char.c"
- )
- )
- (SQL->StmtShowDebug_((stmt), "../../../server-code/src/char/char.c", 1166));
-
- for( i = 0; i < 3 && 0 == SQL->StmtNextRow(stmt); ++i ) {
- tmp_point.map = mapindex->name2id(point_map);
- memcpy(&p->memo_point[i], &tmp_point, sizeof(tmp_point));
- }
- strcat(t_msg, " memo");
-
-
-
- StrBuf->Init(&buf);
- StrBuf->AppendStr(&buf, "SELECT `id`, `nameid`, `amount`, `equip`, `identify`, `refine`, `attribute`, `expire_time`, `favorite`, `bound`, `unique_id`");
- for( i = 0; i < 4; ++i )
- StrBuf->Printf(&buf, ", `card%d`", i);
- StrBuf->Printf(&buf, " FROM `%s` WHERE `char_id`=? LIMIT %d", inventory_db, 100);
-
- memset(&tmp_item, 0, sizeof(tmp_item));
- if ((-1) == SQL->StmtPrepareStr(stmt, StrBuf->Value(&buf))
- || (-1) == SQL->StmtBindParam(stmt, 0, SQLDT_INT, &char_id, 0)
- || (-1) == SQL->StmtExecute(stmt)
- || (-1) == SQL->StmtBindColumn(stmt, 0, SQLDT_INT, &tmp_item.id, 0,
-# 1186 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1186 "../../../server-code/src/char/char.c"
- ,
-# 1186 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1186 "../../../server-code/src/char/char.c"
- )
- || (-1) == SQL->StmtBindColumn(stmt, 1, SQLDT_SHORT, &tmp_item.nameid, 0,
-# 1187 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1187 "../../../server-code/src/char/char.c"
- ,
-# 1187 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1187 "../../../server-code/src/char/char.c"
- )
- || (-1) == SQL->StmtBindColumn(stmt, 2, SQLDT_SHORT, &tmp_item.amount, 0,
-# 1188 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1188 "../../../server-code/src/char/char.c"
- ,
-# 1188 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1188 "../../../server-code/src/char/char.c"
- )
- || (-1) == SQL->StmtBindColumn(stmt, 3, SQLDT_UINT, &tmp_item.equip, 0,
-# 1189 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1189 "../../../server-code/src/char/char.c"
- ,
-# 1189 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1189 "../../../server-code/src/char/char.c"
- )
- || (-1) == SQL->StmtBindColumn(stmt, 4, SQLDT_CHAR, &tmp_item.identify, 0,
-# 1190 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1190 "../../../server-code/src/char/char.c"
- ,
-# 1190 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1190 "../../../server-code/src/char/char.c"
- )
- || (-1) == SQL->StmtBindColumn(stmt, 5, SQLDT_CHAR, &tmp_item.refine, 0,
-# 1191 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1191 "../../../server-code/src/char/char.c"
- ,
-# 1191 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1191 "../../../server-code/src/char/char.c"
- )
- || (-1) == SQL->StmtBindColumn(stmt, 6, SQLDT_CHAR, &tmp_item.attribute, 0,
-# 1192 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1192 "../../../server-code/src/char/char.c"
- ,
-# 1192 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1192 "../../../server-code/src/char/char.c"
- )
- || (-1) == SQL->StmtBindColumn(stmt, 7, SQLDT_UINT, &tmp_item.expire_time, 0,
-# 1193 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1193 "../../../server-code/src/char/char.c"
- ,
-# 1193 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1193 "../../../server-code/src/char/char.c"
- )
- || (-1) == SQL->StmtBindColumn(stmt, 8, SQLDT_CHAR, &tmp_item.favorite, 0,
-# 1194 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1194 "../../../server-code/src/char/char.c"
- ,
-# 1194 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1194 "../../../server-code/src/char/char.c"
- )
- || (-1) == SQL->StmtBindColumn(stmt, 9, SQLDT_UCHAR, &tmp_item.bound, 0,
-# 1195 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1195 "../../../server-code/src/char/char.c"
- ,
-# 1195 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1195 "../../../server-code/src/char/char.c"
- )
- || (-1) == SQL->StmtBindColumn(stmt, 10, SQLDT_UINT64, &tmp_item.unique_id, 0,
-# 1196 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1196 "../../../server-code/src/char/char.c"
- ,
-# 1196 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1196 "../../../server-code/src/char/char.c"
- )
- )
- (SQL->StmtShowDebug_((stmt), "../../../server-code/src/char/char.c", 1198));
- for( i = 0; i < 4; ++i )
- if( (-1) == SQL->StmtBindColumn(stmt, 11+i, SQLDT_SHORT, &tmp_item.card[i], 0,
-# 1200 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1200 "../../../server-code/src/char/char.c"
- ,
-# 1200 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1200 "../../../server-code/src/char/char.c"
- ) )
- (SQL->StmtShowDebug_((stmt), "../../../server-code/src/char/char.c", 1201));
-
- for( i = 0; i < 100 && 0 == SQL->StmtNextRow(stmt); ++i )
- memcpy(&p->inventory[i], &tmp_item, sizeof(tmp_item));
-
- strcat(t_msg, " inventory");
-
-
-
- StrBuf->Clear(&buf);
- StrBuf->AppendStr(&buf, "SELECT `id`, `nameid`, `amount`, `equip`, `identify`, `refine`, `attribute`, `expire_time`, `bound`, `unique_id`");
- for( j = 0; j < 4; ++j )
- StrBuf->Printf(&buf, ", `card%d`", j);
- StrBuf->Printf(&buf, " FROM `%s` WHERE `char_id`=? LIMIT %d", cart_db, 100);
-
- memset(&tmp_item, 0, sizeof(tmp_item));
- if ((-1) == SQL->StmtPrepareStr(stmt, StrBuf->Value(&buf))
- || (-1) == SQL->StmtBindParam(stmt, 0, SQLDT_INT, &char_id, 0)
- || (-1) == SQL->StmtExecute(stmt)
- || (-1) == SQL->StmtBindColumn(stmt, 0, SQLDT_INT, &tmp_item.id, 0,
-# 1220 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1220 "../../../server-code/src/char/char.c"
- ,
-# 1220 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1220 "../../../server-code/src/char/char.c"
- )
- || (-1) == SQL->StmtBindColumn(stmt, 1, SQLDT_SHORT, &tmp_item.nameid, 0,
-# 1221 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1221 "../../../server-code/src/char/char.c"
- ,
-# 1221 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1221 "../../../server-code/src/char/char.c"
- )
- || (-1) == SQL->StmtBindColumn(stmt, 2, SQLDT_SHORT, &tmp_item.amount, 0,
-# 1222 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1222 "../../../server-code/src/char/char.c"
- ,
-# 1222 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1222 "../../../server-code/src/char/char.c"
- )
- || (-1) == SQL->StmtBindColumn(stmt, 3, SQLDT_UINT, &tmp_item.equip, 0,
-# 1223 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1223 "../../../server-code/src/char/char.c"
- ,
-# 1223 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1223 "../../../server-code/src/char/char.c"
- )
- || (-1) == SQL->StmtBindColumn(stmt, 4, SQLDT_CHAR, &tmp_item.identify, 0,
-# 1224 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1224 "../../../server-code/src/char/char.c"
- ,
-# 1224 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1224 "../../../server-code/src/char/char.c"
- )
- || (-1) == SQL->StmtBindColumn(stmt, 5, SQLDT_CHAR, &tmp_item.refine, 0,
-# 1225 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1225 "../../../server-code/src/char/char.c"
- ,
-# 1225 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1225 "../../../server-code/src/char/char.c"
- )
- || (-1) == SQL->StmtBindColumn(stmt, 6, SQLDT_CHAR, &tmp_item.attribute, 0,
-# 1226 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1226 "../../../server-code/src/char/char.c"
- ,
-# 1226 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1226 "../../../server-code/src/char/char.c"
- )
- || (-1) == SQL->StmtBindColumn(stmt, 7, SQLDT_UINT, &tmp_item.expire_time, 0,
-# 1227 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1227 "../../../server-code/src/char/char.c"
- ,
-# 1227 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1227 "../../../server-code/src/char/char.c"
- )
- || (-1) == SQL->StmtBindColumn(stmt, 8, SQLDT_UCHAR, &tmp_item.bound, 0,
-# 1228 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1228 "../../../server-code/src/char/char.c"
- ,
-# 1228 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1228 "../../../server-code/src/char/char.c"
- )
- || (-1) == SQL->StmtBindColumn(stmt, 9, SQLDT_UINT64, &tmp_item.unique_id, 0,
-# 1229 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1229 "../../../server-code/src/char/char.c"
- ,
-# 1229 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1229 "../../../server-code/src/char/char.c"
- )
- ) {
- (SQL->StmtShowDebug_((stmt), "../../../server-code/src/char/char.c", 1231));
- }
- for( i = 0; i < 4; ++i )
- if( (-1) == SQL->StmtBindColumn(stmt, 10+i, SQLDT_SHORT, &tmp_item.card[i], 0,
-# 1234 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1234 "../../../server-code/src/char/char.c"
- ,
-# 1234 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1234 "../../../server-code/src/char/char.c"
- ) )
- (SQL->StmtShowDebug_((stmt), "../../../server-code/src/char/char.c", 1235));
-
- for( i = 0; i < 100 && 0 == SQL->StmtNextRow(stmt); ++i )
- memcpy(&p->cart[i], &tmp_item, sizeof(tmp_item));
- strcat(t_msg, " cart");
-
-
- inter_storage->fromsql(p->account_id, &p->storage);
- strcat(t_msg, " storage");
-
-
-
- memset(&tmp_skill, 0, sizeof(tmp_skill));
- if ((-1) == SQL->StmtPrepare(stmt, "SELECT `id`, `lv`,`flag` FROM `%s` WHERE `char_id`=? LIMIT %d", skill_db, 1478)
- || (-1) == SQL->StmtBindParam(stmt, 0, SQLDT_INT, &char_id, 0)
- || (-1) == SQL->StmtExecute(stmt)
- || (-1) == SQL->StmtBindColumn(stmt, 0, SQLDT_USHORT, &tmp_skill.id , 0,
-# 1251 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1251 "../../../server-code/src/char/char.c"
- ,
-# 1251 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1251 "../../../server-code/src/char/char.c"
- )
- || (-1) == SQL->StmtBindColumn(stmt, 1, SQLDT_UCHAR , &tmp_skill.lv , 0,
-# 1252 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1252 "../../../server-code/src/char/char.c"
- ,
-# 1252 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1252 "../../../server-code/src/char/char.c"
- )
- || (-1) == SQL->StmtBindColumn(stmt, 2, SQLDT_UCHAR , &tmp_skill.flag, 0,
-# 1253 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1253 "../../../server-code/src/char/char.c"
- ,
-# 1253 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1253 "../../../server-code/src/char/char.c"
- )
- ) {
- (SQL->StmtShowDebug_((stmt), "../../../server-code/src/char/char.c", 1255));
- }
-
- if( tmp_skill.flag != SKILL_FLAG_PERM_GRANTED )
- tmp_skill.flag = SKILL_FLAG_PERMANENT;
-
- for( i = 0; i < 1478 && 0 == SQL->StmtNextRow(stmt); ++i ) {
- if( skillid2idx[tmp_skill.id] )
- memcpy(&p->skill[skillid2idx[tmp_skill.id]], &tmp_skill, sizeof(tmp_skill));
- else
- (showmsg->showWarning(("chr->mmo_char_fromsql: ignoring invalid skill (id=%u,lv=%u) of character %s (AID=%d,CID=%d)\n"), tmp_skill.id, tmp_skill.lv, p->name, p->account_id, p->char_id));
- }
- strcat(t_msg, " skills");
-
-
-
- memset(&tmp_friend, 0, sizeof(tmp_friend));
- if ((-1) == SQL->StmtPrepare(stmt, "SELECT c.`account_id`, c.`char_id`, c.`name` FROM `%s` c LEFT JOIN `%s` f ON f.`friend_account` = c.`account_id` AND f.`friend_id` = c.`char_id` WHERE f.`char_id`=? LIMIT %d", char_db, friend_db, 40)
- || (-1) == SQL->StmtBindParam(stmt, 0, SQLDT_INT, &char_id, 0)
- || (-1) == SQL->StmtExecute(stmt)
- || (-1) == SQL->StmtBindColumn(stmt, 0, SQLDT_INT, &tmp_friend.account_id, 0,
-# 1275 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1275 "../../../server-code/src/char/char.c"
- ,
-# 1275 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1275 "../../../server-code/src/char/char.c"
- )
- || (-1) == SQL->StmtBindColumn(stmt, 1, SQLDT_INT, &tmp_friend.char_id, 0,
-# 1276 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1276 "../../../server-code/src/char/char.c"
- ,
-# 1276 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1276 "../../../server-code/src/char/char.c"
- )
- || (-1) == SQL->StmtBindColumn(stmt, 2, SQLDT_STRING, &tmp_friend.name, sizeof(tmp_friend.name),
-# 1277 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1277 "../../../server-code/src/char/char.c"
- ,
-# 1277 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1277 "../../../server-code/src/char/char.c"
- )
- ) {
- (SQL->StmtShowDebug_((stmt), "../../../server-code/src/char/char.c", 1279));
- }
-
- for( i = 0; i < 40 && 0 == SQL->StmtNextRow(stmt); ++i )
- memcpy(&p->friends[i], &tmp_friend, sizeof(tmp_friend));
- strcat(t_msg, " friends");
-
-
-
-
- memset(&tmp_hotkey, 0, sizeof(tmp_hotkey));
- if ((-1) == SQL->StmtPrepare(stmt, "SELECT `hotkey`, `type`, `itemskill_id`, `skill_lvl` FROM `%s` WHERE `char_id`=?", hotkey_db)
- || (-1) == SQL->StmtBindParam(stmt, 0, SQLDT_INT, &char_id, 0)
- || (-1) == SQL->StmtExecute(stmt)
- || (-1) == SQL->StmtBindColumn(stmt, 0, SQLDT_INT, &hotkey_num, 0,
-# 1293 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1293 "../../../server-code/src/char/char.c"
- ,
-# 1293 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1293 "../../../server-code/src/char/char.c"
- )
- || (-1) == SQL->StmtBindColumn(stmt, 1, SQLDT_UCHAR, &tmp_hotkey.type, 0,
-# 1294 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1294 "../../../server-code/src/char/char.c"
- ,
-# 1294 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1294 "../../../server-code/src/char/char.c"
- )
- || (-1) == SQL->StmtBindColumn(stmt, 2, SQLDT_UINT, &tmp_hotkey.id, 0,
-# 1295 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1295 "../../../server-code/src/char/char.c"
- ,
-# 1295 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1295 "../../../server-code/src/char/char.c"
- )
- || (-1) == SQL->StmtBindColumn(stmt, 3, SQLDT_USHORT, &tmp_hotkey.lv, 0,
-# 1296 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1296 "../../../server-code/src/char/char.c"
- ,
-# 1296 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1296 "../../../server-code/src/char/char.c"
- ) )
- (SQL->StmtShowDebug_((stmt), "../../../server-code/src/char/char.c", 1297));
-
- while( 0 == SQL->StmtNextRow(stmt) )
- {
- if( hotkey_num >= 0 && hotkey_num < 38 )
- memcpy(&p->hotkeys[hotkey_num], &tmp_hotkey, sizeof(tmp_hotkey));
- else
- (showmsg->showWarning(("chr->mmo_char_fromsql: ignoring invalid hotkey (hotkey=%d,type=%u,id=%u,lv=%u) of character %s (AID=%d,CID=%d)\n"), hotkey_num, tmp_hotkey.type, tmp_hotkey.id, tmp_hotkey.lv, p->name, p->account_id, p->char_id));
- }
- strcat(t_msg, " hotkeys");
-
-
-
- inter_mercenary->owner_fromsql(char_id, p);
- strcat(t_msg, " mercenary");
-
-
- p->mod_exp = p->mod_drop = p->mod_death = 100;
-
-
- if ((-1) == SQL->StmtPrepare(stmt, "SELECT `bank_vault`,`base_exp`,`base_drop`,`base_death` FROM `%s` WHERE `account_id`=? LIMIT 1", account_data_db)
- || (-1) == SQL->StmtBindParam(stmt, 0, SQLDT_INT, &account_id, 0)
- || (-1) == SQL->StmtExecute(stmt)
- || (-1) == SQL->StmtBindColumn(stmt, 0, SQLDT_INT, &p->bank_vault, 0,
-# 1320 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1320 "../../../server-code/src/char/char.c"
- ,
-# 1320 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1320 "../../../server-code/src/char/char.c"
- )
- || (-1) == SQL->StmtBindColumn(stmt, 1, SQLDT_USHORT, &p->mod_exp, 0,
-# 1321 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1321 "../../../server-code/src/char/char.c"
- ,
-# 1321 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1321 "../../../server-code/src/char/char.c"
- )
- || (-1) == SQL->StmtBindColumn(stmt, 2, SQLDT_USHORT, &p->mod_drop, 0,
-# 1322 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1322 "../../../server-code/src/char/char.c"
- ,
-# 1322 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1322 "../../../server-code/src/char/char.c"
- )
- || (-1) == SQL->StmtBindColumn(stmt, 3, SQLDT_USHORT, &p->mod_death, 0,
-# 1323 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1323 "../../../server-code/src/char/char.c"
- ,
-# 1323 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1323 "../../../server-code/src/char/char.c"
- )
- ) {
- (SQL->StmtShowDebug_((stmt), "../../../server-code/src/char/char.c", 1325));
- }
-
- if( 0 == SQL->StmtNextRow(stmt) )
- strcat(t_msg, " accdata");
-
- if (save_log) (showmsg->showInfo(("Loaded char (%d - %s): %s\n"), char_id, p->name, t_msg));
- SQL->StmtFree(stmt);
- StrBuf->Destroy(&buf);
-
-
- if( opt & OPT_ALLOW_PARTY )
- p->allow_party =
-# 1337 "../../../server-code/src/char/char.c" 3 4
- 1
-# 1337 "../../../server-code/src/char/char.c"
- ;
- if( opt & OPT_SHOW_EQUIP )
- p->show_equip =
-# 1339 "../../../server-code/src/char/char.c" 3 4
- 1
-# 1339 "../../../server-code/src/char/char.c"
- ;
-
- cp = ( DB->data2ptr((chr->char_db_)->ensure((chr->char_db_),DB->i2key(char_id),(chr->create_charstatus))) );
- memcpy(cp, p, sizeof(struct mmo_charstatus));
- return 1;
-}
-
-
-int char_mmo_char_sql_init(void)
-{
- chr->char_db_= DB->alloc("../../../server-code/src/char/char.c",__func__,1349,DB_INT,(DB_OPT_RELEASE_DATA),sizeof(int));
-# 1358 "../../../server-code/src/char/char.c"
- chr->set_all_offline_sql();
-
- return 0;
-}
-
-
-
-# 1364 "../../../server-code/src/char/char.c" 3 4
-_Bool
-# 1364 "../../../server-code/src/char/char.c"
- char_char_slotchange(struct char_session_data *sd, int fd, unsigned short from, unsigned short to) {
- struct mmo_charstatus char_dat;
- int from_id = 0;
-
- do { if (((void)(sd),
-# 1368 "../../../server-code/src/char/char.c" 3 4
-0
-# 1368 "../../../server-code/src/char/char.c"
-)) return(0); } while(0);
- if( from >= 9 || to >= 9 || ( sd->char_slots && to > sd->char_slots ) || sd->found_char[from] <= 0 )
- return
-# 1370 "../../../server-code/src/char/char.c" 3 4
- 0
-# 1370 "../../../server-code/src/char/char.c"
- ;
-
- if( !chr->mmo_char_fromsql(sd->found_char[from], &char_dat,
-# 1372 "../../../server-code/src/char/char.c" 3 4
- 0
-# 1372 "../../../server-code/src/char/char.c"
- ) )
- return
-# 1373 "../../../server-code/src/char/char.c" 3 4
- 0
-# 1373 "../../../server-code/src/char/char.c"
- ;
-
- if( char_dat.slotchange == 0 )
- return
-# 1376 "../../../server-code/src/char/char.c" 3 4
- 0
-# 1376 "../../../server-code/src/char/char.c"
- ;
-
- from_id = sd->found_char[from];
-
- if( sd->found_char[to] > 0 ) {
-
-# 1381 "../../../server-code/src/char/char.c" 3 4
- _Bool
-# 1381 "../../../server-code/src/char/char.c"
- result =
-# 1381 "../../../server-code/src/char/char.c" 3 4
- 0
-# 1381 "../../../server-code/src/char/char.c"
- ;
-
- if( 0 != SQL->QueryStr(inter->sql_handle, "START TRANSACTION")
- || 0 != SQL->Query(inter->sql_handle, "UPDATE `%s` SET `char_num`='%d' WHERE `char_id`='%d' LIMIT 1", char_db, from, sd->found_char[to])
- || 0 != SQL->Query(inter->sql_handle, "UPDATE `%s` SET `char_num`='%d' WHERE `char_id`='%d' LIMIT 1", char_db, to, sd->found_char[from])
- )
- (SQL->ShowDebug_((inter->sql_handle), "../../../server-code/src/char/char.c", 1387));
- else
- result =
-# 1389 "../../../server-code/src/char/char.c" 3 4
- 1
-# 1389 "../../../server-code/src/char/char.c"
- ;
-
- if( (-1) == SQL->QueryStr(inter->sql_handle, (result ==
-# 1391 "../../../server-code/src/char/char.c" 3 4
- 1
-# 1391 "../../../server-code/src/char/char.c"
- ) ? "COMMIT" : "ROLLBACK") ) {
- (SQL->ShowDebug_((inter->sql_handle), "../../../server-code/src/char/char.c", 1392));
- result =
-# 1393 "../../../server-code/src/char/char.c" 3 4
- 0
-# 1393 "../../../server-code/src/char/char.c"
- ;
- }
- if( !result )
- return
-# 1396 "../../../server-code/src/char/char.c" 3 4
- 0
-# 1396 "../../../server-code/src/char/char.c"
- ;
- } else {
- if( (-1) == SQL->Query(inter->sql_handle, "UPDATE `%s` SET `char_num`='%d' WHERE `char_id`='%d' LIMIT 1", char_db, to, sd->found_char[from] ) ) {
- (SQL->ShowDebug_((inter->sql_handle), "../../../server-code/src/char/char.c", 1399));
- return
-# 1400 "../../../server-code/src/char/char.c" 3 4
- 0
-# 1400 "../../../server-code/src/char/char.c"
- ;
- }
- }
-
-
- if( (-1) == SQL->Query(inter->sql_handle, "UPDATE `%s` SET `slotchange`=`slotchange`-1 WHERE `char_id`='%d' LIMIT 1", char_db, from_id ) ) {
- (SQL->ShowDebug_((inter->sql_handle), "../../../server-code/src/char/char.c", 1406));
- return
-# 1407 "../../../server-code/src/char/char.c" 3 4
- 0
-# 1407 "../../../server-code/src/char/char.c"
- ;
- }
-
- return
-# 1410 "../../../server-code/src/char/char.c" 3 4
- 1
-# 1410 "../../../server-code/src/char/char.c"
- ;
-}
-
-
-
-
-int char_rename_char_sql(struct char_session_data *sd, int char_id)
-{
- struct mmo_charstatus char_dat;
- char esc_name[(23 + 1)*2+1];
-
- do { if (((void)(sd),
-# 1421 "../../../server-code/src/char/char.c" 3 4
-0
-# 1421 "../../../server-code/src/char/char.c"
-)) return(2); } while(0);
-
- if( sd->new_name[0] == 0 )
- return 2;
-
- if( !chr->mmo_char_fromsql(char_id, &char_dat,
-# 1426 "../../../server-code/src/char/char.c" 3 4
- 0
-# 1426 "../../../server-code/src/char/char.c"
- ) )
- return 2;
-
- if (sd->account_id != char_dat.account_id)
- return 2;
-
- if( char_dat.rename == 0 )
- return 1;
-
- SQL->EscapeStringLen(inter->sql_handle, esc_name, sd->new_name, (strlib->strnlen_((sd->new_name),((23 + 1)))));
-
-
- if( (-1) == SQL->Query(inter->sql_handle, "SELECT 1 FROM `%s` WHERE `name` LIKE '%s' LIMIT 1", char_db, esc_name) )
- {
- (SQL->ShowDebug_((inter->sql_handle), "../../../server-code/src/char/char.c", 1440));
- return 4;
- }
-
- if( (-1) == SQL->Query(inter->sql_handle, "UPDATE `%s` SET `name` = '%s', `rename` = '%d' WHERE `char_id` = '%d'", char_db, esc_name, --char_dat.rename, char_id) )
- {
- (SQL->ShowDebug_((inter->sql_handle), "../../../server-code/src/char/char.c", 1446));
- return 3;
- }
-
-
- if( char_dat.guild_id )
- inter_guild->charname_changed(char_dat.guild_id, sd->account_id, char_id, sd->new_name);
-
- (strlib->safestrncpy_((char_dat.name),(sd->new_name),((23 + 1))));
- memset(sd->new_name,0,sizeof(sd->new_name));
-
-
- if( log_char )
- {
- if( (-1) == SQL->Query(inter->sql_handle,
- "INSERT INTO `%s` (`time`, `char_msg`,`account_id`,`char_id`,`char_num`,`name`,`str`,`agi`,`vit`,`int`,`dex`,`luk`,`hair`,`hair_color`)"
- "VALUES (NOW(), '%s', '%d', '%d', '%d', '%s', '0', '0', '0', '0', '0', '0', '0', '0')",
- charlog_db, "change char name", sd->account_id, char_dat.char_id, char_dat.slot, esc_name) )
- (SQL->ShowDebug_((inter->sql_handle), "../../../server-code/src/char/char.c", 1464));
- }
-
- return 0;
-}
-
-int char_check_char_name(char * name, char * esc_name)
-{
- int i;
-
- do { if (((void)(name),
-# 1474 "../../../server-code/src/char/char.c" 3 4
-0
-# 1474 "../../../server-code/src/char/char.c"
-)) return(-2); } while(0);
- do { if (((void)(esc_name),
-# 1475 "../../../server-code/src/char/char.c" 3 4
-0
-# 1475 "../../../server-code/src/char/char.c"
-)) return(-2); } while(0);
-
-
- if (name[0] == '\0')
- return -2;
-
-
-
-
- if( strlen( name ) < 4 )
- return -2;
-
- if( (strlib->remove_control_chars_(name)) )
- return -2;
-
-
- if( strcasecmp(name, wisp_server_name) == 0 )
- return -1;
-
-
- if( char_name_option == 1 )
- {
- for( i = 0; i < (23 + 1) && name[i]; i++ )
- if( strchr(char_name_letters, name[i]) ==
-# 1498 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1498 "../../../server-code/src/char/char.c"
- )
- return -2;
- }
- else if( char_name_option == 2 )
- {
- for( i = 0; i < (23 + 1) && name[i]; i++ )
- if( strchr(char_name_letters, name[i]) !=
-# 1504 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1504 "../../../server-code/src/char/char.c"
- )
- return -5;
- }
- if( name_ignoring_case ) {
- if( (-1) == SQL->Query(inter->sql_handle, "SELECT 1 FROM `%s` WHERE BINARY `name` = '%s' LIMIT 1", char_db, esc_name) ) {
- (SQL->ShowDebug_((inter->sql_handle), "../../../server-code/src/char/char.c", 1509));
- return -2;
- }
- } else {
- if( (-1) == SQL->Query(inter->sql_handle, "SELECT 1 FROM `%s` WHERE `name` = '%s' LIMIT 1", char_db, esc_name) ) {
- (SQL->ShowDebug_((inter->sql_handle), "../../../server-code/src/char/char.c", 1514));
- return -2;
- }
- }
- if( SQL->NumRows(inter->sql_handle) > 0 )
- return -1;
-
- return 0;
-}
-# 1534 "../../../server-code/src/char/char.c"
-int char_make_new_char_sql(struct char_session_data *sd, const char *name_, int str, int agi, int vit, int int_, int dex, int luk, int slot, int hair_color, int hair_style)
-{
- char name[(23 + 1)];
- char esc_name[(23 + 1)*2+1];
- int char_id, flag, k, l;
-
- do { if (((void)(sd),
-# 1540 "../../../server-code/src/char/char.c" 3 4
-0
-# 1540 "../../../server-code/src/char/char.c"
-)) return(-2); } while(0);
- do { if (((void)(name_),
-# 1541 "../../../server-code/src/char/char.c" 3 4
-0
-# 1541 "../../../server-code/src/char/char.c"
-)) return(-2); } while(0);
- (strlib->safestrncpy_((name),(name_),((23 + 1))));
- (strlib->normalize_name_((name),("\255\xA0\032\t\x0A\x0D ")));
- SQL->EscapeStringLen(inter->sql_handle, esc_name, name, (strlib->strnlen_((name),((23 + 1)))));
-
- flag = chr->check_char_name(name,esc_name);
- if( flag < 0 )
- return flag;
-
-
-
- if(slot < 0 || slot >= sd->char_slots)
-
-
-
-
-
-
-
- return -4;
-
-
-
-
-
- if( sd->found_char[slot] != -1 )
- return -2;
-
-
-
- if( (-1) == SQL->Query(inter->sql_handle, "INSERT INTO `%s` (`account_id`, `char_num`, `name`, `zeny`, `status_point`,`str`, `agi`, `vit`, `int`, `dex`, `luk`, `max_hp`, `hp`,"
- "`max_sp`, `sp`, `hair`, `hair_color`, `last_map`, `last_x`, `last_y`, `save_map`, `save_x`, `save_y`) VALUES ("
- "'%d', '%d', '%s', '%d', '%d','%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d','%d', '%d','%d', '%d', '%s', '%d', '%d', '%s', '%d', '%d')",
- char_db, sd->account_id , slot, esc_name, start_zeny, 48, str, agi, vit, int_, dex, luk,
- (40 * (100 + vit)/100) , (40 * (100 + vit)/100 ), (11 * (100 + int_)/100), (11 * (100 + int_)/100), hair_style, hair_color,
- mapindex->id2name((start_point.map),"../../../server-code/src/char/char.c", 1576, __func__), start_point.x, start_point.y, mapindex->id2name((start_point.map),"../../../server-code/src/char/char.c", 1576, __func__), start_point.x, start_point.y) )
- {
- (SQL->ShowDebug_((inter->sql_handle), "../../../server-code/src/char/char.c", 1578));
- return -2;
- }
-# 1595 "../../../server-code/src/char/char.c"
- char_id = (int)SQL->LastInsertId(inter->sql_handle);
-
- if( !char_id )
- return -2;
-
-
- if (log_char) {
- if( (-1) == SQL->Query(inter->sql_handle, "INSERT INTO `%s` (`time`, `char_msg`,`account_id`,`char_id`,`char_num`,`name`,`str`,`agi`,`vit`,`int`,`dex`,`luk`,`hair`,`hair_color`)"
- "VALUES (NOW(), '%s', '%d', '%d', '%d', '%s', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d')",
- charlog_db, "make new char", sd->account_id, char_id, slot, esc_name, str, agi, vit, int_, dex, luk, hair_style, hair_color) )
- (SQL->ShowDebug_((inter->sql_handle), "../../../server-code/src/char/char.c", 1605));
- }
-
-
- for (k = 0; k < ( (int)(sizeof(start_items)/sizeof((start_items)[0])) ) && start_items[k] != 0; k += 3) {
-
- if( start_items[k+2] == 1 )
- {
- if( (-1) == SQL->Query(inter->sql_handle,
- "INSERT INTO `%s` (`char_id`,`nameid`, `amount`, `identify`) VALUES ('%d', '%d', '%d', '%d')",
- inventory_db, char_id, start_items[k], start_items[k + 1], 1) )
- (SQL->ShowDebug_((inter->sql_handle), "../../../server-code/src/char/char.c", 1616));
- }
- else if( start_items[k+2] == 0 )
- {
-
- for( l = 0; l < start_items[k+1]; l++ )
- {
- if( (-1) == SQL->Query(inter->sql_handle,
- "INSERT INTO `%s` (`char_id`,`nameid`, `amount`, `identify`) VALUES ('%d', '%d', '%d', '%d')",
- inventory_db, char_id, start_items[k], 1, 1)
- )
- (SQL->ShowDebug_((inter->sql_handle), "../../../server-code/src/char/char.c", 1627));
- }
- }
- }
-
- (showmsg->showInfo(("Created char: account: %d, char: %d, slot: %d, name: %s\n"), sd->account_id, char_id, slot, name));
- return char_id;
-}
-
-
-
-
-int char_divorce_char_sql(int partner_id1, int partner_id2)
-{
- unsigned char buf[64];
-
- if( (-1) == SQL->Query(inter->sql_handle, "UPDATE `%s` SET `partner_id`='0' WHERE `char_id`='%d' OR `char_id`='%d' LIMIT 2", char_db, partner_id1, partner_id2) )
- (SQL->ShowDebug_((inter->sql_handle), "../../../server-code/src/char/char.c", 1644));
- if( (-1) == SQL->Query(inter->sql_handle, "DELETE FROM `%s` WHERE (`nameid`='%d' OR `nameid`='%d') AND (`char_id`='%d' OR `char_id`='%d') LIMIT 2", inventory_db, 2634, 2635, partner_id1, partner_id2) )
- (SQL->ShowDebug_((inter->sql_handle), "../../../server-code/src/char/char.c", 1646));
-
- WBUFW(buf,0) = 0x2b12;
- WBUFL(buf,2) = partner_id1;
- WBUFL(buf,6) = partner_id2;
- mapif->sendall(buf,10);
-
- return 0;
-}
-
-
-
-
-
-
-
-int char_delete_char_sql(int char_id)
-{
- char name[(23 + 1)];
- char esc_name[(23 + 1)*2+1];
- int account_id, party_id, guild_id, hom_id, base_level, partner_id, father_id, mother_id, elemental_id;
- char *data;
- size_t len;
-
- if ((-1) == SQL->Query(inter->sql_handle, "SELECT `name`,`account_id`,`party_id`,`guild_id`,`base_level`,`homun_id`,`partner_id`,`father`,`mother`,`elemental_id` FROM `%s` WHERE `char_id`='%d'", char_db, char_id))
- (SQL->ShowDebug_((inter->sql_handle), "../../../server-code/src/char/char.c", 1671));
-
- if( 0 != SQL->NextRow(inter->sql_handle) )
- {
- (showmsg->showError(("chr->delete_char_sql: Unable to fetch character data, deletion aborted.\n")));
- SQL->FreeResult(inter->sql_handle);
- return -1;
- }
-
- SQL->GetData(inter->sql_handle, 0, &data, &len); (strlib->safestrncpy_((name),(data),((23 + 1))));
- SQL->GetData(inter->sql_handle, 1, &data,
-# 1681 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1681 "../../../server-code/src/char/char.c"
- ); account_id = atoi(data);
- SQL->GetData(inter->sql_handle, 2, &data,
-# 1682 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1682 "../../../server-code/src/char/char.c"
- ); party_id = atoi(data);
- SQL->GetData(inter->sql_handle, 3, &data,
-# 1683 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1683 "../../../server-code/src/char/char.c"
- ); guild_id = atoi(data);
- SQL->GetData(inter->sql_handle, 4, &data,
-# 1684 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1684 "../../../server-code/src/char/char.c"
- ); base_level = atoi(data);
- SQL->GetData(inter->sql_handle, 5, &data,
-# 1685 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1685 "../../../server-code/src/char/char.c"
- ); hom_id = atoi(data);
- SQL->GetData(inter->sql_handle, 6, &data,
-# 1686 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1686 "../../../server-code/src/char/char.c"
- ); partner_id = atoi(data);
- SQL->GetData(inter->sql_handle, 7, &data,
-# 1687 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1687 "../../../server-code/src/char/char.c"
- ); father_id = atoi(data);
- SQL->GetData(inter->sql_handle, 8, &data,
-# 1688 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1688 "../../../server-code/src/char/char.c"
- ); mother_id = atoi(data);
- SQL->GetData(inter->sql_handle, 9, &data,
-# 1689 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1689 "../../../server-code/src/char/char.c"
- );
- elemental_id = atoi(data);
-
- SQL->EscapeStringLen(inter->sql_handle, esc_name, name, (((len) < ((23 + 1))) ? (len) : ((23 + 1))));
- SQL->FreeResult(inter->sql_handle);
-
-
-
- if( ( char_del_level > 0 && base_level >= char_del_level )
- || ( char_del_level < 0 && base_level <= -char_del_level )
- ) {
- (showmsg->showInfo(("Char deletion aborted: %s, BaseLevel: %i\n"), name, base_level));
- return -1;
- }
-
-
- if( partner_id )
- chr->divorce_char_sql(char_id, partner_id);
-
-
- if( father_id || mother_id )
- {
- unsigned char buf[64];
-
- if( (-1) == SQL->Query(inter->sql_handle, "UPDATE `%s` SET `child`='0' WHERE `char_id`='%d' OR `char_id`='%d'", char_db, father_id, mother_id) )
- (SQL->ShowDebug_((inter->sql_handle), "../../../server-code/src/char/char.c", 1714));
- if( (-1) == SQL->Query(inter->sql_handle, "DELETE FROM `%s` WHERE `id` = '410'AND (`char_id`='%d' OR `char_id`='%d')", skill_db, father_id, mother_id) )
- (SQL->ShowDebug_((inter->sql_handle), "../../../server-code/src/char/char.c", 1716));
-
- WBUFW(buf,0) = 0x2b25;
- WBUFL(buf,2) = father_id;
- WBUFL(buf,6) = mother_id;
- WBUFL(buf,10) = char_id;
- mapif->sendall(buf,14);
- }
-
-
- if (party_id)
- inter_party->leave(party_id, account_id, char_id);
-
-
-
- if( (-1) == SQL->Query(inter->sql_handle, "DELETE FROM `%s` WHERE `char_id`='%d' AND `incubate` = '0'", pet_db, char_id) )
- (SQL->ShowDebug_((inter->sql_handle), "../../../server-code/src/char/char.c", 1732));
-
-
- if( (-1) == SQL->Query(inter->sql_handle, "DELETE FROM `%s` USING `%s` JOIN `%s` ON `pet_id` = `card1`|`card2`<<16 WHERE `%s`.char_id = '%d' AND card0 = -256", pet_db, pet_db, inventory_db, inventory_db, char_id) )
- (SQL->ShowDebug_((inter->sql_handle), "../../../server-code/src/char/char.c", 1736));
- if( (-1) == SQL->Query(inter->sql_handle, "DELETE FROM `%s` USING `%s` JOIN `%s` ON `pet_id` = `card1`|`card2`<<16 WHERE `%s`.char_id = '%d' AND card0 = -256", pet_db, pet_db, cart_db, cart_db, char_id) )
- (SQL->ShowDebug_((inter->sql_handle), "../../../server-code/src/char/char.c", 1738));
-
-
- if( hom_id )
- mapif->homunculus_delete(hom_id);
-
-
- if (elemental_id)
- mapif->elemental_delete(elemental_id);
-
-
- inter_mercenary->owner_delete(char_id);
-
-
- if( (-1) == SQL->Query(inter->sql_handle, "DELETE FROM `%s` WHERE `char_id` = '%d'", friend_db, char_id) )
- (SQL->ShowDebug_((inter->sql_handle), "../../../server-code/src/char/char.c", 1753));
-
-
-
- if( (-1) == SQL->Query(inter->sql_handle, "DELETE FROM `%s` WHERE `friend_id` = '%d'", friend_db, char_id) )
- (SQL->ShowDebug_((inter->sql_handle), "../../../server-code/src/char/char.c", 1758));
-
-
-
- if( (-1) == SQL->Query(inter->sql_handle, "DELETE FROM `%s` WHERE `char_id`='%d'", hotkey_db, char_id) )
- (SQL->ShowDebug_((inter->sql_handle), "../../../server-code/src/char/char.c", 1763));
-
-
-
- if( (-1) == SQL->Query(inter->sql_handle, "DELETE FROM `%s` WHERE `char_id`='%d'", inventory_db, char_id) )
- (SQL->ShowDebug_((inter->sql_handle), "../../../server-code/src/char/char.c", 1768));
-
-
- if( (-1) == SQL->Query(inter->sql_handle, "DELETE FROM `%s` WHERE `char_id`='%d'", cart_db, char_id) )
- (SQL->ShowDebug_((inter->sql_handle), "../../../server-code/src/char/char.c", 1772));
-
-
- if( (-1) == SQL->Query(inter->sql_handle, "DELETE FROM `%s` WHERE `char_id`='%d'", memo_db, char_id) )
- (SQL->ShowDebug_((inter->sql_handle), "../../../server-code/src/char/char.c", 1776));
-
-
- if( (-1) == SQL->Query(inter->sql_handle, "DELETE FROM `%s` WHERE `char_id`='%d'", char_reg_str_db, char_id) )
- (SQL->ShowDebug_((inter->sql_handle), "../../../server-code/src/char/char.c", 1780));
- if( (-1) == SQL->Query(inter->sql_handle, "DELETE FROM `%s` WHERE `char_id`='%d'", char_reg_num_db, char_id) )
- (SQL->ShowDebug_((inter->sql_handle), "../../../server-code/src/char/char.c", 1782));
-
-
- if( (-1) == SQL->Query(inter->sql_handle, "DELETE FROM `%s` WHERE `char_id`='%d'", skill_db, char_id) )
- (SQL->ShowDebug_((inter->sql_handle), "../../../server-code/src/char/char.c", 1786));
-
-
- if ((-1) == SQL->Query(inter->sql_handle, "DELETE FROM `%s` WHERE `dest_id`='%d'", mail_db, char_id))
- (SQL->ShowDebug_((inter->sql_handle), "../../../server-code/src/char/char.c", 1790));
-
-
-
- if( (-1) == SQL->Query(inter->sql_handle, "DELETE FROM `%s` WHERE `account_id` = '%d' AND `char_id`='%d'", scdata_db, account_id, char_id) )
- (SQL->ShowDebug_((inter->sql_handle), "../../../server-code/src/char/char.c", 1795));
-
-
-
- if( (-1) == SQL->Query(inter->sql_handle, "DELETE FROM `%s` WHERE `char_id`='%d'", char_db, char_id) )
- (SQL->ShowDebug_((inter->sql_handle), "../../../server-code/src/char/char.c", 1800));
- else if( log_char ) {
- if( (-1) == SQL->Query(inter->sql_handle,
- "INSERT INTO `%s`(`time`, `account_id`, `char_id`, `char_num`, `char_msg`, `name`)"
- " VALUES (NOW(), '%d', '%d', '%d', 'Deleted character', '%s')",
- charlog_db, account_id, char_id, 0, esc_name) )
- (SQL->ShowDebug_((inter->sql_handle), "../../../server-code/src/char/char.c", 1806));
- }
-
-
-
-
-
-
-
- if( (-1) == SQL->Query(inter->sql_handle, "SELECT `guild_id` FROM `%s` WHERE `char_id` = '%d'", guild_db, char_id) )
- (SQL->ShowDebug_((inter->sql_handle), "../../../server-code/src/char/char.c", 1816));
- else if( SQL->NumRows(inter->sql_handle) > 0 )
- mapif->parse_BreakGuild(0,guild_id);
- else if( guild_id )
- inter_guild->leave(guild_id, account_id, char_id);
- return 0;
-}
-
-
-
-
-int char_count_users(void)
-{
- int i, users;
-
- users = 0;
- for(i = 0; i < ( (int)(sizeof(chr->server)/sizeof((chr->server)[0])) ); i++) {
- if (chr->server[i].fd > 0) {
- users += chr->server[i].users;
- }
- }
- return users;
-}
-
-
-
-
-
-int char_mmo_char_tobuf(uint8* buffer, struct mmo_charstatus* p) {
- unsigned short offset = 0;
- uint8* buf;
-
- if( buffer ==
-# 1848 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1848 "../../../server-code/src/char/char.c"
- || p ==
-# 1848 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1848 "../../../server-code/src/char/char.c"
- )
- return 0;
-
- buf = WBUFP(buffer,0);
- WBUFL(buf,0) = p->char_id;
- WBUFL(buf,4) = (((p->base_exp) < (
-# 1853 "../../../server-code/src/char/char.c" 3 4
- (2147483647)
-# 1853 "../../../server-code/src/char/char.c"
- )) ? (p->base_exp) : (
-# 1853 "../../../server-code/src/char/char.c" 3 4
- (2147483647)
-# 1853 "../../../server-code/src/char/char.c"
- ));
- WBUFL(buf,8) = p->zeny;
- WBUFL(buf,12) = (((p->job_exp) < (
-# 1855 "../../../server-code/src/char/char.c" 3 4
- (2147483647)
-# 1855 "../../../server-code/src/char/char.c"
- )) ? (p->job_exp) : (
-# 1855 "../../../server-code/src/char/char.c" 3 4
- (2147483647)
-# 1855 "../../../server-code/src/char/char.c"
- ));
- WBUFL(buf,16) = p->job_level;
- WBUFL(buf,20) = 0;
- WBUFL(buf,24) = 0;
- WBUFL(buf,28) = (p->option &~ 0x40);
- WBUFL(buf,32) = p->karma;
- WBUFL(buf,36) = p->manner;
- WBUFW(buf,40) = (((p->status_point) < (
-# 1862 "../../../server-code/src/char/char.c" 3 4
- (32767)
-# 1862 "../../../server-code/src/char/char.c"
- )) ? (p->status_point) : (
-# 1862 "../../../server-code/src/char/char.c" 3 4
- (32767)
-# 1862 "../../../server-code/src/char/char.c"
- ));
-
- WBUFL(buf,42) = p->hp;
- WBUFL(buf,46) = p->max_hp;
- offset+=4;
- buf = WBUFP(buffer,offset);
-
-
-
-
- WBUFW(buf,46) = (((p->sp) < (
-# 1872 "../../../server-code/src/char/char.c" 3 4
- (32767)
-# 1872 "../../../server-code/src/char/char.c"
- )) ? (p->sp) : (
-# 1872 "../../../server-code/src/char/char.c" 3 4
- (32767)
-# 1872 "../../../server-code/src/char/char.c"
- ));
- WBUFW(buf,48) = (((p->max_sp) < (
-# 1873 "../../../server-code/src/char/char.c" 3 4
- (32767)
-# 1873 "../../../server-code/src/char/char.c"
- )) ? (p->max_sp) : (
-# 1873 "../../../server-code/src/char/char.c" 3 4
- (32767)
-# 1873 "../../../server-code/src/char/char.c"
- ));
- WBUFW(buf,50) = 150;
- WBUFW(buf,52) = p->class_;
- WBUFW(buf,54) = p->hair;
-
- WBUFW(buf,56) = p->body;
- offset+=2;
- buf = WBUFP(buffer,offset);
-
-
-
-
- WBUFW(buf,56) = p->option&(OPTION_RIDING|OPTION_DRAGON|OPTION_WUG|OPTION_WUGRIDER|OPTION_MADOGEAR|OPTION_HANBOK) ? 0 : p->weapon;
-
- WBUFW(buf,58) = p->base_level;
- WBUFW(buf,60) = (((p->skill_point) < (
-# 1888 "../../../server-code/src/char/char.c" 3 4
- (32767)
-# 1888 "../../../server-code/src/char/char.c"
- )) ? (p->skill_point) : (
-# 1888 "../../../server-code/src/char/char.c" 3 4
- (32767)
-# 1888 "../../../server-code/src/char/char.c"
- ));
- WBUFW(buf,62) = p->head_bottom;
- WBUFW(buf,64) = p->shield;
- WBUFW(buf,66) = p->head_top;
- WBUFW(buf,68) = p->head_mid;
- WBUFW(buf,70) = p->hair_color;
- WBUFW(buf,72) = p->clothes_color;
- memcpy(WBUFP(buf,74), p->name, (23 + 1));
- WBUFB(buf,98) = (((p->str) < (((uint8) 0xFF))) ? (p->str) : (((uint8) 0xFF)));
- WBUFB(buf,99) = (((p->agi) < (((uint8) 0xFF))) ? (p->agi) : (((uint8) 0xFF)));
- WBUFB(buf,100) = (((p->vit) < (((uint8) 0xFF))) ? (p->vit) : (((uint8) 0xFF)));
- WBUFB(buf,101) = (((p->int_) < (((uint8) 0xFF))) ? (p->int_) : (((uint8) 0xFF)));
- WBUFB(buf,102) = (((p->dex) < (((uint8) 0xFF))) ? (p->dex) : (((uint8) 0xFF)));
- WBUFB(buf,103) = (((p->luk) < (((uint8) 0xFF))) ? (p->luk) : (((uint8) 0xFF)));
- WBUFW(buf,104) = p->slot;
-
- WBUFW(buf,106) = ( p->rename > 0 ) ? 0 : 1;
- offset += 2;
-
-
- mapindex->getmapname_ext(mapindex->id2name((p->last_point.map),"../../../server-code/src/char/char.c", 1908, __func__), WBUFP(buf,108));
- offset += ((11 + 1) + 4);
-
-
- WBUFL(buf,124) = (int)p->delete_date;
- offset += 4;
-
-
- WBUFL(buf,128) = p->robe;
- offset += 4;
-
-
-
- WBUFL(buf,132) = ( p->slotchange > 0 ) ? 1 : 0;
- offset += 4;
-
-
- WBUFL(buf,136) = ( p->rename > 0 ) ? 1 : 0;
- offset += 4;
-
-
- WBUFB(buf,140) = p->sex;
- offset += 1;
-
-
-
- return 106+offset;
-}
-
-
-void char_mmo_char_send099d(int fd, struct char_session_data *sd) {
- WFIFOHEAD(fd,4 + (9*150));
- WFIFOW(fd,0) = 0x99d;
- WFIFOW(fd,2) = chr->mmo_chars_fromsql(sd, WFIFOP(fd,4)) + 4;
- WFIFOSET(fd,WFIFOW(fd,2));
-}
-
-
-
-void char_mmo_char_send_ban_list(int fd, struct char_session_data *sd) {
- int i;
- time_t now = time(
-# 1949 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 1949 "../../../server-code/src/char/char.c"
- );
-
- do { if (((void)(sd),
-# 1951 "../../../server-code/src/char/char.c" 3 4
-0
-# 1951 "../../../server-code/src/char/char.c"
-)) return; } while(0);
- do { for ((i) = (0); (i) < (9); ++(i)) if (sd->unban_time[i]) break; } while(
-# 1952 "../../../server-code/src/char/char.c" 3 4
-0
-# 1952 "../../../server-code/src/char/char.c"
-);
- if( i != 9 ) {
- int c;
-
- WFIFOHEAD(fd, 4 + (9*24));
-
- WFIFOW(fd,0) = 0x20d;
-
- for(i = 0, c = 0; i < 9; i++) {
- if( sd->unban_time[i] ) {
- timestamp2string(WFIFOP(fd,8 + (28*c)), 20, sd->unban_time[i], "%Y-%m-%d %H:%M:%S");
-
- if( sd->unban_time[i] > now )
- WFIFOL(fd, 4 + (24*c)) = sd->found_char[i];
- else {
-
- WFIFOL(fd, 4 + (24*c)) = 0;
-
- sd->unban_time[i] = 0;
- if( (-1) == SQL->Query(inter->sql_handle, "UPDATE `%s` SET `unban_time`='0' WHERE `char_id`='%d' LIMIT 1", char_db, sd->found_char[i]) )
- (SQL->ShowDebug_((inter->sql_handle), "../../../server-code/src/char/char.c", 1972));
- }
- c++;
- }
- }
-
- WFIFOW(fd,2) = 4 + (24*c);
-
- WFIFOSET(fd, WFIFOW(fd,2));
- }
-}
-
-
-
-
-void char_mmo_char_send_slots_info(int fd, struct char_session_data* sd) {
- do { if (((void)(sd),
-# 1988 "../../../server-code/src/char/char.c" 3 4
-0
-# 1988 "../../../server-code/src/char/char.c"
-)) return; } while(0);
- WFIFOHEAD(fd,29);
- WFIFOW(fd,0) = 0x82d;
- WFIFOW(fd,2) = 29;
- WFIFOB(fd,4) = sd->char_slots;
- WFIFOB(fd,5) = 9 - sd->char_slots;
- WFIFOB(fd,6) = 0;
- WFIFOB(fd,7) = sd->char_slots;
- WFIFOB(fd,8) = sd->char_slots;
- memset(WFIFOP(fd,9), 0, 20);
- WFIFOSET(fd,29);
-}
-
-
-
-int char_mmo_char_send_characters(int fd, struct char_session_data* sd)
-{
- int j, offset = 0;
- do { if (((void)(sd),
-# 2006 "../../../server-code/src/char/char.c" 3 4
-0
-# 2006 "../../../server-code/src/char/char.c"
-)) return(0); } while(0);
-
- offset += 3;
-
- if (save_log)
- (showmsg->showInfo(("Loading Char Data (""\033[1m""%d""\033[0m"")\n"),sd->account_id));
-
- j = 24 + offset;
- WFIFOHEAD(fd,j + 9*150);
- WFIFOW(fd,0) = 0x6b;
-
- WFIFOB(fd,4) = 9;
- WFIFOB(fd,5) = sd->char_slots;
- WFIFOB(fd,6) = 9;
-
- memset(WFIFOP(fd,4 + offset), 0, 20);
- j+=chr->mmo_chars_fromsql(sd, WFIFOP(fd,j));
- WFIFOW(fd,2) = j;
- WFIFOSET(fd,j);
-
- return 0;
-}
-
-int char_char_married(int pl1, int pl2)
-{
- if( (-1) == SQL->Query(inter->sql_handle, "SELECT `partner_id` FROM `%s` WHERE `char_id` = '%d'", char_db, pl1) )
- (SQL->ShowDebug_((inter->sql_handle), "../../../server-code/src/char/char.c", 2032));
- else if( 0 == SQL->NextRow(inter->sql_handle) )
- {
- char* data;
-
- SQL->GetData(inter->sql_handle, 0, &data,
-# 2037 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 2037 "../../../server-code/src/char/char.c"
- );
- if( pl2 == atoi(data) )
- {
- SQL->FreeResult(inter->sql_handle);
- return 1;
- }
- }
- SQL->FreeResult(inter->sql_handle);
- return 0;
-}
-
-int char_char_child(int parent_id, int child_id)
-{
- if( (-1) == SQL->Query(inter->sql_handle, "SELECT `child` FROM `%s` WHERE `char_id` = '%d'", char_db, parent_id) )
- (SQL->ShowDebug_((inter->sql_handle), "../../../server-code/src/char/char.c", 2051));
- else if( 0 == SQL->NextRow(inter->sql_handle) )
- {
- char* data;
-
- SQL->GetData(inter->sql_handle, 0, &data,
-# 2056 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 2056 "../../../server-code/src/char/char.c"
- );
- if( child_id == atoi(data) )
- {
- SQL->FreeResult(inter->sql_handle);
- return 1;
- }
- }
- SQL->FreeResult(inter->sql_handle);
- return 0;
-}
-
-int char_char_family(int cid1, int cid2, int cid3)
-{
- if( (-1) == SQL->Query(inter->sql_handle, "SELECT `char_id`,`partner_id`,`child` FROM `%s` WHERE `char_id` IN ('%d','%d','%d')", char_db, cid1, cid2, cid3) )
- (SQL->ShowDebug_((inter->sql_handle), "../../../server-code/src/char/char.c", 2070));
- else while( 0 == SQL->NextRow(inter->sql_handle) )
- {
- int charid;
- int partnerid;
- int childid;
- char* data;
-
- SQL->GetData(inter->sql_handle, 0, &data,
-# 2078 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 2078 "../../../server-code/src/char/char.c"
- ); charid = atoi(data);
- SQL->GetData(inter->sql_handle, 1, &data,
-# 2079 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 2079 "../../../server-code/src/char/char.c"
- ); partnerid = atoi(data);
- SQL->GetData(inter->sql_handle, 2, &data,
-# 2080 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 2080 "../../../server-code/src/char/char.c"
- ); childid = atoi(data);
-
- if( (cid1 == charid && ((cid2 == partnerid && cid3 == childid ) || (cid2 == childid && cid3 == partnerid))) ||
- (cid1 == partnerid && ((cid2 == charid && cid3 == childid ) || (cid2 == childid && cid3 == charid ))) ||
- (cid1 == childid && ((cid2 == charid && cid3 == partnerid) || (cid2 == partnerid && cid3 == charid ))) )
- {
- SQL->FreeResult(inter->sql_handle);
- return childid;
- }
- }
- SQL->FreeResult(inter->sql_handle);
- return 0;
-}
-
-
-
-
-void char_disconnect_player(int account_id)
-{
- int i;
- struct char_session_data* sd;
-
-
- do { for ((i) = (0); (i) < (sockt->fd_max); ++(i)) if (sockt->session[i] && (sd = (struct char_session_data*)sockt->session[i]->session_data) && sd->account_id == account_id) break; } while(
-# 2103 "../../../server-code/src/char/char.c" 3 4
-0
-# 2103 "../../../server-code/src/char/char.c"
-);
- if( i < sockt->fd_max )
- sockt->eof(i);
-}
-
-void char_authfail_fd(int fd, int type)
-{
- WFIFOHEAD(fd,3);
- WFIFOW(fd,0) = 0x81;
- WFIFOB(fd,2) = type;
- WFIFOSET(fd,3);
-}
-
-void char_request_account_data(int account_id)
-{
- WFIFOHEAD(chr->login_fd,6);
- WFIFOW(chr->login_fd,0) = 0x2716;
- WFIFOL(chr->login_fd,2) = account_id;
- WFIFOSET(chr->login_fd,6);
-}
-
-static void char_auth_ok(int fd, struct char_session_data *sd)
-{
- struct online_char_data* character;
-
- do { if (((void)(sd),
-# 2128 "../../../server-code/src/char/char.c" 3 4
-0
-# 2128 "../../../server-code/src/char/char.c"
-)) return; } while(0);
-
- if( (character = (struct online_char_data*)( DB->data2ptr((chr->online_char_db)->get((chr->online_char_db),DB->i2key(sd->account_id))) )) !=
-# 2130 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 2130 "../../../server-code/src/char/char.c"
- ) {
-
- if (character->server > -1) {
-
- mapif->disconnectplayer(chr->server[character->server].fd, character->account_id, character->char_id, 2);
- if (character->waiting_disconnect == (-1))
- character->waiting_disconnect = timer->add(timer->gettick()+20000, chr->waiting_disconnect, character->account_id, 0);
- character->pincode_enable = -1;
- chr->authfail_fd(fd, 8);
- return;
- }
- if (character->fd >= 0 && character->fd != fd) {
-
- chr->authfail_fd(fd, 8);
- return;
- }
- character->fd = fd;
- }
-
- if (chr->login_fd > 0) {
- chr->request_account_data(sd->account_id);
- }
-
-
- sd->auth =
-# 2154 "../../../server-code/src/char/char.c" 3 4
- 1
-# 2154 "../../../server-code/src/char/char.c"
- ;
-
-
- chr->set_char_charselect(sd->account_id);
-
-
-}
-
-void char_ping_login_server(int fd)
-{
- WFIFOHEAD(fd,2);
- WFIFOW(fd,0) = 0x2719;
- WFIFOSET(fd,2);
-}
-
-int char_parse_fromlogin_connection_state(int fd)
-{
- if (RFIFOB(fd,2)) {
-
- (showmsg->showError(("Can not connect to login-server.\n")));
- (showmsg->showError(("The server communication passwords (default s1/p1) are probably invalid.\n")));
- (showmsg->showError(("Also, please make sure your login db has the correct communication username/passwords and the gender of the account is S.\n")));
- (showmsg->showError(("The communication passwords are set in /conf/map-server.conf and /conf/char-server.conf\n")));
- sockt->eof(fd);
- return 1;
- } else {
- (showmsg->showStatus(("Connected to login-server (connection #%d).\n"), fd));
- loginif->on_ready();
- }
- RFIFOSKIP(fd,3);
- return 0;
-}
-
-
-
-void char_auth_error(int fd, unsigned char flag)
-{
- WFIFOHEAD(fd,3);
- WFIFOW(fd,0) = 0x6c;
- WFIFOB(fd,2) = flag;
- WFIFOSET(fd,3);
-}
-
-void char_parse_fromlogin_auth_state(int fd)
-{
- struct char_session_data* sd =
-# 2199 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 2199 "../../../server-code/src/char/char.c"
- ;
- int 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 version = RFIFOL(fd,20);
- uint8 clienttype = RFIFOB(fd,24);
- int group_id = RFIFOL(fd,25);
- unsigned int expiration_time = RFIFOL(fd, 29);
- RFIFOSKIP(fd,33);
-
- if (sockt->session_is_active(request_id) && (sd=(struct char_session_data*)sockt->session[request_id]->session_data) &&
- !sd->auth && sd->account_id == account_id && sd->login_id1 == login_id1 && sd->login_id2 == login_id2 && sd->sex == sex )
- {
- int client_fd = request_id;
- sd->version = version;
- sd->clienttype = clienttype;
- switch( result ) {
- case 0:
-
- if( chr->server_type == CST_MAINTENANCE && group_id < char_maintenance_min_group_id ) {
- chr->auth_error(client_fd, 0);
- break;
- }
-
- if( chr->server_type == CST_PAYING && (time_t)expiration_time < time(
-# 2226 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 2226 "../../../server-code/src/char/char.c"
- ) ) {
- chr->auth_error(client_fd, 0);
- break;
- }
- chr->auth_ok(client_fd, sd);
- break;
- case 1:
- chr->auth_error(client_fd, 0);
- break;
- }
- }
-}
-
-void char_parse_fromlogin_account_data(int fd)
-{
- struct char_session_data* sd = (struct char_session_data*)sockt->session[fd]->session_data;
- int i;
-
- do { for ((i) = (0); (i) < (sockt->fd_max); ++(i)) if (sockt->session[i] && (sd = (struct char_session_data*)sockt->session[i]->session_data) && sd->auth && sd->account_id == RFIFOL(fd,2)) break; } while(
-# 2244 "../../../server-code/src/char/char.c" 3 4
-0
-# 2244 "../../../server-code/src/char/char.c"
-);
- if( i < sockt->fd_max ) {
- memcpy(sd->email, RFIFOP(fd,6), 40);
- sd->expiration_time = (time_t)RFIFOL(fd,46);
- sd->group_id = RFIFOB(fd,50);
- sd->char_slots = RFIFOB(fd,51);
- if( sd->char_slots > 9 ) {
- (showmsg->showError(("Account '%d' `character_slots` column is higher than supported MAX_CHARS (%d), update MAX_CHARS in mmo.h! capping to MAX_CHARS...\n"),sd->account_id,sd->char_slots));
- sd->char_slots = 9;
- } else if ( sd->char_slots <= 0 )
- sd->char_slots = 9;
- (strlib->safestrncpy_((sd->birthdate),(RFIFOP(fd,52)),(sizeof(sd->birthdate))));
- (strlib->safestrncpy_((sd->pincode),(RFIFOP(fd,63)),(sizeof(sd->pincode))));
- sd->pincode_change = RFIFOL(fd,68);
-
- if( (max_connect_user == 0 && sd->group_id != gm_allow_group) ||
- ( max_connect_user > 0 && chr->count_users() >= max_connect_user && sd->group_id != gm_allow_group ) ) {
-
- chr->auth_error(i, 0);
- } else {
-
-
- chr->mmo_char_send_slots_info(i, sd);
- chr->mmo_char_send_characters(i, sd);
-
-
-
-
- chr->mmo_char_send_ban_list(i, sd);
-
-
- pincode->handle(i, sd);
-
- }
- }
- RFIFOSKIP(fd,72);
-}
-
-void char_parse_fromlogin_login_pong(int fd)
-{
- RFIFOSKIP(fd,2);
- if (sockt->session[fd])
- sockt->session[fd]->flag.ping = 0;
-}
-
-void char_changesex(int account_id, int sex)
-{
- unsigned char buf[7];
-
- WBUFW(buf,0) = 0x2b0d;
- WBUFL(buf,2) = account_id;
- WBUFB(buf,6) = sex;
- mapif->sendall(buf, 7);
-}
-# 2310 "../../../server-code/src/char/char.c"
-void char_change_sex_sub(int sex, int acc, int char_id, int class_, int guild_id)
-{
-
- if (class_ == JOB_BARD || class_ == JOB_DANCER)
- class_ = (sex == SEX_MALE ? JOB_BARD : JOB_DANCER);
- else if (class_ == JOB_CLOWN || class_ == JOB_GYPSY)
- class_ = (sex == SEX_MALE ? JOB_CLOWN : JOB_GYPSY);
- else if (class_ == JOB_BABY_BARD || class_ == JOB_BABY_DANCER)
- class_ = (sex == SEX_MALE ? JOB_BABY_BARD : JOB_BABY_DANCER);
- else if (class_ == JOB_MINSTREL || class_ == JOB_WANDERER)
- class_ = (sex == SEX_MALE ? JOB_MINSTREL : JOB_WANDERER);
- else if (class_ == JOB_MINSTREL_T || class_ == JOB_WANDERER_T)
- class_ = (sex == SEX_MALE ? JOB_MINSTREL_T : JOB_WANDERER_T);
- else if (class_ == JOB_BABY_MINSTREL || class_ == JOB_BABY_WANDERER)
- class_ = (sex == SEX_MALE ? JOB_BABY_MINSTREL : JOB_BABY_WANDERER);
- else if (class_ == JOB_KAGEROU || class_ == JOB_OBORO)
- class_ = (sex == SEX_MALE ? JOB_KAGEROU : JOB_OBORO);
-
- if ((-1) == SQL->Query(inter->sql_handle, "UPDATE `%s` SET `equip`='0' WHERE `char_id`='%d'", inventory_db, char_id))
- (SQL->ShowDebug_((inter->sql_handle), "../../../server-code/src/char/char.c", 2329));
-
- if ((-1) == SQL->Query(inter->sql_handle, "UPDATE `%s` SET `class`='%d', `weapon`='0', `shield`='0', "
- "`head_top`='0', `head_mid`='0', `head_bottom`='0' WHERE `char_id`='%d'",
- char_db, class_, char_id))
- (SQL->ShowDebug_((inter->sql_handle), "../../../server-code/src/char/char.c", 2334));
- if (guild_id)
- inter_guild->sex_changed(guild_id, acc, char_id, sex);
-}
-
-int char_parse_fromlogin_changesex_reply(int fd)
-{
- int char_id = 0, class_ = 0, guild_id = 0;
- int i;
- struct char_auth_node *node;
- struct SqlStmt *stmt;
-
- int acc = RFIFOL(fd,2);
- int sex = RFIFOB(fd,6);
-
- RFIFOSKIP(fd,7);
-
-
- if (acc <= 0) {
- (showmsg->showError(("Received invalid account id from login server! (aid: %d)\n"), acc));
- return 1;
- }
-
- node = (struct char_auth_node*)( DB->data2ptr((auth_db)->get((auth_db),DB->i2key(acc))) );
- if (node !=
-# 2358 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 2358 "../../../server-code/src/char/char.c"
- )
- node->sex = sex;
-
-
- stmt = SQL->StmtMalloc(inter->sql_handle);
- if ((-1) == SQL->StmtPrepare(stmt, "SELECT `char_id`,`class`,`guild_id` FROM `%s` WHERE `account_id` = '%d'", char_db, acc)
- || (-1) == SQL->StmtExecute(stmt)
- ) {
- (SQL->StmtShowDebug_((stmt), "../../../server-code/src/char/char.c", 2366));
- SQL->StmtFree(stmt);
- }
- SQL->StmtBindColumn(stmt, 0, SQLDT_INT, &char_id, 0,
-# 2369 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 2369 "../../../server-code/src/char/char.c"
- ,
-# 2369 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 2369 "../../../server-code/src/char/char.c"
- );
- SQL->StmtBindColumn(stmt, 1, SQLDT_INT, &class_, 0,
-# 2370 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 2370 "../../../server-code/src/char/char.c"
- ,
-# 2370 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 2370 "../../../server-code/src/char/char.c"
- );
- SQL->StmtBindColumn(stmt, 2, SQLDT_INT, &guild_id, 0,
-# 2371 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 2371 "../../../server-code/src/char/char.c"
- ,
-# 2371 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 2371 "../../../server-code/src/char/char.c"
- );
-
- for (i = 0; i < 9 && 0 == SQL->StmtNextRow(stmt); ++i) {
- char_change_sex_sub(sex, acc, char_id, class_, guild_id);
- }
- SQL->StmtFree(stmt);
-
-
- chr->disconnect_player(acc);
-
-
- chr->changesex(acc, sex);
- return 0;
-}
-
-void char_parse_fromlogin_account_reg2(int fd)
-{
-
- mapif->sendall(RFIFOP(fd, 0), RFIFOW(fd,2));
- RFIFOSKIP(fd, RFIFOW(fd,2));
-}
-
-void mapif_ban(int id, unsigned int flag, int status)
-{
-
- unsigned char buf[11];
- WBUFW(buf,0) = 0x2b14;
- WBUFL(buf,2) = id;
- WBUFB(buf,6) = flag;
- WBUFL(buf,7) = status;
- mapif->sendall(buf, 11);
-}
-
-void char_parse_fromlogin_ban(int fd)
-{
- mapif->ban(RFIFOL(fd,2), RFIFOB(fd,6), RFIFOL(fd,7));
-
- chr->disconnect_player(RFIFOL(fd,2));
- RFIFOSKIP(fd,11);
-}
-
-void char_parse_fromlogin_kick(int fd)
-{
- int aid = RFIFOL(fd,2);
- struct online_char_data* character = (struct online_char_data*)( DB->data2ptr((chr->online_char_db)->get((chr->online_char_db),DB->i2key(aid))) );
- RFIFOSKIP(fd,6);
- if( character !=
-# 2417 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 2417 "../../../server-code/src/char/char.c"
- )
- {
- if( character->server > -1 ) {
-
- mapif->disconnectplayer(chr->server[character->server].fd, character->account_id, character->char_id, 2);
- if (character->waiting_disconnect == (-1))
- character->waiting_disconnect = timer->add(timer->gettick()+30000, chr->waiting_disconnect, character->account_id, 0);
- }
- else
- {
- struct char_session_data *tsd;
- int i;
- do { for ((i) = (0); (i) < (sockt->fd_max); ++(i)) if (sockt->session[i] && (tsd = (struct char_session_data*)sockt->session[i]->session_data) && tsd->account_id == aid) break; } while(
-# 2429 "../../../server-code/src/char/char.c" 3 4
- 0
-# 2429 "../../../server-code/src/char/char.c"
- );
- if( i < sockt->fd_max )
- {
- chr->authfail_fd(i, 2);
- sockt->eof(i);
- }
- else
- chr->set_char_offline(-1, aid);
- }
- }
- ( (auth_db)->remove((auth_db),DB->i2key(aid),
-# 2439 "../../../server-code/src/char/char.c" 3 4
-((void *)0)
-# 2439 "../../../server-code/src/char/char.c"
-) );
-}
-
-void char_update_ip(int fd)
-{
- WFIFOHEAD(fd,6);
- WFIFOW(fd,0) = 0x2736;
- WFIFOL(fd,2) = htonl(chr->ip);
- WFIFOSET(fd,6);
-}
-
-void char_parse_fromlogin_update_ip(int fd)
-{
- unsigned char buf[2];
- uint32 new_ip = 0;
-
- WBUFW(buf,0) = 0x2b1e;
- mapif->sendall(buf, 2);
-
- new_ip = sockt->host2ip(login_ip_str);
- if (new_ip && new_ip != login_ip)
- login_ip = new_ip;
-
- new_ip = sockt->host2ip(char_ip_str);
- if (new_ip && new_ip != chr->ip) {
-
- chr->ip = new_ip;
- (showmsg->showInfo(("Updating IP for [%s].\n"), char_ip_str));
-
- chr->update_ip(fd);
- }
- RFIFOSKIP(fd,2);
-}
-
-void char_parse_fromlogin_accinfo2_failed(int fd)
-{
- mapif->parse_accinfo2(
-# 2475 "../../../server-code/src/char/char.c" 3 4
- 0
-# 2475 "../../../server-code/src/char/char.c"
- , RFIFOL(fd,2), RFIFOL(fd,6), RFIFOL(fd,10), RFIFOL(fd,14),
-
-# 2476 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 2476 "../../../server-code/src/char/char.c"
- ,
-# 2476 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 2476 "../../../server-code/src/char/char.c"
- ,
-# 2476 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 2476 "../../../server-code/src/char/char.c"
- ,
-# 2476 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 2476 "../../../server-code/src/char/char.c"
- ,
-# 2476 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 2476 "../../../server-code/src/char/char.c"
- ,
-# 2476 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 2476 "../../../server-code/src/char/char.c"
- ,
-# 2476 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 2476 "../../../server-code/src/char/char.c"
- , -1, 0, 0);
- RFIFOSKIP(fd,18);
-}
-
-void char_parse_fromlogin_accinfo2_ok(int fd)
-{
- mapif->parse_accinfo2(
-# 2482 "../../../server-code/src/char/char.c" 3 4
- 1
-# 2482 "../../../server-code/src/char/char.c"
- , RFIFOL(fd,167), RFIFOL(fd,171), RFIFOL(fd,175), RFIFOL(fd,179),
- RFIFOP(fd,2), RFIFOP(fd,26), RFIFOP(fd,59), RFIFOP(fd,99), RFIFOP(fd,119),
- RFIFOP(fd,151), RFIFOP(fd,156), RFIFOL(fd,115), RFIFOL(fd,143), RFIFOL(fd,147));
- RFIFOSKIP(fd,183);
-}
-
-int char_parse_fromlogin(int fd) {
-
- if( fd != chr->login_fd ) {
- (showmsg->showDebug(("chr->parse_fromlogin: Disconnecting invalid session #%d (is not the login-server)\n"), fd));
- sockt->close(fd);
- return 0;
- }
-
- if( sockt->session[fd]->flag.eof ) {
- sockt->close(fd);
- chr->login_fd = -1;
- loginif->on_disconnect();
- return 0;
- } else if ( sockt->session[fd]->flag.ping ) {
- if( ((sockt->last_tick)-(sockt->session[fd]->rdata_tick)) > (sockt->stall_time * 2) ) {
- sockt->eof(fd);
- return 0;
- } else if( sockt->session[fd]->flag.ping != 2 ) {
- chr->ping_login_server(fd);
- sockt->session[fd]->flag.ping = 2;
- }
- }
-
- while (RFIFOREST(fd) >= 2) {
- uint16 command = RFIFOW(fd,0);
-
- if (( (HPM->packets[hpParse_FromLogin])._len_ ) > 0) {
- int result = HPM->parse_packets(fd,command,hpParse_FromLogin);
- if (result == 1)
- continue;
- if (result == 2)
- return 0;
- }
-
- switch (command) {
-
- case 0x2711:
- if (RFIFOREST(fd) < 3)
- return 0;
- if (chr->parse_fromlogin_connection_state(fd))
- return 0;
- break;
-
-
- case 0x2713:
- if (RFIFOREST(fd) < 33)
- return 0;
- {
- chr->parse_fromlogin_auth_state(fd);
- }
- break;
-
- case 0x2717:
- {
- if (RFIFOREST(fd) < 72)
- return 0;
- chr->parse_fromlogin_account_data(fd);
- }
- break;
-
-
- case 0x2718:
- if (RFIFOREST(fd) < 2)
- return 0;
- chr->parse_fromlogin_login_pong(fd);
- break;
-
-
- case 0x2723:
- if (RFIFOREST(fd) < 7)
- return 0;
- {
- if (chr->parse_fromlogin_changesex_reply(fd))
- return 0;
- }
- break;
-
-
- case 0x3804:
- if (RFIFOREST(fd) < 4 || RFIFOREST(fd) < RFIFOW(fd,2))
- return 0;
- chr->parse_fromlogin_account_reg2(fd);
- break;
-
-
- case 0x2731:
- if (RFIFOREST(fd) < 11)
- return 0;
- chr->parse_fromlogin_ban(fd);
- break;
-
-
- case 0x2734:
- if (RFIFOREST(fd) < 6)
- return 0;
- {
- chr->parse_fromlogin_kick(fd);
- }
- break;
-
-
- case 0x2735:
- {
- chr->parse_fromlogin_update_ip(fd);
- }
- break;
-
- case 0x2736:
- if (RFIFOREST(fd) < 18)
- return 0;
-
- chr->parse_fromlogin_accinfo2_failed(fd);
- break;
-
- case 0x2737:
- if (RFIFOREST(fd) < 183)
- return 0;
-
- chr->parse_fromlogin_accinfo2_ok(fd);
- break;
-
- default:
- (showmsg->showError(("Unknown packet 0x%04x received from login-server, disconnecting.\n"), command));
- sockt->eof(fd);
- return 0;
- }
- }
-
- RFIFOFLUSH(fd);
- return 0;
-}
-
-int char_request_accreg2(int account_id, int char_id)
-{
- if (chr->login_fd > 0) {
- WFIFOHEAD(chr->login_fd,10);
- WFIFOW(chr->login_fd,0) = 0x272e;
- WFIFOL(chr->login_fd,2) = account_id;
- WFIFOL(chr->login_fd,6) = char_id;
- WFIFOSET(chr->login_fd,10);
- return 1;
- }
- return 0;
-}
-
-
-
-
-void char_global_accreg_to_login_start (int account_id, int char_id) {
- WFIFOHEAD(chr->login_fd, 60000 + 300);
- WFIFOW(chr->login_fd,0) = 0x2728;
- WFIFOW(chr->login_fd,2) = 14;
- WFIFOL(chr->login_fd,4) = account_id;
- WFIFOL(chr->login_fd,8) = char_id;
- WFIFOW(chr->login_fd,12) = 0;
-}
-
-
-
-
-void char_global_accreg_to_login_send (void) {
- WFIFOSET(chr->login_fd, WFIFOW(chr->login_fd,2));
-}
-
-
-
-
-void char_global_accreg_to_login_add (const char *key, unsigned int index, intptr_t val,
-# 2655 "../../../server-code/src/char/char.c" 3 4
- _Bool
-# 2655 "../../../server-code/src/char/char.c"
- is_string) {
- int nlen = WFIFOW(chr->login_fd,2);
- size_t len = strlen(key)+1;
-
- WFIFOB(chr->login_fd, nlen) = (unsigned char)len;
- nlen += 1;
-
- (strlib->safestrncpy_((WFIFOP(chr->login_fd,nlen)),(key),(len)));
- nlen += len;
-
- WFIFOL(chr->login_fd, nlen) = index;
- nlen += 4;
-
- if( is_string ) {
- WFIFOB(chr->login_fd, nlen) = val ? 2 : 3;
- nlen += 1;
-
- if( val ) {
- char *sval = (char*)val;
- len = strlen(sval)+1;
-
- WFIFOB(chr->login_fd, nlen) = (unsigned char)len;
- nlen += 1;
-
- (strlib->safestrncpy_((WFIFOP(chr->login_fd,nlen)),(sval),(len)));
- nlen += len;
- }
- } else {
- WFIFOB(chr->login_fd, nlen) = val ? 0 : 1;
- nlen += 1;
-
- if( val ) {
- WFIFOL(chr->login_fd, nlen) = (int)val;
- nlen += 4;
- }
- }
-
- WFIFOW(chr->login_fd,12) += 1;
-
- WFIFOW(chr->login_fd,2) = nlen;
- if( WFIFOW(chr->login_fd,2) > 60000 ) {
- int account_id = WFIFOL(chr->login_fd,4), char_id = WFIFOL(chr->login_fd,8);
- chr->global_accreg_to_login_send();
- chr->global_accreg_to_login_start(account_id,char_id);
- }
-}
-
-void char_read_fame_list(void) {
- int i;
- char* data;
- size_t len;
-
-
- memset(smith_fame_list, 0, sizeof(smith_fame_list));
- memset(chemist_fame_list, 0, sizeof(chemist_fame_list));
- memset(taekwon_fame_list, 0, sizeof(taekwon_fame_list));
-
- if( (-1) == SQL->Query(inter->sql_handle, "SELECT `char_id`,`fame`,`name` FROM `%s` WHERE `fame`>0 AND (`class`='%d' OR `class`='%d' OR `class`='%d' OR `class`='%d' OR `class`='%d' OR `class`='%d') ORDER BY `fame` DESC LIMIT 0,%d", char_db, JOB_BLACKSMITH, JOB_WHITESMITH, JOB_BABY_BLACKSMITH, JOB_MECHANIC, JOB_MECHANIC_T, JOB_BABY_MECHANIC, fame_list_size_smith) )
- (SQL->ShowDebug_((inter->sql_handle), "../../../server-code/src/char/char.c", 2713));
- for( i = 0; i < fame_list_size_smith && 0 == SQL->NextRow(inter->sql_handle); ++i )
- {
-
- SQL->GetData(inter->sql_handle, 0, &data,
-# 2717 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 2717 "../../../server-code/src/char/char.c"
- );
- smith_fame_list[i].id = atoi(data);
-
- SQL->GetData(inter->sql_handle, 1, &data, &len);
- smith_fame_list[i].fame = atoi(data);
-
- SQL->GetData(inter->sql_handle, 2, &data, &len);
- memcpy(smith_fame_list[i].name, data, (((len) < ((23 + 1))) ? (len) : ((23 + 1))));
- }
-
- if( (-1) == SQL->Query(inter->sql_handle, "SELECT `char_id`,`fame`,`name` FROM `%s` WHERE `fame`>0 AND (`class`='%d' OR `class`='%d' OR `class`='%d' OR `class`='%d' OR `class`='%d' OR `class`='%d') ORDER BY `fame` DESC LIMIT 0,%d", char_db, JOB_ALCHEMIST, JOB_CREATOR, JOB_BABY_ALCHEMIST, JOB_GENETIC, JOB_GENETIC_T, JOB_BABY_GENETIC, fame_list_size_chemist) )
- (SQL->ShowDebug_((inter->sql_handle), "../../../server-code/src/char/char.c", 2728));
- for( i = 0; i < fame_list_size_chemist && 0 == SQL->NextRow(inter->sql_handle); ++i )
- {
-
- SQL->GetData(inter->sql_handle, 0, &data,
-# 2732 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 2732 "../../../server-code/src/char/char.c"
- );
- chemist_fame_list[i].id = atoi(data);
-
- SQL->GetData(inter->sql_handle, 1, &data, &len);
- chemist_fame_list[i].fame = atoi(data);
-
- SQL->GetData(inter->sql_handle, 2, &data, &len);
- memcpy(chemist_fame_list[i].name, data, (((len) < ((23 + 1))) ? (len) : ((23 + 1))));
- }
-
- if( (-1) == SQL->Query(inter->sql_handle, "SELECT `char_id`,`fame`,`name` FROM `%s` WHERE `fame`>0 AND (`class`='%d') ORDER BY `fame` DESC LIMIT 0,%d", char_db, JOB_TAEKWON, fame_list_size_taekwon) )
- (SQL->ShowDebug_((inter->sql_handle), "../../../server-code/src/char/char.c", 2743));
- for( i = 0; i < fame_list_size_taekwon && 0 == SQL->NextRow(inter->sql_handle); ++i )
- {
-
- SQL->GetData(inter->sql_handle, 0, &data,
-# 2747 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 2747 "../../../server-code/src/char/char.c"
- );
- taekwon_fame_list[i].id = atoi(data);
-
- SQL->GetData(inter->sql_handle, 1, &data, &len);
- taekwon_fame_list[i].fame = atoi(data);
-
- SQL->GetData(inter->sql_handle, 2, &data, &len);
- memcpy(taekwon_fame_list[i].name, data, (((len) < ((23 + 1))) ? (len) : ((23 + 1))));
- }
- SQL->FreeResult(inter->sql_handle);
-}
-
-
-int char_send_fame_list(int fd) {
- int i, len = 8;
- unsigned char buf[32000];
-
- WBUFW(buf,0) = 0x2b1b;
-
- for(i = 0; i < fame_list_size_smith && smith_fame_list[i].id; i++) {
- memcpy(WBUFP(buf, len), &smith_fame_list[i], sizeof(struct fame_list));
- len += sizeof(struct fame_list);
- }
-
- WBUFW(buf,6) = len;
-
- for(i = 0; i < fame_list_size_chemist && chemist_fame_list[i].id; i++) {
- memcpy(WBUFP(buf, len), &chemist_fame_list[i], sizeof(struct fame_list));
- len += sizeof(struct fame_list);
- }
-
- WBUFW(buf,4) = len;
-
- for(i = 0; i < fame_list_size_taekwon && taekwon_fame_list[i].id; i++) {
- memcpy(WBUFP(buf, len), &taekwon_fame_list[i], sizeof(struct fame_list));
- len += sizeof(struct fame_list);
- }
-
- WBUFW(buf,2) = len;
-
- if (fd != -1)
- mapif->send(fd, buf, len);
- else
- mapif->sendall(buf, len);
-
- return 0;
-}
-
-void char_update_fame_list(int type, int index, int fame) {
- unsigned char buf[8];
- WBUFW(buf,0) = 0x2b22;
- WBUFB(buf,2) = type;
- WBUFB(buf,3) = index;
- WBUFL(buf,4) = fame;
- mapif->sendall(buf, 8);
-}
-
-
-
-int char_loadName(int char_id, char* name)
-{
- char* data;
- size_t len;
-
- if( (-1) == SQL->Query(inter->sql_handle, "SELECT `name` FROM `%s` WHERE `char_id`='%d'", char_db, char_id) )
- (SQL->ShowDebug_((inter->sql_handle), "../../../server-code/src/char/char.c", 2812));
- else if( 0 == SQL->NextRow(inter->sql_handle) )
- {
- SQL->GetData(inter->sql_handle, 0, &data, &len);
- (strlib->safestrncpy_((name),(data),((23 + 1))));
- return 1;
- }
- else
- {
- (strlib->safestrncpy_((name),(unknown_char_name),((23 + 1))));
- }
- return 0;
-}
-
-
-void mapif_server_init(int id)
-{
-
- chr->server[id].fd = -1;
-}
-
-
-void mapif_server_destroy(int id)
-{
- if( chr->server[id].fd == -1 )
- {
- sockt->close(chr->server[id].fd);
- chr->server[id].fd = -1;
- }
-}
-
-
-
-void mapif_server_reset(int id)
-{
- int i,j;
- unsigned char buf[16384];
- int fd = chr->server[id].fd;
-
- WBUFW(buf,0) = 0x2b20;
- WBUFL(buf,4) = htonl(chr->server[id].ip);
- WBUFW(buf,8) = htons(chr->server[id].port);
- j = 0;
- for (i = 0; i < ( (chr->server[id].maps)._len_ ); i++) {
- uint16 m = ( ( (chr->server[id].maps)._data_ )[i] );
- if (m != 0)
- WBUFW(buf,10+(j++)*4) = m;
- }
- if (j > 0) {
- WBUFW(buf,2) = j * 4 + 10;
- mapif->sendallwos(fd, buf, WBUFW(buf,2));
- }
- if( (-1) == SQL->Query(inter->sql_handle, "DELETE FROM `%s` WHERE `index`='%d'", ragsrvinfo_db, chr->server[id].fd) )
- (SQL->ShowDebug_((inter->sql_handle), "../../../server-code/src/char/char.c", 2865));
- chr->online_char_db->foreach(chr->online_char_db,chr->db_setoffline,id);
- mapif->server_destroy(id);
- mapif->server_init(id);
-}
-
-
-void mapif_on_disconnect(int id)
-{
- (showmsg->showStatus(("Map-server #%d has disconnected.\n"), id));
- mapif->server_reset(id);
-}
-
-void mapif_on_parse_accinfo(int account_id, int u_fd, int u_aid, int u_group, int map_fd) {
- do { if (( (chr->login_fd > 0) ?
-# 2879 "../../../server-code/src/char/char.c" 3 4
-0
-# 2879 "../../../server-code/src/char/char.c"
-: (nullpo->assert_report("../../../server-code/src/char/char.c", 2879, __func__, "chr->login_fd > 0", "failed assertion"),
-# 2879 "../../../server-code/src/char/char.c" 3 4
-1
-# 2879 "../../../server-code/src/char/char.c"
-) )) return; } while(0);
- WFIFOHEAD(chr->login_fd,22);
- WFIFOW(chr->login_fd,0) = 0x2740;
- WFIFOL(chr->login_fd,2) = account_id;
- WFIFOL(chr->login_fd,6) = u_fd;
- WFIFOL(chr->login_fd,10) = u_aid;
- WFIFOL(chr->login_fd,14) = u_group;
- WFIFOL(chr->login_fd,18) = map_fd;
- WFIFOSET(chr->login_fd,22);
-}
-
-void char_parse_frommap_datasync(int fd)
-{
- sockt->datasync(fd,
-# 2892 "../../../server-code/src/char/char.c" 3 4
- 0
-# 2892 "../../../server-code/src/char/char.c"
- );
- RFIFOSKIP(fd,RFIFOW(fd,2));
-}
-
-void char_parse_frommap_skillid2idx(int fd)
-{
- int i;
- int j = RFIFOW(fd, 2) - 4;
-
- memset(&skillid2idx, 0, sizeof(skillid2idx));
- if( j )
- j /= 4;
- for(i = 0; i < j; i++) {
- if( RFIFOW(fd, 4 + (i*4)) > 10015 ) {
- (showmsg->showWarning(("Error skillid2dx[%d] = %d failed, %d is higher than MAX_SKILL_ID (%d)\n"),RFIFOW(fd, 4 + (i*4)), RFIFOW(fd, 6 + (i*4)),RFIFOW(fd, 4 + (i*4)),10015));
- continue;
- }
- skillid2idx[RFIFOW(fd, 4 + (i*4))] = RFIFOW(fd, 6 + (i*4));
- }
- RFIFOSKIP(fd, RFIFOW(fd, 2));
-}
-
-void char_map_received_ok(int fd)
-{
- WFIFOHEAD(fd, 3 + (23 + 1));
- WFIFOW(fd,0) = 0x2afb;
- WFIFOB(fd,2) = 0;
- memcpy(WFIFOP(fd,3), wisp_server_name, (23 + 1));
- WFIFOSET(fd,3+(23 + 1));
-}
-
-void char_send_maps(int fd, int id, int j)
-{
- int k,i;
-
- if (j == 0) {
- (showmsg->showWarning(("Map-server %d has NO maps.\n"), id));
- } else {
- unsigned char buf[16384];
-
- WBUFW(buf,0) = 0x2b04;
- WBUFW(buf,2) = j * 4 + 10;
- WBUFL(buf,4) = htonl(chr->server[id].ip);
- WBUFW(buf,8) = htons(chr->server[id].port);
- memcpy(WBUFP(buf,10), RFIFOP(fd,4), j * 4);
- mapif->sendallwos(fd, buf, WBUFW(buf,2));
- }
-
- for(k = 0; k < ( (int)(sizeof(chr->server)/sizeof((chr->server)[0])) ); k++) {
- if (chr->server[k].fd > 0 && k != id) {
- WFIFOHEAD(fd,10 + 4 * ( (chr->server[k].maps)._len_ ));
- WFIFOW(fd,0) = 0x2b04;
- WFIFOL(fd,4) = htonl(chr->server[k].ip);
- WFIFOW(fd,8) = htons(chr->server[k].port);
- j = 0;
- for(i = 0; i < ( (chr->server[k].maps)._len_ ); i++) {
- uint16 m = ( ( (chr->server[k].maps)._data_ )[i] );
- if (m != 0)
- WFIFOW(fd,10+(j++)*4) = m;
- }
- if (j > 0) {
- WFIFOW(fd,2) = j * 4 + 10;
- WFIFOSET(fd,WFIFOW(fd,2));
- }
- }
- }
-}
-
-void char_parse_frommap_map_names(int fd, int id)
-{
- int i;
-
- do { if (( (chr->server[id].maps)._max_ ) > 0) { (iMalloc->free((( (chr->server[id].maps)._data_ )),"../../../server-code/src/char/char.c", 2964, __func__)); ( (chr->server[id].maps)._data_ ) =
-# 2964 "../../../server-code/src/char/char.c" 3 4
-((void *)0)
-# 2964 "../../../server-code/src/char/char.c"
-; ( (chr->server[id].maps)._max_ ) = 0; ( (chr->server[id].maps)._len_ ) = 0; } } while(
-# 2964 "../../../server-code/src/char/char.c" 3 4
-0
-# 2964 "../../../server-code/src/char/char.c"
-);
- do { int _empty_ = ( (chr->server[id].maps)._max_ )-( (chr->server[id].maps)._len_ ); if (((RFIFOW(fd, 2) - 4) / 4) > _empty_) { while (((RFIFOW(fd, 2) - 4) / 4) > _empty_) _empty_ += (1); do { if ((_empty_+( (chr->server[id].maps)._len_ )) > ( (chr->server[id].maps)._max_ )) { if (( (chr->server[id].maps)._max_ ) == 0) ( (chr->server[id].maps)._data_ ) = (iMalloc->malloc(((_empty_+( (chr->server[id].maps)._len_ ))*sizeof(( ( ( (chr->server[id].maps)._data_ )[0] ) ))),"../../../server-code/src/char/char.c", 2965, __func__)); else ( (chr->server[id].maps)._data_ ) = (iMalloc->realloc((( (chr->server[id].maps)._data_ )),((_empty_+( (chr->server[id].maps)._len_ ))*sizeof(( ( ( (chr->server[id].maps)._data_ )[0] ) ))),"../../../server-code/src/char/char.c", 2965, __func__)); memset(( (chr->server[id].maps)._data_ )+( (chr->server[id].maps)._len_ ), 0, (( (chr->server[id].maps)._max_ )-( (chr->server[id].maps)._len_ ))*sizeof(( ( ( (chr->server[id].maps)._data_ )[0] ) ))); ( (chr->server[id].maps)._max_ ) = (_empty_+( (chr->server[id].maps)._len_ )); } else if ((_empty_+( (chr->server[id].maps)._len_ )) == 0 && ( (chr->server[id].maps)._max_ ) > 0) { (iMalloc->free((( (chr->server[id].maps)._data_ )),"../../../server-code/src/char/char.c", 2965, __func__)); ( (chr->server[id].maps)._data_ ) =
-# 2965 "../../../server-code/src/char/char.c" 3 4
-((void *)0)
-# 2965 "../../../server-code/src/char/char.c"
-; ( (chr->server[id].maps)._max_ ) = 0; ( (chr->server[id].maps)._len_ ) = 0; } else if ((_empty_+( (chr->server[id].maps)._len_ )) < ( (chr->server[id].maps)._max_ )) { ( (chr->server[id].maps)._data_ ) = (iMalloc->realloc((( (chr->server[id].maps)._data_ )),((_empty_+( (chr->server[id].maps)._len_ ))*sizeof(( ( ( (chr->server[id].maps)._data_ )[0] ) ))),"../../../server-code/src/char/char.c", 2965, __func__)); ( (chr->server[id].maps)._max_ ) = (_empty_+( (chr->server[id].maps)._len_ )); if ((_empty_+( (chr->server[id].maps)._len_ )) - ( (chr->server[id].maps)._len_ ) > 0) ( (chr->server[id].maps)._len_ ) = (_empty_+( (chr->server[id].maps)._len_ )); } } while(
-# 2965 "../../../server-code/src/char/char.c" 3 4
-0
-# 2965 "../../../server-code/src/char/char.c"
-); } } while(
-# 2965 "../../../server-code/src/char/char.c" 3 4
-0
-# 2965 "../../../server-code/src/char/char.c"
-);
- for (i = 4; i < RFIFOW(fd,2); i += 4) {
- do { ( ( (chr->server[id].maps)._data_ )[( (chr->server[id].maps)._len_ )] ) = (RFIFOW(fd,i)); ++( (chr->server[id].maps)._len_ ); }while(
-# 2967 "../../../server-code/src/char/char.c" 3 4
- 0
-# 2967 "../../../server-code/src/char/char.c"
- );
- }
-
- (showmsg->showStatus(("Map-Server %d connected: %d maps, from IP %u.%u.%u.%u port %d.\n"), id, (int)( (chr->server[id].maps)._len_ ), CONVIP(chr->server[id].ip), chr->server[id].port))
- ;
- (showmsg->showStatus(("Map-server %d loading complete.\n"), id));
-
-
- chr->map_received_ok(fd);
- chr->send_fame_list(fd);
- chr->send_maps(fd, id, (int)( (chr->server[id].maps)._len_ ));
- RFIFOSKIP(fd,RFIFOW(fd,2));
-}
-
-void char_send_scdata(int fd, int aid, int cid)
-{
-
- if( (-1) == SQL->Query(inter->sql_handle, "SELECT `type`, `tick`, `val1`, `val2`, `val3`, `val4` "
- "FROM `%s` WHERE `account_id` = '%d' AND `char_id`='%d'",
- scdata_db, aid, cid) )
- {
- (SQL->ShowDebug_((inter->sql_handle), "../../../server-code/src/char/char.c", 2988));
- return;
- }
- if( SQL->NumRows(inter->sql_handle) > 0 ) {
- struct status_change_data scdata;
- int count;
- char* data;
-
- memset(&scdata, 0, sizeof(scdata));
- WFIFOHEAD(fd,14+50*sizeof(struct status_change_data));
- WFIFOW(fd,0) = 0x2b1d;
- WFIFOL(fd,4) = aid;
- WFIFOL(fd,8) = cid;
- for( count = 0; count < 50 && 0 == SQL->NextRow(inter->sql_handle); ++count )
- {
- SQL->GetData(inter->sql_handle, 0, &data,
-# 3003 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 3003 "../../../server-code/src/char/char.c"
- ); scdata.type = atoi(data);
- SQL->GetData(inter->sql_handle, 1, &data,
-# 3004 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 3004 "../../../server-code/src/char/char.c"
- ); scdata.tick = atoi(data);
- SQL->GetData(inter->sql_handle, 2, &data,
-# 3005 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 3005 "../../../server-code/src/char/char.c"
- ); scdata.val1 = atoi(data);
- SQL->GetData(inter->sql_handle, 3, &data,
-# 3006 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 3006 "../../../server-code/src/char/char.c"
- ); scdata.val2 = atoi(data);
- SQL->GetData(inter->sql_handle, 4, &data,
-# 3007 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 3007 "../../../server-code/src/char/char.c"
- ); scdata.val3 = atoi(data);
- SQL->GetData(inter->sql_handle, 5, &data,
-# 3008 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 3008 "../../../server-code/src/char/char.c"
- ); scdata.val4 = atoi(data);
- memcpy(WFIFOP(fd, 14+count*sizeof(struct status_change_data)), &scdata, sizeof(struct status_change_data));
- }
- if (count >= 50)
- (showmsg->showWarning(("Too many status changes for %d:%d, some of them were not loaded.\n"), aid, cid));
- if (count > 0) {
- WFIFOW(fd,2) = 14 + count*sizeof(struct status_change_data);
- WFIFOW(fd,12) = count;
- WFIFOSET(fd,WFIFOW(fd,2));
-
-
- if( (-1) == SQL->Query(inter->sql_handle, "DELETE FROM `%s` WHERE `account_id` = '%d' AND `char_id`='%d'", scdata_db, aid, cid) )
- (SQL->ShowDebug_((inter->sql_handle), "../../../server-code/src/char/char.c", 3020));
- }
- } else {
- WFIFOHEAD(fd,14);
- WFIFOW(fd,0) = 0x2b1d;
- WFIFOW(fd,2) = 14;
- WFIFOL(fd,4) = aid;
- WFIFOL(fd,8) = cid;
- WFIFOW(fd,12) = 0;
- WFIFOSET(fd,WFIFOW(fd,2));
- }
- SQL->FreeResult(inter->sql_handle);
-
-}
-
-void char_parse_frommap_request_scdata(int fd)
-{
-
- int aid = RFIFOL(fd,2);
- int cid = RFIFOL(fd,6);
- chr->send_scdata(fd, aid, cid);
-
- RFIFOSKIP(fd, 10);
-}
-
-void char_parse_frommap_set_users_count(int fd, int id)
-{
- if (RFIFOW(fd,2) != chr->server[id].users) {
- chr->server[id].users = RFIFOW(fd,2);
- (showmsg->showInfo(("User Count: %d (Server: %d)\n"), chr->server[id].users, id));
- }
- RFIFOSKIP(fd, 4);
-}
-
-void char_parse_frommap_set_users(int fd, int id)
-{
-
- int i;
-
- chr->server[id].users = RFIFOW(fd,4);
- chr->online_char_db->foreach(chr->online_char_db,chr->db_setoffline,id);
- for(i = 0; i < chr->server[id].users; i++) {
- int aid = RFIFOL(fd,6+i*8);
- int cid = RFIFOL(fd,6+i*8+4);
- struct online_char_data *character = ( DB->data2ptr((chr->online_char_db)->ensure((chr->online_char_db),DB->i2key(aid),(chr->create_online_char_data))) );
- if (character->server > -1 && character->server != id) {
- (showmsg->showNotice(("Set map user: Character (%d:%d) marked on map server %d, but map server %d claims to have (%d:%d) online!\n"), character->account_id, character->char_id, character->server, id, aid, cid))
- ;
- mapif->disconnectplayer(chr->server[character->server].fd, character->account_id, character->char_id, 2);
- }
- character->server = id;
- character->char_id = cid;
- }
-
- RFIFOSKIP(fd,RFIFOW(fd,2));
-}
-
-void char_save_character_ack(int fd, int aid, int cid)
-{
- WFIFOHEAD(fd,10);
- WFIFOW(fd,0) = 0x2b21;
- WFIFOL(fd,2) = aid;
- WFIFOL(fd,6) = cid;
- WFIFOSET(fd,10);
-}
-
-void char_parse_frommap_save_character(int fd, int id)
-{
- int aid = RFIFOL(fd,4), cid = RFIFOL(fd,8), size = RFIFOW(fd,2);
- struct online_char_data* character;
-
- if (size - 13 != sizeof(struct mmo_charstatus)) {
- (showmsg->showError(("parse_from_map (save-char): Size mismatch! %d != %""z" "u""\n"), size-13, sizeof(struct mmo_charstatus)));
- RFIFOSKIP(fd,size);
- return;
- }
-
- if (RFIFOB(fd,12)
- || ( (character = (struct online_char_data*)( DB->data2ptr((chr->online_char_db)->get((chr->online_char_db),DB->i2key(aid))) )) !=
-# 3098 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-
-# 3099 "../../../server-code/src/char/char.c"
- && character->char_id == cid)
- ) {
- struct mmo_charstatus char_dat;
- memcpy(&char_dat, RFIFOP(fd,13), sizeof(struct mmo_charstatus));
- chr->mmo_char_tosql(cid, &char_dat);
- } else {
-
- (showmsg->showError(("parse_from_map (save-char): Received data for non-existing/offline character (%d:%d).\n"), aid, cid));
- chr->set_char_online(id, cid, aid);
- }
-
- if (RFIFOB(fd,12)) {
-
- chr->set_char_offline(cid, aid);
- chr->save_character_ack(fd, aid, cid);
- }
- RFIFOSKIP(fd,size);
-}
-
-
-
-void char_select_ack(int fd, int account_id, uint8 flag)
-{
- WFIFOHEAD(fd,7);
- WFIFOW(fd,0) = 0x2b03;
- WFIFOL(fd,2) = account_id;
- WFIFOB(fd,6) = flag;
- WFIFOSET(fd,7);
-}
-
-void char_parse_frommap_char_select_req(int fd)
-{
- int account_id = RFIFOL(fd,2);
- uint32 login_id1 = RFIFOL(fd,6);
- uint32 login_id2 = RFIFOL(fd,10);
- uint32 ip = RFIFOL(fd,14);
- int32 group_id = RFIFOL(fd, 18);
- RFIFOSKIP(fd,22);
-
- if( core->runflag != CHARSERVER_ST_RUNNING )
- {
- chr->select_ack(fd, account_id, 0);
- }
- else
- {
- struct char_auth_node* node;
-
-
- ((node) = (struct char_auth_node *) (iMalloc->calloc(((1)),(sizeof(struct char_auth_node)),"../../../server-code/src/char/char.c", 3147, __func__)));
- node->account_id = account_id;
- node->char_id = 0;
- node->login_id1 = login_id1;
- node->login_id2 = login_id2;
- node->group_id = group_id;
-
- node->ip = ntohl(ip);
-
-
-
- ( (auth_db)->put((auth_db),DB->i2key(account_id),DB->ptr2data(node),
-# 3158 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 3158 "../../../server-code/src/char/char.c"
- ) );
-
-
- chr->set_char_charselect(account_id);
- chr->select_ack(fd, account_id, 1);
- }
-}
-
-void char_change_map_server_ack(int fd, const uint8 *data,
-# 3166 "../../../server-code/src/char/char.c" 3 4
- _Bool
-# 3166 "../../../server-code/src/char/char.c"
- ok)
-{
- WFIFOHEAD(fd,30);
- WFIFOW(fd,0) = 0x2b06;
- memcpy(WFIFOP(fd,2), data, 28);
- if (!ok)
- WFIFOL(fd,6) = 0;
- WFIFOSET(fd,30);
-}
-
-void char_parse_frommap_change_map_server(int fd)
-{
- int map_id, map_fd = -1;
- struct mmo_charstatus* char_data;
-
- map_id = chr->search_mapserver(RFIFOW(fd,18), ntohl(RFIFOL(fd,24)), ntohs(RFIFOW(fd,28)));
- if (map_id >= 0)
- map_fd = chr->server[map_id].fd;
-
- char_data = (struct mmo_charstatus*)( DB->data2ptr((chr->char_db_)->get((chr->char_db_),DB->ui2key(RFIFOL(fd,14)))) );
- if (char_data ==
-# 3186 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 3186 "../../../server-code/src/char/char.c"
- ) {
-
- struct mmo_charstatus char_dat;
- chr->mmo_char_fromsql(RFIFOL(fd,14), &char_dat,
-# 3189 "../../../server-code/src/char/char.c" 3 4
- 1
-# 3189 "../../../server-code/src/char/char.c"
- );
- char_data = (struct mmo_charstatus*)( DB->data2ptr((chr->char_db_)->get((chr->char_db_),DB->ui2key(RFIFOL(fd,14)))) );
- }
-
- if (core->runflag == CHARSERVER_ST_RUNNING && sockt->session_is_active(map_fd) && char_data) {
-
- struct online_char_data* data;
- struct char_auth_node* node;
-
-
- char_data->last_point.map = RFIFOW(fd,18);
- char_data->last_point.x = RFIFOW(fd,20);
- char_data->last_point.y = RFIFOW(fd,22);
- char_data->sex = RFIFOB(fd,30);
-
-
- ((node) = (struct char_auth_node *) (iMalloc->calloc(((1)),(sizeof(struct char_auth_node)),"../../../server-code/src/char/char.c", 3205, __func__)));
- node->account_id = RFIFOL(fd,2);
- node->char_id = RFIFOL(fd,14);
- node->login_id1 = RFIFOL(fd,6);
- node->login_id2 = RFIFOL(fd,10);
- node->sex = RFIFOB(fd,30);
- node->expiration_time = 0;
- node->ip = ntohl(RFIFOL(fd,31));
- node->group_id = RFIFOL(fd,35);
- node->changing_mapservers = 1;
- ( (auth_db)->put((auth_db),DB->i2key(RFIFOL(fd,2)),DB->ptr2data(node),
-# 3215 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 3215 "../../../server-code/src/char/char.c"
- ) );
-
- data = ( DB->data2ptr((chr->online_char_db)->ensure((chr->online_char_db),DB->i2key(RFIFOL(fd,2)),(chr->create_online_char_data))) );
- data->char_id = char_data->char_id;
- data->server = map_id;
-
-
- chr->change_map_server_ack(fd, RFIFOP(fd,2),
-# 3222 "../../../server-code/src/char/char.c" 3 4
- 1
-# 3222 "../../../server-code/src/char/char.c"
- );
- } else {
- chr->change_map_server_ack(fd, RFIFOP(fd,2),
-# 3224 "../../../server-code/src/char/char.c" 3 4
- 0
-# 3224 "../../../server-code/src/char/char.c"
- );
- }
- RFIFOSKIP(fd,39);
-}
-
-void char_parse_frommap_remove_friend(int fd)
-{
- int char_id = RFIFOL(fd,2);
- int friend_id = RFIFOL(fd,6);
- if( (-1) == SQL->Query(inter->sql_handle, "DELETE FROM `%s` WHERE `char_id`='%d' AND `friend_id`='%d' LIMIT 1",
- friend_db, char_id, friend_id) ) {
- (SQL->ShowDebug_((inter->sql_handle), "../../../server-code/src/char/char.c", 3235));
- }
- RFIFOSKIP(fd,10);
-}
-
-void char_char_name_ack(int fd, int char_id)
-{
- WFIFOHEAD(fd,30);
- WFIFOW(fd,0) = 0x2b09;
- WFIFOL(fd,2) = char_id;
- chr->loadName(char_id, WFIFOP(fd,6));
- WFIFOSET(fd,30);
-}
-
-void char_parse_frommap_char_name_request(int fd)
-{
- chr->char_name_ack(fd, RFIFOL(fd,2));
- RFIFOSKIP(fd,6);
-}
-
-void char_parse_frommap_change_email(int fd)
-{
- if (chr->login_fd > 0) {
- WFIFOHEAD(chr->login_fd,86);
- memcpy(WFIFOP(chr->login_fd,0), RFIFOP(fd,0),86);
- WFIFOW(chr->login_fd,0) = 0x2722;
- WFIFOSET(chr->login_fd,86);
- }
- RFIFOSKIP(fd, 86);
-}
-
-void mapif_char_ban(int char_id, time_t timestamp)
-{
- unsigned char buf[11];
- WBUFW(buf,0) = 0x2b14;
- WBUFL(buf,2) = char_id;
- WBUFB(buf,6) = 2;
- WBUFL(buf,7) = (unsigned int)timestamp;
- mapif->sendall(buf, 11);
-}
-
-void char_ban(int account_id, int char_id, time_t *unban_time, short year, short month, short day, short hour, short minute, short second)
-{
- time_t timestamp;
- struct tm *tmtime;
- struct SqlStmt *stmt = SQL->StmtMalloc(inter->sql_handle);
-
- do { if (((void)(unban_time),
-# 3282 "../../../server-code/src/char/char.c" 3 4
-0
-# 3282 "../../../server-code/src/char/char.c"
-)) return; } while(0);
-
- if (*unban_time == 0 || *unban_time < time(
-# 3284 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 3284 "../../../server-code/src/char/char.c"
- ))
- timestamp = time(
-# 3285 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 3285 "../../../server-code/src/char/char.c"
- );
- else
- timestamp = *unban_time;
-
- tmtime = localtime(&timestamp);
- tmtime->tm_year = tmtime->tm_year + year;
- tmtime->tm_mon = tmtime->tm_mon + month;
- tmtime->tm_mday = tmtime->tm_mday + day;
- tmtime->tm_hour = tmtime->tm_hour + hour;
- tmtime->tm_min = tmtime->tm_min + minute;
- tmtime->tm_sec = tmtime->tm_sec + second;
- timestamp = mktime(tmtime);
-
- if( 0 != SQL->StmtPrepare(stmt,
- "UPDATE `%s` SET `unban_time` = ? WHERE `char_id` = ? LIMIT 1",
- char_db)
- || 0 != SQL->StmtBindParam(stmt, 0, SQLDT_LONG, &timestamp, sizeof(timestamp))
- || 0 != SQL->StmtBindParam(stmt, 1, SQLDT_INT, &char_id, sizeof(char_id))
- || 0 != SQL->StmtExecute(stmt)
- ) {
- (SQL->StmtShowDebug_((stmt), "../../../server-code/src/char/char.c", 3305));
- }
-
- SQL->StmtFree(stmt);
-
-
- if( timestamp > time(
-# 3311 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 3311 "../../../server-code/src/char/char.c"
- ) ) {
- mapif->char_ban(char_id, timestamp);
-
- chr->disconnect_player(account_id);
- }
-}
-
-void char_unban(int char_id, int *result)
-{
-
- if( (-1) == SQL->Query(inter->sql_handle, "UPDATE `%s` SET `unban_time` = '0' WHERE `char_id` = '%d' LIMIT 1", char_db, char_id) ) {
- (SQL->ShowDebug_((inter->sql_handle), "../../../server-code/src/char/char.c", 3322));
- if (result)
- *result = 1;
- }
-}
-
-void char_ask_name_ack(int fd, int acc, const char* name, int type, int result)
-{
- do { if (((void)(name),
-# 3330 "../../../server-code/src/char/char.c" 3 4
-0
-# 3330 "../../../server-code/src/char/char.c"
-)) return; } while(0);
- WFIFOHEAD(fd,34);
- WFIFOW(fd,0) = 0x2b0f;
- WFIFOL(fd, 2) = acc;
- (strlib->safestrncpy_((WFIFOP(fd,6)),(name),((23 + 1))));
- WFIFOW(fd,30) = type;
- WFIFOW(fd,32) = result;
- WFIFOSET(fd,34);
-}
-# 3350 "../../../server-code/src/char/char.c"
-int char_changecharsex(int char_id, int sex)
-{
- int class_ = 0, guild_id = 0, account_id = 0;
- char *data;
-
-
- if ((-1) == SQL->Query(inter->sql_handle, "SELECT `account_id`,`class`,`guild_id` FROM `%s` WHERE `char_id` = '%d'", char_db, char_id)) {
- (SQL->ShowDebug_((inter->sql_handle), "../../../server-code/src/char/char.c", 3357));
- return 1;
- }
- if (SQL->NumRows(inter->sql_handle) != 1 || (-1) == SQL->NextRow(inter->sql_handle)) {
- SQL->FreeResult(inter->sql_handle);
- return 1;
- }
- SQL->GetData(inter->sql_handle, 0, &data,
-# 3364 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 3364 "../../../server-code/src/char/char.c"
- ); account_id = atoi(data);
- SQL->GetData(inter->sql_handle, 1, &data,
-# 3365 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 3365 "../../../server-code/src/char/char.c"
- ); class_ = atoi(data);
- SQL->GetData(inter->sql_handle, 2, &data,
-# 3366 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 3366 "../../../server-code/src/char/char.c"
- ); guild_id = atoi(data);
- SQL->FreeResult(inter->sql_handle);
-
- if ((-1) == SQL->Query(inter->sql_handle, "UPDATE `%s` SET `sex` = '%c' WHERE `char_id` = '%d'", char_db, sex == SEX_MALE ? 'M' : 'F', char_id)) {
- (SQL->ShowDebug_((inter->sql_handle), "../../../server-code/src/char/char.c", 3370));
- return 1;
- }
- char_change_sex_sub(sex, account_id, char_id, class_, guild_id);
-
-
- chr->disconnect_player(account_id);
-
-
- chr->changesex(account_id, sex);
- return 0;
-}
-
-void char_parse_frommap_change_account(int fd)
-{
- int result = 0;
- char esc_name[(23 + 1)*2+1];
-
- int acc = RFIFOL(fd,2);
- const char *name = RFIFOP(fd,6);
- int type = RFIFOW(fd,30);
- short year = 0, month = 0, day = 0, hour = 0, minute = 0, second = 0;
- int sex = SEX_MALE;
- if (type == 2 || type == 6) {
- year = RFIFOW(fd,32);
- month = RFIFOW(fd,34);
- day = RFIFOW(fd,36);
- hour = RFIFOW(fd,38);
- minute = RFIFOW(fd,40);
- second = RFIFOW(fd,42);
- } else if (type == 8) {
- sex = RFIFOB(fd, 32);
- }
- RFIFOSKIP(fd,44);
-
- SQL->EscapeStringLen(inter->sql_handle, esc_name, name, (strlib->strnlen_((name),((23 + 1)))));
-
- if((-1) == SQL->Query(inter->sql_handle, "SELECT `account_id`,`char_id`,`unban_time` FROM `%s` WHERE `name` = '%s'", char_db, esc_name)) {
- (SQL->ShowDebug_((inter->sql_handle), "../../../server-code/src/char/char.c", 3408));
- } else if (SQL->NumRows(inter->sql_handle) == 0) {
- SQL->FreeResult(inter->sql_handle);
- result = 1;
- } else if (0 != SQL->NextRow(inter->sql_handle)) {
- (SQL->ShowDebug_((inter->sql_handle), "../../../server-code/src/char/char.c", 3413));
- SQL->FreeResult(inter->sql_handle);
- result = 1;
- } else {
- int account_id, char_id;
- char *data;
- time_t unban_time;
-
- SQL->GetData(inter->sql_handle, 0, &data,
-# 3421 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 3421 "../../../server-code/src/char/char.c"
- ); account_id = atoi(data);
- SQL->GetData(inter->sql_handle, 1, &data,
-# 3422 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 3422 "../../../server-code/src/char/char.c"
- ); char_id = atoi(data);
- SQL->GetData(inter->sql_handle, 2, &data,
-# 3423 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 3423 "../../../server-code/src/char/char.c"
- ); unban_time = atol(data);
- SQL->FreeResult(inter->sql_handle);
-
- if( chr->login_fd <= 0 ) {
- result = 3;
-
-
-
-
- } else {
- switch (type) {
- case CHAR_ASK_NAME_BLOCK:
- loginif->block_account(account_id, 5);
- break;
- case CHAR_ASK_NAME_BAN:
- loginif->ban_account(account_id, year, month, day, hour, minute, second);
- break;
- case CHAR_ASK_NAME_UNBLOCK:
- loginif->block_account(account_id, 0);
- break;
- case CHAR_ASK_NAME_UNBAN:
- loginif->unban_account(account_id);
- break;
- case CHAR_ASK_NAME_CHANGESEX:
- loginif->changesex(account_id);
- break;
- case CHAR_ASK_NAME_CHARBAN:
-
- chr->ban(account_id, char_id, &unban_time, year, month, day, hour, minute, second);
- break;
- case CHAR_ASK_NAME_CHARUNBAN:
- chr->unban(char_id, &result);
- break;
- case CHAR_ASK_NAME_CHANGECHARSEX:
- result = chr->changecharsex(char_id, sex);
- break;
- }
- }
- }
-
-
- if (acc != -1 && type != CHAR_ASK_NAME_CHANGESEX && type != CHAR_ASK_NAME_CHANGECHARSEX) {
- chr->ask_name_ack(fd, acc, name, type, result);
- }
-}
-
-void char_parse_frommap_fame_list(int fd)
-{
- int cid = RFIFOL(fd, 2);
- int fame = RFIFOL(fd, 6);
- char type = RFIFOB(fd, 10);
- int size;
- struct fame_list* list;
- int player_pos;
- int fame_pos;
-
- switch(type) {
- case RANKTYPE_BLACKSMITH: size = fame_list_size_smith; list = smith_fame_list; break;
- case RANKTYPE_ALCHEMIST: size = fame_list_size_chemist; list = chemist_fame_list; break;
- case RANKTYPE_TAEKWON: size = fame_list_size_taekwon; list = taekwon_fame_list; break;
- default: size = 0; list =
-# 3483 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 3483 "../../../server-code/src/char/char.c"
- ; break;
- }
-
- if (!list) {
- RFIFOSKIP(fd, 11);
- return;
- }
- do { for ((player_pos) = (0); (player_pos) < (size); ++(player_pos)) if (list[player_pos].id == cid) break; } while(
-# 3490 "../../../server-code/src/char/char.c" 3 4
-0
-# 3490 "../../../server-code/src/char/char.c"
-);
- do { for ((fame_pos) = (0); (fame_pos) < (size); ++(fame_pos)) if (list[fame_pos].fame <= fame) break; } while(
-# 3491 "../../../server-code/src/char/char.c" 3 4
-0
-# 3491 "../../../server-code/src/char/char.c"
-);
-
- if( player_pos == size && fame_pos == size )
- ;
- else if( fame_pos == player_pos ) {
-
- list[player_pos].fame = fame;
- chr->update_fame_list(type, player_pos, fame);
- } else {
-
- if( player_pos == size ) {
-
- do { if ((size - 1) != (fame_pos)) { struct fame_list _backup_; memmove(&_backup_, (list)+(size - 1), sizeof(struct fame_list)); if ((size - 1) < (fame_pos)) memmove((list)+(size - 1), (list)+(size - 1)+1, ((fame_pos)-(size - 1))*sizeof(struct fame_list)); else if ((size - 1) > (fame_pos)) memmove((list)+(fame_pos)+1, (list)+(fame_pos), ((size - 1)-(fame_pos))*sizeof(struct fame_list)); memmove((list)+(fame_pos), &_backup_, sizeof(struct fame_list)); } } while(
-# 3503 "../../../server-code/src/char/char.c" 3 4
- 0
-# 3503 "../../../server-code/src/char/char.c"
- );
- list[fame_pos].id = cid;
- list[fame_pos].fame = fame;
- chr->loadName(cid, list[fame_pos].name);
- } else {
-
- if( fame_pos == size )
- --fame_pos;
- do { if ((player_pos) != (fame_pos)) { struct fame_list _backup_; memmove(&_backup_, (list)+(player_pos), sizeof(struct fame_list)); if ((player_pos) < (fame_pos)) memmove((list)+(player_pos), (list)+(player_pos)+1, ((fame_pos)-(player_pos))*sizeof(struct fame_list)); else if ((player_pos) > (fame_pos)) memmove((list)+(fame_pos)+1, (list)+(fame_pos), ((player_pos)-(fame_pos))*sizeof(struct fame_list)); memmove((list)+(fame_pos), &_backup_, sizeof(struct fame_list)); } } while(
-# 3511 "../../../server-code/src/char/char.c" 3 4
- 0
-# 3511 "../../../server-code/src/char/char.c"
- );
- list[fame_pos].fame = fame;
- }
- chr->send_fame_list(-1);
- }
-
- RFIFOSKIP(fd,11);
-}
-
-void char_parse_frommap_divorce_char(int fd)
-{
- chr->divorce_char_sql(RFIFOL(fd,2), RFIFOL(fd,6));
- RFIFOSKIP(fd,10);
-}
-
-void char_parse_frommap_ragsrvinfo(int fd)
-{
- char esc_server_name[sizeof(chr->server_name)*2+1];
-
- SQL->EscapeString(inter->sql_handle, esc_server_name, chr->server_name);
-
- if( (-1) == SQL->Query(inter->sql_handle, "INSERT INTO `%s` SET `index`='%d',`name`='%s',`exp`='%u',`jexp`='%u',`drop`='%u'",
- ragsrvinfo_db, fd, esc_server_name, RFIFOL(fd,2), RFIFOL(fd,6), RFIFOL(fd,10)) )
- {
- (SQL->ShowDebug_((inter->sql_handle), "../../../server-code/src/char/char.c", 3535));
- }
- RFIFOSKIP(fd,14);
-}
-
-void char_parse_frommap_set_char_offline(int fd)
-{
- chr->set_char_offline(RFIFOL(fd,2),RFIFOL(fd,6));
- RFIFOSKIP(fd,10);
-}
-
-void char_parse_frommap_set_all_offline(int fd, int id)
-{
- chr->set_all_offline(id);
- RFIFOSKIP(fd,2);
-}
-
-void char_parse_frommap_set_char_online(int fd, int id)
-{
- chr->set_char_online(id, RFIFOL(fd,2),RFIFOL(fd,6));
- RFIFOSKIP(fd,10);
-}
-
-void char_parse_frommap_build_fame_list(int fd)
-{
- chr->read_fame_list();
- chr->send_fame_list(-1);
- RFIFOSKIP(fd,2);
-}
-
-void char_parse_frommap_save_status_change_data(int fd)
-{
-
- int aid = RFIFOL(fd, 4);
- int cid = RFIFOL(fd, 8);
- int count = RFIFOW(fd, 12);
-
-
- if( (-1) == SQL->Query(inter->sql_handle, "DELETE FROM `%s` WHERE `account_id` = '%d' AND `char_id`='%d'", scdata_db, aid, cid) )
- (SQL->ShowDebug_((inter->sql_handle), "../../../server-code/src/char/char.c", 3574));
-
- if( count > 0 )
- {
- struct status_change_data data;
- StringBuf buf;
- int i;
-
- StrBuf->Init(&buf);
- StrBuf->Printf(&buf, "INSERT INTO `%s` (`account_id`, `char_id`, `type`, `tick`, `val1`, `val2`, `val3`, `val4`) VALUES ", scdata_db);
- for( i = 0; i < count; ++i )
- {
- memcpy (&data, RFIFOP(fd, 14+i*sizeof(struct status_change_data)), sizeof(struct status_change_data));
- if( i > 0 )
- StrBuf->AppendStr(&buf, ", ");
- StrBuf->Printf(&buf, "('%d','%d','%hu','%d','%d','%d','%d','%d')", aid, cid,
- data.type, data.tick, data.val1, data.val2, data.val3, data.val4);
- }
- if( (-1) == SQL->QueryStr(inter->sql_handle, StrBuf->Value(&buf)) )
- (SQL->ShowDebug_((inter->sql_handle), "../../../server-code/src/char/char.c", 3593));
- StrBuf->Destroy(&buf);
- }
-
- RFIFOSKIP(fd, RFIFOW(fd, 2));
-}
-
-void char_send_pong(int fd)
-{
- WFIFOHEAD(fd,2);
- WFIFOW(fd,0) = 0x2b24;
- WFIFOSET(fd,2);
-}
-
-void char_parse_frommap_ping(int fd)
-{
- chr->send_pong(fd);
- RFIFOSKIP(fd,2);
-}
-
-void char_map_auth_ok(int fd, int account_id, struct char_auth_node* node, struct mmo_charstatus* cd)
-{
- do { if (((void)(cd),
-# 3615 "../../../server-code/src/char/char.c" 3 4
-0
-# 3615 "../../../server-code/src/char/char.c"
-)) return; } while(0);
- WFIFOHEAD(fd,25 + sizeof(struct mmo_charstatus));
- WFIFOW(fd,0) = 0x2afd;
- WFIFOW(fd,2) = 25 + sizeof(struct mmo_charstatus);
- WFIFOL(fd,4) = account_id;
- if (node)
- {
- WFIFOL(fd,8) = node->login_id1;
- WFIFOL(fd,12) = node->login_id2;
- WFIFOL(fd,16) = (uint32)node->expiration_time;
- WFIFOL(fd,20) = node->group_id;
- WFIFOB(fd,24) = node->changing_mapservers;
- }
- else
- {
- WFIFOL(fd,8) = 0;
- WFIFOL(fd,12) = 0;
- WFIFOL(fd,16) = 0;
- WFIFOL(fd,20) = 0;
- WFIFOB(fd,24) = 0;
- }
- memcpy(WFIFOP(fd,25), cd, sizeof(struct mmo_charstatus));
- WFIFOSET(fd, WFIFOW(fd,2));
-}
-
-void char_map_auth_failed(int fd, int account_id, int char_id, int login_id1, char sex, uint32 ip)
-{
- WFIFOHEAD(fd,19);
- WFIFOW(fd,0) = 0x2b27;
- WFIFOL(fd,2) = account_id;
- WFIFOL(fd,6) = char_id;
- WFIFOL(fd,10) = login_id1;
- WFIFOB(fd,14) = sex;
- WFIFOL(fd,15) = htonl(ip);
- WFIFOSET(fd,19);
-}
-
-void char_parse_frommap_auth_request(int fd, int id)
-{
- struct mmo_charstatus char_dat;
- struct char_auth_node* node;
- struct mmo_charstatus* cd;
-
- int account_id = RFIFOL(fd,2);
- int char_id = RFIFOL(fd,6);
- int login_id1 = RFIFOL(fd,10);
- char sex = RFIFOB(fd,14);
- uint32 ip = ntohl(RFIFOL(fd,15));
- char standalone = RFIFOB(fd, 19);
- RFIFOSKIP(fd,20);
-
- node = (struct char_auth_node*)( DB->data2ptr((auth_db)->get((auth_db),DB->i2key(account_id))) );
- cd = (struct mmo_charstatus*)( DB->data2ptr((chr->char_db_)->get((chr->char_db_),DB->ui2key(char_id))) );
-
- if( cd ==
-# 3669 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 3669 "../../../server-code/src/char/char.c"
- ) {
- chr->mmo_char_fromsql(char_id, &char_dat,
-# 3670 "../../../server-code/src/char/char.c" 3 4
- 1
-# 3670 "../../../server-code/src/char/char.c"
- );
- cd = (struct mmo_charstatus*)( DB->data2ptr((chr->char_db_)->get((chr->char_db_),DB->ui2key(char_id))) );
- }
-
- if( core->runflag == CHARSERVER_ST_RUNNING && cd && standalone ) {
- cd->sex = sex;
-
- chr->map_auth_ok(fd, account_id,
-# 3677 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 3677 "../../../server-code/src/char/char.c"
- , cd);
- chr->set_char_online(id, char_id, account_id);
- return;
- }
-
- if( core->runflag == CHARSERVER_ST_RUNNING &&
- cd !=
-# 3683 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 3683 "../../../server-code/src/char/char.c"
- &&
- node !=
-# 3684 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 3684 "../../../server-code/src/char/char.c"
- &&
- node->account_id == account_id &&
- node->char_id == char_id &&
- node->login_id1 == login_id1
-
- )
- {
- if( cd->sex == 99 )
- cd->sex = sex;
-
- chr->map_auth_ok(fd, account_id, node, cd);
-
- ( (auth_db)->remove((auth_db),DB->i2key(account_id),
-# 3696 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 3696 "../../../server-code/src/char/char.c"
- ) );
- chr->set_char_online(id, char_id, account_id);
- }
- else
- {
- chr->map_auth_failed(fd, account_id, char_id, login_id1, sex, ip);
- }
-}
-
-void char_parse_frommap_update_ip(int fd, int id)
-{
- chr->server[id].ip = ntohl(RFIFOL(fd, 2));
- (showmsg->showInfo(("Updated IP address of map-server #%d to %u.%u.%u.%u.\n"), id, CONVIP(chr->server[id].ip)));
- RFIFOSKIP(fd,6);
-}
-
-void char_parse_frommap_request_stats_report(int fd)
-{
- int sfd;
- struct hSockOpt opt;
- RFIFOSKIP(fd, 2);
-
- opt.silent = 1;
- opt.setTimeo = 1;
-
- if ((sfd = sockt->make_connection(sockt->host2ip("stats.herc.ws"),(uint16)25427,&opt) ) == -1) {
- RFIFOSKIP(fd, RFIFOW(fd,2) );
- RFIFOFLUSH(fd);
- return;
- }
-
- sockt->session[sfd]->flag.server = 1;
- sockt->realloc_fifo(sfd, FIFOSIZE_SERVERLINK, FIFOSIZE_SERVERLINK);
-
- WFIFOHEAD(sfd, RFIFOW(fd,2) );
-
- memcpy(WFIFOP(sfd,0), RFIFOP(fd, 0), RFIFOW(fd,2));
-
- WFIFOSET(sfd, RFIFOW(fd,2) );
-
- do {
- sockt->flush(sfd);
- sleep(1);
- } while( !sockt->session[sfd]->flag.eof && sockt->session[sfd]->wdata_size );
-
- sockt->close(sfd);
-
- RFIFOSKIP(fd, RFIFOW(fd,2) );
- RFIFOFLUSH(fd);
-}
-
-void char_parse_frommap_scdata_update(int fd)
-{
- int account_id = RFIFOL(fd, 2);
- int char_id = RFIFOL(fd, 6);
- int val1 = RFIFOL(fd, 12);
- int val2 = RFIFOL(fd, 16);
- int val3 = RFIFOL(fd, 20);
- int val4 = RFIFOL(fd, 24);
- short type = RFIFOW(fd, 10);
-
- if ((-1) == SQL->Query(inter->sql_handle, "REPLACE INTO `%s`"
- " (`account_id`,`char_id`,`type`,`tick`,`val1`,`val2`,`val3`,`val4`)"
- " VALUES ('%d','%d','%d','%d','%d','%d','%d','%d')",
- scdata_db, account_id, char_id, type, (-1), val1, val2, val3, val4)
- ) {
- (SQL->ShowDebug_((inter->sql_handle), "../../../server-code/src/char/char.c", 3762));
- }
- RFIFOSKIP(fd, 28);
-}
-
-void char_parse_frommap_scdata_delete(int fd)
-{
- int account_id = RFIFOL(fd, 2);
- int char_id = RFIFOL(fd, 6);
- short type = RFIFOW(fd, 10);
-
- if( (-1) == SQL->Query(inter->sql_handle, "DELETE FROM `%s` WHERE `account_id` = '%d' AND `char_id` = '%d' AND `type` = '%d' LIMIT 1",
- scdata_db, account_id, char_id, type) )
- {
- (SQL->ShowDebug_((inter->sql_handle), "../../../server-code/src/char/char.c", 3776));
- }
- RFIFOSKIP(fd, 12);
-}
-
-int char_parse_frommap(int fd)
-{
- int id;
-
- do { for ((id) = (0); (id) < (( (int)(sizeof(chr->server)/sizeof((chr->server)[0])) )); ++(id)) if (chr->server[id].fd == fd) break; } while(
-# 3785 "../../../server-code/src/char/char.c" 3 4
-0
-# 3785 "../../../server-code/src/char/char.c"
-);
- if( id == ( (int)(sizeof(chr->server)/sizeof((chr->server)[0])) ) ) {
- (showmsg->showDebug(("chr->parse_frommap: Disconnecting invalid session #%d (is not a map-server)\n"), fd));
- sockt->close(fd);
- return 0;
- }
- if( sockt->session[fd]->flag.eof ) {
- sockt->close(fd);
- chr->server[id].fd = -1;
- mapif->on_disconnect(id);
- return 0;
- }
-
- while (RFIFOREST(fd) >= 2) {
- int packet_id = RFIFOW(fd,0);
- if (( (HPM->packets[hpParse_FromMap])._len_ ) > 0) {
- int result = HPM->parse_packets(fd,packet_id,hpParse_FromMap);
- if (result == 1)
- continue;
- if (result == 2)
- return 0;
- }
-
- switch (packet_id) {
- case 0x2b0a:
- if( RFIFOREST(fd) < RFIFOW(fd, 2) )
- return 0;
- chr->parse_frommap_datasync(fd);
- break;
-
- case 0x2b0b:
- if( RFIFOREST(fd) < RFIFOW(fd, 2) )
- return 0;
- chr->parse_frommap_skillid2idx(fd);
- break;
- case 0x2afa:
- if (RFIFOREST(fd) < 4 || RFIFOREST(fd) < RFIFOW(fd,2))
- return 0;
- chr->parse_frommap_map_names(fd, id);
- break;
-
- case 0x2afc:
- if (RFIFOREST(fd) < 10)
- return 0;
- {
- chr->parse_frommap_request_scdata(fd);
- }
- break;
-
- case 0x2afe:
- if (RFIFOREST(fd) < 4)
- return 0;
- chr->parse_frommap_set_users_count(fd, id);
- break;
-
- case 0x2aff:
- if (RFIFOREST(fd) < 6 || RFIFOREST(fd) < RFIFOW(fd,2))
- return 0;
- {
- chr->parse_frommap_set_users(fd, id);
- }
- break;
-
- case 0x2b01:
- if (RFIFOREST(fd) < 4 || RFIFOREST(fd) < RFIFOW(fd,2))
- return 0;
- {
- chr->parse_frommap_save_character(fd, id);
-
- }
- break;
-
- case 0x2b02:
- if( RFIFOREST(fd) < 22 )
- return 0;
- {
- chr->parse_frommap_char_select_req(fd);
- }
- break;
-
- case 0x2b05:
- if (RFIFOREST(fd) < 39)
- return 0;
- {
- chr->parse_frommap_change_map_server(fd);
- }
- break;
-
- case 0x2b07:
- if (RFIFOREST(fd) < 10)
- return 0;
- {
- chr->parse_frommap_remove_friend(fd);
- }
- break;
-
- case 0x2b08:
- if (RFIFOREST(fd) < 6)
- return 0;
-
- chr->parse_frommap_char_name_request(fd);
- break;
-
- case 0x2b0c:
- if (RFIFOREST(fd) < 86)
- return 0;
- chr->parse_frommap_change_email(fd);
- break;
-
- case 0x2b0e:
- if (RFIFOREST(fd) < 44)
- return 0;
- {
- chr->parse_frommap_change_account(fd);
- }
- break;
-
- case 0x2b10:
- if (RFIFOREST(fd) < 11)
- return 0;
- {
- chr->parse_frommap_fame_list(fd);
- }
- break;
-
-
- case 0x2b11:
- if( RFIFOREST(fd) < 10 )
- return 0;
-
- chr->parse_frommap_divorce_char(fd);
- break;
-
- case 0x2b16:
- if( RFIFOREST(fd) < 14 )
- return 0;
- {
- chr->parse_frommap_ragsrvinfo(fd);
- }
- break;
-
- case 0x2b17:
- if (RFIFOREST(fd) < 6)
- return 0;
- chr->parse_frommap_set_char_offline(fd);
- break;
-
- case 0x2b18:
- chr->parse_frommap_set_all_offline(fd, id);
- break;
-
- case 0x2b19:
- if (RFIFOREST(fd) < 10)
- return 0;
- chr->parse_frommap_set_char_online(fd, id);
- break;
-
- case 0x2b1a:
- if (RFIFOREST(fd) < 2)
- return 0;
- chr->parse_frommap_build_fame_list(fd);
- break;
-
- case 0x2b1c:
- if (RFIFOREST(fd) < 4 || RFIFOREST(fd) < RFIFOW(fd,2))
- return 0;
- {
- chr->parse_frommap_save_status_change_data(fd);
- }
- break;
-
- case 0x2b23:
- chr->parse_frommap_ping(fd);
- break;
-
- case 0x2b26:
- if (RFIFOREST(fd) < 20)
- return 0;
-
- {
- chr->parse_frommap_auth_request(fd, id);
- }
- break;
-
- case 0x2736:
- if (RFIFOREST(fd) < 6) return 0;
- chr->parse_frommap_update_ip(fd, id);
- break;
-
- case 0x3008:
- if( RFIFOREST(fd) < RFIFOW(fd,4) )
- return 0;
- else {
- chr->parse_frommap_request_stats_report(fd);
- }
- break;
-
-
- case 0x2740:
- if( RFIFOREST(fd) < 28 )
- return 0;
- else {
- chr->parse_frommap_scdata_update(fd);
- }
- break;
-
-
- case 0x2741:
- if( RFIFOREST(fd) < 12 )
- return 0;
- else {
- chr->parse_frommap_scdata_delete(fd);
- }
- break;
-
- default:
- {
-
- int r = inter->parse_frommap(fd);
- if (r == 1) break;
- if (r == 2) return 0;
-
-
- (showmsg->showError(("Unknown packet 0x%04x from map server, disconnecting.\n"), RFIFOW(fd,0)));
- sockt->eof(fd);
- return 0;
- }
- }
- }
-
- return 0;
-}
-
-void do_init_mapif(void)
-{
- int i;
- for( i = 0; i < ( (int)(sizeof(chr->server)/sizeof((chr->server)[0])) ); ++i )
- mapif->server_init(i);
-}
-
-void do_final_mapif(void)
-{
- int i;
- for( i = 0; i < ( (int)(sizeof(chr->server)/sizeof((chr->server)[0])) ); ++i )
- mapif->server_destroy(i);
-}
-
-
-
-int char_search_mapserver(unsigned short map, uint32 ip, uint16 port)
-{
- int i, j;
-
- for(i = 0; i < ( (int)(sizeof(chr->server)/sizeof((chr->server)[0])) ); i++)
- {
- if (chr->server[i].fd > 0
- && (ip == (uint32)-1 || chr->server[i].ip == ip)
- && (port == (uint16)-1 || chr->server[i].port == port)
- ) {
- do { for ((j) = (0); (j) < (( (chr->server[i].maps)._len_ )); ++(j)) if (( ( (chr->server[i].maps)._data_ )[j] ) == map) break; } while(
-# 4044 "../../../server-code/src/char/char.c" 3 4
- 0
-# 4044 "../../../server-code/src/char/char.c"
- );
- if (j != ( (chr->server[i].maps)._len_ ))
- return i;
- }
- }
-
- return -1;
-}
-
-
-static int char_mapif_init(int fd)
-{
- return inter->mapif_init(fd);
-}
-# 4066 "../../../server-code/src/char/char.c"
-uint32 char_lan_subnet_check(uint32 ip)
-{
- struct s_subnet lan = {0};
- if (sockt->lan_subnet_check(ip, &lan)) {
- (showmsg->showInfo(("Subnet check [%u.%u.%u.%u]: Matches ""\033[1;36m""%u.%u.%u.%u/%u.%u.%u.%u""\033[0m""\n"), CONVIP(ip), CONVIP(lan.ip & lan.mask), CONVIP(lan.mask)));
- return lan.ip;
- }
- (showmsg->showInfo(("Subnet check [%u.%u.%u.%u]: ""\033[1;36m""WAN""\033[0m""\n"), CONVIP(ip)));
- return 0;
-}
-# 4086 "../../../server-code/src/char/char.c"
-void char_delete2_ack(int fd, int char_id, uint32 result, time_t delete_date)
-{
- WFIFOHEAD(fd,14);
- WFIFOW(fd,0) = 0x828;
- WFIFOL(fd,2) = char_id;
- WFIFOL(fd,6) = result;
-
- WFIFOL(fd,10) = (int)(delete_date - time(
-# 4093 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 4093 "../../../server-code/src/char/char.c"
- ));
-
-
-
-
- WFIFOSET(fd,14);
-}
-
-void char_delete2_accept_actual_ack(int fd, int char_id, uint32 result)
-{
- WFIFOHEAD(fd,10);
- WFIFOW(fd,0) = 0x82a;
- WFIFOL(fd,2) = char_id;
- WFIFOL(fd,6) = result;
- WFIFOSET(fd,10);
-}
-# 4118 "../../../server-code/src/char/char.c"
-void char_delete2_accept_ack(int fd, int char_id, uint32 result)
-{
-
- if( result == 1 ) {
- struct char_session_data* sd = (struct char_session_data*)sockt->session[fd]->session_data;
- chr->mmo_char_send099d(fd, sd);
- }
-
- chr->delete2_accept_actual_ack(fd, char_id, result);
-}
-
-
-
-
-
-void char_delete2_cancel_ack(int fd, int char_id, uint32 result)
-{
- WFIFOHEAD(fd,10);
- WFIFOW(fd,0) = 0x82c;
- WFIFOL(fd,2) = char_id;
- WFIFOL(fd,6) = result;
- WFIFOSET(fd,10);
-}
-
-static void char_delete2_req(int fd, struct char_session_data* sd)
-{
- int char_id, i;
- char* data;
- time_t delete_date;
-
- char_id = RFIFOL(fd,2);
- do { if (((void)(sd),
-# 4149 "../../../server-code/src/char/char.c" 3 4
-0
-# 4149 "../../../server-code/src/char/char.c"
-)) return; } while(0);
-
- do { for ((i) = (0); (i) < (9); ++(i)) if (sd->found_char[i] == char_id) break; } while(
-# 4151 "../../../server-code/src/char/char.c" 3 4
-0
-# 4151 "../../../server-code/src/char/char.c"
-);
- if( i == 9 )
- {
- chr->delete2_ack(fd, char_id, 3, 0);
- return;
- }
-
- if( 0 != SQL->Query(inter->sql_handle, "SELECT `delete_date` FROM `%s` WHERE `char_id`='%d'", char_db, char_id) || 0 != SQL->NextRow(inter->sql_handle) )
- {
- (SQL->ShowDebug_((inter->sql_handle), "../../../server-code/src/char/char.c", 4160));
- chr->delete2_ack(fd, char_id, 3, 0);
- return;
- }
-
- SQL->GetData(inter->sql_handle, 0, &data,
-# 4165 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 4165 "../../../server-code/src/char/char.c"
- ); delete_date = strtoul(data,
-# 4165 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 4165 "../../../server-code/src/char/char.c"
- , 10);
-
- if( delete_date ) {
- chr->delete2_ack(fd, char_id, 0, 0);
- return;
- }
-
-
-
-
- if (char_aegis_delete) {
- int party_id = 0, guild_id = 0;
- if( 0 != SQL->Query(inter->sql_handle, "SELECT `party_id`, `guild_id` FROM `%s` WHERE `char_id`='%d'", char_db, char_id)
- || 0 != SQL->NextRow(inter->sql_handle)
- ) {
- (SQL->ShowDebug_((inter->sql_handle), "../../../server-code/src/char/char.c", 4180));
- chr->delete2_ack(fd, char_id, 3, 0);
- return;
- }
- SQL->GetData(inter->sql_handle, 0, &data,
-# 4184 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 4184 "../../../server-code/src/char/char.c"
- ); party_id = atoi(data);
- SQL->GetData(inter->sql_handle, 1, &data,
-# 4185 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 4185 "../../../server-code/src/char/char.c"
- ); guild_id = atoi(data);
-
- if( guild_id )
- {
- chr->delete2_ack(fd, char_id, 4, 0);
- return;
- }
-
- if( party_id )
- {
- chr->delete2_ack(fd, char_id, 5, 0);
- return;
- }
- }
-
-
- delete_date = time(
-# 4201 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 4201 "../../../server-code/src/char/char.c"
- )+char_del_delay;
-
- if( 0 != SQL->Query(inter->sql_handle, "UPDATE `%s` SET `delete_date`='%lu' WHERE `char_id`='%d'", char_db, (unsigned long)delete_date, char_id) )
- {
- (SQL->ShowDebug_((inter->sql_handle), "../../../server-code/src/char/char.c", 4205));
- chr->delete2_ack(fd, char_id, 3, 0);
- return;
- }
-
- chr->delete2_ack(fd, char_id, 1, delete_date);
-}
-
-static void char_delete2_accept(int fd, struct char_session_data* sd)
-{
- char birthdate[8+1];
- int char_id, i;
- unsigned int base_level;
- char* data;
- time_t delete_date;
-
- do { if (((void)(sd),
-# 4221 "../../../server-code/src/char/char.c" 3 4
-0
-# 4221 "../../../server-code/src/char/char.c"
-)) return; } while(0);
- char_id = RFIFOL(fd,2);
-
- (showmsg->showInfo(("\033[1;31m""Request Char Deletion: ""\033[1;32m""%d (%d)""\033[0m""\n"), sd->account_id, char_id));
-
-
- birthdate[0] = RFIFOB(fd,6);
- birthdate[1] = RFIFOB(fd,7);
- birthdate[2] = '-';
- birthdate[3] = RFIFOB(fd,8);
- birthdate[4] = RFIFOB(fd,9);
- birthdate[5] = '-';
- birthdate[6] = RFIFOB(fd,10);
- birthdate[7] = RFIFOB(fd,11);
- birthdate[8] = 0;
-
- do { for ((i) = (0); (i) < (9); ++(i)) if (sd->found_char[i] == char_id) break; } while(
-# 4237 "../../../server-code/src/char/char.c" 3 4
-0
-# 4237 "../../../server-code/src/char/char.c"
-);
- if( i == 9 )
- {
- chr->delete2_accept_ack(fd, char_id, 3);
- return;
- }
-
- if( 0 != SQL->Query(inter->sql_handle, "SELECT `base_level`,`delete_date` FROM `%s` WHERE `char_id`='%d'", char_db, char_id) || 0 != SQL->NextRow(inter->sql_handle) )
- {
- (SQL->ShowDebug_((inter->sql_handle), "../../../server-code/src/char/char.c", 4246));
- chr->delete2_accept_ack(fd, char_id, 3);
- return;
- }
-
- SQL->GetData(inter->sql_handle, 0, &data,
-# 4251 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 4251 "../../../server-code/src/char/char.c"
- ); base_level = (unsigned int)strtoul(data,
-# 4251 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 4251 "../../../server-code/src/char/char.c"
- , 10);
- SQL->GetData(inter->sql_handle, 1, &data,
-# 4252 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 4252 "../../../server-code/src/char/char.c"
- ); delete_date = strtoul(data,
-# 4252 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 4252 "../../../server-code/src/char/char.c"
- , 10);
-
- if( !delete_date || delete_date>time(
-# 4254 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 4254 "../../../server-code/src/char/char.c"
- ) )
- {
- chr->delete2_accept_ack(fd, char_id, 4);
- return;
- }
-
- if( strcmp(sd->birthdate+2, birthdate) )
- {
- chr->delete2_accept_ack(fd, char_id, 5);
- return;
- }
-
- if( ( char_del_level > 0 && base_level >= (unsigned int)char_del_level ) || ( char_del_level < 0 && base_level <= (unsigned int)(-char_del_level) ) )
- {
- chr->delete2_accept_ack(fd, char_id, 2);
- return;
- }
-
-
- if( chr->delete_char_sql(char_id) < 0 )
- {
- chr->delete2_accept_ack(fd, char_id, 3);
- return;
- }
-
-
- sd->found_char[i] = -1;
-
- chr->delete2_accept_ack(fd, char_id, 1);
-}
-
-static void char_delete2_cancel(int fd, struct char_session_data* sd)
-{
- int char_id, i;
-
- do { if (((void)(sd),
-# 4289 "../../../server-code/src/char/char.c" 3 4
-0
-# 4289 "../../../server-code/src/char/char.c"
-)) return; } while(0);
- char_id = RFIFOL(fd,2);
-
- do { for ((i) = (0); (i) < (9); ++(i)) if (sd->found_char[i] == char_id) break; } while(
-# 4292 "../../../server-code/src/char/char.c" 3 4
-0
-# 4292 "../../../server-code/src/char/char.c"
-);
- if( i == 9 )
- {
- chr->delete2_cancel_ack(fd, char_id, 2);
- return;
- }
-
-
-
-
- if( 0 != SQL->Query(inter->sql_handle, "UPDATE `%s` SET `delete_date`='0' WHERE `char_id`='%d'", char_db, char_id) )
- {
- (SQL->ShowDebug_((inter->sql_handle), "../../../server-code/src/char/char.c", 4304));
- chr->delete2_cancel_ack(fd, char_id, 2);
- return;
- }
-
- chr->delete2_cancel_ack(fd, char_id, 1);
-}
-
-void char_send_account_id(int fd, int account_id)
-{
- WFIFOHEAD(fd,4);
- WFIFOL(fd,0) = account_id;
- WFIFOSET(fd,4);
-}
-
-void char_parse_char_connect(int fd, struct char_session_data* sd, uint32 ipl)
-{
- int account_id = RFIFOL(fd,2);
- uint32 login_id1 = RFIFOL(fd,6);
- uint32 login_id2 = RFIFOL(fd,10);
- int sex = RFIFOB(fd,16);
- struct char_auth_node* node;
-
- RFIFOSKIP(fd,17);
-
- (showmsg->showInfo(("request connect - account_id:%d/login_id1:%u/login_id2:%u\n"), account_id, login_id1, login_id2));
-
- if (sd) {
-
-
-
- return;
- }
-
- ((sockt->session[fd]->session_data) = (struct char_session_data *) (iMalloc->calloc(((1)),(sizeof(struct char_session_data)),"../../../server-code/src/char/char.c", 4338, __func__)));
- sd = (struct char_session_data*)sockt->session[fd]->session_data;
- sd->account_id = account_id;
- sd->login_id1 = login_id1;
- sd->login_id2 = login_id2;
- sd->sex = sex;
- sd->auth =
-# 4344 "../../../server-code/src/char/char.c" 3 4
- 0
-# 4344 "../../../server-code/src/char/char.c"
- ;
-
-
- chr->send_account_id(fd, account_id);
-
- if( core->runflag != CHARSERVER_ST_RUNNING ) {
- chr->auth_error(fd, 0);
- return;
- }
-
-
- node = (struct char_auth_node*)( DB->data2ptr((auth_db)->get((auth_db),DB->i2key(account_id))) );
- if( node !=
-# 4356 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 4356 "../../../server-code/src/char/char.c"
- &&
- node->account_id == account_id &&
- node->login_id1 == login_id1 &&
- node->login_id2 == login_id2
- )
- {
-
- if( chr->server_type == CST_MAINTENANCE && node->group_id < char_maintenance_min_group_id ) {
- chr->auth_error(fd, 0);
- return;
- }
-
- if( chr->server_type == CST_PAYING && (time_t)node->expiration_time < time(
-# 4368 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 4368 "../../../server-code/src/char/char.c"
- ) ) {
- chr->auth_error(fd, 0);
- return;
- }
- ( (auth_db)->remove((auth_db),DB->i2key(account_id),
-# 4372 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 4372 "../../../server-code/src/char/char.c"
- ) );
- chr->auth_ok(fd, sd);
- }
- else
- {
- if (chr->login_fd > 0) {
- loginif->auth(fd, sd, ipl);
- } else {
- chr->auth_error(fd, 0);
- }
- }
-}
-
-void char_send_map_info(int fd, int i, uint32 subnet_map_ip, struct mmo_charstatus *cd)
-{
- do { if (((void)(cd),
-# 4387 "../../../server-code/src/char/char.c" 3 4
-0
-# 4387 "../../../server-code/src/char/char.c"
-)) return; } while(0);
- WFIFOHEAD(fd,28);
- WFIFOW(fd,0) = 0x71;
- WFIFOL(fd,2) = cd->char_id;
- mapindex->getmapname_ext(mapindex->id2name((cd->last_point.map),"../../../server-code/src/char/char.c", 4391, __func__), WFIFOP(fd,6));
- WFIFOL(fd,22) = htonl((subnet_map_ip) ? subnet_map_ip : chr->server[i].ip);
- WFIFOW(fd,26) = sockt->ntows(htons(chr->server[i].port));
- WFIFOSET(fd,28);
-}
-
-void char_send_wait_char_server(int fd)
-{
- WFIFOHEAD(fd, 24);
- WFIFOW(fd,0) = 0x840;
- WFIFOW(fd,2) = 24;
- (strlib->safestrncpy_((WFIFOP(fd,4)),("0"),(20)));
- WFIFOSET(fd, 24);
-}
-
-int char_search_default_maps_mapserver(struct mmo_charstatus *cd)
-{
- int i;
- int j;
- do { if (((void)(cd),
-# 4410 "../../../server-code/src/char/char.c" 3 4
-0
-# 4410 "../../../server-code/src/char/char.c"
-)) return(-1); } while(0);
- if ((i = chr->search_mapserver((j=mapindex->name2id("prontera")),-1,-1)) >= 0) {
- cd->last_point.x = 273;
- cd->last_point.y = 354;
- } else if ((i = chr->search_mapserver((j=mapindex->name2id("geffen")),-1,-1)) >= 0) {
- cd->last_point.x = 120;
- cd->last_point.y = 100;
- } else if ((i = chr->search_mapserver((j=mapindex->name2id("morocc")),-1,-1)) >= 0) {
- cd->last_point.x = 160;
- cd->last_point.y = 94;
- } else if ((i = chr->search_mapserver((j=mapindex->name2id("alberta")),-1,-1)) >= 0) {
- cd->last_point.x = 116;
- cd->last_point.y = 57;
- } else if ((i = chr->search_mapserver((j=mapindex->name2id("payon")),-1,-1)) >= 0) {
- cd->last_point.x = 87;
- cd->last_point.y = 117;
- } else if ((i = chr->search_mapserver((j=mapindex->name2id("izlude")),-1,-1)) >= 0) {
- cd->last_point.x = 94;
- cd->last_point.y = 103;
- }
- if (i >= 0)
- {
- cd->last_point.map = j;
- (showmsg->showWarning(("Unable to find map-server for '%s', sending to major city '%s'.\n"), mapindex->id2name((cd->last_point.map),"../../../server-code/src/char/char.c", 4433, __func__), mapindex->id2name((j),"../../../server-code/src/char/char.c", 4433, __func__)));
- }
- return i;
-}
-
-void char_parse_char_select(int fd, struct char_session_data* sd, uint32 ipl) __attribute__((nonnull (2)));
-void char_parse_char_select(int fd, struct char_session_data* sd, uint32 ipl)
-{
- struct mmo_charstatus char_dat;
- struct mmo_charstatus *cd;
- struct char_auth_node* node;
- char* data;
- int char_id;
- int server_id = 0;
- int i;
- int map_fd;
- uint32 subnet_map_ip;
- int slot = RFIFOB(fd,2);
-
- RFIFOSKIP(fd,3);
-
-
- if( pincode->enabled ){
- struct online_char_data* character;
- character = (struct online_char_data*)( DB->data2ptr((chr->online_char_db)->get((chr->online_char_db),DB->i2key(sd->account_id))) );
- if( character && character->pincode_enable == -1){
- chr->auth_error(fd, 0);
- return;
- }
- }
-
-
- do { for ((server_id) = (0); (server_id) < (( (int)(sizeof(chr->server)/sizeof((chr->server)[0])) )); ++(server_id)) if (chr->server[server_id].fd > 0 && ( (chr->server[server_id].maps)._len_ ) > 0) break; } while(
-# 4465 "../../../server-code/src/char/char.c" 3 4
-0
-# 4465 "../../../server-code/src/char/char.c"
-);
-
-
- if( server_id == ( (int)(sizeof(chr->server)/sizeof((chr->server)[0])) ) ) {
- chr->send_wait_char_server(fd);
- return;
- }
-
- if (0 != SQL->Query(inter->sql_handle, "SELECT `char_id` FROM `%s` WHERE `account_id`='%d' AND `char_num`='%d'", char_db, sd->account_id, slot)
- || 0 != SQL->NextRow(inter->sql_handle)
- || 0 != SQL->GetData(inter->sql_handle, 0, &data,
-# 4475 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 4475 "../../../server-code/src/char/char.c"
- )
- ) {
-
- (SQL->ShowDebug_((inter->sql_handle), "../../../server-code/src/char/char.c", 4478));
- SQL->FreeResult(inter->sql_handle);
- chr->auth_error(fd, 0);
- return;
- }
-
- char_id = atoi(data);
- SQL->FreeResult(inter->sql_handle);
-
-
- if( sd->found_char[slot] == char_id && sd->unban_time[slot] > time(
-# 4488 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 4488 "../../../server-code/src/char/char.c"
- ) ) {
- chr->auth_error(fd, 0);
- return;
- }
-
-
- chr->set_char_online(-2,char_id,sd->account_id);
- if( !chr->mmo_char_fromsql(char_id, &char_dat,
-# 4495 "../../../server-code/src/char/char.c" 3 4
- 1
-# 4495 "../../../server-code/src/char/char.c"
- ) ) {
- chr->set_char_offline(char_id, sd->account_id);
-
- chr->auth_error(fd, 0);
- return;
- }
-
-
- cd = (struct mmo_charstatus *)( DB->data2ptr((chr->char_db_)->get((chr->char_db_),DB->i2key(char_id))) );
- do { if (((void)(cd),
-# 4504 "../../../server-code/src/char/char.c" 3 4
-0
-# 4504 "../../../server-code/src/char/char.c"
-)) return; } while(0);
- if( cd->sex == 99 )
- cd->sex = sd->sex;
-
- if (log_char) {
- char esc_name[(23 + 1)*2+1];
-
- SQL->EscapeStringLen(inter->sql_handle, esc_name, char_dat.name, (strlib->strnlen_((char_dat.name),((23 + 1)))));
- if( (-1) == SQL->Query(inter->sql_handle,
- "INSERT INTO `%s`(`time`, `account_id`, `char_id`, `char_num`, `name`) VALUES (NOW(), '%d', '%d', '%d', '%s')",
- charlog_db, sd->account_id, cd->char_id, slot, esc_name) )
- (SQL->ShowDebug_((inter->sql_handle), "../../../server-code/src/char/char.c", 4515));
- }
- (showmsg->showInfo(("Selected char: (Account %d: %d - %s)\n"), sd->account_id, slot, char_dat.name));
-
-
- i = chr->search_mapserver(cd->last_point.map, -1, -1);
-
-
- if (i < 0 || !cd->last_point.map) {
- unsigned short j;
-
- do { for ((j) = (0); (j) < (( (int)(sizeof(chr->server)/sizeof((chr->server)[0])) )); ++(j)) if (chr->server[j].fd >= 0 && ( (chr->server[j].maps)._len_ ) > 0) break; } while(
-# 4526 "../../../server-code/src/char/char.c" 3 4
- 0
-# 4526 "../../../server-code/src/char/char.c"
- );
- if (j == ( (int)(sizeof(chr->server)/sizeof((chr->server)[0])) )) {
- (showmsg->showInfo(("Connection Closed. No map servers available.\n")));
- chr->authfail_fd(fd, 1);
- return;
- }
- i = chr->search_default_maps_mapserver(cd);
- if (i < 0)
- {
- (showmsg->showInfo(("Connection Closed. No map server available that has a major city, and unable to find map-server for '%s'.\n"), mapindex->id2name((cd->last_point.map),"../../../server-code/src/char/char.c", 4535, __func__)));
- chr->authfail_fd(fd, 1);
- return;
- }
- }
-
-
-
- if ((map_fd = chr->server[i].fd) < 1 || sockt->session[map_fd] ==
-# 4543 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 4543 "../../../server-code/src/char/char.c"
- )
- {
- (showmsg->showError(("chr->parse_char: Attempting to write to invalid session %d! Map Server #%d disconnected.\n"), map_fd, i));
- chr->server[i].fd = -1;
- memset(&chr->server[i], 0, sizeof(struct mmo_map_server));
- chr->authfail_fd(fd, 1);
- return;
- }
-
- subnet_map_ip = chr->lan_subnet_check(ipl);
-
- chr->send_map_info(fd, i, subnet_map_ip, cd);
-
-
- ((node) = (struct char_auth_node *) (iMalloc->calloc(((1)),(sizeof(struct char_auth_node)),"../../../server-code/src/char/char.c", 4557, __func__)));
- node->account_id = sd->account_id;
- node->char_id = cd->char_id;
- node->login_id1 = sd->login_id1;
- node->login_id2 = sd->login_id2;
- node->sex = sd->sex;
- node->expiration_time = sd->expiration_time;
- node->group_id = sd->group_id;
- node->ip = ipl;
- ( (auth_db)->put((auth_db),DB->i2key(sd->account_id),DB->ptr2data(node),
-# 4566 "../../../server-code/src/char/char.c" 3 4
-((void *)0)
-# 4566 "../../../server-code/src/char/char.c"
-) );
-}
-
-void char_creation_failed(int fd, int result)
-{
- WFIFOHEAD(fd,3);
- WFIFOW(fd,0) = 0x6e;
-
-
-
-
- switch (result) {
- case -1: WFIFOB(fd,2) = 0x00; break;
- case -2: WFIFOB(fd,2) = 0xFF; break;
- case -3: WFIFOB(fd,2) = 0x01; break;
- case -4: WFIFOB(fd,2) = 0x03; break;
- case -5: WFIFOB(fd,2) = 0x02; break;
-
- default:
- (showmsg->showWarning(("chr->parse_char: Unknown result received from chr->make_new_char_sql!\n")));
- WFIFOB(fd,2) = 0xFF;
- break;
- }
- WFIFOSET(fd,3);
-}
-
-void char_creation_ok(int fd, struct mmo_charstatus *char_dat)
-{
- int len;
-
-
- WFIFOHEAD(fd,2+150);
- WFIFOW(fd,0) = 0x6d;
- len = 2 + chr->mmo_char_tobuf(WFIFOP(fd,2), char_dat);
- WFIFOSET(fd,len);
-}
-
-void char_parse_char_create_new_char(int fd, struct char_session_data* sd) __attribute__((nonnull (2)));
-void char_parse_char_create_new_char(int fd, struct char_session_data* sd)
-{
- int result;
- if( !char_new ) {
-
- result = -2;
- } else {
-
- result = chr->make_new_char_sql(sd, RFIFOP(fd,2), 1, 1, 1, 1, 1, 1, RFIFOB(fd,26),RFIFOW(fd,27),RFIFOW(fd,29));
-
-
-
- }
-
-
- if (result < 0) {
- chr->creation_failed(fd, result);
- } else {
-
- struct mmo_charstatus char_dat;
- chr->mmo_char_fromsql(result, &char_dat,
-# 4624 "../../../server-code/src/char/char.c" 3 4
- 0
-# 4624 "../../../server-code/src/char/char.c"
- );
- chr->creation_ok(fd, &char_dat);
-
-
- sd->found_char[char_dat.slot] = result;
- }
-
- RFIFOSKIP(fd,31);
-
-
-
-}
-
-
-
-void char_delete_char_failed(int fd, int flag)
-{
- WFIFOHEAD(fd,3);
- WFIFOW(fd,0) = 0x70;
- WFIFOB(fd,2) = flag;
- WFIFOSET(fd,3);
-}
-
-void char_delete_char_ok(int fd)
-{
- WFIFOHEAD(fd,2);
- WFIFOW(fd,0) = 0x6f;
- WFIFOSET(fd,2);
-}
-
-void char_parse_char_delete_char(int fd, struct char_session_data* sd, unsigned short cmd) __attribute__((nonnull (2)));
-void char_parse_char_delete_char(int fd, struct char_session_data* sd, unsigned short cmd)
-{
- char email[40];
- int cid = RFIFOL(fd,2);
- int i;
-
-
- if (pincode->enabled) {
- struct online_char_data* character;
- character = (struct online_char_data*)( DB->data2ptr((chr->online_char_db)->get((chr->online_char_db),DB->i2key(sd->account_id))) );
- if( character && character->pincode_enable == -1 ){
- chr->auth_error(fd, 0);
- RFIFOSKIP(fd,( cmd == 0x68) ? 46 : 56);
- return;
- }
- }
-
- (showmsg->showInfo(("\033[1;31m""Request Char Deletion: ""\033[1;32m""%d (%d)""\033[0m""\n"), sd->account_id, cid));
- memcpy(email, RFIFOP(fd,6), 40);
- RFIFOSKIP(fd,( cmd == 0x68) ? 46 : 56);
-
-
- if (strcasecmp(email, sd->email) != 0
- && ( strcmp("a@a.com", sd->email) != 0
- || (strcmp("a@a.com", email) != 0 && strcmp("", email) != 0)
- )) {
-
- chr->delete_char_failed(fd, 0);
- return;
- }
-
-
- do { for ((i) = (0); (i) < (9); ++(i)) if (sd->found_char[i] == cid) break; } while(
-# 4687 "../../../server-code/src/char/char.c" 3 4
-0
-# 4687 "../../../server-code/src/char/char.c"
-);
- if( i == 9 )
- {
- chr->delete_char_failed(fd, 0);
- return;
- }
-
-
- sd->found_char[i] = -1;
-
-
- if(chr->delete_char_sql(cid)<0){
-
-
-
- chr->delete_char_failed(fd, 0);
- return;
- }
-
- chr->delete_char_ok(fd);
-}
-
-void char_parse_char_ping(int fd)
-{
- RFIFOSKIP(fd,6);
-}
-
-void char_allow_rename(int fd, int flag)
-{
- WFIFOHEAD(fd, 4);
- WFIFOW(fd,0) = 0x28e;
- WFIFOW(fd,2) = flag;
- WFIFOSET(fd,4);
-}
-
-void char_parse_char_rename_char(int fd, struct char_session_data* sd) __attribute__((nonnull (2)));
-void char_parse_char_rename_char(int fd, struct char_session_data* sd)
-{
- int i, cid =RFIFOL(fd,2);
- char name[(23 + 1)];
- char esc_name[(23 + 1)*2+1];
- (strlib->safestrncpy_((name),(RFIFOP(fd,6)),((23 + 1))));
- RFIFOSKIP(fd,30);
-
- do { for ((i) = (0); (i) < (9); ++(i)) if (sd->found_char[i] == cid) break; } while(
-# 4731 "../../../server-code/src/char/char.c" 3 4
-0
-# 4731 "../../../server-code/src/char/char.c"
-);
- if( i == 9 )
- return;
-
- (strlib->normalize_name_((name),("\255\xA0\032\t\x0A\x0D ")));
- SQL->EscapeStringLen(inter->sql_handle, esc_name, name, (strlib->strnlen_((name),((23 + 1)))));
- if( !chr->check_char_name(name,esc_name) ) {
- i = 1;
- (strlib->safestrncpy_((sd->new_name),(name),((23 + 1))));
- } else {
- i = 0;
- }
-
- chr->allow_rename(fd, i);
-}
-
-void char_parse_char_rename_char2(int fd, struct char_session_data* sd) __attribute__((nonnull (2)));
-void char_parse_char_rename_char2(int fd, struct char_session_data* sd)
-{
- int i, aid = RFIFOL(fd,2), cid =RFIFOL(fd,6);
- char name[(23 + 1)];
- char esc_name[(23 + 1)*2+1];
- (strlib->safestrncpy_((name),(RFIFOP(fd,10)),((23 + 1))));
- RFIFOSKIP(fd,34);
-
- if( aid != sd->account_id )
- return;
- do { for ((i) = (0); (i) < (9); ++(i)) if (sd->found_char[i] == cid) break; } while(
-# 4758 "../../../server-code/src/char/char.c" 3 4
-0
-# 4758 "../../../server-code/src/char/char.c"
-);
- if( i == 9 )
- return;
-
- (strlib->normalize_name_((name),("\255\xA0\032\t\x0A\x0D ")));
- SQL->EscapeStringLen(inter->sql_handle, esc_name, name, (strlib->strnlen_((name),((23 + 1)))));
- if( !chr->check_char_name(name,esc_name) )
- {
- i = 1;
- (strlib->safestrncpy_((sd->new_name),(name),((23 + 1))));
- }
- else
- i = 0;
-
- chr->allow_rename(fd, i);
-}
-
-void char_rename_char_ack(int fd, int flag)
-{
- WFIFOHEAD(fd, 4);
- WFIFOW(fd,0) = 0x290;
- WFIFOW(fd,2) = flag;
- WFIFOSET(fd,4);
-}
-
-void char_parse_char_rename_char_confirm(int fd, struct char_session_data* sd) __attribute__((nonnull (2)));
-void char_parse_char_rename_char_confirm(int fd, struct char_session_data* sd)
-{
- int i;
- int cid = RFIFOL(fd,2);
- RFIFOSKIP(fd,6);
-
- do { for ((i) = (0); (i) < (9); ++(i)) if (sd->found_char[i] == cid) break; } while(
-# 4790 "../../../server-code/src/char/char.c" 3 4
-0
-# 4790 "../../../server-code/src/char/char.c"
-);
- if( i == 9 )
- return;
- i = chr->rename_char_sql(sd, cid);
-
- chr->rename_char_ack(fd, i);
-}
-
-void char_captcha_notsupported(int fd)
-{
- WFIFOHEAD(fd,5);
- WFIFOW(fd,0) = 0x7e9;
- WFIFOW(fd,2) = 5;
- WFIFOB(fd,4) = 1;
- WFIFOSET(fd,5);
-}
-
-void char_parse_char_request_captcha(int fd)
-{
- chr->captcha_notsupported(fd);
- RFIFOSKIP(fd,8);
-}
-
-void char_parse_char_check_captcha(int fd)
-{
- chr->captcha_notsupported(fd);
- RFIFOSKIP(fd,32);
-}
-
-void char_parse_char_delete2_req(int fd, struct char_session_data* sd)
-{
- chr->delete2_req(fd, sd);
- RFIFOSKIP(fd,6);
-}
-
-void char_parse_char_delete2_accept(int fd, struct char_session_data* sd)
-{
- chr->delete2_accept(fd, sd);
- RFIFOSKIP(fd,12);
-}
-
-void char_parse_char_delete2_cancel(int fd, struct char_session_data* sd)
-{
- chr->delete2_cancel(fd, sd);
- RFIFOSKIP(fd,6);
-}
-
-
-
-
-void char_login_map_server_ack(int fd, uint8 flag)
-{
- WFIFOHEAD(fd,3);
- WFIFOW(fd,0) = 0x2af9;
- WFIFOB(fd,2) = flag;
- WFIFOSET(fd,3);
-}
-
-void char_parse_char_login_map_server(int fd, uint32 ipl)
-{
- char l_user[24], l_pass[24];
- int i;
- (strlib->safestrncpy_((l_user),(RFIFOP(fd,2)),(24)));
- (strlib->safestrncpy_((l_pass),(RFIFOP(fd,26)),(24)));
-
- do { for ((i) = (0); (i) < (( (int)(sizeof(chr->server)/sizeof((chr->server)[0])) )); ++(i)) if (chr->server[i].fd <= 0) break; } while(
-# 4855 "../../../server-code/src/char/char.c" 3 4
-0
-# 4855 "../../../server-code/src/char/char.c"
-);
- if (core->runflag != CHARSERVER_ST_RUNNING ||
- i == ( (int)(sizeof(chr->server)/sizeof((chr->server)[0])) ) ||
- strcmp(l_user, chr->userid) != 0 ||
- strcmp(l_pass, chr->passwd) != 0 ||
- !sockt->allowed_ip_check(ipl))
- {
- chr->login_map_server_ack(fd, 3);
- } else {
- chr->login_map_server_ack(fd, 0);
-
- chr->server[i].fd = fd;
- chr->server[i].ip = ntohl(RFIFOL(fd,54));
- chr->server[i].port = ntohs(RFIFOW(fd,58));
- chr->server[i].users = 0;
- sockt->session[fd]->func_parse = chr->parse_frommap;
- sockt->session[fd]->flag.server = 1;
- sockt->realloc_fifo(fd, FIFOSIZE_SERVERLINK, FIFOSIZE_SERVERLINK);
- chr->mapif_init(fd);
- }
- sockt->datasync(fd,
-# 4875 "../../../server-code/src/char/char.c" 3 4
- 1
-# 4875 "../../../server-code/src/char/char.c"
- );
-
- RFIFOSKIP(fd,60);
-}
-
-void char_parse_char_pincode_check(int fd, struct char_session_data* sd) __attribute__((nonnull (2)));
-void char_parse_char_pincode_check(int fd, struct char_session_data* sd)
-{
- if (RFIFOL(fd,2) == sd->account_id)
- pincode->check(fd, sd);
-
- RFIFOSKIP(fd, 10);
-}
-
-void char_parse_char_pincode_window(int fd, struct char_session_data* sd) __attribute__((nonnull (2)));
-void char_parse_char_pincode_window(int fd, struct char_session_data* sd)
-{
- if (RFIFOL(fd,2) == sd->account_id)
- pincode->sendstate(fd, sd, PINCODE_NOTSET);
-
- RFIFOSKIP(fd, 6);
-}
-
-void char_parse_char_pincode_change(int fd, struct char_session_data* sd) __attribute__((nonnull (2)));
-void char_parse_char_pincode_change(int fd, struct char_session_data* sd)
-{
- if (RFIFOL(fd,2) == sd->account_id)
- pincode->change(fd, sd);
-
- RFIFOSKIP(fd, 14);
-}
-
-void char_parse_char_pincode_first_pin(int fd, struct char_session_data* sd) __attribute__((nonnull (2)));
-void char_parse_char_pincode_first_pin(int fd, struct char_session_data* sd)
-{
- if (RFIFOL(fd,2) == sd->account_id)
- pincode->setnew (fd, sd);
- RFIFOSKIP(fd, 10);
-}
-
-void char_parse_char_request_chars(int fd, struct char_session_data* sd)
-{
- chr->mmo_char_send099d(fd, sd);
- RFIFOSKIP(fd,2);
-}
-
-void char_change_character_slot_ack(int fd,
-# 4921 "../../../server-code/src/char/char.c" 3 4
- _Bool
-# 4921 "../../../server-code/src/char/char.c"
- ret)
-{
- WFIFOHEAD(fd, 8);
- WFIFOW(fd,0) = 0x8d5;
- WFIFOW(fd,2) = 8;
- WFIFOW(fd,4) = ret?0:1;
- WFIFOW(fd,6) = 0;
- WFIFOSET(fd, 8);
-}
-
-void char_parse_char_move_character(int fd, struct char_session_data* sd)
-{
-
-# 4933 "../../../server-code/src/char/char.c" 3 4
-_Bool
-# 4933 "../../../server-code/src/char/char.c"
- ret = chr->char_slotchange(sd, fd, RFIFOW(fd, 2), RFIFOW(fd, 4));
- chr->change_character_slot_ack(fd, ret);
-
- if( ret )
-
- chr->mmo_char_send099d(fd, sd);
-
-
-
- RFIFOSKIP(fd, 8);
-}
-
-int char_parse_char_unknown_packet(int fd, uint32 ipl)
-{
- (showmsg->showError(("chr->parse_char: Received unknown packet ""\033[1;37m""0x%x""\033[0m"" from ip '""\033[1;37m""%s""\033[0m""'! Disconnecting!\n"), RFIFOW(fd,0), sockt->ip2str(ipl,
-# 4947 "../../../server-code/src/char/char.c" 3 4
-((void *)0)
-# 4947 "../../../server-code/src/char/char.c"
-)));
- sockt->eof(fd);
- return 1;
-}
-
-int char_parse_char(int fd)
-{
- unsigned short cmd;
- struct char_session_data* sd;
- uint32 ipl = sockt->session[fd]->client_addr;
-
- sd = (struct char_session_data*)sockt->session[fd]->session_data;
-
-
- if(chr->login_fd < 0)
- sockt->eof(fd);
-
- if(sockt->session[fd]->flag.eof)
- {
- if( sd !=
-# 4966 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 4966 "../../../server-code/src/char/char.c"
- && sd->auth ) {
-
- struct online_char_data* data = (struct online_char_data*)( DB->data2ptr((chr->online_char_db)->get((chr->online_char_db),DB->i2key(sd->account_id))) );
- if( data !=
-# 4969 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 4969 "../../../server-code/src/char/char.c"
- && data->fd == fd)
- data->fd = -1;
- if( data ==
-# 4971 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 4971 "../../../server-code/src/char/char.c"
- || data->server == -1)
- chr->set_char_offline(-1,sd->account_id);
- }
- sockt->close(fd);
- return 0;
- }
-
- while (RFIFOREST(fd) >= 2) {
- cmd = RFIFOW(fd,0);
-
-
-
-
- if (( (HPM->packets[hpParse_Char])._len_ ) > 0) {
- int result = HPM->parse_packets(fd,cmd,hpParse_Char);
- if (result == 1)
- continue;
- if (result == 2)
- return 0;
- }
-
- switch (cmd) {
-
-
- case 0x65:
- if( RFIFOREST(fd) < 17 )
- return 0;
- {
- chr->parse_char_connect(fd, sd, ipl);
- }
- break;
-
-
- case 0x66:
- do { if(RFIFOREST(fd) < (3)) return 0; if (sd==
-# 5005 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 5005 "../../../server-code/src/char/char.c"
- || !sd->auth) { RFIFOSKIP(fd,(3)); return 0; } } while (0);
- {
- chr->parse_char_select(fd, sd, ipl);
- }
- break;
-
-
-
-
- case 0x970:
- {
- do { if(RFIFOREST(fd) < (31)) return 0; if (sd==
-# 5016 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 5016 "../../../server-code/src/char/char.c"
- || !sd->auth) { RFIFOSKIP(fd,(31)); return 0; } } while (0);
-
-
-
-
-
-
-
- chr->parse_char_create_new_char(fd, sd);
- }
- break;
-
-
- case 0x68:
-
- case 0x1fb:
- if (cmd == 0x68) do { if(RFIFOREST(fd) < (46)) return 0; if (sd==
-# 5032 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 5032 "../../../server-code/src/char/char.c"
- || !sd->auth) { RFIFOSKIP(fd,(46)); return 0; } } while (0);
- if (cmd == 0x1fb) do { if(RFIFOREST(fd) < (56)) return 0; if (sd==
-# 5033 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 5033 "../../../server-code/src/char/char.c"
- || !sd->auth) { RFIFOSKIP(fd,(56)); return 0; } } while (0);
- {
- chr->parse_char_delete_char(fd, sd, cmd);
- }
- break;
-
-
-
- case 0x187:
- if (RFIFOREST(fd) < 6)
- return 0;
- chr->parse_char_ping(fd);
- break;
-
-
- case 0x8fc:
- do { if(RFIFOREST(fd) < (30)) return 0; if (sd==
-# 5049 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 5049 "../../../server-code/src/char/char.c"
- || !sd->auth) { RFIFOSKIP(fd,(30)); return 0; } } while (0);
- {
- chr->parse_char_rename_char(fd, sd);
- }
- break;
-
-
-
- case 0x28d:
- do { if(RFIFOREST(fd) < (34)) return 0; if (sd==
-# 5058 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 5058 "../../../server-code/src/char/char.c"
- || !sd->auth) { RFIFOSKIP(fd,(34)); return 0; } } while (0);
- {
- chr->parse_char_rename_char2(fd, sd);
- }
- break;
-
-
- case 0x28f:
-
-
-
-
-
- do { if(RFIFOREST(fd) < (6)) return 0; if (sd==
-# 5071 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 5071 "../../../server-code/src/char/char.c"
- || !sd->auth) { RFIFOSKIP(fd,(6)); return 0; } } while (0);
- {
- chr->parse_char_rename_char_confirm(fd, sd);
- }
- break;
-
-
-
- case 0x7e5:
- chr->parse_char_request_captcha(fd);
- break;
-
-
-
- case 0x7e7:
- chr->parse_char_check_captcha(fd);
- break;
-
-
- case 0x827:
- do { if(RFIFOREST(fd) < (6)) return 0; if (sd==
-# 5091 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 5091 "../../../server-code/src/char/char.c"
- || !sd->auth) { RFIFOSKIP(fd,(6)); return 0; } } while (0);
- chr->parse_char_delete2_req(fd, sd);
- break;
-
-
- case 0x829:
- do { if(RFIFOREST(fd) < (12)) return 0; if (sd==
-# 5097 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 5097 "../../../server-code/src/char/char.c"
- || !sd->auth) { RFIFOSKIP(fd,(12)); return 0; } } while (0);
- chr->parse_char_delete2_accept(fd, sd);
- break;
-
-
- case 0x82b:
- do { if(RFIFOREST(fd) < (6)) return 0; if (sd==
-# 5103 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 5103 "../../../server-code/src/char/char.c"
- || !sd->auth) { RFIFOSKIP(fd,(6)); return 0; } } while (0);
- chr->parse_char_delete2_cancel(fd, sd);
- break;
-
-
- case 0x2af8:
- if (RFIFOREST(fd) < 60)
- return 0;
- {
- chr->parse_char_login_map_server(fd, ipl);
- }
- return 0;
-
-
- case 0x8b8:
- do { if(RFIFOREST(fd) < (10)) return 0; if (sd==
-# 5118 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 5118 "../../../server-code/src/char/char.c"
- || !sd->auth) { RFIFOSKIP(fd,(10)); return 0; } } while (0);
- chr->parse_char_pincode_check(fd, sd);
- break;
-
-
- case 0x8c5:
- do { if(RFIFOREST(fd) < (6)) return 0; if (sd==
-# 5124 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 5124 "../../../server-code/src/char/char.c"
- || !sd->auth) { RFIFOSKIP(fd,(6)); return 0; } } while (0);
- chr->parse_char_pincode_window(fd, sd);
- break;
-
-
- case 0x8be:
- do { if(RFIFOREST(fd) < (14)) return 0; if (sd==
-# 5130 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 5130 "../../../server-code/src/char/char.c"
- || !sd->auth) { RFIFOSKIP(fd,(14)); return 0; } } while (0);
- chr->parse_char_pincode_change(fd, sd);
- break;
-
-
- case 0x8ba:
- do { if(RFIFOREST(fd) < (10)) return 0; if (sd==
-# 5136 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 5136 "../../../server-code/src/char/char.c"
- || !sd->auth) { RFIFOSKIP(fd,(10)); return 0; } } while (0);
- chr->parse_char_pincode_first_pin(fd, sd);
- break;
-
- case 0x9a1:
- do { if(RFIFOREST(fd) < (2)) return 0; if (sd==
-# 5141 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 5141 "../../../server-code/src/char/char.c"
- || !sd->auth) { RFIFOSKIP(fd,(2)); return 0; } } while (0);
- chr->parse_char_request_chars(fd, sd);
- break;
-
-
- case 0x8d4:
- do { if(RFIFOREST(fd) < (8)) return 0; if (sd==
-# 5147 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 5147 "../../../server-code/src/char/char.c"
- || !sd->auth) { RFIFOSKIP(fd,(8)); return 0; } } while (0);
- {
- chr->parse_char_move_character(fd, sd);
- }
- break;
-
-
- default:
- if (chr->parse_char_unknown_packet(fd, ipl))
- return 0;
- }
- }
-
- RFIFOFLUSH(fd);
- return 0;
-}
-
-int mapif_sendall(const unsigned char *buf, unsigned int len)
-{
- int i, c;
-
- do { if (((void)(buf),
-# 5168 "../../../server-code/src/char/char.c" 3 4
-0
-# 5168 "../../../server-code/src/char/char.c"
-)) return(0); } while(0);
- c = 0;
- for(i = 0; i < ( (int)(sizeof(chr->server)/sizeof((chr->server)[0])) ); i++) {
- int fd;
- if ((fd = chr->server[i].fd) > 0) {
- WFIFOHEAD(fd,len);
- memcpy(WFIFOP(fd,0), buf, len);
- WFIFOSET(fd,len);
- c++;
- }
- }
-
- return c;
-}
-
-int mapif_sendallwos(int sfd, unsigned char *buf, unsigned int len)
-{
- int i, c;
-
- do { if (((void)(buf),
-# 5187 "../../../server-code/src/char/char.c" 3 4
-0
-# 5187 "../../../server-code/src/char/char.c"
-)) return(0); } while(0);
- c = 0;
- for(i = 0; i < ( (int)(sizeof(chr->server)/sizeof((chr->server)[0])) ); i++) {
- int fd;
- if ((fd = chr->server[i].fd) > 0 && fd != sfd) {
- WFIFOHEAD(fd,len);
- memcpy(WFIFOP(fd,0), buf, len);
- WFIFOSET(fd,len);
- c++;
- }
- }
-
- return c;
-}
-
-int mapif_send(int fd, unsigned char *buf, unsigned int len)
-{
- do { if (((void)(buf),
-# 5204 "../../../server-code/src/char/char.c" 3 4
-0
-# 5204 "../../../server-code/src/char/char.c"
-)) return(0); } while(0);
- if (fd >= 0) {
- int i;
- do { for ((i) = (0); (i) < (( (int)(sizeof(chr->server)/sizeof((chr->server)[0])) )); ++(i)) if (fd == chr->server[i].fd) break; } while(
-# 5207 "../../../server-code/src/char/char.c" 3 4
- 0
-# 5207 "../../../server-code/src/char/char.c"
- );
- if( i < ( (int)(sizeof(chr->server)/sizeof((chr->server)[0])) ) )
- {
- WFIFOHEAD(fd,len);
- memcpy(WFIFOP(fd,0), buf, len);
- WFIFOSET(fd,len);
- return 1;
- }
- }
- return 0;
-}
-
-void mapif_send_users_count(int users)
-{
- uint8 buf[6];
-
- WBUFW(buf,0) = 0x2b00;
- WBUFL(buf,2) = users;
- mapif->sendall(buf,6);
-}
-
-int char_broadcast_user_count(int tid, int64 tick, int id, intptr_t data) {
- int users = chr->count_users();
-
-
- static int prev_users = 0;
- if( prev_users == users )
- return 0;
- prev_users = users;
-
- if( chr->login_fd > 0 && sockt->session[chr->login_fd] )
- {
-
- loginif->send_users_count(users);
- }
-
- mapif->send_users_count(users);
-
- return 0;
-}
-
-
-
-
-
-static int char_send_accounts_tologin_sub(union DBKey key, struct DBData *data, va_list ap)
-{
- struct online_char_data* character = DB->data2ptr(data);
- int* i =
-# 5255 "../../../server-code/src/char/char.c" 3 4
- __builtin_va_arg(
-# 5255 "../../../server-code/src/char/char.c"
- ap
-# 5255 "../../../server-code/src/char/char.c" 3 4
- ,
-# 5255 "../../../server-code/src/char/char.c"
- int*
-# 5255 "../../../server-code/src/char/char.c" 3 4
- )
-# 5255 "../../../server-code/src/char/char.c"
- ;
-
- do { if (((void)(character),
-# 5257 "../../../server-code/src/char/char.c" 3 4
-0
-# 5257 "../../../server-code/src/char/char.c"
-)) return(0); } while(0);
- if(character->server > -1)
- {
- WFIFOL(chr->login_fd,8+(*i)*4) = character->account_id;
- (*i)++;
- return 1;
- }
- return 0;
-}
-
-int char_send_accounts_tologin(int tid, int64 tick, int id, intptr_t data) {
- if (chr->login_fd > 0 && sockt->session[chr->login_fd])
- {
-
- int users = chr->online_char_db->size(chr->online_char_db);
- int i = 0;
-
- WFIFOHEAD(chr->login_fd,8+users*4);
- WFIFOW(chr->login_fd,0) = 0x272d;
- chr->online_char_db->foreach(chr->online_char_db, chr->send_accounts_tologin_sub, &i, users);
- WFIFOW(chr->login_fd,2) = 8+ i*4;
- WFIFOL(chr->login_fd,4) = i;
- WFIFOSET(chr->login_fd,WFIFOW(chr->login_fd,2));
- }
- return 0;
-}
-
-int char_check_connect_login_server(int tid, int64 tick, int id, intptr_t data) {
- if (chr->login_fd > 0 && sockt->session[chr->login_fd] !=
-# 5285 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 5285 "../../../server-code/src/char/char.c"
- )
- return 0;
-
- (showmsg->showInfo(("Attempt to connect to login-server...\n")));
-
- if ((chr->login_fd = sockt->make_connection(login_ip, login_port,
-# 5290 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 5290 "../../../server-code/src/char/char.c"
- )) == -1) {
- chr->login_fd = 0;
- return 0;
- }
-
- sockt->session[chr->login_fd]->func_parse = chr->parse_fromlogin;
- sockt->session[chr->login_fd]->flag.server = 1;
- sockt->realloc_fifo(chr->login_fd, FIFOSIZE_SERVERLINK, FIFOSIZE_SERVERLINK);
-
- loginif->connect_to_server();
-
- return 1;
-}
-
-
-
-
-
-static int char_waiting_disconnect(int tid, int64 tick, int id, intptr_t data) {
- struct online_char_data* character;
- if ((character = (struct online_char_data*)( DB->data2ptr((chr->online_char_db)->get((chr->online_char_db),DB->i2key(id))) )) !=
-# 5310 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 5310 "../../../server-code/src/char/char.c"
- && character->waiting_disconnect == tid) {
-
- character->waiting_disconnect = (-1);
- chr->set_char_offline(character->char_id, character->account_id);
- }
- return 0;
-}
-
-
-
-
-static int char_online_data_cleanup_sub(union DBKey key, struct DBData *data, va_list ap)
-{
- struct online_char_data *character= DB->data2ptr(data);
- do { if (((void)(character),
-# 5324 "../../../server-code/src/char/char.c" 3 4
-0
-# 5324 "../../../server-code/src/char/char.c"
-)) return(0); } while(0);
- if (character->fd != -1)
- return 0;
- if (character->server == -2)
- chr->set_char_offline(character->char_id, character->account_id);
- if (character->server < 0)
-
- ( (chr->online_char_db)->remove((chr->online_char_db),(key),
-# 5331 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 5331 "../../../server-code/src/char/char.c"
- ) );
- return 0;
-}
-
-static int char_online_data_cleanup(int tid, int64 tick, int id, intptr_t data) {
- chr->online_char_db->foreach(chr->online_char_db, chr->online_data_cleanup_sub);
- return 0;
-}
-
-void char_sql_config_read(const char* cfgName)
-{
- char line[1024], w1[1024], w2[1024];
- FILE* fp;
-
- if ((fp = fopen(cfgName, "r")) ==
-# 5345 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 5345 "../../../server-code/src/char/char.c"
- ) {
- (showmsg->showError(("File not found: %s\n"), cfgName));
- return;
- }
-
- while(fgets(line, sizeof(line), fp))
- {
- if(line[0] == '/' && line[1] == '/')
- continue;
-
- if (sscanf(line, "%1023[^:]: %1023[^\r\n]", w1, w2) != 2)
- continue;
-
- if(!strcasecmp(w1,"char_db"))
- (strlib->safestrncpy_((char_db),(w2),(sizeof(char_db))));
- else if(!strcasecmp(w1,"scdata_db"))
- (strlib->safestrncpy_((scdata_db),(w2),(sizeof(scdata_db))));
- else if(!strcasecmp(w1,"cart_db"))
- (strlib->safestrncpy_((cart_db),(w2),(sizeof(cart_db))));
- else if(!strcasecmp(w1,"inventory_db"))
- (strlib->safestrncpy_((inventory_db),(w2),(sizeof(inventory_db))));
- else if(!strcasecmp(w1,"charlog_db"))
- (strlib->safestrncpy_((charlog_db),(w2),(sizeof(charlog_db))));
- else if(!strcasecmp(w1,"storage_db"))
- (strlib->safestrncpy_((storage_db),(w2),(sizeof(storage_db))));
- else if(!strcasecmp(w1,"skill_db"))
- (strlib->safestrncpy_((skill_db),(w2),(sizeof(skill_db))));
- else if(!strcasecmp(w1,"interlog_db"))
- (strlib->safestrncpy_((interlog_db),(w2),(sizeof(interlog_db))));
- else if(!strcasecmp(w1,"memo_db"))
- (strlib->safestrncpy_((memo_db),(w2),(sizeof(memo_db))));
- else if(!strcasecmp(w1,"guild_db"))
- (strlib->safestrncpy_((guild_db),(w2),(sizeof(guild_db))));
- else if(!strcasecmp(w1,"guild_alliance_db"))
- (strlib->safestrncpy_((guild_alliance_db),(w2),(sizeof(guild_alliance_db))));
- else if(!strcasecmp(w1,"guild_castle_db"))
- (strlib->safestrncpy_((guild_castle_db),(w2),(sizeof(guild_castle_db))));
- else if(!strcasecmp(w1,"guild_expulsion_db"))
- (strlib->safestrncpy_((guild_expulsion_db),(w2),(sizeof(guild_expulsion_db))));
- else if(!strcasecmp(w1,"guild_member_db"))
- (strlib->safestrncpy_((guild_member_db),(w2),(sizeof(guild_member_db))));
- else if(!strcasecmp(w1,"guild_skill_db"))
- (strlib->safestrncpy_((guild_skill_db),(w2),(sizeof(guild_skill_db))));
- else if(!strcasecmp(w1,"guild_position_db"))
- (strlib->safestrncpy_((guild_position_db),(w2),(sizeof(guild_position_db))));
- else if(!strcasecmp(w1,"guild_storage_db"))
- (strlib->safestrncpy_((guild_storage_db),(w2),(sizeof(guild_storage_db))));
- else if(!strcasecmp(w1,"party_db"))
- (strlib->safestrncpy_((party_db),(w2),(sizeof(party_db))));
- else if(!strcasecmp(w1,"pet_db"))
- (strlib->safestrncpy_((pet_db),(w2),(sizeof(pet_db))));
- else if(!strcasecmp(w1,"mail_db"))
- (strlib->safestrncpy_((mail_db),(w2),(sizeof(mail_db))));
- else if(!strcasecmp(w1,"auction_db"))
- (strlib->safestrncpy_((auction_db),(w2),(sizeof(auction_db))));
- else if(!strcasecmp(w1,"friend_db"))
- (strlib->safestrncpy_((friend_db),(w2),(sizeof(friend_db))));
- else if(!strcasecmp(w1,"hotkey_db"))
- (strlib->safestrncpy_((hotkey_db),(w2),(sizeof(hotkey_db))));
- else if(!strcasecmp(w1,"quest_db"))
- (strlib->safestrncpy_((quest_db),(w2),(sizeof(quest_db))));
- else if(!strcasecmp(w1,"homunculus_db"))
- (strlib->safestrncpy_((homunculus_db),(w2),(sizeof(homunculus_db))));
- else if(!strcasecmp(w1,"skill_homunculus_db"))
- (strlib->safestrncpy_((skill_homunculus_db),(w2),(sizeof(skill_homunculus_db))));
- else if(!strcasecmp(w1,"mercenary_db"))
- (strlib->safestrncpy_((mercenary_db),(w2),(sizeof(mercenary_db))));
- else if(!strcasecmp(w1,"mercenary_owner_db"))
- (strlib->safestrncpy_((mercenary_owner_db),(w2),(sizeof(mercenary_owner_db))));
- else if(!strcasecmp(w1,"ragsrvinfo_db"))
- (strlib->safestrncpy_((ragsrvinfo_db),(w2),(sizeof(ragsrvinfo_db))));
- else if(!strcasecmp(w1,"elemental_db"))
- (strlib->safestrncpy_((elemental_db),(w2),(sizeof(elemental_db))));
- else if(!strcasecmp(w1,"account_data_db"))
- (strlib->safestrncpy_((account_data_db),(w2),(sizeof(account_data_db))));
- else if(!strcasecmp(w1,"char_reg_num_db"))
- (strlib->safestrncpy_((char_reg_num_db),(w2),(sizeof(char_reg_num_db))));
- else if(!strcasecmp(w1,"char_reg_str_db"))
- (strlib->safestrncpy_((char_reg_str_db),(w2),(sizeof(char_reg_str_db))));
- else if(!strcasecmp(w1,"acc_reg_str_db"))
- (strlib->safestrncpy_((acc_reg_str_db),(w2),(sizeof(acc_reg_str_db))));
- else if(!strcasecmp(w1,"acc_reg_num_db"))
- (strlib->safestrncpy_((acc_reg_num_db),(w2),(sizeof(acc_reg_num_db))));
-
- else if(!strcasecmp(w1,"import"))
- chr->sql_config_read(w2);
- else
- HPM->parseConf(w1, w2, HPCT_CHAR_INTER);
- }
- fclose(fp);
- (showmsg->showInfo(("Done reading %s.\n"), cfgName));
-}
-
-void char_config_dispatch(char *w1, char *w2) {
-
-# 5439 "../../../server-code/src/char/char.c" 3 4
-_Bool
-# 5439 "../../../server-code/src/char/char.c"
- (*dispatch_to[]) (char *w1, char *w2) = {
-
- pincode->config_read
- };
- int i, len = ( (int)(sizeof(dispatch_to)/sizeof((dispatch_to)[0])) );
- for(i = 0; i < len; i++) {
- if( (*dispatch_to[i])(w1,w2) )
- break;
- }
- if (i == len)
- HPM->parseConf(w1, w2, HPCT_CHAR);
-}
-
-int char_config_read(const char* cfgName)
-{
- char line[1024], w1[1024], w2[1024];
- FILE* fp = fopen(cfgName, "r");
-
- if (fp ==
-# 5457 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 5457 "../../../server-code/src/char/char.c"
- ) {
- (showmsg->showError(("Configuration file not found: %s.\n"), cfgName));
- return 1;
- }
-
- while(fgets(line, sizeof(line), fp)) {
- if (line[0] == '/' && line[1] == '/')
- continue;
-
- if (sscanf(line, "%1023[^:]: %1023[^\r\n]", w1, w2) != 2)
- continue;
-
- (strlib->remove_control_chars_(w1));
- (strlib->remove_control_chars_(w2));
- if(strcasecmp(w1,"timestamp_format") == 0) {
- (strlib->safestrncpy_((showmsg->timestamp_format),(w2),(sizeof(showmsg->timestamp_format))));
- } else if(strcasecmp(w1,"console_silent")==0){
- showmsg->silent = atoi(w2);
- if (showmsg->silent)
- (showmsg->showInfo(("Console Silent Setting: %d\n"), atoi(w2)));
- } else if(strcasecmp(w1,"stdout_with_ansisequence")==0){
- showmsg->stdout_with_ansisequence = (strlib->config_switch_(w2)) ?
-# 5478 "../../../server-code/src/char/char.c" 3 4
- 1
-# 5478 "../../../server-code/src/char/char.c"
- :
-# 5478 "../../../server-code/src/char/char.c" 3 4
- 0
-# 5478 "../../../server-code/src/char/char.c"
- ;
- } else if (strcasecmp(w1, "userid") == 0) {
- (strlib->safestrncpy_((chr->userid),(w2),(sizeof(chr->userid))));
- } else if (strcasecmp(w1, "passwd") == 0) {
- (strlib->safestrncpy_((chr->passwd),(w2),(sizeof(chr->passwd))));
- } else if (strcasecmp(w1, "server_name") == 0) {
- (strlib->safestrncpy_((chr->server_name),(w2),(sizeof(chr->server_name))));
- } else if (strcasecmp(w1, "wisp_server_name") == 0) {
- if (strlen(w2) >= 4) {
- (strlib->safestrncpy_((wisp_server_name),(w2),(sizeof(wisp_server_name))));
- }
- } else if (strcasecmp(w1, "login_ip") == 0) {
- login_ip = sockt->host2ip(w2);
- if (login_ip) {
- char ip_str[16];
- (strlib->safestrncpy_((login_ip_str),(w2),(sizeof(login_ip_str))));
- (showmsg->showStatus(("Login server IP address : %s -> %s\n"), w2, sockt->ip2str(login_ip, ip_str)));
- }
- } else if (strcasecmp(w1, "login_port") == 0) {
- login_port = atoi(w2);
- } else if (strcasecmp(w1, "char_ip") == 0) {
- chr->ip = sockt->host2ip(w2);
- if (chr->ip) {
- char ip_str[16];
- (strlib->safestrncpy_((char_ip_str),(w2),(sizeof(char_ip_str))));
- (showmsg->showStatus(("Character server IP address : %s -> %s\n"), w2, sockt->ip2str(chr->ip, ip_str)));
- }
- } else if (strcasecmp(w1, "bind_ip") == 0) {
- bind_ip = sockt->host2ip(w2);
- if (bind_ip) {
- char ip_str[16];
- (strlib->safestrncpy_((bind_ip_str),(w2),(sizeof(bind_ip_str))));
- (showmsg->showStatus(("Character server binding IP address : %s -> %s\n"), w2, sockt->ip2str(bind_ip, ip_str)));
- }
- } else if (strcasecmp(w1, "char_port") == 0) {
- chr->port = atoi(w2);
- } else if (strcasecmp(w1, "char_server_type") == 0) {
- chr->server_type = atoi(w2);
- } else if (strcasecmp(w1, "char_new") == 0) {
- char_new = (
-# 5517 "../../../server-code/src/char/char.c" 3 4
- _Bool
-# 5517 "../../../server-code/src/char/char.c"
- )atoi(w2);
- } else if (strcasecmp(w1, "char_new_display") == 0) {
- chr->new_display = atoi(w2);
- } else if (strcasecmp(w1, "max_connect_user") == 0) {
- max_connect_user = atoi(w2);
- if (max_connect_user < -1)
- max_connect_user = -1;
- } else if(strcasecmp(w1, "gm_allow_group") == 0) {
- gm_allow_group = atoi(w2);
- } else if (strcasecmp(w1, "autosave_time") == 0) {
- autosave_interval = atoi(w2) * 1000;
- if (autosave_interval <= 0)
- autosave_interval = (300*1000);
- } else if (strcasecmp(w1, "save_log") == 0) {
- save_log = (strlib->config_switch_(w2));
- }
-
- else if (strcasecmp(w1, "start_point_re") == 0) {
- char map[((11 + 1) + 4)];
- int x, y;
- if (sscanf(w2, "%15[^,],%d,%d", map, &x, &y) < 3)
- continue;
- start_point.map = mapindex->name2id(map);
- if (!start_point.map)
- (showmsg->showError(("Specified start_point_re '%s' not found in map-index cache.\n"), map));
- start_point.x = x;
- start_point.y = y;
- }
-# 5558 "../../../server-code/src/char/char.c"
- else if (strcasecmp(w1, "start_items") == 0) {
- int i;
- char *split;
-
- i = 0;
- split = strtok(w2, ",");
- while (split !=
-# 5564 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 5564 "../../../server-code/src/char/char.c"
- && i < 32 * 3) {
- char *split2 = split;
- split = strtok(
-# 5566 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 5566 "../../../server-code/src/char/char.c"
- , ",");
- start_items[i] = atoi(split2);
-
- if (start_items[i] < 0)
- start_items[i] = 0;
-
- ++i;
- }
-
-
- if( i%3 )
- {
- (showmsg->showWarning(("chr->config_read: There are not enough parameters in start_items, ignoring last item...\n")));
- if( i%3 == 1 )
- start_items[i-1] = 0;
- else
- start_items[i-2] = 0;
- }
- } else if (strcasecmp(w1, "start_zeny") == 0) {
- start_zeny = atoi(w2);
- if (start_zeny < 0)
- start_zeny = 0;
- } else if(strcasecmp(w1,"log_char")==0) {
- log_char = atoi(w2);
- } else if (strcasecmp(w1, "unknown_char_name") == 0) {
- (strlib->safestrncpy_((unknown_char_name),(w2),(sizeof(unknown_char_name))));
- unknown_char_name[(23 + 1)-1] = '\0';
- } else if (strcasecmp(w1, "name_ignoring_case") == 0) {
- name_ignoring_case = (
-# 5594 "../../../server-code/src/char/char.c" 3 4
- _Bool
-# 5594 "../../../server-code/src/char/char.c"
- )(strlib->config_switch_(w2));
- } else if (strcasecmp(w1, "char_name_option") == 0) {
- char_name_option = atoi(w2);
- } else if (strcasecmp(w1, "char_name_letters") == 0) {
- (strlib->safestrncpy_((char_name_letters),(w2),(sizeof(char_name_letters))));
- } else if (strcasecmp(w1, "char_del_level") == 0) {
- char_del_level = atoi(w2);
- } else if (strcasecmp(w1, "char_del_delay") == 0) {
- char_del_delay = atoi(w2);
- } else if (strcasecmp(w1, "char_aegis_delete") == 0) {
- char_aegis_delete = atoi(w2);
- } else if(strcasecmp(w1,"db_path")==0) {
- (strlib->safestrncpy_((db_path),(w2),(sizeof(db_path))));
- } else if (strcasecmp(w1, "fame_list_alchemist") == 0) {
- fame_list_size_chemist = atoi(w2);
- if (fame_list_size_chemist > 10) {
- (showmsg->showWarning(("Max fame list size is %d (fame_list_alchemist)\n"), 10));
- fame_list_size_chemist = 10;
- }
- } else if (strcasecmp(w1, "fame_list_blacksmith") == 0) {
- fame_list_size_smith = atoi(w2);
- if (fame_list_size_smith > 10) {
- (showmsg->showWarning(("Max fame list size is %d (fame_list_blacksmith)\n"), 10));
- fame_list_size_smith = 10;
- }
- } else if (strcasecmp(w1, "fame_list_taekwon") == 0) {
- fame_list_size_taekwon = atoi(w2);
- if (fame_list_size_taekwon > 10) {
- (showmsg->showWarning(("Max fame list size is %d (fame_list_taekwon)\n"), 10));
- fame_list_size_taekwon = 10;
- }
- } else if (strcasecmp(w1, "guild_exp_rate") == 0) {
- guild_exp_rate = atoi(w2);
- } else if (strcasecmp(w1, "char_maintenance_min_group_id") == 0) {
- char_maintenance_min_group_id = atoi(w2);
- } else if (strcasecmp(w1, "import") == 0) {
- chr->config_read(w2);
- } else
- chr->config_dispatch(w1,w2);
- }
- fclose(fp);
-
- (showmsg->showInfo(("Done reading %s.\n"), cfgName));
- return 0;
-}
-
-int do_final(void) {
- int i;
-
- (showmsg->showStatus(("Terminating...\n")));
-
- HPM->event(HPET_FINAL);
-
- chr->set_all_offline(-1);
- chr->set_all_offline_sql();
-
- inter->final();
-
- sockt->flush_fifos();
-
- do_final_mapif();
- loginif->final();
-
- if( (-1) == SQL->Query(inter->sql_handle, "DELETE FROM `%s`", ragsrvinfo_db) )
- (SQL->ShowDebug_((inter->sql_handle), "../../../server-code/src/char/char.c", 5658));
-
- chr->char_db_->destroy(chr->char_db_,
-# 5660 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 5660 "../../../server-code/src/char/char.c"
- );
- chr->online_char_db->destroy(chr->online_char_db,
-# 5661 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 5661 "../../../server-code/src/char/char.c"
- );
- auth_db->destroy(auth_db,
-# 5662 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 5662 "../../../server-code/src/char/char.c"
- );
-
- if( chr->char_fd != -1 ) {
- sockt->close(chr->char_fd);
- chr->char_fd = -1;
- }
-
- HPM_char_do_final();
-
- SQL->Free(inter->sql_handle);
- mapindex->final();
-
- for (i = 0; i < 2; i++)
- do { if (( (chr->server[i].maps)._max_ ) > 0) { (iMalloc->free((( (chr->server[i].maps)._data_ )),"../../../server-code/src/char/char.c", 5675, __func__)); ( (chr->server[i].maps)._data_ ) =
-# 5675 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 5675 "../../../server-code/src/char/char.c"
- ; ( (chr->server[i].maps)._max_ ) = 0; ( (chr->server[i].maps)._len_ ) = 0; } } while(
-# 5675 "../../../server-code/src/char/char.c" 3 4
- 0
-# 5675 "../../../server-code/src/char/char.c"
- );
-
- (iMalloc->free((chr->CHAR_CONF_NAME),"../../../server-code/src/char/char.c", 5677, __func__));
- (iMalloc->free((chr->NET_CONF_NAME),"../../../server-code/src/char/char.c", 5678, __func__));
- (iMalloc->free((chr->SQL_CONF_NAME),"../../../server-code/src/char/char.c", 5679, __func__));
- (iMalloc->free((chr->INTER_CONF_NAME),"../../../server-code/src/char/char.c", 5680, __func__));
-
- HPM->event(HPET_POST_FINAL);
-
- (showmsg->showStatus(("Finished.\n")));
- return
-# 5685 "../../../server-code/src/char/char.c" 3 4
- 0
-# 5685 "../../../server-code/src/char/char.c"
- ;
-}
-
-
-
-
-
-void do_abort(void)
-{
-}
-
-void set_server_type(void) {
- (core->server_type) = SERVER_TYPE_CHAR;
-}
-
-
-void do_shutdown(void)
-{
- if( core->runflag != CHARSERVER_ST_SHUTDOWN )
- {
- int id;
- core->runflag = CHARSERVER_ST_SHUTDOWN;
- (showmsg->showStatus(("Shutting down...\n")));
-
- for( id = 0; id < ( (int)(sizeof(chr->server)/sizeof((chr->server)[0])) ); ++id )
- mapif->server_reset(id);
- loginif->check_shutdown();
- sockt->flush_fifos();
- core->runflag = CORE_ST_STOP;
- }
-}
-
-
-
-
-
-
-
-static
-# 5723 "../../../server-code/src/char/char.c" 3 4
- _Bool
-# 5723 "../../../server-code/src/char/char.c"
- cmdline_arg_charconfig (const char *name, const char *params)
-{
- (iMalloc->free((chr->CHAR_CONF_NAME),"../../../server-code/src/char/char.c", 5725, __func__));
- chr->CHAR_CONF_NAME = (iMalloc->astrdup((params),"../../../server-code/src/char/char.c", 5726, __func__));
- return
-# 5727 "../../../server-code/src/char/char.c" 3 4
- 1
-# 5727 "../../../server-code/src/char/char.c"
- ;
-}
-
-
-
-
-
-
-static
-# 5735 "../../../server-code/src/char/char.c" 3 4
- _Bool
-# 5735 "../../../server-code/src/char/char.c"
- cmdline_arg_interconfig (const char *name, const char *params)
-{
- (iMalloc->free((chr->INTER_CONF_NAME),"../../../server-code/src/char/char.c", 5737, __func__));
- chr->INTER_CONF_NAME = (iMalloc->astrdup((params),"../../../server-code/src/char/char.c", 5738, __func__));
- return
-# 5739 "../../../server-code/src/char/char.c" 3 4
- 1
-# 5739 "../../../server-code/src/char/char.c"
- ;
-}
-
-
-
-
-
-
-static
-# 5747 "../../../server-code/src/char/char.c" 3 4
- _Bool
-# 5747 "../../../server-code/src/char/char.c"
- cmdline_arg_netconfig (const char *name, const char *params)
-{
- (iMalloc->free((chr->NET_CONF_NAME),"../../../server-code/src/char/char.c", 5749, __func__));
- chr->NET_CONF_NAME = (iMalloc->astrdup((params),"../../../server-code/src/char/char.c", 5750, __func__));
- return
-# 5751 "../../../server-code/src/char/char.c" 3 4
- 1
-# 5751 "../../../server-code/src/char/char.c"
- ;
-}
-
-
-
-void cmdline_args_init_local(void)
-{
- cmdline->arg_add(((unsigned int)-1), "--" "char-config", '\0', cmdline_arg_charconfig, "Alternative char-server configuration.", CMDLINE_OPT_PARAM);
- cmdline->arg_add(((unsigned int)-1), "--" "inter-config", '\0', cmdline_arg_interconfig, "Alternative inter-server configuration.", CMDLINE_OPT_PARAM);
- cmdline->arg_add(((unsigned int)-1), "--" "net-config", '\0', cmdline_arg_netconfig, "Alternative network configuration.", CMDLINE_OPT_PARAM);
-}
-
-int do_init(int argc, char **argv) {
- int i;
- memset(&skillid2idx, 0, sizeof(skillid2idx));
-
- char_load_defaults();
-
- chr->CHAR_CONF_NAME = (iMalloc->astrdup(("conf/char-server.conf"),"../../../server-code/src/char/char.c", 5769, __func__));
- chr->NET_CONF_NAME = (iMalloc->astrdup(("conf/network.conf"),"../../../server-code/src/char/char.c", 5770, __func__));
- chr->SQL_CONF_NAME = (iMalloc->astrdup(("conf/inter-server.conf"),"../../../server-code/src/char/char.c", 5771, __func__));
- chr->INTER_CONF_NAME = (iMalloc->astrdup(("conf/inter-server.conf"),"../../../server-code/src/char/char.c", 5772, __func__));
-
- for (i = 0; i < 2; i++)
- memset(&(chr->server[i].maps), 0, sizeof(chr->server[i].maps));
-
- HPM_char_do_init();
- cmdline->exec(argc, argv, CMDLINE_OPT_PREINIT);
- HPM->config_read();
- HPM->event(HPET_PRE_INIT);
-
-
- mapindex->init();
-
-
- start_point.map = mapindex->name2id("iz_int");
-
-
-
-
- cmdline->exec(argc, argv, CMDLINE_OPT_NORMAL);
- chr->config_read(chr->CHAR_CONF_NAME);
- sockt->net_config_read(chr->NET_CONF_NAME);
- chr->sql_config_read(chr->SQL_CONF_NAME);
-
- if (strcmp(chr->userid, "s1")==0 && strcmp(chr->passwd, "p1")==0) {
- (showmsg->showWarning(("Using the default user/password s1/p1 is NOT RECOMMENDED.\n")));
- (showmsg->showNotice(("Please edit your 'login' table to create a proper inter-server user/password (gender 'S')\n")));
- (showmsg->showNotice(("And then change the user/password to use in conf/char-server.conf (or conf/import/char_conf.txt)\n")));
- }
-
- inter->init_sql(chr->INTER_CONF_NAME);
-
- auth_db = DB->alloc("../../../server-code/src/char/char.c",__func__,5804,DB_INT,(DB_OPT_RELEASE_DATA),sizeof(int));
- chr->online_char_db = DB->alloc("../../../server-code/src/char/char.c",__func__,5805,DB_INT,(DB_OPT_RELEASE_DATA),sizeof(int));
-
- HPM->event(HPET_INIT);
-
- chr->mmo_char_sql_init();
- chr->read_fame_list();
-
- if ((sockt->naddr_ != 0) && (!login_ip || !chr->ip)) {
- char ip_str[16];
- sockt->ip2str(sockt->addr_[0], ip_str);
-
- if (sockt->naddr_ > 1)
- (showmsg->showStatus(("Multiple interfaces detected.. using %s as our IP address\n"), ip_str));
- else
- (showmsg->showStatus(("Defaulting to %s as our IP address\n"), ip_str));
- if (!login_ip) {
- (strlib->safestrncpy_((login_ip_str),(ip_str),(sizeof(login_ip_str))));
- login_ip = sockt->str2ip(login_ip_str);
- }
- if (!chr->ip) {
- (strlib->safestrncpy_((char_ip_str),(ip_str),(sizeof(char_ip_str))));
- chr->ip = sockt->str2ip(char_ip_str);
- }
- }
-
- loginif->init();
- do_init_mapif();
-
-
- timer->add_func_list(chr->broadcast_user_count, "chr->broadcast_user_count");
- timer->add_interval(timer->gettick() + 1000, chr->broadcast_user_count, 0, 0, 5 * 1000);
-
-
- timer->add_func_list(chr->waiting_disconnect, "chr->waiting_disconnect");
-
-
- timer->add_func_list(chr->online_data_cleanup, "chr->online_data_cleanup");
- timer->add_interval(timer->gettick() + 1000, chr->online_data_cleanup, 0, 0, 600 * 1000);
-
-
-
- if( (-1) == SQL->Query(inter->sql_handle, "DELETE FROM `%s` WHERE `account_id` = '0'", char_db) )
- (SQL->ShowDebug_((inter->sql_handle), "../../../server-code/src/char/char.c", 5847));
-
-
- if( (-1) == SQL->Query(inter->sql_handle, "DELETE FROM `%s` WHERE `guild_lv` = '0' AND `max_member` = '0' AND `exp` = '0' AND `next_exp` = '0' AND `average_lv` = '0'", guild_db) )
- (SQL->ShowDebug_((inter->sql_handle), "../../../server-code/src/char/char.c", 5851));
-
-
- if( (-1) == SQL->Query(inter->sql_handle, "DELETE FROM `%s` WHERE `guild_id` = '0' AND `account_id` = '0' AND `char_id` = '0'", guild_member_db) )
- (SQL->ShowDebug_((inter->sql_handle), "../../../server-code/src/char/char.c", 5855));
-
- sockt->set_defaultparse(chr->parse_char);
-
- if ((chr->char_fd = sockt->make_listen_bind(bind_ip,chr->port)) == -1) {
- (showmsg->showFatalError(("Failed to bind to port '""\033[1;37m""%d""\033[0m""'\n"),chr->port));
- exit(
-# 5861 "../../../server-code/src/char/char.c" 3 4
- 1
-# 5861 "../../../server-code/src/char/char.c"
- );
- }
-
- Sql_HerculesUpdateCheck(inter->sql_handle);
-
- console->input->setSQL(inter->sql_handle);
- console->display_gplnotice();
-
- (showmsg->showStatus(("The char-server is ""\033[1;32m""ready""\033[0m"" (Server is listening on the port %d).\n\n"), chr->port));
-
- if( core->runflag != CORE_ST_STOP )
- {
- core->shutdown_callback = do_shutdown;
- core->runflag = CHARSERVER_ST_RUNNING;
- }
-
- HPM->event(HPET_READY);
-
- return 0;
-}
-
-void char_load_defaults(void)
-{
- mapindex_defaults();
- pincode_defaults();
- char_defaults();
- loginif_defaults();
- mapif_defaults();
- inter_auction_defaults();
- inter_elemental_defaults();
- inter_guild_defaults();
- inter_homunculus_defaults();
- inter_mail_defaults();
- inter_mercenary_defaults();
- inter_party_defaults();
- inter_pet_defaults();
- inter_quest_defaults();
- inter_storage_defaults();
- inter_defaults();
- geoip_defaults();
-}
-
-void char_defaults(void)
-{
- chr = &char_s;
-
- memset(chr->server, 0, sizeof(chr->server));
-
- chr->login_fd = 0;
- chr->char_fd = -1;
- chr->online_char_db =
-# 5911 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 5911 "../../../server-code/src/char/char.c"
- ;
- chr->char_db_ =
-# 5912 "../../../server-code/src/char/char.c" 3 4
- ((void *)0)
-# 5912 "../../../server-code/src/char/char.c"
- ;
-
- memset(chr->userid, 0, sizeof(chr->userid));
- memset(chr->passwd, 0, sizeof(chr->passwd));
- memset(chr->server_name, 0, sizeof(chr->server_name));
-
- chr->ip = 0;
- chr->port = 6121;
- chr->server_type = 0;
- chr->new_display = 0;
-
- chr->waiting_disconnect = char_waiting_disconnect;
- chr->delete_char_sql = char_delete_char_sql;
- chr->create_online_char_data = char_create_online_char_data;
- chr->set_account_online = char_set_account_online;
- chr->set_account_offline = char_set_account_offline;
- chr->set_char_charselect = char_set_char_charselect;
- chr->set_char_online = char_set_char_online;
- chr->set_char_offline = char_set_char_offline;
- chr->db_setoffline = char_db_setoffline;
- chr->db_kickoffline = char_db_kickoffline;
- chr->set_login_all_offline = char_set_login_all_offline;
- chr->set_all_offline = char_set_all_offline;
- chr->set_all_offline_sql = char_set_all_offline_sql;
- chr->create_charstatus = char_create_charstatus;
- chr->mmo_char_tosql = char_mmo_char_tosql;
- chr->memitemdata_to_sql = char_memitemdata_to_sql;
- chr->mmo_gender = char_mmo_gender;
- chr->mmo_chars_fromsql = char_mmo_chars_fromsql;
- chr->mmo_char_fromsql = char_mmo_char_fromsql;
- chr->mmo_char_sql_init = char_mmo_char_sql_init;
- chr->char_slotchange = char_char_slotchange;
- chr->rename_char_sql = char_rename_char_sql;
- chr->check_char_name = char_check_char_name;
- chr->make_new_char_sql = char_make_new_char_sql;
- chr->divorce_char_sql = char_divorce_char_sql;
- chr->count_users = char_count_users;
- chr->mmo_char_tobuf = char_mmo_char_tobuf;
- chr->mmo_char_send099d = char_mmo_char_send099d;
- chr->mmo_char_send_ban_list = char_mmo_char_send_ban_list;
- chr->mmo_char_send_slots_info = char_mmo_char_send_slots_info;
- chr->mmo_char_send_characters = char_mmo_char_send_characters;
- chr->char_married = char_char_married;
- chr->char_child = char_char_child;
- chr->char_family = char_char_family;
- chr->disconnect_player = char_disconnect_player;
- chr->authfail_fd = char_authfail_fd;
- chr->request_account_data = char_request_account_data;
- chr->auth_ok = char_auth_ok;
- chr->ping_login_server = char_ping_login_server;
- chr->parse_fromlogin_connection_state = char_parse_fromlogin_connection_state;
- chr->auth_error = char_auth_error;
- chr->parse_fromlogin_auth_state = char_parse_fromlogin_auth_state;
- chr->parse_fromlogin_account_data = char_parse_fromlogin_account_data;
- chr->parse_fromlogin_login_pong = char_parse_fromlogin_login_pong;
- chr->changesex = char_changesex;
- chr->parse_fromlogin_changesex_reply = char_parse_fromlogin_changesex_reply;
- chr->parse_fromlogin_account_reg2 = char_parse_fromlogin_account_reg2;
- chr->parse_fromlogin_ban = char_parse_fromlogin_ban;
- chr->parse_fromlogin_kick = char_parse_fromlogin_kick;
- chr->update_ip = char_update_ip;
- chr->parse_fromlogin_update_ip = char_parse_fromlogin_update_ip;
- chr->parse_fromlogin_accinfo2_failed = char_parse_fromlogin_accinfo2_failed;
- chr->parse_fromlogin_accinfo2_ok = char_parse_fromlogin_accinfo2_ok;
- chr->parse_fromlogin = char_parse_fromlogin;
- chr->request_accreg2 = char_request_accreg2;
- chr->global_accreg_to_login_start = char_global_accreg_to_login_start;
- chr->global_accreg_to_login_send = char_global_accreg_to_login_send;
- chr->global_accreg_to_login_add = char_global_accreg_to_login_add;
- chr->read_fame_list = char_read_fame_list;
- chr->send_fame_list = char_send_fame_list;
- chr->update_fame_list = char_update_fame_list;
- chr->loadName = char_loadName;
- chr->parse_frommap_datasync = char_parse_frommap_datasync;
- chr->parse_frommap_skillid2idx = char_parse_frommap_skillid2idx;
- chr->map_received_ok = char_map_received_ok;
- chr->send_maps = char_send_maps;
- chr->parse_frommap_map_names = char_parse_frommap_map_names;
- chr->send_scdata = char_send_scdata;
- chr->parse_frommap_request_scdata = char_parse_frommap_request_scdata;
- chr->parse_frommap_set_users_count = char_parse_frommap_set_users_count;
- chr->parse_frommap_set_users = char_parse_frommap_set_users;
- chr->save_character_ack = char_save_character_ack;
- chr->parse_frommap_save_character = char_parse_frommap_save_character;
- chr->select_ack = char_select_ack;
- chr->parse_frommap_char_select_req = char_parse_frommap_char_select_req;
- chr->change_map_server_ack = char_change_map_server_ack;
- chr->parse_frommap_change_map_server = char_parse_frommap_change_map_server;
- chr->parse_frommap_remove_friend = char_parse_frommap_remove_friend;
- chr->char_name_ack = char_char_name_ack;
- chr->parse_frommap_char_name_request = char_parse_frommap_char_name_request;
- chr->parse_frommap_change_email = char_parse_frommap_change_email;
- chr->ban = char_ban;
- chr->unban = char_unban;
- chr->ask_name_ack = char_ask_name_ack;
- chr->changecharsex = char_changecharsex;
- chr->parse_frommap_change_account = char_parse_frommap_change_account;
- chr->parse_frommap_fame_list = char_parse_frommap_fame_list;
- chr->parse_frommap_divorce_char = char_parse_frommap_divorce_char;
- chr->parse_frommap_ragsrvinfo = char_parse_frommap_ragsrvinfo;
- chr->parse_frommap_set_char_offline = char_parse_frommap_set_char_offline;
- chr->parse_frommap_set_all_offline = char_parse_frommap_set_all_offline;
- chr->parse_frommap_set_char_online = char_parse_frommap_set_char_online;
- chr->parse_frommap_build_fame_list = char_parse_frommap_build_fame_list;
- chr->parse_frommap_save_status_change_data = char_parse_frommap_save_status_change_data;
- chr->send_pong = char_send_pong;
- chr->parse_frommap_ping = char_parse_frommap_ping;
- chr->map_auth_ok = char_map_auth_ok;
- chr->map_auth_failed = char_map_auth_failed;
- chr->parse_frommap_auth_request = char_parse_frommap_auth_request;
- chr->parse_frommap_update_ip = char_parse_frommap_update_ip;
- chr->parse_frommap_request_stats_report = char_parse_frommap_request_stats_report;
- chr->parse_frommap_scdata_update = char_parse_frommap_scdata_update;
- chr->parse_frommap_scdata_delete = char_parse_frommap_scdata_delete;
- chr->parse_frommap = char_parse_frommap;
- chr->search_mapserver = char_search_mapserver;
- chr->mapif_init = char_mapif_init;
- chr->lan_subnet_check = char_lan_subnet_check;
- chr->delete2_ack = char_delete2_ack;
- chr->delete2_accept_actual_ack = char_delete2_accept_actual_ack;
- chr->delete2_accept_ack = char_delete2_accept_ack;
- chr->delete2_cancel_ack = char_delete2_cancel_ack;
- chr->delete2_req = char_delete2_req;
- chr->delete2_accept = char_delete2_accept;
- chr->delete2_cancel = char_delete2_cancel;
- chr->send_account_id = char_send_account_id;
- chr->parse_char_connect = char_parse_char_connect;
- chr->send_map_info = char_send_map_info;
- chr->send_wait_char_server = char_send_wait_char_server;
- chr->search_default_maps_mapserver = char_search_default_maps_mapserver;
- chr->parse_char_select = char_parse_char_select;
- chr->creation_failed = char_creation_failed;
- chr->creation_ok = char_creation_ok;
- chr->parse_char_create_new_char = char_parse_char_create_new_char;
- chr->delete_char_failed = char_delete_char_failed;
- chr->delete_char_ok = char_delete_char_ok;
- chr->parse_char_delete_char = char_parse_char_delete_char;
- chr->parse_char_ping = char_parse_char_ping;
- chr->allow_rename = char_allow_rename;
- chr->parse_char_rename_char = char_parse_char_rename_char;
- chr->parse_char_rename_char2 = char_parse_char_rename_char2;
- chr->rename_char_ack = char_rename_char_ack;
- chr->parse_char_rename_char_confirm = char_parse_char_rename_char_confirm;
- chr->captcha_notsupported = char_captcha_notsupported;
- chr->parse_char_request_captcha = char_parse_char_request_captcha;
- chr->parse_char_check_captcha = char_parse_char_check_captcha;
- chr->parse_char_delete2_req = char_parse_char_delete2_req;
- chr->parse_char_delete2_accept = char_parse_char_delete2_accept;
- chr->parse_char_delete2_cancel = char_parse_char_delete2_cancel;
- chr->login_map_server_ack = char_login_map_server_ack;
- chr->parse_char_login_map_server = char_parse_char_login_map_server;
- chr->parse_char_pincode_check = char_parse_char_pincode_check;
- chr->parse_char_pincode_window = char_parse_char_pincode_window;
- chr->parse_char_pincode_change = char_parse_char_pincode_change;
- chr->parse_char_pincode_first_pin = char_parse_char_pincode_first_pin;
- chr->parse_char_request_chars = char_parse_char_request_chars;
- chr->change_character_slot_ack = char_change_character_slot_ack;
- chr->parse_char_move_character = char_parse_char_move_character;
- chr->parse_char_unknown_packet = char_parse_char_unknown_packet;
- chr->parse_char = char_parse_char;
- chr->broadcast_user_count = char_broadcast_user_count;
- chr->send_accounts_tologin_sub = char_send_accounts_tologin_sub;
- chr->send_accounts_tologin = char_send_accounts_tologin;
- chr->check_connect_login_server = char_check_connect_login_server;
- chr->online_data_cleanup_sub = char_online_data_cleanup_sub;
- chr->online_data_cleanup = char_online_data_cleanup;
- chr->sql_config_read = char_sql_config_read;
- chr->config_dispatch = char_config_dispatch;
- chr->config_read = char_config_read;
-}
diff --git a/servergreps/hercules/20150226/src/clif.c b/servergreps/hercules/20150226/src/clif.c
deleted file mode 100644
index 7c64106..0000000
--- a/servergreps/hercules/20150226/src/clif.c
+++ /dev/null
@@ -1,46996 +0,0 @@
-# 1 "../../../server-code/src/map/clif.c"
-# 1 "<built-in>"
-# 1 "<command-line>"
-# 1 "/usr/include/stdc-predef.h" 1 3 4
-# 1 "<command-line>" 2
-# 1 "../../../server-code/src/map/clif.c"
-# 23 "../../../server-code/src/map/clif.c"
-# 1 "../../../server-code/src/config/core.h" 1
-# 90 "../../../server-code/src/config/core.h"
-# 1 "../../../server-code/src/config/./renewal.h" 1
-# 91 "../../../server-code/src/config/core.h" 2
-# 1 "../../../server-code/src/config/./secure.h" 1
-# 92 "../../../server-code/src/config/core.h" 2
-# 1 "../../../server-code/src/config/./classes/general.h" 1
-# 93 "../../../server-code/src/config/core.h" 2
-
-
-
-
-# 1 "../../../server-code/src/config/./const.h" 1
-# 62 "../../../server-code/src/config/./const.h"
- typedef short defType;
-# 98 "../../../server-code/src/config/core.h" 2
-# 24 "../../../server-code/src/map/clif.c" 2
-# 1 "../../../server-code/src/map/clif.h" 1
-# 24 "../../../server-code/src/map/clif.h"
-# 1 "../../../server-code/src/map/map.h" 1
-# 24 "../../../server-code/src/map/map.h"
-# 1 "../../../server-code/src/map/atcommand.h" 1
-# 24 "../../../server-code/src/map/atcommand.h"
-# 1 "../../../server-code/src/map/pc_groups.h" 1
-# 24 "../../../server-code/src/map/pc_groups.h"
-# 1 "../../../server-code/src/common/hercules.h" 1
-# 24 "../../../server-code/src/common/hercules.h"
-# 1 "../../../server-code/src/common/cbasetypes.h" 1
-# 116 "../../../server-code/src/common/cbasetypes.h"
-# 1 "/usr/include/inttypes.h" 1 3 4
-# 25 "/usr/include/inttypes.h" 3 4
-# 1 "/usr/include/features.h" 1 3 4
-# 361 "/usr/include/features.h" 3 4
-# 1 "/usr/include/x86_64-linux-gnu/sys/cdefs.h" 1 3 4
-# 410 "/usr/include/x86_64-linux-gnu/sys/cdefs.h" 3 4
-# 1 "/usr/include/x86_64-linux-gnu/bits/wordsize.h" 1 3 4
-# 411 "/usr/include/x86_64-linux-gnu/sys/cdefs.h" 2 3 4
-# 362 "/usr/include/features.h" 2 3 4
-# 385 "/usr/include/features.h" 3 4
-# 1 "/usr/include/x86_64-linux-gnu/gnu/stubs.h" 1 3 4
-# 10 "/usr/include/x86_64-linux-gnu/gnu/stubs.h" 3 4
-# 1 "/usr/include/x86_64-linux-gnu/gnu/stubs-64.h" 1 3 4
-# 11 "/usr/include/x86_64-linux-gnu/gnu/stubs.h" 2 3 4
-# 386 "/usr/include/features.h" 2 3 4
-# 26 "/usr/include/inttypes.h" 2 3 4
-
-# 1 "/usr/lib/gcc/x86_64-linux-gnu/5/include/stdint.h" 1 3 4
-# 9 "/usr/lib/gcc/x86_64-linux-gnu/5/include/stdint.h" 3 4
-# 1 "/usr/include/stdint.h" 1 3 4
-# 26 "/usr/include/stdint.h" 3 4
-# 1 "/usr/include/x86_64-linux-gnu/bits/wchar.h" 1 3 4
-# 27 "/usr/include/stdint.h" 2 3 4
-# 1 "/usr/include/x86_64-linux-gnu/bits/wordsize.h" 1 3 4
-# 28 "/usr/include/stdint.h" 2 3 4
-# 36 "/usr/include/stdint.h" 3 4
-
-# 36 "/usr/include/stdint.h" 3 4
-typedef signed char int8_t;
-typedef short int int16_t;
-typedef int int32_t;
-
-typedef long int int64_t;
-
-
-
-
-
-
-
-typedef unsigned char uint8_t;
-typedef unsigned short int uint16_t;
-
-typedef unsigned int uint32_t;
-
-
-
-typedef unsigned long int uint64_t;
-# 65 "/usr/include/stdint.h" 3 4
-typedef signed char int_least8_t;
-typedef short int int_least16_t;
-typedef int int_least32_t;
-
-typedef long int int_least64_t;
-
-
-
-
-
-
-typedef unsigned char uint_least8_t;
-typedef unsigned short int uint_least16_t;
-typedef unsigned int uint_least32_t;
-
-typedef unsigned long int uint_least64_t;
-# 90 "/usr/include/stdint.h" 3 4
-typedef signed char int_fast8_t;
-
-typedef long int int_fast16_t;
-typedef long int int_fast32_t;
-typedef long int int_fast64_t;
-# 103 "/usr/include/stdint.h" 3 4
-typedef unsigned char uint_fast8_t;
-
-typedef unsigned long int uint_fast16_t;
-typedef unsigned long int uint_fast32_t;
-typedef unsigned long int uint_fast64_t;
-# 119 "/usr/include/stdint.h" 3 4
-typedef long int intptr_t;
-
-
-typedef unsigned long int uintptr_t;
-# 134 "/usr/include/stdint.h" 3 4
-typedef long int intmax_t;
-typedef unsigned long int uintmax_t;
-# 10 "/usr/lib/gcc/x86_64-linux-gnu/5/include/stdint.h" 2 3 4
-# 28 "/usr/include/inttypes.h" 2 3 4
-
-
-
-
-
-
-typedef int __gwchar_t;
-# 266 "/usr/include/inttypes.h" 3 4
-
-
-
-
-
-typedef struct
- {
- long int quot;
- long int rem;
- } imaxdiv_t;
-# 290 "/usr/include/inttypes.h" 3 4
-extern intmax_t imaxabs (intmax_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__));
-
-
-extern imaxdiv_t imaxdiv (intmax_t __numer, intmax_t __denom)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__));
-
-
-extern intmax_t strtoimax (const char *__restrict __nptr,
- char **__restrict __endptr, int __base) __attribute__ ((__nothrow__ , __leaf__));
-
-
-extern uintmax_t strtoumax (const char *__restrict __nptr,
- char ** __restrict __endptr, int __base) __attribute__ ((__nothrow__ , __leaf__));
-
-
-extern intmax_t wcstoimax (const __gwchar_t *__restrict __nptr,
- __gwchar_t **__restrict __endptr, int __base)
- __attribute__ ((__nothrow__ , __leaf__));
-
-
-extern uintmax_t wcstoumax (const __gwchar_t *__restrict __nptr,
- __gwchar_t ** __restrict __endptr, int __base)
- __attribute__ ((__nothrow__ , __leaf__));
-# 432 "/usr/include/inttypes.h" 3 4
-
-# 117 "../../../server-code/src/common/cbasetypes.h" 2
-
-# 1 "/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/limits.h" 1 3 4
-# 34 "/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/limits.h" 3 4
-# 1 "/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/syslimits.h" 1 3 4
-
-
-
-
-
-
-# 1 "/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/limits.h" 1 3 4
-# 168 "/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/limits.h" 3 4
-# 1 "/usr/include/limits.h" 1 3 4
-# 143 "/usr/include/limits.h" 3 4
-# 1 "/usr/include/x86_64-linux-gnu/bits/posix1_lim.h" 1 3 4
-# 160 "/usr/include/x86_64-linux-gnu/bits/posix1_lim.h" 3 4
-# 1 "/usr/include/x86_64-linux-gnu/bits/local_lim.h" 1 3 4
-# 38 "/usr/include/x86_64-linux-gnu/bits/local_lim.h" 3 4
-# 1 "/usr/include/linux/limits.h" 1 3 4
-# 39 "/usr/include/x86_64-linux-gnu/bits/local_lim.h" 2 3 4
-# 161 "/usr/include/x86_64-linux-gnu/bits/posix1_lim.h" 2 3 4
-# 144 "/usr/include/limits.h" 2 3 4
-
-
-
-# 1 "/usr/include/x86_64-linux-gnu/bits/posix2_lim.h" 1 3 4
-# 148 "/usr/include/limits.h" 2 3 4
-# 169 "/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/limits.h" 2 3 4
-# 8 "/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/syslimits.h" 2 3 4
-# 35 "/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/limits.h" 2 3 4
-# 119 "../../../server-code/src/common/cbasetypes.h" 2
-# 1 "/usr/include/time.h" 1 3 4
-# 29 "/usr/include/time.h" 3 4
-
-
-
-
-
-
-
-
-# 1 "/usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h" 1 3 4
-# 216 "/usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h" 3 4
-typedef long unsigned int size_t;
-# 38 "/usr/include/time.h" 2 3 4
-
-
-
-# 1 "/usr/include/x86_64-linux-gnu/bits/time.h" 1 3 4
-# 42 "/usr/include/time.h" 2 3 4
-# 55 "/usr/include/time.h" 3 4
-# 1 "/usr/include/x86_64-linux-gnu/bits/types.h" 1 3 4
-# 27 "/usr/include/x86_64-linux-gnu/bits/types.h" 3 4
-# 1 "/usr/include/x86_64-linux-gnu/bits/wordsize.h" 1 3 4
-# 28 "/usr/include/x86_64-linux-gnu/bits/types.h" 2 3 4
-
-
-typedef unsigned char __u_char;
-typedef unsigned short int __u_short;
-typedef unsigned int __u_int;
-typedef unsigned long int __u_long;
-
-
-typedef signed char __int8_t;
-typedef unsigned char __uint8_t;
-typedef signed short int __int16_t;
-typedef unsigned short int __uint16_t;
-typedef signed int __int32_t;
-typedef unsigned int __uint32_t;
-
-typedef signed long int __int64_t;
-typedef unsigned long int __uint64_t;
-
-
-
-
-
-
-
-typedef long int __quad_t;
-typedef unsigned long int __u_quad_t;
-# 121 "/usr/include/x86_64-linux-gnu/bits/types.h" 3 4
-# 1 "/usr/include/x86_64-linux-gnu/bits/typesizes.h" 1 3 4
-# 122 "/usr/include/x86_64-linux-gnu/bits/types.h" 2 3 4
-
-
-typedef unsigned long int __dev_t;
-typedef unsigned int __uid_t;
-typedef unsigned int __gid_t;
-typedef unsigned long int __ino_t;
-typedef unsigned long int __ino64_t;
-typedef unsigned int __mode_t;
-typedef unsigned long int __nlink_t;
-typedef long int __off_t;
-typedef long int __off64_t;
-typedef int __pid_t;
-typedef struct { int __val[2]; } __fsid_t;
-typedef long int __clock_t;
-typedef unsigned long int __rlim_t;
-typedef unsigned long int __rlim64_t;
-typedef unsigned int __id_t;
-typedef long int __time_t;
-typedef unsigned int __useconds_t;
-typedef long int __suseconds_t;
-
-typedef int __daddr_t;
-typedef int __key_t;
-
-
-typedef int __clockid_t;
-
-
-typedef void * __timer_t;
-
-
-typedef long int __blksize_t;
-
-
-
-
-typedef long int __blkcnt_t;
-typedef long int __blkcnt64_t;
-
-
-typedef unsigned long int __fsblkcnt_t;
-typedef unsigned long int __fsblkcnt64_t;
-
-
-typedef unsigned long int __fsfilcnt_t;
-typedef unsigned long int __fsfilcnt64_t;
-
-
-typedef long int __fsword_t;
-
-typedef long int __ssize_t;
-
-
-typedef long int __syscall_slong_t;
-
-typedef unsigned long int __syscall_ulong_t;
-
-
-
-typedef __off64_t __loff_t;
-typedef __quad_t *__qaddr_t;
-typedef char *__caddr_t;
-
-
-typedef long int __intptr_t;
-
-
-typedef unsigned int __socklen_t;
-# 56 "/usr/include/time.h" 2 3 4
-
-
-
-typedef __clock_t clock_t;
-
-
-
-# 73 "/usr/include/time.h" 3 4
-
-
-typedef __time_t time_t;
-
-
-
-# 91 "/usr/include/time.h" 3 4
-typedef __clockid_t clockid_t;
-# 103 "/usr/include/time.h" 3 4
-typedef __timer_t timer_t;
-# 120 "/usr/include/time.h" 3 4
-struct timespec
- {
- __time_t tv_sec;
- __syscall_slong_t tv_nsec;
- };
-
-
-
-
-
-
-
-
-struct tm
-{
- int tm_sec;
- int tm_min;
- int tm_hour;
- int tm_mday;
- int tm_mon;
- int tm_year;
- int tm_wday;
- int tm_yday;
- int tm_isdst;
-
-
- long int tm_gmtoff;
- const char *tm_zone;
-
-
-
-
-};
-
-
-
-
-
-
-
-
-struct itimerspec
- {
- struct timespec it_interval;
- struct timespec it_value;
- };
-
-
-struct sigevent;
-
-
-
-
-
-typedef __pid_t pid_t;
-# 186 "/usr/include/time.h" 3 4
-
-
-
-extern clock_t clock (void) __attribute__ ((__nothrow__ , __leaf__));
-
-
-extern time_t time (time_t *__timer) __attribute__ ((__nothrow__ , __leaf__));
-
-
-extern double difftime (time_t __time1, time_t __time0)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__));
-
-
-extern time_t mktime (struct tm *__tp) __attribute__ ((__nothrow__ , __leaf__));
-
-
-
-
-
-extern size_t strftime (char *__restrict __s, size_t __maxsize,
- const char *__restrict __format,
- const struct tm *__restrict __tp) __attribute__ ((__nothrow__ , __leaf__));
-
-# 221 "/usr/include/time.h" 3 4
-# 1 "/usr/include/xlocale.h" 1 3 4
-# 27 "/usr/include/xlocale.h" 3 4
-typedef struct __locale_struct
-{
-
- struct __locale_data *__locales[13];
-
-
- const unsigned short int *__ctype_b;
- const int *__ctype_tolower;
- const int *__ctype_toupper;
-
-
- const char *__names[13];
-} *__locale_t;
-
-
-typedef __locale_t locale_t;
-# 222 "/usr/include/time.h" 2 3 4
-
-extern size_t strftime_l (char *__restrict __s, size_t __maxsize,
- const char *__restrict __format,
- const struct tm *__restrict __tp,
- __locale_t __loc) __attribute__ ((__nothrow__ , __leaf__));
-# 236 "/usr/include/time.h" 3 4
-
-
-
-extern struct tm *gmtime (const time_t *__timer) __attribute__ ((__nothrow__ , __leaf__));
-
-
-
-extern struct tm *localtime (const time_t *__timer) __attribute__ ((__nothrow__ , __leaf__));
-
-
-
-
-
-extern struct tm *gmtime_r (const time_t *__restrict __timer,
- struct tm *__restrict __tp) __attribute__ ((__nothrow__ , __leaf__));
-
-
-
-extern struct tm *localtime_r (const time_t *__restrict __timer,
- struct tm *__restrict __tp) __attribute__ ((__nothrow__ , __leaf__));
-
-
-
-
-
-extern char *asctime (const struct tm *__tp) __attribute__ ((__nothrow__ , __leaf__));
-
-
-extern char *ctime (const time_t *__timer) __attribute__ ((__nothrow__ , __leaf__));
-
-
-
-
-
-
-
-extern char *asctime_r (const struct tm *__restrict __tp,
- char *__restrict __buf) __attribute__ ((__nothrow__ , __leaf__));
-
-
-extern char *ctime_r (const time_t *__restrict __timer,
- char *__restrict __buf) __attribute__ ((__nothrow__ , __leaf__));
-
-
-
-
-extern char *__tzname[2];
-extern int __daylight;
-extern long int __timezone;
-
-
-
-
-extern char *tzname[2];
-
-
-
-extern void tzset (void) __attribute__ ((__nothrow__ , __leaf__));
-
-
-
-extern int daylight;
-extern long int timezone;
-
-
-
-
-
-extern int stime (const time_t *__when) __attribute__ ((__nothrow__ , __leaf__));
-# 319 "/usr/include/time.h" 3 4
-extern time_t timegm (struct tm *__tp) __attribute__ ((__nothrow__ , __leaf__));
-
-
-extern time_t timelocal (struct tm *__tp) __attribute__ ((__nothrow__ , __leaf__));
-
-
-extern int dysize (int __year) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__));
-# 334 "/usr/include/time.h" 3 4
-extern int nanosleep (const struct timespec *__requested_time,
- struct timespec *__remaining);
-
-
-
-extern int clock_getres (clockid_t __clock_id, struct timespec *__res) __attribute__ ((__nothrow__ , __leaf__));
-
-
-extern int clock_gettime (clockid_t __clock_id, struct timespec *__tp) __attribute__ ((__nothrow__ , __leaf__));
-
-
-extern int clock_settime (clockid_t __clock_id, const struct timespec *__tp)
- __attribute__ ((__nothrow__ , __leaf__));
-
-
-
-
-
-
-extern int clock_nanosleep (clockid_t __clock_id, int __flags,
- const struct timespec *__req,
- struct timespec *__rem);
-
-
-extern int clock_getcpuclockid (pid_t __pid, clockid_t *__clock_id) __attribute__ ((__nothrow__ , __leaf__));
-
-
-
-
-extern int timer_create (clockid_t __clock_id,
- struct sigevent *__restrict __evp,
- timer_t *__restrict __timerid) __attribute__ ((__nothrow__ , __leaf__));
-
-
-extern int timer_delete (timer_t __timerid) __attribute__ ((__nothrow__ , __leaf__));
-
-
-extern int timer_settime (timer_t __timerid, int __flags,
- const struct itimerspec *__restrict __value,
- struct itimerspec *__restrict __ovalue) __attribute__ ((__nothrow__ , __leaf__));
-
-
-extern int timer_gettime (timer_t __timerid, struct itimerspec *__value)
- __attribute__ ((__nothrow__ , __leaf__));
-
-
-extern int timer_getoverrun (timer_t __timerid) __attribute__ ((__nothrow__ , __leaf__));
-
-
-
-
-
-extern int timespec_get (struct timespec *__ts, int __base)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
-# 430 "/usr/include/time.h" 3 4
-
-# 120 "../../../server-code/src/common/cbasetypes.h" 2
-# 140 "../../../server-code/src/common/cbasetypes.h"
-
-# 140 "../../../server-code/src/common/cbasetypes.h"
-typedef int8_t int8;
-typedef int16_t int16;
-typedef int32_t int32;
-typedef int64_t int64;
-
-typedef int8_t sint8;
-typedef int16_t sint16;
-typedef int32_t sint32;
-typedef int64_t sint64;
-
-typedef uint8_t uint8;
-typedef uint16_t uint16;
-typedef uint32_t uint32;
-typedef uint64_t uint64;
-# 196 "../../../server-code/src/common/cbasetypes.h"
-typedef long int ppint;
-typedef long int ppint8;
-typedef long int ppint16;
-typedef long int ppint32;
-
-typedef unsigned long int ppuint;
-typedef unsigned long int ppuint8;
-typedef unsigned long int ppuint16;
-typedef unsigned long int ppuint32;
-
-
-
-
-
-# 1 "/usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h" 1 3 4
-# 149 "/usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h" 3 4
-
-# 149 "/usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h" 3 4
-typedef long int ptrdiff_t;
-# 328 "/usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h" 3 4
-typedef int wchar_t;
-# 426 "/usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h" 3 4
-typedef struct {
- long long __max_align_ll __attribute__((__aligned__(__alignof__(long long))));
- long double __max_align_ld __attribute__((__aligned__(__alignof__(long double))));
-} max_align_t;
-# 211 "../../../server-code/src/common/cbasetypes.h" 2
-# 227 "../../../server-code/src/common/cbasetypes.h"
-
-# 227 "../../../server-code/src/common/cbasetypes.h"
-typedef intptr_t intptr;
-typedef uintptr_t uintptr;
-
-
-
-
-
-
-
- typedef int64 sysint;
- typedef uint64 usysint;
-# 305 "../../../server-code/src/common/cbasetypes.h"
-# 1 "/usr/lib/gcc/x86_64-linux-gnu/5/include/stdbool.h" 1 3 4
-# 306 "../../../server-code/src/common/cbasetypes.h" 2
-# 395 "../../../server-code/src/common/cbasetypes.h"
-# 1 "/usr/include/ctype.h" 1 3 4
-# 28 "/usr/include/ctype.h" 3 4
-
-# 39 "/usr/include/ctype.h" 3 4
-# 1 "/usr/include/endian.h" 1 3 4
-# 36 "/usr/include/endian.h" 3 4
-# 1 "/usr/include/x86_64-linux-gnu/bits/endian.h" 1 3 4
-# 37 "/usr/include/endian.h" 2 3 4
-# 60 "/usr/include/endian.h" 3 4
-# 1 "/usr/include/x86_64-linux-gnu/bits/byteswap.h" 1 3 4
-# 28 "/usr/include/x86_64-linux-gnu/bits/byteswap.h" 3 4
-# 1 "/usr/include/x86_64-linux-gnu/bits/wordsize.h" 1 3 4
-# 29 "/usr/include/x86_64-linux-gnu/bits/byteswap.h" 2 3 4
-
-
-
-
-
-
-# 1 "/usr/include/x86_64-linux-gnu/bits/byteswap-16.h" 1 3 4
-# 36 "/usr/include/x86_64-linux-gnu/bits/byteswap.h" 2 3 4
-# 44 "/usr/include/x86_64-linux-gnu/bits/byteswap.h" 3 4
-
-# 44 "/usr/include/x86_64-linux-gnu/bits/byteswap.h" 3 4
-static __inline unsigned int
-__bswap_32 (unsigned int __bsx)
-{
- return __builtin_bswap32 (__bsx);
-}
-# 108 "/usr/include/x86_64-linux-gnu/bits/byteswap.h" 3 4
-static __inline __uint64_t
-__bswap_64 (__uint64_t __bsx)
-{
- return __builtin_bswap64 (__bsx);
-}
-# 61 "/usr/include/endian.h" 2 3 4
-# 40 "/usr/include/ctype.h" 2 3 4
-
-
-
-
-
-
-enum
-{
- _ISupper = ((0) < 8 ? ((1 << (0)) << 8) : ((1 << (0)) >> 8)),
- _ISlower = ((1) < 8 ? ((1 << (1)) << 8) : ((1 << (1)) >> 8)),
- _ISalpha = ((2) < 8 ? ((1 << (2)) << 8) : ((1 << (2)) >> 8)),
- _ISdigit = ((3) < 8 ? ((1 << (3)) << 8) : ((1 << (3)) >> 8)),
- _ISxdigit = ((4) < 8 ? ((1 << (4)) << 8) : ((1 << (4)) >> 8)),
- _ISspace = ((5) < 8 ? ((1 << (5)) << 8) : ((1 << (5)) >> 8)),
- _ISprint = ((6) < 8 ? ((1 << (6)) << 8) : ((1 << (6)) >> 8)),
- _ISgraph = ((7) < 8 ? ((1 << (7)) << 8) : ((1 << (7)) >> 8)),
- _ISblank = ((8) < 8 ? ((1 << (8)) << 8) : ((1 << (8)) >> 8)),
- _IScntrl = ((9) < 8 ? ((1 << (9)) << 8) : ((1 << (9)) >> 8)),
- _ISpunct = ((10) < 8 ? ((1 << (10)) << 8) : ((1 << (10)) >> 8)),
- _ISalnum = ((11) < 8 ? ((1 << (11)) << 8) : ((1 << (11)) >> 8))
-};
-# 79 "/usr/include/ctype.h" 3 4
-extern const unsigned short int **__ctype_b_loc (void)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__));
-extern const __int32_t **__ctype_tolower_loc (void)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__));
-extern const __int32_t **__ctype_toupper_loc (void)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__));
-# 104 "/usr/include/ctype.h" 3 4
-
-
-
-
-
-
-extern int isalnum (int) __attribute__ ((__nothrow__ , __leaf__));
-extern int isalpha (int) __attribute__ ((__nothrow__ , __leaf__));
-extern int iscntrl (int) __attribute__ ((__nothrow__ , __leaf__));
-extern int isdigit (int) __attribute__ ((__nothrow__ , __leaf__));
-extern int islower (int) __attribute__ ((__nothrow__ , __leaf__));
-extern int isgraph (int) __attribute__ ((__nothrow__ , __leaf__));
-extern int isprint (int) __attribute__ ((__nothrow__ , __leaf__));
-extern int ispunct (int) __attribute__ ((__nothrow__ , __leaf__));
-extern int isspace (int) __attribute__ ((__nothrow__ , __leaf__));
-extern int isupper (int) __attribute__ ((__nothrow__ , __leaf__));
-extern int isxdigit (int) __attribute__ ((__nothrow__ , __leaf__));
-
-
-
-extern int tolower (int __c) __attribute__ ((__nothrow__ , __leaf__));
-
-
-extern int toupper (int __c) __attribute__ ((__nothrow__ , __leaf__));
-
-
-
-
-
-
-
-
-extern int isblank (int) __attribute__ ((__nothrow__ , __leaf__));
-
-
-# 150 "/usr/include/ctype.h" 3 4
-extern int isascii (int __c) __attribute__ ((__nothrow__ , __leaf__));
-
-
-
-extern int toascii (int __c) __attribute__ ((__nothrow__ , __leaf__));
-
-
-
-extern int _toupper (int) __attribute__ ((__nothrow__ , __leaf__));
-extern int _tolower (int) __attribute__ ((__nothrow__ , __leaf__));
-# 271 "/usr/include/ctype.h" 3 4
-extern int isalnum_l (int, __locale_t) __attribute__ ((__nothrow__ , __leaf__));
-extern int isalpha_l (int, __locale_t) __attribute__ ((__nothrow__ , __leaf__));
-extern int iscntrl_l (int, __locale_t) __attribute__ ((__nothrow__ , __leaf__));
-extern int isdigit_l (int, __locale_t) __attribute__ ((__nothrow__ , __leaf__));
-extern int islower_l (int, __locale_t) __attribute__ ((__nothrow__ , __leaf__));
-extern int isgraph_l (int, __locale_t) __attribute__ ((__nothrow__ , __leaf__));
-extern int isprint_l (int, __locale_t) __attribute__ ((__nothrow__ , __leaf__));
-extern int ispunct_l (int, __locale_t) __attribute__ ((__nothrow__ , __leaf__));
-extern int isspace_l (int, __locale_t) __attribute__ ((__nothrow__ , __leaf__));
-extern int isupper_l (int, __locale_t) __attribute__ ((__nothrow__ , __leaf__));
-extern int isxdigit_l (int, __locale_t) __attribute__ ((__nothrow__ , __leaf__));
-
-extern int isblank_l (int, __locale_t) __attribute__ ((__nothrow__ , __leaf__));
-
-
-
-extern int __tolower_l (int __c, __locale_t __l) __attribute__ ((__nothrow__ , __leaf__));
-extern int tolower_l (int __c, __locale_t __l) __attribute__ ((__nothrow__ , __leaf__));
-
-
-extern int __toupper_l (int __c, __locale_t __l) __attribute__ ((__nothrow__ , __leaf__));
-extern int toupper_l (int __c, __locale_t __l) __attribute__ ((__nothrow__ , __leaf__));
-# 347 "/usr/include/ctype.h" 3 4
-
-# 396 "../../../server-code/src/common/cbasetypes.h" 2
-# 417 "../../../server-code/src/common/cbasetypes.h"
-# 1 "/usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h" 1 3 4
-# 40 "/usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h" 3 4
-typedef __builtin_va_list __gnuc_va_list;
-# 98 "/usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h" 3 4
-typedef __gnuc_va_list va_list;
-# 418 "../../../server-code/src/common/cbasetypes.h" 2
-# 25 "../../../server-code/src/common/hercules.h" 2
-# 25 "../../../server-code/src/map/pc_groups.h" 2
-
-
-
-# 27 "../../../server-code/src/map/pc_groups.h"
-struct DBMap;
-struct config_setting_t;
-
-
-enum e_pc_permission {
- PC_PERM_NONE = 0,
- PC_PERM_TRADE = 0x000001,
- PC_PERM_PARTY = 0x000002,
- PC_PERM_ALL_SKILL = 0x000004,
- PC_PERM_USE_ALL_EQUIPMENT = 0x000008,
- PC_PERM_SKILL_UNCONDITIONAL = 0x000010,
- PC_PERM_JOIN_ALL_CHAT = 0x000020,
- PC_PERM_NO_CHAT_KICK = 0x000040,
- PC_PERM_HIDE_SESSION = 0x000080,
- PC_PERM_WHO_DISPLAY_AID = 0x000100,
- PC_PERM_RECEIVE_HACK_INFO = 0x000200,
- PC_PERM_WARP_ANYWHERE = 0x000400,
- PC_PERM_VIEW_HPMETER = 0x000800,
- PC_PERM_VIEW_EQUIPMENT = 0x001000,
- PC_PERM_USE_CHECK = 0x002000,
- PC_PERM_USE_CHANGEMAPTYPE = 0x004000,
- PC_PERM_USE_ALL_COMMANDS = 0x008000,
- PC_PERM_RECEIVE_REQUESTS = 0x010000,
- PC_PERM_SHOW_BOSS = 0x020000,
- PC_PERM_DISABLE_PVM = 0x040000,
- PC_PERM_DISABLE_PVP = 0x080000,
- PC_PERM_DISABLE_CMD_DEAD = 0x100000,
- PC_PERM_HCHSYS_ADMIN = 0x200000,
- PC_PERM_TRADE_BOUND = 0x400000,
- PC_PERM_DISABLE_PICK_UP = 0x800000,
- PC_PERM_DISABLE_STORE = 0x1000000,
- PC_PERM_DISABLE_EXP = 0x2000000,
- PC_PERM_DISABLE_SKILL_USAGE = 0x4000000,
-};
-
-
-struct GroupSettings {
- unsigned int id;
- int level;
- char *name;
- unsigned int e_permissions;
-
-# 68 "../../../server-code/src/map/pc_groups.h" 3 4
-_Bool
-# 68 "../../../server-code/src/map/pc_groups.h"
- log_commands;
- int index;
-
- struct config_setting_t *commands;
- struct config_setting_t *permissions;
- struct config_setting_t *inherit;
-
-# 74 "../../../server-code/src/map/pc_groups.h" 3 4
-_Bool
-# 74 "../../../server-code/src/map/pc_groups.h"
- inheritance_done;
- struct config_setting_t *root;
-};
-
-typedef struct GroupSettings GroupSettings;
-
-struct pc_groups_permission_table {
- char *name;
- unsigned int permission;
-};
-
-
-struct pc_groups_new_permission {
- unsigned int pID;
- char *name;
- unsigned int *mask;
-};
-
-struct pc_groups_interface {
-
- struct DBMap *db;
- struct DBMap *name_db;
-
- struct pc_groups_permission_table *permissions;
- unsigned char permission_count;
-
- struct pc_groups_new_permission *HPMpermissions;
- unsigned char HPMpermissions_count;
-
- void (*init) (void);
- void (*final) (void);
- void (*reload) (void);
-
- GroupSettings* (*get_dummy_group) (void);
-
-# 108 "../../../server-code/src/map/pc_groups.h" 3 4
-_Bool
-# 108 "../../../server-code/src/map/pc_groups.h"
- (*exists) (int group_id);
- GroupSettings* (*id2group) (int group_id);
-
-# 110 "../../../server-code/src/map/pc_groups.h" 3 4
-_Bool
-# 110 "../../../server-code/src/map/pc_groups.h"
- (*has_permission) (GroupSettings *group, unsigned int permission);
-
-# 111 "../../../server-code/src/map/pc_groups.h" 3 4
-_Bool
-# 111 "../../../server-code/src/map/pc_groups.h"
- (*should_log_commands) (GroupSettings *group);
- const char* (*get_name) (GroupSettings *group);
- int (*get_level) (GroupSettings *group);
- int (*get_idx) (GroupSettings *group);
-};
-
-
-void pc_groups_defaults(void);
-
-
-extern struct pc_groups_interface *pcg;
-# 25 "../../../server-code/src/map/atcommand.h" 2
-
-# 1 "../../../server-code/src/common/db.h" 1
-# 90 "../../../server-code/src/common/db.h"
-enum DBReleaseOption {
- DB_RELEASE_NOTHING = 0x0,
- DB_RELEASE_KEY = 0x1,
- DB_RELEASE_DATA = 0x2,
- DB_RELEASE_BOTH = DB_RELEASE_KEY|DB_RELEASE_DATA,
-};
-# 117 "../../../server-code/src/common/db.h"
-enum DBType {
- DB_INT,
- DB_UINT,
- DB_STRING,
- DB_ISTRING,
- DB_INT64,
- DB_UINT64,
-};
-# 148 "../../../server-code/src/common/db.h"
-enum DBOptions {
- DB_OPT_BASE = 0x00,
- DB_OPT_DUP_KEY = 0x01,
- DB_OPT_RELEASE_KEY = 0x02,
- DB_OPT_RELEASE_DATA = 0x04,
- DB_OPT_RELEASE_BOTH = DB_OPT_RELEASE_KEY|DB_OPT_RELEASE_DATA,
- DB_OPT_ALLOW_NULL_KEY = 0x08,
- DB_OPT_ALLOW_NULL_DATA = 0x10,
-};
-# 169 "../../../server-code/src/common/db.h"
-union DBKey {
- int i;
- unsigned int ui;
- const char *str;
- char *mutstr;
- int64 i64;
- uint64 ui64;
-};
-# 186 "../../../server-code/src/common/db.h"
-enum DBDataType {
- DB_DATA_INT,
- DB_DATA_UINT,
- DB_DATA_PTR,
-};
-# 201 "../../../server-code/src/common/db.h"
-struct DBData {
- enum DBDataType type;
- union {
- int i;
- unsigned int ui;
- void *ptr;
- } u;
-};
-# 220 "../../../server-code/src/common/db.h"
-typedef struct DBData (*DBCreateData)(union DBKey key, va_list args);
-# 237 "../../../server-code/src/common/db.h"
-typedef int (*DBApply)(union DBKey key, struct DBData *data, va_list args);
-# 250 "../../../server-code/src/common/db.h"
-typedef int (*DBMatcher)(union DBKey key, struct DBData data, va_list args);
-# 264 "../../../server-code/src/common/db.h"
-typedef int (*DBComparator)(union DBKey key1, union DBKey key2, unsigned short maxlen);
-# 276 "../../../server-code/src/common/db.h"
-typedef uint64 (*DBHasher)(union DBKey key, unsigned short maxlen);
-# 290 "../../../server-code/src/common/db.h"
-typedef void (*DBReleaser)(union DBKey key, struct DBData data, enum DBReleaseOption which);
-# 304 "../../../server-code/src/common/db.h"
-struct DBIterator {
-# 314 "../../../server-code/src/common/db.h"
- struct DBData *(*first)(struct DBIterator *self, union DBKey *out_key);
-# 325 "../../../server-code/src/common/db.h"
- struct DBData *(*last)(struct DBIterator *self, union DBKey *out_key);
-# 336 "../../../server-code/src/common/db.h"
- struct DBData *(*next)(struct DBIterator *self, union DBKey *out_key);
-# 347 "../../../server-code/src/common/db.h"
- struct DBData *(*prev)(struct DBIterator *self, union DBKey *out_key);
-# 357 "../../../server-code/src/common/db.h"
-
-# 357 "../../../server-code/src/common/db.h" 3 4
-_Bool
-# 357 "../../../server-code/src/common/db.h"
- (*exists)(struct DBIterator *self);
-# 372 "../../../server-code/src/common/db.h"
- int (*remove)(struct DBIterator *self, struct DBData *out_data);
-
-
-
-
-
-
- void (*destroy)(struct DBIterator *self);
-
-};
-
-
-
-
-
-
-
-struct DBMap {
-# 400 "../../../server-code/src/common/db.h"
- struct DBIterator *(*iterator)(struct DBMap *self);
-# 409 "../../../server-code/src/common/db.h"
-
-# 409 "../../../server-code/src/common/db.h" 3 4
-_Bool
-# 409 "../../../server-code/src/common/db.h"
- (*exists)(struct DBMap *self, union DBKey key);
-# 418 "../../../server-code/src/common/db.h"
- struct DBData *(*get)(struct DBMap *self, union DBKey key);
-# 438 "../../../server-code/src/common/db.h"
- unsigned int (*getall)(struct DBMap *self, struct DBData **buf, unsigned int max, DBMatcher match, ...);
-# 456 "../../../server-code/src/common/db.h"
- unsigned int (*vgetall)(struct DBMap *self, struct DBData **buf, unsigned int max, DBMatcher match, va_list args);
-# 472 "../../../server-code/src/common/db.h"
- struct DBData *(*ensure)(struct DBMap *self, union DBKey key, DBCreateData create, ...);
-# 486 "../../../server-code/src/common/db.h"
- struct DBData *(*vensure)(struct DBMap *self, union DBKey key, DBCreateData create, va_list args);
-# 499 "../../../server-code/src/common/db.h"
- int (*put)(struct DBMap *self, union DBKey key, struct DBData data, struct DBData *out_data);
-# 511 "../../../server-code/src/common/db.h"
- int (*remove)(struct DBMap *self, union DBKey key, struct DBData *out_data);
-# 525 "../../../server-code/src/common/db.h"
- int (*foreach)(struct DBMap *self, DBApply func, ...);
-# 537 "../../../server-code/src/common/db.h"
- int (*vforeach)(struct DBMap *self, DBApply func, va_list args);
-# 553 "../../../server-code/src/common/db.h"
- int (*clear)(struct DBMap *self, DBApply func, ...);
-# 567 "../../../server-code/src/common/db.h"
- int (*vclear)(struct DBMap *self, DBApply func, va_list args);
-# 584 "../../../server-code/src/common/db.h"
- int (*destroy)(struct DBMap *self, DBApply func, ...);
-# 599 "../../../server-code/src/common/db.h"
- int (*vdestroy)(struct DBMap *self, DBApply func, va_list args);
-
-
-
-
-
-
-
- unsigned int (*size)(struct DBMap *self);
-
-
-
-
-
-
-
- enum DBType (*type)(struct DBMap *self);
-
-
-
-
-
-
-
- enum DBOptions (*options)(struct DBMap *self);
-
-};
-# 745 "../../../server-code/src/common/db.h"
-struct db_interface {
-# 758 "../../../server-code/src/common/db.h"
-enum DBOptions (*fix_options) (enum DBType type, enum DBOptions options);
-# 768 "../../../server-code/src/common/db.h"
-DBComparator (*default_cmp) (enum DBType type);
-# 778 "../../../server-code/src/common/db.h"
-DBHasher (*default_hash) (enum DBType type);
-# 797 "../../../server-code/src/common/db.h"
-DBReleaser (*default_release) (enum DBType type, enum DBOptions options);
-# 808 "../../../server-code/src/common/db.h"
-DBReleaser (*custom_release) (enum DBReleaseOption which);
-# 834 "../../../server-code/src/common/db.h"
-struct DBMap *(*alloc) (const char *file, const char *func, int line, enum DBType type, enum DBOptions options, unsigned short maxlen);
-
-
-
-
-
-
-
-union DBKey (*i2key) (int key);
-
-
-
-
-
-
-
-union DBKey (*ui2key) (unsigned int key);
-
-
-
-
-
-
-
-union DBKey (*str2key) (const char *key);
-
-
-
-
-
-
-
-union DBKey (*i642key) (int64 key);
-
-
-
-
-
-
-
-union DBKey (*ui642key) (uint64 key);
-
-
-
-
-
-
-
-struct DBData (*i2data) (int data);
-
-
-
-
-
-
-
-struct DBData (*ui2data) (unsigned int data);
-
-
-
-
-
-
-
-struct DBData (*ptr2data) (void *data);
-# 907 "../../../server-code/src/common/db.h"
-int (*data2i) (struct DBData *data);
-# 916 "../../../server-code/src/common/db.h"
-unsigned int (*data2ui) (struct DBData *data);
-# 925 "../../../server-code/src/common/db.h"
-void* (*data2ptr) (struct DBData *data);
-
-
-
-
-
-
-void (*init) (void);
-
-
-
-
-
-
-
-void (*final) (void);
-};
-
-
-struct linkdb_node {
- struct linkdb_node *next;
- struct linkdb_node *prev;
- void *key;
- void *data;
-};
-
-typedef void (*LinkDBFunc)(void* key, void* data, va_list args);
-
-
-void linkdb_insert (struct linkdb_node** head, void *key, void* data);
-void linkdb_replace (struct linkdb_node** head, void *key, void* data);
-void* linkdb_search (struct linkdb_node** head, void *key);
-void* linkdb_erase (struct linkdb_node** head, void *key);
-void linkdb_final (struct linkdb_node** head);
-void linkdb_vforeach(struct linkdb_node** head, LinkDBFunc func, va_list ap);
-void linkdb_foreach (struct linkdb_node** head, LinkDBFunc func, ...);
-
-void db_defaults(void);
-
-
-extern struct db_interface *DB;
-# 27 "../../../server-code/src/map/atcommand.h" 2
-
-
-
-
-
-
-struct map_session_data;
-struct AtCommandInfo;
-struct block_list;
-struct config_setting_t;
-# 50 "../../../server-code/src/map/atcommand.h"
-typedef enum {
- COMMAND_ATCOMMAND = 1,
- COMMAND_CHARCOMMAND = 2,
-} AtCommandType;
-
-
-
-
-typedef
-# 58 "../../../server-code/src/map/atcommand.h" 3 4
- _Bool
-# 58 "../../../server-code/src/map/atcommand.h"
- (*AtCommandFunc)(const int fd, struct map_session_data* sd, const char* command, const char* message,struct AtCommandInfo *info);
-typedef struct AtCommandInfo AtCommandInfo;
-typedef struct AliasInfo AliasInfo;
-
-
-
-
-struct AliasInfo {
- AtCommandInfo *command;
- char alias[50];
-};
-
-struct AtCommandInfo {
- char command[50];
- AtCommandFunc func;
- char *at_groups;
- char *char_groups;
- char *help;
-
-# 76 "../../../server-code/src/map/atcommand.h" 3 4
-_Bool
-# 76 "../../../server-code/src/map/atcommand.h"
- log;
-};
-
-struct atcmd_binding_data {
- char command[50];
- char npc_event[50];
- int group_lv;
- int group_lv_char;
-
-# 84 "../../../server-code/src/map/atcommand.h" 3 4
-_Bool
-# 84 "../../../server-code/src/map/atcommand.h"
- log;
-};
-
-
-
-
-struct atcommand_interface {
- unsigned char at_symbol;
- unsigned char char_symbol;
-
- struct atcmd_binding_data** binding;
- int binding_count;
-
- struct DBMap *db;
- struct DBMap *alias_db;
-
-
-
-
- char*** msg_table;
- uint8 max_message_table;
-
- void (*init) (
-# 106 "../../../server-code/src/map/atcommand.h" 3 4
- _Bool
-# 106 "../../../server-code/src/map/atcommand.h"
- minimal);
- void (*final) (void);
-
-
-# 109 "../../../server-code/src/map/atcommand.h" 3 4
-_Bool
-# 109 "../../../server-code/src/map/atcommand.h"
- (*exec) (const int fd, struct map_session_data *sd, const char *message,
-# 109 "../../../server-code/src/map/atcommand.h" 3 4
- _Bool
-# 109 "../../../server-code/src/map/atcommand.h"
- player_invoked);
-
-# 110 "../../../server-code/src/map/atcommand.h" 3 4
-_Bool
-# 110 "../../../server-code/src/map/atcommand.h"
- (*create) (char *name, AtCommandFunc func);
-
-# 111 "../../../server-code/src/map/atcommand.h" 3 4
-_Bool
-# 111 "../../../server-code/src/map/atcommand.h"
- (*can_use) (struct map_session_data *sd, const char *command);
-
-# 112 "../../../server-code/src/map/atcommand.h" 3 4
-_Bool
-# 112 "../../../server-code/src/map/atcommand.h"
- (*can_use2) (struct map_session_data *sd, const char *command, AtCommandType type);
- void (*load_groups) (GroupSettings **groups, struct config_setting_t **commands_, size_t sz);
- AtCommandInfo* (*exists) (const char* name);
-
-# 115 "../../../server-code/src/map/atcommand.h" 3 4
-_Bool
-# 115 "../../../server-code/src/map/atcommand.h"
- (*msg_read) (const char *cfg_name,
-# 115 "../../../server-code/src/map/atcommand.h" 3 4
- _Bool
-# 115 "../../../server-code/src/map/atcommand.h"
- allow_override);
- void (*final_msg) (void);
-
- struct atcmd_binding_data* (*get_bind_byname) (const char* name);
-
- AtCommandInfo* (*get_info_byname) (const char *name);
- const char* (*check_alias) (const char *aliasname);
- void (*get_suggestions) (struct map_session_data* sd, const char *name,
-# 122 "../../../server-code/src/map/atcommand.h" 3 4
- _Bool
-# 122 "../../../server-code/src/map/atcommand.h"
- is_atcmd_cmd);
- void (*config_read) (const char* config_filename);
-
- int (*stopattack) (struct block_list *bl,va_list ap);
- int (*pvpoff_sub) (struct block_list *bl,va_list ap);
- int (*pvpon_sub) (struct block_list *bl,va_list ap);
- int (*atkillmonster_sub) (struct block_list *bl, va_list ap);
- void (*raise_sub) (struct map_session_data* sd);
- void (*get_jail_time) (int jailtime, int* year, int* month, int* day, int* hour, int* minute);
- int (*cleanfloor_sub) (struct block_list *bl, va_list ap);
- int (*mutearea_sub) (struct block_list *bl,va_list ap);
- void (*getring) (struct map_session_data* sd);
- void (*channel_help) (int fd, const char *command,
-# 134 "../../../server-code/src/map/atcommand.h" 3 4
- _Bool
-# 134 "../../../server-code/src/map/atcommand.h"
- can_create);
-
- void (*commands_sub) (struct map_session_data* sd, const int fd, AtCommandType type);
- void (*cmd_db_clear) (void);
- int (*cmd_db_clear_sub) (union DBKey key, struct DBData *data, va_list args);
- void (*doload) (void);
- void (*base_commands) (void);
-
-# 141 "../../../server-code/src/map/atcommand.h" 3 4
-_Bool
-# 141 "../../../server-code/src/map/atcommand.h"
- (*add) (char *name, AtCommandFunc func,
-# 141 "../../../server-code/src/map/atcommand.h" 3 4
- _Bool
-# 141 "../../../server-code/src/map/atcommand.h"
- replace);
- const char* (*msg) (int msg_number);
- void (*expand_message_table) (void);
- const char* (*msgfd) (int fd, int msg_number);
- const char* (*msgsd) (struct map_session_data *sd, int msg_number);
-};
-
-
-void atcommand_defaults(void);
-
-
-extern struct atcommand_interface *atcommand;
-# 25 "../../../server-code/src/map/map.h" 2
-
-# 1 "../../../server-code/src/common/core.h" 1
-# 34 "../../../server-code/src/common/core.h"
-enum server_types {
- SERVER_TYPE_UNKNOWN = 0x0,
- SERVER_TYPE_LOGIN = 0x1,
- SERVER_TYPE_CHAR = 0x2,
- SERVER_TYPE_MAP = 0x4,
-};
-
-
-enum E_CORE_ST {
- CORE_ST_STOP = 0,
- CORE_ST_RUN,
- CORE_ST_LAST
-};
-
-
-enum cmdline_options {
- CMDLINE_OPT_NORMAL = 0x0,
- CMDLINE_OPT_PARAM = 0x1,
- CMDLINE_OPT_SILENT = 0x2,
- CMDLINE_OPT_PREINIT = 0x4,
-};
-typedef
-# 55 "../../../server-code/src/common/core.h" 3 4
- _Bool
-# 55 "../../../server-code/src/common/core.h"
- (*CmdlineExecFunc)(const char *name, const char *params);
-struct CmdlineArgData {
- unsigned int pluginID;
- unsigned int options;
- char *name;
- char shortname;
- CmdlineExecFunc func;
- char *help;
-};
-
-struct cmdline_interface {
- struct { int _max_; int _len_; struct CmdlineArgData *_data_; } args_data;
-
- void (*init) (void);
- void (*final) (void);
-
-# 70 "../../../server-code/src/common/core.h" 3 4
-_Bool
-# 70 "../../../server-code/src/common/core.h"
- (*arg_add) (unsigned int pluginID, const char *name, char shortname, CmdlineExecFunc func, const char *help, unsigned int options);
- int (*exec) (int argc, char **argv, unsigned int options);
-
-# 72 "../../../server-code/src/common/core.h" 3 4
-_Bool
-# 72 "../../../server-code/src/common/core.h"
- (*arg_next_value) (const char *name, int current_arg, int argc);
- const char *(*arg_source) (struct CmdlineArgData *arg);
-};
-
-struct core_interface {
- int arg_c;
- char **arg_v;
-
- int runflag;
- char *server_name;
- enum server_types server_type;
-
-
-
- void (*shutdown_callback)(void);
-};
-
-
-
-
-
-
-extern void cmdline_args_init_local(void);
-extern int do_init(int,char**);
-extern void set_server_type(void);
-extern void do_abort(void);
-extern int do_final(void);
-
-
-
-
-
-
-
-void cmdline_defaults(void);
-
-
-extern struct core_interface *core;
-extern struct cmdline_interface *cmdline;
-# 27 "../../../server-code/src/map/map.h" 2
-
-# 1 "../../../server-code/src/common/mapindex.h" 1
-# 25 "../../../server-code/src/common/mapindex.h"
-# 1 "../../../server-code/src/common/mmo.h" 1
-# 225 "../../../server-code/src/common/mmo.h"
-struct hplugin_data_store;
-
-enum item_types {
- IT_HEALING = 0,
- IT_UNKNOWN,
- IT_USABLE,
- IT_ETC,
- IT_WEAPON,
- IT_ARMOR,
- IT_CARD,
- IT_PETEGG,
- IT_PETARMOR,
- IT_UNKNOWN2,
- IT_AMMO,
- IT_DELAYCONSUME,
- IT_CASH = 18,
- IT_MAX
-};
-
-
-
-
-enum quest_state {
- Q_INACTIVE,
- Q_ACTIVE,
- Q_COMPLETE,
-};
-
-
-struct quest {
- int quest_id;
- unsigned int time;
- int count[3];
- enum quest_state state;
-};
-
-struct item {
- int id;
- short nameid;
- short amount;
- unsigned int equip;
- char identify;
- char refine;
- char attribute;
- short card[4];
- unsigned int expire_time;
- char favorite;
- unsigned char bound;
- uint64 unique_id;
-};
-
-
-enum equip_pos {
- EQP_NONE = 0x000000,
- EQP_HEAD_LOW = 0x000001,
- EQP_HEAD_MID = 0x000200,
- EQP_HEAD_TOP = 0x000100,
- EQP_HAND_R = 0x000002,
- EQP_HAND_L = 0x000020,
- EQP_ARMOR = 0x000010,
- EQP_SHOES = 0x000040,
- EQP_GARMENT = 0x000004,
- EQP_ACC_L = 0x000008,
- EQP_ACC_R = 0x000080,
- EQP_COSTUME_HEAD_TOP = 0x000400,
- EQP_COSTUME_HEAD_MID = 0x000800,
- EQP_COSTUME_HEAD_LOW = 0x001000,
- EQP_COSTUME_GARMENT = 0x002000,
-
- EQP_AMMO = 0x008000,
- EQP_SHADOW_ARMOR = 0x010000,
- EQP_SHADOW_WEAPON = 0x020000,
- EQP_SHADOW_SHIELD = 0x040000,
- EQP_SHADOW_SHOES = 0x080000,
- EQP_SHADOW_ACC_R = 0x100000,
- EQP_SHADOW_ACC_L = 0x200000,
-};
-
-struct point {
- unsigned short map;
- short x,y;
-};
-
-enum e_skill_flag
-{
- SKILL_FLAG_PERMANENT,
- SKILL_FLAG_TEMPORARY,
- SKILL_FLAG_PLAGIARIZED,
- SKILL_FLAG_UNUSED,
- SKILL_FLAG_PERM_GRANTED,
-
-
- SKILL_FLAG_REPLACED_LV_0,
-};
-
-enum e_mmo_charstatus_opt {
- OPT_NONE = 0x0,
- OPT_SHOW_EQUIP = 0x1,
- OPT_ALLOW_PARTY = 0x2,
-};
-
-enum e_item_bound_type {
- IBT_NONE = 0x0,
- IBT_MIN = 0x1,
- IBT_ACCOUNT = 0x1,
- IBT_GUILD = 0x2,
- IBT_PARTY = 0x3,
- IBT_CHARACTER = 0x4,
- IBT_MAX = 0x4,
-};
-
-enum {
- OPTION_NOTHING = 0x00000000,
- OPTION_SIGHT = 0x00000001,
- OPTION_HIDE = 0x00000002,
- OPTION_CLOAK = 0x00000004,
- OPTION_FALCON = 0x00000010,
- OPTION_RIDING = 0x00000020,
- OPTION_INVISIBLE = 0x00000040,
- OPTION_ORCISH = 0x00000800,
- OPTION_WEDDING = 0x00001000,
- OPTION_RUWACH = 0x00002000,
- OPTION_CHASEWALK = 0x00004000,
- OPTION_FLYING = 0x00008000,
- OPTION_XMAS = 0x00010000,
- OPTION_TRANSFORM = 0x00020000,
- OPTION_SUMMER = 0x00040000,
- OPTION_DRAGON1 = 0x00080000,
- OPTION_WUG = 0x00100000,
- OPTION_WUGRIDER = 0x00200000,
- OPTION_MADOGEAR = 0x00400000,
- OPTION_DRAGON2 = 0x00800000,
- OPTION_DRAGON3 = 0x01000000,
- OPTION_DRAGON4 = 0x02000000,
- OPTION_DRAGON5 = 0x04000000,
- OPTION_HANBOK = 0x08000000,
- OPTION_OKTOBERFEST = 0x10000000,
-# 372 "../../../server-code/src/common/mmo.h"
- OPTION_DRAGON = OPTION_DRAGON1|OPTION_DRAGON2|OPTION_DRAGON3|OPTION_DRAGON4|OPTION_DRAGON5,
- OPTION_COSTUME = OPTION_WEDDING|OPTION_XMAS|OPTION_SUMMER|OPTION_HANBOK|OPTION_OKTOBERFEST,
-};
-
-struct s_skill {
- unsigned short id;
- unsigned char lv;
- unsigned char flag;
-};
-
-struct script_reg_state {
- unsigned int type : 1;
- unsigned int update : 1;
-};
-
-struct script_reg_num {
- struct script_reg_state flag;
- int value;
-};
-
-struct script_reg_str {
- struct script_reg_state flag;
- char *value;
-};
-
-
-struct status_change_data {
- unsigned short type;
- int val1, val2, val3, val4;
- int tick;
-};
-
-struct storage_data {
- int storage_amount;
- struct item items[600];
-};
-
-struct guild_storage {
- int dirty;
- int guild_id;
- short storage_status;
- short storage_amount;
- struct item items[600];
- unsigned short lock;
-};
-
-struct s_pet {
- int account_id;
- int char_id;
- int pet_id;
- short class_;
- short level;
- short egg_id;
- short equip;
- short intimate;
- short hungry;
- char name[(23 + 1)];
- char rename_flag;
- char incubate;
-};
-
-struct s_homunculus {
- char name[(23 + 1)];
- int hom_id;
- int char_id;
- short class_;
- short prev_class;
- int hp,max_hp,sp,max_sp;
- unsigned int intimacy;
- short hunger;
- struct s_skill hskill[43];
- short skillpts;
- short level;
- unsigned int exp;
- short rename_flag;
- short vaporize;
- int str;
- int agi;
- int vit;
- int int_;
- int dex;
- int luk;
-
- int str_value;
- int agi_value;
- int vit_value;
- int int_value;
- int dex_value;
- int luk_value;
-
- int8 spiritball;
-};
-
-struct s_mercenary {
- int mercenary_id;
- int char_id;
- short class_;
- int hp, sp;
- unsigned int kill_count;
- unsigned int life_time;
-};
-
-struct s_elemental {
- int elemental_id;
- int char_id;
- short class_;
- uint32 mode;
- int hp, sp, max_hp, max_sp, matk, atk, atk2;
- short hit, flee, amotion, def, mdef;
- int life_time;
-};
-
-struct s_friend {
- int account_id;
- int char_id;
- char name[(23 + 1)];
-};
-
-struct hotkey {
-
- unsigned int id;
- unsigned short lv;
- unsigned char type;
-
-
-
-};
-
-struct mmo_charstatus {
- int char_id;
- int account_id;
- int partner_id;
- int father;
- int mother;
- int child;
-
- unsigned int base_exp,job_exp;
- int zeny;
- int bank_vault;
-
- short class_;
- unsigned int status_point,skill_point;
- int hp,max_hp,sp,max_sp;
- unsigned int option;
- short manner;
- unsigned char karma;
- short hair,hair_color,clothes_color,body;
- int party_id,guild_id,pet_id,hom_id,mer_id,ele_id;
- int fame;
-
-
- int arch_faith, arch_calls;
- int spear_faith, spear_calls;
- int sword_faith, sword_calls;
-
- short weapon;
- short shield;
- short head_top,head_mid,head_bottom;
- short robe;
-
- char name[(23 + 1)];
- unsigned int base_level,job_level;
- short str,agi,vit,int_,dex,luk;
- unsigned char slot,sex;
-
- uint32 mapip;
- uint16 mapport;
-
- struct point last_point,save_point,memo_point[3];
- struct item inventory[100],cart[100];
- struct storage_data storage;
- struct s_skill skill[1478];
-
- struct s_friend friends[40];
-
- struct hotkey hotkeys[38];
-
-
-# 549 "../../../server-code/src/common/mmo.h" 3 4
-_Bool
-# 549 "../../../server-code/src/common/mmo.h"
- show_equip, allow_party;
- unsigned short rename;
- unsigned short slotchange;
-
- time_t delete_date;
-
-
- unsigned short mod_exp,mod_drop,mod_death;
-
- unsigned char font;
-
- uint32 uniqueitem_counter;
-
- unsigned char hotkey_rowshift;
-};
-
-typedef enum mail_status {
- MAIL_NEW,
- MAIL_UNREAD,
- MAIL_READ,
-} mail_status;
-
-struct mail_message {
- int id;
- int send_id;
- char send_name[(23 + 1)];
- int dest_id;
- char dest_name[(23 + 1)];
- char title[40];
- char body[200];
-
- mail_status status;
- time_t timestamp;
-
- int zeny;
- struct item item;
-};
-
-struct mail_data {
- short amount;
-
-# 589 "../../../server-code/src/common/mmo.h" 3 4
-_Bool
-# 589 "../../../server-code/src/common/mmo.h"
- full;
- short unchecked, unread;
- struct mail_message msg[30];
-};
-
-struct auction_data {
- unsigned int auction_id;
- int seller_id;
- char seller_name[(23 + 1)];
- int buyer_id;
- char buyer_name[(23 + 1)];
-
- struct item item;
-
- char item_name[50];
- short type;
-
- unsigned short hours;
- int price, buynow;
- time_t timestamp;
- int auction_end_timer;
-};
-
-struct party_member {
- int account_id;
- int char_id;
- char name[(23 + 1)];
- unsigned short class_;
- unsigned short map;
- unsigned short lv;
- unsigned leader : 1,
- online : 1;
-};
-
-struct party {
- int party_id;
- char name[(23 + 1)];
- unsigned char count;
- unsigned exp : 1,
- item : 2;
- struct party_member member[12];
-};
-
-struct map_session_data;
-struct guild_member {
- int account_id, char_id;
- short hair,hair_color,gender,class_,lv;
- uint64 exp;
- int exp_payper;
- short online,position;
- char name[(23 + 1)];
- struct map_session_data *sd;
- unsigned char modified;
-};
-
-struct guild_position {
- char name[(23 + 1)];
- int mode;
- int exp_mode;
- unsigned char modified;
-};
-
-struct guild_alliance {
- int opposition;
- int guild_id;
- char name[(23 + 1)];
-};
-
-struct guild_expulsion {
- char name[(23 + 1)];
- char mes[40];
- int account_id;
-};
-
-struct guild_skill {
- int id,lv;
-};
-
-struct channel_data;
-struct guild {
- int guild_id;
- short guild_lv, connect_member, max_member, average_lv;
- uint64 exp;
- unsigned int next_exp;
- int skill_point;
- char name[(23 + 1)],master[(23 + 1)];
- struct guild_member member[(16 +10*6)];
- struct guild_position position[20];
- char mes1[60],mes2[120];
- int emblem_len,emblem_id;
- char emblem_data[2048];
- struct guild_alliance alliance[16];
- struct guild_expulsion expulsion[32];
- struct guild_skill skill[15];
-
-
- unsigned short save_flag;
-
- short *instance;
- unsigned short instances;
-
- struct channel_data *channel;
- struct hplugin_data_store *hdata;
-};
-
-struct guild_castle {
- int castle_id;
- int mapindex;
- char castle_name[(23 + 1)];
- char castle_event[(23 + 1)];
- int guild_id;
- int economy;
- int defense;
- int triggerE;
- int triggerD;
- int nextTime;
- int payTime;
- int createTime;
- int visibleC;
- struct {
- unsigned visible : 1;
- int id;
- } guardian[8];
- int* temp_guardians;
- int temp_guardians_max;
-};
-
-struct fame_list {
- int id;
- int fame;
- char name[(23 + 1)];
-};
-
-enum fame_list_type {
- RANKTYPE_BLACKSMITH = 0,
- RANKTYPE_ALCHEMIST = 1,
- RANKTYPE_TAEKWON = 2,
- RANKTYPE_PK = 3,
-};
-
-
-
-
-
-
-enum guild_basic_info {
- GBI_EXP = 1,
- GBI_GUILDLV,
- GBI_SKILLPOINT,
-
-
-
-
-
- GBI_SKILLLV,
-};
-
-enum {
- GMI_POSITION = 0,
- GMI_EXP,
- GMI_HAIR,
- GMI_HAIR_COLOR,
- GMI_GENDER,
- GMI_CLASS,
- GMI_LEVEL,
-};
-
-enum guild_permission {
- GPERM_INVITE = 0x01,
- GPERM_EXPEL = 0x10,
- GPERM_ALL = GPERM_INVITE|GPERM_EXPEL,
- GPERM_MASK = GPERM_ALL,
-};
-
-enum {
- GD_SKILLBASE=10000,
- GD_APPROVAL=10000,
- GD_KAFRACONTRACT=10001,
- GD_GUARDRESEARCH=10002,
- GD_GUARDUP=10003,
- GD_EXTENSION=10004,
- GD_GLORYGUILD=10005,
- GD_LEADERSHIP=10006,
- GD_GLORYWOUNDS=10007,
- GD_SOULCOLD=10008,
- GD_HAWKEYES=10009,
- GD_BATTLEORDER=10010,
- GD_REGENERATION=10011,
- GD_RESTORE=10012,
- GD_EMERGENCYCALL=10013,
- GD_DEVELOPMENT=10014,
- GD_MAX,
-};
-
-
-enum {
- JOB_NOVICE,
- JOB_SWORDMAN,
- JOB_MAGE,
- JOB_ARCHER,
- JOB_ACOLYTE,
- JOB_MERCHANT,
- JOB_THIEF,
- JOB_KNIGHT,
- JOB_PRIEST,
- JOB_WIZARD,
- JOB_BLACKSMITH,
- JOB_HUNTER,
- JOB_ASSASSIN,
- JOB_KNIGHT2,
- JOB_CRUSADER,
- JOB_MONK,
- JOB_SAGE,
- JOB_ROGUE,
- JOB_ALCHEMIST,
- JOB_BARD,
- JOB_DANCER,
- JOB_CRUSADER2,
- JOB_WEDDING,
- JOB_SUPER_NOVICE,
- JOB_GUNSLINGER,
- JOB_NINJA,
- JOB_XMAS,
- JOB_SUMMER,
- JOB_MAX_BASIC,
-
- JOB_NOVICE_HIGH = 4001,
- JOB_SWORDMAN_HIGH,
- JOB_MAGE_HIGH,
- JOB_ARCHER_HIGH,
- JOB_ACOLYTE_HIGH,
- JOB_MERCHANT_HIGH,
- JOB_THIEF_HIGH,
- JOB_LORD_KNIGHT,
- JOB_HIGH_PRIEST,
- JOB_HIGH_WIZARD,
- JOB_WHITESMITH,
- JOB_SNIPER,
- JOB_ASSASSIN_CROSS,
- JOB_LORD_KNIGHT2,
- JOB_PALADIN,
- JOB_CHAMPION,
- JOB_PROFESSOR,
- JOB_STALKER,
- JOB_CREATOR,
- JOB_CLOWN,
- JOB_GYPSY,
- JOB_PALADIN2,
-
- JOB_BABY,
- JOB_BABY_SWORDMAN,
- JOB_BABY_MAGE,
- JOB_BABY_ARCHER,
- JOB_BABY_ACOLYTE,
- JOB_BABY_MERCHANT,
- JOB_BABY_THIEF,
- JOB_BABY_KNIGHT,
- JOB_BABY_PRIEST,
- JOB_BABY_WIZARD,
- JOB_BABY_BLACKSMITH,
- JOB_BABY_HUNTER,
- JOB_BABY_ASSASSIN,
- JOB_BABY_KNIGHT2,
- JOB_BABY_CRUSADER,
- JOB_BABY_MONK,
- JOB_BABY_SAGE,
- JOB_BABY_ROGUE,
- JOB_BABY_ALCHEMIST,
- JOB_BABY_BARD,
- JOB_BABY_DANCER,
- JOB_BABY_CRUSADER2,
- JOB_SUPER_BABY,
-
- JOB_TAEKWON,
- JOB_STAR_GLADIATOR,
- JOB_STAR_GLADIATOR2,
- JOB_SOUL_LINKER,
-
- JOB_GANGSI,
- JOB_DEATH_KNIGHT,
- JOB_DARK_COLLECTOR,
-
- JOB_RUNE_KNIGHT = 4054,
- JOB_WARLOCK,
- JOB_RANGER,
- JOB_ARCH_BISHOP,
- JOB_MECHANIC,
- JOB_GUILLOTINE_CROSS,
-
- JOB_RUNE_KNIGHT_T,
- JOB_WARLOCK_T,
- JOB_RANGER_T,
- JOB_ARCH_BISHOP_T,
- JOB_MECHANIC_T,
- JOB_GUILLOTINE_CROSS_T,
-
- JOB_ROYAL_GUARD,
- JOB_SORCERER,
- JOB_MINSTREL,
- JOB_WANDERER,
- JOB_SURA,
- JOB_GENETIC,
- JOB_SHADOW_CHASER,
-
- JOB_ROYAL_GUARD_T,
- JOB_SORCERER_T,
- JOB_MINSTREL_T,
- JOB_WANDERER_T,
- JOB_SURA_T,
- JOB_GENETIC_T,
- JOB_SHADOW_CHASER_T,
-
- JOB_RUNE_KNIGHT2,
- JOB_RUNE_KNIGHT_T2,
- JOB_ROYAL_GUARD2,
- JOB_ROYAL_GUARD_T2,
- JOB_RANGER2,
- JOB_RANGER_T2,
- JOB_MECHANIC2,
- JOB_MECHANIC_T2,
-
- JOB_BABY_RUNE = 4096,
- JOB_BABY_WARLOCK,
- JOB_BABY_RANGER,
- JOB_BABY_BISHOP,
- JOB_BABY_MECHANIC,
- JOB_BABY_CROSS,
-
- JOB_BABY_GUARD,
- JOB_BABY_SORCERER,
- JOB_BABY_MINSTREL,
- JOB_BABY_WANDERER,
- JOB_BABY_SURA,
- JOB_BABY_GENETIC,
- JOB_BABY_CHASER,
-
- JOB_BABY_RUNE2,
- JOB_BABY_GUARD2,
- JOB_BABY_RANGER2,
- JOB_BABY_MECHANIC2,
-
- JOB_SUPER_NOVICE_E = 4190,
- JOB_SUPER_BABY_E,
-
- JOB_KAGEROU = 4211,
- JOB_OBORO,
- JOB_REBELLION = 4215,
-
- JOB_MAX,
-};
-
-
-
-
-enum {
- SEX_FEMALE = 0,
- SEX_MALE,
- SEX_SERVER
-};
-
-enum weapon_type {
- W_FIST,
- W_DAGGER,
- W_1HSWORD,
- W_2HSWORD,
- W_1HSPEAR,
- W_2HSPEAR,
- W_1HAXE,
- W_2HAXE,
- W_MACE,
- W_2HMACE,
- W_STAFF,
- W_BOW,
- W_KNUCKLE,
- W_MUSICAL,
- W_WHIP,
- W_BOOK,
- W_KATAR,
- W_REVOLVER,
- W_RIFLE,
- W_GATLING,
- W_SHOTGUN,
- W_GRENADE,
- W_HUUMA,
- W_2HSTAFF,
- MAX_SINGLE_WEAPON_TYPE,
-
- W_DOUBLE_DD,
- W_DOUBLE_SS,
- W_DOUBLE_AA,
- W_DOUBLE_DS,
- W_DOUBLE_DA,
- W_DOUBLE_SA,
- MAX_WEAPON_TYPE,
-};
-
-enum ammo_type {
- A_ARROW = 1,
- A_DAGGER,
- A_BULLET,
- A_SHELL,
- A_GRENADE,
- A_SHURIKEN,
- A_KUNAI,
- A_CANNONBALL,
- A_THROWWEAPON,
-};
-
-enum e_char_server_type {
- CST_NORMAL = 0,
- CST_MAINTENANCE = 1,
- CST_OVER18 = 2,
- CST_PAYING = 3,
- CST_F2P = 4,
-};
-
-enum e_pc_reg_loading {
- PRL_NONE = 0x0,
- PRL_CHAR = 0x1,
- PRL_ACCL = 0x2,
- PRL_ACCG = 0x4,
- PRL_ALL = 0xFF,
-};
-
-
-
-
-enum zh_char_ask_name_type {
- CHAR_ASK_NAME_BLOCK = 1,
- CHAR_ASK_NAME_BAN = 2,
- CHAR_ASK_NAME_UNBLOCK = 3,
- CHAR_ASK_NAME_UNBAN = 4,
- CHAR_ASK_NAME_CHANGESEX = 5,
- CHAR_ASK_NAME_CHARBAN = 6,
- CHAR_ASK_NAME_CHARUNBAN = 7,
- CHAR_ASK_NAME_CHANGECHARSEX = 8,
-};
-
-
-
-
-enum hz_char_ask_name_answer {
- CHAR_ASK_NAME_ANS_DONE = 0,
- CHAR_ASK_NAME_ANS_NOTFOUND = 1,
- CHAR_ASK_NAME_ANS_GMLOW = 2,
- CHAR_ASK_NAME_ANS_OFFLINE = 3,
-};
-# 26 "../../../server-code/src/common/mapindex.h" 2
-
-
-struct DBMap;
-# 84 "../../../server-code/src/common/mapindex.h"
-struct mapindex_interface {
- char config_file[80];
-
- struct DBMap *db;
-
- int num;
-
- char *default_map;
-
- int default_x;
-
- int default_y;
-
- struct {
- char name[(11 + 1)];
- } list[2000];
-
- int (*init) (void);
- void (*final) (void);
-
- int (*addmap) (int index, const char* name);
- void (*removemap) (int index);
- const char* (*getmapname) (const char* string, char* output);
-
-
- const char* (*getmapname_ext) (const char* string, char* output);
-
- unsigned short (*name2id) (const char*);
- const char * (*id2name) (uint16 id, const char *file, int line, const char *func);
-
-# 113 "../../../server-code/src/common/mapindex.h" 3 4
-_Bool
-# 113 "../../../server-code/src/common/mapindex.h"
- (*check_default) (void);
-};
-
-
-void mapindex_defaults(void);
-
-
-extern struct mapindex_interface *mapindex;
-# 29 "../../../server-code/src/map/map.h" 2
-
-
-# 1 "/usr/include/stdio.h" 1 3 4
-# 29 "/usr/include/stdio.h" 3 4
-
-
-
-
-# 1 "/usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h" 1 3 4
-# 34 "/usr/include/stdio.h" 2 3 4
-# 44 "/usr/include/stdio.h" 3 4
-
-# 44 "/usr/include/stdio.h" 3 4
-struct _IO_FILE;
-
-
-
-typedef struct _IO_FILE FILE;
-
-
-
-
-
-# 64 "/usr/include/stdio.h" 3 4
-typedef struct _IO_FILE __FILE;
-# 74 "/usr/include/stdio.h" 3 4
-# 1 "/usr/include/libio.h" 1 3 4
-# 31 "/usr/include/libio.h" 3 4
-# 1 "/usr/include/_G_config.h" 1 3 4
-# 15 "/usr/include/_G_config.h" 3 4
-# 1 "/usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h" 1 3 4
-# 16 "/usr/include/_G_config.h" 2 3 4
-
-
-
-
-# 1 "/usr/include/wchar.h" 1 3 4
-# 82 "/usr/include/wchar.h" 3 4
-typedef struct
-{
- int __count;
- union
- {
-
- unsigned int __wch;
-
-
-
- char __wchb[4];
- } __value;
-} __mbstate_t;
-# 21 "/usr/include/_G_config.h" 2 3 4
-typedef struct
-{
- __off_t __pos;
- __mbstate_t __state;
-} _G_fpos_t;
-typedef struct
-{
- __off64_t __pos;
- __mbstate_t __state;
-} _G_fpos64_t;
-# 32 "/usr/include/libio.h" 2 3 4
-# 144 "/usr/include/libio.h" 3 4
-struct _IO_jump_t; struct _IO_FILE;
-
-
-
-
-
-typedef void _IO_lock_t;
-
-
-
-
-
-struct _IO_marker {
- struct _IO_marker *_next;
- struct _IO_FILE *_sbuf;
-
-
-
- int _pos;
-# 173 "/usr/include/libio.h" 3 4
-};
-
-
-enum __codecvt_result
-{
- __codecvt_ok,
- __codecvt_partial,
- __codecvt_error,
- __codecvt_noconv
-};
-# 241 "/usr/include/libio.h" 3 4
-struct _IO_FILE {
- int _flags;
-
-
-
-
- char* _IO_read_ptr;
- char* _IO_read_end;
- char* _IO_read_base;
- char* _IO_write_base;
- char* _IO_write_ptr;
- char* _IO_write_end;
- char* _IO_buf_base;
- char* _IO_buf_end;
-
- char *_IO_save_base;
- char *_IO_backup_base;
- char *_IO_save_end;
-
- struct _IO_marker *_markers;
-
- struct _IO_FILE *_chain;
-
- int _fileno;
-
-
-
- int _flags2;
-
- __off_t _old_offset;
-
-
-
- unsigned short _cur_column;
- signed char _vtable_offset;
- char _shortbuf[1];
-
-
-
- _IO_lock_t *_lock;
-# 289 "/usr/include/libio.h" 3 4
- __off64_t _offset;
-# 298 "/usr/include/libio.h" 3 4
- void *__pad1;
- void *__pad2;
- void *__pad3;
- void *__pad4;
- size_t __pad5;
-
- int _mode;
-
- char _unused2[15 * sizeof (int) - 4 * sizeof (void *) - sizeof (size_t)];
-
-};
-
-
-typedef struct _IO_FILE _IO_FILE;
-
-
-struct _IO_FILE_plus;
-
-extern struct _IO_FILE_plus _IO_2_1_stdin_;
-extern struct _IO_FILE_plus _IO_2_1_stdout_;
-extern struct _IO_FILE_plus _IO_2_1_stderr_;
-# 334 "/usr/include/libio.h" 3 4
-typedef __ssize_t __io_read_fn (void *__cookie, char *__buf, size_t __nbytes);
-
-
-
-
-
-
-
-typedef __ssize_t __io_write_fn (void *__cookie, const char *__buf,
- size_t __n);
-
-
-
-
-
-
-
-typedef int __io_seek_fn (void *__cookie, __off64_t *__pos, int __w);
-
-
-typedef int __io_close_fn (void *__cookie);
-# 386 "/usr/include/libio.h" 3 4
-extern int __underflow (_IO_FILE *);
-extern int __uflow (_IO_FILE *);
-extern int __overflow (_IO_FILE *, int);
-# 430 "/usr/include/libio.h" 3 4
-extern int _IO_getc (_IO_FILE *__fp);
-extern int _IO_putc (int __c, _IO_FILE *__fp);
-extern int _IO_feof (_IO_FILE *__fp) __attribute__ ((__nothrow__ , __leaf__));
-extern int _IO_ferror (_IO_FILE *__fp) __attribute__ ((__nothrow__ , __leaf__));
-
-extern int _IO_peekc_locked (_IO_FILE *__fp);
-
-
-
-
-
-extern void _IO_flockfile (_IO_FILE *) __attribute__ ((__nothrow__ , __leaf__));
-extern void _IO_funlockfile (_IO_FILE *) __attribute__ ((__nothrow__ , __leaf__));
-extern int _IO_ftrylockfile (_IO_FILE *) __attribute__ ((__nothrow__ , __leaf__));
-# 460 "/usr/include/libio.h" 3 4
-extern int _IO_vfscanf (_IO_FILE * __restrict, const char * __restrict,
- __gnuc_va_list, int *__restrict);
-extern int _IO_vfprintf (_IO_FILE *__restrict, const char *__restrict,
- __gnuc_va_list);
-extern __ssize_t _IO_padn (_IO_FILE *, int, __ssize_t);
-extern size_t _IO_sgetn (_IO_FILE *, void *, size_t);
-
-extern __off64_t _IO_seekoff (_IO_FILE *, __off64_t, int, int);
-extern __off64_t _IO_seekpos (_IO_FILE *, __off64_t, int);
-
-extern void _IO_free_backup_area (_IO_FILE *) __attribute__ ((__nothrow__ , __leaf__));
-# 75 "/usr/include/stdio.h" 2 3 4
-# 90 "/usr/include/stdio.h" 3 4
-typedef __off_t off_t;
-# 102 "/usr/include/stdio.h" 3 4
-typedef __ssize_t ssize_t;
-
-
-
-
-
-
-
-typedef _G_fpos_t fpos_t;
-
-
-
-
-# 164 "/usr/include/stdio.h" 3 4
-# 1 "/usr/include/x86_64-linux-gnu/bits/stdio_lim.h" 1 3 4
-# 165 "/usr/include/stdio.h" 2 3 4
-
-
-
-extern struct _IO_FILE *stdin;
-extern struct _IO_FILE *stdout;
-extern struct _IO_FILE *stderr;
-
-
-
-
-
-
-
-extern int remove (const char *__filename) __attribute__ ((__nothrow__ , __leaf__));
-
-extern int rename (const char *__old, const char *__new) __attribute__ ((__nothrow__ , __leaf__));
-
-
-
-
-extern int renameat (int __oldfd, const char *__old, int __newfd,
- const char *__new) __attribute__ ((__nothrow__ , __leaf__));
-
-
-
-
-
-
-
-
-extern FILE *tmpfile (void) ;
-# 209 "/usr/include/stdio.h" 3 4
-extern char *tmpnam (char *__s) __attribute__ ((__nothrow__ , __leaf__)) ;
-
-
-
-
-
-extern char *tmpnam_r (char *__s) __attribute__ ((__nothrow__ , __leaf__)) ;
-# 227 "/usr/include/stdio.h" 3 4
-extern char *tempnam (const char *__dir, const char *__pfx)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)) ;
-
-
-
-
-
-
-
-
-extern int fclose (FILE *__stream);
-
-
-
-
-extern int fflush (FILE *__stream);
-
-# 252 "/usr/include/stdio.h" 3 4
-extern int fflush_unlocked (FILE *__stream);
-# 266 "/usr/include/stdio.h" 3 4
-
-
-
-
-
-
-extern FILE *fopen (const char *__restrict __filename,
- const char *__restrict __modes) ;
-
-
-
-
-extern FILE *freopen (const char *__restrict __filename,
- const char *__restrict __modes,
- FILE *__restrict __stream) ;
-# 295 "/usr/include/stdio.h" 3 4
-
-# 306 "/usr/include/stdio.h" 3 4
-extern FILE *fdopen (int __fd, const char *__modes) __attribute__ ((__nothrow__ , __leaf__)) ;
-# 319 "/usr/include/stdio.h" 3 4
-extern FILE *fmemopen (void *__s, size_t __len, const char *__modes)
- __attribute__ ((__nothrow__ , __leaf__)) ;
-
-
-
-
-extern FILE *open_memstream (char **__bufloc, size_t *__sizeloc) __attribute__ ((__nothrow__ , __leaf__)) ;
-
-
-
-
-
-
-extern void setbuf (FILE *__restrict __stream, char *__restrict __buf) __attribute__ ((__nothrow__ , __leaf__));
-
-
-
-extern int setvbuf (FILE *__restrict __stream, char *__restrict __buf,
- int __modes, size_t __n) __attribute__ ((__nothrow__ , __leaf__));
-
-
-
-
-
-extern void setbuffer (FILE *__restrict __stream, char *__restrict __buf,
- size_t __size) __attribute__ ((__nothrow__ , __leaf__));
-
-
-extern void setlinebuf (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__));
-
-
-
-
-
-
-
-
-extern int fprintf (FILE *__restrict __stream,
- const char *__restrict __format, ...);
-
-
-
-
-extern int printf (const char *__restrict __format, ...);
-
-extern int sprintf (char *__restrict __s,
- const char *__restrict __format, ...) __attribute__ ((__nothrow__));
-
-
-
-
-
-extern int vfprintf (FILE *__restrict __s, const char *__restrict __format,
- __gnuc_va_list __arg);
-
-
-
-
-extern int vprintf (const char *__restrict __format, __gnuc_va_list __arg);
-
-extern int vsprintf (char *__restrict __s, const char *__restrict __format,
- __gnuc_va_list __arg) __attribute__ ((__nothrow__));
-
-
-
-
-
-extern int snprintf (char *__restrict __s, size_t __maxlen,
- const char *__restrict __format, ...)
- __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 3, 4)));
-
-extern int vsnprintf (char *__restrict __s, size_t __maxlen,
- const char *__restrict __format, __gnuc_va_list __arg)
- __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 3, 0)));
-
-# 412 "/usr/include/stdio.h" 3 4
-extern int vdprintf (int __fd, const char *__restrict __fmt,
- __gnuc_va_list __arg)
- __attribute__ ((__format__ (__printf__, 2, 0)));
-extern int dprintf (int __fd, const char *__restrict __fmt, ...)
- __attribute__ ((__format__ (__printf__, 2, 3)));
-
-
-
-
-
-
-
-
-extern int fscanf (FILE *__restrict __stream,
- const char *__restrict __format, ...) ;
-
-
-
-
-extern int scanf (const char *__restrict __format, ...) ;
-
-extern int sscanf (const char *__restrict __s,
- const char *__restrict __format, ...) __attribute__ ((__nothrow__ , __leaf__));
-# 443 "/usr/include/stdio.h" 3 4
-extern int fscanf (FILE *__restrict __stream, const char *__restrict __format, ...) __asm__ ("" "__isoc99_fscanf")
-
- ;
-extern int scanf (const char *__restrict __format, ...) __asm__ ("" "__isoc99_scanf")
- ;
-extern int sscanf (const char *__restrict __s, const char *__restrict __format, ...) __asm__ ("" "__isoc99_sscanf") __attribute__ ((__nothrow__ , __leaf__))
-
- ;
-# 463 "/usr/include/stdio.h" 3 4
-
-
-
-
-
-
-
-
-extern int vfscanf (FILE *__restrict __s, const char *__restrict __format,
- __gnuc_va_list __arg)
- __attribute__ ((__format__ (__scanf__, 2, 0))) ;
-
-
-
-
-
-extern int vscanf (const char *__restrict __format, __gnuc_va_list __arg)
- __attribute__ ((__format__ (__scanf__, 1, 0))) ;
-
-
-extern int vsscanf (const char *__restrict __s,
- const char *__restrict __format, __gnuc_va_list __arg)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__format__ (__scanf__, 2, 0)));
-# 494 "/usr/include/stdio.h" 3 4
-extern int vfscanf (FILE *__restrict __s, const char *__restrict __format, __gnuc_va_list __arg) __asm__ ("" "__isoc99_vfscanf")
-
-
-
- __attribute__ ((__format__ (__scanf__, 2, 0))) ;
-extern int vscanf (const char *__restrict __format, __gnuc_va_list __arg) __asm__ ("" "__isoc99_vscanf")
-
- __attribute__ ((__format__ (__scanf__, 1, 0))) ;
-extern int vsscanf (const char *__restrict __s, const char *__restrict __format, __gnuc_va_list __arg) __asm__ ("" "__isoc99_vsscanf") __attribute__ ((__nothrow__ , __leaf__))
-
-
-
- __attribute__ ((__format__ (__scanf__, 2, 0)));
-# 522 "/usr/include/stdio.h" 3 4
-
-
-
-
-
-
-
-
-
-extern int fgetc (FILE *__stream);
-extern int getc (FILE *__stream);
-
-
-
-
-
-extern int getchar (void);
-
-# 550 "/usr/include/stdio.h" 3 4
-extern int getc_unlocked (FILE *__stream);
-extern int getchar_unlocked (void);
-# 561 "/usr/include/stdio.h" 3 4
-extern int fgetc_unlocked (FILE *__stream);
-
-
-
-
-
-
-
-
-
-
-
-extern int fputc (int __c, FILE *__stream);
-extern int putc (int __c, FILE *__stream);
-
-
-
-
-
-extern int putchar (int __c);
-
-# 594 "/usr/include/stdio.h" 3 4
-extern int fputc_unlocked (int __c, FILE *__stream);
-
-
-
-
-
-
-
-extern int putc_unlocked (int __c, FILE *__stream);
-extern int putchar_unlocked (int __c);
-
-
-
-
-
-
-extern int getw (FILE *__stream);
-
-
-extern int putw (int __w, FILE *__stream);
-
-
-
-
-
-
-
-
-extern char *fgets (char *__restrict __s, int __n, FILE *__restrict __stream)
- ;
-# 640 "/usr/include/stdio.h" 3 4
-
-# 665 "/usr/include/stdio.h" 3 4
-extern __ssize_t __getdelim (char **__restrict __lineptr,
- size_t *__restrict __n, int __delimiter,
- FILE *__restrict __stream) ;
-extern __ssize_t getdelim (char **__restrict __lineptr,
- size_t *__restrict __n, int __delimiter,
- FILE *__restrict __stream) ;
-
-
-
-
-
-
-
-extern __ssize_t getline (char **__restrict __lineptr,
- size_t *__restrict __n,
- FILE *__restrict __stream) ;
-
-
-
-
-
-
-
-
-extern int fputs (const char *__restrict __s, FILE *__restrict __stream);
-
-
-
-
-
-extern int puts (const char *__s);
-
-
-
-
-
-
-extern int ungetc (int __c, FILE *__stream);
-
-
-
-
-
-
-extern size_t fread (void *__restrict __ptr, size_t __size,
- size_t __n, FILE *__restrict __stream) ;
-
-
-
-
-extern size_t fwrite (const void *__restrict __ptr, size_t __size,
- size_t __n, FILE *__restrict __s);
-
-# 737 "/usr/include/stdio.h" 3 4
-extern size_t fread_unlocked (void *__restrict __ptr, size_t __size,
- size_t __n, FILE *__restrict __stream) ;
-extern size_t fwrite_unlocked (const void *__restrict __ptr, size_t __size,
- size_t __n, FILE *__restrict __stream);
-
-
-
-
-
-
-
-
-extern int fseek (FILE *__stream, long int __off, int __whence);
-
-
-
-
-extern long int ftell (FILE *__stream) ;
-
-
-
-
-extern void rewind (FILE *__stream);
-
-# 773 "/usr/include/stdio.h" 3 4
-extern int fseeko (FILE *__stream, __off_t __off, int __whence);
-
-
-
-
-extern __off_t ftello (FILE *__stream) ;
-# 792 "/usr/include/stdio.h" 3 4
-
-
-
-
-
-
-extern int fgetpos (FILE *__restrict __stream, fpos_t *__restrict __pos);
-
-
-
-
-extern int fsetpos (FILE *__stream, const fpos_t *__pos);
-# 815 "/usr/include/stdio.h" 3 4
-
-# 824 "/usr/include/stdio.h" 3 4
-
-
-extern void clearerr (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__));
-
-extern int feof (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) ;
-
-extern int ferror (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) ;
-
-
-
-
-extern void clearerr_unlocked (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__));
-extern int feof_unlocked (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) ;
-extern int ferror_unlocked (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) ;
-
-
-
-
-
-
-
-
-extern void perror (const char *__s);
-
-
-
-
-
-
-# 1 "/usr/include/x86_64-linux-gnu/bits/sys_errlist.h" 1 3 4
-# 26 "/usr/include/x86_64-linux-gnu/bits/sys_errlist.h" 3 4
-extern int sys_nerr;
-extern const char *const sys_errlist[];
-# 854 "/usr/include/stdio.h" 2 3 4
-
-
-
-
-extern int fileno (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) ;
-
-
-
-
-extern int fileno_unlocked (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) ;
-# 872 "/usr/include/stdio.h" 3 4
-extern FILE *popen (const char *__command, const char *__modes) ;
-
-
-
-
-
-extern int pclose (FILE *__stream);
-
-
-
-
-
-extern char *ctermid (char *__s) __attribute__ ((__nothrow__ , __leaf__));
-# 912 "/usr/include/stdio.h" 3 4
-extern void flockfile (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__));
-
-
-
-extern int ftrylockfile (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) ;
-
-
-extern void funlockfile (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__));
-# 942 "/usr/include/stdio.h" 3 4
-
-# 32 "../../../server-code/src/map/map.h" 2
-
-
-
-
-# 35 "../../../server-code/src/map/map.h"
-struct Sql;
-struct mob_data;
-struct npc_data;
-struct channel_data;
-struct hplugin_data_store;
-
-enum E_MAPSERVER_ST {
- MAPSERVER_ST_RUNNING = CORE_ST_LAST,
- MAPSERVER_ST_SHUTDOWN,
- MAPSERVER_ST_LAST
-};
-# 74 "../../../server-code/src/map/map.h"
-enum {
-
- MAPID_NOVICE = 0x0,
- MAPID_SWORDMAN,
- MAPID_MAGE,
- MAPID_ARCHER,
- MAPID_ACOLYTE,
- MAPID_MERCHANT,
- MAPID_THIEF,
- MAPID_TAEKWON,
- MAPID_WEDDING,
- MAPID_GUNSLINGER,
- MAPID_NINJA,
- MAPID_XMAS,
- MAPID_SUMMER,
- MAPID_GANGSI,
-
- MAPID_SUPER_NOVICE = 0x100|0x0,
- MAPID_KNIGHT,
- MAPID_WIZARD,
- MAPID_HUNTER,
- MAPID_PRIEST,
- MAPID_BLACKSMITH,
- MAPID_ASSASSIN,
- MAPID_STAR_GLADIATOR,
- MAPID_REBELLION = 0x100|0x09,
- MAPID_KAGEROUOBORO = 0x100|0x0A,
- MAPID_DEATH_KNIGHT = 0x100|0x0E,
-
- MAPID_CRUSADER = 0x200|0x1,
- MAPID_SAGE,
- MAPID_BARDDANCER,
- MAPID_MONK,
- MAPID_ALCHEMIST,
- MAPID_ROGUE,
- MAPID_SOUL_LINKER,
- MAPID_DARK_COLLECTOR = 0x200|0x0E,
-
- MAPID_NOVICE_HIGH = 0x1000|0x0,
- MAPID_SWORDMAN_HIGH,
- MAPID_MAGE_HIGH,
- MAPID_ARCHER_HIGH,
- MAPID_ACOLYTE_HIGH,
- MAPID_MERCHANT_HIGH,
- MAPID_THIEF_HIGH,
-
- MAPID_LORD_KNIGHT = 0x1000|0x100|0x1,
- MAPID_HIGH_WIZARD,
- MAPID_SNIPER,
- MAPID_HIGH_PRIEST,
- MAPID_WHITESMITH,
- MAPID_ASSASSIN_CROSS,
-
- MAPID_PALADIN = 0x1000|0x200|0x1,
- MAPID_PROFESSOR,
- MAPID_CLOWNGYPSY,
- MAPID_CHAMPION,
- MAPID_CREATOR,
- MAPID_STALKER,
-
- MAPID_BABY = 0x2000|0x0,
- MAPID_BABY_SWORDMAN,
- MAPID_BABY_MAGE,
- MAPID_BABY_ARCHER,
- MAPID_BABY_ACOLYTE,
- MAPID_BABY_MERCHANT,
- MAPID_BABY_THIEF,
-
- MAPID_SUPER_BABY = 0x2000|0x100|0x0,
- MAPID_BABY_KNIGHT,
- MAPID_BABY_WIZARD,
- MAPID_BABY_HUNTER,
- MAPID_BABY_PRIEST,
- MAPID_BABY_BLACKSMITH,
- MAPID_BABY_ASSASSIN,
-
- MAPID_BABY_CRUSADER = 0x2000|0x200|0x1,
- MAPID_BABY_SAGE,
- MAPID_BABY_BARDDANCER,
- MAPID_BABY_MONK,
- MAPID_BABY_ALCHEMIST,
- MAPID_BABY_ROGUE,
-
- MAPID_SUPER_NOVICE_E = 0x4000|0x100|0x0,
- MAPID_RUNE_KNIGHT,
- MAPID_WARLOCK,
- MAPID_RANGER,
- MAPID_ARCH_BISHOP,
- MAPID_MECHANIC,
- MAPID_GUILLOTINE_CROSS,
-
- MAPID_ROYAL_GUARD = 0x4000|0x200|0x1,
- MAPID_SORCERER,
- MAPID_MINSTRELWANDERER,
- MAPID_SURA,
- MAPID_GENETIC,
- MAPID_SHADOW_CHASER,
-
- MAPID_RUNE_KNIGHT_T = 0x4000|0x1000|0x100|0x1,
- MAPID_WARLOCK_T,
- MAPID_RANGER_T,
- MAPID_ARCH_BISHOP_T,
- MAPID_MECHANIC_T,
- MAPID_GUILLOTINE_CROSS_T,
-
- MAPID_ROYAL_GUARD_T = 0x4000|0x1000|0x200|0x1,
- MAPID_SORCERER_T,
- MAPID_MINSTRELWANDERER_T,
- MAPID_SURA_T,
- MAPID_GENETIC_T,
- MAPID_SHADOW_CHASER_T,
-
- MAPID_SUPER_BABY_E = 0x4000|0x2000|0x100|0x0,
- MAPID_BABY_RUNE,
- MAPID_BABY_WARLOCK,
- MAPID_BABY_RANGER,
- MAPID_BABY_BISHOP,
- MAPID_BABY_MECHANIC,
- MAPID_BABY_CROSS,
-
- MAPID_BABY_GUARD = 0x4000|0x2000|0x200|0x1,
- MAPID_BABY_SORCERER,
- MAPID_BABY_MINSTRELWANDERER,
- MAPID_BABY_SURA,
- MAPID_BABY_GENETIC,
- MAPID_BABY_CHASER,
-};
-# 233 "../../../server-code/src/map/map.h"
-enum bl_type {
- BL_NUL = 0x000,
- BL_PC = 0x001,
- BL_MOB = 0x002,
- BL_PET = 0x004,
- BL_HOM = 0x008,
- BL_MER = 0x010,
- BL_ITEM = 0x020,
- BL_SKILL = 0x040,
- BL_NPC = 0x080,
- BL_CHAT = 0x100,
- BL_ELEM = 0x200,
-
- BL_ALL = 0xFFF,
-};
-
-
-
-
-enum npc_subtype { WARP, SHOP, SCRIPT, CASHSHOP, TOMB };
-
-
-
-
-
-
-enum Race {
-
- RC_FORMLESS = 0,
- RC_UNDEAD,
- RC_BRUTE,
- RC_PLANT,
- RC_INSECT,
- RC_FISH,
- RC_DEMON,
- RC_DEMIHUMAN,
- RC_ANGEL,
- RC_DRAGON,
- RC_PLAYER,
-
- RC_BOSS,
- RC_NONBOSS,
-
- RC_MAX,
-
-
- RC_NONDEMIHUMAN,
- RC_NONPLAYER,
- RC_DEMIPLAYER,
- RC_NONDEMIPLAYER,
- RC_ALL = 0xFF,
-};
-
-
-
-
-
-
-enum RaceMask {
- RCMASK_NONE = 0,
- RCMASK_FORMLESS = 1<<RC_FORMLESS,
- RCMASK_UNDEAD = 1<<RC_UNDEAD,
- RCMASK_BRUTE = 1<<RC_BRUTE,
- RCMASK_PLANT = 1<<RC_PLANT,
- RCMASK_INSECT = 1<<RC_INSECT,
- RCMASK_FISH = 1<<RC_FISH,
- RCMASK_DEMON = 1<<RC_DEMON,
- RCMASK_DEMIHUMAN = 1<<RC_DEMIHUMAN,
- RCMASK_ANGEL = 1<<RC_ANGEL,
- RCMASK_DRAGON = 1<<RC_DRAGON,
- RCMASK_PLAYER = 1<<RC_PLAYER,
- RCMASK_BOSS = 1<<RC_BOSS,
- RCMASK_NONBOSS = 1<<RC_NONBOSS,
- RCMASK_NONDEMIPLAYER = RCMASK_FORMLESS | RCMASK_UNDEAD | RCMASK_BRUTE | RCMASK_PLANT | RCMASK_INSECT | RCMASK_FISH | RCMASK_DEMON | RCMASK_ANGEL | RCMASK_DRAGON,
- RCMASK_NONDEMIHUMAN = RCMASK_NONDEMIPLAYER | RCMASK_PLAYER,
- RCMASK_NONPLAYER = RCMASK_NONDEMIPLAYER | RCMASK_DEMIHUMAN,
- RCMASK_DEMIPLAYER = RCMASK_DEMIHUMAN | RCMASK_PLAYER,
- RCMASK_ALL = RCMASK_BOSS | RCMASK_NONBOSS,
- RCMASK_ANY = RCMASK_NONPLAYER | RCMASK_PLAYER,
-};
-
-enum {
- RC2_NONE = 0,
- RC2_GOBLIN,
- RC2_KOBOLD,
- RC2_ORC,
- RC2_GOLEM,
- RC2_GUARDIAN,
- RC2_NINJA,
- RC2_SCARABA,
- RC2_TURTLE,
- RC2_MAX
-};
-
-enum elements {
- ELE_NEUTRAL=0,
- ELE_WATER,
- ELE_EARTH,
- ELE_FIRE,
- ELE_WIND,
- ELE_POISON,
- ELE_HOLY,
- ELE_DARK,
- ELE_GHOST,
- ELE_UNDEAD,
- ELE_MAX,
- ELE_ALL = 0xFF
-};
-
-
-
-
-
-
-enum spirit_charm_types {
- CHARM_TYPE_NONE = 0,
- CHARM_TYPE_WATER,
- CHARM_TYPE_LAND,
- CHARM_TYPE_FIRE,
- CHARM_TYPE_WIND
-};
-
-enum auto_trigger_flag {
- ATF_SELF=0x01,
- ATF_TARGET=0x02,
- ATF_SHORT=0x04,
- ATF_LONG=0x08,
- ATF_WEAPON=0x10,
- ATF_MAGIC=0x20,
- ATF_MISC=0x40,
-};
-
-struct block_list {
- struct block_list *next,*prev;
- int id;
- int16 m,x,y;
- enum bl_type type;
-};
-
-
-
-struct spawn_data {
- short class_;
- unsigned short m, x, y;
- signed short xs, ys;
- unsigned short num;
- unsigned short active;
- unsigned int delay1, delay2;
- unsigned int level;
- struct {
- unsigned int size : 2;
- unsigned int ai : 4;
-
-
- unsigned int dynamic : 1;
- unsigned int boss : 1;
- } state;
- char name[(23 + 1)], eventname[( (23 + 1) * 2 + 3 )];
-};
-
-struct flooritem_data {
- struct block_list bl;
- unsigned char subx,suby;
- int cleartimer;
- int first_get_charid,second_get_charid,third_get_charid;
- int64 first_get_tick,second_get_tick,third_get_tick;
- struct item item_data;
-};
-
-enum status_point_types {
- SP_SPEED,SP_BASEEXP,SP_JOBEXP,SP_KARMA,SP_MANNER,SP_HP,SP_MAXHP,SP_SP,
- SP_MAXSP,SP_STATUSPOINT,SP_0a,SP_BASELEVEL,SP_SKILLPOINT,SP_STR,SP_AGI,SP_VIT,
- SP_INT,SP_DEX,SP_LUK,SP_CLASS,SP_ZENY,SP_SEX,SP_NEXTBASEEXP,SP_NEXTJOBEXP,
- SP_WEIGHT,SP_MAXWEIGHT,SP_1a,SP_1b,SP_1c,SP_1d,SP_1e,SP_1f,
- SP_USTR,SP_UAGI,SP_UVIT,SP_UINT,SP_UDEX,SP_ULUK,SP_26,SP_27,
- SP_28,SP_ATK1,SP_ATK2,SP_MATK1,SP_MATK2,SP_DEF1,SP_DEF2,SP_MDEF1,
- SP_MDEF2,SP_HIT,SP_FLEE1,SP_FLEE2,SP_CRITICAL,SP_ASPD,SP_36,SP_JOBLEVEL,
- SP_UPPER,SP_PARTNER,SP_CART,SP_FAME,SP_UNBREAKABLE,
- SP_CARTINFO=99,
-
- SP_BASEJOB=119,
- SP_BASECLASS=120,
- SP_KILLERRID=121,
- SP_KILLEDRID=122,
- SP_SLOTCHANGE=123,
- SP_CHARRENAME=124,
- SP_MOD_EXP=125,
- SP_MOD_DROP=126,
- SP_MOD_DEATH=127,
-
-
- SP_MERCFLEE=165, SP_MERCKILLS=189, SP_MERCFAITH=190,
-
-
- SP_ATTACKRANGE=1000, SP_ATKELE,SP_DEFELE,
- SP_CASTRATE, SP_MAXHPRATE, SP_MAXSPRATE, SP_SPRATE,
- SP_ADDELE, SP_ADDRACE, SP_ADDSIZE, SP_SUBELE, SP_SUBRACE,
- SP_ADDEFF, SP_RESEFF,
- SP_BASE_ATK,SP_ASPD_RATE,SP_HP_RECOV_RATE,SP_SP_RECOV_RATE,SP_SPEED_RATE,
- SP_CRITICAL_DEF,SP_NEAR_ATK_DEF,SP_LONG_ATK_DEF,
- SP_DOUBLE_RATE, SP_DOUBLE_ADD_RATE, SP_SKILL_HEAL, SP_MATK_RATE,
- SP_IGNORE_DEF_ELE,SP_IGNORE_DEF_RACE,
- SP_ATK_RATE,SP_SPEED_ADDRATE,SP_SP_REGEN_RATE,
- SP_MAGIC_ATK_DEF,SP_MISC_ATK_DEF,
- SP_IGNORE_MDEF_ELE,SP_IGNORE_MDEF_RACE,
- SP_MAGIC_ADDELE,SP_MAGIC_ADDRACE,SP_MAGIC_ADDSIZE,
- SP_PERFECT_HIT_RATE,SP_PERFECT_HIT_ADD_RATE,SP_CRITICAL_RATE,SP_GET_ZENY_NUM,SP_ADD_GET_ZENY_NUM,
- SP_ADD_DAMAGE_CLASS,SP_ADD_MAGIC_DAMAGE_CLASS,SP_ADD_DEF_CLASS,SP_ADD_MDEF_CLASS,
- SP_ADD_MONSTER_DROP_ITEM,SP_DEF_RATIO_ATK_ELE,SP_DEF_RATIO_ATK_RACE,SP_UNBREAKABLE_GARMENT,
- SP_HIT_RATE,SP_FLEE_RATE,SP_FLEE2_RATE,SP_DEF_RATE,SP_DEF2_RATE,SP_MDEF_RATE,SP_MDEF2_RATE,
- SP_SPLASH_RANGE,SP_SPLASH_ADD_RANGE,SP_AUTOSPELL,SP_HP_DRAIN_RATE,SP_SP_DRAIN_RATE,
- SP_SHORT_WEAPON_DAMAGE_RETURN,SP_LONG_WEAPON_DAMAGE_RETURN,SP_WEAPON_COMA_ELE,SP_WEAPON_COMA_RACE,
- SP_ADDEFF2,SP_BREAK_WEAPON_RATE,SP_BREAK_ARMOR_RATE,SP_ADD_STEAL_RATE,
- SP_MAGIC_DAMAGE_RETURN,SP_ALL_STATS=1073,SP_AGI_VIT,SP_AGI_DEX_STR,SP_PERFECT_HIDE,
- SP_NO_KNOCKBACK,SP_CLASSCHANGE,
- SP_HP_DRAIN_VALUE,SP_SP_DRAIN_VALUE,
- SP_WEAPON_ATK,SP_WEAPON_ATK_RATE,
- SP_DELAYRATE,SP_HP_DRAIN_RATE_RACE,SP_SP_DRAIN_RATE_RACE,
- SP_IGNORE_MDEF_RATE,SP_IGNORE_DEF_RATE,SP_SKILL_HEAL2,SP_ADDEFF_ONSKILL,
- SP_ADD_HEAL_RATE, SP_ADD_HEAL2_RATE, SP_HP_VANISH_RATE,
-
- SP_RESTART_FULL_RECOVER=2000,SP_NO_CASTCANCEL,SP_NO_SIZEFIX,SP_NO_MAGIC_DAMAGE,SP_NO_WEAPON_DAMAGE,SP_NO_GEMSTONE,
- SP_NO_CASTCANCEL2,SP_NO_MISC_DAMAGE,SP_UNBREAKABLE_WEAPON,SP_UNBREAKABLE_ARMOR, SP_UNBREAKABLE_HELM,
- SP_UNBREAKABLE_SHIELD, SP_LONG_ATK_RATE,
-
- SP_CRIT_ATK_RATE, SP_CRITICAL_ADDRACE, SP_NO_REGEN, SP_ADDEFF_WHENHIT, SP_AUTOSPELL_WHENHIT,
- SP_SKILL_ATK, SP_UNSTRIPABLE, SP_AUTOSPELL_ONSKILL,
- SP_SP_GAIN_VALUE, SP_HP_REGEN_RATE, SP_HP_LOSS_RATE, SP_ADDRACE2, SP_HP_GAIN_VALUE,
- SP_SUBSIZE, SP_HP_DRAIN_VALUE_RACE, SP_ADD_ITEM_HEAL_RATE, SP_SP_DRAIN_VALUE_RACE, SP_EXP_ADDRACE,
- SP_SP_GAIN_RACE, SP_SUBRACE2, SP_UNBREAKABLE_SHOES,
- SP_UNSTRIPABLE_WEAPON,SP_UNSTRIPABLE_ARMOR,SP_UNSTRIPABLE_HELM,SP_UNSTRIPABLE_SHIELD,
- SP_INTRAVISION, SP_ADD_MONSTER_DROP_CHAINITEM, SP_SP_LOSS_RATE,
- SP_ADD_SKILL_BLOW, SP_SP_VANISH_RATE, SP_MAGIC_SP_GAIN_VALUE, SP_MAGIC_HP_GAIN_VALUE, SP_ADD_CLASS_DROP_ITEM,
- SP_EMATK, SP_SP_GAIN_RACE_ATTACK, SP_HP_GAIN_RACE_ATTACK, SP_SKILL_USE_SP_RATE,
- SP_SKILL_COOLDOWN,SP_SKILL_FIXEDCAST, SP_SKILL_VARIABLECAST, SP_FIXCASTRATE, SP_VARCASTRATE,
- SP_SKILL_USE_SP,SP_MAGIC_ATK_ELE, SP_ADD_FIXEDCAST, SP_ADD_VARIABLECAST,
- SP_SET_DEF_RACE,SP_SET_MDEF_RACE,
- SP_RACE_TOLERANCE,SP_ADDMAXWEIGHT,
-
-
- SP_LAST_KNOWN,
-};
-
-enum look {
- LOOK_BASE,
- LOOK_HAIR,
- LOOK_WEAPON,
- LOOK_HEAD_BOTTOM,
- LOOK_HEAD_TOP,
- LOOK_HEAD_MID,
- LOOK_HAIR_COLOR,
- LOOK_CLOTHES_COLOR,
- LOOK_SHIELD,
- LOOK_SHOES,
- LOOK_BODY,
- LOOK_FLOOR,
- LOOK_ROBE,
- LOOK_BODY2,
-};
-
-
-typedef enum {
- CELL_WALKABLE,
- CELL_SHOOTABLE,
- CELL_WATER,
-
- CELL_NPC,
- CELL_BASILICA,
- CELL_LANDPROTECTOR,
- CELL_NOVENDING,
- CELL_NOCHAT,
- CELL_ICEWALL,
- CELL_NOICEWALL,
-
-} cell_t;
-
-
-typedef enum {
- CELL_GETTYPE,
-
- CELL_CHKWALL,
- CELL_CHKWATER,
- CELL_CHKCLIFF,
-
- CELL_CHKPASS,
- CELL_CHKREACH,
- CELL_CHKNOPASS,
- CELL_CHKNOREACH,
- CELL_CHKSTACK,
-
- CELL_CHKNPC,
- CELL_CHKBASILICA,
- CELL_CHKLANDPROTECTOR,
- CELL_CHKNOVENDING,
- CELL_CHKNOCHAT,
- CELL_CHKICEWALL,
- CELL_CHKNOICEWALL,
-
-} cell_chk;
-
-struct mapcell {
-
- unsigned char
- walkable : 1,
- shootable : 1,
- water : 1;
-
-
- unsigned char
- npc : 1,
- basilica : 1,
- landprotector : 1,
- novending : 1,
- nochat : 1,
- icewall : 1,
- noicewall : 1;
-
-
-
-
-};
-
-struct iwall_data {
- char wall_name[50];
- short m, x, y, size;
- int8 dir;
-
-# 559 "../../../server-code/src/map/map.h" 3 4
-_Bool
-# 559 "../../../server-code/src/map/map.h"
- shootable;
-};
-
-struct mapflag_skill_adjust {
- unsigned short skill_id;
- unsigned short modifier;
-};
-
-enum map_zone_skill_subtype {
- MZS_NONE = 0x0,
- MZS_CLONE = 0x01,
- MZS_BOSS = 0x02,
-
- MZS_ALL = 0xFFF
-};
-
-struct map_zone_disabled_skill_entry {
- unsigned short nameid;
- enum bl_type type;
- enum map_zone_skill_subtype subtype;
-};
-struct map_zone_disabled_command_entry {
- AtCommandFunc cmd;
- int group_lv;
-};
-
-struct map_zone_skill_damage_cap_entry {
- unsigned short nameid;
- unsigned int cap;
- enum bl_type type;
- enum map_zone_skill_subtype subtype;
-};
-
-enum map_zone_merge_type {
- MZMT_NORMAL = 0,
- MZMT_MERGEABLE,
- MZMT_NEVERMERGE,
-};
-# 607 "../../../server-code/src/map/map.h"
-struct map_zone_data {
- char name[60];
- enum map_zone_merge_type merge_type;
- struct map_zone_disabled_skill_entry **disabled_skills;
- int disabled_skills_count;
- int *disabled_items;
- int disabled_items_count;
- int *cant_disable_items;
- int cant_disable_items_count;
- char **mapflags;
- int mapflags_count;
- struct map_zone_disabled_command_entry **disabled_commands;
- int disabled_commands_count;
- struct map_zone_skill_damage_cap_entry **capped_skills;
- int capped_skills_count;
- struct {
- unsigned int merged : 1;
- } info;
-};
-
-struct map_drop_list {
- int drop_id;
- int drop_type;
- int drop_per;
-};
-
-
-struct questinfo {
- struct npc_data *nd;
- unsigned short icon;
- unsigned char color;
- int quest_id;
-
-# 639 "../../../server-code/src/map/map.h" 3 4
-_Bool
-# 639 "../../../server-code/src/map/map.h"
- hasJob;
- unsigned short job;
-};
-
-
-struct map_data {
- char name[(11 + 1)];
- uint16 index;
- struct mapcell* cell;
-# 658 "../../../server-code/src/map/map.h"
- struct block_list **block;
- struct block_list **block_mob;
-
- int16 m;
- int16 xs,ys;
- int16 bxs,bys;
- int16 bgscore_lion, bgscore_eagle;
- int npc_num;
- int users;
- int users_pvp;
- int iwall_num;
- struct map_flag {
- unsigned town : 1;
- unsigned autotrade : 1;
- unsigned allowks : 1;
- unsigned nomemo : 1;
- unsigned noteleport : 1;
- unsigned noreturn : 1;
- unsigned monster_noteleport : 1;
- unsigned nosave : 1;
- unsigned nobranch : 1;
- unsigned noexppenalty : 1;
- unsigned pvp : 1;
- unsigned pvp_noparty : 1;
- unsigned pvp_noguild : 1;
- unsigned pvp_nightmaredrop :1;
- unsigned pvp_nocalcrank : 1;
- unsigned gvg_castle : 1;
- unsigned gvg : 1;
- unsigned gvg_dungeon : 1;
- unsigned gvg_noparty : 1;
- unsigned battleground : 2;
- unsigned nozenypenalty : 1;
- unsigned notrade : 1;
- unsigned noskill : 1;
- unsigned nowarp : 1;
- unsigned nowarpto : 1;
- unsigned noicewall : 1;
- unsigned snow : 1;
- unsigned clouds : 1;
- unsigned clouds2 : 1;
- unsigned fog : 1;
- unsigned fireworks : 1;
- unsigned sakura : 1;
- unsigned leaves : 1;
- unsigned nobaseexp : 1;
- unsigned nojobexp : 1;
- unsigned nomobloot : 1;
- unsigned nomvploot : 1;
- unsigned nightenabled :1;
- unsigned nodrop : 1;
- unsigned novending : 1;
- unsigned loadevent : 1;
- unsigned nochat :1;
- unsigned partylock :1;
- unsigned guildlock :1;
- unsigned src4instance : 1;
- unsigned reset :1;
- unsigned chsysnolocalaj : 1;
- unsigned noknockback : 1;
- unsigned notomb : 1;
- unsigned nocashshop : 1;
- uint32 noviewid;
- } flag;
- struct point save;
- struct npc_data *npc[512];
- struct map_drop_list *drop_list;
- unsigned short drop_list_count;
-
- struct spawn_data *moblist[100];
- int mob_delete_timer;
- int jexp;
- int bexp;
- int nocommand;
-
-
- int instance_id;
- int instance_src_map;
-
-
- struct mapflag_skill_adjust **units;
- unsigned short unit_count;
-
- struct mapflag_skill_adjust **skills;
- unsigned short skill_count;
-
-
- struct map_zone_data *zone;
- char **zone_mf;
- unsigned short zone_mf_count;
- struct map_zone_data *prev_zone;
-
-
- struct channel_data *channel;
-
-
- unsigned int invincible_time_inc;
-
-
- unsigned short weapon_damage_rate;
-
- unsigned short magic_damage_rate;
-
- unsigned short misc_damage_rate;
-
- unsigned short short_damage_rate;
-
- unsigned short long_damage_rate;
-
-
-# 767 "../../../server-code/src/map/map.h" 3 4
-_Bool
-# 767 "../../../server-code/src/map/map.h"
- custom_name;
-
-
- int (*getcellp)(struct map_data* m, const struct block_list *bl, int16 x, int16 y, cell_chk cellchk);
- void (*setcell) (int16 m, int16 x, int16 y, cell_t cell,
-# 771 "../../../server-code/src/map/map.h" 3 4
- _Bool
-# 771 "../../../server-code/src/map/map.h"
- flag);
- char *cellPos;
-
-
- struct questinfo *qi_data;
- unsigned short qi_count;
-
-
- unsigned short hpmeter_visible;
- struct hplugin_data_store *hdata;
-};
-
-
-
-struct map_data_other_server {
- char name[(11 + 1)];
- unsigned short index;
- struct mapcell* cell;
- uint32 ip;
- uint16 port;
-};
-
-
-
-
-enum e_mapitflags {
- MAPIT_NORMAL = 0,
-
-};
-
-struct s_mapiterator;
-
-
-struct mapit_interface {
- struct s_mapiterator* (*alloc) (enum e_mapitflags flags, enum bl_type types);
- void (*free) (struct s_mapiterator* iter);
- struct block_list* (*first) (struct s_mapiterator* iter);
- struct block_list* (*last) (struct s_mapiterator* iter);
- struct block_list* (*next) (struct s_mapiterator* iter);
- struct block_list* (*prev) (struct s_mapiterator* iter);
-
-# 811 "../../../server-code/src/map/map.h" 3 4
-_Bool
-# 811 "../../../server-code/src/map/map.h"
- (*exists) (struct s_mapiterator* iter);
-};
-# 821 "../../../server-code/src/map/map.h"
-typedef struct map_session_data TBL_PC;
-typedef struct npc_data TBL_NPC;
-typedef struct mob_data TBL_MOB;
-typedef struct flooritem_data TBL_ITEM;
-typedef struct chat_data TBL_CHAT;
-typedef struct skill_unit TBL_SKILL;
-typedef struct pet_data TBL_PET;
-typedef struct homun_data TBL_HOM;
-typedef struct mercenary_data TBL_MER;
-typedef struct elemental_data TBL_ELEM;
-# 870 "../../../server-code/src/map/map.h"
-static inline struct block_list *BL_UCAST_(struct block_list *bl) __attribute__((unused));
-static inline struct block_list *BL_UCAST_(struct block_list *bl)
-{
- return bl;
-}
-# 899 "../../../server-code/src/map/map.h"
-static inline const struct block_list *BL_UCCAST_(const struct block_list *bl) __attribute__((unused));
-static inline const struct block_list *BL_UCCAST_(const struct block_list *bl)
-{
- return bl;
-}
-# 918 "../../../server-code/src/map/map.h"
-struct charid_request {
- struct charid_request* next;
- int charid;
-};
-struct charid2nick {
- char nick[(23 + 1)];
- struct charid_request* requests;
-};
-
-
-struct map_cache_main_header {
- uint32 file_size;
- uint16 map_count;
-};
-
-
-struct map_cache_map_info {
- char name[(11 + 1)];
- int16 xs;
- int16 ys;
- int32 len;
-};
-
-
-
-
-
-
-
-struct map_interface {
-
-
-
-# 950 "../../../server-code/src/map/map.h" 3 4
-_Bool
-# 950 "../../../server-code/src/map/map.h"
- minimal;
-
-# 951 "../../../server-code/src/map/map.h" 3 4
-_Bool
-# 951 "../../../server-code/src/map/map.h"
- scriptcheck;
-
-
- char **extra_scripts;
- int extra_scripts_count;
-
- int retval;
- int count;
-
- int autosave_interval;
- int minsave_interval;
- int save_settings;
- int agit_flag;
- int agit2_flag;
- int night_flag;
- int enable_spy;
- char db_path[256];
-
- char help_txt[256];
- char help2_txt[256];
- char charhelp_txt[256];
-
- char wisp_server_name[(23 + 1)];
-
- char *INTER_CONF_NAME;
- char *LOG_CONF_NAME;
- char *MAP_CONF_NAME;
- char *BATTLE_CONF_FILENAME;
- char *ATCOMMAND_CONF_FILENAME;
- char *SCRIPT_CONF_NAME;
- char *MSG_CONF_NAME;
- char *GRF_PATH_FILENAME;
-
- char autotrade_merchants_db[32];
- char autotrade_data_db[32];
- char npc_market_data_db[32];
-
- char default_codepage[32];
- char default_lang_str[64];
- uint8 default_lang_id;
-
- int server_port;
- char server_ip[32];
- char server_id[32];
- char server_pw[100];
- char server_db[32];
- struct Sql *mysql_handle;
-
- int port;
- int users;
- int enable_grf;
-
-# 1002 "../../../server-code/src/map/map.h" 3 4
-_Bool
-# 1002 "../../../server-code/src/map/map.h"
- ip_set;
-
-# 1003 "../../../server-code/src/map/map.h" 3 4
-_Bool
-# 1003 "../../../server-code/src/map/map.h"
- char_ip_set;
-
- int16 index2mapid[2000];
-
- struct DBMap *id_db;
- struct DBMap *pc_db;
- struct DBMap *mobid_db;
- struct DBMap *bossid_db;
- struct DBMap *map_db;
- struct DBMap *nick_db;
- struct DBMap *charid_db;
- struct DBMap *regen_db;
- struct DBMap *zone_db;
- struct DBMap *iwall_db;
- struct block_list **block_free;
- int block_free_count, block_free_lock, block_free_list_size;
- struct block_list **bl_list;
- int bl_list_count, bl_list_size;
-int8 HERC__zeroed_block_BEGIN;
- struct block_list bl_head;
- struct map_zone_data zone_all;
- struct map_zone_data zone_pk;
-int8 HERC__zeroed_block_END;
-
- struct map_session_data *cpsd;
- struct map_data *list;
-
- struct eri *iterator_ers;
- char *cache_buffer;
-
- struct eri *flooritem_ers;
-
- int bonus_id;
-
-
-# 1037 "../../../server-code/src/map/map.h" 3 4
-_Bool
-# 1037 "../../../server-code/src/map/map.h"
- cpsd_active;
-
- void (*zone_init) (void);
- void (*zone_remove) (int m);
- void (*zone_apply) (int m, struct map_zone_data *zone, const char* start, const char* buffer, const char* filepath);
- void (*zone_change) (int m, struct map_zone_data *zone, const char* start, const char* buffer, const char* filepath);
- void (*zone_change2) (int m, struct map_zone_data *zone);
-
- int (*getcell) (int16 m, const struct block_list *bl, int16 x, int16 y, cell_chk cellchk);
- void (*setgatcell) (int16 m, int16 x, int16 y, int gat);
-
- void (*cellfromcache) (struct map_data *m);
-
- void (*setusers) (int);
- int (*getusers) (void);
- int (*usercount) (void);
-
- int (*freeblock) (struct block_list *bl);
- int (*freeblock_lock) (void);
- int (*freeblock_unlock) (void);
-
- int (*addblock) (struct block_list* bl);
- int (*delblock) (struct block_list* bl);
- int (*moveblock) (struct block_list *bl, int x1, int y1, int64 tick);
-
- int (*count_oncell) (int16 m,int16 x,int16 y,int type,int flag);
- struct skill_unit * (*find_skill_unit_oncell) (struct block_list* target,int16 x,int16 y,uint16 skill_id,struct skill_unit* out_unit, int flag);
-
- int (*get_new_object_id) (void);
- int (*search_freecell) (struct block_list *src, int16 m, int16 *x, int16 *y, int16 rx, int16 ry, int flag);
-
-# 1067 "../../../server-code/src/map/map.h" 3 4
-_Bool
-# 1067 "../../../server-code/src/map/map.h"
- (*closest_freecell) (int16 m, const struct block_list *bl, int16 *x, int16 *y, int type, int flag);
-
- int (*quit) (struct map_session_data *sd);
-
-
-# 1071 "../../../server-code/src/map/map.h" 3 4
-_Bool
-# 1071 "../../../server-code/src/map/map.h"
- (*addnpc) (int16 m,struct npc_data *nd);
-
- int (*clearflooritem_timer) (int tid, int64 tick, int id, intptr_t data);
- int (*removemobs_timer) (int tid, int64 tick, int id, intptr_t data);
- void (*clearflooritem) (struct block_list* bl);
- int (*addflooritem) (const struct block_list *bl, struct item *item_data, int amount, int16 m, int16 x, int16 y, int first_charid, int second_charid, int third_charid, int flags);
-
- void (*addnickdb) (int charid, const char* nick);
- void (*delnickdb) (int charid, const char* nick);
- void (*reqnickdb) (struct map_session_data* sd,int charid);
- const char* (*charid2nick) (int charid);
- struct map_session_data* (*charid2sd) (int charid);
-
- void (*vforeachpc) (int (*func)(struct map_session_data* sd, va_list args), va_list args);
- void (*foreachpc) (int (*func)(struct map_session_data* sd, va_list args), ...);
- void (*vforeachmob) (int (*func)(struct mob_data* md, va_list args), va_list args);
- void (*foreachmob) (int (*func)(struct mob_data* md, va_list args), ...);
- void (*vforeachnpc) (int (*func)(struct npc_data* nd, va_list args), va_list args);
- void (*foreachnpc) (int (*func)(struct npc_data* nd, va_list args), ...);
- void (*vforeachregen) (int (*func)(struct block_list* bl, va_list args), va_list args);
- void (*foreachregen) (int (*func)(struct block_list* bl, va_list args), ...);
- void (*vforeachiddb) (int (*func)(struct block_list* bl, va_list args), va_list args);
- void (*foreachiddb) (int (*func)(struct block_list* bl, va_list args), ...);
-
- int (*vforeachinrange) (int (*func)(struct block_list*,va_list), struct block_list* center, int16 range, int type, va_list ap);
- int (*foreachinrange) (int (*func)(struct block_list*,va_list), struct block_list* center, int16 range, int type, ...);
- int (*vforeachinshootrange) (int (*func)(struct block_list*,va_list), struct block_list* center, int16 range, int type, va_list ap);
- int (*foreachinshootrange) (int (*func)(struct block_list*,va_list), struct block_list* center, int16 range, int type, ...);
- int (*vforeachinarea) (int (*func)(struct block_list*,va_list), int16 m, int16 x0, int16 y0, int16 x1, int16 y1, int type, va_list ap);
- int (*foreachinarea) (int (*func)(struct block_list*,va_list), int16 m, int16 x0, int16 y0, int16 x1, int16 y1, int type, ...);
- int (*vforcountinrange) (int (*func)(struct block_list*,va_list), struct block_list* center, int16 range, int count, int type, va_list ap);
- int (*forcountinrange) (int (*func)(struct block_list*,va_list), struct block_list* center, int16 range, int count, int type, ...);
- int (*vforcountinarea) (int (*func)(struct block_list*,va_list), int16 m, int16 x0, int16 y0, int16 x1, int16 y1, int count, int type, va_list ap);
- int (*forcountinarea) (int (*func)(struct block_list*,va_list), int16 m, int16 x0, int16 y0, int16 x1, int16 y1, int count, int type, ...);
- int (*vforeachinmovearea) (int (*func)(struct block_list*,va_list), struct block_list* center, int16 range, int16 dx, int16 dy, int type, va_list ap);
- int (*foreachinmovearea) (int (*func)(struct block_list*,va_list), struct block_list* center, int16 range, int16 dx, int16 dy, int type, ...);
- int (*vforeachincell) (int (*func)(struct block_list*,va_list), int16 m, int16 x, int16 y, int type, va_list ap);
- int (*foreachincell) (int (*func)(struct block_list*,va_list), int16 m, int16 x, int16 y, int type, ...);
- int (*vforeachinpath) (int (*func)(struct block_list*,va_list), int16 m, int16 x0, int16 y0, int16 x1, int16 y1, int16 range, int length, int type, va_list ap);
- int (*foreachinpath) (int (*func)(struct block_list*,va_list), int16 m, int16 x0, int16 y0, int16 x1, int16 y1, int16 range, int length, int type, ...);
- int (*vforeachinmap) (int (*func)(struct block_list*,va_list), int16 m, int type, va_list args);
- int (*foreachinmap) (int (*func)(struct block_list*,va_list), int16 m, int type, ...);
- int (*vforeachininstance)(int (*func)(struct block_list*,va_list), int16 instance_id, int type, va_list ap);
- int (*foreachininstance)(int (*func)(struct block_list*,va_list), int16 instance_id, int type,...);
-
- struct map_session_data *(*id2sd) (int id);
- struct npc_data *(*id2nd) (int id);
- struct mob_data *(*id2md) (int id);
- struct flooritem_data *(*id2fi) (int id);
- struct chat_data *(*id2cd) (int id);
- struct skill_unit *(*id2su) (int id);
- struct pet_data *(*id2pd) (int id);
- struct homun_data *(*id2hd) (int id);
- struct mercenary_data *(*id2mc) (int id);
- struct elemental_data *(*id2ed) (int id);
- struct block_list *(*id2bl) (int id);
-
-# 1127 "../../../server-code/src/map/map.h" 3 4
-_Bool
-# 1127 "../../../server-code/src/map/map.h"
- (*blid_exists) (int id);
- int16 (*mapindex2mapid) (unsigned short map_index);
- int16 (*mapname2mapid) (const char* name);
- int (*mapname2ipport) (unsigned short name, uint32* ip, uint16* port);
- int (*setipport) (unsigned short map_index, uint32 ip, uint16 port);
- int (*eraseipport) (unsigned short map_index, uint32 ip, uint16 port);
- int (*eraseallipport) (void);
- void (*addiddb) (struct block_list *bl);
- void (*deliddb) (struct block_list *bl);
-
- struct map_session_data * (*nick2sd) (const char *nick);
- struct mob_data * (*getmob_boss) (int16 m);
- struct mob_data * (*id2boss) (int id);
- uint32 (*race_id2mask) (int race);
-
- void (*reloadnpc) (
-# 1142 "../../../server-code/src/map/map.h" 3 4
- _Bool
-# 1142 "../../../server-code/src/map/map.h"
- clear);
-
- int (*check_dir) (int s_dir,int t_dir);
- uint8 (*calc_dir) (struct block_list *src,int16 x,int16 y);
- int (*random_dir) (struct block_list *bl, short *x, short *y);
-
- int (*cleanup_sub) (struct block_list *bl, va_list ap);
-
- int (*delmap) (char* mapname);
- void (*flags_init) (void);
-
-
-# 1153 "../../../server-code/src/map/map.h" 3 4
-_Bool
-# 1153 "../../../server-code/src/map/map.h"
- (*iwall_set) (int16 m, int16 x, int16 y, int size, int8 dir,
-# 1153 "../../../server-code/src/map/map.h" 3 4
- _Bool
-# 1153 "../../../server-code/src/map/map.h"
- shootable, const char* wall_name);
- void (*iwall_get) (struct map_session_data *sd);
- void (*iwall_remove) (const char *wall_name);
-
- int (*addmobtolist) (unsigned short m, struct spawn_data *spawn);
- void (*spawnmobs) (int16 m);
- void (*removemobs) (int16 m);
-
- void (*addmap2db) (struct map_data *m);
- void (*removemapdb) (struct map_data *m);
- void (*clean) (int i);
-
- void (*do_shutdown) (void);
-
- int (*freeblock_timer) (int tid, int64 tick, int id, intptr_t data);
- int (*searchrandfreecell) (int16 m, const struct block_list *bl, int16 *x, int16 *y, int stack);
- int (*count_sub) (struct block_list *bl, va_list ap);
- struct DBData (*create_charid2nick) (union DBKey key, va_list args);
- int (*removemobs_sub) (struct block_list *bl, va_list ap);
- struct mapcell (*gat2cell) (int gat);
- int (*cell2gat) (struct mapcell cell);
- int (*getcellp) (struct map_data *m, const struct block_list *bl, int16 x, int16 y, cell_chk cellchk);
- void (*setcell) (int16 m, int16 x, int16 y, cell_t cell,
-# 1175 "../../../server-code/src/map/map.h" 3 4
- _Bool
-# 1175 "../../../server-code/src/map/map.h"
- flag);
- int (*sub_getcellp) (struct map_data *m, const struct block_list *bl, int16 x, int16 y, cell_chk cellchk);
- void (*sub_setcell) (int16 m, int16 x, int16 y, cell_t cell,
-# 1177 "../../../server-code/src/map/map.h" 3 4
- _Bool
-# 1177 "../../../server-code/src/map/map.h"
- flag);
- void (*iwall_nextxy) (int16 x, int16 y, int8 dir, int pos, int16 *x1, int16 *y1);
- struct DBData (*create_map_data_other_server) (union DBKey key, va_list args);
- int (*eraseallipport_sub) (union DBKey key, struct DBData *data, va_list va);
- char* (*init_mapcache) (FILE *fp);
- int (*readfromcache) (struct map_data *m, char *buffer);
- int (*addmap) (const char *mapname);
- void (*delmapid) (int id);
- void (*zone_db_clear) (void);
- void (*list_final) (void);
- int (*waterheight) (char *mapname);
- int (*readgat) (struct map_data *m);
- int (*readallmaps) (void);
- int (*config_read) (char *cfgName);
- int (*config_read_sub) (char *cfgName);
- void (*reloadnpc_sub) (char *cfgName);
- int (*inter_config_read) (char *cfgName);
- int (*sql_init) (void);
- int (*sql_close) (void);
-
-# 1196 "../../../server-code/src/map/map.h" 3 4
-_Bool
-# 1196 "../../../server-code/src/map/map.h"
- (*zone_mf_cache) (int m, char *flag, char *params);
- unsigned short (*zone_str2itemid) (const char *name);
- unsigned short (*zone_str2skillid) (const char *name);
- enum bl_type (*zone_bl_type) (const char *entry, enum map_zone_skill_subtype *subtype);
- void (*read_zone_db) (void);
- int (*db_final) (union DBKey key, struct DBData *data, va_list ap);
- int (*nick_db_final) (union DBKey key, struct DBData *data, va_list args);
- int (*cleanup_db_sub) (union DBKey key, struct DBData *data, va_list va);
- int (*abort_sub) (struct map_session_data *sd, va_list ap);
- void (*update_cell_bl) (struct block_list *bl,
-# 1205 "../../../server-code/src/map/map.h" 3 4
- _Bool
-# 1205 "../../../server-code/src/map/map.h"
- increase);
- int (*get_new_bonus_id) (void);
- void (*add_questinfo) (int m, struct questinfo *qi);
-
-# 1208 "../../../server-code/src/map/map.h" 3 4
-_Bool
-# 1208 "../../../server-code/src/map/map.h"
- (*remove_questinfo) (int m, struct npc_data *nd);
- struct map_zone_data *(*merge_zone) (struct map_zone_data *main, struct map_zone_data *other);
- void (*zone_clear_single) (struct map_zone_data *zone);
-};
-
-
-void map_defaults(void);
-
-
-extern struct mapit_interface *mapit;
-extern struct map_interface *map;
-# 25 "../../../server-code/src/map/clif.h" 2
-# 1 "../../../server-code/src/map/packets_struct.h" 1
-# 32 "../../../server-code/src/map/packets_struct.h"
-enum packet_headers {
- banking_withdraw_ackType = 0x9aa,
- banking_deposit_ackType = 0x9a8,
- banking_checkType = 0x9a6,
- cart_additem_ackType = 0x12c,
- sc_notickType = 0x196,
-
- hotkeyType = 0xa00,
-
-
-
-
-
-
- cartaddType = 0xa0b,
-
-
-
-
-
-
- storageaddType = 0xa0a,
-
-
-
-
-
-
- tradeaddType = 0xa09,
-# 75 "../../../server-code/src/map/packets_struct.h"
- additemType = 0xa0c,
-# 92 "../../../server-code/src/map/packets_struct.h"
- idle_unitType = 0x9dd,
-
-
-
-
- status_changeType = 0x983,
-
-
-
-
-
- status_change2Type = 0x43f,
- status_change_endType = 0x196,
-# 114 "../../../server-code/src/map/packets_struct.h"
- damageType = 0x8c8,
-# 131 "../../../server-code/src/map/packets_struct.h"
- spawn_unitType = 0x9dc,
-# 140 "../../../server-code/src/map/packets_struct.h"
- authokType = 0xa18,
-
- script_clearType = 0x8d6,
- package_item_announceType = 0x7fd,
- item_drop_announceType = 0x7fd,
-# 160 "../../../server-code/src/map/packets_struct.h"
- unit_walkingType = 0x9db,
-
-
-
- bgqueue_ackType = 0x8d8,
- bgqueue_notice_deleteType = 0x8db,
- bgqueue_registerType = 0x8d7,
- bgqueue_updateinfoType = 0x8d9,
- bgqueue_checkstateType = 0x90a,
- bgqueue_revokereqType = 0x8da,
- bgqueue_battlebeginackType = 0x8e0,
- bgqueue_notify_entryType = 0x8d9,
- bgqueue_battlebeginsType = 0x8df,
- notify_bounditemType = 0x2d3,
-
-
-
-
-
-
-
- skill_entryType = 0x9ca,
-
- graffiti_entryType = 0x1c9,
-
- dropflooritemType = 0x84b,
-
-
-
-
- inventorylistnormalType = 0x991,
-# 199 "../../../server-code/src/map/packets_struct.h"
- inventorylistequipType = 0xa0d,
-# 210 "../../../server-code/src/map/packets_struct.h"
- storagelistnormalType = 0x995,
-# 219 "../../../server-code/src/map/packets_struct.h"
- storagelistequipType = 0xa10,
-# 230 "../../../server-code/src/map/packets_struct.h"
- cartlistnormalType = 0x993,
-# 239 "../../../server-code/src/map/packets_struct.h"
- cartlistequipType = 0xa0f,
-# 252 "../../../server-code/src/map/packets_struct.h"
- vendinglistType = 0x800,
-
- openvendingType = 0x136,
-
- equipitemType = 0x998,
-
-
-
-
- equipitemackType = 0x999,
-
-
-
-
- unequipitemackType = 0x99a,
-
-
-
-
- viewequipackType = 0xa2d,
-
-
-
-
-
-
-
- notifybindonequip = 0x2d3,
- monsterhpType = 0x977,
- maptypeproperty2Type = 0x99b,
- npcmarketresultackType = 0x9d7,
- npcmarketopenType = 0x9d5,
-
- wisendType = 0x9df,
-
-
-
- partyleaderchangedType = 0x7fc,
- rouletteinfoackType = 0xa1c,
- roulettgenerateackType = 0xa20,
- roulettercvitemackType = 0xa22,
-
-
-
- questListType = 0x97a,
-
-
-
-};
-
-
-#pragma pack(push, 1)
-
-
-
-
-
-struct EQUIPSLOTINFO {
- unsigned short card[4];
-} __attribute__((packed));
-
-struct NORMALITEM_INFO {
- short index;
- unsigned short ITID;
- unsigned char type;
-
-
-
- short count;
-
- unsigned int WearState;
-
-
-
-
- struct EQUIPSLOTINFO slot;
-
-
- int HireExpireDate;
-
-
- struct {
- unsigned char IsIdentified : 1;
- unsigned char PlaceETCTab : 1;
- unsigned char SpareBits : 6;
- } Flag;
-
-} __attribute__((packed));
-
-struct RndOptions {
- short index;
- short value;
- unsigned char param;
-} __attribute__((packed));
-
-struct EQUIPITEM_INFO {
- short index;
- unsigned short ITID;
- unsigned char type;
-
-
-
-
- unsigned int location;
- unsigned int WearState;
-
-
-
-
-
-
-
- unsigned char RefiningLevel;
- struct EQUIPSLOTINFO slot;
-
- int HireExpireDate;
-
-
- unsigned short bindOnEquipType;
-
-
- unsigned short wItemSpriteNumber;
-
-
- unsigned char option_count;
- struct RndOptions option_data[5];
-
-
- struct {
- unsigned char IsIdentified : 1;
- unsigned char IsDamaged : 1;
- unsigned char PlaceETCTab : 1;
- unsigned char SpareBits : 5;
- } Flag;
-
-} __attribute__((packed));
-
-struct packet_authok {
- short PacketType;
- unsigned int startTime;
- unsigned char PosDir[3];
- unsigned char xSize;
- unsigned char ySize;
-
- short font;
-
-
- unsigned char sex;
-
-} __attribute__((packed));
-
-struct packet_monster_hp {
- short PacketType;
- unsigned int GID;
- int HP;
- int MaxHP;
-} __attribute__((packed));
-
-struct packet_sc_notick {
- short PacketType;
- short index;
- unsigned int AID;
- unsigned char state;
-} __attribute__((packed));
-
-struct packet_additem {
- short PacketType;
- unsigned short Index;
- unsigned short count;
- unsigned short nameid;
- uint8 IsIdentified;
- uint8 IsDamaged;
- unsigned char refiningLevel;
- struct EQUIPSLOTINFO slot;
-
- unsigned int location;
-
-
-
- unsigned char type;
- unsigned char result;
-
- int HireExpireDate;
-
-
- unsigned short bindOnEquipType;
-
-
- struct RndOptions option_data[5];
-
-} __attribute__((packed));
-
-struct packet_dropflooritem {
- short PacketType;
- unsigned int ITAID;
- unsigned short ITID;
-
- unsigned short type;
-
- uint8 IsIdentified;
- short xPos;
- short yPos;
- unsigned char subX;
- unsigned char subY;
- short count;
-} __attribute__((packed));
-struct packet_idle_unit2 {
-# 491 "../../../server-code/src/map/packets_struct.h"
- int8 HERC__unavailable_struct;
-
-} __attribute__((packed));
-
-struct packet_spawn_unit2 {
-# 522 "../../../server-code/src/map/packets_struct.h"
- int8 HERC__unavailable_struct;
-
-} __attribute__((packed));
-
-struct packet_spawn_unit {
- short PacketType;
-
- short PacketLength;
- unsigned char objecttype;
-
-
- unsigned int AID;
-
- unsigned int GID;
- short speed;
- short bodyState;
- short healthState;
-
-
-
- int effectState;
-
- short job;
- short head;
-
-
-
- int weapon;
-
- short accessory;
-
-
-
- short accessory2;
- short accessory3;
- short headpalette;
- short bodypalette;
- short headDir;
-
- short robe;
-
- unsigned int GUID;
- short GEmblemVer;
- short honor;
-
- int virtue;
-
-
-
- uint8 isPKModeON;
- unsigned char sex;
- unsigned char PosDir[3];
- unsigned char xSize;
- unsigned char ySize;
- short clevel;
-
- short font;
-
-
- int maxHP;
- int HP;
- unsigned char isBoss;
-
-
-
-
-
-} __attribute__((packed));
-
-struct packet_unit_walking {
- short PacketType;
-
- short PacketLength;
-
-
- unsigned char objecttype;
-
-
- unsigned int AID;
-
- unsigned int GID;
- short speed;
- short bodyState;
- short healthState;
-
-
-
- int effectState;
-
- short job;
- short head;
-
-
-
- int weapon;
-
- short accessory;
- unsigned int moveStartTime;
-
-
-
- short accessory2;
- short accessory3;
- short headpalette;
- short bodypalette;
- short headDir;
-
- short robe;
-
- unsigned int GUID;
- short GEmblemVer;
- short honor;
-
- int virtue;
-
-
-
- uint8 isPKModeON;
- unsigned char sex;
- unsigned char MoveData[6];
- unsigned char xSize;
- unsigned char ySize;
- short clevel;
-
- short font;
-
-
- int maxHP;
- int HP;
- unsigned char isBoss;
-
-
-
-
-
-} __attribute__((packed));
-
-struct packet_idle_unit {
- short PacketType;
-
- short PacketLength;
- unsigned char objecttype;
-
-
- unsigned int AID;
-
- unsigned int GID;
- short speed;
- short bodyState;
- short healthState;
-
-
-
- int effectState;
-
- short job;
- short head;
-
-
-
- int weapon;
-
- short accessory;
-
-
-
- short accessory2;
- short accessory3;
- short headpalette;
- short bodypalette;
- short headDir;
-
- short robe;
-
- unsigned int GUID;
- short GEmblemVer;
- short honor;
-
- int virtue;
-
-
-
- uint8 isPKModeON;
- unsigned char sex;
- unsigned char PosDir[3];
- unsigned char xSize;
- unsigned char ySize;
- unsigned char state;
- short clevel;
-
- short font;
-
-
- int maxHP;
- int HP;
- unsigned char isBoss;
-
-
-
-
-
-} __attribute__((packed));
-
-struct packet_status_change {
- short PacketType;
- short index;
- unsigned int AID;
- unsigned char state;
-
- unsigned int Total;
-
-
- unsigned int Left;
- int val1;
- int val2;
- int val3;
-
-} __attribute__((packed));
-
-struct packet_status_change_end {
- short PacketType;
- short index;
- unsigned int AID;
- unsigned char state;
-} __attribute__((packed));
-
-struct packet_status_change2 {
- short PacketType;
- short index;
- unsigned int AID;
- unsigned char state;
- unsigned int Left;
- int val1;
- int val2;
- int val3;
-} __attribute__((packed));
-
-struct packet_maptypeproperty2 {
- short PacketType;
- short type;
- struct {
- unsigned int party : 1;
- unsigned int guild : 1;
- unsigned int siege : 1;
- unsigned int mineffect : 1;
- unsigned int nolockon : 1;
- unsigned int countpk : 1;
- unsigned int nopartyformation : 1;
- unsigned int bg : 1;
- unsigned int nocostume : 1;
- unsigned int usecart : 1;
- unsigned int summonstarmiracle : 1;
- unsigned int SpareBits : 15;
- } flag;
-} __attribute__((packed));
-
-struct packet_bgqueue_ack {
- short PacketType;
- unsigned char type;
- char bg_name[(23 + 1)];
-} __attribute__((packed));
-
-struct packet_bgqueue_notice_delete {
- short PacketType;
- unsigned char type;
- char bg_name[(23 + 1)];
-} __attribute__((packed));
-
-struct packet_bgqueue_register {
- short PacketType;
- short type;
- char bg_name[(23 + 1)];
-} __attribute__((packed));
-
-struct packet_bgqueue_update_info {
- short PacketType;
- char bg_name[(23 + 1)];
- int position;
-} __attribute__((packed));
-
-struct packet_bgqueue_checkstate {
- short PacketType;
- char bg_name[(23 + 1)];
-} __attribute__((packed));
-
-struct packet_bgqueue_revoke_req {
- short PacketType;
- char bg_name[(23 + 1)];
-} __attribute__((packed));
-
-struct packet_bgqueue_battlebegin_ack {
- short PacketType;
- unsigned char result;
- char bg_name[(23 + 1)];
- char game_name[(23 + 1)];
-} __attribute__((packed));
-
-struct packet_bgqueue_notify_entry {
- short PacketType;
- char name[(23 + 1)];
- int position;
-} __attribute__((packed));
-
-struct packet_bgqueue_battlebegins {
- short PacketType;
- char bg_name[(23 + 1)];
- char game_name[(23 + 1)];
-} __attribute__((packed));
-
-struct packet_script_clear {
- short PacketType;
- unsigned int NpcID;
-} __attribute__((packed));
-
-
-struct packet_package_item_announce {
- short PacketType;
- short PacketLength;
- unsigned char type;
- unsigned short ItemID;
- char len;
- char Name[(23 + 1)];
- char unknown;
- unsigned short BoxItemID;
-} __attribute__((packed));
-
-
-struct packet_item_drop_announce {
- short PacketType;
- short PacketLength;
- unsigned char type;
- unsigned short ItemID;
- char len;
- char Name[(23 + 1)];
- char monsterNameLen;
- char monsterName[(23 + 1)];
-} __attribute__((packed));
-
-struct packet_cart_additem_ack {
- short PacketType;
- char result;
-} __attribute__((packed));
-
-struct packet_banking_check {
- short PacketType;
- int64 Money;
- short Reason;
-} __attribute__((packed));
-
-struct packet_banking_deposit_req {
- short PacketType;
- unsigned int AID;
- int Money;
-} __attribute__((packed));
-
-struct packet_banking_withdraw_req {
- short PacketType;
- unsigned int AID;
- int Money;
-} __attribute__((packed));
-
-struct packet_banking_deposit_ack {
- short PacketType;
- short Reason;
- int64 Money;
- int Balance;
-} __attribute__((packed));
-
-struct packet_banking_withdraw_ack {
- short PacketType;
- short Reason;
- int64 Money;
- int Balance;
-} __attribute__((packed));
-
-
-struct packet_roulette_open_ack {
- short PacketType;
- char Result;
- int Serial;
- char Step;
- char Idx;
- short AdditionItemID;
- int GoldPoint;
- int SilverPoint;
- int BronzePoint;
-} __attribute__((packed));
-
-struct packet_roulette_info_ack {
- short PacketType;
- short PacketLength;
- unsigned int RouletteSerial;
- struct {
- unsigned short Row;
- unsigned short Position;
- unsigned short ItemId;
- unsigned short Count;
- } ItemInfo[42];
-} __attribute__((packed));
-
-struct packet_roulette_close_ack {
- short PacketType;
- unsigned char Result;
-} __attribute__((packed));
-
-struct packet_roulette_generate_ack {
- short PacketType;
- unsigned char Result;
- unsigned short Step;
- unsigned short Idx;
- unsigned short AdditionItemID;
- int RemainGold;
- int RemainSilver;
- int RemainBronze;
-} __attribute__((packed));
-
-struct packet_roulette_itemrecv_req {
- short PacketType;
- unsigned char Condition;
-} __attribute__((packed));
-
-struct packet_roulette_itemrecv_ack {
- short PacketType;
- unsigned char Result;
- unsigned short AdditionItemID;
-} __attribute__((packed));
-
-struct packet_itemlist_normal {
- short PacketType;
- short PacketLength;
- struct NORMALITEM_INFO list[600];
-} __attribute__((packed));
-
-struct packet_itemlist_equip {
- short PacketType;
- short PacketLength;
- struct EQUIPITEM_INFO list[600];
-} __attribute__((packed));
-
-struct packet_storelist_normal {
- short PacketType;
- short PacketLength;
-
- char name[(23 + 1)];
-
- struct NORMALITEM_INFO list[600];
-} __attribute__((packed));
-
-struct packet_storelist_equip {
- short PacketType;
- short PacketLength;
-
- char name[(23 + 1)];
-
- struct EQUIPITEM_INFO list[600];
-} __attribute__((packed));
-
-struct packet_equip_item {
- short PacketType;
- unsigned short index;
-
- unsigned int wearLocation;
-
-
-
-} __attribute__((packed));
-
-struct packet_equipitem_ack {
- short PacketType;
- unsigned short index;
-
- unsigned int wearLocation;
-
-
-
-
- unsigned short wItemSpriteNumber;
-
- unsigned char result;
-} __attribute__((packed));
-
-struct packet_unequipitem_ack {
- short PacketType;
- unsigned short index;
-
- unsigned int wearLocation;
-
-
-
- unsigned char result;
-} __attribute__((packed));
-
-struct packet_viewequip_ack {
- short PacketType;
- short PacketLength;
- char characterName[(23 + 1)];
- short job;
- short head;
- short accessory;
- short accessory2;
- short accessory3;
-
- short robe;
-
- short headpalette;
- short bodypalette;
- unsigned char sex;
- struct EQUIPITEM_INFO list[100];
-} __attribute__((packed));
-
-struct packet_notify_bounditem {
- short PacketType;
- unsigned short index;
-} __attribute__((packed));
-
-struct packet_skill_entry {
- short PacketType;
-
- short PacketLength;
-
- unsigned int AID;
- unsigned int creatorAID;
- short xPos;
- short yPos;
-
- int job;
-
-
-
-
- char RadiusRange;
-
- unsigned char isVisible;
-
- unsigned char level;
-
-} __attribute__((packed));
-
-struct packet_graffiti_entry {
- short PacketType;
- unsigned int AID;
- unsigned int creatorAID;
- short xPos;
- short yPos;
- unsigned char job;
- unsigned char isVisible;
- unsigned char isContens;
- char msg[80];
-} __attribute__((packed));
-
-struct packet_damage {
- short PacketType;
- unsigned int GID;
- unsigned int targetGID;
- unsigned int startTime;
- int attackMT;
- int attackedMT;
-
-
-
- int damage;
-
-
- unsigned char is_sp_damaged;
-
- short count;
- unsigned char action;
-
-
-
- int leftDamage;
-
-} __attribute__((packed));
-
-struct packet_gm_monster_item {
- short PacketType;
-
- char str[100];
-
-
-
-} __attribute__((packed));
-
-struct packet_npc_market_purchase {
- short PacketType;
- short PacketLength;
- struct {
- unsigned short ITID;
- int qty;
- } list[];
-} __attribute__((packed));
-
-struct packet_npc_market_result_ack {
- short PacketType;
- short PacketLength;
- unsigned char result;
- struct {
- unsigned short ITID;
- unsigned short qty;
- unsigned int price;
- } list[100];
-} __attribute__((packed));
-
-struct packet_npc_market_open {
- short PacketType;
- short PacketLength;
-
- struct {
- unsigned short nameid;
- unsigned char type;
- unsigned int price;
- unsigned int qty;
- unsigned short view;
-
-
-
- } list[1000];
-} __attribute__((packed));
-
-struct packet_wis_end {
- short PacketType;
- char result;
-
- unsigned int unknown;
-
-} __attribute__((packed));
-
-
-struct packet_party_leader_changed {
- short PacketType;
- unsigned int prev_leader_aid;
- unsigned int new_leader_aid;
-} __attribute__((packed));
-
-struct packet_hotkey {
-
- short PacketType;
-
- char Rotate;
-
- struct {
- char isSkill;
- unsigned int ID;
- short count;
- } hotkey[38];
-
-
-
-} __attribute__((packed));
-
-
-
-
-struct packet_mission_info_sub {
- int32 mob_id;
- int16 huntCount;
- int16 maxCount;
- char mobName[(23 + 1)];
-} __attribute__((packed));
-
-
-
-
-
-struct packet_quest_list_info {
- int32 questID;
- int8 active;
-
- int32 quest_svrTime;
- int32 quest_endTime;
- int16 hunting_count;
- struct packet_mission_info_sub objectives[];
-
-} __attribute__((packed));
-# 1206 "../../../server-code/src/map/packets_struct.h"
-struct packet_quest_list_header {
- uint16 PacketType;
- uint16 PacketLength;
- int32 questCount;
-
-} __attribute__((packed));
-
-
-#pragma pack(pop)
-# 26 "../../../server-code/src/map/clif.h" 2
-# 34 "../../../server-code/src/map/clif.h"
-struct battleground_data;
-struct channel_data;
-struct chat_data;
-struct eri;
-struct flooritem_data;
-struct guild;
-struct homun_data;
-struct item;
-struct item_data;
-struct itemlist;
-struct map_session_data;
-struct mercenary_data;
-struct mob_data;
-struct npc_data;
-struct party_booking_ad_info;
-struct party_data;
-struct pet_data;
-struct quest;
-struct s_vending;
-struct skill_cd;
-struct skill_unit;
-struct unit_data;
-struct view_data;
-# 76 "../../../server-code/src/map/clif.h"
-typedef enum send_target {
- ALL_CLIENT,
- ALL_SAMEMAP,
- AREA,
- AREA_WOS,
- AREA_WOC,
- AREA_WOSC,
- AREA_CHAT_WOC,
- CHAT,
- CHAT_WOS,
- PARTY,
- PARTY_WOS,
- PARTY_SAMEMAP,
- PARTY_SAMEMAP_WOS,
- PARTY_AREA,
- PARTY_AREA_WOS,
- GUILD,
- GUILD_WOS,
- GUILD_SAMEMAP,
- GUILD_SAMEMAP_WOS,
- GUILD_AREA,
- GUILD_AREA_WOS,
- GUILD_NOBG,
- DUEL,
- DUEL_WOS,
- SELF,
-
- BG,
- BG_WOS,
- BG_SAMEMAP,
- BG_SAMEMAP_WOS,
- BG_AREA,
- BG_AREA_WOS,
-
- BG_QUEUE,
-} send_target;
-
-typedef enum broadcast_flags {
- BC_ALL = 0,
- BC_MAP = 1,
- BC_AREA = 2,
- BC_SELF = 3,
- BC_TARGET_MASK = 0x07,
-
- BC_PC = 0x00,
- BC_NPC = 0x08,
- BC_SOURCE_MASK = 0x08,
-
- BC_YELLOW = 0x00,
- BC_BLUE = 0x10,
- BC_WOE = 0x20,
- BC_COLOR_MASK = 0x30,
-
- BC_DEFAULT = BC_ALL|BC_PC|BC_YELLOW
-} broadcast_flags;
-
-typedef enum emotion_type {
- E_GASP = 0,
- E_WHAT,
- E_HO,
- E_LV,
- E_SWT,
- E_IC,
- E_AN,
- E_AG,
- E_CASH,
- E_DOTS,
- E_SCISSORS,
- E_ROCK,
- E_PAPER,
- E_KOREA,
- E_LV2,
- E_THX,
- E_WAH,
- E_SRY,
- E_HEH,
- E_SWT2,
- E_HMM,
- E_NO1,
- E_NO,
- E_OMG,
- E_OH,
- E_X,
- E_HLP,
- E_GO,
- E_SOB,
- E_GG,
- E_KIS,
- E_KIS2,
- E_PIF,
- E_OK,
- E_MUTE,
- E_INDONESIA,
- E_BZZ,
- E_RICE,
- E_AWSM,
- E_MEH,
- E_SHY,
- E_PAT,
- E_MP,
- E_SLUR,
- E_COM,
- E_YAWN,
- E_GRAT,
- E_HP,
- E_PHILIPPINES,
- E_MALAYSIA,
- E_SINGAPORE,
- E_BRAZIL,
- E_FLASH,
- E_SPIN,
- E_SIGH,
- E_DUM,
- E_LOUD,
- E_OTL,
- E_DICE1,
- E_DICE2,
- E_DICE3,
- E_DICE4,
- E_DICE5,
- E_DICE6,
- E_INDIA,
- E_LUV,
- E_RUSSIA,
- E_VIRGIN,
- E_MOBILE,
- E_MAIL,
- E_CHINESE,
- E_ANTENNA1,
- E_ANTENNA2,
- E_ANTENNA3,
- E_HUM,
- E_ABS,
- E_OOPS,
- E_SPIT,
- E_ENE,
- E_PANIC,
- E_WHISP,
- E_YUT1,
- E_YUT2,
- E_YUT3,
- E_YUT4,
- E_YUT5,
- E_YUT6,
- E_YUT7,
-
- E_MAX
-} emotion_type;
-
-typedef enum clr_type {
- CLR_OUTSIGHT = 0,
- CLR_DEAD,
- CLR_RESPAWN,
- CLR_TELEPORT,
- CLR_TRICKDEAD,
-} clr_type;
-
-enum map_property {
- MAPPROPERTY_NOTHING = 0,
- MAPPROPERTY_FREEPVPZONE = 1,
- MAPPROPERTY_EVENTPVPZONE = 2,
- MAPPROPERTY_AGITZONE = 3,
- MAPPROPERTY_PKSERVERZONE = 4,
- MAPPROPERTY_PVPSERVERZONE = 5,
- MAPPROPERTY_DENYSKILLZONE = 6,
-};
-
-enum map_type {
- MAPTYPE_VILLAGE = 0,
- MAPTYPE_VILLAGE_IN = 1,
- MAPTYPE_FIELD = 2,
- MAPTYPE_DUNGEON = 3,
- MAPTYPE_ARENA = 4,
- MAPTYPE_PENALTY_FREEPKZONE = 5,
- MAPTYPE_NOPENALTY_FREEPKZONE = 6,
- MAPTYPE_EVENT_GUILDWAR = 7,
- MAPTYPE_AGIT = 8,
- MAPTYPE_DUNGEON2 = 9,
- MAPTYPE_DUNGEON3 = 10,
- MAPTYPE_PKSERVER = 11,
- MAPTYPE_PVPSERVER = 12,
- MAPTYPE_DENYSKILL = 13,
- MAPTYPE_TURBOTRACK = 14,
- MAPTYPE_JAIL = 15,
- MAPTYPE_MONSTERTRACK = 16,
- MAPTYPE_PORINGBATTLE = 17,
- MAPTYPE_AGIT_SIEGEV15 = 18,
- MAPTYPE_BATTLEFIELD = 19,
- MAPTYPE_PVP_TOURNAMENT = 20,
-
- MAPTYPE_SIEGE_LOWLEVEL = 25,
-
- MAPTYPE_UNUSED = 29,
-};
-
-typedef enum useskill_fail_cause {
- USESKILL_FAIL_LEVEL = 0,
- USESKILL_FAIL_SP_INSUFFICIENT = 1,
- USESKILL_FAIL_HP_INSUFFICIENT = 2,
- USESKILL_FAIL_STUFF_INSUFFICIENT = 3,
- USESKILL_FAIL_SKILLINTERVAL = 4,
- USESKILL_FAIL_MONEY = 5,
- USESKILL_FAIL_THIS_WEAPON = 6,
- USESKILL_FAIL_REDJAMSTONE = 7,
- USESKILL_FAIL_BLUEJAMSTONE = 8,
- USESKILL_FAIL_WEIGHTOVER = 9,
- USESKILL_FAIL = 10,
- USESKILL_FAIL_TOTARGET = 11,
- USESKILL_FAIL_ANCILLA_NUMOVER = 12,
- USESKILL_FAIL_HOLYWATER = 13,
- USESKILL_FAIL_ANCILLA = 14,
- USESKILL_FAIL_DUPLICATE_RANGEIN = 15,
- USESKILL_FAIL_NEED_OTHER_SKILL = 16,
- USESKILL_FAIL_NEED_HELPER = 17,
- USESKILL_FAIL_INVALID_DIR = 18,
- USESKILL_FAIL_SUMMON = 19,
- USESKILL_FAIL_SUMMON_NONE = 20,
- USESKILL_FAIL_IMITATION_SKILL_NONE = 21,
- USESKILL_FAIL_DUPLICATE = 22,
- USESKILL_FAIL_CONDITION = 23,
- USESKILL_FAIL_PAINTBRUSH = 24,
- USESKILL_FAIL_DRAGON = 25,
- USESKILL_FAIL_POS = 26,
- USESKILL_FAIL_HELPER_SP_INSUFFICIENT = 27,
- USESKILL_FAIL_NEER_WALL = 28,
- USESKILL_FAIL_NEED_EXP_1PERCENT = 29,
- USESKILL_FAIL_CHORUS_SP_INSUFFICIENT = 30,
- USESKILL_FAIL_GC_WEAPONBLOCKING = 31,
- USESKILL_FAIL_GC_POISONINGWEAPON = 32,
- USESKILL_FAIL_MADOGEAR = 33,
- USESKILL_FAIL_NEED_EQUIPMENT_KUNAI = 34,
- USESKILL_FAIL_TOTARGET_PLAYER = 35,
- USESKILL_FAIL_SIZE = 36,
- USESKILL_FAIL_CANONBALL = 37,
-
-
-
-
-
- USESKILL_FAIL_GUILLONTINE_POISON = 43,
-
-
-
-
-
-
- USESKILL_FAIL_MADOGEAR_RIDE = 50,
- USESKILL_FAIL_SPELLBOOK = 51,
- USESKILL_FAIL_SPELLBOOK_DIFFICULT_SLEEP = 52,
- USESKILL_FAIL_SPELLBOOK_PRESERVATION_POINT = 53,
- USESKILL_FAIL_SPELLBOOK_READING = 54,
-
-
- USESKILL_FAIL_CART = 57,
-
-
- USESKILL_FAIL_NO_MORE_SPELL = 60,
-# 342 "../../../server-code/src/map/clif.h"
- USESKILL_FAIL_MANUAL_NOTIFY = 70,
- USESKILL_FAIL_NEED_ITEM = 71,
- USESKILL_FAIL_NEED_EQUIPMENT = 72,
- USESKILL_FAIL_COMBOSKILL = 73,
- USESKILL_FAIL_SPIRITS = 74,
- USESKILL_FAIL_EXPLOSIONSPIRITS = 75,
- USESKILL_FAIL_HP_TOOMANY = 76,
- USESKILL_FAIL_NEED_ROYAL_GUARD_BANDING = 77,
- USESKILL_FAIL_NEED_EQUIPPED_WEAPON_CLASS = 78,
- USESKILL_FAIL_EL_SUMMON = 79,
- USESKILL_FAIL_RELATIONGRADE = 80,
- USESKILL_FAIL_STYLE_CHANGE_FIGHTER = 81,
- USESKILL_FAIL_STYLE_CHANGE_GRAPPLER = 82,
- USESKILL_FAIL_THERE_ARE_NPC_AROUND = 83,
- USESKILL_FAIL_NEED_MORE_BULLET = 84,
-}useskill_fail_cause;
-
-enum clif_messages {
- MSG_ITEM_CANT_OBTAIN_WEIGHT = 0x034,
- MSG_ITEM_NEED_STANDING = 0x297,
- MSG_MERCENARY_EXPIRED = 0x4f2,
- MSG_MERCENARY_DIED = 0x4f3,
- MSG_MERCENARY_RELEASED = 0x4f4,
- MSG_MERCENARY_ESCAPED = 0x4f5,
- MSG_SKILL_CANT_USE_AREA = 0x536,
- MSG_ITEM_CANT_USE_AREA = 0x537,
- MSG_EQUIP_NOT_PUBLIC = 0x54d,
- MSG_ITEM_NEED_MADO = 0x59b,
- MSG_ITEM_NEED_CART = 0x5ef,
- MSG_RUNE_STONE_MAX_AMOUNT = 0x61b,
- MSG_SKILL_POINTS_LEFT_JOB1 = 0x61e,
- MSG_SKILL_POINTS_LEFT_JOB2 = 0x61f,
- MSG_SKILL_ITEM_NOT_FOUND = 0x623,
- MSG_SKILL_SUCCESS = 0x627,
- MSG_SKILL_FAILURE = 0x628,
- MSG_SKILL_ITEM_NEED_IDENTIFY = 0x62d,
- MSG_ITEM_CANT_EQUIP_LVL = 0x6ed,
- MSG_ITEM_CANT_USE_LVL = 0x6ee,
- MSG_COOKING_LIST_FAIL = 0x625,
- MSG_SECONDS_UNTIL_USE = 0x746,
- MSG_NPC_WORK_IN_PROGRESS = 0x783,
- MSG_REINS_CANT_USE_MOUNTED = 0x78b,
-};
-
-
-
-
-enum cashshop_error {
- ERROR_TYPE_NONE = 0,
- ERROR_TYPE_NPC = 1,
- ERROR_TYPE_SYSTEM = 2,
- ERROR_TYPE_INVENTORY_WEIGHT = 3,
- ERROR_TYPE_EXCHANGE = 4,
- ERROR_TYPE_ITEM_ID = 5,
- ERROR_TYPE_MONEY = 6,
-
- ERROR_TYPE_QUANTITY = 7,
- ERROR_TYPE_NOT_ALL = 8,
-};
-
-enum CASH_SHOP_TABS {
- CASHSHOP_TAB_NEW = 0,
- CASHSHOP_TAB_POPULAR = 1,
- CASHSHOP_TAB_LIMITED = 2,
- CASHSHOP_TAB_RENTAL = 3,
- CASHSHOP_TAB_PERPETUITY = 4,
- CASHSHOP_TAB_BUFF = 5,
- CASHSHOP_TAB_RECOVERY = 6,
- CASHSHOP_TAB_ETC = 7,
- CASHSHOP_TAB_MAX,
-};
-
-enum CASH_SHOP_BUY_RESULT {
- CSBR_SUCCESS = 0x0,
- CSBR_SHORTTAGE_CASH = 0x2,
- CSBR_UNKONWN_ITEM = 0x3,
- CSBR_INVENTORY_WEIGHT = 0x4,
- CSBR_INVENTORY_ITEMCNT = 0x5,
- CSBR_RUNE_OVERCOUNT = 0x9,
- CSBR_EACHITEM_OVERCOUNT = 0xa,
- CSBR_UNKNOWN = 0xb,
-};
-
-enum BATTLEGROUNDS_QUEUE_ACK {
- BGQA_SUCCESS = 1,
- BGQA_FAIL_QUEUING_FINISHED,
- BGQA_FAIL_BGNAME_INVALID,
- BGQA_FAIL_TYPE_INVALID,
- BGQA_FAIL_PPL_OVERAMOUNT,
- BGQA_FAIL_LEVEL_INCORRECT,
- BGQA_DUPLICATE_REQUEST,
- BGQA_PLEASE_RELOGIN,
- BGQA_NOT_PARTY_GUILD_LEADER,
- BGQA_FAIL_CLASS_INVALID,
-
- BGQA_FAIL_DESERTER,
- BGQA_FAIL_COOLDOWN,
- BGQA_FAIL_TEAM_COUNT,
-};
-
-enum BATTLEGROUNDS_QUEUE_NOTICE_DELETED {
- BGQND_CLOSEWINDOW = 1,
- BGQND_FAIL_BGNAME_WRONG = 3,
- BGQND_FAIL_NOT_QUEUING = 11,
-};
-
-enum e_BANKING_DEPOSIT_ACK {
- BDA_SUCCESS = 0x0,
- BDA_ERROR = 0x1,
- BDA_NO_MONEY = 0x2,
- BDA_OVERFLOW = 0x3,
-};
-enum e_BANKING_WITHDRAW_ACK {
- BWA_SUCCESS = 0x0,
- BWA_NO_MONEY = 0x1,
- BWA_UNKNOWN_ERROR = 0x2,
-};
-
-
-enum e_EQUIP_ITEM_ACK {
-
- EIA_SUCCESS = 0x0,
- EIA_FAIL_LV = 0x1,
- EIA_FAIL = 0x2,
-
-
-
-
-
-};
-
-
-enum e_UNEQUIP_ITEM_ACK {
-
- UIA_SUCCESS = 0x0,
- UIA_FAIL = 0x1,
-
-
-
-
-};
-
-enum e_trade_item_ok {
- TIO_SUCCESS = 0x0,
- TIO_OVERWEIGHT = 0x1,
- TIO_CANCEL = 0x2,
-
- TIO_INDROCKS = 0x9,
-};
-
-enum RECV_ROULETTE_ITEM_REQ {
- RECV_ITEM_SUCCESS = 0x0,
- RECV_ITEM_FAILED = 0x1,
- RECV_ITEM_OVERCOUNT = 0x2,
- RECV_ITEM_OVERWEIGHT = 0x3,
-};
-
-enum RECV_ROULETTE_ITEM_ACK {
- RECV_ITEM_NORMAL = 0x0,
- RECV_ITEM_LOSING = 0x1,
-};
-
-enum GENERATE_ROULETTE_ACK {
- GENERATE_ROULETTE_SUCCESS = 0x0,
- GENERATE_ROULETTE_FAILED = 0x1,
- GENERATE_ROULETTE_NO_ENOUGH_POINT = 0x2,
- GENERATE_ROULETTE_LOSING = 0x3,
-};
-
-enum OPEN_ROULETTE_ACK{
- OPEN_ROULETTE_SUCCESS = 0x0,
- OPEN_ROULETTE_FAILED = 0x1,
-};
-
-enum CLOSE_ROULETTE_ACK {
- CLOSE_ROULETTE_SUCCESS = 0x0,
- CLOSE_ROULETTE_FAILED = 0x1,
-};
-
-
-
-
-enum delitem_reason {
- DELITEM_NORMAL = 0,
- DELITEM_SKILLUSE = 1,
- DELITEM_FAILREFINE = 2,
- DELITEM_MATERIALCHANGE = 3,
- DELITEM_TOSTORAGE = 4,
- DELITEM_TOCART = 5,
- DELITEM_SOLD = 6,
- DELITEM_ANALYSIS = 7,
-};
-
-
-
-
-
-enum mergeitem_reason {
- MERGEITEM_SUCCESS = 0x0,
- MERGEITEM_FAILD = 0x1,
- MERGEITEM_MAXCOUNTFAILD = 0x2,
-};
-
-
-
-
-typedef void (*pFunc)(int, struct map_session_data *);
-struct s_packet_db {
- short len;
- pFunc func;
- short pos[20];
-};
-
-struct hCSData {
- unsigned short id;
- unsigned int price;
-};
-
-struct cdelayed_damage {
- struct packet_damage p;
- struct block_list bl;
-};
-
-struct merge_item {
- int16 position;
- int16 nameid;
-};
-
-
-
-
-struct clif_interface {
-
- uint32 map_ip;
- uint32 bind_ip;
- uint16 map_port;
- char map_ip_str[128];
- int map_fd;
-
- struct eri *delay_clearunit_ers;
-
- struct {
- struct hCSData **data[CASHSHOP_TAB_MAX];
- unsigned int item_count[CASHSHOP_TAB_MAX];
- } cs;
-
- struct {
- int *nameid[7];
- int *qty[7];
- int items[7];
- } rd;
-
- unsigned int cryptKey[3];
-
-
-# 596 "../../../server-code/src/map/clif.h" 3 4
-_Bool
-# 596 "../../../server-code/src/map/clif.h"
- ally_only;
-
- struct eri *delayed_damage_ers;
-
- int (*init) (
-# 600 "../../../server-code/src/map/clif.h" 3 4
- _Bool
-# 600 "../../../server-code/src/map/clif.h"
- minimal);
- void (*final) (void);
-
-# 602 "../../../server-code/src/map/clif.h" 3 4
-_Bool
-# 602 "../../../server-code/src/map/clif.h"
- (*setip) (const char* ip);
-
-# 603 "../../../server-code/src/map/clif.h" 3 4
-_Bool
-# 603 "../../../server-code/src/map/clif.h"
- (*setbindip) (const char* ip);
- void (*setport) (uint16 port);
- uint32 (*refresh_ip) (void);
-
-# 606 "../../../server-code/src/map/clif.h" 3 4
-_Bool
-# 606 "../../../server-code/src/map/clif.h"
- (*send) (const void* buf, int len, struct block_list* bl, enum send_target type);
- int (*send_sub) (struct block_list *bl, va_list ap);
- int (*send_actual) (int fd, void *buf, int len);
- int (*parse) (int fd);
- const struct s_packet_db *(*packet) (int packet_id);
- unsigned short (*parse_cmd) ( int fd, struct map_session_data *sd );
- unsigned short (*decrypt_cmd) ( int cmd, struct map_session_data *sd );
-
- void (*authok) (struct map_session_data *sd);
- void (*authrefuse) (int fd, uint8 error_code);
- void (*authfail_fd) (int fd, int type);
- void (*charselectok) (int id, uint8 ok);
-
- void (*dropflooritem) (struct flooritem_data* fitem);
- void (*clearflooritem) (struct flooritem_data *fitem, int fd);
- void (*additem) (struct map_session_data *sd, int n, int amount, int fail);
- void (*dropitem) (struct map_session_data *sd,int n,int amount);
- void (*delitem) (struct map_session_data *sd,int n,int amount, short reason);
- void (*takeitem) (struct block_list* src, struct block_list* dst);
- void (*item_equip) (short idx, struct EQUIPITEM_INFO *p, struct item *i, struct item_data *id, int eqp_pos);
- void (*item_normal) (short idx, struct NORMALITEM_INFO *p, struct item *i, struct item_data *id);
- void (*arrowequip) (struct map_session_data *sd,int val);
- void (*arrow_fail) (struct map_session_data *sd,int type);
- void (*use_card) (struct map_session_data *sd,int idx);
- void (*cart_additem) (struct map_session_data *sd,int n,int amount,int fail);
- void (*cart_delitem) (struct map_session_data *sd,int n,int amount);
- void (*equipitemack) (struct map_session_data *sd,int n,int pos,enum e_EQUIP_ITEM_ACK result);
- void (*unequipitemack) (struct map_session_data *sd,int n,int pos,enum e_UNEQUIP_ITEM_ACK result);
- void (*useitemack) (struct map_session_data *sd,int index,int amount,
-# 634 "../../../server-code/src/map/clif.h" 3 4
- _Bool
-# 634 "../../../server-code/src/map/clif.h"
- ok);
- void (*addcards) (unsigned char* buf, struct item* item);
- void (*addcards2) (unsigned short *cards, struct item* item);
- void (*item_sub) (unsigned char *buf, int n, struct item *i, struct item_data *id, int equip);
- void (*getareachar_item) (struct map_session_data* sd,struct flooritem_data* fitem);
- void (*cart_additem_ack) (struct map_session_data *sd, int flag);
- void (*cashshop_load) (void);
- void (*package_announce) (struct map_session_data *sd, unsigned short nameid, unsigned short containerid);
- void (*item_drop_announce) (struct map_session_data *sd, unsigned short nameid, char *monsterName);
-
- void (*clearunit_single) (int id, clr_type type, int fd);
- void (*clearunit_area) (struct block_list* bl, clr_type type);
- void (*clearunit_delayed) (struct block_list* bl, clr_type type, int64 tick);
- void (*walkok) (struct map_session_data *sd);
- void (*move) (struct unit_data *ud);
- void (*move2) (struct block_list *bl, struct view_data *vd, struct unit_data *ud);
- void (*blown) (struct block_list *bl);
- void (*slide) (struct block_list *bl, int x, int y);
- void (*fixpos) (struct block_list *bl);
- void (*changelook) (struct block_list *bl,int type,int val);
- void (*changetraplook) (struct block_list *bl,int val);
- void (*refreshlook) (struct block_list *bl,int id,int type,int val,enum send_target target);
- void (*sendlook) (struct block_list *bl, int id, int type, int val, int val2, enum send_target target);
- void (*class_change) (struct block_list *bl,int class_,int type);
- void (*skill_delunit) (struct skill_unit *su);
- void (*skillunit_update) (struct block_list* bl);
- int (*clearunit_delayed_sub) (int tid, int64 tick, int id, intptr_t data);
- void (*set_unit_idle) (struct block_list* bl, struct map_session_data *tsd,enum send_target target);
- void (*spawn_unit) (struct block_list* bl, enum send_target target);
- void (*spawn_unit2) (struct block_list* bl, enum send_target target);
- void (*set_unit_idle2) (struct block_list* bl, struct map_session_data *tsd, enum send_target target);
- void (*set_unit_walking) (struct block_list* bl, struct map_session_data *tsd,struct unit_data* ud, enum send_target target);
- int (*calc_walkdelay) (struct block_list *bl,int delay, int type, int damage, int div_);
- void (*getareachar_skillunit) (struct block_list *bl, struct skill_unit *su, enum send_target target);
- void (*getareachar_unit) (struct map_session_data* sd,struct block_list *bl);
- void (*clearchar_skillunit) (struct skill_unit *su, int fd);
- int (*getareachar) (struct block_list* bl,va_list ap);
- void (*graffiti_entry) (struct block_list *bl, struct skill_unit *su, enum send_target target);
-
-
-# 673 "../../../server-code/src/map/clif.h" 3 4
-_Bool
-# 673 "../../../server-code/src/map/clif.h"
- (*spawn) (struct block_list *bl);
-
- void (*changemap) (struct map_session_data *sd, short m, int x, int y);
- void (*changemapcell) (int fd, int16 m, int x, int y, int type, enum send_target target);
- void (*map_property) (struct map_session_data* sd, enum map_property property);
- void (*pvpset) (struct map_session_data *sd, int pvprank, int pvpnum,int type);
- void (*map_property_mapall) (int mapid, enum map_property property);
- void (*bossmapinfo) (int fd, struct mob_data *md, short flag);
- void (*map_type) (struct map_session_data* sd, enum map_type type);
- void (*maptypeproperty2) (struct block_list *bl,enum send_target t);
-
- void (*changemapserver) (struct map_session_data* sd, unsigned short map_index, int x, int y, uint32 ip, uint16 port);
-
- void (*npcbuysell) (struct map_session_data* sd, int id);
- void (*buylist) (struct map_session_data *sd, struct npc_data *nd);
- void (*selllist) (struct map_session_data *sd);
- void (*cashshop_show) (struct map_session_data *sd, struct npc_data *nd);
- void (*npc_buy_result) (struct map_session_data* sd, unsigned char result);
- void (*npc_sell_result) (struct map_session_data* sd, unsigned char result);
- void (*cashshop_ack) (struct map_session_data* sd, int error);
-
- void (*scriptmes) (struct map_session_data *sd, int npcid, const char *mes);
- void (*scriptnext) (struct map_session_data *sd,int npcid);
- void (*scriptclose) (struct map_session_data *sd, int npcid);
- void (*scriptmenu) (struct map_session_data* sd, int npcid, const char* mes);
- void (*scriptinput) (struct map_session_data *sd, int npcid);
- void (*scriptinputstr) (struct map_session_data *sd, int npcid);
- void (*cutin) (struct map_session_data* sd, const char* image, int type);
- void (*sendfakenpc) (struct map_session_data *sd, int npcid);
- void (*scriptclear) (struct map_session_data *sd, int npcid);
-
- void (*viewpoint) (struct map_session_data *sd, int npc_id, int type, int x, int y, int id, int color);
- int (*damage) (struct block_list* src, struct block_list* dst, int sdelay, int ddelay, int64 damage, short div, unsigned char type, int64 damage2);
- void (*sitting) (struct block_list* bl);
- void (*standing) (struct block_list* bl);
- void (*arrow_create_list) (struct map_session_data *sd);
- void (*refresh_storagewindow) (struct map_session_data *sd);
- void (*refresh) (struct map_session_data *sd);
- void (*fame_blacksmith) (struct map_session_data *sd, int points);
- void (*fame_alchemist) (struct map_session_data *sd, int points);
- void (*fame_taekwon) (struct map_session_data *sd, int points);
- void (*ranklist) (struct map_session_data *sd, enum fame_list_type type);
- void (*update_rankingpoint) (struct map_session_data *sd, enum fame_list_type type, int points);
- void (*pRanklist) (int fd, struct map_session_data *sd);
- void (*hotkeys) (struct map_session_data *sd);
- int (*insight) (struct block_list *bl,va_list ap);
- int (*outsight) (struct block_list *bl,va_list ap);
- void (*skillcastcancel) (struct block_list* bl);
- void (*skill_fail) (struct map_session_data *sd,uint16 skill_id,enum useskill_fail_cause cause,int btype);
- void (*skill_cooldown) (struct map_session_data *sd, uint16 skill_id, unsigned int duration);
- void (*skill_memomessage) (struct map_session_data* sd, int type);
- void (*skill_mapinfomessage) (struct map_session_data *sd, int type);
- void (*skill_produce_mix_list) (struct map_session_data *sd, int skill_id, int trigger);
- void (*cooking_list) (struct map_session_data *sd, int trigger, uint16 skill_id, int qty, int list_type);
- void (*autospell) (struct map_session_data *sd,uint16 skill_lv);
- void (*combo_delay) (struct block_list *bl,int wait);
- void (*status_change) (struct block_list *bl,int type,int flag,int tick,int val1, int val2, int val3);
- void (*insert_card) (struct map_session_data *sd,int idx_equip,int idx_card,int flag);
- void (*inventorylist) (struct map_session_data *sd);
- void (*equiplist) (struct map_session_data *sd);
- void (*cartlist) (struct map_session_data *sd);
- void (*favorite_item) (struct map_session_data* sd, unsigned short index);
- void (*clearcart) (int fd);
- void (*item_identify_list) (struct map_session_data *sd);
- void (*item_identified) (struct map_session_data *sd,int idx,int flag);
- void (*item_repair_list) (struct map_session_data *sd, struct map_session_data *dstsd, int lv);
- void (*item_repaireffect) (struct map_session_data *sd, int idx, int flag);
- void (*item_damaged) (struct map_session_data* sd, unsigned short position);
- void (*item_refine_list) (struct map_session_data *sd);
- void (*item_skill) (struct map_session_data *sd,uint16 skill_id,uint16 skill_lv);
- void (*mvp_item) (struct map_session_data *sd,int nameid);
- void (*mvp_exp) (struct map_session_data *sd, unsigned int exp);
- void (*mvp_noitem) (struct map_session_data* sd);
- void (*changed_dir) (struct block_list *bl, enum send_target target);
- void (*charnameack) (int fd, struct block_list *bl);
- void (*monster_hp_bar) ( struct mob_data* md, struct map_session_data *sd );
- int (*hpmeter) (struct map_session_data *sd);
- void (*hpmeter_single) (int fd, int id, unsigned int hp, unsigned int maxhp);
- int (*hpmeter_sub) (struct block_list *bl, va_list ap);
- void (*upgrademessage) (int fd, int result, int item_id);
- void (*get_weapon_view) (struct map_session_data* sd, unsigned short *rhand, unsigned short *lhand);
- void (*gospel_info) (struct map_session_data *sd, int type);
- void (*feel_req) (int fd, struct map_session_data *sd, uint16 skill_lv);
- void (*starskill) (struct map_session_data* sd, const char* mapname, int monster_id, unsigned char star, unsigned char result);
- void (*feel_info) (struct map_session_data* sd, unsigned char feel_level, unsigned char type);
- void (*hate_info) (struct map_session_data *sd, unsigned char hate_level,int class_, unsigned char type);
- void (*mission_info) (struct map_session_data *sd, int mob_id, unsigned char progress);
- void (*feel_hate_reset) (struct map_session_data *sd);
- void (*partytickack) (struct map_session_data* sd,
-# 761 "../../../server-code/src/map/clif.h" 3 4
- _Bool
-# 761 "../../../server-code/src/map/clif.h"
- flag);
- void (*equiptickack) (struct map_session_data* sd, int flag);
- void (*viewequip_ack) (struct map_session_data* sd, struct map_session_data* tsd);
- void (*equpcheckbox) (struct map_session_data* sd);
- void (*displayexp) (struct map_session_data *sd, unsigned int exp, char type,
-# 765 "../../../server-code/src/map/clif.h" 3 4
- _Bool
-# 765 "../../../server-code/src/map/clif.h"
- is_quest);
- void (*font) (struct map_session_data *sd);
- void (*progressbar) (struct map_session_data * sd, unsigned int color, unsigned int second);
- void (*progressbar_abort) (struct map_session_data * sd);
- void (*showdigit) (struct map_session_data* sd, unsigned char type, int value);
- int (*elementalconverter_list) (struct map_session_data *sd);
- int (*spellbook_list) (struct map_session_data *sd);
- int (*magicdecoy_list) (struct map_session_data *sd, uint16 skill_lv, short x, short y);
- int (*poison_list) (struct map_session_data *sd, uint16 skill_lv);
- int (*autoshadowspell_list) (struct map_session_data *sd);
- int (*skill_itemlistwindow) ( struct map_session_data *sd, uint16 skill_id, uint16 skill_lv );
- void (*sc_load) (struct block_list *bl, int tid, enum send_target target, int type, int val1, int val2, int val3);
- void (*sc_end) (struct block_list *bl, int tid, enum send_target target, int type);
- void (*initialstatus) (struct map_session_data *sd);
- void (*cooldown_list) (int fd, struct skill_cd* cd);
-
- void (*updatestatus) (struct map_session_data *sd,int type);
- void (*changestatus) (struct map_session_data* sd,int type,int val);
- void (*statusupack) (struct map_session_data *sd,int type,int ok,int val);
- void (*movetoattack) (struct map_session_data *sd,struct block_list *bl);
- void (*solved_charname) (int fd, int charid, const char* name);
- void (*charnameupdate) (struct map_session_data *ssd);
- int (*delayquit) (int tid, int64 tick, int id, intptr_t data);
- void (*getareachar_pc) (struct map_session_data* sd,struct map_session_data* dstsd);
- void (*disconnect_ack) (struct map_session_data* sd, short result);
- void (*PVPInfo) (struct map_session_data* sd);
- void (*blacksmith) (struct map_session_data* sd);
- void (*alchemist) (struct map_session_data* sd);
- void (*taekwon) (struct map_session_data* sd);
- void (*ranking_pk) (struct map_session_data* sd);
- void (*quitsave) (int fd,struct map_session_data *sd);
-
- void (*misceffect) (struct block_list* bl,int type);
- void (*changeoption) (struct block_list* bl);
- void (*changeoption2) (struct block_list* bl);
- void (*emotion) (struct block_list *bl,int type);
- void (*talkiebox) (struct block_list* bl, const char* talkie);
- void (*wedding_effect) (struct block_list *bl);
- void (*divorced) (struct map_session_data* sd, const char* name);
- void (*callpartner) (struct map_session_data *sd);
- int (*skill_damage) (struct block_list *src, struct block_list *dst, int64 tick, int sdelay, int ddelay, int64 damage, int div, uint16 skill_id, uint16 skill_lv, int type);
- int (*skill_nodamage) (struct block_list *src,struct block_list *dst,uint16 skill_id,int heal,int fail);
- void (*skill_poseffect) (struct block_list *src, uint16 skill_id, int val, int x, int y, int64 tick);
- void (*skill_estimation) (struct map_session_data *sd,struct block_list *dst);
- void (*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 (*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 (*produce_effect) (struct map_session_data* sd,int flag,int nameid);
- void (*devotion) (struct block_list *src, struct map_session_data *tsd);
- void (*spiritball) (struct block_list *bl);
- void (*spiritball_single) (int fd, struct map_session_data *sd);
- void (*bladestop) (struct block_list *src, int dst_id, int active);
- void (*mvp_effect) (struct map_session_data *sd);
- void (*heal) (int fd,int type,int val);
- void (*resurrection) (struct block_list *bl,int type);
- void (*refine) (int fd, int fail, int index, int val);
- void (*weather) (int16 m);
- void (*specialeffect) (struct block_list* bl, int type, enum send_target target);
- void (*specialeffect_single) (struct block_list* bl, int type, int fd);
- void (*specialeffect_value) (struct block_list* bl, int effect_id, int num, send_target target);
- void (*millenniumshield) (struct block_list *bl, short shields );
- void (*spiritcharm) (struct map_session_data *sd);
- void (*charm_single) (int fd, struct map_session_data *sd);
- void (*snap) ( struct block_list *bl, short x, short y );
- void (*weather_check) (struct map_session_data *sd);
-
- void (*playBGM) (struct map_session_data* sd, const char* name);
- void (*soundeffect) (struct map_session_data* sd, struct block_list* bl, const char* name, int type);
- void (*soundeffectall) (struct block_list* bl, const char* name, int type, enum send_target coverage);
-
- void (*GlobalMessage) (struct block_list* bl, const char* message);
- void (*createchat) (struct map_session_data* sd, int flag);
- void (*dispchat) (struct chat_data* cd, int fd);
- void (*joinchatfail) (struct map_session_data *sd,int flag);
- void (*joinchatok) (struct map_session_data *sd,struct chat_data* cd);
- void (*addchat) (struct chat_data* cd,struct map_session_data *sd);
- void (*changechatowner) (struct chat_data* cd, struct map_session_data* sd);
- void (*clearchat) (struct chat_data *cd,int fd);
- void (*leavechat) (struct chat_data* cd, struct map_session_data* sd,
-# 842 "../../../server-code/src/map/clif.h" 3 4
- _Bool
-# 842 "../../../server-code/src/map/clif.h"
- flag);
- void (*changechatstatus) (struct chat_data* cd);
- void (*wis_message) (int fd, const char* nick, const char* mes, size_t mes_len);
- void (*wis_end) (int fd, int flag);
- void (*disp_message) (struct block_list* src, const char* mes, size_t len, enum send_target target);
- void (*broadcast) (struct block_list* bl, const char* mes, size_t len, int type, enum send_target target);
- void (*broadcast2) (struct block_list* bl, const char* mes, size_t len, unsigned int fontColor, short fontType, short fontSize, short fontAlign, short fontY, enum send_target target);
- void (*messagecolor_self) (int fd, uint32 color, const char *msg);
- void (*messagecolor) (struct block_list* bl, uint32 color, const char* msg);
- void (*disp_overhead) (struct block_list *bl, const char* mes);
- void (*msgtable) (struct map_session_data* sd, unsigned short msg_id);
- void (*msgtable_num) (struct map_session_data *sd, unsigned short msg_id, int value);
- void (*msgtable_skill) (struct map_session_data *sd, uint16 skill_id, int msg_id);
- void (*message) (const int fd, const char* mes);
- void (*messageln) (const int fd, const char* mes);
-
- void (*messages) (const int fd, const char *mes, ...) __attribute__((format(printf, 2, 3)));
-
-# 859 "../../../server-code/src/map/clif.h" 3 4
-_Bool
-# 859 "../../../server-code/src/map/clif.h"
- (*process_message) (struct map_session_data *sd, int format, const char **name_, size_t *namelen_, const char **message_, size_t *messagelen_);
- void (*wisexin) (struct map_session_data *sd,int type,int flag);
- void (*wisall) (struct map_session_data *sd,int type,int flag);
- void (*PMIgnoreList) (struct map_session_data* sd);
- void (*ShowScript) (struct block_list* bl, const char* message);
-
- void (*traderequest) (struct map_session_data* sd, const char* name);
- void (*tradestart) (struct map_session_data* sd, uint8 type);
- void (*tradeadditem) (struct map_session_data* sd, struct map_session_data* tsd, int index, int amount);
- void (*tradeitemok) (struct map_session_data* sd, int index, int fail);
- void (*tradedeal_lock) (struct map_session_data* sd, int fail);
- void (*tradecancelled) (struct map_session_data* sd);
- void (*tradecompleted) (struct map_session_data* sd, int fail);
- void (*tradeundo) (struct map_session_data* sd);
-
- void (*openvendingreq) (struct map_session_data* sd, int num);
- void (*showvendingboard) (struct block_list* bl, const char* message, int fd);
- void (*closevendingboard) (struct block_list* bl, int fd);
- void (*vendinglist) (struct map_session_data* sd, unsigned int id, struct s_vending* vending_list);
- void (*buyvending) (struct map_session_data* sd, int index, int amount, int fail);
- void (*openvending) (struct map_session_data* sd, int id, struct s_vending* vending_list);
- void (*vendingreport) (struct map_session_data* sd, int index, int amount);
-
- void (*storagelist) (struct map_session_data* sd, struct item* items, int items_length);
- void (*updatestorageamount) (struct map_session_data* sd, int amount, int max_amount);
- void (*storageitemadded) (struct map_session_data* sd, struct item* i, int index, int amount);
- void (*storageitemremoved) (struct map_session_data* sd, int index, int amount);
- void (*storageclose) (struct map_session_data* sd);
-
- void (*skillinfoblock) (struct map_session_data *sd);
- void (*skillup) (struct map_session_data *sd, uint16 skill_id, int skill_lv, int flag);
- void (*skillinfo) (struct map_session_data *sd,int skill_id, int inf);
- void (*addskill) (struct map_session_data *sd, int id);
- void (*deleteskill) (struct map_session_data *sd, int id);
-
- void (*party_created) (struct map_session_data *sd,int result);
- void (*party_member_info) (struct party_data *p, struct map_session_data *sd);
- void (*party_info) (struct party_data* p, struct map_session_data *sd);
- void (*party_invite) (struct map_session_data *sd,struct map_session_data *tsd);
- void (*party_inviteack) (struct map_session_data* sd, const char* nick, int result);
- void (*party_option) (struct party_data *p,struct map_session_data *sd,int flag);
- void (*party_withdraw) (struct party_data* p, struct map_session_data* sd, int account_id, const char* name, int flag);
- void (*party_message) (struct party_data* p, int account_id, const char* mes, int len);
- void (*party_xy) (struct map_session_data *sd);
- void (*party_xy_single) (int fd, struct map_session_data *sd);
- void (*party_hp) (struct map_session_data *sd);
- void (*party_xy_remove) (struct map_session_data *sd);
- void (*party_show_picker) (struct map_session_data * sd, struct item * item_data);
- void (*partyinvitationstate) (struct map_session_data* sd);
- void (*PartyLeaderChanged) (struct map_session_data *sd, int prev_leader_aid, int new_leader_aid);
-
- void (*guild_created) (struct map_session_data *sd,int flag);
- void (*guild_belonginfo) (struct map_session_data *sd, struct guild *g);
- void (*guild_masterormember) (struct map_session_data *sd);
- void (*guild_basicinfo) (struct map_session_data *sd);
- void (*guild_allianceinfo) (struct map_session_data *sd);
- void (*guild_memberlist) (struct map_session_data *sd);
- void (*guild_skillinfo) (struct map_session_data* sd);
- void (*guild_send_onlineinfo) (struct map_session_data *sd);
- void (*guild_memberlogin_notice) (struct guild *g,int idx,int flag);
- void (*guild_invite) (struct map_session_data *sd,struct guild *g);
- void (*guild_inviteack) (struct map_session_data *sd,int flag);
- void (*guild_leave) (struct map_session_data *sd,const char *name,const char *mes);
- void (*guild_expulsion) (struct map_session_data* sd, const char* name, const char* mes, int account_id);
- void (*guild_positionchanged) (struct guild *g,int idx);
- void (*guild_memberpositionchanged) (struct guild *g,int idx);
- void (*guild_emblem) (struct map_session_data *sd,struct guild *g);
- void (*guild_emblem_area) (struct block_list* bl);
- void (*guild_notice) (struct map_session_data* sd, struct guild* g);
- void (*guild_message) (struct guild *g,int account_id,const char *mes,int len);
- void (*guild_reqalliance) (struct map_session_data *sd,int account_id,const char *name);
- void (*guild_allianceack) (struct map_session_data *sd,int flag);
- void (*guild_delalliance) (struct map_session_data *sd,int guild_id,int flag);
- void (*guild_oppositionack) (struct map_session_data *sd,int flag);
- void (*guild_broken) (struct map_session_data *sd,int flag);
- void (*guild_xy) (struct map_session_data *sd);
- void (*guild_xy_single) (int fd, struct map_session_data *sd);
- void (*guild_xy_remove) (struct map_session_data *sd);
- void (*guild_positionnamelist) (struct map_session_data *sd);
- void (*guild_positioninfolist) (struct map_session_data *sd);
- void (*guild_expulsionlist) (struct map_session_data* sd);
-
-# 940 "../../../server-code/src/map/clif.h" 3 4
-_Bool
-# 940 "../../../server-code/src/map/clif.h"
- (*validate_emblem) (const uint8* emblem, unsigned long emblem_len);
-
- void (*bg_hp) (struct map_session_data *sd);
- void (*bg_xy) (struct map_session_data *sd);
- void (*bg_xy_remove) (struct map_session_data *sd);
- void (*bg_message) (struct battleground_data *bgd, int src_id, const char *name, const char *mes, size_t len);
- void (*bg_updatescore) (int16 m);
- void (*bg_updatescore_single) (struct map_session_data *sd);
- void (*sendbgemblem_area) (struct map_session_data *sd);
- void (*sendbgemblem_single) (int fd, struct map_session_data *sd);
-
- int (*instance) (int instance_id, int type, int flag);
- void (*instance_join) (int fd, int instance_id);
- void (*instance_leave) (int fd);
-
- void (*catch_process) (struct map_session_data *sd);
- void (*pet_roulette) (struct map_session_data *sd,int data);
- void (*sendegg) (struct map_session_data *sd);
- void (*send_petstatus) (struct map_session_data *sd);
- void (*send_petdata) (struct map_session_data* sd, struct pet_data* pd, int type, int param);
- void (*pet_emotion) (struct pet_data *pd,int param);
- void (*pet_food) (struct map_session_data *sd,int foodid,int fail);
-
- int (*friendslist_toggle_sub) (struct map_session_data *sd,va_list ap);
- void (*friendslist_send) (struct map_session_data *sd);
- void (*friendslist_reqack) (struct map_session_data *sd, struct map_session_data *f_sd, int type);
- void (*friendslist_toggle) (struct map_session_data *sd,int account_id, int char_id, int online);
- void (*friendlist_req) (struct map_session_data* sd, int account_id, int char_id, const char* name);
-
- void (*GM_kickack) (struct map_session_data *sd, int result);
- void (*GM_kick) (struct map_session_data *sd,struct map_session_data *tsd);
- void (*manner_message) (struct map_session_data* sd, uint32 type);
- void (*GM_silence) (struct map_session_data* sd, struct map_session_data* tsd, uint8 type);
- void (*account_name) (struct map_session_data* sd, int account_id, const char* accname);
- void (*check) (int fd, struct map_session_data* pl_sd);
-
- void (*hominfo) (struct map_session_data *sd, struct homun_data *hd, int flag);
- void (*homskillinfoblock) (struct map_session_data *sd);
- void (*homskillup) (struct map_session_data *sd, uint16 skill_id);
- void (*hom_food) (struct map_session_data *sd,int foodid,int fail);
- void (*send_homdata) (struct map_session_data *sd, int state, int param);
-
- void (*quest_send_list) (struct map_session_data *sd);
- void (*quest_send_mission) (struct map_session_data *sd);
- void (*quest_add) (struct map_session_data *sd, struct quest *qd);
- void (*quest_delete) (struct map_session_data *sd, int quest_id);
- void (*quest_update_status) (struct map_session_data *sd, int quest_id,
-# 986 "../../../server-code/src/map/clif.h" 3 4
- _Bool
-# 986 "../../../server-code/src/map/clif.h"
- active);
- void (*quest_update_objective) (struct map_session_data *sd, struct quest *qd);
- void (*quest_show_event) (struct map_session_data *sd, struct block_list *bl, short state, short color);
-
- void (*mail_window) (int fd, int flag);
- void (*mail_read) (struct map_session_data *sd, int mail_id);
- void (*mail_delete) (int fd, int mail_id, short fail);
- void (*mail_return) (int fd, int mail_id, short fail);
- void (*mail_send) (int fd,
-# 994 "../../../server-code/src/map/clif.h" 3 4
- _Bool
-# 994 "../../../server-code/src/map/clif.h"
- fail);
- void (*mail_new) (int fd, int mail_id, const char *sender, const char *title);
- void (*mail_refreshinbox) (struct map_session_data *sd);
- void (*mail_getattachment) (int fd, uint8 flag);
- void (*mail_setattachment) (int fd, int index, uint8 flag);
-
- void (*auction_openwindow) (struct map_session_data *sd);
- void (*auction_results) (struct map_session_data *sd, short count, short pages, const uint8 *buf);
- void (*auction_message) (int fd, unsigned char flag);
- void (*auction_close) (int fd, unsigned char flag);
- void (*auction_setitem) (int fd, int index,
-# 1004 "../../../server-code/src/map/clif.h" 3 4
- _Bool
-# 1004 "../../../server-code/src/map/clif.h"
- fail);
-
- void (*mercenary_info) (struct map_session_data *sd);
- void (*mercenary_skillblock) (struct map_session_data *sd);
- void (*mercenary_message) (struct map_session_data* sd, int message);
- void (*mercenary_updatestatus) (struct map_session_data *sd, int type);
-
- void (*rental_time) (int fd, int nameid, int seconds);
- void (*rental_expired) (int fd, int index, int nameid);
-
- void (*PartyBookingRegisterAck) (struct map_session_data *sd, int flag);
- void (*PartyBookingDeleteAck) (struct map_session_data* sd, int flag);
- void (*PartyBookingSearchAck) (int fd, struct party_booking_ad_info** results, int count,
-# 1016 "../../../server-code/src/map/clif.h" 3 4
- _Bool
-# 1016 "../../../server-code/src/map/clif.h"
- more_result);
- void (*PartyBookingUpdateNotify) (struct map_session_data* sd, struct party_booking_ad_info* pb_ad);
- void (*PartyBookingDeleteNotify) (struct map_session_data* sd, int index);
- void (*PartyBookingInsertNotify) (struct map_session_data* sd, struct party_booking_ad_info* pb_ad);
- void (*PartyRecruitRegisterAck) (struct map_session_data *sd, int flag);
- void (*PartyRecruitDeleteAck) (struct map_session_data* sd, int flag);
- void (*PartyRecruitSearchAck) (int fd, struct party_booking_ad_info** results, int count,
-# 1022 "../../../server-code/src/map/clif.h" 3 4
- _Bool
-# 1022 "../../../server-code/src/map/clif.h"
- more_result);
- void (*PartyRecruitUpdateNotify) (struct map_session_data* sd, struct party_booking_ad_info* pb_ad);
- void (*PartyRecruitDeleteNotify) (struct map_session_data* sd, int index);
- void (*PartyRecruitInsertNotify) (struct map_session_data* sd, struct party_booking_ad_info* pb_ad);
-
- void (*PartyBookingVolunteerInfo) (int index, struct map_session_data *sd);
- void (*PartyBookingRefuseVolunteer) (unsigned int aid, struct map_session_data *sd);
- void (*PartyBookingCancelVolunteer) (int index, struct map_session_data *sd);
- void (*PartyBookingAddFilteringList) (int index, struct map_session_data *sd);
- void (*PartyBookingSubFilteringList) (int gid, struct map_session_data *sd);
-
- void (*buyingstore_open) (struct map_session_data* sd);
- void (*buyingstore_open_failed) (struct map_session_data* sd, unsigned short result, unsigned int weight);
- void (*buyingstore_myitemlist) (struct map_session_data* sd);
- void (*buyingstore_entry) (struct map_session_data* sd);
- void (*buyingstore_entry_single) (struct map_session_data* sd, struct map_session_data* pl_sd);
- void (*buyingstore_disappear_entry) (struct map_session_data* sd);
- void (*buyingstore_disappear_entry_single) (struct map_session_data* sd, struct map_session_data* pl_sd);
- void (*buyingstore_itemlist) (struct map_session_data* sd, struct map_session_data* pl_sd);
- void (*buyingstore_trade_failed_buyer) (struct map_session_data* sd, short result);
- void (*buyingstore_update_item) (struct map_session_data* sd, unsigned short nameid, unsigned short amount);
- void (*buyingstore_delete_item) (struct map_session_data* sd, short index, unsigned short amount, int price);
- void (*buyingstore_trade_failed_seller) (struct map_session_data* sd, short result, unsigned short nameid);
-
- void (*search_store_info_ack) (struct map_session_data* sd);
- void (*search_store_info_failed) (struct map_session_data* sd, unsigned char reason);
- void (*open_search_store_info) (struct map_session_data* sd);
- void (*search_store_info_click_ack) (struct map_session_data* sd, short x, short y);
-
- void (*elemental_info) (struct map_session_data *sd);
- void (*elemental_updatestatus) (struct map_session_data *sd, int type);
-
- void (*bgqueue_ack) (struct map_session_data *sd, enum BATTLEGROUNDS_QUEUE_ACK response, unsigned char arena_id);
- void (*bgqueue_notice_delete) (struct map_session_data *sd, enum BATTLEGROUNDS_QUEUE_NOTICE_DELETED response, const char *name);
- void (*bgqueue_update_info) (struct map_session_data *sd, unsigned char arena_id, int position);
- void (*bgqueue_joined) (struct map_session_data *sd, int pos);
- void (*bgqueue_pcleft) (struct map_session_data *sd);
- void (*bgqueue_battlebegins) (struct map_session_data *sd, unsigned char arena_id, enum send_target target);
-
- void (*adopt_reply) (struct map_session_data *sd, int type);
- void (*adopt_request) (struct map_session_data *sd, struct map_session_data *src, int p_id);
- void (*readbook) (int fd, int book_id, int page);
- void (*notify_time) (struct map_session_data* sd, int64 time);
- void (*user_count) (struct map_session_data* sd, int count);
- void (*noask_sub) (struct map_session_data *src, struct map_session_data *target, int type);
- void (*bc_ready) (void);
-
- void (*channel_msg) (struct channel_data *chan, struct map_session_data *sd, char *msg);
- void (*channel_msg2) (struct channel_data *chan, char *msg);
- int (*undisguise_timer) (int tid, int64 tick, int id, intptr_t data);
-
- void (*bank_deposit) (struct map_session_data *sd, enum e_BANKING_DEPOSIT_ACK reason);
- void (*bank_withdraw) (struct map_session_data *sd,enum e_BANKING_WITHDRAW_ACK reason);
-
- void (*show_modifiers) (struct map_session_data *sd);
-
- void (*notify_bounditem) (struct map_session_data *sd, unsigned short index);
-
- int (*delay_damage) (int64 tick, struct block_list *src, struct block_list *dst, int sdelay, int ddelay, int64 in_damage, short div, unsigned char type);
- int (*delay_damage_sub) (int tid, int64 tick, int id, intptr_t data);
-
- void (*npc_market_open) (struct map_session_data *sd, struct npc_data *nd);
- void (*npc_market_purchase_ack) (struct map_session_data *sd, const struct itemlist *item_list, unsigned char response);
-
-
-# 1086 "../../../server-code/src/map/clif.h" 3 4
-_Bool
-# 1086 "../../../server-code/src/map/clif.h"
- (*parse_roulette_db) (void);
- void (*roulette_generate_ack) (struct map_session_data *sd, unsigned char result, short stage, short prizeIdx, short bonusItemID);
-
- void (*openmergeitem) (int fd, struct map_session_data *sd);
- void (*cancelmergeitem) (int fd, struct map_session_data *sd);
- int (*comparemergeitem) (const void *a, const void *b);
- void (*ackmergeitems) (int fd, struct map_session_data *sd);
-
-
-
-
- void (*pWantToConnection) (int fd, struct map_session_data *sd);
- void (*pLoadEndAck) (int fd,struct map_session_data *sd);
- void (*pTickSend) (int fd, struct map_session_data *sd);
- void (*pHotkey) (int fd, struct map_session_data *sd);
- void (*pProgressbar) (int fd, struct map_session_data * sd);
- void (*pWalkToXY) (int fd, struct map_session_data *sd);
- void (*pQuitGame) (int fd, struct map_session_data *sd);
- void (*pGetCharNameRequest) (int fd, struct map_session_data *sd);
- void (*pGlobalMessage) (int fd, struct map_session_data* sd);
- void (*pMapMove) (int fd, struct map_session_data *sd);
- void (*pChangeDir) (int fd, struct map_session_data *sd);
- void (*pEmotion) (int fd, struct map_session_data *sd);
- void (*pHowManyConnections) (int fd, struct map_session_data *sd);
- void (*pActionRequest) (int fd, struct map_session_data *sd);
- void (*pActionRequest_sub) (struct map_session_data *sd, int action_type, int target_id, int64 tick);
- void (*pRestart) (int fd, struct map_session_data *sd);
- void (*pWisMessage) (int fd, struct map_session_data* sd);
- void (*pBroadcast) (int fd, struct map_session_data* sd);
- void (*pTakeItem) (int fd, struct map_session_data *sd);
- void (*pDropItem) (int fd, struct map_session_data *sd);
- void (*pUseItem) (int fd, struct map_session_data *sd);
- void (*pEquipItem) (int fd,struct map_session_data *sd);
- void (*pUnequipItem) (int fd,struct map_session_data *sd);
- void (*pNpcClicked) (int fd,struct map_session_data *sd);
- void (*pNpcBuySellSelected) (int fd,struct map_session_data *sd);
- void (*pNpcBuyListSend) (int fd, struct map_session_data* sd);
- void (*pNpcSellListSend) (int fd,struct map_session_data *sd);
- void (*pCreateChatRoom) (int fd, struct map_session_data* sd);
- void (*pChatAddMember) (int fd, struct map_session_data* sd);
- void (*pChatRoomStatusChange) (int fd, struct map_session_data* sd);
- void (*pChangeChatOwner) (int fd, struct map_session_data* sd);
- void (*pKickFromChat) (int fd,struct map_session_data *sd);
- void (*pChatLeave) (int fd, struct map_session_data* sd);
- void (*pTradeRequest) (int fd,struct map_session_data *sd);
- void (*pTradeAck) (int fd,struct map_session_data *sd);
- void (*pTradeAddItem) (int fd,struct map_session_data *sd);
- void (*pTradeOk) (int fd,struct map_session_data *sd);
- void (*pTradeCancel) (int fd,struct map_session_data *sd);
- void (*pTradeCommit) (int fd,struct map_session_data *sd);
- void (*pStopAttack) (int fd,struct map_session_data *sd);
- void (*pPutItemToCart) (int fd,struct map_session_data *sd);
- void (*pGetItemFromCart) (int fd,struct map_session_data *sd);
- void (*pRemoveOption) (int fd,struct map_session_data *sd);
- void (*pChangeCart) (int fd,struct map_session_data *sd);
- void (*pStatusUp) (int fd,struct map_session_data *sd);
- void (*pSkillUp) (int fd,struct map_session_data *sd);
- void (*pUseSkillToId) (int fd, struct map_session_data *sd);
- void (*pUseSkillToId_homun) (struct homun_data *hd, struct map_session_data *sd, int64 tick, uint16 skill_id, uint16 skill_lv, int target_id);
- void (*pUseSkillToId_mercenary) (struct mercenary_data *md, struct map_session_data *sd, int64 tick, uint16 skill_id, uint16 skill_lv, int target_id);
- void (*pUseSkillToPos) (int fd, struct map_session_data *sd);
- void (*pUseSkillToPosSub) (int fd, struct map_session_data *sd, uint16 skill_lv, uint16 skill_id, short x, short y, int skillmoreinfo);
- void (*pUseSkillToPos_homun) (struct homun_data *hd, struct map_session_data *sd, int64 tick, uint16 skill_id, uint16 skill_lv, short x, short y, int skillmoreinfo);
- void (*pUseSkillToPos_mercenary) (struct mercenary_data *md, struct map_session_data *sd, int64 tick, uint16 skill_id, uint16 skill_lv, short x, short y, int skillmoreinfo);
- void (*pUseSkillToPosMoreInfo) (int fd, struct map_session_data *sd);
- void (*pUseSkillMap) (int fd, struct map_session_data* sd);
- void (*pRequestMemo) (int fd,struct map_session_data *sd);
- void (*pProduceMix) (int fd,struct map_session_data *sd);
- void (*pCooking) (int fd,struct map_session_data *sd);
- void (*pRepairItem) (int fd, struct map_session_data *sd);
- void (*pWeaponRefine) (int fd, struct map_session_data *sd);
- void (*pNpcSelectMenu) (int fd,struct map_session_data *sd);
- void (*pNpcNextClicked) (int fd,struct map_session_data *sd);
- void (*pNpcAmountInput) (int fd,struct map_session_data *sd);
- void (*pNpcStringInput) (int fd, struct map_session_data* sd);
- void (*pNpcCloseClicked) (int fd,struct map_session_data *sd);
- void (*pItemIdentify) (int fd,struct map_session_data *sd);
- void (*pSelectArrow) (int fd,struct map_session_data *sd);
- void (*pAutoSpell) (int fd,struct map_session_data *sd);
- void (*pUseCard) (int fd,struct map_session_data *sd);
- void (*pInsertCard) (int fd,struct map_session_data *sd);
- void (*pSolveCharName) (int fd, struct map_session_data *sd);
- void (*pResetChar) (int fd, struct map_session_data *sd);
- void (*pLocalBroadcast) (int fd, struct map_session_data* sd);
- void (*pMoveToKafra) (int fd, struct map_session_data *sd);
- void (*pMoveFromKafra) (int fd,struct map_session_data *sd);
- void (*pMoveToKafraFromCart) (int fd, struct map_session_data *sd);
- void (*pMoveFromKafraToCart) (int fd, struct map_session_data *sd);
- void (*pCloseKafra) (int fd, struct map_session_data *sd);
- void (*pStoragePassword) (int fd, struct map_session_data *sd);
- void (*pCreateParty) (int fd, struct map_session_data *sd);
- void (*pCreateParty2) (int fd, struct map_session_data *sd);
- void (*pPartyInvite) (int fd, struct map_session_data *sd);
- void (*pPartyInvite2) (int fd, struct map_session_data *sd);
- void (*pReplyPartyInvite) (int fd,struct map_session_data *sd);
- void (*pReplyPartyInvite2) (int fd,struct map_session_data *sd);
- void (*pLeaveParty) (int fd, struct map_session_data *sd);
- void (*pRemovePartyMember) (int fd, struct map_session_data *sd);
- void (*pPartyChangeOption) (int fd, struct map_session_data *sd);
- void (*pPartyMessage) (int fd, struct map_session_data* sd);
- void (*pPartyChangeLeader) (int fd, struct map_session_data* sd);
- void (*pPartyBookingRegisterReq) (int fd, struct map_session_data* sd);
- void (*pPartyBookingSearchReq) (int fd, struct map_session_data* sd);
- void (*pPartyBookingDeleteReq) (int fd, struct map_session_data* sd);
- void (*pPartyBookingUpdateReq) (int fd, struct map_session_data* sd);
- void (*pPartyRecruitRegisterReq) (int fd, struct map_session_data* sd);
- void (*pPartyRecruitSearchReq) (int fd, struct map_session_data* sd);
- void (*pPartyRecruitDeleteReq) (int fd, struct map_session_data* sd);
- void (*pPartyRecruitUpdateReq) (int fd, struct map_session_data* sd);
- void (*pCloseVending) (int fd, struct map_session_data* sd);
- void (*pVendingListReq) (int fd, struct map_session_data* sd);
- void (*pPurchaseReq) (int fd, struct map_session_data* sd);
- void (*pPurchaseReq2) (int fd, struct map_session_data* sd);
- void (*pOpenVending) (int fd, struct map_session_data* sd);
- void (*pCreateGuild) (int fd,struct map_session_data *sd);
- void (*pGuildCheckMaster) (int fd, struct map_session_data *sd);
- void (*pGuildRequestInfo) (int fd, struct map_session_data *sd);
- void (*pGuildChangePositionInfo) (int fd, struct map_session_data *sd);
- void (*pGuildChangeMemberPosition) (int fd, struct map_session_data *sd);
- void (*pGuildRequestEmblem) (int fd,struct map_session_data *sd);
- void (*pGuildChangeEmblem) (int fd,struct map_session_data *sd);
- void (*pGuildChangeNotice) (int fd, struct map_session_data* sd);
- void (*pGuildInvite) (int fd,struct map_session_data *sd);
- void (*pGuildReplyInvite) (int fd,struct map_session_data *sd);
- void (*pGuildLeave) (int fd,struct map_session_data *sd);
- void (*pGuildExpulsion) (int fd,struct map_session_data *sd);
- void (*pGuildMessage) (int fd, struct map_session_data* sd);
- void (*pGuildRequestAlliance) (int fd, struct map_session_data *sd);
- void (*pGuildReplyAlliance) (int fd, struct map_session_data *sd);
- void (*pGuildDelAlliance) (int fd, struct map_session_data *sd);
- void (*pGuildOpposition) (int fd, struct map_session_data *sd);
- void (*pGuildBreak) (int fd, struct map_session_data *sd);
- void (*pPetMenu) (int fd, struct map_session_data *sd);
- void (*pCatchPet) (int fd, struct map_session_data *sd);
- void (*pSelectEgg) (int fd, struct map_session_data *sd);
- void (*pSendEmotion) (int fd, struct map_session_data *sd);
- void (*pChangePetName) (int fd, struct map_session_data *sd);
- void (*pGMKick) (int fd, struct map_session_data *sd);
- void (*pGMKickAll) (int fd, struct map_session_data* sd);
- void (*pGMShift) (int fd, struct map_session_data *sd);
- void (*pGMRemove2) (int fd, struct map_session_data* sd);
- void (*pGMRecall) (int fd, struct map_session_data *sd);
- void (*pGMRecall2) (int fd, struct map_session_data* sd);
- void (*pGM_Monster_Item) (int fd, struct map_session_data *sd);
- void (*pGMHide) (int fd, struct map_session_data *sd);
- void (*pGMReqNoChat) (int fd,struct map_session_data *sd);
- void (*pGMRc) (int fd, struct map_session_data* sd);
- void (*pGMReqAccountName) (int fd, struct map_session_data *sd);
- void (*pGMChangeMapType) (int fd, struct map_session_data *sd);
- void (*pGMFullStrip) (int fd, struct map_session_data *sd);
- void (*pPMIgnore) (int fd, struct map_session_data* sd);
- void (*pPMIgnoreAll) (int fd, struct map_session_data *sd);
- void (*pPMIgnoreList) (int fd,struct map_session_data *sd);
- void (*pNoviceDoriDori) (int fd, struct map_session_data *sd);
- void (*pNoviceExplosionSpirits) (int fd, struct map_session_data *sd);
- void (*pFriendsListAdd) (int fd, struct map_session_data *sd);
- void (*pFriendsListReply) (int fd, struct map_session_data *sd);
- void (*pFriendsListRemove) (int fd, struct map_session_data *sd);
- void (*pPVPInfo) (int fd,struct map_session_data *sd);
- void (*pBlacksmith) (int fd,struct map_session_data *sd);
- void (*pAlchemist) (int fd,struct map_session_data *sd);
- void (*pTaekwon) (int fd,struct map_session_data *sd);
- void (*pRankingPk) (int fd,struct map_session_data *sd);
- void (*pFeelSaveOk) (int fd,struct map_session_data *sd);
- void (*pChangeHomunculusName) (int fd, struct map_session_data *sd);
- void (*pHomMoveToMaster) (int fd, struct map_session_data *sd);
- void (*pHomMoveTo) (int fd, struct map_session_data *sd);
- void (*pHomAttack) (int fd,struct map_session_data *sd);
- void (*pHomMenu) (int fd, struct map_session_data *sd);
- void (*pAutoRevive) (int fd, struct map_session_data *sd);
- void (*pCheck) (int fd, struct map_session_data *sd);
- void (*pMail_refreshinbox) (int fd, struct map_session_data *sd);
- void (*pMail_read) (int fd, struct map_session_data *sd);
- void (*pMail_getattach) (int fd, struct map_session_data *sd);
- void (*pMail_delete) (int fd, struct map_session_data *sd);
- void (*pMail_return) (int fd, struct map_session_data *sd);
- void (*pMail_setattach) (int fd, struct map_session_data *sd);
- void (*pMail_winopen) (int fd, struct map_session_data *sd);
- void (*pMail_send) (int fd, struct map_session_data *sd);
- void (*pAuction_cancelreg) (int fd, struct map_session_data *sd);
- void (*pAuction_setitem) (int fd, struct map_session_data *sd);
- void (*pAuction_register) (int fd, struct map_session_data *sd);
- void (*pAuction_cancel) (int fd, struct map_session_data *sd);
- void (*pAuction_close) (int fd, struct map_session_data *sd);
- void (*pAuction_bid) (int fd, struct map_session_data *sd);
- void (*pAuction_search) (int fd, struct map_session_data* sd);
- void (*pAuction_buysell) (int fd, struct map_session_data* sd);
- void (*pcashshop_buy) (int fd, struct map_session_data *sd);
- void (*pAdopt_request) (int fd, struct map_session_data *sd);
- void (*pAdopt_reply) (int fd, struct map_session_data *sd);
- void (*pViewPlayerEquip) (int fd, struct map_session_data* sd);
- void (*pEquipTick) (int fd, struct map_session_data* sd);
- void (*pquestStateAck) (int fd, struct map_session_data * sd);
- void (*pmercenary_action) (int fd, struct map_session_data* sd);
- void (*pBattleChat) (int fd, struct map_session_data* sd);
- void (*pLessEffect) (int fd, struct map_session_data* sd);
- void (*pItemListWindowSelected) (int fd, struct map_session_data* sd);
- void (*pReqOpenBuyingStore) (int fd, struct map_session_data* sd);
- void (*pReqCloseBuyingStore) (int fd, struct map_session_data* sd);
- void (*pReqClickBuyingStore) (int fd, struct map_session_data* sd);
- void (*pReqTradeBuyingStore) (int fd, struct map_session_data* sd);
- void (*pSearchStoreInfo) (int fd, struct map_session_data* sd);
- void (*pSearchStoreInfoNextPage) (int fd, struct map_session_data* sd);
- void (*pCloseSearchStoreInfo) (int fd, struct map_session_data* sd);
- void (*pSearchStoreInfoListItemClick) (int fd, struct map_session_data* sd);
- void (*pDebug) (int fd,struct map_session_data *sd);
- void (*pSkillSelectMenu) (int fd, struct map_session_data *sd);
- void (*pMoveItem) (int fd, struct map_session_data *sd);
- void (*pDull) (int fd, struct map_session_data *sd);
-
- void (*pBGQueueRegister) (int fd, struct map_session_data *sd);
- void (*pBGQueueCheckState) (int fd, struct map_session_data *sd);
- void (*pBGQueueRevokeReq) (int fd, struct map_session_data *sd);
- void (*pBGQueueBattleBeginAck) (int fd, struct map_session_data *sd);
-
- void (*pCashShopOpen) (int fd, struct map_session_data *sd);
- void (*pCashShopClose) (int fd, struct map_session_data *sd);
- void (*pCashShopReqTab) (int fd, struct map_session_data *sd);
- void (*pCashShopSchedule) (int fd, struct map_session_data *sd);
- void (*pCashShopBuy) (int fd, struct map_session_data *sd);
- void (*pPartyTick) (int fd, struct map_session_data *sd);
- void (*pGuildInvite2) (int fd, struct map_session_data *sd);
-
- void (*pPartyBookingAddFilter) (int fd, struct map_session_data *sd);
- void (*pPartyBookingSubFilter) (int fd, struct map_session_data *sd);
- void (*pPartyBookingReqVolunteer) (int fd, struct map_session_data *sd);
- void (*pPartyBookingRefuseVolunteer) (int fd, struct map_session_data *sd);
- void (*pPartyBookingCancelVolunteer) (int fd, struct map_session_data *sd);
-
- void (*pBankDeposit) (int fd, struct map_session_data *sd);
- void (*pBankWithdraw) (int fd, struct map_session_data *sd);
- void (*pBankCheck) (int fd, struct map_session_data *sd);
- void (*pBankOpen) (int fd, struct map_session_data *sd);
- void (*pBankClose) (int fd, struct map_session_data *sd);
-
- void (*pRouletteOpen) (int fd, struct map_session_data *sd);
- void (*pRouletteInfo) (int fd, struct map_session_data *sd);
- void (*pRouletteClose) (int fd, struct map_session_data *sd);
- void (*pRouletteGenerate) (int fd, struct map_session_data *sd);
- void (*pRouletteRecvItem) (int fd, struct map_session_data *sd);
-
- void (*pNPCShopClosed) (int fd, struct map_session_data *sd);
-
- void (*pNPCMarketClosed) (int fd, struct map_session_data *sd);
- void (*pNPCMarketPurchase) (int fd, struct map_session_data *sd);
-
- void (*add_random_options) (unsigned char* buf, struct item* item);
- void (*pHotkeyRowShift) (int fd, struct map_session_data *sd);
- void (*dressroom_open) (struct map_session_data *sd, int view);
- void (*pOneClick_ItemIdentify) (int fd,struct map_session_data *sd);
-
- void (*selectcart) (struct map_session_data *sd);
- void (*pSelectCart) (int fd, struct map_session_data *sd);
-
- const char *(*get_bl_name) (const struct block_list *bl);
-};
-
-
-void clif_defaults(void);
-
-
-extern struct clif_interface *clif;
-# 25 "../../../server-code/src/map/clif.c" 2
-
-
-# 1 "../../../server-code/src/map/battle.h" 1
-# 30 "../../../server-code/src/map/battle.h"
-struct map_session_data;
-struct mob_data;
-struct block_list;
-struct weapon_atk;
-struct status_change;
-struct status_data;
-# 55 "../../../server-code/src/map/battle.h"
-enum {
-
- BF_WEAPON = 0x0001,
- BF_MAGIC = 0x0002,
- BF_MISC = 0x0004,
- BF_SHORT = 0x0010,
- BF_LONG = 0x0040,
- BF_SKILL = 0x0100,
- BF_NORMAL = 0x0200,
- BF_WEAPONMASK = 0x000f,
- BF_RANGEMASK = 0x00f0,
- BF_SKILLMASK = 0x0f00,
-};
-
-
-typedef enum damage_lv {
- ATK_NONE,
- ATK_LUCKY,
- ATK_FLEE,
- ATK_MISS,
- ATK_BLOCK,
- ATK_DEF
-} damage_lv;
-
-enum e_battle_check_target {
- BCT_NOONE = 0x000000,
- BCT_SELF = 0x010000,
- BCT_ENEMY = 0x020000,
- BCT_PARTY = 0x040000,
- BCT_GUILDALLY = 0x080000,
- BCT_NEUTRAL = 0x100000,
- BCT_SAMEGUILD = 0x200000,
-
- BCT_GUILD = 0x280000,
-
- BCT_NOGUILD = 0x170000,
- BCT_NOPARTY = 0x3b0000,
- BCT_NOENEMY = 0x3d0000,
-
- BCT_ALL = 0x3f0000,
-};
-
-
-
-
-
-
-enum battle_dmg_type {
- BDT_NORMAL = 0,
-
-
-
- BDT_ENDURE = 4,
- BDT_SPLASH = 5,
- BDT_SKILL = 6,
-
- BDT_MULTIHIT = 8,
- BDT_MULTIENDURE = 9,
- BDT_CRIT = 10,
- BDT_PDODGE = 11,
-
-};
-
-
-
-
-
-
-struct Damage {
- int64 damage,damage2;
- int type,div_;
- int amotion,dmotion;
- int blewcount;
- int flag;
- enum damage_lv dmg_lv;
-};
-
-struct Battle_Config {
- int warp_point_debug;
- int enable_critical;
- int mob_critical_rate;
- int critical_rate;
- int enable_baseatk;
- int enable_perfect_flee;
- int cast_rate, delay_rate;
- int delay_dependon_dex, delay_dependon_agi;
- int sdelay_attack_enable;
- int left_cardfix_to_right;
- int skill_add_range;
- int skill_out_range_consume;
- int skill_amotion_leniency;
- int skillrange_by_distance;
- int use_weapon_skill_range;
- int pc_damage_delay_rate;
- int defnotenemy;
- int vs_traps_bctall;
- int traps_setting;
- int summon_flora;
- int clear_unit_ondeath;
- int clear_unit_onwarp;
- int random_monster_checklv;
- int attr_recover;
- int item_auto_get;
- int flooritem_lifetime;
- int item_first_get_time;
- int item_second_get_time;
- int item_third_get_time;
- int mvp_item_first_get_time;
- int mvp_item_second_get_time;
- int mvp_item_third_get_time;
- int base_exp_rate,job_exp_rate;
- int drop_rate0item;
- int death_penalty_type;
- int death_penalty_base,death_penalty_job;
- int pvp_exp;
- int gtb_sc_immunity;
- int zeny_penalty;
- int restart_hp_rate;
- int restart_sp_rate;
- int mvp_exp_rate;
- int mvp_hp_rate;
- int monster_hp_rate;
- int monster_max_aspd;
- int view_range_rate;
- int chase_range_rate;
- int atc_spawn_quantity_limit;
- int atc_slave_clone_limit;
- int partial_name_scan;
- int skillfree;
- int skillup_limit;
- int wp_rate;
- int pp_rate;
- int monster_active_enable;
- int monster_damage_delay_rate;
- int monster_loot_type;
- int mob_skill_rate;
- int mob_skill_delay;
- int mob_count_rate;
- int no_spawn_on_player;
- int force_random_spawn;
- int mob_spawn_delay, plant_spawn_delay, boss_spawn_delay;
- int slaves_inherit_mode;
- int slaves_inherit_speed;
- int summons_trigger_autospells;
- int pc_walk_delay_rate;
- int walk_delay_rate;
- int multihit_delay;
- int quest_skill_learn;
- int quest_skill_reset;
- int basic_skill_check;
- int guild_emperium_check;
- int guild_exp_limit;
- int guild_max_castles;
- int guild_skill_relog_delay;
- int emergency_call;
- int guild_aura;
- int pc_invincible_time;
-
- int pet_catch_rate;
- int pet_rename;
- int pet_friendly_rate;
- int pet_hungry_delay_rate;
- int pet_hungry_friendly_decrease;
- int pet_status_support;
- int pet_attack_support;
- int pet_damage_support;
- int pet_support_min_friendly;
- int pet_equip_min_friendly;
- int pet_support_rate;
- int pet_attack_exp_to_master;
- int pet_attack_exp_rate;
- int pet_lv_rate;
- int pet_max_stats;
- int pet_max_atk1;
- int pet_max_atk2;
- int pet_no_gvg;
- int pet_equip_required;
-
- int skill_min_damage;
- int finger_offensive_type;
- int heal_exp;
- int max_heal_lv;
- int max_heal;
- int resurrection_exp;
- int shop_exp;
- int combo_delay_rate;
- int item_check;
- int item_use_interval;
- int cashfood_use_interval;
- int wedding_modifydisplay;
- int wedding_ignorepalette;
- int xmas_ignorepalette;
- int summer_ignorepalette;
- int hanbok_ignorepalette;
- int natural_healhp_interval;
- int natural_healsp_interval;
- int natural_heal_skill_interval;
- int natural_heal_weight_rate;
- int arrow_decrement;
- int max_aspd;
- int max_walk_speed;
- int max_hp;
- int max_sp;
- int max_lv, aura_lv;
- int max_parameter, max_baby_parameter;
- int max_cart_weight;
- int skill_log;
- int battle_log;
- int etc_log;
- int save_clothcolor;
- int undead_detect_type;
- int auto_counter_type;
- int min_hitrate;
- int max_hitrate;
- int agi_penalty_target;
- int agi_penalty_type;
- int agi_penalty_count;
- int agi_penalty_num;
- int vit_penalty_target;
- int vit_penalty_type;
- int vit_penalty_count;
- int vit_penalty_num;
- int weapon_defense_type;
- int magic_defense_type;
- int skill_reiteration;
- int skill_nofootset;
- int pc_cloak_check_type;
- int monster_cloak_check_type;
- int estimation_type;
- int gvg_flee_penalty;
- int mob_changetarget_byskill;
- int attack_direction_change;
- int land_skill_limit;
- int monster_class_change_recover;
- int produce_item_name_input;
- int display_skill_fail;
- int chat_warpportal;
- int mob_warp;
- int dead_branch_active;
- int vending_max_value;
- int vending_over_max;
- int vending_tax;
- int show_steal_in_same_party;
- int party_share_type;
- int party_hp_mode;
- int party_show_share_picker;
- int show_picker_item_type;
- int attack_attr_none;
- int item_rate_mvp, item_rate_common, item_rate_common_boss, item_rate_card, item_rate_card_boss,
- item_rate_equip, item_rate_equip_boss, item_rate_heal, item_rate_heal_boss, item_rate_use,
- item_rate_use_boss, item_rate_treasure, item_rate_adddrop;
-
- int logarithmic_drops;
- int item_drop_common_min,item_drop_common_max;
- int item_drop_card_min,item_drop_card_max;
- int item_drop_equip_min,item_drop_equip_max;
- int item_drop_mvp_min,item_drop_mvp_max;
- int item_drop_heal_min,item_drop_heal_max;
- int item_drop_use_min,item_drop_use_max;
- int item_drop_treasure_min,item_drop_treasure_max;
- int item_drop_adddrop_min,item_drop_adddrop_max;
-
- int prevent_logout;
-
- int alchemist_summon_reward;
- int drops_by_luk;
- int drops_by_luk2;
- int equip_natural_break_rate;
- int equip_self_break_rate;
- int equip_skill_break_rate;
- int multi_level_up;
- int max_exp_gain_rate;
- int pk_mode;
- int pk_level_range;
-
- int manner_system;
- int show_mob_info;
-
- int gx_allhit;
- int gx_disptype;
- int devotion_level_difference;
- int player_skill_partner_check;
- int invite_request_check;
- int skill_removetrap_type;
- int disp_experience;
- int disp_zeny;
- int castle_defense_rate;
- int backstab_bow_penalty;
- int hp_rate;
- int sp_rate;
- int bone_drop;
- int buyer_name;
- int dancing_weaponswitch_fix;
-
-
- int night_at_start;
- int day_duration;
- int night_duration;
- int ban_hack_trade;
-
- int min_hair_style;
- int max_hair_style;
- int min_hair_color;
- int max_hair_color;
- int min_cloth_color;
- int max_cloth_color;
- int pet_hair_style;
-
- int castrate_dex_scale;
- int area_size;
-
- int max_def, over_def_bonus;
-
- int zeny_from_mobs;
- int mobs_level_up;
- int mobs_level_up_exp_rate;
- int pk_min_level;
- int skill_steal_max_tries;
- int exp_calc_type;
- int exp_bonus_attacker;
- int exp_bonus_max_attacker;
- int min_skill_delay_limit;
- int default_walk_delay;
- int no_skill_delay;
- int attack_walk_delay;
- int require_glory_guild;
- int idle_no_share;
- int party_update_interval;
- int party_even_share_bonus;
- int delay_battle_damage;
- int hide_woe_damage;
- int display_version;
-
- int display_hallucination;
- int use_statpoint_table;
-
- int ignore_items_gender;
-
- int copyskill_restrict;
- int berserk_cancels_buffs;
- int mob_ai;
- int hom_setting;
- int dynamic_mobs;
- int mob_remove_damaged;
- int mob_remove_delay;
- int mob_active_time;
- int boss_active_time;
-
- int show_hp_sp_drain, show_hp_sp_gain;
- int show_katar_crit_bonus;
-
- int mob_npc_event_type;
-
- int character_size;
- int rare_drop_announce;
-
- int retaliate_to_master;
-
- int duel_allow_pvp;
- int duel_allow_gvg;
- int duel_allow_teleport;
- int duel_autoleave_when_die;
- int duel_time_interval;
- int duel_only_on_same_map;
-
- int skip_teleport_lv1_menu;
- int mob_max_skilllvl;
- int allow_skill_without_day;
- int allow_es_magic_pc;
- int skill_wall_check;
- int official_cell_stack_limit;
- int custom_cell_stack_limit;
- int check_occupied_cells;
- int skill_caster_check;
- int sc_castcancel;
- int pc_sc_def_rate;
- int mob_sc_def_rate;
- int pc_max_sc_def;
- int mob_max_sc_def;
-
- int sg_angel_skill_ratio;
- int sg_miracle_skill_ratio;
- int sg_miracle_skill_duration;
- int autospell_stacking;
- int override_mob_names;
- int min_chat_delay;
- int friend_auto_add;
- int hvan_explosion_intimate;
- int hom_rename;
- int homunculus_show_growth;
- int homunculus_friendly_rate;
- int quest_exp_rate;
- int autotrade_mapflag;
- int at_timeout;
- int homunculus_autoloot;
- int idle_no_autoloot;
- int max_guild_alliance;
- int ksprotection;
- int auction_feeperhour;
- int auction_maximumprice;
- int homunculus_auto_vapor;
- int display_status_timers;
- int skill_add_heal_rate;
- int eq_single_target_reflectable;
- int invincible_nodamage;
- int mob_slave_keep_target;
- int autospell_check_range;
- int knockback_left;
- int client_reshuffle_dice;
- int client_sort_storage;
- int feature_buying_store;
- int feature_search_stores;
- int searchstore_querydelay;
- int searchstore_maxresults;
- int display_party_name;
- int cashshop_show_points;
- int mail_show_status;
- int client_limit_unit_lv;
- int client_emblem_max_blank_percent;
- int hom_max_level;
- int hom_S_max_level;
-
-
- int bg_update_interval;
- int bg_flee_penalty;
-
-
- int max_third_parameter;
- int max_baby_third_parameter;
- int max_extended_parameter;
- int atcommand_max_stat_bypass;
- int max_third_aspd;
- int vcast_stat_scale;
-
- int mvp_tomb_enabled;
-
- int atcommand_suggestions_enabled;
- int min_npc_vendchat_distance;
- int vendchat_near_hiddennpc;
- int atcommand_mobinfo_type;
-
- int mob_size_influence;
- int bowling_bash_area;
- int mob_chase_refresh;
- int mob_icewall_walk_block;
- int boss_icewall_walk_block;
-
-
- int skill_trap_type;
- int item_restricted_consumption_type;
- int unequip_restricted_equipment;
- int max_walk_path;
- int item_enabled_npc;
- int packet_obfuscation;
- int idletime_criteria;
- int gm_ignore_warpable_area;
-
- int client_accept_chatdori;
- int snovice_call_type;
- int guild_notice_changemap;
-
- int feature_banking;
- int feature_auction;
-
- int mon_trans_disable_in_gvg;
-
- int case_sensitive_aegisnames;
- int guild_castle_invite;
- int guild_castle_expulsion;
-
- int song_timer_reset;
- int snap_dodge;
- int stormgust_knockback;
-
- int feature_roulette;
-
- int show_monster_hp_bar;
-
- int fix_warp_hit_delay_abuse;
-
-
- int costume_refine_def, shadow_refine_def;
- int shadow_refine_atk;
-
-
- int min_body_style, max_body_style;
- int save_body_style;
-};
-
-
-enum e_battle_config_idletime {
- BCIDLE_WALK = 0x001,
- BCIDLE_USESKILLTOID = 0x002,
- BCIDLE_USESKILLTOPOS = 0x004,
- BCIDLE_USEITEM = 0x008,
- BCIDLE_ATTACK = 0x010,
- BCIDLE_CHAT = 0x020,
- BCIDLE_SIT = 0x040,
- BCIDLE_EMOTION = 0x080,
- BCIDLE_DROPITEM = 0x100,
- BCIDLE_ATCOMMAND = 0x200,
-};
-
-
-struct delay_damage {
- int src_id;
- int target_id;
- int64 damage;
- int delay;
- unsigned short distance;
- uint16 skill_lv;
- uint16 skill_id;
- enum damage_lv dmg_lv;
- unsigned short attack_type;
-
-# 569 "../../../server-code/src/map/battle.h" 3 4
-_Bool
-# 569 "../../../server-code/src/map/battle.h"
- additional_effects;
- enum bl_type src_type;
-};
-
-
-
-
-struct battle_interface {
-
- struct Battle_Config *bc;
-
- int attr_fix_table[4][ELE_MAX][ELE_MAX];
- struct eri *delay_damage_ers;
-
- void (*init) (
-# 583 "../../../server-code/src/map/battle.h" 3 4
- _Bool
-# 583 "../../../server-code/src/map/battle.h"
- minimal);
-
- void (*final) (void);
-
- struct Damage (*calc_attack) (int attack_type, struct block_list *bl, struct block_list *target, uint16 skill_id, uint16 skill_lv, int count);
-
- int64 (*calc_damage) (struct block_list *src, struct block_list *bl, struct Damage *d, int64 damage, uint16 skill_id, uint16 skill_lv);
-
- int64 (*calc_gvg_damage) (struct block_list *src, struct block_list *bl, int64 damage, int div_, uint16 skill_id, uint16 skill_lv, int flag);
-
- int64 (*calc_bg_damage) (struct block_list *src, struct block_list *bl, int64 damage, int div_, uint16 skill_id, uint16 skill_lv, int flag);
-
- enum damage_lv (*weapon_attack) (struct block_list *bl, struct block_list *target, int64 tick, int flag);
-
- struct Damage (*calc_weapon_attack) (struct block_list *src,struct block_list *target,uint16 skill_id,uint16 skill_lv,int wflag);
-
- int (*delay_damage) (int64 tick, int amotion, struct block_list *src, struct block_list *target, int attack_type, uint16 skill_id, uint16 skill_lv, int64 damage, enum damage_lv dmg_lv, int ddelay,
-# 599 "../../../server-code/src/map/battle.h" 3 4
- _Bool
-# 599 "../../../server-code/src/map/battle.h"
- additional_effects);
-
- void (*drain) (struct map_session_data *sd, struct block_list *tbl, int64 rdamage, int64 ldamage, int race, int boss);
-
- void (*reflect_damage) (struct block_list *target, struct block_list *src, struct Damage *wd,uint16 skill_id);
-
- int (*attr_ratio) (int atk_elem, int def_type, int def_lv);
-
- int64 (*attr_fix) (struct block_list *src, struct block_list *target, int64 damage, int atk_elem, int def_type, int def_lv);
-
- int64 (*calc_cardfix) (int attack_type, struct block_list *src, struct block_list *target, int nk, int s_ele, int s_ele_, int64 damage, int left, int flag);
- int64 (*calc_cardfix2) (struct block_list *src, struct block_list *bl, int64 damage, int s_ele, int nk, int flag);
-
- int64 (*calc_elefix) (struct block_list *src, struct block_list *target, uint16 skill_id, uint16 skill_lv, int64 damage, int nk, int n_ele, int s_ele, int s_ele_,
-# 612 "../../../server-code/src/map/battle.h" 3 4
- _Bool
-# 612 "../../../server-code/src/map/battle.h"
- left, int flag);
-
- int64 (*calc_masteryfix) (struct block_list *src, struct block_list *target, uint16 skill_id, uint16 skill_lv, int64 damage, int div,
-# 614 "../../../server-code/src/map/battle.h" 3 4
- _Bool
-# 614 "../../../server-code/src/map/battle.h"
- left,
-# 614 "../../../server-code/src/map/battle.h" 3 4
- _Bool
-# 614 "../../../server-code/src/map/battle.h"
- weapon);
-
- int (*calc_chorusbonus) (struct map_session_data *sd);
-
- int (*calc_skillratio) (int attack_type, struct block_list *src, struct block_list *target, uint16 skill_id, uint16 skill_lv, int skillratio, int flag);
-
- int64 (*calc_sizefix) (struct map_session_data *sd, int64 damage, int type, int size,
-# 620 "../../../server-code/src/map/battle.h" 3 4
- _Bool
-# 620 "../../../server-code/src/map/battle.h"
- ignore);
-
- int64 (*calc_weapon_damage) (struct block_list *src, struct block_list *bl, uint16 skill_id, uint16 skill_lv, struct weapon_atk *watk, int nk,
-# 622 "../../../server-code/src/map/battle.h" 3 4
- _Bool
-# 622 "../../../server-code/src/map/battle.h"
- n_ele, short s_ele, short s_ele_, int size, int type, int flag, int flag2);
-
- int64 (*calc_defense) (int attack_type, struct block_list *src, struct block_list *target, uint16 skill_id, uint16 skill_lv, int64 damage, int flag, int pdef);
-
- struct block_list *(*get_master) (struct block_list *src);
-
- struct block_list *(*get_targeted) (struct block_list *target);
-
- struct block_list *(*get_enemy) (struct block_list *target, int type, int range);
-
- int (*get_target) (struct block_list *bl);
-
- int (*get_current_skill) (struct block_list *bl);
-
-
-# 636 "../../../server-code/src/map/battle.h" 3 4
-_Bool
-# 636 "../../../server-code/src/map/battle.h"
- (*check_undead) (int race,int element);
-
- int (*check_target) (struct block_list *src, struct block_list *target,int flag);
-
-
-# 640 "../../../server-code/src/map/battle.h" 3 4
-_Bool
-# 640 "../../../server-code/src/map/battle.h"
- (*check_range) (struct block_list *src,struct block_list *bl,int range);
-
- void (*consume_ammo) (struct map_session_data* sd, int skill_id, int lv);
- int (*get_targeted_sub) (struct block_list *bl, va_list ap);
- int (*get_enemy_sub) (struct block_list *bl, va_list ap);
- int (*get_enemy_area_sub) (struct block_list *bl, va_list ap);
- int (*delay_damage_sub) (int tid, int64 tick, int id, intptr_t data);
- int (*blewcount_bonus) (struct map_session_data *sd, uint16 skill_id);
-
- int (*range_type) (struct block_list *src, struct block_list *target, uint16 skill_id, uint16 skill_lv);
- int64 (*calc_base_damage) (struct block_list *src, struct block_list *bl, uint16 skill_id, uint16 skill_lv, int nk,
-# 650 "../../../server-code/src/map/battle.h" 3 4
- _Bool
-# 650 "../../../server-code/src/map/battle.h"
- n_ele, short s_ele, short s_ele_, int type, int flag, int flag2);
- int64 (*calc_base_damage2) (struct status_data *st, struct weapon_atk *wa, struct status_change *sc, unsigned short t_size, struct map_session_data *sd, int flag);
- struct Damage (*calc_misc_attack) (struct block_list *src,struct block_list *target,uint16 skill_id,uint16 skill_lv,int mflag);
- struct Damage (*calc_magic_attack) (struct block_list *src,struct block_list *target,uint16 skill_id,uint16 skill_lv,int mflag);
- int (*adjust_skill_damage) (int m, unsigned short skill_id);
- int64 (*add_mastery) (struct map_session_data *sd,struct block_list *target,int64 dmg,int type);
- int (*calc_drain) (int64 damage, int rate, int per);
-
- int (*config_read) (const char *cfgName);
- void (*config_set_defaults) (void);
- int (*config_set_value) (const char *w1, const char *w2);
-
-# 661 "../../../server-code/src/map/battle.h" 3 4
-_Bool
-# 661 "../../../server-code/src/map/battle.h"
- (*config_get_value) (const char *w1, int *value);
- void (*config_adjust) (void);
-
-
- struct block_list* (*get_enemy_area) (struct block_list *src, int x, int y, int range, int type, int ignore_id);
-
- int (*damage_area) (struct block_list *bl, va_list ap);
- void (*calc_masteryfix_unknown) (struct block_list *src, struct block_list *target, uint16 *skill_id, uint16 *skill_lv, int64 *damage, int *div,
-# 668 "../../../server-code/src/map/battle.h" 3 4
- _Bool
-# 668 "../../../server-code/src/map/battle.h"
- *left,
-# 668 "../../../server-code/src/map/battle.h" 3 4
- _Bool
-# 668 "../../../server-code/src/map/battle.h"
- *weapon);
- void (*calc_skillratio_magic_unknown) (int *attack_type, struct block_list *src, struct block_list *target, uint16 *skill_id, uint16 *skill_lv, int *skillratio, int *flag);
- void (*calc_skillratio_weapon_unknown) (int *attack_type, struct block_list *src, struct block_list *target, uint16 *skill_id, uint16 *skill_lv, int *skillratio, int *flag);
- void (*calc_misc_attack_unknown) (struct block_list *src, struct block_list *target, uint16 *skill_id, uint16 *skill_lv, int *mflag, struct Damage *md);
-};
-
-
-extern struct Battle_Config battle_config;
-
-void battle_defaults(void);
-
-
-extern struct battle_interface *battle;
-# 28 "../../../server-code/src/map/clif.c" 2
-# 1 "../../../server-code/src/map/battleground.h" 1
-# 29 "../../../server-code/src/map/battleground.h"
-struct hplugin_data_store;
-struct block_list;
-struct map_session_data;
-# 42 "../../../server-code/src/map/battleground.h"
-enum bg_queue_types {
- BGQT_INVALID = 0x0,
- BGQT_INDIVIDUAL = 0x1,
- BGQT_PARTY = 0x2,
-
- BGQT_GUILD = 0x4,
-};
-
-enum bg_team_leave_type {
- BGTL_LEFT = 0x0,
- BGTL_QUIT = 0x1,
- BGTL_AFK = 0x2,
-};
-
-struct battleground_member_data {
- unsigned short x, y;
- struct map_session_data *sd;
- unsigned afk : 1;
- struct point source;
-};
-
-struct battleground_data {
- unsigned int bg_id;
- unsigned char count;
- struct battleground_member_data members[30];
-
- unsigned short mapindex, x, y;
-
- char logout_event[( (23 + 1) * 2 + 3 )];
- char die_event[( (23 + 1) * 2 + 3 )];
- struct hplugin_data_store *hdata;
-};
-
-struct bg_arena {
- char name[(23 + 1)];
- unsigned char id;
- char npc_event[( (23 + 1) * 2 + 3 )];
- short min_level, max_level;
- short prize_win, prize_loss, prize_draw;
- short min_players;
- short max_players;
- short min_team_players;
- char delay_var[(23 + 1)];
- unsigned short maxDuration;
- int queue_id;
- int begin_timer;
- int fillup_timer;
- int game_timer;
- unsigned short fillup_duration;
- unsigned short pregame_duration;
-
-# 92 "../../../server-code/src/map/battleground.h" 3 4
-_Bool
-# 92 "../../../server-code/src/map/battleground.h"
- ongoing;
- enum bg_queue_types allowed_types;
-};
-
-struct battleground_interface {
-
-# 97 "../../../server-code/src/map/battleground.h" 3 4
-_Bool
-# 97 "../../../server-code/src/map/battleground.h"
- queue_on;
-
- int mafksec, afk_timer_id;
- char gdelay_var[30];
-
- struct bg_arena **arena;
- unsigned char arenas;
-
- struct DBMap *team_db;
- unsigned int team_counter;
-
- void (*init) (
-# 108 "../../../server-code/src/map/battleground.h" 3 4
- _Bool
-# 108 "../../../server-code/src/map/battleground.h"
- minimal);
- void (*final) (void);
-
- struct bg_arena *(*name2arena) (const char *name);
- void (*queue_add) (struct map_session_data *sd, struct bg_arena *arena, enum bg_queue_types type);
- enum BATTLEGROUNDS_QUEUE_ACK (*can_queue) (struct map_session_data *sd, struct bg_arena *arena, enum bg_queue_types type);
- int (*id2pos) (int queue_id, int account_id);
- void (*queue_pc_cleanup) (struct map_session_data *sd);
- void (*begin) (struct bg_arena *arena);
- int (*begin_timer) (int tid, int64 tick, int id, intptr_t data);
- void (*queue_pregame) (struct bg_arena *arena);
- int (*fillup_timer) (int tid, int64 tick, int id, intptr_t data);
- void (*queue_ready_ack) (struct bg_arena *arena, struct map_session_data *sd,
-# 120 "../../../server-code/src/map/battleground.h" 3 4
- _Bool
-# 120 "../../../server-code/src/map/battleground.h"
- response);
- void (*match_over) (struct bg_arena *arena,
-# 121 "../../../server-code/src/map/battleground.h" 3 4
- _Bool
-# 121 "../../../server-code/src/map/battleground.h"
- canceled);
- void (*queue_check) (struct bg_arena *arena);
- struct battleground_data* (*team_search) (int bg_id);
- struct map_session_data* (*getavailablesd) (struct battleground_data *bgd);
-
-# 125 "../../../server-code/src/map/battleground.h" 3 4
-_Bool
-# 125 "../../../server-code/src/map/battleground.h"
- (*team_delete) (int bg_id);
-
-# 126 "../../../server-code/src/map/battleground.h" 3 4
-_Bool
-# 126 "../../../server-code/src/map/battleground.h"
- (*team_warp) (int bg_id, unsigned short map_index, short x, short y);
- void (*send_dot_remove) (struct map_session_data *sd);
-
-# 128 "../../../server-code/src/map/battleground.h" 3 4
-_Bool
-# 128 "../../../server-code/src/map/battleground.h"
- (*team_join) (int bg_id, struct map_session_data *sd);
- int (*team_leave) (struct map_session_data *sd, enum bg_team_leave_type flag);
-
-# 130 "../../../server-code/src/map/battleground.h" 3 4
-_Bool
-# 130 "../../../server-code/src/map/battleground.h"
- (*member_respawn) (struct map_session_data *sd);
- int (*create) (unsigned short map_index, short rx, short ry, const char *ev, const char *dev);
- int (*team_get_id) (struct block_list *bl);
-
-# 133 "../../../server-code/src/map/battleground.h" 3 4
-_Bool
-# 133 "../../../server-code/src/map/battleground.h"
- (*send_message) (struct map_session_data *sd, const char *mes, int len);
- int (*send_xy_timer_sub) (union DBKey key, struct DBData *data, va_list ap);
- int (*send_xy_timer) (int tid, int64 tick, int id, intptr_t data);
- int (*afk_timer) (int tid, int64 tick, int id, intptr_t data);
- int (*team_db_final) (union DBKey key, struct DBData *data, va_list ap);
-
- enum bg_queue_types (*str2teamtype) (const char *str);
-
- void (*config_read) (void);
-};
-
-
-void battleground_defaults(void);
-
-
-extern struct battleground_interface *bg;
-# 29 "../../../server-code/src/map/clif.c" 2
-# 1 "../../../server-code/src/map/channel.h" 1
-# 29 "../../../server-code/src/map/channel.h"
-struct DBMap;
-struct map_session_data;
-struct guild;
-
-
-
-
-
-
-enum channel_options {
- HCS_OPT_BASE = 0x0,
- HCS_OPT_ANNOUNCE_JOIN = 0x1,
- HCS_OPT_MSG_DELAY = 0x2,
-};
-
-enum channel_types {
- HCS_TYPE_PUBLIC = 0,
- HCS_TYPE_PRIVATE = 1,
- HCS_TYPE_MAP = 2,
- HCS_TYPE_ALLY = 3,
- HCS_TYPE_IRC = 4,
-};
-
-enum channel_operation_status {
- HCS_STATUS_OK = 0,
- HCS_STATUS_FAIL,
- HCS_STATUS_ALREADY,
- HCS_STATUS_NOPERM,
- HCS_STATUS_BANNED,
-};
-
-
-
-
-struct Channel_Config {
- unsigned int *colors;
- char **colors_name;
- unsigned char colors_count;
-
-# 67 "../../../server-code/src/map/channel.h" 3 4
-_Bool
-# 67 "../../../server-code/src/map/channel.h"
- local, ally, irc;
-
-# 68 "../../../server-code/src/map/channel.h" 3 4
-_Bool
-# 68 "../../../server-code/src/map/channel.h"
- local_autojoin, ally_autojoin, irc_autojoin;
- char local_name[20], ally_name[20], irc_name[20];
- unsigned char local_color, ally_color, irc_color;
-
-# 71 "../../../server-code/src/map/channel.h" 3 4
-_Bool
-# 71 "../../../server-code/src/map/channel.h"
- closing;
-
-# 72 "../../../server-code/src/map/channel.h" 3 4
-_Bool
-# 72 "../../../server-code/src/map/channel.h"
- allow_user_channel_creation;
- char irc_server[40], irc_channel[50], irc_nick[40], irc_nick_pw[30];
- unsigned short irc_server_port;
-
-# 75 "../../../server-code/src/map/channel.h" 3 4
-_Bool
-# 75 "../../../server-code/src/map/channel.h"
- irc_use_ghost;
-};
-
-struct channel_ban_entry {
- char name[(23 + 1)];
-};
-
-struct channel_data {
- char name[20];
- char password[20];
- unsigned char color;
- struct DBMap *users;
- struct DBMap *banned;
- unsigned int options;
- unsigned int owner;
- enum channel_types type;
- uint16 m;
- unsigned char msg_delay;
-};
-
-struct channel_interface {
-
- struct DBMap *db;
- struct Channel_Config *config;
-
- int (*init) (
-# 100 "../../../server-code/src/map/channel.h" 3 4
- _Bool
-# 100 "../../../server-code/src/map/channel.h"
- minimal);
- void (*final) (void);
-
- struct channel_data *(*search) (const char *name, struct map_session_data *sd);
- struct channel_data *(*create) (enum channel_types type, const char *name, unsigned char color);
- void (*delete) (struct channel_data *chan);
-
- void (*set_password) (struct channel_data *chan, const char *password);
- enum channel_operation_status (*ban) (struct channel_data *chan, const struct map_session_data *ssd, struct map_session_data *tsd);
- enum channel_operation_status (*unban) (struct channel_data *chan, const struct map_session_data *ssd, struct map_session_data *tsd);
- void (*set_options) (struct channel_data *chan, unsigned int options);
-
- void (*send) (struct channel_data *chan, struct map_session_data *sd, const char *msg);
- void (*join_sub) (struct channel_data *chan, struct map_session_data *sd,
-# 113 "../../../server-code/src/map/channel.h" 3 4
- _Bool
-# 113 "../../../server-code/src/map/channel.h"
- stealth);
- enum channel_operation_status (*join) (struct channel_data *chan, struct map_session_data *sd, const char *password,
-# 114 "../../../server-code/src/map/channel.h" 3 4
- _Bool
-# 114 "../../../server-code/src/map/channel.h"
- silent);
- void (*leave) (struct channel_data *chan, struct map_session_data *sd);
- void (*leave_sub) (struct channel_data *chan, struct map_session_data *sd);
- void (*quit) (struct map_session_data *sd);
-
- void (*map_join) (struct map_session_data *sd);
- void (*guild_join_alliance) (const struct guild *g_source, const struct guild *g_ally);
- void (*guild_leave_alliance) (const struct guild *g_source, const struct guild *g_ally);
- void (*quit_guild) (struct map_session_data *sd);
- void (*irc_join) (struct map_session_data *sd);
-
- void (*config_read) (void);
-};
-
-
-void channel_defaults(void);
-
-
-extern struct channel_interface *channel;
-# 30 "../../../server-code/src/map/clif.c" 2
-# 1 "../../../server-code/src/map/chat.h" 1
-# 28 "../../../server-code/src/map/chat.h"
-struct DBMap;
-struct chat_data;
-struct map_session_data;
-struct npc_data;
-
-
-
-struct chat_data {
- struct block_list bl;
- char title[(36 + 1)];
- char pass[(8 + 1)];
-
-# 39 "../../../server-code/src/map/chat.h" 3 4
-_Bool
-# 39 "../../../server-code/src/map/chat.h"
- pub;
- uint8 users;
- uint8 limit;
- uint8 trigger;
- uint32 zeny;
- uint32 minLvl;
- uint32 maxLvl;
- struct map_session_data* usersd[20];
- struct block_list* owner;
- char npc_event[( (23 + 1) * 2 + 3 )];
-
- struct DBMap *kick_list;
-};
-
-
-
-
-
-
-struct chat_interface {
-
-
-# 60 "../../../server-code/src/map/chat.h" 3 4
-_Bool
-# 60 "../../../server-code/src/map/chat.h"
- (*create_pc_chat) (struct map_session_data* sd, const char* title, const char* pass, int limit,
-# 60 "../../../server-code/src/map/chat.h" 3 4
- _Bool
-# 60 "../../../server-code/src/map/chat.h"
- pub);
-
-# 61 "../../../server-code/src/map/chat.h" 3 4
-_Bool
-# 61 "../../../server-code/src/map/chat.h"
- (*join) (struct map_session_data* sd, int chatid, const char* pass);
- int (*leave) (struct map_session_data* sd,
-# 62 "../../../server-code/src/map/chat.h" 3 4
- _Bool
-# 62 "../../../server-code/src/map/chat.h"
- kicked);
-
-# 63 "../../../server-code/src/map/chat.h" 3 4
-_Bool
-# 63 "../../../server-code/src/map/chat.h"
- (*change_owner) (struct map_session_data* sd, const char* nextownername);
-
-# 64 "../../../server-code/src/map/chat.h" 3 4
-_Bool
-# 64 "../../../server-code/src/map/chat.h"
- (*change_status) (struct map_session_data* sd, const char* title, const char* pass, int limit,
-# 64 "../../../server-code/src/map/chat.h" 3 4
- _Bool
-# 64 "../../../server-code/src/map/chat.h"
- pub);
-
-# 65 "../../../server-code/src/map/chat.h" 3 4
-_Bool
-# 65 "../../../server-code/src/map/chat.h"
- (*kick) (struct map_session_data* sd, const char* kickusername);
-
-# 66 "../../../server-code/src/map/chat.h" 3 4
-_Bool
-# 66 "../../../server-code/src/map/chat.h"
- (*create_npc_chat) (struct npc_data* nd, const char* title, int limit,
-# 66 "../../../server-code/src/map/chat.h" 3 4
- _Bool
-# 66 "../../../server-code/src/map/chat.h"
- pub, int trigger, const char* ev, int zeny, int minLvl, int maxLvl);
-
-# 67 "../../../server-code/src/map/chat.h" 3 4
-_Bool
-# 67 "../../../server-code/src/map/chat.h"
- (*delete_npc_chat) (struct npc_data* nd);
-
-# 68 "../../../server-code/src/map/chat.h" 3 4
-_Bool
-# 68 "../../../server-code/src/map/chat.h"
- (*enable_event) (struct chat_data* cd);
-
-# 69 "../../../server-code/src/map/chat.h" 3 4
-_Bool
-# 69 "../../../server-code/src/map/chat.h"
- (*disable_event) (struct chat_data* cd);
-
-# 70 "../../../server-code/src/map/chat.h" 3 4
-_Bool
-# 70 "../../../server-code/src/map/chat.h"
- (*npc_kick_all) (struct chat_data* cd);
-
-# 71 "../../../server-code/src/map/chat.h" 3 4
-_Bool
-# 71 "../../../server-code/src/map/chat.h"
- (*trigger_event) (struct chat_data *cd);
- struct chat_data* (*create) (struct block_list* bl, const char* title, const char* pass, int limit,
-# 72 "../../../server-code/src/map/chat.h" 3 4
- _Bool
-# 72 "../../../server-code/src/map/chat.h"
- pub, int trigger, const char* ev, int zeny, int minLvl, int maxLvl);
-};
-
-
-void chat_defaults(void);
-
-
-extern struct chat_interface *chat;
-# 31 "../../../server-code/src/map/clif.c" 2
-# 1 "../../../server-code/src/map/chrif.h" 1
-# 28 "../../../server-code/src/map/chrif.h"
-struct eri;
-struct map_session_data;
-struct status_change_entry;
-# 45 "../../../server-code/src/map/chrif.h"
-enum sd_state { ST_LOGIN, ST_LOGOUT, ST_MAPCHANGE };
-
-
-
-
-struct auth_node {
- int account_id, char_id;
- int login_id1, login_id2, sex, fd;
- time_t expiration_time;
- struct map_session_data *sd;
- int64 node_created;
- enum sd_state state;
-};
-# 66 "../../../server-code/src/map/chrif.h"
-struct chrif_interface {
-
-
-
- int connected;
- int other_mapserver_count;
-
-
- struct eri *auth_db_ers;
- struct DBMap *auth_db;
-
- int packet_len_table[0x3d];
- int fd;
- int srvinfo;
- char ip_str[128];
- uint32 ip;
- uint16 port;
- char userid[(23 + 1)], passwd[(23 + 1)];
- int state;
-
- void (*init) (
-# 86 "../../../server-code/src/map/chrif.h" 3 4
- _Bool
-# 86 "../../../server-code/src/map/chrif.h"
- minimal);
- void (*final) (void);
-
- void (*setuserid) (char* id);
- void (*setpasswd) (char* pwd);
- void (*checkdefaultlogin) (void);
-
-# 92 "../../../server-code/src/map/chrif.h" 3 4
-_Bool
-# 92 "../../../server-code/src/map/chrif.h"
- (*setip) (const char* ip);
- void (*setport) (uint16 port);
-
- int (*isconnected) (void);
- void (*check_shutdown) (void);
-
- struct auth_node* (*search) (int account_id);
- struct auth_node* (*auth_check) (int account_id, int char_id, enum sd_state state);
-
-# 100 "../../../server-code/src/map/chrif.h" 3 4
-_Bool
-# 100 "../../../server-code/src/map/chrif.h"
- (*auth_delete) (int account_id, int char_id, enum sd_state state);
-
-# 101 "../../../server-code/src/map/chrif.h" 3 4
-_Bool
-# 101 "../../../server-code/src/map/chrif.h"
- (*auth_finished) (struct map_session_data* sd);
-
- void (*authreq) (struct map_session_data* sd,
-# 103 "../../../server-code/src/map/chrif.h" 3 4
- _Bool
-# 103 "../../../server-code/src/map/chrif.h"
- hstandalone);
- void (*authok) (int fd);
-
-# 105 "../../../server-code/src/map/chrif.h" 3 4
-_Bool
-# 105 "../../../server-code/src/map/chrif.h"
- (*scdata_request) (int account_id, int char_id);
-
-# 106 "../../../server-code/src/map/chrif.h" 3 4
-_Bool
-# 106 "../../../server-code/src/map/chrif.h"
- (*save) (struct map_session_data* sd, int flag);
-
-# 107 "../../../server-code/src/map/chrif.h" 3 4
-_Bool
-# 107 "../../../server-code/src/map/chrif.h"
- (*charselectreq) (struct map_session_data* sd, uint32 s_ip);
-
-# 108 "../../../server-code/src/map/chrif.h" 3 4
-_Bool
-# 108 "../../../server-code/src/map/chrif.h"
- (*changemapserver) (struct map_session_data* sd, uint32 ip, uint16 port);
-
-
-# 110 "../../../server-code/src/map/chrif.h" 3 4
-_Bool
-# 110 "../../../server-code/src/map/chrif.h"
- (*searchcharid) (int char_id);
-
-# 111 "../../../server-code/src/map/chrif.h" 3 4
-_Bool
-# 111 "../../../server-code/src/map/chrif.h"
- (*changeemail) (int id, const char *actual_email, const char *new_email);
-
-# 112 "../../../server-code/src/map/chrif.h" 3 4
-_Bool
-# 112 "../../../server-code/src/map/chrif.h"
- (*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 (*updatefamelist) (struct map_session_data *sd);
-
-# 114 "../../../server-code/src/map/chrif.h" 3 4
-_Bool
-# 114 "../../../server-code/src/map/chrif.h"
- (*buildfamelist) (void);
-
-# 115 "../../../server-code/src/map/chrif.h" 3 4
-_Bool
-# 115 "../../../server-code/src/map/chrif.h"
- (*save_scdata) (struct map_session_data *sd);
-
-# 116 "../../../server-code/src/map/chrif.h" 3 4
-_Bool
-# 116 "../../../server-code/src/map/chrif.h"
- (*ragsrvinfo) (int base_rate,int job_rate, int drop_rate);
-
-
-# 118 "../../../server-code/src/map/chrif.h" 3 4
-_Bool
-# 118 "../../../server-code/src/map/chrif.h"
- (*char_offline_nsd) (int account_id, int char_id);
-
-# 119 "../../../server-code/src/map/chrif.h" 3 4
-_Bool
-# 119 "../../../server-code/src/map/chrif.h"
- (*char_reset_offline) (void);
-
-# 120 "../../../server-code/src/map/chrif.h" 3 4
-_Bool
-# 120 "../../../server-code/src/map/chrif.h"
- (*send_users_tochar) (void);
-
-# 121 "../../../server-code/src/map/chrif.h" 3 4
-_Bool
-# 121 "../../../server-code/src/map/chrif.h"
- (*char_online) (struct map_session_data *sd);
-
-# 122 "../../../server-code/src/map/chrif.h" 3 4
-_Bool
-# 122 "../../../server-code/src/map/chrif.h"
- (*changesex) (struct map_session_data *sd,
-# 122 "../../../server-code/src/map/chrif.h" 3 4
- _Bool
-# 122 "../../../server-code/src/map/chrif.h"
- change_account);
-
-
-# 124 "../../../server-code/src/map/chrif.h" 3 4
-_Bool
-# 124 "../../../server-code/src/map/chrif.h"
- (*divorce) (int partner_id1, int partner_id2);
-
-
-# 126 "../../../server-code/src/map/chrif.h" 3 4
-_Bool
-# 126 "../../../server-code/src/map/chrif.h"
- (*removefriend) (int char_id, int friend_id);
- void (*send_report) (char* buf, int len);
-
-
-# 129 "../../../server-code/src/map/chrif.h" 3 4
-_Bool
-# 129 "../../../server-code/src/map/chrif.h"
- (*flush) (void);
- void (*skillid2idx) (int fd);
-
-
-# 132 "../../../server-code/src/map/chrif.h" 3 4
-_Bool
-# 132 "../../../server-code/src/map/chrif.h"
- (*sd_to_auth) (struct map_session_data *sd, enum sd_state state);
- int (*check_connect_char_server) (int tid, int64 tick, int id, intptr_t data);
-
-# 134 "../../../server-code/src/map/chrif.h" 3 4
-_Bool
-# 134 "../../../server-code/src/map/chrif.h"
- (*auth_logout) (struct map_session_data *sd, enum sd_state state);
- void (*save_ack) (int fd);
- int (*reconnect) (union DBKey key, struct DBData *data, va_list ap);
- int (*auth_db_cleanup_sub) (union DBKey key, struct DBData *data, va_list ap);
-
-# 138 "../../../server-code/src/map/chrif.h" 3 4
-_Bool
-# 138 "../../../server-code/src/map/chrif.h"
- (*char_ask_name_answer) (int acc, const char* player_name, uint16 type, uint16 answer);
- int (*auth_db_final) (union DBKey key, struct DBData *data, va_list ap);
- int (*send_usercount_tochar) (int tid, int64 tick, int id, intptr_t data);
- int (*auth_db_cleanup) (int tid, int64 tick, int id, intptr_t data);
-
- void (*connect) (int fd);
- void (*connectack) (int fd);
- void (*sendmap) (int fd);
- void (*sendmapack) (int fd);
- void (*recvmap) (int fd);
-
-# 148 "../../../server-code/src/map/chrif.h" 3 4
-_Bool
-# 148 "../../../server-code/src/map/chrif.h"
- (*changemapserverack) (int account_id, int login_id1, int login_id2, int char_id, short map_index, short x, short y, uint32 ip, uint16 port);
- void (*changedsex) (int fd);
-
-# 150 "../../../server-code/src/map/chrif.h" 3 4
-_Bool
-# 150 "../../../server-code/src/map/chrif.h"
- (*divorceack) (int char_id, int partner_id);
- void (*idbanned) (int fd);
- void (*recvfamelist) (int fd);
-
-# 153 "../../../server-code/src/map/chrif.h" 3 4
-_Bool
-# 153 "../../../server-code/src/map/chrif.h"
- (*load_scdata) (int fd);
- void (*update_ip) (int fd);
- int (*disconnectplayer) (int fd);
- void (*removemap) (int fd);
- int (*updatefamelist_ack) (int fd);
- void (*keepalive)(int fd);
- void (*keepalive_ack) (int fd);
- void (*deadopt) (int father_id, int mother_id, int child_id);
- void (*authfail) (int fd);
- void (*on_ready) (void);
- void (*on_disconnect) (void);
- int (*parse) (int fd);
- void (*save_scdata_single) (int account_id, int char_id, short type, struct status_change_entry *sce);
- void (*del_scdata_single) (int account_id, int char_id, short type);
-};
-
-
-void chrif_defaults(void);
-
-
-extern struct chrif_interface *chrif;
-# 32 "../../../server-code/src/map/clif.c" 2
-# 1 "../../../server-code/src/map/elemental.h" 1
-# 24 "../../../server-code/src/map/elemental.h"
-# 1 "../../../server-code/src/map/status.h" 1
-# 27 "../../../server-code/src/map/status.h"
-struct block_list;
-struct config_setting_t;
-struct elemental_data;
-struct homun_data;
-struct mercenary_data;
-struct mob_data;
-struct npc_data;
-struct pet_data;
-# 61 "../../../server-code/src/map/status.h"
-enum refine_type {
- REFINE_TYPE_ARMOR = 0,
- REFINE_TYPE_WEAPON1 = 1,
- REFINE_TYPE_WEAPON2 = 2,
- REFINE_TYPE_WEAPON3 = 3,
- REFINE_TYPE_WEAPON4 = 4,
- REFINE_TYPE_MAX = 5
-};
-
-
-
-
-
-typedef enum sc_conf_type {
- SC_NO_REM_DEATH = 0x01,
- SC_NO_SAVE = 0x02,
- SC_NO_DISPELL = 0x04,
- SC_NO_CLEARANCE = 0x08,
- SC_BUFF = 0x10,
- SC_DEBUFF = 0x20,
- SC_MADO_NO_RESET = 0x40,
- SC_NO_CLEAR = 0x80,
-} sc_conf_type;
-
-
-
-
-enum scstart_flag {
-
- SCFLAG_NONE = 0x00,
- SCFLAG_NOAVOID = 0x01,
- SCFLAG_FIXEDTICK = 0x02,
- SCFLAG_LOADED = 0x04,
- SCFLAG_FIXEDRATE = 0x08,
- SCFLAG_NOICON = 0x10,
- SCFLAG_ALL = SCFLAG_NONE|SCFLAG_NOAVOID|SCFLAG_FIXEDTICK|SCFLAG_LOADED|SCFLAG_FIXEDRATE|SCFLAG_NOICON
-};
-
-
-typedef enum sc_type {
- SC_NONE = -1,
-
- SC_STONE = 0,
- SC_COMMON_MIN = 0,
- SC_FREEZE,
- SC_STUN,
- SC_SLEEP,
- SC_POISON,
- SC_CURSE,
- SC_SILENCE,
- SC_CONFUSION,
- SC_BLIND,
- SC_BLOODING,
- SC_DPOISON,
- SC_FEAR,
- SC_COLD,
- SC_BURNING,
- SC_DEEP_SLEEP,
- SC_COMMON_MAX = 14,
-
-
- SC_PROVOKE = 20,
- SC_ENDURE,
- SC_TWOHANDQUICKEN,
- SC_CONCENTRATION,
- SC_HIDING,
- SC_CLOAKING,
- SC_ENCHANTPOISON,
- SC_POISONREACT,
- SC_QUAGMIRE,
- SC_ANGELUS,
- SC_BLESSING,
- SC_CRUCIS,
- SC_INC_AGI,
- SC_DEC_AGI,
- SC_SLOWPOISON,
- SC_IMPOSITIO ,
- SC_SUFFRAGIUM,
- SC_ASPERSIO,
- SC_BENEDICTIO,
- SC_KYRIE,
- SC_MAGNIFICAT,
- SC_GLORIA,
- SC_LEXAETERNA,
- SC_ADRENALINE,
- SC_WEAPONPERFECT,
- SC_OVERTHRUST,
- SC_MAXIMIZEPOWER,
- SC_TRICKDEAD,
- SC_SHOUT,
- SC_ENERGYCOAT,
- SC_BROKENARMOR,
- SC_BROKENWEAPON,
- SC_ILLUSION,
- SC_WEIGHTOVER50,
- SC_WEIGHTOVER90,
- SC_ATTHASTE_POTION1,
- SC_ATTHASTE_POTION2,
- SC_ATTHASTE_POTION3,
- SC_ATTHASTE_INFINITY,
- SC_MOVHASTE_HORSE,
- SC_MOVHASTE_INFINITY,
- SC_PLUSATTACKPOWER,
- SC_PLUSMAGICPOWER,
- SC_WEDDING,
- SC_SLOWDOWN,
- SC_ANKLESNARE,
- SC_KEEPING,
- SC_BARRIER,
- SC_NOEQUIPWEAPON,
- SC_NOEQUIPSHIELD,
- SC_NOEQUIPARMOR,
- SC_NOEQUIPHELM,
- SC_PROTECTWEAPON,
- SC_PROTECTSHIELD,
- SC_PROTECTARMOR,
- SC_PROTECTHELM,
- SC_AUTOGUARD,
- SC_REFLECTSHIELD,
- SC_SPLASHER,
- SC_PROVIDENCE,
- SC_DEFENDER,
- SC_MAGICROD,
- SC_SPELLBREAKER,
- SC_AUTOSPELL,
- SC_SIGHTTRASHER,
- SC_AUTOBERSERK,
- SC_SPEARQUICKEN,
- SC_AUTOCOUNTER,
- SC_SIGHT,
- SC_SAFETYWALL,
- SC_RUWACH,
- SC_EXTREMITYFIST,
- SC_EXPLOSIONSPIRITS,
- SC_COMBOATTACK,
- SC_BLADESTOP_WAIT,
- SC_BLADESTOP,
- SC_PROPERTYFIRE,
- SC_PROPERTYWATER,
- SC_PROPERTYWIND,
- SC_PROPERTYGROUND,
- SC_VOLCANO,
- SC_DELUGE,
- SC_VIOLENTGALE,
- SC_SUB_WEAPONPROPERTY,
- SC_ARMOR,
- SC_ARMORPROPERTY,
- SC_NOCHAT,
- SC_BABY,
- SC_AURABLADE,
- SC_PARRYING,
- SC_LKCONCENTRATION,
- SC_TENSIONRELAX,
- SC_BERSERK,
- SC_FURY,
- SC_GOSPEL,
- SC_ASSUMPTIO,
- SC_BASILICA,
- SC_GUILDAURA,
- SC_MAGICPOWER,
- SC_EDP,
- SC_TRUESIGHT,
- SC_WINDWALK,
- SC_MELTDOWN,
- SC_CARTBOOST,
- SC_CHASEWALK,
- SC_SWORDREJECT,
- SC_MARIONETTE_MASTER,
- SC_MARIONETTE,
- SC_PROPERTYUNDEAD,
- SC_JOINTBEAT,
- SC_MINDBREAKER,
- SC_MEMORIZE,
- SC_FOGWALL,
- SC_SPIDERWEB,
- SC_DEVOTION,
- SC_SACRIFICE,
- SC_STEELBODY,
- SC_ORCISH,
- SC_STORMKICK_READY,
- SC_DOWNKICK_READY,
- SC_TURNKICK_READY,
- SC_COUNTERKICK_READY,
- SC_DODGE_READY,
- SC_RUN,
- SC_PROPERTYDARK,
- SC_ADRENALINE2,
- SC_PROPERTYTELEKINESIS,
- SC_KAIZEL,
- SC_KAAHI,
- SC_KAUPE,
- SC_ONEHANDQUICKEN,
- SC_PRESERVE,
- SC_GDSKILL_BATTLEORDER,
- SC_GDSKILL_REGENERATION,
- SC_DOUBLECASTING,
- SC_GRAVITATION,
- SC_OVERTHRUSTMAX,
- SC_LONGING,
- SC_HERMODE,
- SC_TAROTCARD,
- SC_CR_SHRINK,
- SC_WZ_SIGHTBLASTER,
- SC_DC_WINKCHARM,
- SC_RG_CCONFINE_M,
- SC_RG_CCONFINE_S,
- SC_DANCING,
- SC_ARMOR_PROPERTY,
- SC_RICHMANKIM,
- SC_ETERNALCHAOS,
- SC_DRUMBATTLE,
- SC_NIBELUNGEN,
- SC_ROKISWEIL,
- SC_INTOABYSS,
- SC_SIEGFRIED,
- SC_WHISTLE,
- SC_ASSNCROS,
- SC_POEMBRAGI,
- SC_APPLEIDUN,
- SC_MODECHANGE,
- SC_HUMMING,
- SC_DONTFORGETME,
- SC_FORTUNE,
- SC_SERVICEFORYOU,
- SC_STOP,
- SC_STRUP,
- SC_SOULLINK,
- SC_COMA,
- SC_CLAIRVOYANCE,
- SC_INCALLSTATUS,
- SC_CHASEWALK2,
- SC_INCAGI,
- SC_INCVIT,
- SC_INCINT,
- SC_INCDEX,
- SC_INCLUK,
- SC_INCHIT,
- SC_INCHITRATE,
- SC_INCFLEE,
- SC_INCFLEERATE,
- SC_INCMHPRATE,
- SC_INCMSPRATE,
- SC_INCATKRATE,
- SC_INCMATKRATE,
- SC_INCDEFRATE,
- SC_FOOD_STR,
- SC_FOOD_AGI,
- SC_FOOD_VIT,
- SC_FOOD_INT,
- SC_FOOD_DEX,
- SC_FOOD_LUK,
- SC_FOOD_BASICHIT,
- SC_FOOD_BASICAVOIDANCE,
- SC_BATKFOOD,
- SC_WATKFOOD,
- SC_MATKFOOD,
- SC_SCRESIST,
- SC_XMAS,
- SC_WARM,
- SC_SUN_COMFORT,
- SC_MOON_COMFORT,
- SC_STAR_COMFORT,
- SC_FUSION,
- SC_SKILLRATE_UP,
- SC_SKE,
- SC_KAITE,
- SC_SWOO,
- SC_SKA,
- SC_EARTHSCROLL,
- SC_MIRACLE,
- SC_GS_MADNESSCANCEL,
- SC_GS_ADJUSTMENT,
- SC_GS_ACCURACY,
- SC_GS_GATLINGFEVER,
- SC_NJ_TATAMIGAESHI,
- SC_NJ_UTSUSEMI,
- SC_NJ_BUNSINJYUTSU,
- SC_NJ_KAENSIN,
- SC_NJ_SUITON,
- SC_NJ_NEN,
- SC_KNOWLEDGE,
- SC_SMA_READY,
- SC_FLING,
- SC_HLIF_AVOID,
- SC_HLIF_CHANGE,
- SC_HAMI_BLOODLUST,
- SC_HLIF_FLEET,
- SC_HLIF_SPEED,
- SC_HAMI_DEFENCE,
- SC_INCASPDRATE,
- SC_PLUSAVOIDVALUE,
- SC_JAILED,
- SC_ENCHANTARMS,
- SC_MAGICALATTACK,
- SC_STONESKIN,
- SC_CRITICALWOUND,
- SC_MAGICMIRROR,
- SC_SLOWCAST,
- SC_SUMMER,
- SC_CASH_PLUSEXP,
- SC_CASH_RECEIVEITEM,
- SC_CASH_BOSS_ALARM,
- SC_CASH_DEATHPENALTY,
- SC_CRITICALPERCENT,
-
-
-
- SC_PROTECT_MDEF = 266,
-
- SC_HEALPLUS = 268,
- SC_PNEUMA,
- SC_AUTOTRADE,
- SC_KSPROTECTED,
- SC_ARMOR_RESIST,
- SC_ATKER_BLOOD,
- SC_TARGET_BLOOD,
- SC_TK_SEVENWIND,
- SC_PROTECT_DEF,
-
- SC_WALKSPEED = 278,
-
- SC_MER_FLEE,
- SC_MER_ATK,
- SC_MER_HP,
- SC_MER_SP,
- SC_MER_HIT,
- SC_MER_QUICKEN,
- SC_REBIRTH,
-
-
-
-
-
- SC_S_LIFEPOTION = 291,
- SC_L_LIFEPOTION,
- SC_CASH_PLUSONLYJOBEXP,
-
- SC_HELLPOWER = 295,
- SC_INVINCIBLE,
- SC_INVINCIBLEOFF,
- SC_MANU_ATK,
- SC_MANU_DEF,
- SC_SPL_ATK,
- SC_SPL_DEF,
- SC_MANU_MATK,
- SC_SPL_MATK,
- SC_FOOD_STR_CASH,
- SC_FOOD_AGI_CASH,
- SC_FOOD_VIT_CASH,
- SC_FOOD_DEX_CASH,
- SC_FOOD_INT_CASH,
- SC_FOOD_LUK_CASH,
-
-
-
-
- SC_FROSTMISTY = 311,
-
-
-
- SC_ENCHANTBLADE,
- SC_DEATHBOUND,
- SC_MILLENNIUMSHIELD,
- SC_CRUSHSTRIKE,
- SC_REFRESH,
- SC_REUSE_REFRESH,
- SC_GIANTGROWTH,
- SC_STONEHARDSKIN,
- SC_VITALITYACTIVATION,
- SC_STORMBLAST,
- SC_FIGHTINGSPIRIT,
- SC_ABUNDANCE,
-
-
-
- SC_ADORAMUS,
- SC_EPICLESIS,
- SC_ORATIO,
- SC_LAUDAAGNUS,
- SC_LAUDARAMUS,
- SC_RENOVATIO,
- SC_EXPIATIO,
- SC_DUPLELIGHT,
- SC_SECRAMENT,
-
-
-
- SC_WHITEIMPRISON,
- SC_MARSHOFABYSS,
- SC_RECOGNIZEDSPELL,
- SC_STASIS,
- SC_SUMMON1,
- SC_SUMMON2,
- SC_SUMMON3,
- SC_SUMMON4,
- SC_SUMMON5,
- SC_READING_SB,
- SC_FREEZINGSP,
-
-
-
- SC_FEARBREEZE,
- SC_ELECTRICSHOCKER,
- SC_WUGDASH,
- SC_WUGBITE,
- SC_CAMOUFLAGE,
-
-
-
- SC_ACCELERATION,
- SC_HOVERING,
- SC_SHAPESHIFT,
- SC_INFRAREDSCAN,
- SC_ANALYZE,
- SC_MAGNETICFIELD,
- SC_NEUTRALBARRIER,
- SC_NEUTRALBARRIER_MASTER,
- SC_STEALTHFIELD,
- SC_STEALTHFIELD_MASTER,
- SC_OVERHEAT,
- SC_OVERHEAT_LIMITPOINT,
-
-
-
- SC_VENOMIMPRESS,
- SC_POISONINGWEAPON,
- SC_WEAPONBLOCKING,
- SC_CLOAKINGEXCEED,
- SC_HALLUCINATIONWALK,
- SC_HALLUCINATIONWALK_POSTDELAY,
- SC_ROLLINGCUTTER,
- SC_TOXIN,
- SC_PARALYSE,
- SC_VENOMBLEED,
- SC_MAGICMUSHROOM,
- SC_DEATHHURT,
- SC_PYREXIA,
- SC_OBLIVIONCURSE,
- SC_LEECHESEND,
-
-
-
- SC_LG_REFLECTDAMAGE,
- SC_FORCEOFVANGUARD,
- SC_SHIELDSPELL_DEF,
- SC_SHIELDSPELL_MDEF,
- SC_SHIELDSPELL_REF,
- SC_EXEEDBREAK,
- SC_PRESTIGE,
- SC_BANDING,
- SC_BANDING_DEFENCE,
- SC_EARTHDRIVE,
- SC_INSPIRATION,
-
-
-
- SC_SPELLFIST,
-
- SC_STRIKING = 389,
- SC_WARMER,
- SC_VACUUM_EXTREME,
- SC_PROPERTYWALK,
-
-
-
- SC_SWING,
- SC_SYMPHONY_LOVE,
- SC_MOONLIT_SERENADE,
- SC_RUSH_WINDMILL,
- SC_ECHOSONG,
- SC_HARMONIZE,
- SC_SIREN,
-
- SC_SIRCLEOFNATURE = 401,
- SC_GLOOMYDAY,
-
- SC_SONG_OF_MANA = 404,
- SC_DANCE_WITH_WUG,
- SC_SATURDAY_NIGHT_FEVER,
- SC_LERADS_DEW,
- SC_MELODYOFSINK,
- SC_BEYOND_OF_WARCRY,
- SC_UNLIMITED_HUMMING_VOICE,
- SC_SITDOWN_FORCE,
- SC_NETHERWORLD,
-
-
-
- SC_CRESCENTELBOW = 413,
- SC_CURSEDCIRCLE_ATKER,
- SC_CURSEDCIRCLE_TARGET,
- SC_LIGHTNINGWALK,
- SC_RAISINGDRAGON,
- SC_GENTLETOUCH_ENERGYGAIN,
- SC_GENTLETOUCH_CHANGE,
- SC_GENTLETOUCH_REVITALIZE,
-
-
-
- SC_GN_CARTBOOST,
- SC_THORNS_TRAP,
- SC_BLOOD_SUCKER,
- SC_FIRE_EXPANSION_SMOKE_POWDER,
- SC_FIRE_EXPANSION_TEAR_GAS,
- SC_MANDRAGORA,
- SC_STOMACHACHE,
- SC_MYSTERIOUS_POWDER,
- SC_MELON_BOMB,
- SC_BANANA_BOMB,
- SC_BANANA_BOMB_SITDOWN_POSTDELAY,
- SC_SAVAGE_STEAK,
- SC_COCKTAIL_WARG_BLOOD,
- SC_MINOR_BBQ,
- SC_SIROMA_ICE_TEA,
- SC_DROCERA_HERB_STEAMED,
- SC_PUTTI_TAILS_NOODLES,
- SC_BOOST500,
- SC_FULL_SWING_K,
- SC_MANA_PLUS,
- SC_MUSTLE_M,
- SC_LIFE_FORCE_F,
- SC_EXTRACT_WHITE_POTION_Z,
- SC_VITATA_500,
- SC_EXTRACT_SALAMINE_JUICE,
-
-
-
- SC__REPRODUCE,
- SC__AUTOSHADOWSPELL,
- SC__SHADOWFORM,
- SC__BODYPAINT,
- SC__INVISIBILITY,
- SC__DEADLYINFECT,
- SC__ENERVATION,
- SC__GROOMY,
- SC__IGNORANCE,
- SC__LAZINESS,
- SC__UNLUCKY,
- SC__WEAKNESS,
- SC__STRIPACCESSARY,
- SC__MANHOLE,
- SC__BLOODYLUST,
-
-
-
- SC_CIRCLE_OF_FIRE,
- SC_CIRCLE_OF_FIRE_OPTION,
- SC_FIRE_CLOAK,
- SC_FIRE_CLOAK_OPTION,
- SC_WATER_SCREEN,
- SC_WATER_SCREEN_OPTION,
- SC_WATER_DROP,
- SC_WATER_DROP_OPTION,
- SC_WATER_BARRIER,
- SC_WIND_STEP,
- SC_WIND_STEP_OPTION,
- SC_WIND_CURTAIN,
- SC_WIND_CURTAIN_OPTION,
- SC_ZEPHYR,
- SC_SOLID_SKIN,
- SC_SOLID_SKIN_OPTION,
- SC_STONE_SHIELD,
- SC_STONE_SHIELD_OPTION,
- SC_POWER_OF_GAIA,
- SC_PYROTECHNIC,
- SC_PYROTECHNIC_OPTION,
- SC_HEATER,
- SC_HEATER_OPTION,
- SC_TROPIC,
- SC_TROPIC_OPTION,
- SC_AQUAPLAY,
- SC_AQUAPLAY_OPTION,
- SC_COOLER,
- SC_COOLER_OPTION,
- SC_CHILLY_AIR,
- SC_CHILLY_AIR_OPTION,
- SC_GUST,
- SC_GUST_OPTION,
- SC_BLAST,
- SC_BLAST_OPTION,
- SC_WILD_STORM,
- SC_WILD_STORM_OPTION,
- SC_PETROLOGY,
- SC_PETROLOGY_OPTION,
- SC_CURSED_SOIL,
- SC_CURSED_SOIL_OPTION,
- SC_UPHEAVAL,
- SC_UPHEAVAL_OPTION,
- SC_TIDAL_WEAPON,
- SC_TIDAL_WEAPON_OPTION,
- SC_ROCK_CRUSHER,
- SC_ROCK_CRUSHER_ATK,
-
- SC_LEADERSHIP,
- SC_GLORYWOUNDS,
- SC_SOULCOLD,
- SC_HAWKEYES,
-
- SC_ODINS_POWER,
-
- SC_FIRE_INSIGNIA,
- SC_WATER_INSIGNIA,
- SC_WIND_INSIGNIA,
- SC_EARTH_INSIGNIA,
-
- SC_PUSH_CART,
-
- SC_SPELLBOOK1,
- SC_SPELLBOOK2,
- SC_SPELLBOOK3,
- SC_SPELLBOOK4,
- SC_SPELLBOOK5,
- SC_SPELLBOOK6,
-
-
-
-
- SC_SPELLBOOK7,
-
- SC_INCMHP,
- SC_INCMSP,
- SC_PARTYFLEE,
-
-
-
- SC_MEIKYOUSISUI,
- SC_KO_JYUMONJIKIRI,
- SC_KYOUGAKU,
- SC_IZAYOI,
- SC_ZENKAI,
- SC_KG_KAGEHUMI,
- SC_KYOMU,
- SC_KAGEMUSYA,
- SC_ZANGETSU,
- SC_GENSOU,
- SC_AKAITSUKI,
-
-
- SC_STYLE_CHANGE,
- SC_GOLDENE_FERSE,
- SC_ANGRIFFS_MODUS,
- SC_ERASER_CUTTER,
- SC_OVERED_BOOST,
- SC_LIGHT_OF_REGENE,
- SC_VOLCANIC_ASH,
- SC_GRANITIC_ARMOR,
- SC_MAGMA_FLOW,
- SC_PYROCLASTIC,
- SC_NEEDLE_OF_PARALYZE,
- SC_PAIN_KILLER,
-
- SC_EXTREMITYFIST2,
- SC_RAID,
-
- SC_DARKCROW = 553,
- SC_FULL_THROTTLE,
- SC_REBOUND,
- SC_UNLIMIT,
- SC_KINGS_GRACE,
- SC_TELEKINESIS_INTENSE,
- SC_OFFERTORIUM,
- SC_FRIGG_SONG,
-
- SC_ALL_RIDING,
- SC_HANBOK,
- SC_MONSTER_TRANSFORM,
- SC_ANGEL_PROTECT,
- SC_ILLUSIONDOPING,
-
- SC_MTF_ASPD,
- SC_MTF_RANGEATK,
- SC_MTF_MATK,
- SC_MTF_MLEATKED,
- SC_MTF_CRIDAMAGE,
-
- SC_MOONSTAR,
- SC_SUPER_STAR,
-
- SC_OKTOBERFEST,
- SC_STRANGELIGHTS,
- SC_DECORATION_OF_MUSIC,
-
- SC__MAELSTROM,
- SC__CHAOS,
-
- SC__FEINTBOMB_MASTER,
- SC_FALLENEMPIRE,
- SC_FLASHCOMBO,
-
-
- SC_DEFSET,
- SC_MDEFSET,
-
- SC_NO_SWITCH_EQUIP,
-
-
- SC_MTF_MHP,
- SC_MTF_MSP,
- SC_MTF_PUMPKIN,
- SC_MTF_HITFLEE,
-
- SC_LJOSALFAR,
- SC_MERMAID_LONGING,
-
- SC_ACARAJE,
- SC_TARGET_ASPD,
-
-
- SC_SKELSCROLL,
- SC_DISTRUCTIONSCROLL,
- SC_ROYALSCROLL,
- SC_IMMUNITYSCROLL,
- SC_MYSTICSCROLL,
- SC_BATTLESCROLL,
- SC_ARMORSCROLL,
- SC_FREYJASCROLL,
- SC_SOULSCROLL,
-
-
- SC_QUEST_BUFF1,
- SC_QUEST_BUFF2,
- SC_QUEST_BUFF3,
-
-
- SC_GEFFEN_MAGIC1,
- SC_GEFFEN_MAGIC2,
- SC_GEFFEN_MAGIC3,
- SC_FENRIR_CARD,
-
- SC_ATKER_ASPD,
- SC_ATKER_MOVESPEED,
- SC_FOOD_CRITICALSUCCESSVALUE,
- SC_CUP_OF_BOZA,
- SC_OVERLAPEXPUP,
- SC_MORA_BUFF,
-
-
- SC_MVPCARD_TAOGUNKA,
- SC_MVPCARD_MISTRESS,
- SC_MVPCARD_ORCHERO,
- SC_MVPCARD_ORCLORD,
-
- SC_HAT_EFFECT,
- SC_FLOWERSMOKE,
- SC_FSTONE,
- SC_HAPPINESS_STAR,
- SC_MAPLE_FALLS,
- SC_TIME_ACCESSORY,
- SC_MAGICAL_FEATHER,
- SC_BLOSSOM_FLUTTERING,
-
- SC_GM_BATTLE,
- SC_GM_BATTLE2,
- SC_2011RWC,
- SC_STR_SCROLL,
- SC_INT_SCROLL,
- SC_STEAMPACK,
- SC_MOVHASTE_POTION,
- SC_MOVESLOW_POTION,
- SC_BUCHEDENOEL,
- SC_PHI_DEMON,
- SC_PROMOTE_HEALTH_RESERCH,
- SC_ENERGY_DRINK_RESERCH,
- SC_MAGIC_CANDY,
- SC_M_LIFEPOTION,
- SC_G_LIFEPOTION,
- SC_MYSTICPOWDER,
-
- SC_MAX,
-} sc_type;
-
-
-enum si_type {
- SI_BLANK = -1,
-
- SI_PROVOKE = 0,
- SI_ENDURE = 1,
- SI_TWOHANDQUICKEN = 2,
- SI_CONCENTRATION = 3,
- SI_HIDING = 4,
- SI_CLOAKING = 5,
- SI_ENCHANTPOISON = 6,
- SI_POISONREACT = 7,
- SI_QUAGMIRE = 8,
- SI_ANGELUS = 9,
- SI_BLESSING = 10,
- SI_CRUCIS = 11,
- SI_INC_AGI = 12,
- SI_DEC_AGI = 13,
- SI_SLOWPOISON = 14,
- SI_IMPOSITIO = 15,
- SI_SUFFRAGIUM = 16,
- SI_ASPERSIO = 17,
- SI_BENEDICTIO = 18,
- SI_KYRIE = 19,
- SI_MAGNIFICAT = 20,
- SI_GLORIA = 21,
- SI_LEXAETERNA = 22,
- SI_ADRENALINE = 23,
- SI_WEAPONPERFECT = 24,
- SI_OVERTHRUST = 25,
- SI_MAXIMIZE = 26,
- SI_RIDING = 27,
- SI_FALCON = 28,
- SI_TRICKDEAD = 29,
- SI_SHOUT = 30,
- SI_ENERGYCOAT = 31,
- SI_BROKENARMOR = 32,
- SI_BROKENWEAPON = 33,
- SI_ILLUSION = 34,
- SI_WEIGHTOVER50 = 35,
- SI_WEIGHTOVER90 = 36,
- SI_ATTHASTE_POTION1 = 37,
- SI_ATTHASTE_POTION2 = 38,
- SI_ATTHASTE_POTION3 = 39,
- SI_ATTHASTE_INFINITY = 40,
- SI_MOVHASTE_POTION = 41,
- SI_MOVHASTE_INFINITY = 42,
-
-
- SI_ANKLESNARE = 45,
- SI_POSTDELAY = 46,
-
-
-
-
- SI_NOEQUIPWEAPON = 50,
- SI_NOEQUIPSHIELD = 51,
- SI_NOEQUIPARMOR = 52,
- SI_NOEQUIPHELM = 53,
- SI_PROTECTWEAPON = 54,
- SI_PROTECTSHIELD = 55,
- SI_PROTECTARMOR = 56,
- SI_PROTECTHELM = 57,
- SI_AUTOGUARD = 58,
- SI_REFLECTSHIELD = 59,
-
- SI_PROVIDENCE = 61,
- SI_DEFENDER = 62,
-
-
- SI_AUTOSPELL = 65,
-
-
- SI_SPEARQUICKEN = 68,
-# 923 "../../../server-code/src/map/status.h"
- SI_EXPLOSIONSPIRITS = 86,
- SI_STEELBODY = 87,
- SI_EXTREMITYFIST = 88,
-
- SI_PROPERTYFIRE = 90,
- SI_PROPERTYWATER = 91,
- SI_PROPERTYWIND = 92,
- SI_PROPERTYGROUND = 93,
-
- SI_STOP = 95,
-
- SI_PROPERTYUNDEAD = 97,
-
-
-
-
-
-
- SI_AURABLADE = 103,
- SI_PARRYING = 104,
- SI_LKCONCENTRATION = 105,
- SI_TENSIONRELAX = 106,
- SI_BERSERK = 107,
-
-
- SI_ASSUMPTIO = 110,
-
- SI_GROUNDMAGIC = 112,
- SI_MAGICPOWER = 113,
- SI_EDP = 114,
- SI_TRUESIGHT = 115,
- SI_WINDWALK = 116,
- SI_MELTDOWN = 117,
- SI_CARTBOOST = 118,
-
- SI_SWORDREJECT = 120,
- SI_MARIONETTE_MASTER = 121,
- SI_MARIONETTE = 122,
- SI_MOON = 123,
- SI_BLOODING = 124,
- SI_JOINTBEAT = 125,
-
-
-
-
- SI_PROTECTEXP = 130,
-
- SI_AUTOBERSERK = 132,
- SI_RUN = 133,
- SI_TING = 134,
- SI_STORMKICK_ON = 135,
- SI_STORMKICK_READY = 136,
- SI_DOWNKICK_ON = 137,
- SI_DOWNKICK_READY = 138,
- SI_TURNKICK_ON = 139,
- SI_TURNKICK_READY = 140,
- SI_COUNTER_ON = 141,
- SI_COUNTER_READY = 142,
- SI_DODGE_ON = 143,
- SI_DODGE_READY = 144,
- SI_STRUP = 145,
- SI_PROPERTYDARK = 146,
- SI_ADRENALINE2 = 147,
- SI_PROPERTYTELEKINESIS = 148,
- SI_SOULLINK = 149,
-
- SI_PLUSATTACKPOWER = 150,
- SI_PLUSMAGICPOWER = 151,
- SI_DEVIL1 = 152,
- SI_KAITE = 153,
-
-
- SI_KAIZEL = 156,
- SI_KAAHI = 157,
- SI_KAUPE = 158,
- SI_SMA_READY = 159,
- SI_SKE = 160,
- SI_ONEHANDQUICKEN = 161,
-
-
-
- SI_SG_SUN_WARM = 165,
-
-
-
- SI_SUN_COMFORT = 169,
- SI_MOON_COMFORT = 170,
- SI_STAR_COMFORT = 171,
-# 1020 "../../../server-code/src/map/status.h"
- SI_PRESERVE = 181,
- SI_INCSTR = 182,
-
- SI_CLAIRVOYANCE = 184,
- SI_MOVESLOW_POTION = 185,
- SI_DOUBLECASTING = 186,
-
- SI_OVERTHRUSTMAX = 188,
-
-
- SI_TAROTCARD = 191,
-
-
-
-
-
- SI_CR_SHRINK = 197,
- SI_WZ_SIGHTBLASTER = 198,
- SI_DC_WINKCHARM = 199,
-
- SI_RG_CCONFINE_M = 200,
- SI_RG_CCONFINE_S = 201,
-
- SI_GS_MADNESSCANCEL = 203,
- SI_GS_GATLINGFEVER = 204,
- SI_EARTHSCROLL = 205,
- SI_NJ_UTSUSEMI = 206,
- SI_NJ_BUNSINJYUTSU = 207,
- SI_NJ_NEN = 208,
- SI_GS_ADJUSTMENT = 209,
- SI_GS_ACCURACY = 210,
- SI_NJ_SUITON = 211,
-# 1081 "../../../server-code/src/map/status.h"
- SI_FOOD_STR = 241,
- SI_FOOD_AGI = 242,
- SI_FOOD_VIT = 243,
- SI_FOOD_DEX = 244,
- SI_FOOD_INT = 245,
- SI_FOOD_LUK = 246,
- SI_FOOD_BASICAVOIDANCE = 247,
- SI_FOOD_BASICHIT = 248,
- SI_FOOD_CRITICALSUCCESSVALUE = 249,
-
- SI_CASH_PLUSEXP = 250,
- SI_CASH_DEATHPENALTY = 251,
- SI_CASH_RECEIVEITEM = 252,
- SI_CASH_BOSS_ALARM = 253,
-# 1112 "../../../server-code/src/map/status.h"
- SI_FOOD_STR_CASH = 271,
- SI_FOOD_AGI_CASH = 272,
- SI_FOOD_VIT_CASH = 273,
- SI_FOOD_DEX_CASH = 274,
- SI_FOOD_INT_CASH = 275,
- SI_FOOD_LUK_CASH = 276,
- SI_MER_FLEE = 277,
- SI_MER_ATK = 278,
- SI_MER_HP = 279,
- SI_MER_SP = 280,
- SI_MER_HIT = 281,
- SI_SLOWCAST = 282,
-
-
-
- SI_CRITICALWOUND = 286,
-
-
- SI_MOVHASTE_HORSE = 289,
- SI_PROTECT_DEF = 290,
- SI_PROTECT_MDEF = 291,
- SI_HEALPLUS = 292,
- SI_S_LIFEPOTION = 293,
- SI_L_LIFEPOTION = 294,
- SI_CRITICALPERCENT = 295,
- SI_PLUSAVOIDVALUE = 296,
- SI_ATKER_ASPD = 297,
- SI_TARGET_ASPD = 298,
- SI_ATKER_MOVESPEED = 299,
-
- SI_ATKER_BLOOD = 300,
- SI_TARGET_BLOOD = 301,
- SI_ARMOR_PROPERTY = 302,
-
- SI_HELLPOWER = 304,
- SI_STEAMPACK = 305,
-
-
-
-
-
- SI_INVINCIBLE = 311,
- SI_CASH_PLUSONLYJOBEXP = 312,
- SI_PARTYFLEE = 313,
- SI_ANGEL_PROTECT = 314,
-
- SI_ENCHANTBLADE = 316,
- SI_DEATHBOUND = 317,
- SI_REFRESH = 318,
- SI_GIANTGROWTH = 319,
- SI_STONEHARDSKIN = 320,
- SI_VITALITYACTIVATION = 321,
- SI_FIGHTINGSPIRIT = 322,
- SI_ABUNDANCE = 323,
- SI_REUSE_MILLENNIUMSHIELD = 324,
- SI_REUSE_CRUSHSTRIKE = 325,
- SI_REUSE_REFRESH = 326,
- SI_REUSE_STORMBLAST = 327,
- SI_VENOMIMPRESS = 328,
- SI_EPICLESIS = 329,
- SI_ORATIO = 330,
- SI_LAUDAAGNUS = 331,
- SI_LAUDARAMUS = 332,
- SI_CLOAKINGEXCEED = 333,
- SI_HALLUCINATIONWALK = 334,
- SI_HALLUCINATIONWALK_POSTDELAY = 335,
- SI_RENOVATIO = 336,
- SI_WEAPONBLOCKING = 337,
- SI_WEAPONBLOCKING_POSTDELAY = 338,
- SI_ROLLINGCUTTER = 339,
- SI_EXPIATIO = 340,
- SI_POISONINGWEAPON = 341,
- SI_TOXIN = 342,
- SI_PARALYSE = 343,
- SI_VENOMBLEED = 344,
- SI_MAGICMUSHROOM = 345,
- SI_DEATHHURT = 346,
- SI_PYREXIA = 347,
- SI_OBLIVIONCURSE = 348,
- SI_LEECHESEND = 349,
-
- SI_DUPLELIGHT = 350,
- SI_FROSTMISTY = 351,
- SI_FEARBREEZE = 352,
- SI_ELECTRICSHOCKER = 353,
- SI_MARSHOFABYSS = 354,
- SI_RECOGNIZEDSPELL = 355,
- SI_STASIS = 356,
- SI_WUGRIDER = 357,
- SI_WUGDASH = 358,
- SI_WUGBITE = 359,
- SI_CAMOUFLAGE = 360,
- SI_ACCELERATION = 361,
- SI_HOVERING = 362,
- SI_SPHERE_1 = 363,
- SI_SPHERE_2 = 364,
- SI_SPHERE_3 = 365,
- SI_SPHERE_4 = 366,
- SI_SPHERE_5 = 367,
- SI_MVPCARD_TAOGUNKA = 368,
- SI_MVPCARD_MISTRESS = 369,
- SI_MVPCARD_ORCHERO = 370,
- SI_MVPCARD_ORCLORD = 371,
- SI_OVERHEAT_LIMITPOINT = 372,
- SI_OVERHEAT = 373,
- SI_SHAPESHIFT = 374,
- SI_INFRAREDSCAN = 375,
- SI_MAGNETICFIELD = 376,
- SI_NEUTRALBARRIER = 377,
- SI_NEUTRALBARRIER_MASTER = 378,
- SI_STEALTHFIELD = 379,
- SI_STEALTHFIELD_MASTER = 380,
- SI_MANU_ATK = 381,
- SI_MANU_DEF = 382,
- SI_SPL_ATK = 383,
- SI_SPL_DEF = 384,
- SI_REPRODUCE = 385,
- SI_MANU_MATK = 386,
- SI_SPL_MATK = 387,
- SI_STR_SCROLL = 388,
- SI_INT_SCROLL = 389,
- SI_LG_REFLECTDAMAGE = 390,
- SI_FORCEOFVANGUARD = 391,
- SI_BUCHEDENOEL = 392,
- SI_AUTOSHADOWSPELL = 393,
- SI_SHADOWFORM = 394,
- SI_RAID = 395,
- SI_SHIELDSPELL_DEF = 396,
- SI_SHIELDSPELL_MDEF = 397,
- SI_SHIELDSPELL_REF = 398,
- SI_BODYPAINT = 399,
-
- SI_EXEEDBREAK = 400,
- SI_ADORAMUS = 401,
- SI_PRESTIGE = 402,
- SI_INVISIBILITY = 403,
- SI_DEADLYINFECT = 404,
- SI_BANDING = 405,
- SI_EARTHDRIVE = 406,
- SI_INSPIRATION = 407,
- SI_ENERVATION = 408,
- SI_GROOMY = 409,
- SI_RAISINGDRAGON = 410,
- SI_IGNORANCE = 411,
- SI_LAZINESS = 412,
- SI_LIGHTNINGWALK = 413,
- SI_ACARAJE = 414,
- SI_UNLUCKY = 415,
- SI_CURSEDCIRCLE_ATKER = 416,
- SI_CURSEDCIRCLE_TARGET = 417,
- SI_WEAKNESS = 418,
- SI_CRESCENTELBOW = 419,
- SI_NOEQUIPACCESSARY = 420,
- SI_STRIPACCESSARY = 421,
- SI_MANHOLE = 422,
- SI_POPECOOKIE = 423,
- SI_FALLENEMPIRE = 424,
- SI_GENTLETOUCH_ENERGYGAIN = 425,
- SI_GENTLETOUCH_CHANGE = 426,
- SI_GENTLETOUCH_REVITALIZE = 427,
- SI_BLOODYLUST = 428,
- SI_SWINGDANCE = 429,
- SI_SYMPHONYOFLOVERS = 430,
- SI_PROPERTYWALK = 431,
- SI_SPELLFIST = 432,
- SI_NETHERWORLD = 433,
- SI_SIREN = 434,
- SI_DEEPSLEEP = 435,
- SI_SIRCLEOFNATURE = 436,
- SI_COLD = 437,
- SI_GLOOMYDAY = 438,
- SI_SONG_OF_MANA = 439,
- SI_CLOUDKILL = 440,
- SI_DANCEWITHWUG = 441,
- SI_RUSHWINDMILL = 442,
- SI_ECHOSONG = 443,
- SI_HARMONIZE = 444,
- SI_STRIKING = 445,
-
- SI_MOONLITSERENADE = 447,
- SI_SATURDAYNIGHTFEVER = 448,
- SI_SITDOWN_FORCE = 449,
-
- SI_ANALYZE = 450,
- SI_LERADSDEW = 451,
- SI_MELODYOFSINK = 452,
- SI_WARCRYOFBEYOND = 453,
- SI_UNLIMITEDHUMMINGVOICE = 454,
- SI_SPELLBOOK1 = 455,
- SI_SPELLBOOK2 = 456,
- SI_SPELLBOOK3 = 457,
- SI_FREEZE_SP = 458,
- SI_GN_TRAINING_SWORD = 459,
- SI_GN_REMODELING_CART = 460,
- SI_CARTSBOOST = 461,
- SI_FIXEDCASTINGTM_REDUCE = 462,
- SI_THORNTRAP = 463,
- SI_BLOODSUCKER = 464,
- SI_SPORE_EXPLOSION = 465,
- SI_DEMONIC_FIRE = 466,
- SI_FIRE_EXPANSION_SMOKE_POWDER = 467,
- SI_FIRE_EXPANSION_TEAR_GAS = 468,
- SI_BLOCKING_PLAY = 469,
- SI_MANDRAGORA = 470,
- SI_ACTIVATE = 471,
- SI_SECRAMENT = 472,
- SI_ASSUMPTIO2 = 473,
- SI_TK_SEVENWIND = 474,
- SI_LIMIT_ODINS_RECALL = 475,
- SI_STOMACHACHE = 476,
- SI_MYSTERIOUS_POWDER = 477,
- SI_MELON_BOMB = 478,
- SI_BANANA_BOMB_SITDOWN_POSTDELAY = 479,
- SI_PROMOTE_HEALTH_RESERCH = 480,
- SI_ENERGY_DRINK_RESERCH = 481,
- SI_EXTRACT_WHITE_POTION_Z = 482,
- SI_VITATA_500 = 483,
- SI_EXTRACT_SALAMINE_JUICE = 484,
- SI_BOOST500 = 485,
- SI_FULL_SWING_K = 486,
- SI_MANA_PLUS = 487,
- SI_MUSTLE_M = 488,
- SI_LIFE_FORCE_F = 489,
- SI_VACUUM_EXTREME = 490,
- SI_SAVAGE_STEAK = 491,
- SI_COCKTAIL_WARG_BLOOD = 492,
- SI_MINOR_BBQ = 493,
- SI_SIROMA_ICE_TEA = 494,
- SI_DROCERA_HERB_STEAMED = 495,
- SI_PUTTI_TAILS_NOODLES = 496,
- SI_BANANA_BOMB = 497,
- SI_SUMMON_AGNI = 498,
- SI_SPELLBOOK4 = 499,
-
- SI_SPELLBOOK5 = 500,
- SI_SPELLBOOK6 = 501,
- SI_SPELLBOOK7 = 502,
- SI_ELEMENTAL_AGGRESSIVE = 503,
- SI_RETURN_TO_ELDICASTES = 504,
- SI_BANDING_DEFENCE = 505,
- SI_SKELSCROLL = 506,
- SI_DISTRUCTIONSCROLL = 507,
- SI_ROYALSCROLL = 508,
- SI_IMMUNITYSCROLL = 509,
- SI_MYSTICSCROLL = 510,
- SI_BATTLESCROLL = 511,
- SI_ARMORSCROLL = 512,
- SI_FREYJASCROLL = 513,
- SI_SOULSCROLL = 514,
- SI_CIRCLE_OF_FIRE = 515,
- SI_CIRCLE_OF_FIRE_OPTION = 516,
- SI_FIRE_CLOAK = 517,
- SI_FIRE_CLOAK_OPTION = 518,
- SI_WATER_SCREEN = 519,
- SI_WATER_SCREEN_OPTION = 520,
- SI_WATER_DROP = 521,
- SI_WATER_DROP_OPTION = 522,
- SI_WIND_STEP = 523,
- SI_WIND_STEP_OPTION = 524,
- SI_WIND_CURTAIN = 525,
- SI_WIND_CURTAIN_OPTION = 526,
- SI_WATER_BARRIER = 527,
- SI_ZEPHYR = 528,
- SI_SOLID_SKIN = 529,
- SI_SOLID_SKIN_OPTION = 530,
- SI_STONE_SHIELD = 531,
- SI_STONE_SHIELD_OPTION = 532,
- SI_POWER_OF_GAIA = 533,
-
-
-
-
-
- SI_PYROTECHNIC = 539,
- SI_PYROTECHNIC_OPTION = 540,
- SI_HEATER = 541,
- SI_HEATER_OPTION = 542,
- SI_TROPIC = 543,
- SI_TROPIC_OPTION = 544,
- SI_AQUAPLAY = 545,
- SI_AQUAPLAY_OPTION = 546,
- SI_COOLER = 547,
- SI_COOLER_OPTION = 548,
- SI_CHILLY_AIR = 549,
-
- SI_CHILLY_AIR_OPTION = 550,
- SI_GUST = 551,
- SI_GUST_OPTION = 552,
- SI_BLAST = 553,
- SI_BLAST_OPTION = 554,
- SI_WILD_STORM = 555,
- SI_WILD_STORM_OPTION = 556,
- SI_PETROLOGY = 557,
- SI_PETROLOGY_OPTION = 558,
- SI_CURSED_SOIL = 559,
- SI_CURSED_SOIL_OPTION = 560,
- SI_UPHEAVAL = 561,
- SI_UPHEAVAL_OPTION = 562,
- SI_TIDAL_WEAPON = 563,
- SI_TIDAL_WEAPON_OPTION = 564,
- SI_ROCK_CRUSHER = 565,
- SI_ROCK_CRUSHER_ATK = 566,
- SI_FIRE_INSIGNIA = 567,
- SI_WATER_INSIGNIA = 568,
- SI_WIND_INSIGNIA = 569,
- SI_EARTH_INSIGNIA = 570,
- SI_EQUIPED_FLOOR = 571,
- SI_GUARDIAN_RECALL = 572,
- SI_MORA_BUFF = 573,
- SI_REUSE_LIMIT_G = 574,
- SI_REUSE_LIMIT_H = 575,
- SI_NEEDLE_OF_PARALYZE = 576,
- SI_PAIN_KILLER = 577,
- SI_G_LIFEPOTION = 578,
- SI_VITALIZE_POTION = 579,
- SI_LIGHT_OF_REGENE = 580,
- SI_OVERED_BOOST = 581,
- SI_SILENT_BREEZE = 582,
- SI_ODINS_POWER = 583,
- SI_STYLE_CHANGE = 584,
- SI_SONIC_CLAW_POSTDELAY = 585,
-# 1443 "../../../server-code/src/map/status.h"
- SI_SILVERVEIN_RUSH_POSTDELAY = 596,
- SI_MIDNIGHT_FRENZY_POSTDELAY = 597,
- SI_GOLDENE_FERSE = 598,
- SI_ANGRIFFS_MODUS = 599,
-
- SI_TINDER_BREAKER = 600,
- SI_TINDER_BREAKER_POSTDELAY = 601,
- SI_CBC = 602,
- SI_CBC_POSTDELAY = 603,
- SI_EQC = 604,
- SI_MAGMA_FLOW = 605,
- SI_GRANITIC_ARMOR = 606,
- SI_PYROCLASTIC = 607,
- SI_VOLCANIC_ASH = 608,
- SI_SPIRITS_SAVEINFO1 = 609,
- SI_SPIRITS_SAVEINFO2 = 610,
- SI_MAGIC_CANDY = 611,
- SI_SEARCH_STORE_INFO = 612,
- SI_ALL_RIDING = 613,
- SI_ALL_RIDING_REUSE_LIMIT = 614,
- SI_MACRO = 615,
- SI_MACRO_POSTDELAY = 616,
- SI_BEER_BOTTLE_CAP = 617,
- SI_OVERLAPEXPUP = 618,
- SI_PC_IZ_DUN05 = 619,
- SI_CRUSHSTRIKE = 620,
- SI_MONSTER_TRANSFORM = 621,
- SI_SIT = 622,
- SI_ONAIR = 623,
- SI_MTF_ASPD = 624,
- SI_MTF_RANGEATK = 625,
- SI_MTF_MATK = 626,
- SI_MTF_MLEATKED = 627,
- SI_MTF_CRIDAMAGE = 628,
- SI_REUSE_LIMIT_MTF = 629,
- SI_MACRO_PERMIT = 630,
- SI_MACRO_PLAY = 631,
- SI_SKF_CAST = 632,
- SI_SKF_ASPD = 633,
- SI_SKF_ATK = 634,
- SI_SKF_MATK = 635,
- SI_REWARD_PLUSONLYJOBEXP = 636,
- SI_HANDICAPSTATE_NORECOVER = 637,
- SI_SET_NUM_DEF = 638,
- SI_SET_NUM_MDEF = 639,
- SI_SET_PER_DEF = 640,
- SI_SET_PER_MDEF = 641,
- SI_PARTYBOOKING_SEARCH_DEALY = 642,
- SI_PARTYBOOKING_REGISTER_DEALY = 643,
- SI_PERIOD_TIME_CHECK_DETECT_SKILL = 644,
- SI_KO_JYUMONJIKIRI = 645,
- SI_MEIKYOUSISUI = 646,
- SI_ATTHASTE_CASH = 647,
- SI_EQUIPPED_DIVINE_ARMOR = 648,
- SI_EQUIPPED_HOLY_ARMOR = 649,
-
- SI_2011RWC = 650,
- SI_KYOUGAKU = 651,
- SI_IZAYOI = 652,
- SI_ZENKAI = 653,
- SI_KG_KAGEHUMI = 654,
- SI_KYOMU = 655,
- SI_KAGEMUSYA = 656,
- SI_ZANGETSU = 657,
- SI_PHI_DEMON = 658,
- SI_GENSOU = 659,
- SI_AKAITSUKI = 660,
- SI_TETANY = 661,
- SI_GM_BATTLE = 662,
- SI_GM_BATTLE2 = 663,
- SI_2011RWC_SCROLL = 664,
- SI_ACTIVE_MONSTER_TRANSFORM = 665,
- SI_MYSTICPOWDER = 666,
- SI_ECLAGE_RECALL = 667,
- SI_ENTRY_QUEUE_APPLY_DELAY = 668,
- SI_REUSE_LIMIT_ECL = 669,
- SI_M_LIFEPOTION = 670,
- SI_ENTRY_QUEUE_NOTIFY_ADMISSION_TIME_OUT = 671,
- SI_UNKNOWN_NAME = 672,
- SI_ON_PUSH_CART = 673,
- SI_HAT_EFFECT = 674,
- SI_FLOWER_LEAF = 675,
- SI_RAY_OF_PROTECTION = 676,
- SI_GLASTHEIM_ATK = 677,
- SI_GLASTHEIM_DEF = 678,
- SI_GLASTHEIM_HEAL = 679,
- SI_GLASTHEIM_HIDDEN = 680,
- SI_GLASTHEIM_STATE = 681,
- SI_GLASTHEIM_ITEMDEF = 682,
- SI_GLASTHEIM_HPSP = 683,
- SI_HOMUN_SKILL_POSTDELAY = 684,
- SI_ALMIGHTY = 685,
- SI_GVG_GIANT = 686,
- SI_GVG_GOLEM = 687,
- SI_GVG_STUN = 688,
- SI_GVG_STONE = 689,
- SI_GVG_FREEZ = 690,
- SI_GVG_SLEEP = 691,
- SI_GVG_CURSE = 692,
- SI_GVG_SILENCE = 693,
- SI_GVG_BLIND = 694,
- SI_CLIENT_ONLY_EQUIP_ARROW = 695,
- SI_CLAN_INFO = 696,
- SI_JP_EVENT01 = 697,
- SI_JP_EVENT02 = 698,
- SI_JP_EVENT03 = 699,
-
- SI_JP_EVENT04 = 700,
- SI_TELEPORT_FIXEDCASTINGDELAY = 701,
- SI_GEFFEN_MAGIC1 = 702,
- SI_GEFFEN_MAGIC2 = 703,
- SI_GEFFEN_MAGIC3 = 704,
- SI_QUEST_BUFF1 = 705,
- SI_QUEST_BUFF2 = 706,
- SI_QUEST_BUFF3 = 707,
- SI_REUSE_LIMIT_RECALL = 708,
- SI_SAVEPOSITION = 709,
- SI_HANDICAPSTATE_ICEEXPLO = 710,
- SI_FENRIR_CARD = 711,
- SI_REUSE_LIMIT_ASPD_POTION = 712,
- SI_MAXPAIN = 713,
- SI_PC_STOP = 714,
- SI_FRIGG_SONG = 715,
- SI_OFFERTORIUM = 716,
- SI_TELEKINESIS_INTENSE = 717,
- SI_MOONSTAR = 718,
- SI_STRANGELIGHTS = 719,
- SI_FULL_THROTTLE = 720,
- SI_REBOUND = 721,
- SI_UNLIMIT = 722,
- SI_KINGS_GRACE = 723,
- SI_ITEM_ATKMAX = 724,
- SI_ITEM_ATKMIN = 725,
- SI_ITEM_MATKMAX = 726,
- SI_ITEM_MATKMIN = 727,
- SI_SUPER_STAR = 728,
- SI_HIGH_RANKER = 729,
- SI_DARKCROW = 730,
- SI_2013_VALENTINE1 = 731,
- SI_2013_VALENTINE2 = 732,
- SI_2013_VALENTINE3 = 733,
- SI_ILLUSIONDOPING = 734,
-
- SI_CHILL = 736,
- SI_BURNT = 737,
-
-
- SI_FLASHCOMBO = 740,
-# 1602 "../../../server-code/src/map/status.h"
- SI_CUP_OF_BOZA = 751,
- SI_B_TRAP = 752,
- SI_E_CHAIN = 753,
- SI_E_QD_SHOT_READY = 754,
- SI_C_MARKER = 755,
- SI_H_MINE = 756,
- SI_H_MINE_SPLASH = 757,
- SI_P_ALTER = 758,
- SI_HEAT_BARREL = 759,
- SI_ANTI_M_BLAST = 760,
- SI_SLUGSHOT = 761,
- SI_SWORDCLAN = 762,
- SI_ARCWANDCLAN = 763,
- SI_GOLDENMACECLAN = 764,
- SI_CROSSBOWCLAN = 765,
- SI_PACKING_ENVELOPE1 = 766,
- SI_PACKING_ENVELOPE2 = 767,
- SI_PACKING_ENVELOPE3 = 768,
- SI_PACKING_ENVELOPE4 = 769,
- SI_PACKING_ENVELOPE5 = 770,
- SI_PACKING_ENVELOPE6 = 771,
- SI_PACKING_ENVELOPE7 = 772,
- SI_PACKING_ENVELOPE8 = 773,
- SI_PACKING_ENVELOPE9 = 774,
- SI_PACKING_ENVELOPE10 = 775,
- SI_GLASTHEIM_TRANS = 776,
-
- SI_HEAT_BARREL_AFTER = 778,
- SI_DECORATION_OF_MUSIC = 779,
-# 1644 "../../../server-code/src/map/status.h"
- SI_MTF_MHP = 793,
- SI_MTF_MSP = 794,
- SI_MTF_PUMPKIN = 795,
- SI_MTF_HITFLEE = 796,
-# 1674 "../../../server-code/src/map/status.h"
- SI_FLOWERSMOKE = 822,
- SI_FSTONE = 823,
-
-
- SI_LJOSALFAR = 826,
-# 1701 "../../../server-code/src/map/status.h"
- SI_HAPPINESS_STAR = 849,
-# 1710 "../../../server-code/src/map/status.h"
- SI_MAPLE_FALLS = 857,
-
-
-
-
-
- SI_MERMAID_LONGING = 863,
- SI_MAGICAL_FEATHER = 864,
-
-
-
-
-
-
-
- SI_TIME_ACCESSORY = 872,
-# 1748 "../../../server-code/src/map/status.h"
- SI_BLOSSOM_FLUTTERING = 895,
-# 1796 "../../../server-code/src/map/status.h"
- SI_MAX,
-};
-
-
-enum e_joint_break
-{
- BREAK_ANKLE = 0x01,
- BREAK_WRIST = 0x02,
- BREAK_KNEE = 0x04,
- BREAK_SHOULDER = 0x08,
- BREAK_WAIST = 0x10,
- BREAK_NECK = 0x20,
- BREAK_FLAGS = BREAK_ANKLE | BREAK_WRIST | BREAK_KNEE | BREAK_SHOULDER | BREAK_WAIST | BREAK_NECK,
-};
-
-
-
-
-
-
-enum e_mode
-{
- MD_NONE = 0x00000000,
- MD_CANMOVE = 0x00000001,
- MD_LOOTER = 0x00000002,
- MD_AGGRESSIVE = 0x00000004,
- MD_ASSIST = 0x00000008,
- MD_CASTSENSOR_IDLE = 0x00000010,
- MD_BOSS = 0x00000020,
- MD_PLANT = 0x00000040,
- MD_CANATTACK = 0x00000080,
- MD_DETECTOR = 0x00000100,
- MD_CASTSENSOR_CHASE = 0x00000200,
- MD_CHANGECHASE = 0x00000400,
- MD_ANGRY = 0x00000800,
- MD_CHANGETARGET_MELEE = 0x00001000,
- MD_CHANGETARGET_CHASE = 0x00002000,
- MD_TARGETWEAK = 0x00004000,
- MD_NOKNOCKBACK = 0x00008000,
-
-
- MD_MASK = 0x7FFFFFFF,
-};
-
-
-
-
-
-enum {
- OPT1_STONE = 1,
- OPT1_FREEZE,
- OPT1_STUN,
- OPT1_SLEEP,
-
- OPT1_STONEWAIT=6,
- OPT1_BURNING,
- OPT1_IMPRISON,
- OPT1_CRYSTALIZE,
-};
-
-
-enum {
- OPT2_POISON = 0x0001,
- OPT2_CURSE = 0x0002,
- OPT2_SILENCE = 0x0004,
- OPT2_SIGNUMCRUCIS = 0x0008,
- OPT2_BLIND = 0x0010,
- OPT2_ANGELUS = 0x0020,
- OPT2_BLEEDING = 0x0040,
- OPT2_DPOISON = 0x0080,
- OPT2_FEAR = 0x0100,
-};
-
-
-enum {
- OPT3_NORMAL = 0x00000000,
- OPT3_QUICKEN = 0x00000001,
- OPT3_OVERTHRUST = 0x00000002,
- OPT3_ENERGYCOAT = 0x00000004,
- OPT3_EXPLOSIONSPIRITS = 0x00000008,
- OPT3_STEELBODY = 0x00000010,
- OPT3_BLADESTOP = 0x00000020,
- OPT3_AURABLADE = 0x00000040,
- OPT3_BERSERK = 0x00000080,
- OPT3_LIGHTBLADE = 0x00000100,
- OPT3_MOONLIT = 0x00000200,
- OPT3_MARIONETTE = 0x00000400,
- OPT3_ASSUMPTIO = 0x00000800,
- OPT3_WARM = 0x00001000,
- OPT3_KAITE = 0x00002000,
- OPT3_BUNSIN = 0x00004000,
- OPT3_SOULLINK = 0x00008000,
- OPT3_UNDEAD = 0x00010000,
- OPT3_CONTRACT = 0x00020000,
-};
-
-
-enum manner_flags
-{
- MANNER_NOCHAT = 0x01,
- MANNER_NOSKILL = 0x02,
- MANNER_NOCOMMAND = 0x04,
- MANNER_NOITEM = 0x08,
- MANNER_NOROOM = 0x10,
-};
-
-
-enum scb_flag
-{
- SCB_NONE = 0x00000000,
- SCB_BASE = 0x00000001,
- SCB_MAXHP = 0x00000002,
- SCB_MAXSP = 0x00000004,
- SCB_STR = 0x00000008,
- SCB_AGI = 0x00000010,
- SCB_VIT = 0x00000020,
- SCB_INT = 0x00000040,
- SCB_DEX = 0x00000080,
- SCB_LUK = 0x00000100,
- SCB_BATK = 0x00000200,
- SCB_WATK = 0x00000400,
- SCB_MATK = 0x00000800,
- SCB_HIT = 0x00001000,
- SCB_FLEE = 0x00002000,
- SCB_DEF = 0x00004000,
- SCB_DEF2 = 0x00008000,
- SCB_MDEF = 0x00010000,
- SCB_MDEF2 = 0x00020000,
- SCB_SPEED = 0x00040000,
- SCB_ASPD = 0x00080000,
- SCB_DSPD = 0x00100000,
- SCB_CRI = 0x00200000,
- SCB_FLEE2 = 0x00400000,
- SCB_ATK_ELE = 0x00800000,
- SCB_DEF_ELE = 0x01000000,
- SCB_MODE = 0x02000000,
- SCB_SIZE = 0x04000000,
- SCB_RACE = 0x08000000,
- SCB_RANGE = 0x10000000,
- SCB_REGEN = 0x20000000,
- SCB_DYE = 0x40000000,
-
-
-
-
- SCB_BATTLE = 0x3FFFFFFE,
- SCB_ALL = 0x3FFFFFFF
-};
-
-
-enum e_regen {
- RGN_HP = 0x01,
- RGN_SP = 0x02,
- RGN_SHP = 0x04,
- RGN_SSP = 0x08,
-};
-
-enum e_status_calc_opt {
- SCO_NONE = 0x0,
- SCO_FIRST = 0x1,
- SCO_FORCE = 0x2,
-};
-# 1969 "../../../server-code/src/map/status.h"
-typedef struct weapon_atk {
- unsigned short atk, atk2;
- unsigned short range;
- unsigned char ele;
-
- unsigned short matk;
- unsigned char wlv;
-
-} weapon_atk;
-
-
-struct status_data {
- unsigned int
- hp, sp,
- max_hp, max_sp;
- unsigned short
- str, agi, vit, int_, dex, luk,
- batk,
- matk_min, matk_max,
- speed,
- amotion, adelay, dmotion;
- uint32 mode;
- short
- hit, flee, cri, flee2,
- def2, mdef2,
-
- aspd_rate2,
-
- aspd_rate;
-
-
-
- defType def,mdef;
-
- unsigned char
- def_ele, ele_lv,
- size, race;
-
- struct weapon_atk rhw, lhw;
-
- int equip_atk;
-
-};
-
-
-struct regen_data_sub {
- unsigned short
- hp,sp;
-
-
- struct {
- unsigned int hp,sp;
- } tick;
-
-
- struct {
- unsigned char hp,sp;
- } rate;
-};
-
-struct regen_data {
-
- unsigned short flag;
- unsigned short
- hp,sp,shp,ssp;
-
-
- struct {
- unsigned int hp,sp,shp,ssp;
- } tick;
-
-
- struct {
- unsigned char
- hp,sp,shp,ssp;
- } rate;
-
- struct {
- unsigned walk:1;
- unsigned gc:1;
- unsigned overweight :2;
- unsigned block :2;
- } state;
-
-
- struct regen_data_sub *sregen, *ssregen;
-};
-
-struct sc_display_entry {
- enum sc_type type;
- int val1,val2,val3;
-};
-
-struct status_change_entry {
- int timer;
- int val1,val2,val3,val4;
-
-# 2065 "../../../server-code/src/map/status.h" 3 4
-_Bool
-# 2065 "../../../server-code/src/map/status.h"
- infinite_duration;
-};
-
-struct status_change {
- unsigned int option;
- unsigned int opt3;
- unsigned short opt1;
- unsigned short opt2;
- unsigned char count;
-
- unsigned char jb_flag;
-
- short comet_x, comet_y;
-
-
-
-
-
-
- unsigned char bs_counter;
- unsigned char fv_counter;
- struct status_change_entry *data[SC_MAX];
-};
-# 2154 "../../../server-code/src/map/status.h"
-struct s_refine_info {
- int chance[20];
- int bonus[20];
- int randombonus_max[20];
-};
-
-struct s_status_dbs {
-int8 HERC__zeroed_block_BEGIN;
- int max_weight_base[(JOB_MAX - JOB_NOVICE_HIGH + JOB_MAX_BASIC)];
- int HP_table[(JOB_MAX - JOB_NOVICE_HIGH + JOB_MAX_BASIC)][175 + 1];
- int SP_table[(JOB_MAX - JOB_NOVICE_HIGH + JOB_MAX_BASIC)][175 + 1];
- int aspd_base[(JOB_MAX - JOB_NOVICE_HIGH + JOB_MAX_BASIC)][MAX_SINGLE_WEAPON_TYPE+1];
- sc_type Skill2SCTable[1478];
- int IconChangeTable[SC_MAX];
- unsigned int ChangeFlagTable[SC_MAX];
- int SkillChangeTable[SC_MAX];
- int RelevantBLTypes[SI_MAX];
-
-# 2171 "../../../server-code/src/map/status.h" 3 4
-_Bool
-# 2171 "../../../server-code/src/map/status.h"
- DisplayType[SC_MAX];
-
- struct s_refine_info refine_info[REFINE_TYPE_MAX];
-
- int atkmods[3][MAX_SINGLE_WEAPON_TYPE];
- char job_bonus[(JOB_MAX - JOB_NOVICE_HIGH + JOB_MAX_BASIC)][175];
- sc_conf_type sc_conf[SC_MAX];
-int8 HERC__zeroed_block_END;
-};
-
-
-
-
-
-
-struct status_interface {
-
-
- int current_equip_item_index;
- int current_equip_card_id;
-
- struct s_status_dbs *dbs;
-
- struct eri *data_ers;
- struct status_data dummy;
- int64 natural_heal_prev_tick;
- unsigned int natural_heal_diff_tick;
-
- int (*init) (
-# 2199 "../../../server-code/src/map/status.h" 3 4
- _Bool
-# 2199 "../../../server-code/src/map/status.h"
- minimal);
- void (*final) (void);
-
- int (*get_refine_chance) (enum refine_type wlv, int refine);
-
- sc_type (*skill2sc) (int skill_id);
- int (*sc2skill) (sc_type sc);
- unsigned int (*sc2scb_flag) (sc_type sc);
- int (*type2relevant_bl_types) (int type);
- int (*get_sc_type) (sc_type idx);
- int (*damage) (struct block_list *src,struct block_list *target,int64 hp,int64 sp, int walkdelay, int flag);
-
- int (*charge) (struct block_list* bl, int64 hp, int64 sp);
- int (*percent_change) (struct block_list *src,struct block_list *target,signed char hp_rate, signed char sp_rate, int flag);
-
- int (*set_hp) (struct block_list *bl, unsigned int hp, int flag);
- int (*set_sp) (struct block_list *bl, unsigned int sp, int flag);
- int (*heal) (struct block_list *bl,int64 hp,int64 sp, int flag);
- int (*revive) (struct block_list *bl, unsigned char per_hp, unsigned char per_sp);
- int (*fixed_revive) (struct block_list *bl, unsigned int per_hp, unsigned int per_sp);
- struct regen_data * (*get_regen_data) (struct block_list *bl);
- struct status_data * (*get_status_data) (struct block_list *bl);
- struct status_data * (*get_base_status) (struct block_list *bl);
- const char *(*get_name) (const struct block_list *bl);
- int (*get_class) (const struct block_list *bl);
- int (*get_lv) (const struct block_list *bl);
- defType (*get_def) (struct block_list *bl);
- unsigned short (*get_speed) (struct block_list *bl);
- unsigned char (*calc_attack_element) (struct block_list *bl, struct status_change *sc, int element);
- int (*get_party_id) (const struct block_list *bl);
- int (*get_guild_id) (const struct block_list *bl);
- int (*get_emblem_id) (const struct block_list *bl);
- int (*get_mexp) (const struct block_list *bl);
- int (*get_race2) (const struct block_list *bl);
- struct view_data * (*get_viewdata) (struct block_list *bl);
- void (*set_viewdata) (struct block_list *bl, int class_);
- void (*change_init) (struct block_list *bl);
- struct status_change * (*get_sc) (struct block_list *bl);
- int (*isdead) (struct block_list *bl);
- int (*isimmune) (struct block_list *bl);
- int (*get_sc_def) (struct block_list *src, struct block_list *bl, enum sc_type type, int rate, int tick, int flag);
- int (*change_start) (struct block_list *src, struct block_list *bl, enum sc_type type, int rate, int val1, int val2, int val3, int val4, int tick, int flag);
- int (*change_end_) (struct block_list* bl, enum sc_type type, int tid, const char* file, int line);
- int (*kaahi_heal_timer) (int tid, int64 tick, int id, intptr_t data);
- int (*change_timer) (int tid, int64 tick, int id, intptr_t data);
- int (*change_timer_sub) (struct block_list* bl, va_list ap);
- int (*change_clear) (struct block_list* bl, int type);
- int (*change_clear_buffs) (struct block_list* bl, int type);
- void (*calc_bl_) (struct block_list *bl, enum scb_flag flag, enum e_status_calc_opt opt);
- int (*calc_mob_) (struct mob_data* md, enum e_status_calc_opt opt);
- int (*calc_pet_) (struct pet_data* pd, enum e_status_calc_opt opt);
- int (*calc_pc_) (struct map_session_data* sd, enum e_status_calc_opt opt);
- void (*calc_pc_additional) (struct map_session_data* sd, enum e_status_calc_opt opt);
- int (*calc_homunculus_) (struct homun_data *hd, enum e_status_calc_opt opt);
- int (*calc_mercenary_) (struct mercenary_data *md, enum e_status_calc_opt opt);
- int (*calc_elemental_) (struct elemental_data *ed, enum e_status_calc_opt opt);
- void (*calc_misc) (struct block_list *bl, struct status_data *st, int level);
- void (*calc_regen) (struct block_list *bl, struct status_data *st, struct regen_data *regen);
- void (*calc_regen_rate) (struct block_list *bl, struct regen_data *regen, struct status_change *sc);
- int (*check_skilluse) (struct block_list *src, struct block_list *target, uint16 skill_id, int flag);
- int (*check_visibility) (struct block_list *src, struct block_list *target);
- int (*change_spread) (struct block_list *src, struct block_list *bl);
- defType (*calc_def) (struct block_list *bl, struct status_change *sc, int def,
-# 2261 "../../../server-code/src/map/status.h" 3 4
- _Bool
-# 2261 "../../../server-code/src/map/status.h"
- viewable);
- short (*calc_def2) (struct block_list *bl, struct status_change *sc, int def2,
-# 2262 "../../../server-code/src/map/status.h" 3 4
- _Bool
-# 2262 "../../../server-code/src/map/status.h"
- viewable);
- defType (*calc_mdef) (struct block_list *bl, struct status_change *sc, int mdef,
-# 2263 "../../../server-code/src/map/status.h" 3 4
- _Bool
-# 2263 "../../../server-code/src/map/status.h"
- viewable);
- short (*calc_mdef2) (struct block_list *bl, struct status_change *sc, int mdef2,
-# 2264 "../../../server-code/src/map/status.h" 3 4
- _Bool
-# 2264 "../../../server-code/src/map/status.h"
- viewable);
- unsigned short (*calc_batk)(struct block_list *bl, struct status_change *sc, int batk,
-# 2265 "../../../server-code/src/map/status.h" 3 4
- _Bool
-# 2265 "../../../server-code/src/map/status.h"
- viewable);
- unsigned short(*base_matk) (struct block_list *bl, const struct status_data *st, int level);
- int (*get_weapon_atk) (struct block_list *src, struct weapon_atk *watk, int flag);
- int (*get_total_mdef) (struct block_list *src);
- int (*get_total_def) (struct block_list *src);
- int (*get_matk) (struct block_list *src, int flag);
- void (*update_matk) ( struct block_list *bl );
- int (*readdb) (void);
-
- void (*initChangeTables) (void);
- void (*initDummyData) (void);
- int (*base_amotion_pc) (struct map_session_data *sd, struct status_data *st);
- unsigned short (*base_atk) (const struct block_list *bl, const struct status_data *st);
- unsigned int (*get_base_maxhp) (const struct map_session_data *sd, const struct status_data *st);
- unsigned int (*get_base_maxsp) (const struct map_session_data *sd, const struct status_data *st);
- int (*calc_npc_) (struct npc_data *nd, enum e_status_calc_opt opt);
- unsigned short (*calc_str) (struct block_list *bl, struct status_change *sc, int str);
- unsigned short (*calc_agi) (struct block_list *bl, struct status_change *sc, int agi);
- unsigned short (*calc_vit) (struct block_list *bl, struct status_change *sc, int vit);
- unsigned short (*calc_int) (struct block_list *bl, struct status_change *sc, int int_);
- unsigned short (*calc_dex) (struct block_list *bl, struct status_change *sc, int dex);
- unsigned short (*calc_luk) (struct block_list *bl, struct status_change *sc, int luk);
- unsigned short (*calc_watk) (struct block_list *bl, struct status_change *sc, int watk,
-# 2287 "../../../server-code/src/map/status.h" 3 4
- _Bool
-# 2287 "../../../server-code/src/map/status.h"
- viewable);
- unsigned short (*calc_matk) (struct block_list *bl, struct status_change *sc, int matk,
-# 2288 "../../../server-code/src/map/status.h" 3 4
- _Bool
-# 2288 "../../../server-code/src/map/status.h"
- viewable);
- signed short (*calc_hit) (struct block_list *bl, struct status_change *sc, int hit,
-# 2289 "../../../server-code/src/map/status.h" 3 4
- _Bool
-# 2289 "../../../server-code/src/map/status.h"
- viewable);
- signed short (*calc_critical) (struct block_list *bl, struct status_change *sc, int critical,
-# 2290 "../../../server-code/src/map/status.h" 3 4
- _Bool
-# 2290 "../../../server-code/src/map/status.h"
- viewable);
- signed short (*calc_flee) (struct block_list *bl, struct status_change *sc, int flee,
-# 2291 "../../../server-code/src/map/status.h" 3 4
- _Bool
-# 2291 "../../../server-code/src/map/status.h"
- viewable);
- signed short (*calc_flee2) (struct block_list *bl, struct status_change *sc, int flee2,
-# 2292 "../../../server-code/src/map/status.h" 3 4
- _Bool
-# 2292 "../../../server-code/src/map/status.h"
- viewable);
- unsigned short (*calc_speed) (struct block_list *bl, struct status_change *sc, int speed);
- short (*calc_aspd_rate) (struct block_list *bl, struct status_change *sc, int aspd_rate);
- unsigned short (*calc_dmotion) (struct block_list *bl, struct status_change *sc, int dmotion);
- short (*calc_aspd) (struct block_list *bl, struct status_change *sc, short flag);
- short (*calc_fix_aspd) (struct block_list *bl, struct status_change *sc, int aspd);
- unsigned int (*calc_maxhp) (struct block_list *bl, struct status_change *sc, uint64 maxhp);
- unsigned int (*calc_maxsp) (struct block_list *bl, struct status_change *sc, unsigned int maxsp);
- unsigned char (*calc_element) (struct block_list *bl, struct status_change *sc, int element);
- unsigned char (*calc_element_lv) (struct block_list *bl, struct status_change *sc, int lv);
- uint32 (*calc_mode) (const struct block_list *bl, const struct status_change *sc, uint32 mode);
- unsigned short (*calc_ematk) (struct block_list *bl, struct status_change *sc, int matk);
- void (*calc_bl_main) (struct block_list *bl, int flag);
- void (*display_add) (struct map_session_data *sd, enum sc_type type, int dval1, int dval2, int dval3);
- void (*display_remove) (struct map_session_data *sd, enum sc_type type);
- int (*natural_heal) (struct block_list *bl, va_list args);
- int (*natural_heal_timer) (int tid, int64 tick, int id, intptr_t data);
-
-# 2309 "../../../server-code/src/map/status.h" 3 4
-_Bool
-# 2309 "../../../server-code/src/map/status.h"
- (*readdb_job2) (char *fields[], int columns, int current);
-
-# 2310 "../../../server-code/src/map/status.h" 3 4
-_Bool
-# 2310 "../../../server-code/src/map/status.h"
- (*readdb_sizefix) (char *fields[], int columns, int current);
- int (*readdb_refine_libconfig) (const char *filename);
- int (*readdb_refine_libconfig_sub) (struct config_setting_t *r, const char *name, const char *source);
-
-# 2313 "../../../server-code/src/map/status.h" 3 4
-_Bool
-# 2313 "../../../server-code/src/map/status.h"
- (*readdb_scconfig) (char *fields[], int columns, int current);
- void (*read_job_db) (void);
- void (*read_job_db_sub) (int idx, const char *name, struct config_setting_t *jdb);
-};
-
-
-void status_defaults(void);
-
-
-extern struct status_interface *status;
-# 25 "../../../server-code/src/map/elemental.h" 2
-# 1 "../../../server-code/src/map/unit.h" 1
-# 24 "../../../server-code/src/map/unit.h"
-# 1 "../../../server-code/src/map/clif.h" 1
-# 25 "../../../server-code/src/map/unit.h" 2
-# 1 "../../../server-code/src/map/path.h" 1
-# 32 "../../../server-code/src/map/path.h"
-struct walkpath_data {
- unsigned char path_len,path_pos;
- unsigned char path[32];
-};
-
-struct shootpath_data {
- int rx,ry,len;
- int x[32];
- int y[32];
-};
-# 59 "../../../server-code/src/map/path.h"
-struct path_interface {
-
- int (*blownpos) (struct block_list *bl, int16 m, int16 x0, int16 y0, int16 dx, int16 dy, int count);
-
-
-# 63 "../../../server-code/src/map/path.h" 3 4
-_Bool
-# 63 "../../../server-code/src/map/path.h"
- (*search) (struct walkpath_data *wpd, struct block_list *bl, int16 m, int16 x0, int16 y0, int16 x1, int16 y1, int flag, cell_chk cell);
-
-
-# 65 "../../../server-code/src/map/path.h" 3 4
-_Bool
-# 65 "../../../server-code/src/map/path.h"
- (*search_long) (struct shootpath_data *spd, struct block_list *bl, int16 m, int16 x0, int16 y0, int16 x1, int16 y1, cell_chk cell);
-
-# 66 "../../../server-code/src/map/path.h" 3 4
-_Bool
-# 66 "../../../server-code/src/map/path.h"
- (*check_distance) (int dx, int dy, int distance);
- unsigned int (*distance) (int dx, int dy);
-
-# 68 "../../../server-code/src/map/path.h" 3 4
-_Bool
-# 68 "../../../server-code/src/map/path.h"
- (*check_distance_client) (int dx, int dy, int distance);
- int (*distance_client) (int dx, int dy);
-};
-
-
-void path_defaults(void);
-
-
-extern struct path_interface *path;
-# 26 "../../../server-code/src/map/unit.h" 2
-# 1 "../../../server-code/src/map/skill.h" 1
-# 33 "../../../server-code/src/map/skill.h"
-struct Damage;
-struct homun_data;
-struct itemlist;
-struct map_session_data;
-struct mercenary_data;
-struct unit_data;
-struct skill_unit;
-struct square;
-struct status_change_entry;
-# 79 "../../../server-code/src/map/skill.h"
-enum e_skill_inf {
- INF_ATTACK_SKILL = 0x01,
- INF_GROUND_SKILL = 0x02,
- INF_SELF_SKILL = 0x04,
-
- INF_SUPPORT_SKILL = 0x10,
- INF_TARGET_TRAP = 0x20,
-};
-
-
-
-
-enum e_skill_nk {
- NK_NO_DAMAGE = 0x01,
- NK_SPLASH = 0x02|0x04,
- NK_SPLASHSPLIT = 0x04,
- NK_NO_CARDFIX_ATK = 0x08,
- NK_NO_ELEFIX = 0x10,
- NK_IGNORE_DEF = 0x20,
- NK_IGNORE_FLEE = 0x40,
- NK_NO_CARDFIX_DEF = 0x80,
-};
-
-
-
-enum e_skill_inf2 {
- INF2_QUEST_SKILL = 0x0001,
- INF2_NPC_SKILL = 0x0002,
- INF2_WEDDING_SKILL = 0x0004,
- INF2_SPIRIT_SKILL = 0x0008,
- INF2_GUILD_SKILL = 0x0010,
- INF2_SONG_DANCE = 0x0020,
- INF2_ENSEMBLE_SKILL = 0x0040,
- INF2_TRAP = 0x0080,
- INF2_TARGET_SELF = 0x0100,
- INF2_NO_TARGET_SELF = 0x0200,
- INF2_PARTY_ONLY = 0x0400,
- INF2_GUILD_ONLY = 0x0800,
- INF2_NO_ENEMY = 0x1000,
- INF2_NOLP = 0x2000,
- INF2_CHORUS_SKILL = 0x4000,
-};
-
-
-
-enum e_skill_display {
- SD_LEVEL = 0x1000,
- SD_ANIMATION = 0x2000,
- SD_SPLASH = 0x4000,
- SD_PREAMBLE = 0x8000,
-};
-
-enum {
- UF_DEFNOTENEMY = 0x0001,
- UF_NOREITERATION = 0x0002,
- UF_NOFOOTSET = 0x0004,
- UF_NOOVERLAP = 0x0008,
- UF_PATHCHECK = 0x0010,
- UF_NOPC = 0x0020,
- UF_NOMOB = 0x0040,
- UF_SKILL = 0x0080,
- UF_DANCE = 0x0100,
- UF_ENSEMBLE = 0x0200,
- UF_SONG = 0x0400,
- UF_DUALMODE = 0x0800,
- UF_RANGEDSINGLEUNIT = 0x2000,
-};
-
-
-enum { CAST_GROUND, CAST_DAMAGE, CAST_NODAMAGE };
-
-enum wl_spheres {
- WLS_FIRE = 0x44,
- WLS_WIND,
- WLS_WATER,
- WLS_STONE,
-};
-
-enum {
- ST_NONE,
- ST_HIDING,
- ST_CLOAKING,
- ST_HIDDEN,
- ST_RIDING,
- ST_FALCON,
- ST_CART,
- ST_SHIELD,
- ST_SIGHT,
- ST_EXPLOSIONSPIRITS,
- ST_CARTBOOST,
- ST_RECOV_WEIGHT_RATE,
- ST_MOVE_ENABLE,
- ST_WATER,
- ST_RIDINGDRAGON,
- ST_WUG,
- ST_RIDINGWUG,
- ST_MADO,
- ST_ELEMENTALSPIRIT,
- ST_POISONINGWEAPON,
- ST_ROLLINGCUTTER,
- ST_MH_FIGHTING,
- ST_MH_GRAPPLING,
- ST_PECO,
-};
-
-enum e_skill {
- NV_BASIC = 1,
-
- SM_SWORD,
- SM_TWOHAND,
- SM_RECOVERY,
- SM_BASH,
- SM_PROVOKE,
- SM_MAGNUM,
- SM_ENDURE,
-
- MG_SRECOVERY,
- MG_SIGHT,
- MG_NAPALMBEAT,
- MG_SAFETYWALL,
- MG_SOULSTRIKE,
- MG_COLDBOLT,
- MG_FROSTDIVER,
- MG_STONECURSE,
- MG_FIREBALL,
- MG_FIREWALL,
- MG_FIREBOLT,
- MG_LIGHTNINGBOLT,
- MG_THUNDERSTORM,
-
- AL_DP,
- AL_DEMONBANE,
- AL_RUWACH,
- AL_PNEUMA,
- AL_TELEPORT,
- AL_WARP,
- AL_HEAL,
- AL_INCAGI,
- AL_DECAGI,
- AL_HOLYWATER,
- AL_CRUCIS,
- AL_ANGELUS,
- AL_BLESSING,
- AL_CURE,
-
- MC_INCCARRY,
- MC_DISCOUNT,
- MC_OVERCHARGE,
- MC_PUSHCART,
- MC_IDENTIFY,
- MC_VENDING,
- MC_MAMMONITE,
-
- AC_OWL,
- AC_VULTURE,
- AC_CONCENTRATION,
- AC_DOUBLE,
- AC_SHOWER,
-
- TF_DOUBLE,
- TF_MISS,
- TF_STEAL,
- TF_HIDING,
- TF_POISON,
- TF_DETOXIFY,
-
- ALL_RESURRECTION,
-
- KN_SPEARMASTERY,
- KN_PIERCE,
- KN_BRANDISHSPEAR,
- KN_SPEARSTAB,
- KN_SPEARBOOMERANG,
- KN_TWOHANDQUICKEN,
- KN_AUTOCOUNTER,
- KN_BOWLINGBASH,
- KN_RIDING,
- KN_CAVALIERMASTERY,
-
- PR_MACEMASTERY,
- PR_IMPOSITIO,
- PR_SUFFRAGIUM,
- PR_ASPERSIO,
- PR_BENEDICTIO,
- PR_SANCTUARY,
- PR_SLOWPOISON,
- PR_STRECOVERY,
- PR_KYRIE,
- PR_MAGNIFICAT,
- PR_GLORIA,
- PR_LEXDIVINA,
- PR_TURNUNDEAD,
- PR_LEXAETERNA,
- PR_MAGNUS,
-
- WZ_FIREPILLAR,
- WZ_SIGHTRASHER,
- WZ_FIREIVY,
- WZ_METEOR,
- WZ_JUPITEL,
- WZ_VERMILION,
- WZ_WATERBALL,
- WZ_ICEWALL,
- WZ_FROSTNOVA,
- WZ_STORMGUST,
- WZ_EARTHSPIKE,
- WZ_HEAVENDRIVE,
- WZ_QUAGMIRE,
- WZ_ESTIMATION,
-
- BS_IRON,
- BS_STEEL,
- BS_ENCHANTEDSTONE,
- BS_ORIDEOCON,
- BS_DAGGER,
- BS_SWORD,
- BS_TWOHANDSWORD,
- BS_AXE,
- BS_MACE,
- BS_KNUCKLE,
- BS_SPEAR,
- BS_HILTBINDING,
- BS_FINDINGORE,
- BS_WEAPONRESEARCH,
- BS_REPAIRWEAPON,
- BS_SKINTEMPER,
- BS_HAMMERFALL,
- BS_ADRENALINE,
- BS_WEAPONPERFECT,
- BS_OVERTHRUST,
- BS_MAXIMIZE,
-
- HT_SKIDTRAP,
- HT_LANDMINE,
- HT_ANKLESNARE,
- HT_SHOCKWAVE,
- HT_SANDMAN,
- HT_FLASHER,
- HT_FREEZINGTRAP,
- HT_BLASTMINE,
- HT_CLAYMORETRAP,
- HT_REMOVETRAP,
- HT_TALKIEBOX,
- HT_BEASTBANE,
- HT_FALCON,
- HT_STEELCROW,
- HT_BLITZBEAT,
- HT_DETECTING,
- HT_SPRINGTRAP,
-
- AS_RIGHT,
- AS_LEFT,
- AS_KATAR,
- AS_CLOAKING,
- AS_SONICBLOW,
- AS_GRIMTOOTH,
- AS_ENCHANTPOISON,
- AS_POISONREACT,
- AS_VENOMDUST,
- AS_SPLASHER,
-
- NV_FIRSTAID,
- NV_TRICKDEAD,
- SM_MOVINGRECOVERY,
- SM_FATALBLOW,
- SM_AUTOBERSERK,
- AC_MAKINGARROW,
- AC_CHARGEARROW,
- TF_SPRINKLESAND,
- TF_BACKSLIDING,
- TF_PICKSTONE,
- TF_THROWSTONE,
- MC_CARTREVOLUTION,
- MC_CHANGECART,
- MC_LOUD,
- AL_HOLYLIGHT,
- MG_ENERGYCOAT,
-
- NPC_PIERCINGATT,
- NPC_MENTALBREAKER,
- NPC_RANGEATTACK,
- NPC_ATTRICHANGE,
- NPC_CHANGEWATER,
- NPC_CHANGEGROUND,
- NPC_CHANGEFIRE,
- NPC_CHANGEWIND,
- NPC_CHANGEPOISON,
- NPC_CHANGEHOLY,
- NPC_CHANGEDARKNESS,
- NPC_CHANGETELEKINESIS,
- NPC_CRITICALSLASH,
- NPC_COMBOATTACK,
- NPC_GUIDEDATTACK,
- NPC_SELFDESTRUCTION,
- NPC_SPLASHATTACK,
- NPC_SUICIDE,
- NPC_POISON,
- NPC_BLINDATTACK,
- NPC_SILENCEATTACK,
- NPC_STUNATTACK,
- NPC_PETRIFYATTACK,
- NPC_CURSEATTACK,
- NPC_SLEEPATTACK,
- NPC_RANDOMATTACK,
- NPC_WATERATTACK,
- NPC_GROUNDATTACK,
- NPC_FIREATTACK,
- NPC_WINDATTACK,
- NPC_POISONATTACK,
- NPC_HOLYATTACK,
- NPC_DARKNESSATTACK,
- NPC_TELEKINESISATTACK,
- NPC_MAGICALATTACK,
- NPC_METAMORPHOSIS,
- NPC_PROVOCATION,
- NPC_SMOKING,
- NPC_SUMMONSLAVE,
- NPC_EMOTION,
- NPC_TRANSFORMATION,
- NPC_BLOODDRAIN,
- NPC_ENERGYDRAIN,
- NPC_KEEPING,
- NPC_DARKBREATH,
- NPC_DARKBLESSING,
- NPC_BARRIER,
- NPC_DEFENDER,
- NPC_LICK,
- NPC_HALLUCINATION,
- NPC_REBIRTH,
- NPC_SUMMONMONSTER,
-
- RG_SNATCHER,
- RG_STEALCOIN,
- RG_BACKSTAP,
- RG_TUNNELDRIVE,
- RG_RAID,
- RG_STRIPWEAPON,
- RG_STRIPSHIELD,
- RG_STRIPARMOR,
- RG_STRIPHELM,
- RG_INTIMIDATE,
- RG_GRAFFITI,
- RG_FLAGGRAFFITI,
- RG_CLEANER,
- RG_GANGSTER,
- RG_COMPULSION,
- RG_PLAGIARISM,
-
- AM_AXEMASTERY,
- AM_LEARNINGPOTION,
- AM_PHARMACY,
- AM_DEMONSTRATION,
- AM_ACIDTERROR,
- AM_POTIONPITCHER,
- AM_CANNIBALIZE,
- AM_SPHEREMINE,
- AM_CP_WEAPON,
- AM_CP_SHIELD,
- AM_CP_ARMOR,
- AM_CP_HELM,
- AM_BIOETHICS,
- AM_BIOTECHNOLOGY,
- AM_CREATECREATURE,
- AM_CULTIVATION,
- AM_FLAMECONTROL,
- AM_CALLHOMUN,
- AM_REST,
- AM_DRILLMASTER,
- AM_HEALHOMUN,
- AM_RESURRECTHOMUN,
-
- CR_TRUST,
- CR_AUTOGUARD,
- CR_SHIELDCHARGE,
- CR_SHIELDBOOMERANG,
- CR_REFLECTSHIELD,
- CR_HOLYCROSS,
- CR_GRANDCROSS,
- CR_DEVOTION,
- CR_PROVIDENCE,
- CR_DEFENDER,
- CR_SPEARQUICKEN,
-
- MO_IRONHAND,
- MO_SPIRITSRECOVERY,
- MO_CALLSPIRITS,
- MO_ABSORBSPIRITS,
- MO_TRIPLEATTACK,
- MO_BODYRELOCATION,
- MO_DODGE,
- MO_INVESTIGATE,
- MO_FINGEROFFENSIVE,
- MO_STEELBODY,
- MO_BLADESTOP,
- MO_EXPLOSIONSPIRITS,
- MO_EXTREMITYFIST,
- MO_CHAINCOMBO,
- MO_COMBOFINISH,
-
- SA_ADVANCEDBOOK,
- SA_CASTCANCEL,
- SA_MAGICROD,
- SA_SPELLBREAKER,
- SA_FREECAST,
- SA_AUTOSPELL,
- SA_FLAMELAUNCHER,
- SA_FROSTWEAPON,
- SA_LIGHTNINGLOADER,
- SA_SEISMICWEAPON,
- SA_DRAGONOLOGY,
- SA_VOLCANO,
- SA_DELUGE,
- SA_VIOLENTGALE,
- SA_LANDPROTECTOR,
- SA_DISPELL,
- SA_ABRACADABRA,
- SA_MONOCELL,
- SA_CLASSCHANGE,
- SA_SUMMONMONSTER,
- SA_REVERSEORCISH,
- SA_DEATH,
- SA_FORTUNE,
- SA_TAMINGMONSTER,
- SA_QUESTION,
- SA_GRAVITY,
- SA_LEVELUP,
- SA_INSTANTDEATH,
- SA_FULLRECOVERY,
- SA_COMA,
-
- BD_ADAPTATION,
- BD_ENCORE,
- BD_LULLABY,
- BD_RICHMANKIM,
- BD_ETERNALCHAOS,
- BD_DRUMBATTLEFIELD,
- BD_RINGNIBELUNGEN,
- BD_ROKISWEIL,
- BD_INTOABYSS,
- BD_SIEGFRIED,
- BD_RAGNAROK,
-
- BA_MUSICALLESSON,
- BA_MUSICALSTRIKE,
- BA_DISSONANCE,
- BA_FROSTJOKER,
- BA_WHISTLE,
- BA_ASSASSINCROSS,
- BA_POEMBRAGI,
- BA_APPLEIDUN,
-
- DC_DANCINGLESSON,
- DC_THROWARROW,
- DC_UGLYDANCE,
- DC_SCREAM,
- DC_HUMMING,
- DC_DONTFORGETME,
- DC_FORTUNEKISS,
- DC_SERVICEFORYOU,
-
- NPC_RANDOMMOVE,
- NPC_SPEEDUP,
- NPC_REVENGE,
-
- WE_MALE,
- WE_FEMALE,
- WE_CALLPARTNER,
-
- ITM_TOMAHAWK,
-
- NPC_DARKCROSS,
- NPC_GRANDDARKNESS,
- NPC_DARKSTRIKE,
- NPC_DARKTHUNDER,
- NPC_STOP,
- NPC_WEAPONBRAKER,
- NPC_ARMORBRAKE,
- NPC_HELMBRAKE,
- NPC_SHIELDBRAKE,
- NPC_UNDEADATTACK,
- NPC_CHANGEUNDEAD,
- NPC_POWERUP,
- NPC_AGIUP,
- NPC_SIEGEMODE,
- NPC_CALLSLAVE,
- NPC_INVISIBLE,
- NPC_RUN,
-
- LK_AURABLADE,
- LK_PARRYING,
- LK_CONCENTRATION,
- LK_TENSIONRELAX,
- LK_BERSERK,
- LK_FURY,
- HP_ASSUMPTIO,
- HP_BASILICA,
- HP_MEDITATIO,
- HW_SOULDRAIN,
- HW_MAGICCRASHER,
- HW_MAGICPOWER,
- PA_PRESSURE,
- PA_SACRIFICE,
- PA_GOSPEL,
- CH_PALMSTRIKE,
- CH_TIGERFIST,
- CH_CHAINCRUSH,
- PF_HPCONVERSION,
- PF_SOULCHANGE,
- PF_SOULBURN,
- ASC_KATAR,
- ASC_HALLUCINATION,
- ASC_EDP,
- ASC_BREAKER,
- SN_SIGHT,
- SN_FALCONASSAULT,
- SN_SHARPSHOOTING,
- SN_WINDWALK,
- WS_MELTDOWN,
- WS_CREATECOIN,
- WS_CREATENUGGET,
- WS_CARTBOOST,
- WS_SYSTEMCREATE,
- ST_CHASEWALK,
- ST_REJECTSWORD,
- ST_STEALBACKPACK,
- CR_ALCHEMY,
- CR_SYNTHESISPOTION,
- CG_ARROWVULCAN,
- CG_MOONLIT,
- CG_MARIONETTE,
- LK_SPIRALPIERCE,
- LK_HEADCRUSH,
- LK_JOINTBEAT,
- HW_NAPALMVULCAN,
- CH_SOULCOLLECT,
- PF_MINDBREAKER,
- PF_MEMORIZE,
- PF_FOGWALL,
- PF_SPIDERWEB,
- ASC_METEORASSAULT,
- ASC_CDP,
-
- WE_BABY,
- WE_CALLPARENT,
- WE_CALLBABY,
-
- TK_RUN,
- TK_READYSTORM,
- TK_STORMKICK,
- TK_READYDOWN,
- TK_DOWNKICK,
- TK_READYTURN,
- TK_TURNKICK,
- TK_READYCOUNTER,
- TK_COUNTER,
- TK_DODGE,
- TK_JUMPKICK,
- TK_HPTIME,
- TK_SPTIME,
- TK_POWER,
- TK_SEVENWIND,
- TK_HIGHJUMP,
-
- SG_FEEL,
- SG_SUN_WARM,
- SG_MOON_WARM,
- SG_STAR_WARM,
- SG_SUN_COMFORT,
- SG_MOON_COMFORT,
- SG_STAR_COMFORT,
- SG_HATE,
- SG_SUN_ANGER,
- SG_MOON_ANGER,
- SG_STAR_ANGER,
- SG_SUN_BLESS,
- SG_MOON_BLESS,
- SG_STAR_BLESS,
- SG_DEVIL,
- SG_FRIEND,
- SG_KNOWLEDGE,
- SG_FUSION,
-
- SL_ALCHEMIST,
- AM_BERSERKPITCHER,
- SL_MONK,
- SL_STAR,
- SL_SAGE,
- SL_CRUSADER,
- SL_SUPERNOVICE,
- SL_KNIGHT,
- SL_WIZARD,
- SL_PRIEST,
- SL_BARDDANCER,
- SL_ROGUE,
- SL_ASSASIN,
- SL_BLACKSMITH,
- BS_ADRENALINE2,
- SL_HUNTER,
- SL_SOULLINKER,
- SL_KAIZEL,
- SL_KAAHI,
- SL_KAUPE,
- SL_KAITE,
- SL_KAINA,
- SL_STIN,
- SL_STUN,
- SL_SMA,
- SL_SWOO,
- SL_SKE,
- SL_SKA,
-
- SM_SELFPROVOKE,
- NPC_EMOTION_ON,
- ST_PRESERVE,
- ST_FULLSTRIP,
- WS_WEAPONREFINE,
- CR_SLIMPITCHER,
- CR_FULLPROTECTION,
- PA_SHIELDCHAIN,
- HP_MANARECHARGE,
- PF_DOUBLECASTING,
- HW_GANBANTEIN,
- HW_GRAVITATION,
- WS_CARTTERMINATION,
- WS_OVERTHRUSTMAX,
- CG_LONGINGFREEDOM,
- CG_HERMODE,
- CG_TAROTCARD,
- CR_ACIDDEMONSTRATION,
- CR_CULTIVATION,
- ITEM_ENCHANTARMS,
- TK_MISSION,
- SL_HIGH,
- KN_ONEHAND,
- AM_TWILIGHT1,
- AM_TWILIGHT2,
- AM_TWILIGHT3,
- HT_POWER,
-
- GS_GLITTERING,
- GS_FLING,
- GS_TRIPLEACTION,
- GS_BULLSEYE,
- GS_MADNESSCANCEL,
- GS_ADJUSTMENT,
- GS_INCREASING,
- GS_MAGICALBULLET,
- GS_CRACKER,
- GS_SINGLEACTION,
- GS_SNAKEEYE,
- GS_CHAINACTION,
- GS_TRACKING,
- GS_DISARM,
- GS_PIERCINGSHOT,
- GS_RAPIDSHOWER,
- GS_DESPERADO,
- GS_GATLINGFEVER,
- GS_DUST,
- GS_FULLBUSTER,
- GS_SPREADATTACK,
- GS_GROUNDDRIFT,
-
- NJ_TOBIDOUGU,
- NJ_SYURIKEN,
- NJ_KUNAI,
- NJ_HUUMA,
- NJ_ZENYNAGE,
- NJ_TATAMIGAESHI,
- NJ_KASUMIKIRI,
- NJ_SHADOWJUMP,
- NJ_KIRIKAGE,
- NJ_UTSUSEMI,
- NJ_BUNSINJYUTSU,
- NJ_NINPOU,
- NJ_KOUENKA,
- NJ_KAENSIN,
- NJ_BAKUENRYU,
- NJ_HYOUSENSOU,
- NJ_SUITON,
- NJ_HYOUSYOURAKU,
- NJ_HUUJIN,
- NJ_RAIGEKISAI,
- NJ_KAMAITACHI,
- NJ_NEN,
- NJ_ISSEN,
-
- MB_FIGHTING,
- MB_NEUTRAL,
- MB_TAIMING_PUTI,
- MB_WHITEPOTION,
- MB_MENTAL,
- MB_CARDPITCHER,
- MB_PETPITCHER,
- MB_BODYSTUDY,
- MB_BODYALTER,
- MB_PETMEMORY,
- MB_M_TELEPORT,
- MB_B_GAIN,
- MB_M_GAIN,
- MB_MISSION,
- MB_MUNAKKNOWLEDGE,
- MB_MUNAKBALL,
- MB_SCROLL,
- MB_B_GATHERING,
- MB_M_GATHERING,
- MB_B_EXCLUDE,
- MB_B_DRIFT,
- MB_B_WALLRUSH,
- MB_M_WALLRUSH,
- MB_B_WALLSHIFT,
- MB_M_WALLCRASH,
- MB_M_REINCARNATION,
- MB_B_EQUIP,
-
- SL_DEATHKNIGHT,
- SL_COLLECTOR,
- SL_NINJA,
- SL_GUNNER,
- AM_TWILIGHT4,
- DA_RESET,
- DE_BERSERKAIZER,
- DA_DARKPOWER,
-
- DE_PASSIVE,
- DE_PATTACK,
- DE_PSPEED,
- DE_PDEFENSE,
- DE_PCRITICAL,
- DE_PHP,
- DE_PSP,
- DE_RESET,
- DE_RANKING,
- DE_PTRIPLE,
- DE_ENERGY,
- DE_NIGHTMARE,
- DE_SLASH,
- DE_COIL,
- DE_WAVE,
- DE_REBIRTH,
- DE_AURA,
- DE_FREEZER,
- DE_CHANGEATTACK,
- DE_PUNISH,
- DE_POISON,
- DE_INSTANT,
- DE_WARNING,
- DE_RANKEDKNIFE,
- DE_RANKEDGRADIUS,
- DE_GAUGE,
- DE_GTIME,
- DE_GPAIN,
- DE_GSKILL,
- DE_GKILL,
- DE_ACCEL,
- DE_BLOCKDOUBLE,
- DE_BLOCKMELEE,
- DE_BLOCKFAR,
- DE_FRONTATTACK,
- DE_DANGERATTACK,
- DE_TWINATTACK,
- DE_WINDATTACK,
- DE_WATERATTACK,
-
- DA_ENERGY,
- DA_CLOUD,
- DA_FIRSTSLOT,
- DA_HEADDEF,
- DA_SPACE,
- DA_TRANSFORM,
- DA_EXPLOSION,
- DA_REWARD,
- DA_CRUSH,
- DA_ITEMREBUILD,
- DA_ILLUSION,
- DA_NUETRALIZE,
- DA_RUNNER,
- DA_TRANSFER,
- DA_WALL,
- DA_ZENY,
- DA_REVENGE,
- DA_EARPLUG,
- DA_CONTRACT,
- DA_BLACK,
- DA_DREAM,
- DA_MAGICCART,
- DA_COPY,
- DA_CRYSTAL,
- DA_EXP,
- DA_CARTSWING,
- DA_REBUILD,
- DA_JOBCHANGE,
- DA_EDARKNESS,
- DA_EGUARDIAN,
- DA_TIMEOUT,
- ALL_TIMEIN,
- DA_ZENYRANK,
- DA_ACCESSORYMIX,
-
- NPC_EARTHQUAKE,
- NPC_FIREBREATH,
- NPC_ICEBREATH,
- NPC_THUNDERBREATH,
- NPC_ACIDBREATH,
- NPC_DARKNESSBREATH,
- NPC_DRAGONFEAR,
- NPC_BLEEDING,
- NPC_PULSESTRIKE,
- NPC_HELLJUDGEMENT,
- NPC_WIDESILENCE,
- NPC_WIDEFREEZE,
- NPC_WIDEBLEEDING,
- NPC_WIDESTONE,
- NPC_WIDECONFUSE,
- NPC_WIDESLEEP,
- NPC_WIDESIGHT,
- NPC_EVILLAND,
- NPC_MAGICMIRROR,
- NPC_SLOWCAST,
- NPC_CRITICALWOUND,
- NPC_EXPULSION,
- NPC_STONESKIN,
- NPC_ANTIMAGIC,
- NPC_WIDECURSE,
- NPC_WIDESTUN,
- NPC_VAMPIRE_GIFT,
- NPC_WIDESOULDRAIN,
- ALL_INCCARRY,
- NPC_TALK,
- NPC_HELLPOWER,
- NPC_WIDEHELLDIGNITY,
- NPC_INVINCIBLE,
- NPC_INVINCIBLEOFF,
- NPC_ALLHEAL,
- GM_SANDMAN,
- CASH_BLESSING,
- CASH_INCAGI,
- CASH_ASSUMPTIO,
- ALL_CATCRY,
- ALL_PARTYFLEE,
- ALL_ANGEL_PROTECT,
- ALL_DREAM_SUMMERNIGHT,
- NPC_CHANGEUNDEAD2,
- ALL_REVERSEORCISH,
- ALL_WEWISH,
- ALL_SONKRAN,
- NPC_WIDEHEALTHFEAR,
- NPC_WIDEBODYBURNNING,
- NPC_WIDEFROSTMISTY,
- NPC_WIDECOLD,
- NPC_WIDE_DEEP_SLEEP,
- NPC_WIDESIREN,
- NPC_VENOMFOG,
- NPC_MILLENNIUMSHIELD,
- NPC_COMET,
-
-
-
-
- NPC_ICEMINE,
- NPC_ICEEXPLO,
- NPC_FLAMECROSS,
- NPC_PULSESTRIKE2,
- NPC_DANCINGBLADE,
- NPC_DANCINGBLADE_ATK,
- NPC_DARKPIERCING,
- NPC_MAXPAIN,
- NPC_MAXPAIN_ATK,
- NPC_DEATHSUMMON,
- NPC_HELLBURNING,
- NPC_JACKFROST,
-
- NPC_WIDEWEB,
- NPC_WIDESUCK,
- NPC_STORMGUST2,
- NPC_FIRESTORM,
- NPC_REVERBERATION,
- NPC_REVERBERATION_ATK,
- NPC_LEX_AETERNA,
-
- KN_CHARGEATK = 1001,
- CR_SHRINK,
- AS_SONICACCEL,
- AS_VENOMKNIFE,
- RG_CLOSECONFINE,
- WZ_SIGHTBLASTER,
- SA_CREATECON,
- SA_ELEMENTWATER,
- HT_PHANTASMIC,
- BA_PANGVOICE,
- DC_WINKCHARM,
- BS_UNFAIRLYTRICK,
- BS_GREED,
- PR_REDEMPTIO,
- MO_KITRANSLATION,
- MO_BALKYOUNG,
- SA_ELEMENTGROUND,
- SA_ELEMENTFIRE,
- SA_ELEMENTWIND,
-
- RK_ENCHANTBLADE = 2001,
- RK_SONICWAVE,
- RK_DEATHBOUND,
- RK_HUNDREDSPEAR,
- RK_WINDCUTTER,
- RK_IGNITIONBREAK,
- RK_DRAGONTRAINING,
- RK_DRAGONBREATH,
- RK_DRAGONHOWLING,
- RK_RUNEMASTERY,
- RK_MILLENNIUMSHIELD,
- RK_CRUSHSTRIKE,
- RK_REFRESH,
- RK_GIANTGROWTH,
- RK_STONEHARDSKIN,
- RK_VITALITYACTIVATION,
- RK_STORMBLAST,
- RK_FIGHTINGSPIRIT,
- RK_ABUNDANCE,
- RK_PHANTOMTHRUST,
-
- GC_VENOMIMPRESS,
- GC_CROSSIMPACT,
- GC_DARKILLUSION,
- GC_RESEARCHNEWPOISON,
- GC_CREATENEWPOISON,
- GC_ANTIDOTE,
- GC_POISONINGWEAPON,
- GC_WEAPONBLOCKING,
- GC_COUNTERSLASH,
- GC_WEAPONCRUSH,
- GC_VENOMPRESSURE,
- GC_POISONSMOKE,
- GC_CLOAKINGEXCEED,
- GC_PHANTOMMENACE,
- GC_HALLUCINATIONWALK,
- GC_ROLLINGCUTTER,
- GC_CROSSRIPPERSLASHER,
-
- AB_JUDEX,
- AB_ANCILLA,
- AB_ADORAMUS,
- AB_CLEMENTIA,
- AB_CANTO,
- AB_CHEAL,
- AB_EPICLESIS,
- AB_PRAEFATIO,
- AB_ORATIO,
- AB_LAUDAAGNUS,
- AB_LAUDARAMUS,
- AB_EUCHARISTICA,
- AB_RENOVATIO,
- AB_HIGHNESSHEAL,
- AB_CLEARANCE,
- AB_EXPIATIO,
- AB_DUPLELIGHT,
- AB_DUPLELIGHT_MELEE,
- AB_DUPLELIGHT_MAGIC,
- AB_SILENTIUM,
-
- WL_WHITEIMPRISON = 2201,
- WL_SOULEXPANSION,
- WL_FROSTMISTY,
- WL_JACKFROST,
- WL_MARSHOFABYSS,
- WL_RECOGNIZEDSPELL,
- WL_SIENNAEXECRATE,
- WL_RADIUS,
- WL_STASIS,
- WL_DRAINLIFE,
- WL_CRIMSONROCK,
- WL_HELLINFERNO,
- WL_COMET,
- WL_CHAINLIGHTNING,
- WL_CHAINLIGHTNING_ATK,
- WL_EARTHSTRAIN,
- WL_TETRAVORTEX,
- WL_TETRAVORTEX_FIRE,
- WL_TETRAVORTEX_WATER,
- WL_TETRAVORTEX_WIND,
- WL_TETRAVORTEX_GROUND,
- WL_SUMMONFB,
- WL_SUMMONBL,
- WL_SUMMONWB,
- WL_SUMMON_ATK_FIRE,
- WL_SUMMON_ATK_WIND,
- WL_SUMMON_ATK_WATER,
- WL_SUMMON_ATK_GROUND,
- WL_SUMMONSTONE,
- WL_RELEASE,
- WL_READING_SB,
- WL_FREEZE_SP,
-
- RA_ARROWSTORM,
- RA_FEARBREEZE,
- RA_RANGERMAIN,
- RA_AIMEDBOLT,
- RA_DETONATOR,
- RA_ELECTRICSHOCKER,
- RA_CLUSTERBOMB,
- RA_WUGMASTERY,
- RA_WUGRIDER,
- RA_WUGDASH,
- RA_WUGSTRIKE,
- RA_WUGBITE,
- RA_TOOTHOFWUG,
- RA_SENSITIVEKEEN,
- RA_CAMOUFLAGE,
- RA_RESEARCHTRAP,
- RA_MAGENTATRAP,
- RA_COBALTTRAP,
- RA_MAIZETRAP,
- RA_VERDURETRAP,
- RA_FIRINGTRAP,
- RA_ICEBOUNDTRAP,
-
- NC_MADOLICENCE,
- NC_BOOSTKNUCKLE,
- NC_PILEBUNKER,
- NC_VULCANARM,
- NC_FLAMELAUNCHER,
- NC_COLDSLOWER,
- NC_ARMSCANNON,
- NC_ACCELERATION,
- NC_HOVERING,
- NC_F_SIDESLIDE,
- NC_B_SIDESLIDE,
- NC_MAINFRAME,
- NC_SELFDESTRUCTION,
- NC_SHAPESHIFT,
- NC_EMERGENCYCOOL,
- NC_INFRAREDSCAN,
- NC_ANALYZE,
- NC_MAGNETICFIELD,
- NC_NEUTRALBARRIER,
- NC_STEALTHFIELD,
- NC_REPAIR,
- NC_TRAININGAXE,
- NC_RESEARCHFE,
- NC_AXEBOOMERANG,
- NC_POWERSWING,
- NC_AXETORNADO,
- NC_SILVERSNIPER,
- NC_MAGICDECOY,
- NC_DISJOINT,
-
- SC_FATALMENACE,
- SC_REPRODUCE,
- SC_AUTOSHADOWSPELL,
- SC_SHADOWFORM,
- SC_TRIANGLESHOT,
- SC_BODYPAINT,
- SC_INVISIBILITY,
- SC_DEADLYINFECT,
- SC_ENERVATION,
- SC_GROOMY,
- SC_IGNORANCE,
- SC_LAZINESS,
- SC_UNLUCKY,
- SC_WEAKNESS,
- SC_STRIPACCESSARY,
- SC_MANHOLE,
- SC_DIMENSIONDOOR,
- SC_CHAOSPANIC,
- SC_MAELSTROM,
- SC_BLOODYLUST,
- SC_FEINTBOMB,
-
- LG_CANNONSPEAR = 2307,
- LG_BANISHINGPOINT,
- LG_TRAMPLE,
- LG_SHIELDPRESS,
- LG_REFLECTDAMAGE,
- LG_PINPOINTATTACK,
- LG_FORCEOFVANGUARD,
- LG_RAGEBURST,
- LG_SHIELDSPELL,
- LG_EXEEDBREAK,
- LG_OVERBRAND,
- LG_PRESTIGE,
- LG_BANDING,
- LG_MOONSLASHER,
- LG_RAYOFGENESIS,
- LG_PIETY,
- LG_EARTHDRIVE,
- LG_HESPERUSLIT,
- LG_INSPIRATION,
-
- SR_DRAGONCOMBO,
- SR_SKYNETBLOW,
- SR_EARTHSHAKER,
- SR_FALLENEMPIRE,
- SR_TIGERCANNON,
- SR_HELLGATE,
- SR_RAMPAGEBLASTER,
- SR_CRESCENTELBOW,
- SR_CURSEDCIRCLE,
- SR_LIGHTNINGWALK,
- SR_KNUCKLEARROW,
- SR_WINDMILL,
- SR_RAISINGDRAGON,
- SR_GENTLETOUCH,
- SR_ASSIMILATEPOWER,
- SR_POWERVELOCITY,
- SR_CRESCENTELBOW_AUTOSPELL,
- SR_GATEOFHELL,
- SR_GENTLETOUCH_QUIET,
- SR_GENTLETOUCH_CURE,
- SR_GENTLETOUCH_ENERGYGAIN,
- SR_GENTLETOUCH_CHANGE,
- SR_GENTLETOUCH_REVITALIZE,
-
- WA_SWING_DANCE = 2350,
- WA_SYMPHONY_OF_LOVER,
- WA_MOONLIT_SERENADE,
-
- MI_RUSH_WINDMILL = 2381,
- MI_ECHOSONG,
- MI_HARMONIZE,
-
- WM_LESSON = 2412,
- WM_METALICSOUND,
- WM_REVERBERATION,
- WM_REVERBERATION_MELEE,
- WM_REVERBERATION_MAGIC,
- WM_DOMINION_IMPULSE,
- WM_SEVERE_RAINSTORM,
- WM_POEMOFNETHERWORLD,
- WM_VOICEOFSIREN,
- WM_DEADHILLHERE,
- WM_LULLABY_DEEPSLEEP,
- WM_SIRCLEOFNATURE,
- WM_RANDOMIZESPELL,
- WM_GLOOMYDAY,
- WM_GREAT_ECHO,
- WM_SONG_OF_MANA,
- WM_DANCE_WITH_WUG,
- WM_SOUND_OF_DESTRUCTION,
- WM_SATURDAY_NIGHT_FEVER,
- WM_LERADS_DEW,
- WM_MELODYOFSINK,
- WM_BEYOND_OF_WARCRY,
- WM_UNLIMITED_HUMMING_VOICE,
-
- SO_FIREWALK = 2443,
- SO_ELECTRICWALK,
- SO_SPELLFIST,
- SO_EARTHGRAVE,
- SO_DIAMONDDUST,
- SO_POISON_BUSTER,
- SO_PSYCHIC_WAVE,
- SO_CLOUD_KILL,
- SO_STRIKING,
- SO_WARMER,
- SO_VACUUM_EXTREME,
- SO_VARETYR_SPEAR,
- SO_ARRULLO,
- SO_EL_CONTROL,
- SO_SUMMON_AGNI,
- SO_SUMMON_AQUA,
- SO_SUMMON_VENTUS,
- SO_SUMMON_TERA,
- SO_EL_ACTION,
- SO_EL_ANALYSIS,
- SO_EL_SYMPATHY,
- SO_EL_CURE,
- SO_FIRE_INSIGNIA,
- SO_WATER_INSIGNIA,
- SO_WIND_INSIGNIA,
- SO_EARTH_INSIGNIA,
-
- GN_TRAINING_SWORD = 2474,
- GN_REMODELING_CART,
- GN_CART_TORNADO,
- GN_CARTCANNON,
- GN_CARTBOOST,
- GN_THORNS_TRAP,
- GN_BLOOD_SUCKER,
- GN_SPORE_EXPLOSION,
- GN_WALLOFTHORN,
- GN_CRAZYWEED,
- GN_CRAZYWEED_ATK,
- GN_DEMONIC_FIRE,
- GN_FIRE_EXPANSION,
- GN_FIRE_EXPANSION_SMOKE_POWDER,
- GN_FIRE_EXPANSION_TEAR_GAS,
- GN_FIRE_EXPANSION_ACID,
- GN_HELLS_PLANT,
- GN_HELLS_PLANT_ATK,
- GN_MANDRAGORA,
- GN_SLINGITEM,
- GN_CHANGEMATERIAL,
- GN_MIX_COOKING,
- GN_MAKEBOMB,
- GN_S_PHARMACY,
- GN_SLINGITEM_RANGEMELEEATK,
-
- AB_SECRAMENT = 2515,
- WM_SEVERE_RAINSTORM_MELEE,
- SR_HOWLINGOFLION,
- SR_RIDEINLIGHTNING,
- LG_OVERBRAND_BRANDISH,
- LG_OVERBRAND_PLUSATK,
-
- ALL_ODINS_RECALL = 2533,
- RETURN_TO_ELDICASTES,
- ALL_BUYING_STORE,
- ALL_GUARDIAN_RECALL,
- ALL_ODINS_POWER,
- BEER_BOTTLE_CAP,
- NPC_ASSASSINCROSS,
- NPC_DISSONANCE,
- NPC_UGLYDANCE,
- ALL_TETANY,
- ALL_RAY_OF_PROTECTION,
- MC_CARTDECORATE,
- GM_ITEM_ATKMAX,
- GM_ITEM_ATKMIN,
- GM_ITEM_MATKMAX,
- GM_ITEM_MATKMIN,
- ALL_LIGHTGUARD,
-
- RL_GLITTERING_GREED = 2551,
- RL_RICHS_COIN,
- RL_MASS_SPIRAL,
- RL_BANISHING_BUSTER,
- RL_B_TRAP,
- RL_FLICKER,
- RL_S_STORM,
- RL_E_CHAIN,
- RL_QD_SHOT,
- RL_C_MARKER,
- RL_FIREDANCE,
- RL_H_MINE,
- RL_P_ALTER,
- RL_FALLEN_ANGEL,
- RL_R_TRIP,
- RL_D_TAIL,
- RL_FIRE_RAIN,
- RL_HEAT_BARREL,
- RL_AM_BLAST,
- RL_SLUGSHOT,
- RL_HAMMER_OF_GOD,
- RL_R_TRIP_PLUSATK,
- RL_B_FLICKER_ATK,
- RL_GLITTERING_GREED_ATK,
-
- KO_YAMIKUMO = 3001,
- KO_RIGHT,
- KO_LEFT,
- KO_JYUMONJIKIRI,
- KO_SETSUDAN,
- KO_BAKURETSU,
- KO_HAPPOKUNAI,
- KO_MUCHANAGE,
- KO_HUUMARANKA,
- KO_MAKIBISHI,
- KO_MEIKYOUSISUI,
- KO_ZANZOU,
- KO_KYOUGAKU,
- KO_JYUSATSU,
- KO_KAHU_ENTEN,
- KO_HYOUHU_HUBUKI,
- KO_KAZEHU_SEIRAN,
- KO_DOHU_KOUKAI,
- KO_KAIHOU,
- KO_ZENKAI,
- KO_GENWAKU,
- KO_IZAYOI,
- KG_KAGEHUMI,
- KG_KYOMU,
- KG_KAGEMUSYA,
- OB_ZANGETSU,
- OB_OBOROGENSOU,
- OB_OBOROGENSOU_TRANSITION_ATK,
- OB_AKAITSUKI,
-
- ECL_SNOWFLIP = 3031,
- ECL_PEONYMAMY,
- ECL_SADAGUI,
- ECL_SEQUOIADUST,
- ECLAGE_RECALL,
- BA_POEMBRAGI2,
- DC_FORTUNEKISS2,
- ITEM_OPTION_SPLASH_ATTACK,
- GM_FORCE_TRANSFER,
- GM_WIDE_RESURRECTION,
-
- GC_DARKCROW = 5001,
- RA_UNLIMIT,
- GN_ILLUSIONDOPING,
- RK_DRAGONBREATH_WATER,
- RK_LUXANIMA,
- NC_MAGMA_ERUPTION,
- WM_FRIGG_SONG,
- SO_ELEMENTAL_SHIELD,
- SR_FLASHCOMBO,
- SC_ESCAPE,
- AB_OFFERTORIUM,
- WL_TELEKINESIS_INTENSE,
- LG_KINGS_GRACE,
- ALL_FULL_THROTTLE,
- NC_MAGMA_ERUPTION_DOTDAMAGE,
-
- HLIF_HEAL = 8001,
- HLIF_AVOID,
- HLIF_BRAIN,
- HLIF_CHANGE,
- HAMI_CASTLE,
- HAMI_DEFENCE,
- HAMI_SKIN,
- HAMI_BLOODLUST,
- HFLI_MOON,
- HFLI_FLEET,
- HFLI_SPEED,
- HFLI_SBR44,
- HVAN_CAPRICE,
- HVAN_CHAOTIC,
- HVAN_INSTRUCT,
- HVAN_EXPLOSION,
- MUTATION_BASEJOB,
- MH_SUMMON_LEGION,
- MH_NEEDLE_OF_PARALYZE,
- MH_POISON_MIST,
- MH_PAIN_KILLER,
- MH_LIGHT_OF_REGENE,
- MH_OVERED_BOOST,
- MH_ERASER_CUTTER,
- MH_XENO_SLASHER,
- MH_SILENT_BREEZE,
- MH_STYLE_CHANGE,
- MH_SONIC_CRAW,
- MH_SILVERVEIN_RUSH,
- MH_MIDNIGHT_FRENZY,
- MH_STAHL_HORN,
- MH_GOLDENE_FERSE,
- MH_STEINWAND,
- MH_HEILIGE_STANGE,
- MH_ANGRIFFS_MODUS,
- MH_TINDER_BREAKER,
- MH_CBC,
- MH_EQC,
- MH_MAGMA_FLOW,
- MH_GRANITIC_ARMOR,
- MH_LAVA_SLIDE,
- MH_PYROCLASTIC,
- MH_VOLCANIC_ASH,
-
- MS_BASH = 8201,
- MS_MAGNUM,
- MS_BOWLINGBASH,
- MS_PARRYING,
- MS_REFLECTSHIELD,
- MS_BERSERK,
- MA_DOUBLE,
- MA_SHOWER,
- MA_SKIDTRAP,
- MA_LANDMINE,
- MA_SANDMAN,
- MA_FREEZINGTRAP,
- MA_REMOVETRAP,
- MA_CHARGEARROW,
- MA_SHARPSHOOTING,
- ML_PIERCE,
- ML_BRANDISH,
- ML_SPIRALPIERCE,
- ML_DEFENDER,
- ML_AUTOGUARD,
- ML_DEVOTION,
- MER_MAGNIFICAT,
- MER_QUICKEN,
- MER_SIGHT,
- MER_CRASH,
- MER_REGAIN,
- MER_TENDER,
- MER_BENEDICTION,
- MER_RECUPERATE,
- MER_MENTALCURE,
- MER_COMPRESS,
- MER_PROVOKE,
- MER_AUTOBERSERK,
- MER_DECAGI,
- MER_SCAPEGOAT,
- MER_LEXDIVINA,
- MER_ESTIMATION,
- MER_KYRIE,
- MER_BLESSING,
- MER_INCAGI,
- MER_INVINCIBLEOFF2,
-
- EL_CIRCLE_OF_FIRE = 8401,
- EL_FIRE_CLOAK,
- EL_FIRE_MANTLE,
- EL_WATER_SCREEN,
- EL_WATER_DROP,
- EL_WATER_BARRIER,
- EL_WIND_STEP,
- EL_WIND_CURTAIN,
- EL_ZEPHYR,
- EL_SOLID_SKIN,
- EL_STONE_SHIELD,
- EL_POWER_OF_GAIA,
- EL_PYROTECHNIC,
- EL_HEATER,
- EL_TROPIC,
- EL_AQUAPLAY,
- EL_COOLER,
- EL_CHILLY_AIR,
- EL_GUST,
- EL_BLAST,
- EL_WILD_STORM,
- EL_PETROLOGY,
- EL_CURSED_SOIL,
- EL_UPHEAVAL,
- EL_FIRE_ARROW,
- EL_FIRE_BOMB,
- EL_FIRE_BOMB_ATK,
- EL_FIRE_WAVE,
- EL_FIRE_WAVE_ATK,
- EL_ICE_NEEDLE,
- EL_WATER_SCREW,
- EL_WATER_SCREW_ATK,
- EL_TIDAL_WEAPON,
- EL_WIND_SLASH,
- EL_HURRICANE,
- EL_HURRICANE_ATK,
- EL_TYPOON_MIS,
- EL_TYPOON_MIS_ATK,
- EL_STONE_HAMMER,
- EL_ROCK_CRUSHER,
- EL_ROCK_CRUSHER_ATK,
- EL_STONE_RAIN,
-};
-
-
-enum {
- UNT_SAFETYWALL = 0x7e,
- UNT_FIREWALL,
- UNT_WARP_WAITING,
- UNT_WARP_ACTIVE,
- UNT_BENEDICTIO,
- UNT_SANCTUARY,
- UNT_MAGNUS,
- UNT_PNEUMA,
- UNT_DUMMYSKILL,
- UNT_FIREPILLAR_WAITING,
- UNT_FIREPILLAR_ACTIVE,
- UNT_HIDDEN_TRAP,
- UNT_TRAP,
- UNT_HIDDEN_WARP_NPC,
- UNT_USED_TRAPS,
- UNT_ICEWALL,
- UNT_QUAGMIRE,
- UNT_BLASTMINE,
- UNT_SKIDTRAP,
- UNT_ANKLESNARE,
- UNT_VENOMDUST,
- UNT_LANDMINE,
- UNT_SHOCKWAVE,
- UNT_SANDMAN,
- UNT_FLASHER,
- UNT_FREEZINGTRAP,
- UNT_CLAYMORETRAP,
- UNT_TALKIEBOX,
- UNT_VOLCANO,
- UNT_DELUGE,
- UNT_VIOLENTGALE,
- UNT_LANDPROTECTOR,
- UNT_LULLABY,
- UNT_RICHMANKIM,
- UNT_ETERNALCHAOS,
- UNT_DRUMBATTLEFIELD,
- UNT_RINGNIBELUNGEN,
- UNT_ROKISWEIL,
- UNT_INTOABYSS,
- UNT_SIEGFRIED,
- UNT_DISSONANCE,
- UNT_WHISTLE,
- UNT_ASSASSINCROSS,
- UNT_POEMBRAGI,
- UNT_APPLEIDUN,
- UNT_UGLYDANCE,
- UNT_HUMMING,
- UNT_DONTFORGETME,
- UNT_FORTUNEKISS,
- UNT_SERVICEFORYOU,
- UNT_GRAFFITI,
- UNT_DEMONSTRATION,
- UNT_CALLFAMILY,
- UNT_GOSPEL,
- UNT_BASILICA,
- UNT_MOONLIT,
- UNT_FOGWALL,
- UNT_SPIDERWEB,
- UNT_GRAVITATION,
- UNT_HERMODE,
- UNT_KAENSIN,
- UNT_SUITON,
- UNT_TATAMIGAESHI,
- UNT_KAEN,
- UNT_GROUNDDRIFT_WIND,
- UNT_GROUNDDRIFT_DARK,
- UNT_GROUNDDRIFT_POISON,
- UNT_GROUNDDRIFT_WATER,
- UNT_GROUNDDRIFT_FIRE,
- UNT_DEATHWAVE,
- UNT_WATERATTACK,
- UNT_WINDATTACK,
- UNT_EARTHQUAKE,
- UNT_EVILLAND,
- UNT_DARK_RUNNER,
- UNT_DARK_TRANSFER,
- UNT_EPICLESIS,
- UNT_EARTHSTRAIN,
- UNT_MANHOLE,
- UNT_DIMENSIONDOOR,
- UNT_CHAOSPANIC,
- UNT_MAELSTROM,
- UNT_BLOODYLUST,
- UNT_FEINTBOMB,
- UNT_MAGENTATRAP,
- UNT_COBALTTRAP,
- UNT_MAIZETRAP,
- UNT_VERDURETRAP,
- UNT_FIRINGTRAP,
- UNT_ICEBOUNDTRAP,
- UNT_ELECTRICSHOCKER,
- UNT_CLUSTERBOMB,
- UNT_REVERBERATION,
- UNT_SEVERE_RAINSTORM,
- UNT_FIREWALK,
- UNT_ELECTRICWALK,
- UNT_NETHERWORLD,
- UNT_PSYCHIC_WAVE,
- UNT_CLOUD_KILL,
- UNT_POISONSMOKE,
- UNT_NEUTRALBARRIER,
- UNT_STEALTHFIELD,
- UNT_WARMER,
- UNT_THORNS_TRAP,
- UNT_WALLOFTHORN,
- UNT_DEMONIC_FIRE,
- UNT_FIRE_EXPANSION_SMOKE_POWDER,
- UNT_FIRE_EXPANSION_TEAR_GAS,
- UNT_HELLS_PLANT,
- UNT_VACUUM_EXTREME,
- UNT_BANDING,
- UNT_FIRE_MANTLE,
- UNT_WATER_BARRIER,
- UNT_ZEPHYR,
- UNT_POWER_OF_GAIA,
- UNT_FIRE_INSIGNIA,
- UNT_WATER_INSIGNIA,
- UNT_WIND_INSIGNIA,
- UNT_EARTH_INSIGNIA,
- UNT_POISON_MIST,
- UNT_LAVA_SLIDE,
- UNT_VOLCANIC_ASH,
- UNT_ZENKAI_WATER,
- UNT_ZENKAI_LAND,
- UNT_ZENKAI_FIRE,
- UNT_ZENKAI_WIND,
- UNT_MAKIBISHI,
- UNT_VENOMFOG,
- UNT_ICEMINE,
- UNT_FLAMECROSS,
- UNT_HELLBURNING,
- UNT_MAGMA_ERUPTION,
- UNT_KINGS_GRACE,
- UNT_GLITTERING_GREED,
- UNT_B_TRAP,
- UNT_FIRE_RAIN,
-
-
-
-
- UNT_GD_LEADERSHIP = 0xc1,
- UNT_GD_GLORYWOUNDS = 0xc2,
- UNT_GD_SOULCOLD = 0xc3,
- UNT_GD_HAWKEYES = 0xc4,
-
- UNT_MAX = 0x190
-};
-
-
-
-
-
-struct skill_condition {
- int weapon,ammo,ammo_qty,hp,sp,zeny,spiritball,mhp,state;
- int itemid[10],amount[10];
-};
-
-
-struct s_skill_db {
- unsigned short nameid;
- char name[30];
- char desc[40];
- int range[10],hit,inf,element[10],nk,splash[10],max;
- int num[10];
- int cast[10],walkdelay[10],delay[10];
-
- int fixed_cast[10];
-
- int upkeep_time[10],upkeep_time2[10],cooldown[10];
- int castcancel,cast_def_rate;
- int inf2,maxcount[10],skill_type;
- int blewcount[10];
- int hp[10],sp[10],mhp[10],hp_rate[10],sp_rate[10],zeny[10];
- int weapon,ammo,ammo_qty[10],state,spiritball[10];
- int itemid[10],amount[10];
- int castnodex[10], delaynodex[10];
- int nocast;
- int unit_id[2];
- int unit_layout_type[10];
- int unit_range[10];
- int unit_interval;
- int unit_target;
- int unit_flag;
-};
-
-struct s_skill_unit_layout {
- int count;
- int dx[((5*2+1)*(5*2+1))];
- int dy[((5*2+1)*(5*2+1))];
-};
-
-struct skill_timerskill {
- int timer;
- int src_id;
- int target_id;
- int map;
- short x,y;
- uint16 skill_id,skill_lv;
- int type;
- int flag;
-};
-
-struct skill_unit_group {
- int src_id;
- int party_id;
- int guild_id;
- int bg_id;
- int map;
- int target_flag;
- int bl_flag;
- int64 tick;
- int limit,interval;
-
- uint16 skill_id,skill_lv;
- int val1,val2,val3;
- char *valstr;
- int unit_id;
- int group_id;
- int alive_count;
- int item_id;
- struct {
- int count;
- struct skill_unit *data;
- } unit;
- struct {
- unsigned ammo_consume : 1;
- unsigned song_dance : 2;
- unsigned guildaura : 1;
- } state;
-};
-
-struct skill_unit {
- struct block_list bl;
-
- struct skill_unit_group *group;
-
- int limit;
- int val1,val2;
- short alive,range;
- int prev;
-};
-
-struct skill_unit_group_tickset {
- int64 tick;
- int id;
-};
-
-
-struct s_skill_produce_db {
- int nameid, trigger;
- int req_skill,req_skill_lv,itemlv;
- int mat_id[10],mat_amount[10];
-};
-
-
-struct s_skill_arrow_db {
- int nameid, trigger;
- int cre_id[5],cre_amount[5];
-};
-
-
-struct s_skill_abra_db {
- uint16 skill_id;
- int req_lv;
- int per;
-};
-
-
-struct s_skill_magicmushroom_db {
- uint16 skill_id;
-};
-
-struct skill_cd_entry {
- int duration;
-
- int total;
-
- short skidx;
- int64 started;
- int timer;
- uint16 skill_id;
-};
-
-
-
-
-
-
-
-struct skill_cd {
- struct skill_cd_entry *entry[86];
- unsigned char cursor;
-};
-
-
-
-
-struct skill_unit_save {
- uint16 skill_id, skill_lv;
-};
-
-struct s_skill_improvise_db {
- uint16 skill_id;
- short per;
-};
-
-struct s_skill_changematerial_db {
- int itemid;
- short rate;
- int qty[5];
- short qty_rate[5];
-};
-
-struct s_skill_spellbook_db {
- int nameid;
- uint16 skill_id;
- int point;
-};
-
-typedef int (*SkillFunc)(struct block_list *src, struct block_list *target, uint16 skill_id, uint16 skill_lv, int64 tick, int flag);
-
-struct s_skill_dbs {
-int8 HERC__zeroed_block_BEGIN;
- struct s_skill_db db[1478];
- struct s_skill_produce_db produce_db[270];
- struct s_skill_arrow_db arrow_db[140];
- struct s_skill_abra_db abra_db[210];
- struct s_skill_magicmushroom_db magicmushroom_db[23];
- struct s_skill_improvise_db improvise_db[30];
- struct s_skill_changematerial_db changematerial_db[270];
- struct s_skill_spellbook_db spellbook_db[17];
-
-# 1845 "../../../server-code/src/map/skill.h" 3 4
-_Bool
-# 1845 "../../../server-code/src/map/skill.h"
- reproduce_db[1478];
-int8 HERC__zeroed_block_END;
- struct s_skill_unit_layout unit_layout[45];
-};
-
-
-
-
-struct skill_interface {
- int (*init) (
-# 1854 "../../../server-code/src/map/skill.h" 3 4
- _Bool
-# 1854 "../../../server-code/src/map/skill.h"
- minimal);
- int (*final) (void);
- void (*reload) (void);
- void (*read_db) (
-# 1857 "../../../server-code/src/map/skill.h" 3 4
- _Bool
-# 1857 "../../../server-code/src/map/skill.h"
- minimal);
-
- struct DBMap *cd_db;
- struct DBMap *name2id_db;
- struct DBMap *unit_db;
- struct DBMap *usave_db;
- struct DBMap *group_db;
- struct DBMap *bowling_db;
-
- struct eri *unit_ers;
- struct eri *timer_ers;
- struct eri *cd_ers;
- struct eri *cd_entry_ers;
-
- struct s_skill_dbs *dbs;
-
- int enchant_eff[5];
- int deluge_eff[5];
- int firewall_unit_pos;
- int icewall_unit_pos;
- int earthstrain_unit_pos;
- int area_temp[8];
- int unit_temp[20];
- int unit_group_newid;
-
- int (*get_index) ( uint16 skill_id );
- int (*get_type) ( uint16 skill_id );
- int (*get_hit) ( uint16 skill_id );
- int (*get_inf) ( uint16 skill_id );
- int (*get_ele) ( uint16 skill_id, uint16 skill_lv );
- int (*get_nk) ( uint16 skill_id );
- int (*get_max) ( uint16 skill_id );
- int (*get_range) ( uint16 skill_id, uint16 skill_lv );
- int (*get_range2) (struct block_list *bl, uint16 skill_id, uint16 skill_lv);
- int (*get_splash) ( uint16 skill_id, uint16 skill_lv );
- int (*get_hp) ( uint16 skill_id, uint16 skill_lv );
- int (*get_mhp) ( uint16 skill_id, uint16 skill_lv );
- int (*get_sp) ( uint16 skill_id, uint16 skill_lv );
- int (*get_state) (uint16 skill_id);
- int (*get_spiritball) (uint16 skill_id, uint16 skill_lv);
- int (*get_zeny) ( uint16 skill_id, uint16 skill_lv );
- int (*get_num) ( uint16 skill_id, uint16 skill_lv );
- int (*get_cast) ( uint16 skill_id, uint16 skill_lv );
- int (*get_delay) ( uint16 skill_id, uint16 skill_lv );
- int (*get_walkdelay) ( uint16 skill_id, uint16 skill_lv );
- int (*get_time) ( uint16 skill_id, uint16 skill_lv );
- int (*get_time2) ( uint16 skill_id, uint16 skill_lv );
- int (*get_castnodex) ( uint16 skill_id, uint16 skill_lv );
- int (*get_delaynodex) ( uint16 skill_id ,uint16 skill_lv );
- int (*get_castdef) ( uint16 skill_id );
- int (*get_weapontype) ( uint16 skill_id );
- int (*get_ammotype) ( uint16 skill_id );
- int (*get_ammo_qty) ( uint16 skill_id, uint16 skill_lv );
- int (*get_unit_id) (uint16 skill_id,int flag);
- int (*get_inf2) ( uint16 skill_id );
- int (*get_castcancel) ( uint16 skill_id );
- int (*get_maxcount) ( uint16 skill_id, uint16 skill_lv );
- int (*get_blewcount) ( uint16 skill_id, uint16 skill_lv );
- int (*get_unit_flag) ( uint16 skill_id );
- int (*get_unit_target) ( uint16 skill_id );
- int (*get_unit_interval) ( uint16 skill_id );
- int (*get_unit_bl_target) ( uint16 skill_id );
- int (*get_unit_layout_type) ( uint16 skill_id ,uint16 skill_lv );
- int (*get_unit_range) ( uint16 skill_id, uint16 skill_lv );
- int (*get_cooldown) ( uint16 skill_id, uint16 skill_lv );
- int (*tree_get_max) ( uint16 skill_id, int b_class );
- const char *(*get_name) ( uint16 skill_id );
- const char *(*get_desc) ( uint16 skill_id );
-
- void (*chk) (uint16* skill_id);
-
- int (*get_casttype) (uint16 skill_id);
- int (*get_casttype2) (uint16 index);
-
-# 1930 "../../../server-code/src/map/skill.h" 3 4
-_Bool
-# 1930 "../../../server-code/src/map/skill.h"
- (*is_combo) (int skill_id);
- int (*name2id) (const char* name);
- int (*isammotype) (struct map_session_data *sd, int skill_id);
- int (*castend_id) (int tid, int64 tick, int id, intptr_t data);
- int (*castend_pos) (int tid, int64 tick, int id, intptr_t data);
- int (*castend_map) ( struct map_session_data *sd,uint16 skill_id, const char *mapname);
- int (*cleartimerskill) (struct block_list *src);
- int (*addtimerskill) (struct block_list *src, int64 tick, int target, int x, int y, uint16 skill_id, uint16 skill_lv, int type, int flag);
- int (*additional_effect) (struct block_list* src, struct block_list *bl, uint16 skill_id, uint16 skill_lv, int attack_type, int dmg_lv, int64 tick);
- int (*counter_additional_effect) (struct block_list* src, struct block_list *bl, uint16 skill_id, uint16 skill_lv, int attack_type, int64 tick);
- int (*blown) (struct block_list* src, struct block_list* target, int count, int8 dir, int flag);
- int (*break_equip) (struct block_list *bl, unsigned short where, int rate, int flag);
- int (*strip_equip) (struct block_list *bl, unsigned short where, int rate, int lv, int time);
- struct skill_unit_group* (*id2group) (int group_id);
- struct skill_unit_group *(*unitsetting) (struct block_list* src, uint16 skill_id, uint16 skill_lv, short x, short y, int flag);
- struct skill_unit *(*initunit) (struct skill_unit_group *group, int idx, int x, int y, int val1, int val2);
- int (*delunit) (struct skill_unit *su);
- struct skill_unit_group *(*init_unitgroup) (struct block_list* src, int count, uint16 skill_id, uint16 skill_lv, int unit_id, int limit, int interval);
- int (*del_unitgroup) (struct skill_unit_group *group, const char* file, int line, const char* func);
- int (*clear_unitgroup) (struct block_list *src);
- int (*clear_group) (struct block_list *bl, int flag);
- int (*unit_onplace) (struct skill_unit *src, struct block_list *bl, int64 tick);
- int (*unit_ondamaged) (struct skill_unit *src, struct block_list *bl, int64 damage, int64 tick);
- int (*cast_fix) ( struct block_list *bl, uint16 skill_id, uint16 skill_lv);
- int (*cast_fix_sc) ( struct block_list *bl, int time);
- int (*vf_cast_fix) ( struct block_list *bl, double time, uint16 skill_id, uint16 skill_lv);
- int (*delay_fix) ( struct block_list *bl, uint16 skill_id, uint16 skill_lv);
- int (*check_condition_castbegin) (struct map_session_data *sd, uint16 skill_id, uint16 skill_lv);
- int (*check_condition_castend) (struct map_session_data *sd, uint16 skill_id, uint16 skill_lv);
- int (*consume_requirement) (struct map_session_data *sd, uint16 skill_id, uint16 skill_lv, short type);
- struct skill_condition (*get_requirement) (struct map_session_data *sd, uint16 skill_id, uint16 skill_lv);
- int (*check_pc_partner) (struct map_session_data *sd, uint16 skill_id, uint16* skill_lv, int range, int cast_flag);
- int (*unit_move) (struct block_list *bl, int64 tick, int flag);
- int (*unit_onleft) (uint16 skill_id, struct block_list *bl, int64 tick);
- int (*unit_onout) (struct skill_unit *src, struct block_list *bl, int64 tick);
- int (*unit_move_unit_group) ( struct skill_unit_group *group, int16 m,int16 dx,int16 dy);
- int (*sit) (struct map_session_data *sd, int type);
- void (*brandishspear) (struct block_list* src, struct block_list* bl, uint16 skill_id, uint16 skill_lv, int64 tick, int flag);
- void (*repairweapon) (struct map_session_data *sd, int idx);
- void (*identify) (struct map_session_data *sd,int idx);
- void (*weaponrefine) (struct map_session_data *sd,int idx);
- int (*autospell) (struct map_session_data *md,uint16 skill_id);
- int (*calc_heal) (struct block_list *src, struct block_list *target, uint16 skill_id, uint16 skill_lv,
-# 1972 "../../../server-code/src/map/skill.h" 3 4
- _Bool
-# 1972 "../../../server-code/src/map/skill.h"
- heal);
-
-# 1973 "../../../server-code/src/map/skill.h" 3 4
-_Bool
-# 1973 "../../../server-code/src/map/skill.h"
- (*check_cloaking) (struct block_list *bl, struct status_change_entry *sce);
- int (*check_cloaking_end) (struct block_list *bl, va_list ap);
-
-# 1975 "../../../server-code/src/map/skill.h" 3 4
-_Bool
-# 1975 "../../../server-code/src/map/skill.h"
- (*can_cloak) (struct map_session_data *sd);
- int (*enchant_elemental_end) (struct block_list *bl, int type);
- int (*not_ok) (uint16 skill_id, struct map_session_data *sd);
- int (*not_ok_hom) (uint16 skill_id, struct homun_data *hd);
- int (*not_ok_mercenary) (uint16 skill_id, struct mercenary_data *md);
- int (*chastle_mob_changetarget) (struct block_list *bl,va_list ap);
- int (*can_produce_mix) ( struct map_session_data *sd, int nameid, int trigger, int qty);
- int (*produce_mix) ( struct map_session_data *sd, uint16 skill_id, int nameid, int slot1, int slot2, int slot3, int qty );
- int (*arrow_create) ( struct map_session_data *sd,int nameid);
- int (*castend_nodamage_id) (struct block_list *src, struct block_list *bl, uint16 skill_id, uint16 skill_lv, int64 tick, int flag);
- int (*castend_damage_id) (struct block_list* src, struct block_list *bl, uint16 skill_id, uint16 skill_lv, int64 tick,int flag);
- int (*castend_pos2) (struct block_list *src, int x, int y, uint16 skill_id, uint16 skill_lv, int64 tick, int flag);
- int (*blockpc_start) (struct map_session_data *sd, uint16 skill_id, int tick);
- int (*blockhomun_start) (struct homun_data *hd, uint16 skill_id, int tick);
- int (*blockmerc_start) (struct mercenary_data *md, uint16 skill_id, int tick);
- int (*attack) (int attack_type, struct block_list* src, struct block_list *dsrc, struct block_list *bl, uint16 skill_id, uint16 skill_lv, int64 tick, int flag);
- int (*attack_area) (struct block_list *bl,va_list ap);
- int (*area_sub) (struct block_list *bl, va_list ap);
- int (*area_sub_count) (struct block_list *src, struct block_list *target, uint16 skill_id, uint16 skill_lv, int64 tick, int flag);
- int (*check_unit_range) (struct block_list *bl, int x, int y, uint16 skill_id, uint16 skill_lv);
- int (*check_unit_range_sub) (struct block_list *bl, va_list ap);
- int (*check_unit_range2) (struct block_list *bl, int x, int y, uint16 skill_id, uint16 skill_lv);
- int (*check_unit_range2_sub) (struct block_list *bl, va_list ap);
- void (*toggle_magicpower) (struct block_list *bl, uint16 skill_id);
- int (*magic_reflect) (struct block_list* src, struct block_list* bl, int type);
- int (*onskillusage) (struct map_session_data *sd, struct block_list *bl, uint16 skill_id, int64 tick);
- int (*cell_overlap) (struct block_list *bl, va_list ap);
- int (*timerskill) (int tid, int64 tick, int id, intptr_t data);
- int (*trap_splash) (struct block_list *bl, va_list ap);
- int (*check_condition_mercenary) (struct block_list *bl, int skill_id, int lv, int type);
- struct skill_unit_group *(*locate_element_field) (struct block_list *bl);
- int (*graffitiremover) (struct block_list *bl, va_list ap);
- int (*activate_reverberation) ( struct block_list *bl, va_list ap);
- int (*dance_overlap_sub) (struct block_list* bl, va_list ap);
- int (*dance_overlap) (struct skill_unit* su, int flag);
- struct s_skill_unit_layout *(*get_unit_layout) (uint16 skill_id, uint16 skill_lv, struct block_list* src, int x, int y);
- int (*frostjoke_scream) (struct block_list *bl, va_list ap);
- int (*greed) (struct block_list *bl, va_list ap);
- int (*destroy_trap) ( struct block_list *bl, va_list ap );
- struct skill_unit_group_tickset *(*unitgrouptickset_search) (struct block_list *bl, struct skill_unit_group *group, int64 tick);
-
-# 2015 "../../../server-code/src/map/skill.h" 3 4
-_Bool
-# 2015 "../../../server-code/src/map/skill.h"
- (*dance_switch) (struct skill_unit* su, int flag);
- int (*check_condition_char_sub) (struct block_list *bl, va_list ap);
- int (*check_condition_mob_master_sub) (struct block_list *bl, va_list ap);
- void (*brandishspear_first) (struct square *tc, uint8 dir, int16 x, int16 y);
- void (*brandishspear_dir) (struct square* tc, uint8 dir, int are);
- int (*get_fixed_cast) ( uint16 skill_id ,uint16 skill_lv );
- int (*sit_count) (struct block_list *bl, va_list ap);
- int (*sit_in) (struct block_list *bl, va_list ap);
- int (*sit_out) (struct block_list *bl, va_list ap);
- void (*unitsetmapcell) (struct skill_unit *src, uint16 skill_id, uint16 skill_lv, cell_t cell,
-# 2024 "../../../server-code/src/map/skill.h" 3 4
- _Bool
-# 2024 "../../../server-code/src/map/skill.h"
- flag);
- int (*unit_onplace_timer) (struct skill_unit *src, struct block_list *bl, int64 tick);
- int (*unit_effect) (struct block_list* bl, va_list ap);
- int (*unit_timer_sub_onplace) (struct block_list* bl, va_list ap);
- int (*unit_move_sub) (struct block_list* bl, va_list ap);
- int (*blockpc_end) (int tid, int64 tick, int id, intptr_t data);
- int (*blockhomun_end) (int tid, int64 tick, int id, intptr_t data);
- int (*blockmerc_end) (int tid, int64 tick, int id, intptr_t data);
- int (*split_atoi) (char *str, int *val);
- int (*unit_timer) (int tid, int64 tick, int id, intptr_t data);
- int (*unit_timer_sub) (union DBKey key, struct DBData *data, va_list ap);
- void (*init_unit_layout) (void);
-
-# 2036 "../../../server-code/src/map/skill.h" 3 4
-_Bool
-# 2036 "../../../server-code/src/map/skill.h"
- (*parse_row_skilldb) (char* split[], int columns, int current);
-
-# 2037 "../../../server-code/src/map/skill.h" 3 4
-_Bool
-# 2037 "../../../server-code/src/map/skill.h"
- (*parse_row_requiredb) (char* split[], int columns, int current);
-
-# 2038 "../../../server-code/src/map/skill.h" 3 4
-_Bool
-# 2038 "../../../server-code/src/map/skill.h"
- (*parse_row_castdb) (char* split[], int columns, int current);
-
-# 2039 "../../../server-code/src/map/skill.h" 3 4
-_Bool
-# 2039 "../../../server-code/src/map/skill.h"
- (*parse_row_castnodexdb) (char* split[], int columns, int current);
-
-# 2040 "../../../server-code/src/map/skill.h" 3 4
-_Bool
-# 2040 "../../../server-code/src/map/skill.h"
- (*parse_row_unitdb) (char* split[], int columns, int current);
-
-# 2041 "../../../server-code/src/map/skill.h" 3 4
-_Bool
-# 2041 "../../../server-code/src/map/skill.h"
- (*parse_row_producedb) (char* split[], int columns, int current);
-
-# 2042 "../../../server-code/src/map/skill.h" 3 4
-_Bool
-# 2042 "../../../server-code/src/map/skill.h"
- (*parse_row_createarrowdb) (char* split[], int columns, int current);
-
-# 2043 "../../../server-code/src/map/skill.h" 3 4
-_Bool
-# 2043 "../../../server-code/src/map/skill.h"
- (*parse_row_abradb) (char* split[], int columns, int current);
-
-# 2044 "../../../server-code/src/map/skill.h" 3 4
-_Bool
-# 2044 "../../../server-code/src/map/skill.h"
- (*parse_row_spellbookdb) (char* split[], int columns, int current);
-
-# 2045 "../../../server-code/src/map/skill.h" 3 4
-_Bool
-# 2045 "../../../server-code/src/map/skill.h"
- (*parse_row_magicmushroomdb) (char* split[], int column, int current);
-
-# 2046 "../../../server-code/src/map/skill.h" 3 4
-_Bool
-# 2046 "../../../server-code/src/map/skill.h"
- (*parse_row_reproducedb) (char* split[], int column, int current);
-
-# 2047 "../../../server-code/src/map/skill.h" 3 4
-_Bool
-# 2047 "../../../server-code/src/map/skill.h"
- (*parse_row_improvisedb) (char* split[], int columns, int current);
-
-# 2048 "../../../server-code/src/map/skill.h" 3 4
-_Bool
-# 2048 "../../../server-code/src/map/skill.h"
- (*parse_row_changematerialdb) (char* split[], int columns, int current);
-
- void (*usave_add) (struct map_session_data * sd, uint16 skill_id, uint16 skill_lv);
-
- void (*usave_trigger) (struct map_session_data *sd);
-
- void (*cooldown_load) (struct map_session_data * sd);
-
- int (*spellbook) (struct map_session_data *sd, int nameid);
-
- int (*block_check) (struct block_list *bl, enum sc_type type, uint16 skill_id);
- int (*detonator) (struct block_list *bl, va_list ap);
-
-# 2060 "../../../server-code/src/map/skill.h" 3 4
-_Bool
-# 2060 "../../../server-code/src/map/skill.h"
- (*check_camouflage) (struct block_list *bl, struct status_change_entry *sce);
- int (*magicdecoy) (struct map_session_data *sd, int nameid);
- int (*poisoningweapon) ( struct map_session_data *sd, int nameid);
- int (*select_menu) (struct map_session_data *sd,uint16 skill_id);
- int (*elementalanalysis) (struct map_session_data *sd, uint16 skill_lv, const struct itemlist *item_list);
- int (*changematerial) (struct map_session_data *sd, const struct itemlist *item_list);
- int (*get_elemental_type) (uint16 skill_id, uint16 skill_lv);
- void (*cooldown_save) (struct map_session_data * sd);
- int (*get_new_group_id) (void);
-
-# 2069 "../../../server-code/src/map/skill.h" 3 4
-_Bool
-# 2069 "../../../server-code/src/map/skill.h"
- (*check_shadowform) (struct block_list *bl, int64 damage, int hit);
-
-
-# 2071 "../../../server-code/src/map/skill.h" 3 4
-_Bool
-# 2071 "../../../server-code/src/map/skill.h"
- (*castend_damage_id_unknown) (struct block_list* src, struct block_list *bl, uint16 *skill_id, uint16 *skill_lv, int64 *tick, int *flag, struct status_data *tstatus, struct status_change *sc);
- void (*additional_effect_unknown) (struct block_list* src, struct block_list *bl, uint16 *skill_id, uint16 *skill_lv, int *attack_type, int *dmg_lv, int64 *tick);
- void (*counter_additional_effect_unknown) (struct block_list* src, struct block_list *bl, uint16 *skill_id, uint16 *skill_lv, int *attack_type, int64 *tick);
- void (*attack_combo1_unknown) (int *attack_type, struct block_list* src, struct block_list *dsrc, struct block_list *bl, uint16 *skill_id, uint16 *skill_lv, int64 *tick, int *flag, struct status_change_entry *sce, int *combo);
- void (*attack_combo2_unknown) (int *attack_type, struct block_list* src, struct block_list *dsrc, struct block_list *bl, uint16 *skill_id, uint16 *skill_lv, int64 *tick, int *flag, int *combo);
- void (*attack_display_unknown) (int *attack_type, struct block_list* src, struct block_list *dsrc, struct block_list *bl, uint16 *skill_id, uint16 *skill_lv, int64 *tick, int *flag, int *type, struct Damage *dmg, int64 *damage);
- int (*attack_copy_unknown) (int *attack_type, struct block_list* src, struct block_list *dsrc, struct block_list *bl, uint16 *skill_id, uint16 *skill_lv, int64 *tick, int *flag);
- int (*attack_dir_unknown) (int *attack_type, struct block_list* src, struct block_list *dsrc, struct block_list *bl, uint16 *skill_id, uint16 *skill_lv, int64 *tick, int *flag);
- void (*attack_blow_unknown) (int *attack_type, struct block_list* src, struct block_list *dsrc, struct block_list *bl, uint16 *skill_id, uint16 *skill_lv, int64 *tick, int *flag, int *type, struct Damage *dmg, int64 *damage, int8 *dir);
- void (*attack_post_unknown) (int *attack_type, struct block_list* src, struct block_list *dsrc, struct block_list *bl, uint16 *skill_id, uint16 *skill_lv, int64 *tick, int *flag);
-
-# 2081 "../../../server-code/src/map/skill.h" 3 4
-_Bool
-# 2081 "../../../server-code/src/map/skill.h"
- (*timerskill_dead_unknown) (struct block_list *src, struct unit_data *ud, struct skill_timerskill *skl);
- void (*timerskill_target_unknown) (int tid, int64 tick, struct block_list *src, struct block_list *target, struct unit_data *ud, struct skill_timerskill *skl);
- void (*timerskill_notarget_unknown) (int tid, int64 tick, struct block_list *src, struct unit_data *ud, struct skill_timerskill *skl);
-
-# 2084 "../../../server-code/src/map/skill.h" 3 4
-_Bool
-# 2084 "../../../server-code/src/map/skill.h"
- (*cleartimerskill_exception) (int skill_id);
-
-# 2085 "../../../server-code/src/map/skill.h" 3 4
-_Bool
-# 2085 "../../../server-code/src/map/skill.h"
- (*castend_id_unknown) (struct unit_data *ud, struct block_list *src, struct block_list *target);
-
-# 2086 "../../../server-code/src/map/skill.h" 3 4
-_Bool
-# 2086 "../../../server-code/src/map/skill.h"
- (*castend_nodamage_id_dead_unknown) (struct block_list *src, struct block_list *bl, uint16 *skill_id, uint16 *skill_lv, int64 *tick, int *flag);
-
-# 2087 "../../../server-code/src/map/skill.h" 3 4
-_Bool
-# 2087 "../../../server-code/src/map/skill.h"
- (*castend_nodamage_id_undead_unknown) (struct block_list *src, struct block_list *bl, uint16 *skill_id, uint16 *skill_lv, int64 *tick, int *flag);
-
-# 2088 "../../../server-code/src/map/skill.h" 3 4
-_Bool
-# 2088 "../../../server-code/src/map/skill.h"
- (*castend_nodamage_id_mado_unknown) (struct block_list *src, struct block_list *bl, uint16 *skill_id, uint16 *skill_lv, int64 *tick, int *flag);
-
-# 2089 "../../../server-code/src/map/skill.h" 3 4
-_Bool
-# 2089 "../../../server-code/src/map/skill.h"
- (*castend_nodamage_id_unknown) (struct block_list *src, struct block_list *bl, uint16 *skill_id, uint16 *skill_lv, int64 *tick, int *flag);
- void (*castend_pos2_effect_unknown) (struct block_list* src, int *x, int *y, uint16 *skill_id, uint16 *skill_lv, int64 *tick, int *flag);
-
-# 2091 "../../../server-code/src/map/skill.h" 3 4
-_Bool
-# 2091 "../../../server-code/src/map/skill.h"
- (*castend_pos2_unknown) (struct block_list* src, int *x, int *y, uint16 *skill_id, uint16 *skill_lv, int64 *tick, int *flag);
- void (*unitsetting1_unknown) (struct block_list *src, uint16 *skill_id, uint16 *skill_lv, int16 *x, int16 *y, int *flag, int *val1, int *val2, int *val3);
- void (*unitsetting2_unknown) (struct block_list *src, uint16 *skill_id, uint16 *skill_lv, int16 *x, int16 *y, int *flag, int *unit_flag, int *val1, int *val2, int *val3, struct skill_unit_group *group);
- void (*unit_onplace_unknown) (struct skill_unit *src, struct block_list *bl, int64 *tick);
- int (*check_condition_castbegin_off_unknown) (struct status_change *sc, uint16 *skill_id);
- int (*check_condition_castbegin_mount_unknown) (struct status_change *sc, uint16 *skill_id);
- int (*check_condition_castbegin_madogear_unknown) (struct status_change *sc, uint16 *skill_id);
- int (*check_condition_castbegin_unknown) (struct status_change *sc, uint16 *skill_id);
- void (*check_condition_castend_unknown) (struct map_session_data* sd, uint16 *skill_id, uint16 *skill_lv);
-
-# 2100 "../../../server-code/src/map/skill.h" 3 4
-_Bool
-# 2100 "../../../server-code/src/map/skill.h"
- (*get_requirement_off_unknown) (struct status_change *sc, uint16 *skill_id);
-
-# 2101 "../../../server-code/src/map/skill.h" 3 4
-_Bool
-# 2101 "../../../server-code/src/map/skill.h"
- (*get_requirement_item_unknown) (struct status_change *sc, struct map_session_data* sd, uint16 *skill_id, uint16 *skill_lv, uint16 *idx, int *i);
- void (*get_requirement_unknown) (struct status_change *sc, struct map_session_data* sd, uint16 *skill_id, uint16 *skill_lv, struct skill_condition *req);
-};
-
-
-void skill_defaults(void);
-
-
-extern struct skill_interface *skill;
-# 27 "../../../server-code/src/map/unit.h" 2
-
-
-struct map_session_data;
-struct block_list;
-
-
-
-
-enum unit_stopwalking_flag {
- STOPWALKING_FLAG_NONE = 0x00,
- STOPWALKING_FLAG_FIXPOS = 0x01,
- STOPWALKING_FLAG_ONESTEP = 0x02,
- STOPWALKING_FLAG_NEXTCELL = 0x04,
-
- STOPWALKING_FLAG_MASK = 0xff,
-
-};
-
-struct unit_data {
- struct block_list *bl;
- struct walkpath_data walkpath;
- struct skill_timerskill *skilltimerskill[15];
- struct skill_unit_group *skillunit[25];
- struct skill_unit_group_tickset skillunittick[25];
- short attacktarget_lv;
- short to_x,to_y;
- short skillx,skilly;
- uint16 skill_id,skill_lv;
- int skilltarget;
- int skilltimer;
- int target;
- int target_to;
- int attacktimer;
- int walktimer;
- int chaserange;
-
-# 62 "../../../server-code/src/map/unit.h" 3 4
-_Bool
-# 62 "../../../server-code/src/map/unit.h"
- stepaction;
- int steptimer;
- uint16 stepskill_id,stepskill_lv;
- int64 attackabletime;
- int64 canact_tick;
- int64 canmove_tick;
- uint8 dir;
- unsigned char walk_count;
- unsigned char target_count;
- struct {
- unsigned change_walk_target : 1 ;
- unsigned skillcastcancel : 1 ;
- unsigned attack_continue : 1 ;
- unsigned step_attack : 1;
- unsigned walk_easy : 1 ;
- unsigned running : 1;
- unsigned speed_changed : 1;
- } state;
-};
-
-struct view_data {
-
- uint32 class_;
-
-
-
- uint16 weapon,
- shield,
- robe,
- head_top,
- head_mid,
- head_bottom,
- hair_style,
- hair_color,
- cloth_color,
- body_style;
- char sex;
- unsigned dead_sit : 2;
-};
-
-struct unit_interface {
- int (*init) (
-# 103 "../../../server-code/src/map/unit.h" 3 4
- _Bool
-# 103 "../../../server-code/src/map/unit.h"
- minimal);
- int (*final) (void);
-
- struct unit_data* (*bl2ud) (struct block_list *bl);
- struct unit_data* (*bl2ud2) (struct block_list *bl);
- int (*attack_timer) (int tid, int64 tick, int id, intptr_t data);
- int (*walktoxy_timer) (int tid, int64 tick, int id, intptr_t data);
- int (*walktoxy_sub) (struct block_list *bl);
- int (*delay_walktoxy_timer) (int tid, int64 tick, int id, intptr_t data);
- int (*walktoxy) (struct block_list *bl, short x, short y, int flag);
- int (*walktobl_sub) (int tid, int64 tick, int id, intptr_t data);
- int (*walktobl) (struct block_list *bl, struct block_list *tbl, int range, int flag);
-
-# 115 "../../../server-code/src/map/unit.h" 3 4
-_Bool
-# 115 "../../../server-code/src/map/unit.h"
- (*run) (struct block_list *bl, struct map_session_data *sd, enum sc_type type);
- void (*run_hit) (struct block_list *bl, struct status_change *sc, struct map_session_data *sd, enum sc_type type);
- int (*escape) (struct block_list *bl, struct block_list *target, short dist);
- int (*movepos) (struct block_list *bl, short dst_x, short dst_y, int easy,
-# 118 "../../../server-code/src/map/unit.h" 3 4
- _Bool
-# 118 "../../../server-code/src/map/unit.h"
- checkpath);
- int (*setdir) (struct block_list *bl, unsigned char dir);
- uint8 (*getdir) (struct block_list *bl);
- int (*blown) (struct block_list *bl, int dx, int dy, int count, int flag);
- int (*warp) (struct block_list *bl, short m, short x, short y, clr_type type);
- int (*stop_walking) (struct block_list *bl, int type);
- int (*skilluse_id) (struct block_list *src, int target_id, uint16 skill_id, uint16 skill_lv);
- int (*step_timer) (int tid, int64 tick, int id, intptr_t data);
- void (*stop_stepaction) (struct block_list *bl);
- int (*is_walking) (struct block_list *bl);
- int (*can_move) (struct block_list *bl);
- int (*resume_running) (int tid, int64 tick, int id, intptr_t data);
- int (*set_walkdelay) (struct block_list *bl, int64 tick, int delay, int type);
- int (*skilluse_id2) (struct block_list *src, int target_id, uint16 skill_id, uint16 skill_lv, int casttime, int castcancel);
- int (*skilluse_pos) (struct block_list *src, short skill_x, short skill_y, uint16 skill_id, uint16 skill_lv);
- int (*skilluse_pos2) (struct block_list *src, short skill_x, short skill_y, uint16 skill_id, uint16 skill_lv, int casttime, int castcancel);
- int (*set_target) (struct unit_data *ud, int target_id);
- void (*stop_attack) (struct block_list *bl);
- int (*unattackable) (struct block_list *bl);
- int (*attack) (struct block_list *src, int target_id, int continuous);
- int (*cancel_combo) (struct block_list *bl);
-
-# 139 "../../../server-code/src/map/unit.h" 3 4
-_Bool
-# 139 "../../../server-code/src/map/unit.h"
- (*can_reach_pos) (struct block_list *bl, int x, int y, int easy);
-
-# 140 "../../../server-code/src/map/unit.h" 3 4
-_Bool
-# 140 "../../../server-code/src/map/unit.h"
- (*can_reach_bl) (struct block_list *bl, struct block_list *tbl, int range, int easy, short *x, short *y);
- int (*calc_pos) (struct block_list *bl, int tx, int ty, uint8 dir);
- int (*attack_timer_sub) (struct block_list *src, int tid, int64 tick);
- int (*skillcastcancel) (struct block_list *bl, int type);
- void (*dataset) (struct block_list *bl);
- int (*counttargeted) (struct block_list *bl);
- int (*fixdamage) (struct block_list *src, struct block_list *target, int sdelay, int ddelay, int64 damage, short div, unsigned char type, int64 damage2);
- int (*changeviewsize) (struct block_list *bl, short size);
- int (*remove_map) (struct block_list *bl, clr_type clrtype, const char *file, int line, const char *func);
- void (*remove_map_pc) (struct map_session_data *sd, clr_type clrtype);
- void (*free_pc) (struct map_session_data *sd);
- int (*free) (struct block_list *bl, clr_type clrtype);
-};
-
-
-extern const short dirx[8];
-extern const short diry[8];
-
-void unit_defaults(void);
-
-
-extern struct unit_interface *unit;
-# 26 "../../../server-code/src/map/elemental.h" 2
-# 35 "../../../server-code/src/map/elemental.h"
-enum elemental_id {
- ELEID_EL_AGNI_S = 2114,
- ELEID_EL_AGNI_M = 2115,
- ELEID_EL_AGNI_L = 2116,
- ELEID_EL_AQUA_S = 2117,
- ELEID_EL_AQUA_M = 2118,
- ELEID_EL_AQUA_L = 2119,
- ELEID_EL_VENTUS_S = 2120,
- ELEID_EL_VENTUS_M = 2121,
- ELEID_EL_VENTUS_L = 2122,
- ELEID_EL_TERA_S = 2123,
- ELEID_EL_TERA_M = 2124,
- ELEID_EL_TERA_L = 2125,
-};
-# 72 "../../../server-code/src/map/elemental.h"
-struct elemental_skill {
- unsigned short id, lv;
- short mode;
-};
-
-struct s_elemental_db {
- int class_;
- char sprite[(23 + 1)], name[(23 + 1)];
- unsigned short lv;
- short range2, range3;
- struct status_data status;
- struct view_data vd;
- struct elemental_skill skill[3];
-};
-
-struct elemental_data {
- struct block_list bl;
- struct unit_data ud;
- struct view_data *vd;
- struct status_data base_status, battle_status;
- struct status_change sc;
- struct regen_data regen;
-
- struct s_elemental_db *db;
- struct s_elemental elemental;
-
- struct map_session_data *master;
- int summon_timer;
- int skill_timer;
-
- int64 last_thinktime, last_linktime, last_spdrain_time;
- short min_chase;
- int target_id, attacked_id;
-};
-
-
-
-
-
-
-struct elemental_interface {
-
-
- struct s_elemental_db db[12];
-
-
- int (*init) (
-# 118 "../../../server-code/src/map/elemental.h" 3 4
- _Bool
-# 118 "../../../server-code/src/map/elemental.h"
- minimal);
- void (*final) (void);
-
-
-# 121 "../../../server-code/src/map/elemental.h" 3 4
-_Bool
-# 121 "../../../server-code/src/map/elemental.h"
- (*class) (int class_);
- struct view_data * (*get_viewdata) (int class_);
-
- int (*create) (struct map_session_data *sd, int class_, unsigned int lifetime);
- int (*data_received) (const struct s_elemental *ele,
-# 125 "../../../server-code/src/map/elemental.h" 3 4
- _Bool
-# 125 "../../../server-code/src/map/elemental.h"
- flag);
- int (*save) (struct elemental_data *ed);
-
- int (*change_mode_ack) (struct elemental_data *ed, int mode);
- int (*change_mode) (struct elemental_data *ed, uint32 mode);
-
- void (*heal) (struct elemental_data *ed, int hp, int sp);
- int (*dead) (struct elemental_data *ed);
-
- int (*delete) (struct elemental_data *ed, int reply);
- void (*summon_stop) (struct elemental_data *ed);
-
- int (*get_lifetime) (struct elemental_data *ed);
-
- int (*unlocktarget) (struct elemental_data *ed);
- int (*skillnotok) (uint16 skill_id, struct elemental_data *ed);
- int (*set_target) (struct map_session_data *sd, struct block_list *bl);
- int (*clean_single_effect) (struct elemental_data *ed, uint16 skill_id);
- int (*clean_effect) (struct elemental_data *ed);
- int (*action) (struct elemental_data *ed, struct block_list *bl, int64 tick);
- struct skill_condition (*skill_get_requirements) (uint16 skill_id, uint16 skill_lv);
-
- int (*read_skilldb) (void);
- void (*reload_db) (void);
- void (*reload_skilldb) (void);
-
- int (*search_index) (int class_);
- void (*summon_init) (struct elemental_data *ed);
- int (*summon_end_timer) (int tid, int64 tick, int id, intptr_t data);
- int (*ai_sub_timer_activesearch) (struct block_list *bl, va_list ap);
- int (*ai_sub_timer) (struct elemental_data *ed, struct map_session_data *sd, int64 tick);
- int (*ai_sub_foreachclient) (struct map_session_data *sd, va_list ap);
- int (*ai_timer) (int tid, int64 tick, int id, intptr_t data);
- int (*read_db) (void);
-};
-
-
-void elemental_defaults(void);
-
-
-extern struct elemental_interface *elemental;
-# 33 "../../../server-code/src/map/clif.c" 2
-# 1 "../../../server-code/src/map/guild.h" 1
-# 29 "../../../server-code/src/map/guild.h"
-struct map_session_data;
-# 41 "../../../server-code/src/map/guild.h"
-struct eventlist {
- char name[( (23 + 1) * 2 + 3 )];
- struct eventlist *next;
-};
-
-
-
-
-
-struct guardian_data {
- int number;
-
- struct guild *g;
- struct guild_castle* castle;
-};
-struct guild_expcache {
- int guild_id, account_id, char_id;
- uint64 exp;
-};
-struct s_guild_skill_tree {
- int id;
- int max;
- struct {
- short id;
- short lv;
- } need[5];
-};
-
-
-struct guild_interface {
- void (*init) (
-# 71 "../../../server-code/src/map/guild.h" 3 4
- _Bool
-# 71 "../../../server-code/src/map/guild.h"
- minimal);
- void (*final) (void);
-
- struct DBMap *db;
- struct DBMap *castle_db;
- struct DBMap *expcache_db;
- struct DBMap *infoevent_db;
-
- struct eri *expcache_ers;
-
- struct s_guild_skill_tree skill_tree[15];
-
- struct npc_data **flags;
- unsigned short flags_count;
-
- int (*skill_get_max) (int id);
-
- int (*checkskill) (struct guild *g,int id);
- int (*check_skill_require) (struct guild *g,int id);
- int (*checkcastles) (struct guild *g);
-
-# 91 "../../../server-code/src/map/guild.h" 3 4
-_Bool
-# 91 "../../../server-code/src/map/guild.h"
- (*isallied) (int guild_id, int guild_id2);
-
- struct guild *(*search) (int guild_id);
- struct guild *(*searchname) (char *str);
- struct guild_castle *(*castle_search) (int gcid);
-
- struct guild_castle *(*mapname2gc) (const char* mapname);
- struct guild_castle *(*mapindex2gc) (short map_index);
-
- struct map_session_data *(*getavailablesd) (struct guild *g);
- int (*getindex) (const struct guild *g, int account_id, int char_id);
- int (*getposition) (struct guild *g, struct map_session_data *sd);
- unsigned int (*payexp) (struct map_session_data *sd,unsigned int exp);
- int (*getexp) (struct map_session_data *sd,int exp);
-
- int (*create) (struct map_session_data *sd, const char *name);
- int (*created) (int account_id,int guild_id);
- int (*request_info) (int guild_id);
- int (*recv_noinfo) (int guild_id);
- int (*recv_info) (const struct guild *sg);
- int (*npc_request_info) (int guild_id,const char *ev);
- int (*invite) (struct map_session_data *sd,struct map_session_data *tsd);
- int (*reply_invite) (struct map_session_data *sd,int guild_id,int flag);
- void (*member_joined) (struct map_session_data *sd);
- int (*member_added) (int guild_id,int account_id,int char_id,int flag);
- int (*leave) (struct map_session_data *sd,int guild_id,int account_id,int char_id,const char *mes);
- int (*member_withdraw) (int guild_id,int account_id,int char_id,int flag,const char *name,const char *mes);
- int (*expulsion) (struct map_session_data *sd,int guild_id,int account_id,int char_id,const char *mes);
- int (*skillup) (struct map_session_data* sd, uint16 skill_id);
- void (*block_skill) (struct map_session_data *sd, int time);
- int (*reqalliance) (struct map_session_data *sd,struct map_session_data *tsd);
- int (*reply_reqalliance) (struct map_session_data *sd,int account_id,int flag);
- int (*allianceack) (int guild_id1,int guild_id2,int account_id1,int account_id2,int flag,const char *name1,const char *name2);
- int (*delalliance) (struct map_session_data *sd,int guild_id,int flag);
- int (*opposition) (struct map_session_data *sd,struct map_session_data *tsd);
- int (*check_alliance) (int guild_id1, int guild_id2, int flag);
-
- int (*send_memberinfoshort) (struct map_session_data *sd,int online);
- int (*recv_memberinfoshort) (int guild_id,int account_id,int char_id,int online,int lv,int class_);
- int (*change_memberposition) (int guild_id,int account_id,int char_id,short idx);
- int (*memberposition_changed) (struct guild *g,int idx,int pos);
- int (*change_position) (int guild_id,int idx,int mode,int exp_mode,const char *name);
- int (*position_changed) (int guild_id, int idx, const struct guild_position *p);
- int (*change_notice) (struct map_session_data *sd,int guild_id,const char *mes1,const char *mes2);
- int (*notice_changed) (int guild_id,const char *mes1,const char *mes2);
- int (*change_emblem) (struct map_session_data *sd,int len,const char *data);
- int (*emblem_changed) (int len,int guild_id,int emblem_id,const char *data);
- int (*send_message) (struct map_session_data *sd,const char *mes,int len);
- int (*recv_message) (int guild_id,int account_id,const char *mes,int len);
- int (*send_dot_remove) (struct map_session_data *sd);
- int (*skillupack) (int guild_id,uint16 skill_id,int account_id);
- int (*dobreak) (struct map_session_data *sd, const char *name);
- int (*broken) (int guild_id,int flag);
- int (*gm_change) (int guild_id, struct map_session_data *sd);
- int (*gm_changed) (int guild_id, int account_id, int char_id);
-
- void (*castle_map_init) (void);
- int (*castledatasave) (int castle_id,int index,int value);
- int (*castledataloadack) (int len, const struct guild_castle *gc);
- void (*castle_reconnect) (int castle_id, int index, int value);
-
- void (*agit_start) (void);
- void (*agit_end) (void);
- void (*agit2_start) (void);
- void (*agit2_end) (void);
-
- void (*flag_add) (struct npc_data *nd);
- void (*flag_remove) (struct npc_data *nd);
- void (*flags_clear) (void);
-
- void (*aura_refresh) (struct map_session_data *sd, uint16 skill_id, uint16 skill_lv);
-
- void (*retrieveitembound) (int char_id,int aid,int guild_id);
-
- int (*payexp_timer) (int tid, int64 tick, int id, intptr_t data);
- struct map_session_data *(*sd_check) (int guild_id, int account_id, int char_id);
-
-# 167 "../../../server-code/src/map/guild.h" 3 4
-_Bool
-# 167 "../../../server-code/src/map/guild.h"
- (*read_guildskill_tree_db) (char* split[], int columns, int current);
-
-# 168 "../../../server-code/src/map/guild.h" 3 4
-_Bool
-# 168 "../../../server-code/src/map/guild.h"
- (*read_castledb) (char* str[], int columns, int current);
- int (*payexp_timer_sub) (union DBKey key, struct DBData *data, va_list ap);
- int (*send_xy_timer_sub) (union DBKey key, struct DBData *data, va_list ap);
- int (*send_xy_timer) (int tid, int64 tick, int id, intptr_t data);
- struct DBData (*create_expcache) (union DBKey key, va_list args);
- int (*eventlist_db_final) (union DBKey key, struct DBData *data, va_list ap);
- int (*expcache_db_final) (union DBKey key, struct DBData *data, va_list ap);
- int (*castle_db_final) (union DBKey key, struct DBData *data, va_list ap);
- int (*broken_sub) (union DBKey key, struct DBData *data, va_list ap);
- int (*castle_broken_sub) (union DBKey key, struct DBData *data, va_list ap);
- void (*makemember) (struct guild_member *m,struct map_session_data *sd);
- int (*check_member) (const struct guild *g);
- int (*get_alliance_count) (struct guild *g,int flag);
- void (*castle_reconnect_sub) (void *key, void *data, va_list ap);
-};
-
-
-void guild_defaults(void);
-
-
-extern struct guild_interface *guild;
-# 34 "../../../server-code/src/map/clif.c" 2
-# 1 "../../../server-code/src/map/homunculus.h" 1
-# 29 "../../../server-code/src/map/homunculus.h"
-struct map_session_data;
-
-
-enum homun_id {
- HOMID_LIF = 6001,
- HOMID_AMISTR = 6002,
- HOMID_FILIR = 6003,
- HOMID_VANILMIRTH = 6004,
- HOMID_LIF2 = 6005,
- HOMID_AMISTR2 = 6006,
- HOMID_FILIR2 = 6007,
- HOMID_VANILMIRTH2 = 6008,
- HOMID_LIF_E = 6009,
- HOMID_AMISTR_E = 6010,
- HOMID_FILIR_E = 6011,
- HOMID_VANILMIRTH_E = 6012,
- HOMID_LIF2_E = 6013,
- HOMID_AMISTR2_E = 6014,
- HOMID_FILIR2_E = 6015,
- HOMID_VANILMIRTH2_E = 6016,
-
- HOMID_EIRA = 6048,
- HOMID_BAYERI = 6049,
- HOMID_SERA = 6050,
- HOMID_DIETR = 6051,
- HOMID_ELEANOR = 6052,
-};
-# 77 "../../../server-code/src/map/homunculus.h"
-struct h_stats {
- unsigned int HP, SP;
- unsigned short str, agi, vit, int_, dex, luk;
-};
-
-struct s_homunculus_db {
- int base_class, evo_class;
- char name[(23 + 1)];
- struct h_stats base, gmin, gmax, emin, emax;
- int foodID ;
- int baseASPD ;
- long hungryDelay ;
- unsigned char element, race, base_size, evo_size;
-};
-
-enum {
- HOMUNCULUS_CLASS,
- HOMUNCULUS_FOOD
-};
-
-enum {
- MH_MD_FIGHTING = 1,
- MH_MD_GRAPPLING
-};
-
-enum {
- SP_ACK = 0x0,
- SP_INTIMATE = 0x1,
- SP_HUNGRY = 0x2,
-};
-
-enum homun_state {
- HOM_ST_ACTIVE = 0,
- HOM_ST_REST = 1,
- HOM_ST_MORPH = 2,
-};
-
-struct homun_data {
- struct block_list bl;
- struct unit_data ud;
- struct view_data *vd;
- struct status_data base_status, battle_status;
- struct status_change sc;
- struct regen_data regen;
- struct s_homunculus_db *homunculusDB;
- struct s_homunculus homunculus;
-
- struct map_session_data *master;
- int hungry_timer;
- unsigned int exp_next;
- char blockskill[1478];
-
- int64 masterteleport_timer;
-};
-
-struct homun_skill_tree_entry {
- short id;
- unsigned char max;
- unsigned char joblv;
- short intimacylv;
- struct {
- short id;
- unsigned char lv;
- } need[5];
-};
-
-enum homun_type {
- HT_REG,
- HT_EVO,
- HT_S,
- HT_INVALID = -1,
-};
-
-struct homun_dbs {
- unsigned int exptable[175];
- struct view_data viewdb[52];
- struct s_homunculus_db db[52];
- struct homun_skill_tree_entry skill_tree[52][86];
-};
-
-
-struct homunculus_interface {
- struct homun_dbs *dbs;
-
- void (*init) (
-# 161 "../../../server-code/src/map/homunculus.h" 3 4
- _Bool
-# 161 "../../../server-code/src/map/homunculus.h"
- minimal);
- void (*final) (void);
- void (*reload) (void);
- void (*reload_skill) (void);
-
- struct view_data* (*get_viewdata) (int class_);
- enum homun_type (*class2type) (int class_);
- void (*damaged) (struct homun_data *hd);
- int (*dead) (struct homun_data *hd);
- int (*vaporize) (struct map_session_data *sd, enum homun_state flag);
- int (*delete) (struct homun_data *hd, int emote);
- int (*checkskill) (struct homun_data *hd, uint16 skill_id);
- int (*calc_skilltree) (struct homun_data *hd, int flag_evolve);
- int (*skill_tree_get_max) (int id, int b_class);
- void (*skillup) (struct homun_data *hd, uint16 skill_id);
-
-# 176 "../../../server-code/src/map/homunculus.h" 3 4
-_Bool
-# 176 "../../../server-code/src/map/homunculus.h"
- (*levelup) (struct homun_data *hd);
- int (*change_class) (struct homun_data *hd, short class_);
-
-# 178 "../../../server-code/src/map/homunculus.h" 3 4
-_Bool
-# 178 "../../../server-code/src/map/homunculus.h"
- (*evolve) (struct homun_data *hd);
-
-# 179 "../../../server-code/src/map/homunculus.h" 3 4
-_Bool
-# 179 "../../../server-code/src/map/homunculus.h"
- (*mutate) (struct homun_data *hd, int homun_id);
- int (*gainexp) (struct homun_data *hd, unsigned int exp);
- unsigned int (*add_intimacy) (struct homun_data * hd, unsigned int value);
- unsigned int (*consume_intimacy) (struct homun_data *hd, unsigned int value);
- void (*healed) (struct homun_data *hd);
- void (*save) (struct homun_data *hd);
- unsigned char (*menu) (struct map_session_data *sd,unsigned char menu_num);
-
-# 186 "../../../server-code/src/map/homunculus.h" 3 4
-_Bool
-# 186 "../../../server-code/src/map/homunculus.h"
- (*feed) (struct map_session_data *sd, struct homun_data *hd);
- int (*hunger_timer) (int tid, int64 tick, int id, intptr_t data);
- void (*hunger_timer_delete) (struct homun_data *hd);
- int (*change_name) (struct map_session_data *sd, const char *name);
-
-# 190 "../../../server-code/src/map/homunculus.h" 3 4
-_Bool
-# 190 "../../../server-code/src/map/homunculus.h"
- (*change_name_ack) (struct map_session_data *sd, const char *name, int flag);
- int (*db_search) (int key,int type);
-
-# 192 "../../../server-code/src/map/homunculus.h" 3 4
-_Bool
-# 192 "../../../server-code/src/map/homunculus.h"
- (*create) (struct map_session_data *sd, const struct s_homunculus *hom);
- void (*init_timers) (struct homun_data * hd);
-
-# 194 "../../../server-code/src/map/homunculus.h" 3 4
-_Bool
-# 194 "../../../server-code/src/map/homunculus.h"
- (*call) (struct map_session_data *sd);
-
-# 195 "../../../server-code/src/map/homunculus.h" 3 4
-_Bool
-# 195 "../../../server-code/src/map/homunculus.h"
- (*recv_data) (int account_id, const struct s_homunculus *sh, int flag);
-
-# 196 "../../../server-code/src/map/homunculus.h" 3 4
-_Bool
-# 196 "../../../server-code/src/map/homunculus.h"
- (*creation_request) (struct map_session_data *sd, int class_);
-
-# 197 "../../../server-code/src/map/homunculus.h" 3 4
-_Bool
-# 197 "../../../server-code/src/map/homunculus.h"
- (*ressurect) (struct map_session_data* sd, unsigned char per, short x, short y);
- void (*revive) (struct homun_data *hd, unsigned int hp, unsigned int sp);
- void (*stat_reset) (struct homun_data *hd);
-
-# 200 "../../../server-code/src/map/homunculus.h" 3 4
-_Bool
-# 200 "../../../server-code/src/map/homunculus.h"
- (*shuffle) (struct homun_data *hd);
-
-# 201 "../../../server-code/src/map/homunculus.h" 3 4
-_Bool
-# 201 "../../../server-code/src/map/homunculus.h"
- (*read_db_sub) (char* str[], int columns, int current);
- void (*read_db) (void);
-
-# 203 "../../../server-code/src/map/homunculus.h" 3 4
-_Bool
-# 203 "../../../server-code/src/map/homunculus.h"
- (*read_skill_db_sub) (char* split[], int columns, int current);
- void (*skill_db_read) (void);
- void (*exp_db_read) (void);
- void (*addspiritball) (struct homun_data *hd, int max);
- void (*delspiritball) (struct homun_data *hd, int count, int type);
- int8 (*get_intimacy_grade) (struct homun_data *hd);
-};
-
-
-void homunculus_defaults(void);
-
-
-extern struct homunculus_interface *homun;
-# 35 "../../../server-code/src/map/clif.c" 2
-# 1 "../../../server-code/src/map/instance.h" 1
-# 24 "../../../server-code/src/map/instance.h"
-# 1 "../../../server-code/src/map/script.h" 1
-# 28 "../../../server-code/src/map/script.h"
-# 1 "../../../server-code/src/common/strlib.h" 1
-# 27 "../../../server-code/src/common/strlib.h"
-# 1 "/usr/include/string.h" 1 3 4
-# 27 "/usr/include/string.h" 3 4
-
-
-
-
-
-# 1 "/usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h" 1 3 4
-# 33 "/usr/include/string.h" 2 3 4
-
-
-
-
-
-
-
-
-
-
-# 42 "/usr/include/string.h" 3 4
-extern void *memcpy (void *__restrict __dest, const void *__restrict __src,
- size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
-
-
-extern void *memmove (void *__dest, const void *__src, size_t __n)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
-
-
-
-
-
-
-extern void *memccpy (void *__restrict __dest, const void *__restrict __src,
- int __c, size_t __n)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
-
-
-
-
-
-extern void *memset (void *__s, int __c, size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
-
-
-extern int memcmp (const void *__s1, const void *__s2, size_t __n)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
-# 92 "/usr/include/string.h" 3 4
-extern void *memchr (const void *__s, int __c, size_t __n)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
-
-
-# 123 "/usr/include/string.h" 3 4
-
-
-extern char *strcpy (char *__restrict __dest, const char *__restrict __src)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
-
-extern char *strncpy (char *__restrict __dest,
- const char *__restrict __src, size_t __n)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
-
-
-extern char *strcat (char *__restrict __dest, const char *__restrict __src)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
-
-extern char *strncat (char *__restrict __dest, const char *__restrict __src,
- size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
-
-
-extern int strcmp (const char *__s1, const char *__s2)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
-
-extern int strncmp (const char *__s1, const char *__s2, size_t __n)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
-
-
-extern int strcoll (const char *__s1, const char *__s2)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
-
-extern size_t strxfrm (char *__restrict __dest,
- const char *__restrict __src, size_t __n)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2)));
-
-# 162 "/usr/include/string.h" 3 4
-extern int strcoll_l (const char *__s1, const char *__s2, __locale_t __l)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 3)));
-
-extern size_t strxfrm_l (char *__dest, const char *__src, size_t __n,
- __locale_t __l) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 4)));
-
-
-
-
-extern char *strdup (const char *__s)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1)));
-
-
-
-
-
-
-extern char *strndup (const char *__string, size_t __n)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1)));
-# 206 "/usr/include/string.h" 3 4
-
-# 231 "/usr/include/string.h" 3 4
-extern char *strchr (const char *__s, int __c)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
-# 258 "/usr/include/string.h" 3 4
-extern char *strrchr (const char *__s, int __c)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
-
-
-# 277 "/usr/include/string.h" 3 4
-
-
-
-extern size_t strcspn (const char *__s, const char *__reject)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
-
-
-extern size_t strspn (const char *__s, const char *__accept)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
-# 310 "/usr/include/string.h" 3 4
-extern char *strpbrk (const char *__s, const char *__accept)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
-# 337 "/usr/include/string.h" 3 4
-extern char *strstr (const char *__haystack, const char *__needle)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
-
-
-
-
-extern char *strtok (char *__restrict __s, const char *__restrict __delim)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2)));
-
-
-
-
-extern char *__strtok_r (char *__restrict __s,
- const char *__restrict __delim,
- char **__restrict __save_ptr)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 3)));
-
-extern char *strtok_r (char *__restrict __s, const char *__restrict __delim,
- char **__restrict __save_ptr)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 3)));
-# 392 "/usr/include/string.h" 3 4
-
-
-extern size_t strlen (const char *__s)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
-
-
-
-
-
-extern size_t strnlen (const char *__string, size_t __maxlen)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
-
-
-
-
-
-extern char *strerror (int __errnum) __attribute__ ((__nothrow__ , __leaf__));
-
-# 422 "/usr/include/string.h" 3 4
-extern int strerror_r (int __errnum, char *__buf, size_t __buflen) __asm__ ("" "__xpg_strerror_r") __attribute__ ((__nothrow__ , __leaf__))
-
- __attribute__ ((__nonnull__ (2)));
-# 440 "/usr/include/string.h" 3 4
-extern char *strerror_l (int __errnum, __locale_t __l) __attribute__ ((__nothrow__ , __leaf__));
-
-
-
-
-
-extern void __bzero (void *__s, size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
-
-
-
-extern void bcopy (const void *__src, void *__dest, size_t __n)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
-
-
-extern void bzero (void *__s, size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
-
-
-extern int bcmp (const void *__s1, const void *__s2, size_t __n)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
-# 484 "/usr/include/string.h" 3 4
-extern char *index (const char *__s, int __c)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
-# 512 "/usr/include/string.h" 3 4
-extern char *rindex (const char *__s, int __c)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
-
-
-
-
-extern int ffs (int __i) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__));
-# 529 "/usr/include/string.h" 3 4
-extern int strcasecmp (const char *__s1, const char *__s2)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
-
-
-extern int strncasecmp (const char *__s1, const char *__s2, size_t __n)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
-# 552 "/usr/include/string.h" 3 4
-extern char *strsep (char **__restrict __stringp,
- const char *__restrict __delim)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
-
-
-
-
-extern char *strsignal (int __sig) __attribute__ ((__nothrow__ , __leaf__));
-
-
-extern char *__stpcpy (char *__restrict __dest, const char *__restrict __src)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
-extern char *stpcpy (char *__restrict __dest, const char *__restrict __src)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
-
-
-
-extern char *__stpncpy (char *__restrict __dest,
- const char *__restrict __src, size_t __n)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
-extern char *stpncpy (char *__restrict __dest,
- const char *__restrict __src, size_t __n)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
-# 639 "/usr/include/string.h" 3 4
-
-# 28 "../../../server-code/src/common/strlib.h" 2
-# 54 "../../../server-code/src/common/strlib.h"
-
-# 54 "../../../server-code/src/common/strlib.h"
-typedef enum e_svopt {
-
- SV_NOESCAPE_NOTERMINATE = 0,
-
- SV_ESCAPE_C = 1,
-
- SV_TERMINATE_LF = 2,
- SV_TERMINATE_CRLF = 4,
- SV_TERMINATE_CR = 8,
-
- SV_KEEP_TERMINATOR = 16
-} e_svopt;
-
-
-
-
-
-
-struct s_svstate {
- const char* str;
- int len;
- int off;
- int start;
- int end;
- enum e_svopt opt;
- char delim;
-
-# 80 "../../../server-code/src/common/strlib.h" 3 4
-_Bool
-# 80 "../../../server-code/src/common/strlib.h"
- done;
-};
-
-
-
-struct StringBuf {
- char *buf_;
- char *ptr_;
- unsigned int max_;
-};
-typedef struct StringBuf StringBuf;
-
-struct strlib_interface {
- char *(*jstrescape) (char* pt);
- char *(*jstrescapecpy) (char* pt, const char* spt);
- int (*jmemescapecpy) (char* pt, const char* spt, int size);
- int (*remove_control_chars_) (char* str);
- char *(*trim_) (char* str);
- char *(*normalize_name_) (char* str,const char* delims);
- const char *(*stristr_) (const char *haystack, const char *needle);
-
-
- size_t (*strnlen_) (const char* string, size_t maxlen);
-
-
- char * (*strtok_r_) (char *s1, const char *s2, char **lasts);
-
- int (*e_mail_check_) (char* email);
- int (*config_switch_) (const char* str);
-
-
- char *(*safestrncpy_) (char* dst, const char* src, size_t n);
-
-
- size_t (*safestrnlen_) (const char* string, size_t maxlen);
-
-
-
-
- int (*safesnprintf_) (char *buf, size_t sz, const char *fmt, ...) __attribute__((format(printf, 3, 4)));
-
-
-
- int (*strline_) (const char* str, size_t pos);
-
-
-
-
-
-# 128 "../../../server-code/src/common/strlib.h" 3 4
-_Bool
-# 128 "../../../server-code/src/common/strlib.h"
- (*bin2hex_) (char* output, unsigned char* input, size_t count);
-};
-
-struct stringbuf_interface {
- StringBuf* (*Malloc) (void);
- void (*Init) (StringBuf* self);
- int (*Printf) (StringBuf *self, const char *fmt, ...) __attribute__((format(printf, 2, 3)));
- int (*Vprintf) (StringBuf* self, const char* fmt, va_list args);
- int (*Append) (StringBuf* self, const StringBuf *sbuf);
- int (*AppendStr) (StringBuf* self, const char* str);
- int (*Length) (StringBuf* self);
- char* (*Value) (StringBuf* self);
- void (*Clear) (StringBuf* self);
- void (*Destroy) (StringBuf* self);
- void (*Free) (StringBuf* self);
-};
-
-struct sv_interface {
-
-
-
-
-
- int (*parse_next) (struct s_svstate* svstate);
-
-
-
-
-
-
- int (*parse) (const char* str, int len, int startoff, char delim, int* out_pos, int npos, enum e_svopt opt);
-
-
-
-
-
-
-
- int (*split) (char* str, int len, int startoff, char delim, char** out_fields, int nfields, enum e_svopt opt);
-
-
-
-
- size_t (*escape_c) (char* out_dest, const char* src, size_t len, const char* escapes);
-
-
-
-
- size_t (*unescape_c) (char* out_dest, const char* src, size_t len);
-
-
- const char* (*skip_escaped_c) (const char* p);
-
-
-
-
-
-# 184 "../../../server-code/src/common/strlib.h" 3 4
-_Bool
-# 184 "../../../server-code/src/common/strlib.h"
- (*readdb) (const char* directory, const char* filename, char delim, int mincols, int maxcols, int maxrows,
-# 184 "../../../server-code/src/common/strlib.h" 3 4
- _Bool
-# 184 "../../../server-code/src/common/strlib.h"
- (*parseproc)(char* fields[], int columns, int current));
-};
-
-
-void strlib_defaults(void);
-
-
-extern struct strlib_interface *strlib;
-extern struct stringbuf_interface *StrBuf;
-extern struct sv_interface *sv;
-# 29 "../../../server-code/src/map/script.h" 2
-
-# 1 "/usr/include/errno.h" 1 3 4
-# 31 "/usr/include/errno.h" 3 4
-
-
-
-
-# 1 "/usr/include/x86_64-linux-gnu/bits/errno.h" 1 3 4
-# 24 "/usr/include/x86_64-linux-gnu/bits/errno.h" 3 4
-# 1 "/usr/include/linux/errno.h" 1 3 4
-# 1 "/usr/include/x86_64-linux-gnu/asm/errno.h" 1 3 4
-# 1 "/usr/include/asm-generic/errno.h" 1 3 4
-
-
-
-# 1 "/usr/include/asm-generic/errno-base.h" 1 3 4
-# 5 "/usr/include/asm-generic/errno.h" 2 3 4
-# 1 "/usr/include/x86_64-linux-gnu/asm/errno.h" 2 3 4
-# 1 "/usr/include/linux/errno.h" 2 3 4
-# 25 "/usr/include/x86_64-linux-gnu/bits/errno.h" 2 3 4
-# 50 "/usr/include/x86_64-linux-gnu/bits/errno.h" 3 4
-
-# 50 "/usr/include/x86_64-linux-gnu/bits/errno.h" 3 4
-extern int *__errno_location (void) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__));
-# 36 "/usr/include/errno.h" 2 3 4
-# 58 "/usr/include/errno.h" 3 4
-
-# 31 "../../../server-code/src/map/script.h" 2
-# 1 "/usr/include/setjmp.h" 1 3 4
-# 27 "/usr/include/setjmp.h" 3 4
-
-
-# 1 "/usr/include/x86_64-linux-gnu/bits/setjmp.h" 1 3 4
-# 26 "/usr/include/x86_64-linux-gnu/bits/setjmp.h" 3 4
-# 1 "/usr/include/x86_64-linux-gnu/bits/wordsize.h" 1 3 4
-# 27 "/usr/include/x86_64-linux-gnu/bits/setjmp.h" 2 3 4
-
-
-
-
-typedef long int __jmp_buf[8];
-# 30 "/usr/include/setjmp.h" 2 3 4
-# 1 "/usr/include/x86_64-linux-gnu/bits/sigset.h" 1 3 4
-# 22 "/usr/include/x86_64-linux-gnu/bits/sigset.h" 3 4
-typedef int __sig_atomic_t;
-
-
-
-
-typedef struct
- {
- unsigned long int __val[(1024 / (8 * sizeof (unsigned long int)))];
- } __sigset_t;
-# 31 "/usr/include/setjmp.h" 2 3 4
-
-
-
-struct __jmp_buf_tag
- {
-
-
-
-
- __jmp_buf __jmpbuf;
- int __mask_was_saved;
- __sigset_t __saved_mask;
- };
-
-
-
-
-typedef struct __jmp_buf_tag jmp_buf[1];
-
-
-
-extern int setjmp (jmp_buf __env) __attribute__ ((__nothrow__));
-
-
-
-
-
-
-extern int __sigsetjmp (struct __jmp_buf_tag __env[1], int __savemask) __attribute__ ((__nothrow__));
-
-
-
-extern int _setjmp (struct __jmp_buf_tag __env[1]) __attribute__ ((__nothrow__));
-
-
-
-
-
-
-
-
-
-
-extern void longjmp (struct __jmp_buf_tag __env[1], int __val)
- __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__));
-
-
-
-
-
-
-
-extern void _longjmp (struct __jmp_buf_tag __env[1], int __val)
- __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__));
-
-
-
-
-
-
-
-typedef struct __jmp_buf_tag sigjmp_buf[1];
-# 102 "/usr/include/setjmp.h" 3 4
-extern void siglongjmp (sigjmp_buf __env, int __val)
- __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__));
-# 112 "/usr/include/setjmp.h" 3 4
-
-# 32 "../../../server-code/src/map/script.h" 2
-
-
-
-
-
-# 36 "../../../server-code/src/map/script.h"
-struct Sql;
-struct eri;
-struct item_data;
-# 192 "../../../server-code/src/map/script.h"
-typedef enum c_op {
- C_NOP,
- C_POS,
- C_INT,
- C_PARAM,
- C_FUNC,
- C_STR,
- C_CONSTSTR,
- C_ARG,
- C_NAME,
- C_EOL,
- C_RETINFO,
- C_USERFUNC,
- C_USERFUNC_POS,
- C_REF,
- C_LSTR,
-
-
- C_OP3,
- C_LOR,
- C_LAND,
- C_LE,
- C_LT,
- C_GE,
- C_GT,
- C_EQ,
- C_NE,
- C_XOR,
- C_OR,
- C_AND,
- C_ADD,
- C_SUB,
- C_MUL,
- C_DIV,
- C_MOD,
- C_NEG,
- C_LNOT,
- C_NOT,
- C_R_SHIFT,
- C_L_SHIFT,
- C_ADD_POST,
- C_SUB_POST,
- C_ADD_PRE,
- C_SUB_PRE,
- C_RE_EQ,
- C_RE_NE,
-} c_op;
-
-
-enum ScriptQueueOptions {
- SQO_NONE,
- SQO_ONLOGOUT,
- SQO_ONDEATH,
- SQO_ONMAPCHANGE,
- SQO_MAX,
-};
-
-enum e_script_state { RUN,STOP,END,RERUNLINE,GOTO,RETFUNC,CLOSE };
-
-enum script_parse_options {
- SCRIPT_USE_LABEL_DB = 0x1,
- SCRIPT_IGNORE_EXTERNAL_BRACKETS = 0x2,
- SCRIPT_RETURN_EMPTY_SCRIPT = 0x4
-};
-
-enum { LABEL_NEXTLINE=1,LABEL_START };
-
-
-
-enum curly_type {
- TYPE_NULL = 0,
- TYPE_IF,
- TYPE_SWITCH,
- TYPE_WHILE,
- TYPE_FOR,
- TYPE_DO,
- TYPE_USERFUNC,
- TYPE_ARGLIST
-};
-
-enum e_arglist {
- ARGLIST_UNDEFINED = 0,
- ARGLIST_NO_PAREN = 1,
- ARGLIST_PAREN = 2,
-};
-
-
-
-
-
-
-
-enum {
- MF_NOMEMO,
- MF_NOTELEPORT,
- MF_NOSAVE,
- MF_NOBRANCH,
- MF_NOPENALTY,
- MF_NOZENYPENALTY,
- MF_PVP,
- MF_PVP_NOPARTY,
- MF_PVP_NOGUILD,
- MF_GVG,
- MF_GVG_NOPARTY,
- MF_NOTRADE,
- MF_NOSKILL,
- MF_NOWARP,
- MF_PARTYLOCK,
- MF_NOICEWALL,
- MF_SNOW,
- MF_FOG,
- MF_SAKURA,
- MF_LEAVES,
-
- MF_CLOUDS = 23,
- MF_CLOUDS2,
- MF_FIREWORKS,
- MF_GVG_CASTLE,
- MF_GVG_DUNGEON,
- MF_NIGHTENABLED,
- MF_NOBASEEXP,
- MF_NOJOBEXP,
- MF_NOMOBLOOT,
- MF_NOMVPLOOT,
- MF_NORETURN,
- MF_NOWARPTO,
- MF_NIGHTMAREDROP,
- MF_ZONE,
- MF_NOCOMMAND,
- MF_NODROP,
- MF_JEXP,
- MF_BEXP,
- MF_NOVENDING,
- MF_LOADEVENT,
- MF_NOCHAT,
- MF_NOEXPPENALTY,
- MF_GUILDLOCK,
- MF_TOWN,
- MF_AUTOTRADE,
- MF_ALLOWKS,
- MF_MONSTER_NOTELEPORT,
- MF_PVP_NOCALCRANK,
- MF_BATTLEGROUND,
- MF_RESET,
- MF_NOTOMB,
- MF_NOCASHSHOP,
- MF_NOVIEWID
-};
-
-
-
-
-
-struct Script_Config {
- unsigned warn_func_mismatch_argtypes : 1;
- unsigned warn_func_mismatch_paramnum : 1;
- int check_cmdcount;
- int check_gotocount;
- int input_min_value;
- int input_max_value;
-
- const char *die_event_name;
- const char *kill_pc_event_name;
- const char *kill_mob_event_name;
- const char *login_event_name;
- const char *logout_event_name;
- const char *loadmap_event_name;
- const char *baselvup_event_name;
- const char *joblvup_event_name;
-
- const char* ontouch_name;
- const char* ontouch2_name;
- const char* onuntouch_name;
-};
-
-
-
-
-struct reg_db {
- struct DBMap *vars;
- struct DBMap *arrays;
-};
-
-struct script_retinfo {
- struct reg_db scope;
- struct script_code* script;
- int pos;
- int nargs;
- int defsp;
-};
-
-
-
-
-struct script_data {
- enum c_op type;
- union script_data_val {
- int64 num;
- char *mutstr;
- const char *str;
- struct script_retinfo *ri;
- } u;
- struct reg_db *ref;
-};
-
-
-
-struct script_code {
- int script_size;
- unsigned char *script_buf;
- struct reg_db local;
- unsigned short instances;
-};
-
-struct script_stack {
- int sp;
- int sp_max;
- int defsp;
- struct script_data *stack_data;
- struct reg_db scope;
-};
-
-
-
-
-
-struct script_queue {
- int id;
- struct { int _max_; int _len_; int *_data_; } entries;
-
-# 421 "../../../server-code/src/map/script.h" 3 4
-_Bool
-# 421 "../../../server-code/src/map/script.h"
- valid;
-
- char event_logout[( (23 + 1) * 2 + 3 )];
- char event_death[( (23 + 1) * 2 + 3 )];
- char event_mapchange[( (23 + 1) * 2 + 3 )];
-};
-
-
-
-
-struct script_queue_iterator {
- struct { int _max_; int _len_; int *_data_; } entries;
-
-# 433 "../../../server-code/src/map/script.h" 3 4
-_Bool
-# 433 "../../../server-code/src/map/script.h"
- valid;
- int pos;
-};
-
-struct script_state {
- struct script_stack* stack;
- struct reg_db **pending_refs;
- int pending_ref_count;
- int start,end;
- int pos;
- enum e_script_state state;
- int rid,oid;
- struct script_code *script;
- struct sleep_data {
- int tick,timer,charid;
- } sleep;
- int instance_id;
-
- struct script_state *bk_st;
- unsigned char hIterator;
- int bk_npcid;
- unsigned freeloop : 1;
- unsigned op2ref : 1;
- unsigned npc_item_flag : 1;
- unsigned int id;
-};
-
-struct script_function {
-
-# 461 "../../../server-code/src/map/script.h" 3 4
-_Bool
-# 461 "../../../server-code/src/map/script.h"
- (*func)(struct script_state *st);
- char *name;
- char *arg;
-
-# 464 "../../../server-code/src/map/script.h" 3 4
-_Bool
-# 464 "../../../server-code/src/map/script.h"
- deprecated;
-};
-
-
-
-struct str_data_struct {
- enum c_op type;
- int str;
- int backpatch;
- int label;
-
-# 474 "../../../server-code/src/map/script.h" 3 4
-_Bool
-# 474 "../../../server-code/src/map/script.h"
- (*func)(struct script_state *st);
- int val;
- int next;
- uint8 deprecated : 1;
-};
-
-struct script_label_entry {
- int key,pos;
-};
-
-struct script_syntax_data {
- struct {
- enum curly_type type;
- int index;
- int count;
- int flag;
- struct linkdb_node *case_label;
- } curly[256];
- int curly_count;
- int index;
- int last_func;
- unsigned int nested_call;
-
-# 496 "../../../server-code/src/map/script.h" 3 4
-_Bool
-# 496 "../../../server-code/src/map/script.h"
- lang_macro_active;
- struct DBMap *strings;
- struct DBMap *translation_db;
-};
-
-struct casecheck_data {
- struct str_data_struct *str_data;
- int str_data_size;
- int str_num;
-
- char *str_buf;
- int str_size;
- int str_pos;
- int str_hash[1021];
- const char *(*add_str) (const char* p);
- void (*clear) (void);
-};
-
-struct script_array {
- unsigned int id;
- unsigned int size;
- unsigned int *members;
-};
-
-struct script_string_buf {
- char *ptr;
- size_t pos,size;
-};
-
-struct string_translation {
- int string_id;
- uint8 translations;
- unsigned int len;
- char *buf;
-};
-
-
-
-
-struct script_interface {
-
- struct DBMap *st_db;
- unsigned int active_scripts;
- unsigned int next_id;
- struct eri *st_ers;
- struct eri *stack_ers;
-
- struct { int _max_; int _len_; struct script_queue *_data_; } hq;
- struct { int _max_; int _len_; struct script_queue_iterator *_data_; } hqi;
-
- char **buildin;
- unsigned int buildin_count;
-
-
-
- struct eri *array_ers;
-
- struct str_data_struct *str_data;
- int str_data_size;
- int str_num;
-
- char *str_buf;
- size_t str_size;
- int str_pos;
- int str_hash[1021];
-
- char *word_buf;
- size_t word_size;
-
- char *string_list;
- int string_list_size;
- int string_list_pos;
-
- unsigned short current_item_id;
-
- struct script_label_entry *labels;
- int label_count;
- int labels_size;
-
- struct Script_Config config;
-
-
-
- unsigned char* buf;
- int pos, size;
-
- struct script_syntax_data syntax;
-
- int parse_options;
-
- int buildin_set_ref;
- int buildin_callsub_ref;
- int buildin_callfunc_ref;
- int buildin_getelementofarray_ref;
-
- jmp_buf error_jump;
- char* error_msg;
- const char* error_pos;
- int error_report;
-
- const char* parser_current_src;
- const char* parser_current_file;
- int parser_current_line;
- int parse_syntax_for_flag;
-
- unsigned int equip[20];
-
-
-
- struct DBMap *autobonus_db;
- struct DBMap *userfunc_db;
-
- int potion_flag;
- int potion_hp, potion_per_hp, potion_sp, potion_per_sp;
- int potion_target;
-
- unsigned int *generic_ui_array;
- unsigned int generic_ui_array_size;
-
- FILE *lang_export_fp;
- char *lang_export_file;
-
- const char *parser_current_npc_name;
-
- int buildin_mes_offset;
- int buildin_select_offset;
- int buildin_lang_macro_offset;
-
- struct DBMap *translation_db;
- char **translation_buf;
- uint32 translation_buf_size;
-
- char **languages;
- uint8 max_lang_id;
-
- struct script_string_buf parse_simpleexpr_str;
- struct script_string_buf lang_export_line_buf;
- struct script_string_buf lang_export_unescaped_buf;
-
- int parse_cleanup_timer_id;
-
- void (*init) (
-# 637 "../../../server-code/src/map/script.h" 3 4
- _Bool
-# 637 "../../../server-code/src/map/script.h"
- minimal);
- void (*final) (void);
- int (*reload) (void);
-
- struct script_code* (*parse) (const char* src,const char* file,int line,int options, int *retval);
-
-# 642 "../../../server-code/src/map/script.h" 3 4
-_Bool
-# 642 "../../../server-code/src/map/script.h"
- (*add_builtin) (const struct script_function *buildin,
-# 642 "../../../server-code/src/map/script.h" 3 4
- _Bool
-# 642 "../../../server-code/src/map/script.h"
- override);
- void (*parse_builtin) (void);
- const char* (*parse_subexpr) (const char* p,int limit);
- const char* (*skip_space) (const char* p);
- void (*error) (const char* src, const char* file, int start_line, const char* error_msg, const char* error_pos);
- void (*warning) (const char* src, const char* file, int start_line, const char* error_msg, const char* error_pos);
-
-
-# 649 "../../../server-code/src/map/script.h" 3 4
-_Bool
-# 649 "../../../server-code/src/map/script.h"
- (*addScript) (char *name, char *args,
-# 649 "../../../server-code/src/map/script.h" 3 4
- _Bool
-# 649 "../../../server-code/src/map/script.h"
- (*func)(struct script_state *st),
-# 649 "../../../server-code/src/map/script.h" 3 4
- _Bool
-# 649 "../../../server-code/src/map/script.h"
- isDeprecated);
- int (*conv_num) (struct script_state *st,struct script_data *data);
- const char* (*conv_str) (struct script_state *st,struct script_data *data);
- struct map_session_data *(*rid2sd) (struct script_state *st);
- struct map_session_data *(*id2sd) (struct script_state *st, int account_id);
- struct map_session_data *(*charid2sd) (struct script_state *st, int char_id);
- struct map_session_data *(*nick2sd) (struct script_state *st, const char *name);
- void (*detach_rid) (struct script_state* st);
- struct script_data* (*push_val)(struct script_stack* stack, enum c_op type, int64 val, struct reg_db *ref);
- struct script_data *(*get_val) (struct script_state* st, struct script_data* data);
- char* (*get_val_ref_str) (struct script_state* st, struct reg_db *n, struct script_data* data);
- char* (*get_val_scope_str) (struct script_state* st, struct reg_db *n, struct script_data* data);
- char* (*get_val_npc_str) (struct script_state* st, struct reg_db *n, struct script_data* data);
- char* (*get_val_instance_str) (struct script_state* st, const char* name, struct script_data* data);
- int (*get_val_ref_num) (struct script_state* st, struct reg_db *n, struct script_data* data);
- int (*get_val_scope_num) (struct script_state* st, struct reg_db *n, struct script_data* data);
- int (*get_val_npc_num) (struct script_state* st, struct reg_db *n, struct script_data* data);
- int (*get_val_instance_num) (struct script_state* st, const char* name, struct script_data* data);
- const void *(*get_val2) (struct script_state *st, int64 uid, struct reg_db *ref);
- struct script_data *(*push_str) (struct script_stack *stack, char *str);
- struct script_data *(*push_conststr) (struct script_stack *stack, const char *str);
- struct script_data *(*push_copy) (struct script_stack *stack, int pos);
- void (*pop_stack) (struct script_state* st, int start, int end);
- void (*set_constant) (const char *name, int value,
-# 672 "../../../server-code/src/map/script.h" 3 4
- _Bool
-# 672 "../../../server-code/src/map/script.h"
- is_parameter,
-# 672 "../../../server-code/src/map/script.h" 3 4
- _Bool
-# 672 "../../../server-code/src/map/script.h"
- is_deprecated);
- void (*set_constant2) (const char *name, int value,
-# 673 "../../../server-code/src/map/script.h" 3 4
- _Bool
-# 673 "../../../server-code/src/map/script.h"
- is_parameter,
-# 673 "../../../server-code/src/map/script.h" 3 4
- _Bool
-# 673 "../../../server-code/src/map/script.h"
- is_deprecated);
-
-# 674 "../../../server-code/src/map/script.h" 3 4
-_Bool
-# 674 "../../../server-code/src/map/script.h"
- (*get_constant) (const char* name, int* value);
- void (*label_add)(int key, int pos);
- void (*run) (struct script_code *rootscript, int pos, int rid, int oid);
- void (*run_npc) (struct script_code *rootscript, int pos, int rid, int oid);
- void (*run_pet) (struct script_code *rootscript, int pos, int rid, int oid);
- void (*run_main) (struct script_state *st);
- int (*run_timer) (int tid, int64 tick, int id, intptr_t data);
- int (*set_var) (struct map_session_data *sd, char *name, void *val);
- void (*stop_instances) (struct script_code *code);
- void (*free_code) (struct script_code* code);
- void (*free_vars) (struct DBMap *var_storage);
- struct script_state* (*alloc_state) (struct script_code* rootscript, int pos, int rid, int oid);
- void (*free_state) (struct script_state* st);
- void (*add_pending_ref) (struct script_state *st, struct reg_db *ref);
- void (*run_autobonus) (const char *autobonus,int id, int pos);
- void (*cleararray_pc) (struct map_session_data* sd, const char* varname, void* value);
- void (*setarray_pc) (struct map_session_data* sd, const char* varname, uint32 idx, void* value, int* refcache);
- int (*config_read) (char *cfgName);
- int (*add_str) (const char* p);
- const char* (*get_str) (int id);
- int (*search_str) (const char* p);
- void (*setd_sub) (struct script_state *st, struct map_session_data *sd, const char *varname, int elem, const void *value, struct reg_db *ref);
- void (*attach_state) (struct script_state* st);
-
- struct script_queue *(*queue) (int idx);
-
-# 699 "../../../server-code/src/map/script.h" 3 4
-_Bool
-# 699 "../../../server-code/src/map/script.h"
- (*queue_add) (int idx, int var);
-
-# 700 "../../../server-code/src/map/script.h" 3 4
-_Bool
-# 700 "../../../server-code/src/map/script.h"
- (*queue_del) (int idx);
-
-# 701 "../../../server-code/src/map/script.h" 3 4
-_Bool
-# 701 "../../../server-code/src/map/script.h"
- (*queue_remove) (int idx, int var);
- int (*queue_create) (void);
-
-# 703 "../../../server-code/src/map/script.h" 3 4
-_Bool
-# 703 "../../../server-code/src/map/script.h"
- (*queue_clear) (int idx);
-
- const char * (*parse_curly_close) (const char *p);
- const char * (*parse_syntax_close) (const char *p);
- const char * (*parse_syntax_close_sub) (const char *p, int *flag);
- const char * (*parse_syntax) (const char *p);
- c_op (*get_com) (unsigned char *scriptbuf, int *pos);
- int (*get_num) (unsigned char *scriptbuf, int *pos);
- const char* (*op2name) (int op);
- void (*reportsrc) (struct script_state *st);
- void (*reportdata) (struct script_data *data);
- void (*reportfunc) (struct script_state *st);
- void (*disp_warning_message) (const char *mes, const char *pos);
- void (*check_event) (struct script_state *st, const char *evt);
- unsigned int (*calc_hash) (const char *p);
- void (*addb) (int a);
- void (*addc) (int a);
- void (*addi) (int a);
- void (*addl) (int l);
- void (*set_label) (int l, int pos, const char *script_pos);
- const char* (*skip_word) (const char *p);
- int (*add_word) (const char *p);
- const char* (*parse_callfunc) (const char *p, int require_paren, int is_custom);
- void (*parse_nextline) (
-# 726 "../../../server-code/src/map/script.h" 3 4
- _Bool
-# 726 "../../../server-code/src/map/script.h"
- first, const char *p);
- const char* (*parse_variable) (const char *p);
- const char* (*parse_simpleexpr) (const char *p);
- const char* (*parse_expr) (const char *p);
- const char* (*parse_line) (const char *p);
- void (*read_constdb) (void);
- void (*constdb_comment) (const char *comment);
- void (*load_parameters) (void);
- const char* (*print_line) (StringBuf *buf, const char *p, const char *mark, int line);
- void (*errorwarning_sub) (StringBuf *buf, const char *src, const char *file, int start_line, const char *error_msg, const char *error_pos);
- int (*set_reg) (struct script_state *st, struct map_session_data *sd, int64 num, const char *name, const void *value, struct reg_db *ref);
- void (*set_reg_ref_str) (struct script_state* st, struct reg_db *n, int64 num, const char* name, const char *str);
- void (*set_reg_scope_str) (struct script_state* st, struct reg_db *n, int64 num, const char* name, const char *str);
- void (*set_reg_npc_str) (struct script_state* st, struct reg_db *n, int64 num, const char* name, const char *str);
- void (*set_reg_instance_str) (struct script_state* st, int64 num, const char* name, const char *str);
- void (*set_reg_ref_num) (struct script_state* st, struct reg_db *n, int64 num, const char* name, int val);
- void (*set_reg_scope_num) (struct script_state* st, struct reg_db *n, int64 num, const char* name, int val);
- void (*set_reg_npc_num) (struct script_state* st, struct reg_db *n, int64 num, const char* name, int val);
- void (*set_reg_instance_num) (struct script_state* st, int64 num, const char* name, int val);
- void (*stack_expand) (struct script_stack *stack);
- struct script_data* (*push_retinfo) (struct script_stack *stack, struct script_retinfo *ri, struct reg_db *ref);
- void (*op_3) (struct script_state *st, int op);
- void (*op_2str) (struct script_state *st, int op, const char *s1, const char *s2);
- void (*op_2num) (struct script_state *st, int op, int i1, int i2);
- void (*op_2) (struct script_state *st, int op);
- void (*op_1) (struct script_state *st, int op);
- void (*check_buildin_argtype) (struct script_state *st, int func);
- void (*detach_state) (struct script_state *st,
-# 753 "../../../server-code/src/map/script.h" 3 4
- _Bool
-# 753 "../../../server-code/src/map/script.h"
- dequeue_event);
- int (*db_free_code_sub) (union DBKey key, struct DBData *data, va_list ap);
- void (*add_autobonus) (const char *autobonus);
- int (*menu_countoptions) (const char *str, int max_count, int *total);
- int (*buildin_areawarp_sub) (struct block_list *bl, va_list ap);
- int (*buildin_areapercentheal_sub) (struct block_list *bl, va_list ap);
- void (*buildin_delitem_delete) (struct map_session_data *sd, int idx, int *amount,
-# 759 "../../../server-code/src/map/script.h" 3 4
- _Bool
-# 759 "../../../server-code/src/map/script.h"
- delete_items);
-
-# 760 "../../../server-code/src/map/script.h" 3 4
-_Bool
-# 760 "../../../server-code/src/map/script.h"
- (*buildin_delitem_search) (struct map_session_data *sd, struct item *it,
-# 760 "../../../server-code/src/map/script.h" 3 4
- _Bool
-# 760 "../../../server-code/src/map/script.h"
- exact_match);
- int (*buildin_killmonster_sub_strip) (struct block_list *bl, va_list ap);
- int (*buildin_killmonster_sub) (struct block_list *bl, va_list ap);
- int (*buildin_killmonsterall_sub_strip) (struct block_list *bl, va_list ap);
- int (*buildin_killmonsterall_sub) (struct block_list *bl, va_list ap);
- int (*buildin_announce_sub) (struct block_list *bl, va_list ap);
- int (*buildin_getareausers_sub) (struct block_list *bl, va_list ap);
- int (*buildin_getareadropitem_sub) (struct block_list *bl, va_list ap);
- int (*mapflag_pvp_sub) (struct block_list *bl, va_list ap);
- int (*buildin_pvpoff_sub) (struct block_list *bl, va_list ap);
- int (*buildin_maprespawnguildid_sub_pc) (struct map_session_data *sd, va_list ap);
- int (*buildin_maprespawnguildid_sub_mob) (struct block_list *bl, va_list ap);
- int (*buildin_mobcount_sub) (struct block_list *bl, va_list ap);
- int (*playbgm_sub) (struct block_list *bl, va_list ap);
- int (*playbgm_foreachpc_sub) (struct map_session_data *sd, va_list args);
- int (*soundeffect_sub) (struct block_list *bl, va_list ap);
- int (*buildin_query_sql_sub) (struct script_state *st, struct Sql *handle);
- int (*buildin_instance_warpall_sub) (struct block_list *bl, va_list ap);
- int (*buildin_mobuseskill_sub) (struct block_list *bl, va_list ap);
- int (*cleanfloor_sub) (struct block_list *bl, va_list ap);
- int (*run_func) (struct script_state *st);
- const char *(*getfuncname) (struct script_state *st);
-
- unsigned int (*calc_hash_ci) (const char *p);
- struct casecheck_data local_casecheck;
- struct casecheck_data global_casecheck;
-
-
-
-
- struct reg_db *(*array_src) (struct script_state *st, struct map_session_data *sd, const char *name, struct reg_db *ref);
- void (*array_update) (struct reg_db *src, int64 num,
-# 791 "../../../server-code/src/map/script.h" 3 4
- _Bool
-# 791 "../../../server-code/src/map/script.h"
- empty);
- void (*array_delete) (struct reg_db *src, struct script_array *sa);
- void (*array_remove_member) (struct reg_db *src, struct script_array *sa, unsigned int idx);
- void (*array_add_member) (struct script_array *sa, unsigned int idx);
- unsigned int (*array_size) (struct script_state *st, struct map_session_data *sd, const char *name, struct reg_db *ref);
- unsigned int (*array_highest_key) (struct script_state *st, struct map_session_data *sd, const char *name, struct reg_db *ref);
- int (*array_free_db) (union DBKey key, struct DBData *data, va_list ap);
- void (*array_ensure_zero) (struct script_state *st, struct map_session_data *sd, int64 uid, struct reg_db *ref);
-
- void (*reg_destroy_single) (struct map_session_data *sd, int64 reg, struct script_reg_state *data);
- int (*reg_destroy) (union DBKey key, struct DBData *data, va_list ap);
-
- void (*generic_ui_array_expand) (unsigned int plus);
- unsigned int *(*array_cpy_list) (struct script_array *sa);
-
- void (*hardcoded_constants) (void);
- unsigned short (*mapindexname2id) (struct script_state *st, const char* name);
- int (*string_dup) (char *str);
- void (*load_translations) (void);
- void (*load_translation) (const char *file, uint8 lang_id, uint32 *total);
- int (*translation_db_destroyer) (union DBKey key, struct DBData *data, va_list ap);
- void (*clear_translations) (
-# 812 "../../../server-code/src/map/script.h" 3 4
- _Bool
-# 812 "../../../server-code/src/map/script.h"
- reload);
- int (*parse_cleanup_timer) (int tid, int64 tick, int id, intptr_t data);
- uint8 (*add_language) (const char *name);
- const char *(*get_translation_file_name) (const char *file);
- void (*parser_clean_leftovers) (void);
- void (*run_use_script) (struct map_session_data *sd, struct item_data *data, int oid);
- void (*run_item_equip_script) (struct map_session_data *sd, struct item_data *data, int oid);
- void (*run_item_unequip_script) (struct map_session_data *sd, struct item_data *data, int oid);
-};
-
-
-void script_defaults(void);
-
-
-extern struct script_interface *script;
-# 25 "../../../server-code/src/map/instance.h" 2
-
-
-
-struct hplugin_data_store;
-struct block_list;
-struct map_session_data;
-
-
-
-typedef enum instance_state {
- INSTANCE_FREE,
- INSTANCE_IDLE,
- INSTANCE_BUSY
-} instance_state;
-
-enum instance_owner_type {
- IOT_NONE,
- IOT_CHAR,
- IOT_PARTY,
- IOT_GUILD,
-
- IOT_MAX,
-};
-
-struct instance_data {
- unsigned short id;
- char name[(60+1)];
- instance_state state;
- enum instance_owner_type owner_type;
- int owner_id;
-
- unsigned short *map;
- unsigned short num_map;
- unsigned short users;
-
- struct reg_db regs;
-
- int progress_timer;
- unsigned int progress_timeout;
-
- int idle_timer;
- unsigned int idle_timeout, idle_timeoutval;
-
- unsigned int original_progress_timeout;
-
- struct point respawn;
- struct hplugin_data_store *hdata;
-};
-
-struct instance_interface {
- void (*init) (
-# 75 "../../../server-code/src/map/instance.h" 3 4
- _Bool
-# 75 "../../../server-code/src/map/instance.h"
- minimal);
- void (*final) (void);
- void (*reload) (void);
-
- unsigned short start_id;
- unsigned short instances;
-
- struct instance_data *list;
-
- int (*create) (int party_id, const char *name, enum instance_owner_type type);
- int (*add_map) (const char *name, int instance_id,
-# 85 "../../../server-code/src/map/instance.h" 3 4
- _Bool
-# 85 "../../../server-code/src/map/instance.h"
- usebasename, const char *map_name);
- void (*del_map) (int16 m);
- int (*map2imap) (int16 m, int instance_id);
- int (*mapid2imapid) (int16 m, int instance_id);
- int (*mapname2imap) (const char *map_name, int instance_id);
- int (*map_npcsub) (struct block_list* bl, va_list args);
- int (*init_npc) (struct block_list* bl, va_list args);
- void (*destroy) (int instance_id);
- void (*start) (int instance_id);
- void (*check_idle) (int instance_id);
- void (*check_kick) (struct map_session_data *sd);
- void (*set_timeout) (int instance_id, unsigned int progress_timeout, unsigned int idle_timeout);
-
-# 97 "../../../server-code/src/map/instance.h" 3 4
-_Bool
-# 97 "../../../server-code/src/map/instance.h"
- (*valid) (int instance_id);
- int (*destroy_timer) (int tid, int64 tick, int id, intptr_t data);
-};
-
-
-void instance_defaults(void);
-
-
-extern struct instance_interface *instance;
-# 36 "../../../server-code/src/map/clif.c" 2
-# 1 "../../../server-code/src/map/intif.h" 1
-# 29 "../../../server-code/src/map/intif.h"
-struct auction_data;
-struct guild_member;
-struct guild_position;
-struct guild_storage;
-struct mail_message;
-struct map_session_data;
-struct party_member;
-struct s_elemental;
-struct s_homunculus;
-struct s_mercenary;
-struct s_pet;
-# 55 "../../../server-code/src/map/intif.h"
-struct intif_interface {
-
- int packet_len_table[161];
-
- int (*parse) (int fd);
- int (*create_pet)(int account_id, int char_id, short pet_type, short pet_lv, short pet_egg_id,
- short pet_equip, short intimate, short hungry, char rename_flag, char incubate, char *pet_name);
- int (*broadcast) (const char* mes, size_t len, int type);
- int (*broadcast2) (const char* mes, size_t len, unsigned int fontColor, short fontType, short fontSize, short fontAlign, short fontY);
- int (*main_message) (struct map_session_data* sd, const char* message);
- int (*wis_message) (struct map_session_data *sd, const char *nick, const char *mes, size_t mes_len);
- int (*wis_message_to_gm) (char *Wisp_name, int permission, char *mes);
- int (*saveregistry) (struct map_session_data *sd);
- int (*request_registry) (struct map_session_data *sd, int flag);
- int (*request_guild_storage) (int account_id, int guild_id);
- int (*send_guild_storage) (int account_id, struct guild_storage *gstor);
- int (*create_party) (struct party_member *member, const char *name, int item, int item2);
- int (*request_partyinfo) (int party_id, int char_id);
- int (*party_addmember) (int party_id,struct party_member *member);
- int (*party_changeoption) (int party_id, int account_id, int exp, int item);
- int (*party_leave) (int party_id,int account_id, int char_id);
- int (*party_changemap) (struct map_session_data *sd, int online);
- int (*break_party) (int party_id);
- int (*party_message) (int party_id, int account_id, const char *mes,int len);
- int (*party_leaderchange) (int party_id,int account_id,int char_id);
- int (*guild_create) (const char *name, const struct guild_member *master);
- int (*guild_request_info) (int guild_id);
- int (*guild_addmember) (int guild_id, struct guild_member *m);
- int (*guild_leave) (int guild_id, int account_id, int char_id, int flag, const char *mes);
- int (*guild_memberinfoshort) (int guild_id, int account_id, int char_id, int online, int lv, int class_);
- int (*guild_break) (int guild_id);
- int (*guild_message) (int guild_id, int account_id, const char *mes, int len);
- int (*guild_change_gm) (int guild_id, const char* name, size_t len);
- int (*guild_change_basicinfo) (int guild_id, int type, const void *data, int len);
- int (*guild_change_memberinfo) (int guild_id, int account_id, int char_id, int type, const void *data, int len);
- int (*guild_position) (int guild_id, int idx, struct guild_position *p);
- int (*guild_skillup) (int guild_id, uint16 skill_id, int account_id, int max);
- int (*guild_alliance) (int guild_id1, int guild_id2, int account_id1, int account_id2, int flag);
- int (*guild_notice) (int guild_id, const char *mes1, const char *mes2);
- int (*guild_emblem) (int guild_id, int len, const char *data);
- int (*guild_castle_dataload) (int num, int *castle_ids);
- int (*guild_castle_datasave) (int castle_id, int index, int value);
- void (*itembound_req) (int char_id, int aid, int guild_id);
- int (*request_petdata) (int account_id, int char_id, int pet_id);
- int (*save_petdata) (int account_id, struct s_pet *p);
- int (*delete_petdata) (int pet_id);
- int (*rename) (struct map_session_data *sd, int type, const char *name);
- int (*homunculus_create) (int account_id, struct s_homunculus *sh);
-
-# 103 "../../../server-code/src/map/intif.h" 3 4
-_Bool
-# 103 "../../../server-code/src/map/intif.h"
- (*homunculus_requestload) (int account_id, int homun_id);
- int (*homunculus_requestsave) (int account_id, struct s_homunculus* sh);
- int (*homunculus_requestdelete) (int homun_id);
-
- void (*request_questlog) (struct map_session_data * sd);
- int (*quest_save) (struct map_session_data * sd);
-
- int (*mercenary_create) (struct s_mercenary *merc);
- int (*mercenary_request) (int merc_id, int char_id);
- int (*mercenary_delete) (int merc_id);
- int (*mercenary_save) (struct s_mercenary *merc);
-
- int (*Mail_requestinbox) (int char_id, unsigned char flag);
- int (*Mail_read) (int mail_id);
- int (*Mail_getattach) (int char_id, int mail_id);
- int (*Mail_delete) (int char_id, int mail_id);
- int (*Mail_return) (int char_id, int mail_id);
- int (*Mail_send) (int account_id, struct mail_message *msg);
-
- int (*Auction_requestlist) (int char_id, short type, int price, const char* searchtext, short page);
- int (*Auction_register) (struct auction_data *auction);
- int (*Auction_cancel) (int char_id, unsigned int auction_id);
- int (*Auction_close) (int char_id, unsigned int auction_id);
- int (*Auction_bid) (int char_id, const char* name, unsigned int auction_id, int bid);
-
- int (*elemental_create) (struct s_elemental *ele);
- int (*elemental_request) (int ele_id, int char_id);
- int (*elemental_delete) (int ele_id);
- int (*elemental_save) (struct s_elemental *ele);
-
- void (*request_accinfo) (int u_fd, int aid, int group_lv, char* query);
-
- int (*CheckForCharServer) (void);
-
- void (*pWisMessage) (int fd);
- void (*pWisEnd) (int fd);
- int (*pWisToGM_sub) (struct map_session_data* sd,va_list va);
- void (*pWisToGM) (int fd);
- void (*pRegisters) (int fd);
- void (*pChangeNameOk) (int fd);
- void (*pMessageToFD) (int fd);
- void (*pLoadGuildStorage) (int fd);
- void (*pSaveGuildStorage) (int fd);
- void (*pPartyCreated) (int fd);
- void (*pPartyInfo) (int fd);
- void (*pPartyMemberAdded) (int fd);
- void (*pPartyOptionChanged) (int fd);
- void (*pPartyMemberWithdraw) (int fd);
- void (*pPartyMove) (int fd);
- void (*pPartyBroken) (int fd);
- void (*pPartyMessage) (int fd);
- void (*pGuildCreated) (int fd);
- void (*pGuildInfo) (int fd);
- void (*pGuildMemberAdded) (int fd);
- void (*pGuildMemberWithdraw) (int fd);
- void (*pGuildMemberInfoShort) (int fd);
- void (*pGuildBroken) (int fd);
- void (*pGuildMessage) (int fd);
- void (*pGuildBasicInfoChanged) (int fd);
- void (*pGuildMemberInfoChanged) (int fd);
- void (*pGuildPosition) (int fd);
- void (*pGuildSkillUp) (int fd);
- void (*pGuildAlliance) (int fd);
- void (*pGuildNotice) (int fd);
- void (*pGuildEmblem) (int fd);
- void (*pGuildCastleDataLoad) (int fd);
- void (*pGuildMasterChanged) (int fd);
- void (*pQuestLog) (int fd);
- void (*pQuestSave) (int fd);
- void (*pMailInboxReceived) (int fd);
- void (*pMailNew) (int fd);
- void (*pMailGetAttach) (int fd);
- void (*pMailDelete) (int fd);
- void (*pMailReturn) (int fd);
- void (*pMailSend) (int fd);
- void (*pAuctionResults) (int fd);
- void (*pAuctionRegister) (int fd);
- void (*pAuctionCancel) (int fd);
- void (*pAuctionClose) (int fd);
- void (*pAuctionMessage) (int fd);
- void (*pAuctionBid) (int fd);
- void (*pItembound_ack) (int fd);
- void (*pMercenaryReceived) (int fd);
- void (*pMercenaryDeleted) (int fd);
- void (*pMercenarySaved) (int fd);
- void (*pElementalReceived) (int fd);
- void (*pElementalDeleted) (int fd);
- void (*pElementalSaved) (int fd);
- void (*pCreatePet) (int fd);
- void (*pRecvPetData) (int fd);
- void (*pSavePetOk) (int fd);
- void (*pDeletePetOk) (int fd);
- void (*pCreateHomunculus) (int fd);
- void (*pRecvHomunculusData) (int fd);
- void (*pSaveHomunculusOk) (int fd);
- void (*pDeleteHomunculusOk) (int fd);
-};
-
-
-void intif_defaults(void);
-
-
-extern struct intif_interface *intif;
-# 37 "../../../server-code/src/map/clif.c" 2
-# 1 "../../../server-code/src/map/irc-bot.h" 1
-# 35 "../../../server-code/src/map/irc-bot.h"
-struct channel_data;
-
-struct irc_func {
- char name[30];
- void (*func)(int, char*, char*, char*, char*);
-};
-
-struct irc_bot_interface {
- int fd;
-
-# 44 "../../../server-code/src/map/irc-bot.h" 3 4
-_Bool
-# 44 "../../../server-code/src/map/irc-bot.h"
- isIn, isOn;
- int64 last_try;
- unsigned char fails;
- uint32 ip;
- unsigned short port;
-
- struct channel_data *channel;
-
- struct {
- struct irc_func **list;
- unsigned int size;
- } funcs;
-
- void (*init) (
-# 57 "../../../server-code/src/map/irc-bot.h" 3 4
- _Bool
-# 57 "../../../server-code/src/map/irc-bot.h"
- minimal);
- void (*final) (void);
-
- int (*parse) (int fd);
- void (*parse_sub) (int fd, char *str);
- void (*parse_source) (char *source, char *nick, char *ident, char *host);
-
- struct irc_func* (*func_search) (char* function_name);
-
- int (*connect_timer) (int tid, int64 tick, int id, intptr_t data);
- int (*identify_timer) (int tid, int64 tick, int id, intptr_t data);
- int (*join_timer) (int tid, int64 tick, int id, intptr_t data);
-
- void (*send)(char *str);
- void (*relay) (const char *name, const char *msg);
-
- void (*pong) (int fd, char *cmd, char *source, char *target, char *msg);
- void (*privmsg) (int fd, char *cmd, char *source, char *target, char *msg);
- void (*userjoin) (int fd, char *cmd, char *source, char *target, char *msg);
- void (*userleave) (int fd, char *cmd, char *source, char *target, char *msg);
- void (*usernick) (int fd, char *cmd, char *source, char *target, char *msg);
-};
-
-
-void ircbot_defaults(void);
-
-
-extern struct irc_bot_interface *ircbot;
-# 38 "../../../server-code/src/map/clif.c" 2
-# 1 "../../../server-code/src/map/itemdb.h" 1
-# 29 "../../../server-code/src/map/itemdb.h"
-struct config_setting_t;
-struct script_code;
-struct hplugin_data_store;
-# 51 "../../../server-code/src/map/itemdb.h"
-enum item_itemid {
- ITEMID_RED_POTION = 501,
- ITEMID_YELLOW_POTION = 503,
- ITEMID_WHITE_POTION = 504,
- ITEMID_BLUE_POTION = 505,
- ITEMID_APPLE = 512,
- ITEMID_HOLY_WATER = 523,
- ITEMID_PUMPKIN = 535,
- ITEMID_RED_SLIM_POTION = 545,
- ITEMID_YELLOW_SLIM_POTION = 546,
- ITEMID_WHITE_SLIM_POTION = 547,
- ITEMID_WING_OF_FLY = 601,
- ITEMID_WING_OF_BUTTERFLY = 602,
- ITEMID_BRANCH_OF_DEAD_TREE = 604,
- ITEMID_ANODYNE = 605,
- ITEMID_ALOEBERA = 606,
- ITEMID_MAGNIFIER = 611,
- ITEMID_POISON_BOTTLE = 678,
- ITEMID_EMPTY_BOTTLE = 713,
- ITEMID_EMPERIUM = 714,
- ITEMID_YELLOW_GEMSTONE = 715,
- ITEMID_RED_GEMSTONE = 716,
- ITEMID_BLUE_GEMSTONE = 717,
- ITEMID_ORIDECON_STONE = 756,
- ITEMID_ALCHOL = 970,
- ITEMID_ORIDECON = 984,
- ITEMID_ANVIL = 986,
- ITEMID_ORIDECON_ANVIL = 987,
- ITEMID_GOLDEN_ANVIL = 988,
- ITEMID_EMPERIUM_ANVIL = 989,
- ITEMID_BOODY_RED = 990,
- ITEMID_CRYSTAL_BLUE = 991,
- ITEMID_WIND_OF_VERDURE = 992,
- ITEMID_YELLOW_LIVE = 993,
- ITEMID_FLAME_HEART = 994,
- ITEMID_MISTIC_FROZEN = 995,
- ITEMID_ROUGH_WIND = 996,
- ITEMID_GREAT_NATURE = 997,
- ITEMID_IRON = 998,
- ITEMID_STEEL = 999,
- ITEMID_STAR_CRUMB = 1000,
- ITEMID_IRON_ORE = 1002,
- ITEMID_PHRACON = 1010,
- ITEMID_EMVERETARCON = 1011,
- ITEMID_TRAP = 1065,
- ITEMID_PILEBUNCKER = 1549,
- ITEMID_ANGRA_MANYU = 1599,
- ITEMID_STRANGE_EMBRYO = 6415,
- ITEMID_FACE_PAINT = 6120,
- ITEMID_SCARLET_POINT = 6360,
- ITEMID_INDIGO_POINT = 6361,
- ITEMID_YELLOW_WISH_POINT = 6362,
- ITEMID_LIME_GREEN_POINT = 6363,
- ITEMID_STONE = 7049,
- ITEMID_FIRE_BOTTLE = 7135,
- ITEMID_ACID_BOTTLE = 7136,
- ITEMID_MENEATER_PLANT_BOTTLE = 7137,
- ITEMID_MINI_BOTTLE = 7138,
- ITEMID_COATING_BOTTLE = 7139,
- ITEMID_FRAGMENT_OF_CRYSTAL = 7321,
- ITEMID_SKULL_ = 7420,
- ITEMID_TOKEN_OF_SIEGFRIED = 7621,
- ITEMID_GOLD_KEY77 = 7782,
- ITEMID_SILVER_KEY77 = 7783,
- ITEMID_TRAP_ALLOY = 7940,
- ITEMID_RED_POUCH_OF_SURPRISE = 12024,
- ITEMID_BLOODY_DEAD_BRANCH = 12103,
- ITEMID_PORING_BOX = 12109,
- ITEMID_MERCENARY_RED_POTION = 12184,
- ITEMID_MERCENARY_BLUE_POTION = 12185,
- ITEMID_BATTLE_MANUAL = 12208,
- ITEMID_BUBBLE_GUM = 12210,
- ITEMID_GIANT_FLY_WING = 12212,
- ITEMID_NEURALIZER = 12213,
- ITEMID_M_CENTER_POTION = 12241,
- ITEMID_M_AWAKENING_POTION = 12242,
- ITEMID_M_BERSERK_POTION = 12243,
- ITEMID_COMP_BATTLE_MANUAL = 12263,
- ITEMID_COMP_BUBBLE_GUM = 12264,
- ITEMID_LOVE_ANGEL = 12287,
- ITEMID_SQUIRREL = 12288,
- ITEMID_GOGO = 12289,
- ITEMID_PICTURE_DIARY = 12304,
- ITEMID_MINI_HEART = 12305,
- ITEMID_NEWCOMER = 12306,
- ITEMID_KID = 12307,
- ITEMID_MAGIC_CASTLE = 12308,
- ITEMID_BULGING_HEAD = 12309,
- ITEMID_THICK_MANUAL50 = 12312,
- ITEMID_NOVICE_MAGNIFIER = 12325,
- ITEMID_ANCILLA = 12333,
- ITEMID_REPAIR_A = 12392,
- ITEMID_REPAIR_B = 12393,
- ITEMID_REPAIR_C = 12394,
- ITEMID_BLACK_THING = 12435,
- ITEMID_REINS_OF_MOUNT = 12622,
- ITEMID_NOBLE_NAMEPLATE = 12705,
- ITEMID_DUN_TELE_SCROLL1 = 14527,
- ITEMID_BATTLE_MANUAL25 = 14532,
- ITEMID_BATTLE_MANUAL100 = 14533,
- ITEMID_BATTLE_MANUAL_X3 = 14545,
- ITEMID_DUN_TELE_SCROLL2 = 14581,
- ITEMID_WOB_RUNE = 14582,
- ITEMID_WOB_SCHWALTZ = 14583,
- ITEMID_WOB_RACHEL = 14584,
- ITEMID_WOB_LOCAL = 14585,
- ITEMID_SIEGE_TELEPORT_SCROLL = 14591,
- ITEMID_JOB_MANUAL50 = 14592,
- ITEMID_PILEBUNCKER_S = 16030,
- ITEMID_PILEBUNCKER_P = 16031,
- ITEMID_PILEBUNCKER_T = 16032,
-};
-
-enum cards_item_list {
- ITEMID_GHOSTRING_CARD = 4047,
- ITEMID_PHREEONI_CARD = 4121,
- ITEMID_MISTRESS_CARD = 4132,
- ITEMID_ORC_LOAD_CARD = 4135,
- ITEMID_ORC_HERO_CARD = 4143,
- ITEMID_TAO_GUNKA_CARD = 4302,
-};
-
-
-
-
-enum mechanic_item_list {
- ITEMID_ACCELERATOR = 2800,
- ITEMID_HOVERING_BOOSTER,
- ITEMID_SUICIDAL_DEVICE,
- ITEMID_SHAPE_SHIFTER,
- ITEMID_COOLING_DEVICE,
- ITEMID_MAGNETIC_FIELD_GENERATOR,
- ITEMID_BARRIER_BUILDER,
- ITEMID_REPAIR_KIT,
- ITEMID_CAMOUFLAGE_GENERATOR,
- ITEMID_HIGH_QUALITY_COOLER,
- ITEMID_SPECIAL_COOLER,
- ITEMID_MONKEY_SPANNER = 6186,
-};
-
-
-
-
-enum spell_book_item_list {
- ITEMID_MAGIC_BOOK_FB = 6189,
- ITEMID_MAGIC_BOOK_CB,
- ITEMID_MAGIC_BOOK_LB,
- ITEMID_MAGIC_BOOK_SG,
- ITEMID_MAGIC_BOOK_LOV,
- ITEMID_MAGIC_BOOK_MS,
- ITEMID_MAGIC_BOOK_CM,
- ITEMID_MAGIC_BOOK_TV,
- ITEMID_MAGIC_BOOK_TS,
- ITEMID_MAGIC_BOOK_JT,
- ITEMID_MAGIC_BOOK_WB,
- ITEMID_MAGIC_BOOK_HD,
- ITEMID_MAGIC_BOOK_ES,
- ITEMID_MAGIC_BOOK_ES_,
- ITEMID_MAGIC_BOOK_CL,
- ITEMID_MAGIC_BOOK_CR,
- ITEMID_MAGIC_BOOK_DL,
-};
-
-
-
-
-enum mercenary_scroll_item_list {
- ITEMID_BOW_MERCENARY_SCROLL1 = 12153,
- ITEMID_BOW_MERCENARY_SCROLL2,
- ITEMID_BOW_MERCENARY_SCROLL3,
- ITEMID_BOW_MERCENARY_SCROLL4,
- ITEMID_BOW_MERCENARY_SCROLL5,
- ITEMID_BOW_MERCENARY_SCROLL6,
- ITEMID_BOW_MERCENARY_SCROLL7,
- ITEMID_BOW_MERCENARY_SCROLL8,
- ITEMID_BOW_MERCENARY_SCROLL9,
- ITEMID_BOW_MERCENARY_SCROLL10,
- ITEMID_SWORDMERCENARY_SCROLL1,
- ITEMID_SWORDMERCENARY_SCROLL2,
- ITEMID_SWORDMERCENARY_SCROLL3,
- ITEMID_SWORDMERCENARY_SCROLL4,
- ITEMID_SWORDMERCENARY_SCROLL5,
- ITEMID_SWORDMERCENARY_SCROLL6,
- ITEMID_SWORDMERCENARY_SCROLL7,
- ITEMID_SWORDMERCENARY_SCROLL8,
- ITEMID_SWORDMERCENARY_SCROLL9,
- ITEMID_SWORDMERCENARY_SCROLL10,
- ITEMID_SPEARMERCENARY_SCROLL1,
- ITEMID_SPEARMERCENARY_SCROLL2,
- ITEMID_SPEARMERCENARY_SCROLL3,
- ITEMID_SPEARMERCENARY_SCROLL4,
- ITEMID_SPEARMERCENARY_SCROLL5,
- ITEMID_SPEARMERCENARY_SCROLL6,
- ITEMID_SPEARMERCENARY_SCROLL7,
- ITEMID_SPEARMERCENARY_SCROLL8,
- ITEMID_SPEARMERCENARY_SCROLL9,
- ITEMID_SPEARMERCENARY_SCROLL10,
-};
-
-
-
-
-enum cash_food_item_list {
- ITEMID_STR_DISH10_ = 12202,
- ITEMID_AGI_DISH10_,
- ITEMID_INT_DISH10_,
- ITEMID_DEX_DISH10_,
- ITEMID_LUK_DISH10_,
- ITEMID_VIT_DISH10_,
-};
-
-
-
-
-enum poison_item_list {
- ITEMID_POISON_PARALYSIS = 12717,
- ITEMID_POISON_LEECH,
- ITEMID_POISON_OBLIVION,
- ITEMID_POISON_CONTAMINATION,
- ITEMID_POISON_NUMB,
- ITEMID_POISON_FEVER,
- ITEMID_POISON_LAUGHING,
- ITEMID_POISON_FATIGUE,
-};
-
-
-
-
-
-enum rune_item_list {
- ITEMID_NAUTHIZ = 12725,
- ITEMID_RAIDO,
- ITEMID_BERKANA,
- ITEMID_ISA,
- ITEMID_OTHILA,
- ITEMID_URUZ,
- ITEMID_THURISAZ,
- ITEMID_WYRD,
- ITEMID_HAGALAZ,
- ITEMID_LUX_ANIMA = 22540,
-};
-
-
-
-
-enum geneticist_item_list {
-
- ITEMID_SEED_OF_HORNY_PLANT = 6210,
- ITEMID_BLOODSUCK_PLANT_SEED,
- ITEMID_BOMB_MUSHROOM_SPORE,
- ITEMID_HP_INCREASE_POTIONS = 12422,
- ITEMID_HP_INCREASE_POTIONM,
- ITEMID_HP_INCREASE_POTIONL,
- ITEMID_SP_INCREASE_POTIONS,
- ITEMID_SP_INCREASE_POTIONM,
- ITEMID_SP_INCREASE_POTIONL,
- ITEMID_ENRICH_WHITE_POTIONZ,
- ITEMID_SAVAGE_BBQ,
- ITEMID_WUG_BLOOD_COCKTAIL,
- ITEMID_MINOR_BRISKET,
- ITEMID_SIROMA_ICETEA,
- ITEMID_DROCERA_HERB_STEW,
- ITEMID_PETTI_TAIL_NOODLE,
- ITEMID_VITATA500,
- ITEMID_ENRICH_CELERMINE_JUICE,
- ITEMID_CURE_FREE,
-
- ITEMID_APPLE_BOMB = 13260,
- ITEMID_COCONUT_BOMB,
- ITEMID_MELON_BOMB,
- ITEMID_PINEAPPLE_BOMB,
- ITEMID_BANANA_BOMB,
- ITEMID_BLACK_LUMP,
- ITEMID_BLACK_HARD_LUMP,
- ITEMID_VERY_HARD_LUMP,
-
- ITEMID_MYSTERIOUS_POWDER,
- ITEMID_BOOST500_TO_THROW,
- ITEMID_FULL_SWINGK_TO_THROW,
- ITEMID_MANA_PLUS_TO_THROW,
- ITEMID_CURE_FREE_TO_THROW,
- ITEMID_STAMINA_UP_M_TO_THROW,
- ITEMID_DIGESTIVE_F_TO_THROW,
- ITEMID_HP_INC_POTS_TO_THROW,
- ITEMID_HP_INC_POTM_TO_THROW,
- ITEMID_HP_INC_POTL_TO_THROW,
- ITEMID_SP_INC_POTS_TO_THROW,
- ITEMID_SP_INC_POTM_TO_THROW,
- ITEMID_SP_INC_POTL_TO_THROW,
- ITEMID_EN_WHITE_POTZ_TO_THROW,
- ITEMID_VITATA500_TO_THROW,
- ITEMID_EN_CEL_JUICE_TO_THROW,
- ITEMID_SAVAGE_BBQ_TO_THROW,
- ITEMID_WUG_COCKTAIL_TO_THROW,
- ITEMID_M_BRISKET_TO_THROW,
- ITEMID_SIROMA_ICETEA_TO_THROW,
- ITEMID_DROCERA_STEW_TO_THROW,
- ITEMID_PETTI_NOODLE_TO_THROW,
- ITEMID_BLACK_THING_TO_THROW,
-};
-
-
-enum e_chain_cache {
- ECC_ORE,
-
- ECC_MAX,
-};
-
-enum item_class_upper {
- ITEMUPPER_NONE = 0x00,
- ITEMUPPER_NORMAL = 0x01,
- ITEMUPPER_UPPER = 0x02,
- ITEMUPPER_BABY = 0x04,
- ITEMUPPER_THIRD = 0x08,
- ITEMUPPER_THURDUPPER = 0x10,
- ITEMUPPER_THIRDBABY = 0x20,
- ITEMUPPER_ALL = 0x3f,
-};
-
-
-
-
-enum ItemTradeRestrictions {
- ITR_NONE = 0x000,
- ITR_NODROP = 0x001,
- ITR_NOTRADE = 0x002,
- ITR_PARTNEROVERRIDE = 0x004,
- ITR_NOSELLTONPC = 0x008,
- ITR_NOCART = 0x010,
- ITR_NOSTORAGE = 0x020,
- ITR_NOGSTORAGE = 0x040,
- ITR_NOMAIL = 0x080,
- ITR_NOAUCTION = 0x100,
-
- ITR_ALL = 0x1ff
-};
-
-
-
-
-enum ItemNouseRestrictions {
- INR_NONE = 0x0,
- INR_SITTING = 0x1,
-
- INR_ALL = 0x1
-};
-
-
-struct itemlist_entry {
- int id;
- int16 amount;
-};
-
-struct itemlist { int _max_; int _len_; struct itemlist_entry *_data_; };
-
-struct item_combo {
- struct script_code *script;
- unsigned short nameid[6];
- unsigned char count;
- unsigned short id;
-};
-
-struct item_group {
- unsigned short id;
- unsigned short *nameid;
- unsigned short qty;
-};
-
-struct item_chain_entry {
- unsigned short id;
- unsigned short rate;
- struct item_chain_entry *next;
-};
-
-struct item_chain {
- struct item_chain_entry *items;
- unsigned short qty;
-};
-
-struct item_package_rand_entry {
- unsigned short id;
- unsigned short qty;
- unsigned short rate;
- unsigned short hours;
- unsigned int announce : 1;
- unsigned int named : 1;
- unsigned int force_serial: 1;
- struct item_package_rand_entry *next;
-};
-
-struct item_package_must_entry {
- unsigned short id;
- unsigned short qty;
- unsigned short hours;
- unsigned int announce : 1;
- unsigned int named : 1;
- unsigned int force_serial : 1;
-};
-
-struct item_package_rand_group {
- struct item_package_rand_entry *random_list;
- unsigned short random_qty;
-};
-
-struct item_package {
- unsigned short id;
- struct item_package_rand_group *random_groups;
- struct item_package_must_entry *must_items;
- unsigned short random_qty;
- unsigned short must_qty;
-};
-
-struct item_data {
- uint16 nameid;
- char name[50],jname[50];
-
-
- int value_buy;
- int value_sell;
- int type;
- int maxchance;
- int sex;
- int equip;
- int weight;
- int atk;
- int def;
- int range;
- int slot;
- int look;
- int elv;
- int wlv;
- int view_id;
- int matk;
- int elvmax;
-
- int delay;
-
-
- uint64 class_base[3];
- unsigned class_upper : 6;
- struct {
- unsigned short chance;
- int id;
- } mob[5];
- struct script_code *script;
- struct script_code *equip_script;
- struct script_code *unequip_script;
- struct {
- unsigned available : 1;
- unsigned no_refine : 1;
- unsigned delay_consume : 1;
- unsigned trade_restriction : 9;
- unsigned autoequip: 1;
- unsigned buyingstore : 1;
- unsigned bindonequip : 1;
- unsigned keepafteruse : 1;
- unsigned force_serial : 1;
- } flag;
- struct {
- unsigned short amount;
- unsigned int inventory:1;
- unsigned int cart:1;
- unsigned int storage:1;
- unsigned int guildstorage:1;
- } stack;
- struct {
- unsigned int flag;
- unsigned short override;
- } item_usage;
- short gm_lv_trade_override;
-
- struct item_combo **combos;
- unsigned char combos_count;
-
- struct item_group *group;
- struct item_package *package;
- struct hplugin_data_store *hdata;
-};
-# 573 "../../../server-code/src/map/itemdb.h"
-struct itemdb_interface {
- void (*init) (
-# 574 "../../../server-code/src/map/itemdb.h" 3 4
- _Bool
-# 574 "../../../server-code/src/map/itemdb.h"
- minimal);
- void (*final) (void);
- void (*reload) (void);
- void (*name_constants) (void);
-
- struct item_group *groups;
- unsigned short group_count;
-
- struct item_chain *chains;
- unsigned short chain_count;
- unsigned short chain_cache[ECC_MAX];
-
- struct item_package *packages;
- unsigned short package_count;
-
- struct item_combo **combos;
- unsigned short combo_count;
-
- struct DBMap *names;
-
- struct item_data *array[0x8000];
- struct DBMap *other;
- struct item_data dummy;
-
- void (*read_groups) (void);
- void (*read_chains) (void);
- void (*read_packages) (void);
-
- void (*write_cached_packages) (const char *config_filename);
-
-# 603 "../../../server-code/src/map/itemdb.h" 3 4
-_Bool
-# 603 "../../../server-code/src/map/itemdb.h"
- (*read_cached_packages) (const char *config_filename);
-
- struct item_data* (*name2id) (const char *str);
- struct item_data* (*search_name) (const char *name);
- int (*search_name_array) (struct item_data** data, int size, const char *str, int flag);
- struct item_data* (*load)(int nameid);
- struct item_data* (*search)(int nameid);
- struct item_data* (*exists) (int nameid);
-
-# 611 "../../../server-code/src/map/itemdb.h" 3 4
-_Bool
-# 611 "../../../server-code/src/map/itemdb.h"
- (*in_group) (struct item_group *group, int nameid);
- int (*group_item) (struct item_group *group);
- int (*chain_item) (unsigned short chain_id, int *rate);
- void (*package_item) (struct map_session_data *sd, struct item_package *package);
- int (*searchname_sub) (union DBKey key, struct DBData *data, va_list ap);
- int (*searchname_array_sub) (union DBKey key, struct DBData data, va_list ap);
- int (*searchrandomid) (struct item_group *group);
- const char* (*typename) (int type);
- void (*jobmask2mapid) (uint64 *bclass, uint64 jobmask);
- void (*jobid2mapid) (uint64 *bclass, int job_id,
-# 620 "../../../server-code/src/map/itemdb.h" 3 4
- _Bool
-# 620 "../../../server-code/src/map/itemdb.h"
- enable);
- void (*create_dummy_data) (void);
- struct item_data* (*create_item_data) (int nameid);
- int (*isequip) (int nameid);
- int (*isequip2) (struct item_data *data);
- int (*isstackable) (int nameid);
- int (*isstackable2) (struct item_data *data);
- int (*isdropable_sub) (struct item_data *item, int gmlv, int unused);
- int (*cantrade_sub) (struct item_data *item, int gmlv, int gmlv2);
- int (*canpartnertrade_sub) (struct item_data *item, int gmlv, int gmlv2);
- int (*cansell_sub) (struct item_data *item, int gmlv, int unused);
- int (*cancartstore_sub) (struct item_data *item, int gmlv, int unused);
- int (*canstore_sub) (struct item_data *item, int gmlv, int unused);
- int (*canguildstore_sub) (struct item_data *item, int gmlv, int unused);
- int (*canmail_sub) (struct item_data *item, int gmlv, int unused);
- int (*canauction_sub) (struct item_data *item, int gmlv, int unused);
- int (*isrestricted) (struct item *item, int gmlv, int gmlv2, int(*func)(struct item_data *, int, int));
- int (*isidentified) (int nameid);
- int (*isidentified2) (struct item_data *data);
- int (*combo_split_atoi) (char *str, int *val);
- void (*read_combos) (void);
- int (*gendercheck) (struct item_data *id);
- int (*validate_entry) (struct item_data *entry, int n, const char *source);
- void (*readdb_additional_fields) (int itemid, struct config_setting_t *it, int n, const char *source);
- void (*readdb_job_sub) (struct item_data *id, struct config_setting_t *t);
- int (*readdb_libconfig_sub) (struct config_setting_t *it, int n, const char *source);
- int (*readdb_libconfig) (const char *filename);
- uint64 (*unique_id) (struct map_session_data *sd);
- void (*read) (
-# 648 "../../../server-code/src/map/itemdb.h" 3 4
- _Bool
-# 648 "../../../server-code/src/map/itemdb.h"
- minimal);
- void (*destroy_item_data) (struct item_data *self, int free_self);
- int (*final_sub) (union DBKey key, struct DBData *data, va_list ap);
- void (*clear) (
-# 651 "../../../server-code/src/map/itemdb.h" 3 4
- _Bool
-# 651 "../../../server-code/src/map/itemdb.h"
- total);
- struct item_combo * (*id2combo) (unsigned short id);
-
-# 653 "../../../server-code/src/map/itemdb.h" 3 4
-_Bool
-# 653 "../../../server-code/src/map/itemdb.h"
- (*is_item_usable) (struct item_data *item);
-
-# 654 "../../../server-code/src/map/itemdb.h" 3 4
-_Bool
-# 654 "../../../server-code/src/map/itemdb.h"
- (*lookup_const) (const struct config_setting_t *it, const char *name, int *value);
-};
-
-
-void itemdb_defaults(void);
-
-
-extern struct itemdb_interface *itemdb;
-# 39 "../../../server-code/src/map/clif.c" 2
-# 1 "../../../server-code/src/map/log.h" 1
-# 29 "../../../server-code/src/map/log.h"
-struct Sql;
-struct item;
-struct item_data;
-struct map_session_data;
-struct mob_data;
-# 49 "../../../server-code/src/map/log.h"
-typedef enum e_log_chat_type {
- LOG_CHAT_GLOBAL = 0x01,
- LOG_CHAT_WHISPER = 0x02,
- LOG_CHAT_PARTY = 0x04,
- LOG_CHAT_GUILD = 0x08,
- LOG_CHAT_MAINCHAT = 0x10,
-
- LOG_CHAT_ALL = 0xFF,
-} e_log_chat_type;
-
-typedef enum e_log_pick_type {
- LOG_TYPE_NONE = 0x00000000,
- LOG_TYPE_TRADE = 0x00000001,
- LOG_TYPE_VENDING = 0x00000002,
- LOG_TYPE_PICKDROP_PLAYER = 0x00000004,
- LOG_TYPE_PICKDROP_MONSTER = 0x00000008,
- LOG_TYPE_NPC = 0x00000010,
- LOG_TYPE_SCRIPT = 0x00000020,
- LOG_TYPE_STEAL = 0x00000040,
- LOG_TYPE_CONSUME = 0x00000080,
- LOG_TYPE_PRODUCE = 0x00000100,
- LOG_TYPE_MVP = 0x00000200,
- LOG_TYPE_COMMAND = 0x00000400,
- LOG_TYPE_STORAGE = 0x00000800,
- LOG_TYPE_GSTORAGE = 0x00001000,
- LOG_TYPE_MAIL = 0x00002000,
- LOG_TYPE_AUCTION = 0x00004000,
- LOG_TYPE_BUYING_STORE = 0x00008000,
- LOG_TYPE_OTHER = 0x00010000,
- LOG_TYPE_BANK = 0x00020000,
- LOG_TYPE_DIVORCE = 0x00040000,
- LOG_TYPE_ROULETTE = 0x00080000,
- LOG_TYPE_RENTAL = 0x00100000,
- LOG_TYPE_CARD = 0x00200000,
- LOG_TYPE_INV_INVALID = 0x00400000,
- LOG_TYPE_CART_INVALID = 0x00800000,
- LOG_TYPE_EGG = 0x01000000,
- LOG_TYPE_QUEST = 0x02000000,
- LOG_TYPE_SKILL = 0x04000000,
- LOG_TYPE_REFINE = 0x08000000,
-
-
- LOG_TYPE_LOOT = LOG_TYPE_PICKDROP_MONSTER|LOG_TYPE_CONSUME,
-
- LOG_TYPE_ALL = 0xFFFFFFFF,
-} e_log_pick_type;
-
-
-typedef enum e_log_filter {
- LOG_FILTER_NONE = 0x000,
- LOG_FILTER_ALL = 0x001,
-
- LOG_FILTER_HEALING = 0x002,
- LOG_FILTER_ETC_AMMO = 0x004,
- LOG_FILTER_USABLE = 0x008,
- LOG_FILTER_WEAPON = 0x010,
- LOG_FILTER_ARMOR = 0x020,
- LOG_FILTER_CARD = 0x040,
- LOG_FILTER_PETITEM = 0x080,
- LOG_FILTER_PRICE = 0x100,
- LOG_FILTER_AMOUNT = 0x200,
- LOG_FILTER_REFINE = 0x400,
- LOG_FILTER_CHANCE = 0x800,
-} e_log_filter;
-
-struct log_interface {
- struct {
- e_log_pick_type enable_logs;
- int filter;
-
-# 118 "../../../server-code/src/map/log.h" 3 4
- _Bool
-# 118 "../../../server-code/src/map/log.h"
- sql_logs;
-
-# 119 "../../../server-code/src/map/log.h" 3 4
- _Bool
-# 119 "../../../server-code/src/map/log.h"
- log_chat_woe_disable;
- int rare_items_log,refine_items_log,price_items_log,amount_items_log;
- int branch, mvpdrop, zeny, commands, npc, chat;
- char log_branch[64], log_pick[64], log_zeny[64], log_mvpdrop[64], log_gm[64], log_npc[64], log_chat[64];
- } config;
-
- char db_ip[32];
- int db_port;
- char db_id[32];
- char db_pw[100];
- char db_name[32];
- struct Sql *mysql_handle;
-
- void (*pick_pc) (struct map_session_data* sd, e_log_pick_type type, int amount, struct item* itm, struct item_data *data);
- void (*pick_mob) (struct mob_data* md, e_log_pick_type type, int amount, struct item* itm, struct item_data *data);
- void (*zeny) (struct map_session_data* sd, e_log_pick_type type, struct map_session_data* src_sd, int amount);
- void (*npc) (struct map_session_data* sd, const char *message);
- void (*chat) (e_log_chat_type type, int type_id, int src_charid, int src_accid, const char *mapname, int x, int y, const char* dst_charname, const char* message);
- void (*atcommand) (struct map_session_data* sd, const char* message);
- void (*branch) (struct map_session_data* sd);
- void (*mvpdrop) (struct map_session_data* sd, int monster_id, int* log_mvp);
-
- void (*pick_sub) (int id, int16 m, e_log_pick_type type, int amount, struct item* itm, struct item_data *data);
- void (*zeny_sub) (struct map_session_data* sd, e_log_pick_type type, struct map_session_data* src_sd, int amount);
- void (*npc_sub) (struct map_session_data* sd, const char *message);
- void (*chat_sub) (e_log_chat_type type, int type_id, int src_charid, int src_accid, const char *mapname, int x, int y, const char* dst_charname, const char* message);
- void (*atcommand_sub) (struct map_session_data* sd, const char* message);
- void (*branch_sub) (struct map_session_data* sd);
- void (*mvpdrop_sub) (struct map_session_data* sd, int monster_id, int* log_mvp);
-
- int (*config_read) (const char* cfgName);
- void (*config_done) (void);
- void (*sql_init) (void);
- void (*sql_final) (void);
-
- char (*picktype2char) (e_log_pick_type type);
- char (*chattype2char) (e_log_chat_type type);
-
-# 156 "../../../server-code/src/map/log.h" 3 4
-_Bool
-# 156 "../../../server-code/src/map/log.h"
- (*should_log_item) (int nameid, int amount, int refine, struct item_data *id);
-};
-
-
-void log_defaults(void);
-
-
-extern struct log_interface *logs;
-# 40 "../../../server-code/src/map/clif.c" 2
-# 1 "../../../server-code/src/map/mail.h" 1
-# 26 "../../../server-code/src/map/mail.h"
-struct item;
-struct mail_message;
-struct map_session_data;
-
-struct mail_interface {
- void (*clear) (struct map_session_data *sd);
- int (*removeitem) (struct map_session_data *sd, short flag);
- int (*removezeny) (struct map_session_data *sd, short flag);
- unsigned char (*setitem) (struct map_session_data *sd, int idx, int amount);
-
-# 35 "../../../server-code/src/map/mail.h" 3 4
-_Bool
-# 35 "../../../server-code/src/map/mail.h"
- (*setattachment) (struct map_session_data *sd, struct mail_message *msg);
- void (*getattachment) (struct map_session_data* sd, int zeny, struct item* item);
- int (*openmail) (struct map_session_data *sd);
- void (*deliveryfail) (struct map_session_data *sd, struct mail_message *msg);
-
-# 39 "../../../server-code/src/map/mail.h" 3 4
-_Bool
-# 39 "../../../server-code/src/map/mail.h"
- (*invalid_operation) (struct map_session_data *sd);
-};
-
-
-void mail_defaults(void);
-
-
-extern struct mail_interface *mail;
-# 41 "../../../server-code/src/map/clif.c" 2
-
-# 1 "../../../server-code/src/map/mercenary.h" 1
-# 28 "../../../server-code/src/map/mercenary.h"
-struct map_session_data;
-
-
-
-
-
-enum {
- ARCH_MERC_GUILD,
- SPEAR_MERC_GUILD,
- SWORD_MERC_GUILD,
-};
-
-
-enum merc_id {
- MERID_MER_ARCHER01 = 6017,
- MERID_MER_ARCHER02 = 6018,
- MERID_MER_ARCHER03 = 6019,
- MERID_MER_ARCHER04 = 6020,
- MERID_MER_ARCHER05 = 6021,
- MERID_MER_ARCHER06 = 6022,
- MERID_MER_ARCHER07 = 6023,
- MERID_MER_ARCHER08 = 6024,
- MERID_MER_ARCHER09 = 6025,
- MERID_MER_ARCHER10 = 6026,
- MERID_MER_LANCER01 = 6027,
- MERID_MER_LANCER02 = 6028,
- MERID_MER_LANCER03 = 6029,
- MERID_MER_LANCER04 = 6030,
- MERID_MER_LANCER05 = 6031,
- MERID_MER_LANCER06 = 6032,
- MERID_MER_LANCER07 = 6033,
- MERID_MER_LANCER08 = 6034,
- MERID_MER_LANCER09 = 6035,
- MERID_MER_LANCER10 = 6036,
- MERID_MER_SWORDMAN01 = 6037,
- MERID_MER_SWORDMAN02 = 6038,
- MERID_MER_SWORDMAN03 = 6039,
- MERID_MER_SWORDMAN04 = 6040,
- MERID_MER_SWORDMAN05 = 6041,
- MERID_MER_SWORDMAN06 = 6042,
- MERID_MER_SWORDMAN07 = 6043,
- MERID_MER_SWORDMAN08 = 6044,
- MERID_MER_SWORDMAN09 = 6045,
- MERID_MER_SWORDMAN10 = 6046,
-};
-
-struct s_mercenary_db {
- int class_;
- char sprite[(23 + 1)], name[(23 + 1)];
- unsigned short lv;
- short range2, range3;
- struct status_data status;
- struct view_data vd;
- struct {
- unsigned short id, lv;
- } skill[40];
-};
-
-struct mercenary_data {
- struct block_list bl;
- struct unit_data ud;
- struct view_data *vd;
- struct status_data base_status, battle_status;
- struct status_change sc;
- struct regen_data regen;
- struct s_mercenary_db *db;
- struct s_mercenary mercenary;
- char blockskill[1478];
-
- struct map_session_data *master;
- int contract_timer;
-
- unsigned devotion_flag : 1;
- int64 masterteleport_timer;
-};
-
-
-
-
-
-
-struct mercenary_interface {
-
-
-
- struct s_mercenary_db *db;
-
-
-
- void (*init) (
-# 117 "../../../server-code/src/map/mercenary.h" 3 4
- _Bool
-# 117 "../../../server-code/src/map/mercenary.h"
- minimal);
-
-
-# 119 "../../../server-code/src/map/mercenary.h" 3 4
-_Bool
-# 119 "../../../server-code/src/map/mercenary.h"
- (*class) (int class_);
- struct view_data * (*get_viewdata) (int class_);
-
- int (*create) (struct map_session_data *sd, int class_, unsigned int lifetime);
- int (*data_received) (const struct s_mercenary *merc,
-# 123 "../../../server-code/src/map/mercenary.h" 3 4
- _Bool
-# 123 "../../../server-code/src/map/mercenary.h"
- flag);
- int (*save) (struct mercenary_data *md);
-
- void (*heal) (struct mercenary_data *md, int hp, int sp);
- int (*dead) (struct mercenary_data *md);
-
- int (*delete) (struct mercenary_data *md, int reply);
- void (*contract_stop) (struct mercenary_data *md);
-
- int (*get_lifetime) (struct mercenary_data *md);
- int (*get_guild) (struct mercenary_data *md);
- int (*get_faith) (struct mercenary_data *md);
- int (*set_faith) (struct mercenary_data *md, int value);
- int (*get_calls) (struct mercenary_data *md);
- int (*set_calls) (struct mercenary_data *md, int value);
- int (*kills) (struct mercenary_data *md);
-
- int (*checkskill) (struct mercenary_data *md, uint16 skill_id);
- int (*read_db) (void);
- int (*read_skilldb) (void);
-
- int (*killbonus) (struct mercenary_data *md);
- int (*search_index) (int class_);
-
- int (*contract_end_timer) (int tid, int64 tick, int id, intptr_t data);
-
-# 148 "../../../server-code/src/map/mercenary.h" 3 4
-_Bool
-# 148 "../../../server-code/src/map/mercenary.h"
- (*read_db_sub) (char* str[], int columns, int current);
-
-# 149 "../../../server-code/src/map/mercenary.h" 3 4
-_Bool
-# 149 "../../../server-code/src/map/mercenary.h"
- (*read_skill_db_sub) (char* str[], int columns, int current);
-};
-
-
-void mercenary_defaults(void);
-
-
-extern struct mercenary_interface *mercenary;
-# 43 "../../../server-code/src/map/clif.c" 2
-# 1 "../../../server-code/src/map/mob.h" 1
-# 30 "../../../server-code/src/map/mob.h"
-struct hplugin_data_store;
-# 73 "../../../server-code/src/map/mob.h"
-enum MobSkillState {
- MSS_ANY = -1,
- MSS_IDLE,
- MSS_WALK,
- MSS_LOOT,
- MSS_DEAD,
- MSS_BERSERK,
- MSS_ANGRY,
- MSS_RUSH,
- MSS_FOLLOW,
- MSS_ANYTARGET,
-};
-
-enum MobDamageLogFlag
-{
- MDLF_NORMAL = 0,
- MDLF_HOMUN,
- MDLF_PET,
-};
-
-enum size {
- SZ_SMALL = 0,
- SZ_MEDIUM,
- SZ_BIG,
-};
-
-enum ai {
- AI_NONE = 0,
- AI_ATTACK,
- AI_SPHERE,
- AI_FLORA,
- AI_ZANZOU,
-
- AI_MAX
-};
-
-
-
-
-enum ksprotection_mode {
- KSPROTECT_NONE = 0,
- KSPROTECT_SELF = 1,
- KSPROTECT_PARTY = 2,
- KSPROTECT_GUILD = 3,
-};
-
-struct mob_skill {
- enum MobSkillState state;
- uint16 skill_id,skill_lv;
- short permillage;
- int casttime,delay;
- short cancel;
- short cond1,cond2;
- short target;
- int val[5];
- short emotion;
- unsigned short msg_id;
-};
-
-struct mob_chat {
- unsigned short msg_id;
- unsigned int color;
- char msg[(255 + 1)];
-};
-
-struct spawn_info {
- unsigned short mapindex;
- unsigned short qty;
-};
-
-struct mob_db {
- int mob_id;
- char sprite[(23 + 1)],name[(23 + 1)],jname[(23 + 1)];
- unsigned int base_exp,job_exp;
- unsigned int mexp;
- short range2,range3;
- short race2;
- unsigned short lv;
- struct { int nameid,p; } dropitem[10];
- struct { int nameid,p; } mvpitem[3];
- struct status_data status;
- struct view_data vd;
- unsigned int option;
- int summonper[5];
- int maxskill;
- struct mob_skill skill[50];
- struct spawn_info spawn[10];
- struct hplugin_data_store *hdata;
-};
-
-struct mob_data {
- struct block_list bl;
- struct unit_data ud;
- struct view_data *vd;
- struct status_data status, *base_status;
- struct status_change sc;
- struct mob_db *db;
- char name[(23 + 1)];
- struct {
- unsigned int size : 2;
- unsigned int ai : 4;
- unsigned int clone : 1;
- } special_state;
- struct {
- unsigned int aggressive : 1;
- unsigned int steal_coin_flag : 1;
- unsigned int soul_change_flag : 1;
- unsigned int alchemist: 1;
- unsigned int spotted: 1;
- unsigned int npc_killmonster: 1;
- unsigned int rebirth: 1;
- unsigned int boss : 1;
- enum MobSkillState skillstate;
- unsigned char steal_flag;
- unsigned char attacked_count;
- int provoke_flag;
- } state;
- struct guardian_data* guardian_data;
- struct {
- int id;
- unsigned int dmg;
- unsigned int flag : 2;
- } dmglog[30];
- struct spawn_data *spawn;
- int spawn_timer;
- struct item *lootitem;
- short class_;
- unsigned int tdmg;
- int level;
- int target_id,attacked_id;
- int areanpc_id;
- unsigned int bg_id;
-
- int64 next_walktime, last_thinktime, last_linktime, last_pcneartime, dmgtick;
- short move_fail_count;
- short lootitem_count;
- short min_chase;
- unsigned char walktoxy_fail_count;
-
- int deletetimer;
- int master_id,master_dist;
-
- int8 skill_idx;
- int64 skilldelay[50];
- char npc_event[( (23 + 1) * 2 + 3 )];
-
-
-
-
-
-# 222 "../../../server-code/src/map/mob.h" 3 4
-_Bool
-# 222 "../../../server-code/src/map/mob.h"
- can_summon;
-
-
-
- int tomb_nid;
- struct hplugin_data_store *hdata;
-};
-
-
-enum {
- MST_TARGET = 0,
- MST_RANDOM,
- MST_SELF,
- MST_FRIEND,
- MST_MASTER,
- MST_AROUND5,
- MST_AROUND6,
- MST_AROUND7,
- MST_AROUND8,
- MST_AROUND1,
- MST_AROUND2,
- MST_AROUND3,
- MST_AROUND4,
- MST_AROUND = MST_AROUND4,
-
- MSC_ALWAYS = 0x0000,
- MSC_MYHPLTMAXRATE,
- MSC_MYHPINRATE,
- MSC_FRIENDHPLTMAXRATE,
- MSC_FRIENDHPINRATE,
- MSC_MYSTATUSON,
- MSC_MYSTATUSOFF,
- MSC_FRIENDSTATUSON,
- MSC_FRIENDSTATUSOFF,
- MSC_ATTACKPCGT,
- MSC_ATTACKPCGE,
- MSC_SLAVELT,
- MSC_SLAVELE,
- MSC_CLOSEDATTACKED,
- MSC_LONGRANGEATTACKED,
- MSC_AFTERSKILL,
- MSC_SKILLUSED,
- MSC_CASTTARGETED,
- MSC_RUDEATTACKED,
- MSC_MASTERHPLTMAXRATE,
- MSC_MASTERATTACKED,
- MSC_ALCHEMIST,
- MSC_SPAWN,
-};
-
-
-
-
-enum mob_id {
- MOBID_PORING = 1002,
-
- MOBID_HORNET = 1004,
-
- MOBID_RED_PLANT = 1078,
- MOBID_BLUE_PLANT = 1079,
- MOBID_GREEN_PLANT = 1080,
- MOBID_YELLOW_PLANT = 1081,
- MOBID_WHITE_PLANT = 1082,
- MOBID_SHINING_PLANT = 1083,
- MOBID_BLACK_MUSHROOM = 1084,
- MOBID_RED_MUSHROOM = 1085,
-
- MOBID_MARINE_SPHERE = 1142,
-
- MOBID_EMPELIUM = 1288,
-
- MOBID_GIANT_HONET = 1303,
-
- MOBID_TREASURE_BOX1 = 1324,
- MOBID_TREASURE_BOX2 = 1325,
- MOBID_TREASURE_BOX3 = 1326,
- MOBID_TREASURE_BOX4 = 1327,
- MOBID_TREASURE_BOX5 = 1328,
- MOBID_TREASURE_BOX6 = 1329,
- MOBID_TREASURE_BOX7 = 1330,
- MOBID_TREASURE_BOX8 = 1331,
- MOBID_TREASURE_BOX9 = 1332,
- MOBID_TREASURE_BOX10 = 1333,
- MOBID_TREASURE_BOX11 = 1334,
- MOBID_TREASURE_BOX12 = 1335,
- MOBID_TREASURE_BOX13 = 1336,
- MOBID_TREASURE_BOX14 = 1337,
- MOBID_TREASURE_BOX15 = 1338,
- MOBID_TREASURE_BOX16 = 1339,
- MOBID_TREASURE_BOX17 = 1340,
- MOBID_TREASURE_BOX18 = 1341,
- MOBID_TREASURE_BOX19 = 1342,
- MOBID_TREASURE_BOX20 = 1343,
- MOBID_TREASURE_BOX21 = 1344,
- MOBID_TREASURE_BOX22 = 1345,
- MOBID_TREASURE_BOX23 = 1346,
- MOBID_TREASURE_BOX24 = 1347,
- MOBID_TREASURE_BOX25 = 1348,
- MOBID_TREASURE_BOX26 = 1349,
- MOBID_TREASURE_BOX27 = 1350,
- MOBID_TREASURE_BOX28 = 1351,
- MOBID_TREASURE_BOX29 = 1352,
- MOBID_TREASURE_BOX30 = 1353,
- MOBID_TREASURE_BOX31 = 1354,
- MOBID_TREASURE_BOX32 = 1355,
- MOBID_TREASURE_BOX33 = 1356,
- MOBID_TREASURE_BOX34 = 1357,
- MOBID_TREASURE_BOX35 = 1358,
- MOBID_TREASURE_BOX36 = 1359,
- MOBID_TREASURE_BOX37 = 1360,
- MOBID_TREASURE_BOX38 = 1361,
- MOBID_TREASURE_BOX39 = 1362,
- MOBID_TREASURE_BOX40 = 1363,
-
- MOBID_G_PARASITE = 1555,
- MOBID_G_FLORA = 1575,
- MOBID_G_HYDRA = 1579,
- MOBID_G_MANDRAGORA = 1589,
- MOBID_G_GEOGRAPHER = 1590,
-
- MOBID_BARRICADE = 1905,
- MOBID_BARRICADE_ = 1906,
- MOBID_S_EMPEL_1 = 1907,
- MOBID_S_EMPEL_2 = 1908,
- MOBID_OBJ_A = 1909,
- MOBID_OBJ_B = 1910,
- MOBID_OBJ_NEUTRAL = 1911,
- MOBID_OBJ_FLAG_A = 1912,
- MOBID_OBJ_FLAG_B = 1913,
- MOBID_OBJ_A2 = 1914,
- MOBID_OBJ_B2 = 1915,
-
- MOBID_TREASURE_BOX41 = 1938,
- MOBID_TREASURE_BOX42 = 1939,
- MOBID_TREASURE_BOX43 = 1940,
- MOBID_TREASURE_BOX44 = 1941,
- MOBID_TREASURE_BOX45 = 1942,
- MOBID_TREASURE_BOX46 = 1943,
- MOBID_TREASURE_BOX47 = 1944,
- MOBID_TREASURE_BOX48 = 1945,
- MOBID_TREASURE_BOX49 = 1946,
-
-
- MOBID_TATACHO = 1986,
- MOBID_CENTIPEDE = 1987,
- MOBID_NEPENTHES = 1988,
- MOBID_HILLSRION = 1989,
- MOBID_HARDROCK_MOMMOTH = 1990,
-
-
- MOBID_TENDRILRION = 1991,
- MOBID_CORNUS = 1992,
- MOBID_NAGA = 1993,
- MOBID_LUCIOLA_VESPA = 1994,
- MOBID_PINGUICULA = 1995,
-
-
- MOBID_G_TATACHO = 1997,
- MOBID_G_HILLSRION = 1998,
- MOBID_CENTIPEDE_LARVA = 1999,
-
- MOBID_SILVERSNIPER = 2042,
- MOBID_MAGICDECOY_FIRE = 2043,
- MOBID_MAGICDECOY_WATER = 2044,
- MOBID_MAGICDECOY_EARTH = 2045,
- MOBID_MAGICDECOY_WIND = 2046,
-
-
- MOBID_POM_SPIDER = 2132,
- MOBID_ANGRA_MANTIS = 2133,
- MOBID_PARUS = 2134,
-
- MOBID_LITTLE_FATUM = 2136,
- MOBID_MIMING = 2137,
-
- MOBID_KO_KAGE = 2308,
-};
-
-
-struct item_drop {
- struct item item_data;
- struct item_drop* next;
-};
-struct item_drop_list {
- int16 m, x, y;
- int first_charid, second_charid, third_charid;
- struct item_drop* item;
-};
-# 419 "../../../server-code/src/map/mob.h"
-struct mob_interface {
-
- struct mob_db *db_data[5000 + 1];
- struct mob_db *dummy;
-
- struct mob_chat *chat_db[250 + 1];
-
- int manuk[8];
- int splendide[5];
- int mora[5];
-
- int (*init) (
-# 430 "../../../server-code/src/map/mob.h" 3 4
- _Bool
-# 430 "../../../server-code/src/map/mob.h"
- mimimal);
- int (*final) (void);
- void (*reload) (void);
-
- struct mob_db* (*db) (int index);
- struct mob_chat* (*chat) (short id);
- int (*makedummymobdb) (int);
- int (*spawn_guardian_sub) (int tid, int64 tick, int id, intptr_t data);
- int (*skill_id2skill_idx) (int class_, uint16 skill_id);
- int (*db_searchname) (const char *str);
- int (*db_searchname_array_sub) (struct mob_db *monster, const char *str, int flag);
-
- void (*mvptomb_create) (struct mob_data *md, char *killer, time_t time);
- void (*mvptomb_destroy) (struct mob_data *md);
- int (*db_searchname_array) (struct mob_db **data, int size, const char *str, int flag);
- int (*db_checkid) (const int id);
- struct view_data* (*get_viewdata) (int class_);
- int (*parse_dataset) (struct spawn_data *data);
- struct mob_data* (*spawn_dataset) (struct spawn_data *data);
- int (*get_random_id) (int type, int flag, int lv);
-
-# 450 "../../../server-code/src/map/mob.h" 3 4
-_Bool
-# 450 "../../../server-code/src/map/mob.h"
- (*ksprotected) (struct block_list *src, struct block_list *target);
- struct mob_data* (*once_spawn_sub) (struct block_list *bl, int16 m, int16 x, int16 y, const char *mobname, int class_, const char *event, unsigned int size, unsigned int ai);
- int (*once_spawn) (struct map_session_data *sd, int16 m, int16 x, int16 y, const char *mobname, int class_, int amount, const char *event, unsigned int size, unsigned int ai);
- int (*once_spawn_area) (struct map_session_data *sd, int16 m, int16 x0, int16 y0, int16 x1, int16 y1, const char *mobname, int class_, int amount, const char *event, unsigned int size, unsigned int ai);
- int (*spawn_guardian) (const char *mapname, short x, short y, const char *mobname, int class_, const char *event, int guardian,
-# 454 "../../../server-code/src/map/mob.h" 3 4
- _Bool
-# 454 "../../../server-code/src/map/mob.h"
- has_index);
- int (*spawn_bg) (const char *mapname, short x, short y, const char *mobname, int class_, const char *event, unsigned int bg_id);
- int (*can_reach) (struct mob_data *md, struct block_list *bl, int range, int state);
- int (*linksearch) (struct block_list *bl, va_list ap);
- int (*delayspawn) (int tid, int64 tick, int id, intptr_t data);
- int (*setdelayspawn) (struct mob_data *md);
- int (*count_sub) (struct block_list *bl, va_list ap);
- int (*spawn) (struct mob_data *md);
- int (*can_changetarget) (const struct mob_data *md, const struct block_list *target, uint32 mode);
- int (*target) (struct mob_data *md, struct block_list *bl, int dist);
- int (*ai_sub_hard_activesearch) (struct block_list *bl, va_list ap);
- int (*ai_sub_hard_changechase) (struct block_list *bl, va_list ap);
- int (*ai_sub_hard_bg_ally) (struct block_list *bl, va_list ap);
- int (*ai_sub_hard_lootsearch) (struct block_list *bl, va_list ap);
- int (*warpchase_sub) (struct block_list *bl, va_list ap);
- int (*ai_sub_hard_slavemob) (struct mob_data *md, int64 tick);
- int (*unlocktarget) (struct mob_data *md, int64 tick);
- int (*randomwalk) (struct mob_data *md, int64 tick);
- int (*warpchase) (struct mob_data *md, struct block_list *target);
-
-# 473 "../../../server-code/src/map/mob.h" 3 4
-_Bool
-# 473 "../../../server-code/src/map/mob.h"
- (*ai_sub_hard) (struct mob_data *md, int64 tick);
- int (*ai_sub_hard_timer) (struct block_list *bl, va_list ap);
- int (*ai_sub_foreachclient) (struct map_session_data *sd, va_list ap);
- int (*ai_sub_lazy) (struct mob_data *md, va_list args);
- int (*ai_lazy) (int tid, int64 tick, int id, intptr_t data);
- int (*ai_hard) (int tid, int64 tick, int id, intptr_t data);
- struct item_drop* (*setdropitem) (int nameid, int qty, struct item_data *data);
- struct item_drop* (*setlootitem) (struct item *item);
- int (*delay_item_drop) (int tid, int64 tick, int id, intptr_t data);
- void (*item_drop) (struct mob_data *md, struct item_drop_list *dlist, struct item_drop *ditem, int loot, int drop_rate, unsigned short flag);
- int (*timer_delete) (int tid, int64 tick, int id, intptr_t data);
- int (*deleteslave_sub) (struct block_list *bl, va_list ap);
- int (*deleteslave) (struct mob_data *md);
- int (*respawn) (int tid, int64 tick, int id, intptr_t data);
- void (*log_damage) (struct mob_data *md, struct block_list *src, int damage);
- void (*damage) (struct mob_data *md, struct block_list *src, int damage);
- int (*dead) (struct mob_data *md, struct block_list *src, int type);
- void (*revive) (struct mob_data *md, unsigned int hp);
- int (*guardian_guildchange) (struct mob_data *md);
- int (*random_class) (int *value, size_t count);
- int (*class_change) (struct mob_data *md, int class_);
- void (*heal) (struct mob_data *md, unsigned int heal);
- int (*warpslave_sub) (struct block_list *bl, va_list ap);
- int (*warpslave) (struct block_list *bl, int range);
- int (*countslave_sub) (struct block_list *bl, va_list ap);
- int (*countslave) (struct block_list *bl);
- int (*summonslave) (struct mob_data *md2, int *value, int amount, uint16 skill_id);
- int (*getfriendhprate_sub) (struct block_list *bl, va_list ap);
- struct block_list* (*getfriendhprate) (struct mob_data *md, int min_rate, int max_rate);
- struct block_list* (*getmasterhpltmaxrate) (struct mob_data *md, int rate);
- int (*getfriendstatus_sub) (struct block_list *bl, va_list ap);
- struct mob_data* (*getfriendstatus) (struct mob_data *md, int cond1, int cond2);
- int (*skill_use) (struct mob_data *md, int64 tick, int event);
- int (*skill_event) (struct mob_data *md, struct block_list *src, int64 tick, int flag);
- int (*is_clone) (int class_);
- int (*clone_spawn) (struct map_session_data *sd, int16 m, int16 x, int16 y, const char *event, int master_id, uint32 mode, int flag, unsigned int duration);
- int (*clone_delete) (struct mob_data *md);
- unsigned int (*drop_adjust) (int baserate, int rate_adjust, unsigned short rate_min, unsigned short rate_max);
- void (*item_dropratio_adjust) (int nameid, int mob_id, int *rate_adjust);
- void (*readdb) (void);
-
-# 513 "../../../server-code/src/map/mob.h" 3 4
-_Bool
-# 513 "../../../server-code/src/map/mob.h"
- (*lookup_const) (const struct config_setting_t *it, const char *name, int *value);
-
-# 514 "../../../server-code/src/map/mob.h" 3 4
-_Bool
-# 514 "../../../server-code/src/map/mob.h"
- (*get_const) (const struct config_setting_t *it, int *value);
- int (*db_validate_entry) (struct mob_db *entry, int n, const char *source);
- int (*read_libconfig) (const char *filename,
-# 516 "../../../server-code/src/map/mob.h" 3 4
- _Bool
-# 516 "../../../server-code/src/map/mob.h"
- ignore_missing);
- void (*read_db_additional_fields) (struct mob_db *entry, struct config_setting_t *it, int n, const char *source);
- int (*read_db_sub) (struct config_setting_t *mobt, int id, const char *source);
- void (*read_db_drops_sub) (struct mob_db *entry, struct config_setting_t *t);
- void (*read_db_mvpdrops_sub) (struct mob_db *entry, struct config_setting_t *t);
- uint32 (*read_db_mode_sub) (struct mob_db *entry, struct config_setting_t *t);
- void (*read_db_stats_sub) (struct mob_db *entry, struct config_setting_t *t);
- void (*name_constants) (void);
-
-# 524 "../../../server-code/src/map/mob.h" 3 4
-_Bool
-# 524 "../../../server-code/src/map/mob.h"
- (*readdb_mobavail) (char *str[], int columns, int current);
- int (*read_randommonster) (void);
-
-# 526 "../../../server-code/src/map/mob.h" 3 4
-_Bool
-# 526 "../../../server-code/src/map/mob.h"
- (*parse_row_chatdb) (char **str, const char *source, int line, int *last_msg_id);
- void (*readchatdb) (void);
-
-# 528 "../../../server-code/src/map/mob.h" 3 4
-_Bool
-# 528 "../../../server-code/src/map/mob.h"
- (*parse_row_mobskilldb) (char **str, int columns, int current);
- void (*readskilldb) (void);
-
-# 530 "../../../server-code/src/map/mob.h" 3 4
-_Bool
-# 530 "../../../server-code/src/map/mob.h"
- (*readdb_race2) (char *fields[], int columns, int current);
-
-# 531 "../../../server-code/src/map/mob.h" 3 4
-_Bool
-# 531 "../../../server-code/src/map/mob.h"
- (*readdb_itemratio) (char *str[], int columns, int current);
- void (*load) (
-# 532 "../../../server-code/src/map/mob.h" 3 4
- _Bool
-# 532 "../../../server-code/src/map/mob.h"
- minimal);
- void (*clear_spawninfo) (void);
- void (*destroy_mob_db) (int index);
-};
-
-
-void mob_defaults(void);
-
-
-extern struct mob_interface *mob;
-# 44 "../../../server-code/src/map/clif.c" 2
-# 1 "../../../server-code/src/map/npc.h" 1
-# 30 "../../../server-code/src/map/npc.h"
-# 1 "/usr/include/pcre.h" 1 3 4
-# 90 "/usr/include/pcre.h" 3 4
-# 1 "/usr/include/stdlib.h" 1 3 4
-# 32 "/usr/include/stdlib.h" 3 4
-# 1 "/usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h" 1 3 4
-# 33 "/usr/include/stdlib.h" 2 3 4
-
-
-
-
-
-
-
-
-# 1 "/usr/include/x86_64-linux-gnu/bits/waitflags.h" 1 3 4
-# 50 "/usr/include/x86_64-linux-gnu/bits/waitflags.h" 3 4
-
-# 50 "/usr/include/x86_64-linux-gnu/bits/waitflags.h" 3 4
-typedef enum
-{
- P_ALL,
- P_PID,
- P_PGID
-} idtype_t;
-# 42 "/usr/include/stdlib.h" 2 3 4
-# 1 "/usr/include/x86_64-linux-gnu/bits/waitstatus.h" 1 3 4
-# 66 "/usr/include/x86_64-linux-gnu/bits/waitstatus.h" 3 4
-union wait
- {
- int w_status;
- struct
- {
-
- unsigned int __w_termsig:7;
- unsigned int __w_coredump:1;
- unsigned int __w_retcode:8;
- unsigned int:16;
-
-
-
-
-
-
-
- } __wait_terminated;
- struct
- {
-
- unsigned int __w_stopval:8;
- unsigned int __w_stopsig:8;
- unsigned int:16;
-
-
-
-
-
-
- } __wait_stopped;
- };
-# 43 "/usr/include/stdlib.h" 2 3 4
-# 67 "/usr/include/stdlib.h" 3 4
-typedef union
- {
- union wait *__uptr;
- int *__iptr;
- } __WAIT_STATUS __attribute__ ((__transparent_union__));
-# 95 "/usr/include/stdlib.h" 3 4
-
-
-typedef struct
- {
- int quot;
- int rem;
- } div_t;
-
-
-
-typedef struct
- {
- long int quot;
- long int rem;
- } ldiv_t;
-
-
-
-
-
-
-
-__extension__ typedef struct
- {
- long long int quot;
- long long int rem;
- } lldiv_t;
-
-
-# 139 "/usr/include/stdlib.h" 3 4
-extern size_t __ctype_get_mb_cur_max (void) __attribute__ ((__nothrow__ , __leaf__)) ;
-
-
-
-
-extern double atof (const char *__nptr)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
-
-extern int atoi (const char *__nptr)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
-
-extern long int atol (const char *__nptr)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
-
-
-
-
-
-__extension__ extern long long int atoll (const char *__nptr)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
-
-
-
-
-
-extern double strtod (const char *__restrict __nptr,
- char **__restrict __endptr)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
-
-
-
-
-
-extern float strtof (const char *__restrict __nptr,
- char **__restrict __endptr) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
-
-extern long double strtold (const char *__restrict __nptr,
- char **__restrict __endptr)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
-
-
-
-
-
-extern long int strtol (const char *__restrict __nptr,
- char **__restrict __endptr, int __base)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
-
-extern unsigned long int strtoul (const char *__restrict __nptr,
- char **__restrict __endptr, int __base)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
-
-
-
-
-__extension__
-extern long long int strtoq (const char *__restrict __nptr,
- char **__restrict __endptr, int __base)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
-
-__extension__
-extern unsigned long long int strtouq (const char *__restrict __nptr,
- char **__restrict __endptr, int __base)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
-
-
-
-
-
-__extension__
-extern long long int strtoll (const char *__restrict __nptr,
- char **__restrict __endptr, int __base)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
-
-__extension__
-extern unsigned long long int strtoull (const char *__restrict __nptr,
- char **__restrict __endptr, int __base)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
-
-# 305 "/usr/include/stdlib.h" 3 4
-extern char *l64a (long int __n) __attribute__ ((__nothrow__ , __leaf__)) ;
-
-
-extern long int a64l (const char *__s)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
-
-
-
-
-# 1 "/usr/include/x86_64-linux-gnu/sys/types.h" 1 3 4
-# 27 "/usr/include/x86_64-linux-gnu/sys/types.h" 3 4
-
-
-
-
-
-
-typedef __u_char u_char;
-typedef __u_short u_short;
-typedef __u_int u_int;
-typedef __u_long u_long;
-typedef __quad_t quad_t;
-typedef __u_quad_t u_quad_t;
-typedef __fsid_t fsid_t;
-
-
-
-
-typedef __loff_t loff_t;
-
-
-
-typedef __ino_t ino_t;
-# 60 "/usr/include/x86_64-linux-gnu/sys/types.h" 3 4
-typedef __dev_t dev_t;
-
-
-
-
-typedef __gid_t gid_t;
-
-
-
-
-typedef __mode_t mode_t;
-
-
-
-
-typedef __nlink_t nlink_t;
-
-
-
-
-typedef __uid_t uid_t;
-# 104 "/usr/include/x86_64-linux-gnu/sys/types.h" 3 4
-typedef __id_t id_t;
-# 115 "/usr/include/x86_64-linux-gnu/sys/types.h" 3 4
-typedef __daddr_t daddr_t;
-typedef __caddr_t caddr_t;
-
-
-
-
-
-typedef __key_t key_t;
-# 146 "/usr/include/x86_64-linux-gnu/sys/types.h" 3 4
-# 1 "/usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h" 1 3 4
-# 147 "/usr/include/x86_64-linux-gnu/sys/types.h" 2 3 4
-
-
-
-typedef unsigned long int ulong;
-typedef unsigned short int ushort;
-typedef unsigned int uint;
-# 200 "/usr/include/x86_64-linux-gnu/sys/types.h" 3 4
-typedef unsigned int u_int8_t __attribute__ ((__mode__ (__QI__)));
-typedef unsigned int u_int16_t __attribute__ ((__mode__ (__HI__)));
-typedef unsigned int u_int32_t __attribute__ ((__mode__ (__SI__)));
-typedef unsigned int u_int64_t __attribute__ ((__mode__ (__DI__)));
-
-typedef int register_t __attribute__ ((__mode__ (__word__)));
-# 219 "/usr/include/x86_64-linux-gnu/sys/types.h" 3 4
-# 1 "/usr/include/x86_64-linux-gnu/sys/select.h" 1 3 4
-# 30 "/usr/include/x86_64-linux-gnu/sys/select.h" 3 4
-# 1 "/usr/include/x86_64-linux-gnu/bits/select.h" 1 3 4
-# 22 "/usr/include/x86_64-linux-gnu/bits/select.h" 3 4
-# 1 "/usr/include/x86_64-linux-gnu/bits/wordsize.h" 1 3 4
-# 23 "/usr/include/x86_64-linux-gnu/bits/select.h" 2 3 4
-# 31 "/usr/include/x86_64-linux-gnu/sys/select.h" 2 3 4
-
-
-# 1 "/usr/include/x86_64-linux-gnu/bits/sigset.h" 1 3 4
-# 34 "/usr/include/x86_64-linux-gnu/sys/select.h" 2 3 4
-
-
-
-typedef __sigset_t sigset_t;
-
-
-
-
-
-
-
-# 1 "/usr/include/x86_64-linux-gnu/bits/time.h" 1 3 4
-# 30 "/usr/include/x86_64-linux-gnu/bits/time.h" 3 4
-struct timeval
- {
- __time_t tv_sec;
- __suseconds_t tv_usec;
- };
-# 46 "/usr/include/x86_64-linux-gnu/sys/select.h" 2 3 4
-
-
-typedef __suseconds_t suseconds_t;
-
-
-
-
-
-typedef long int __fd_mask;
-# 64 "/usr/include/x86_64-linux-gnu/sys/select.h" 3 4
-typedef struct
- {
-
-
-
-
-
-
- __fd_mask __fds_bits[1024 / (8 * (int) sizeof (__fd_mask))];
-
-
- } fd_set;
-
-
-
-
-
-
-typedef __fd_mask fd_mask;
-# 96 "/usr/include/x86_64-linux-gnu/sys/select.h" 3 4
-
-# 106 "/usr/include/x86_64-linux-gnu/sys/select.h" 3 4
-extern int select (int __nfds, fd_set *__restrict __readfds,
- fd_set *__restrict __writefds,
- fd_set *__restrict __exceptfds,
- struct timeval *__restrict __timeout);
-# 118 "/usr/include/x86_64-linux-gnu/sys/select.h" 3 4
-extern int pselect (int __nfds, fd_set *__restrict __readfds,
- fd_set *__restrict __writefds,
- fd_set *__restrict __exceptfds,
- const struct timespec *__restrict __timeout,
- const __sigset_t *__restrict __sigmask);
-# 131 "/usr/include/x86_64-linux-gnu/sys/select.h" 3 4
-
-# 220 "/usr/include/x86_64-linux-gnu/sys/types.h" 2 3 4
-
-
-# 1 "/usr/include/x86_64-linux-gnu/sys/sysmacros.h" 1 3 4
-# 24 "/usr/include/x86_64-linux-gnu/sys/sysmacros.h" 3 4
-
-
-__extension__
-extern unsigned int gnu_dev_major (unsigned long long int __dev)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__));
-__extension__
-extern unsigned int gnu_dev_minor (unsigned long long int __dev)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__));
-__extension__
-extern unsigned long long int gnu_dev_makedev (unsigned int __major,
- unsigned int __minor)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__));
-# 58 "/usr/include/x86_64-linux-gnu/sys/sysmacros.h" 3 4
-
-# 223 "/usr/include/x86_64-linux-gnu/sys/types.h" 2 3 4
-
-
-
-
-
-typedef __blksize_t blksize_t;
-
-
-
-
-
-
-typedef __blkcnt_t blkcnt_t;
-
-
-
-typedef __fsblkcnt_t fsblkcnt_t;
-
-
-
-typedef __fsfilcnt_t fsfilcnt_t;
-# 270 "/usr/include/x86_64-linux-gnu/sys/types.h" 3 4
-# 1 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h" 1 3 4
-# 21 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h" 3 4
-# 1 "/usr/include/x86_64-linux-gnu/bits/wordsize.h" 1 3 4
-# 22 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h" 2 3 4
-# 60 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h" 3 4
-typedef unsigned long int pthread_t;
-
-
-union pthread_attr_t
-{
- char __size[56];
- long int __align;
-};
-
-typedef union pthread_attr_t pthread_attr_t;
-
-
-
-
-
-typedef struct __pthread_internal_list
-{
- struct __pthread_internal_list *__prev;
- struct __pthread_internal_list *__next;
-} __pthread_list_t;
-# 90 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h" 3 4
-typedef union
-{
- struct __pthread_mutex_s
- {
- int __lock;
- unsigned int __count;
- int __owner;
-
- unsigned int __nusers;
-
-
-
- int __kind;
-
- short __spins;
- short __elision;
- __pthread_list_t __list;
-# 125 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h" 3 4
- } __data;
- char __size[40];
- long int __align;
-} pthread_mutex_t;
-
-typedef union
-{
- char __size[4];
- int __align;
-} pthread_mutexattr_t;
-
-
-
-
-typedef union
-{
- struct
- {
- int __lock;
- unsigned int __futex;
- __extension__ unsigned long long int __total_seq;
- __extension__ unsigned long long int __wakeup_seq;
- __extension__ unsigned long long int __woken_seq;
- void *__mutex;
- unsigned int __nwaiters;
- unsigned int __broadcast_seq;
- } __data;
- char __size[48];
- __extension__ long long int __align;
-} pthread_cond_t;
-
-typedef union
-{
- char __size[4];
- int __align;
-} pthread_condattr_t;
-
-
-
-typedef unsigned int pthread_key_t;
-
-
-
-typedef int pthread_once_t;
-
-
-
-
-
-typedef union
-{
-
- struct
- {
- int __lock;
- unsigned int __nr_readers;
- unsigned int __readers_wakeup;
- unsigned int __writer_wakeup;
- unsigned int __nr_readers_queued;
- unsigned int __nr_writers_queued;
- int __writer;
- int __shared;
- signed char __rwelision;
-
-
-
-
- unsigned char __pad1[7];
-
-
- unsigned long int __pad2;
-
-
- unsigned int __flags;
-
- } __data;
-# 220 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h" 3 4
- char __size[56];
- long int __align;
-} pthread_rwlock_t;
-
-typedef union
-{
- char __size[8];
- long int __align;
-} pthread_rwlockattr_t;
-
-
-
-
-
-typedef volatile int pthread_spinlock_t;
-
-
-
-
-typedef union
-{
- char __size[32];
- long int __align;
-} pthread_barrier_t;
-
-typedef union
-{
- char __size[4];
- int __align;
-} pthread_barrierattr_t;
-# 271 "/usr/include/x86_64-linux-gnu/sys/types.h" 2 3 4
-
-
-
-# 315 "/usr/include/stdlib.h" 2 3 4
-
-
-
-
-
-
-extern long int random (void) __attribute__ ((__nothrow__ , __leaf__));
-
-
-extern void srandom (unsigned int __seed) __attribute__ ((__nothrow__ , __leaf__));
-
-
-
-
-
-extern char *initstate (unsigned int __seed, char *__statebuf,
- size_t __statelen) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2)));
-
-
-
-extern char *setstate (char *__statebuf) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
-
-
-
-
-
-
-
-struct random_data
- {
- int32_t *fptr;
- int32_t *rptr;
- int32_t *state;
- int rand_type;
- int rand_deg;
- int rand_sep;
- int32_t *end_ptr;
- };
-
-extern int random_r (struct random_data *__restrict __buf,
- int32_t *__restrict __result) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
-
-extern int srandom_r (unsigned int __seed, struct random_data *__buf)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2)));
-
-extern int initstate_r (unsigned int __seed, char *__restrict __statebuf,
- size_t __statelen,
- struct random_data *__restrict __buf)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 4)));
-
-extern int setstate_r (char *__restrict __statebuf,
- struct random_data *__restrict __buf)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
-
-
-
-
-
-
-extern int rand (void) __attribute__ ((__nothrow__ , __leaf__));
-
-extern void srand (unsigned int __seed) __attribute__ ((__nothrow__ , __leaf__));
-
-
-
-
-extern int rand_r (unsigned int *__seed) __attribute__ ((__nothrow__ , __leaf__));
-
-
-
-
-
-
-
-extern double drand48 (void) __attribute__ ((__nothrow__ , __leaf__));
-extern double erand48 (unsigned short int __xsubi[3]) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
-
-
-extern long int lrand48 (void) __attribute__ ((__nothrow__ , __leaf__));
-extern long int nrand48 (unsigned short int __xsubi[3])
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
-
-
-extern long int mrand48 (void) __attribute__ ((__nothrow__ , __leaf__));
-extern long int jrand48 (unsigned short int __xsubi[3])
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
-
-
-extern void srand48 (long int __seedval) __attribute__ ((__nothrow__ , __leaf__));
-extern unsigned short int *seed48 (unsigned short int __seed16v[3])
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
-extern void lcong48 (unsigned short int __param[7]) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
-
-
-
-
-
-struct drand48_data
- {
- unsigned short int __x[3];
- unsigned short int __old_x[3];
- unsigned short int __c;
- unsigned short int __init;
- __extension__ unsigned long long int __a;
-
- };
-
-
-extern int drand48_r (struct drand48_data *__restrict __buffer,
- double *__restrict __result) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
-extern int erand48_r (unsigned short int __xsubi[3],
- struct drand48_data *__restrict __buffer,
- double *__restrict __result) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
-
-
-extern int lrand48_r (struct drand48_data *__restrict __buffer,
- long int *__restrict __result)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
-extern int nrand48_r (unsigned short int __xsubi[3],
- struct drand48_data *__restrict __buffer,
- long int *__restrict __result)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
-
-
-extern int mrand48_r (struct drand48_data *__restrict __buffer,
- long int *__restrict __result)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
-extern int jrand48_r (unsigned short int __xsubi[3],
- struct drand48_data *__restrict __buffer,
- long int *__restrict __result)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
-
-
-extern int srand48_r (long int __seedval, struct drand48_data *__buffer)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2)));
-
-extern int seed48_r (unsigned short int __seed16v[3],
- struct drand48_data *__buffer) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
-
-extern int lcong48_r (unsigned short int __param[7],
- struct drand48_data *__buffer)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
-
-
-
-
-
-
-
-
-
-extern void *malloc (size_t __size) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)) ;
-
-extern void *calloc (size_t __nmemb, size_t __size)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)) ;
-
-
-
-
-
-
-
-
-
-
-extern void *realloc (void *__ptr, size_t __size)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__));
-
-extern void free (void *__ptr) __attribute__ ((__nothrow__ , __leaf__));
-
-
-
-
-extern void cfree (void *__ptr) __attribute__ ((__nothrow__ , __leaf__));
-
-
-
-# 1 "/usr/include/alloca.h" 1 3 4
-# 24 "/usr/include/alloca.h" 3 4
-# 1 "/usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h" 1 3 4
-# 25 "/usr/include/alloca.h" 2 3 4
-
-
-
-
-
-
-
-extern void *alloca (size_t __size) __attribute__ ((__nothrow__ , __leaf__));
-
-
-
-
-
-
-# 493 "/usr/include/stdlib.h" 2 3 4
-
-
-
-
-
-extern void *valloc (size_t __size) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)) ;
-
-
-
-
-extern int posix_memalign (void **__memptr, size_t __alignment, size_t __size)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ;
-
-
-
-
-extern void *aligned_alloc (size_t __alignment, size_t __size)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)) __attribute__ ((__alloc_size__ (2))) ;
-
-
-
-
-extern void abort (void) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__noreturn__));
-
-
-
-extern int atexit (void (*__func) (void)) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
-
-
-
-
-
-
-
-extern int at_quick_exit (void (*__func) (void)) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
-
-
-
-
-
-
-
-extern int on_exit (void (*__func) (int __status, void *__arg), void *__arg)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
-
-
-
-
-
-
-extern void exit (int __status) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__noreturn__));
-
-
-
-
-
-extern void quick_exit (int __status) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__noreturn__));
-
-
-
-
-
-
-
-extern void _Exit (int __status) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__noreturn__));
-
-
-
-
-
-
-extern char *getenv (const char *__name) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ;
-
-# 578 "/usr/include/stdlib.h" 3 4
-extern int putenv (char *__string) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
-
-
-
-
-
-extern int setenv (const char *__name, const char *__value, int __replace)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2)));
-
-
-extern int unsetenv (const char *__name) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
-
-
-
-
-
-
-extern int clearenv (void) __attribute__ ((__nothrow__ , __leaf__));
-# 606 "/usr/include/stdlib.h" 3 4
-extern char *mktemp (char *__template) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
-# 619 "/usr/include/stdlib.h" 3 4
-extern int mkstemp (char *__template) __attribute__ ((__nonnull__ (1))) ;
-# 641 "/usr/include/stdlib.h" 3 4
-extern int mkstemps (char *__template, int __suffixlen) __attribute__ ((__nonnull__ (1))) ;
-# 662 "/usr/include/stdlib.h" 3 4
-extern char *mkdtemp (char *__template) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ;
-# 711 "/usr/include/stdlib.h" 3 4
-
-
-
-
-
-extern int system (const char *__command) ;
-
-# 733 "/usr/include/stdlib.h" 3 4
-extern char *realpath (const char *__restrict __name,
- char *__restrict __resolved) __attribute__ ((__nothrow__ , __leaf__)) ;
-
-
-
-
-
-
-typedef int (*__compar_fn_t) (const void *, const void *);
-# 751 "/usr/include/stdlib.h" 3 4
-
-
-
-extern void *bsearch (const void *__key, const void *__base,
- size_t __nmemb, size_t __size, __compar_fn_t __compar)
- __attribute__ ((__nonnull__ (1, 2, 5))) ;
-
-
-
-
-
-
-
-extern void qsort (void *__base, size_t __nmemb, size_t __size,
- __compar_fn_t __compar) __attribute__ ((__nonnull__ (1, 4)));
-# 774 "/usr/include/stdlib.h" 3 4
-extern int abs (int __x) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)) ;
-extern long int labs (long int __x) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)) ;
-
-
-
-__extension__ extern long long int llabs (long long int __x)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)) ;
-
-
-
-
-
-
-
-extern div_t div (int __numer, int __denom)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)) ;
-extern ldiv_t ldiv (long int __numer, long int __denom)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)) ;
-
-
-
-
-__extension__ extern lldiv_t lldiv (long long int __numer,
- long long int __denom)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)) ;
-
-# 811 "/usr/include/stdlib.h" 3 4
-extern char *ecvt (double __value, int __ndigit, int *__restrict __decpt,
- int *__restrict __sign) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4))) ;
-
-
-
-
-extern char *fcvt (double __value, int __ndigit, int *__restrict __decpt,
- int *__restrict __sign) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4))) ;
-
-
-
-
-extern char *gcvt (double __value, int __ndigit, char *__buf)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3))) ;
-
-
-
-
-extern char *qecvt (long double __value, int __ndigit,
- int *__restrict __decpt, int *__restrict __sign)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4))) ;
-extern char *qfcvt (long double __value, int __ndigit,
- int *__restrict __decpt, int *__restrict __sign)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4))) ;
-extern char *qgcvt (long double __value, int __ndigit, char *__buf)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3))) ;
-
-
-
-
-extern int ecvt_r (double __value, int __ndigit, int *__restrict __decpt,
- int *__restrict __sign, char *__restrict __buf,
- size_t __len) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4, 5)));
-extern int fcvt_r (double __value, int __ndigit, int *__restrict __decpt,
- int *__restrict __sign, char *__restrict __buf,
- size_t __len) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4, 5)));
-
-extern int qecvt_r (long double __value, int __ndigit,
- int *__restrict __decpt, int *__restrict __sign,
- char *__restrict __buf, size_t __len)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4, 5)));
-extern int qfcvt_r (long double __value, int __ndigit,
- int *__restrict __decpt, int *__restrict __sign,
- char *__restrict __buf, size_t __len)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4, 5)));
-
-
-
-
-
-
-extern int mblen (const char *__s, size_t __n) __attribute__ ((__nothrow__ , __leaf__));
-
-
-extern int mbtowc (wchar_t *__restrict __pwc,
- const char *__restrict __s, size_t __n) __attribute__ ((__nothrow__ , __leaf__));
-
-
-extern int wctomb (char *__s, wchar_t __wchar) __attribute__ ((__nothrow__ , __leaf__));
-
-
-
-extern size_t mbstowcs (wchar_t *__restrict __pwcs,
- const char *__restrict __s, size_t __n) __attribute__ ((__nothrow__ , __leaf__));
-
-extern size_t wcstombs (char *__restrict __s,
- const wchar_t *__restrict __pwcs, size_t __n)
- __attribute__ ((__nothrow__ , __leaf__));
-
-
-
-
-
-
-
-
-extern int rpmatch (const char *__response) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ;
-# 898 "/usr/include/stdlib.h" 3 4
-extern int getsubopt (char **__restrict __optionp,
- char *const *__restrict __tokens,
- char **__restrict __valuep)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2, 3))) ;
-# 950 "/usr/include/stdlib.h" 3 4
-extern int getloadavg (double __loadavg[], int __nelem)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
-
-
-# 1 "/usr/include/x86_64-linux-gnu/bits/stdlib-float.h" 1 3 4
-# 955 "/usr/include/stdlib.h" 2 3 4
-# 967 "/usr/include/stdlib.h" 3 4
-
-# 91 "/usr/include/pcre.h" 2 3 4
-# 324 "/usr/include/pcre.h" 3 4
-struct real_pcre;
-typedef struct real_pcre pcre;
-
-struct real_pcre16;
-typedef struct real_pcre16 pcre16;
-
-struct real_pcre32;
-typedef struct real_pcre32 pcre32;
-
-struct real_pcre_jit_stack;
-typedef struct real_pcre_jit_stack pcre_jit_stack;
-
-struct real_pcre16_jit_stack;
-typedef struct real_pcre16_jit_stack pcre16_jit_stack;
-
-struct real_pcre32_jit_stack;
-typedef struct real_pcre32_jit_stack pcre32_jit_stack;
-# 376 "/usr/include/pcre.h" 3 4
-typedef struct pcre_extra {
- unsigned long int flags;
- void *study_data;
- unsigned long int match_limit;
- void *callout_data;
- const unsigned char *tables;
- unsigned long int match_limit_recursion;
- unsigned char **mark;
- void *executable_jit;
-} pcre_extra;
-
-
-
-typedef struct pcre16_extra {
- unsigned long int flags;
- void *study_data;
- unsigned long int match_limit;
- void *callout_data;
- const unsigned char *tables;
- unsigned long int match_limit_recursion;
- unsigned short **mark;
- void *executable_jit;
-} pcre16_extra;
-
-
-
-typedef struct pcre32_extra {
- unsigned long int flags;
- void *study_data;
- unsigned long int match_limit;
- void *callout_data;
- const unsigned char *tables;
- unsigned long int match_limit_recursion;
- unsigned int **mark;
- void *executable_jit;
-} pcre32_extra;
-
-
-
-
-
-
-typedef struct pcre_callout_block {
- int version;
-
- int callout_number;
- int *offset_vector;
- const char * subject;
- int subject_length;
- int start_match;
- int current_position;
- int capture_top;
- int capture_last;
- void *callout_data;
-
- int pattern_position;
- int next_item_length;
-
- const unsigned char *mark;
-
-} pcre_callout_block;
-
-
-
-typedef struct pcre16_callout_block {
- int version;
-
- int callout_number;
- int *offset_vector;
- const unsigned short * subject;
- int subject_length;
- int start_match;
- int current_position;
- int capture_top;
- int capture_last;
- void *callout_data;
-
- int pattern_position;
- int next_item_length;
-
- const unsigned short *mark;
-
-} pcre16_callout_block;
-
-
-
-typedef struct pcre32_callout_block {
- int version;
-
- int callout_number;
- int *offset_vector;
- const unsigned int * subject;
- int subject_length;
- int start_match;
- int current_position;
- int capture_top;
- int capture_last;
- void *callout_data;
-
- int pattern_position;
- int next_item_length;
-
- const unsigned int *mark;
-
-} pcre32_callout_block;
-# 489 "/usr/include/pcre.h" 3 4
-extern void *(*pcre_malloc)(size_t);
-extern void (*pcre_free)(void *);
-extern void *(*pcre_stack_malloc)(size_t);
-extern void (*pcre_stack_free)(void *);
-extern int (*pcre_callout)(pcre_callout_block *);
-extern int (*pcre_stack_guard)(void);
-
-extern void *(*pcre16_malloc)(size_t);
-extern void (*pcre16_free)(void *);
-extern void *(*pcre16_stack_malloc)(size_t);
-extern void (*pcre16_stack_free)(void *);
-extern int (*pcre16_callout)(pcre16_callout_block *);
-extern int (*pcre16_stack_guard)(void);
-
-extern void *(*pcre32_malloc)(size_t);
-extern void (*pcre32_free)(void *);
-extern void *(*pcre32_stack_malloc)(size_t);
-extern void (*pcre32_stack_free)(void *);
-extern int (*pcre32_callout)(pcre32_callout_block *);
-extern int (*pcre32_stack_guard)(void);
-# 534 "/usr/include/pcre.h" 3 4
-typedef pcre_jit_stack *(*pcre_jit_callback)(void *);
-typedef pcre16_jit_stack *(*pcre16_jit_callback)(void *);
-typedef pcre32_jit_stack *(*pcre32_jit_callback)(void *);
-
-
-
-extern pcre *pcre_compile(const char *, int, const char **, int *,
- const unsigned char *);
-extern pcre16 *pcre16_compile(const unsigned short *, int, const char **, int *,
- const unsigned char *);
-extern pcre32 *pcre32_compile(const unsigned int *, int, const char **, int *,
- const unsigned char *);
-extern pcre *pcre_compile2(const char *, int, int *, const char **,
- int *, const unsigned char *);
-extern pcre16 *pcre16_compile2(const unsigned short *, int, int *, const char **,
- int *, const unsigned char *);
-extern pcre32 *pcre32_compile2(const unsigned int *, int, int *, const char **,
- int *, const unsigned char *);
-extern int pcre_config(int, void *);
-extern int pcre16_config(int, void *);
-extern int pcre32_config(int, void *);
-extern int pcre_copy_named_substring(const pcre *, const char *,
- int *, int, const char *, char *, int);
-extern int pcre16_copy_named_substring(const pcre16 *, const unsigned short *,
- int *, int, const unsigned short *, unsigned short *, int);
-extern int pcre32_copy_named_substring(const pcre32 *, const unsigned int *,
- int *, int, const unsigned int *, unsigned int *, int);
-extern int pcre_copy_substring(const char *, int *, int, int,
- char *, int);
-extern int pcre16_copy_substring(const unsigned short *, int *, int, int,
- unsigned short *, int);
-extern int pcre32_copy_substring(const unsigned int *, int *, int, int,
- unsigned int *, int);
-extern int pcre_dfa_exec(const pcre *, const pcre_extra *,
- const char *, int, int, int, int *, int , int *, int);
-extern int pcre16_dfa_exec(const pcre16 *, const pcre16_extra *,
- const unsigned short *, int, int, int, int *, int , int *, int);
-extern int pcre32_dfa_exec(const pcre32 *, const pcre32_extra *,
- const unsigned int *, int, int, int, int *, int , int *, int);
-extern int pcre_exec(const pcre *, const pcre_extra *, const char *,
- int, int, int, int *, int);
-extern int pcre16_exec(const pcre16 *, const pcre16_extra *,
- const unsigned short *, int, int, int, int *, int);
-extern int pcre32_exec(const pcre32 *, const pcre32_extra *,
- const unsigned int *, int, int, int, int *, int);
-extern int pcre_jit_exec(const pcre *, const pcre_extra *,
- const char *, int, int, int, int *, int,
- pcre_jit_stack *);
-extern int pcre16_jit_exec(const pcre16 *, const pcre16_extra *,
- const unsigned short *, int, int, int, int *, int,
- pcre16_jit_stack *);
-extern int pcre32_jit_exec(const pcre32 *, const pcre32_extra *,
- const unsigned int *, int, int, int, int *, int,
- pcre32_jit_stack *);
-extern void pcre_free_substring(const char *);
-extern void pcre16_free_substring(const unsigned short *);
-extern void pcre32_free_substring(const unsigned int *);
-extern void pcre_free_substring_list(const char **);
-extern void pcre16_free_substring_list(const unsigned short * *);
-extern void pcre32_free_substring_list(const unsigned int * *);
-extern int pcre_fullinfo(const pcre *, const pcre_extra *, int,
- void *);
-extern int pcre16_fullinfo(const pcre16 *, const pcre16_extra *, int,
- void *);
-extern int pcre32_fullinfo(const pcre32 *, const pcre32_extra *, int,
- void *);
-extern int pcre_get_named_substring(const pcre *, const char *,
- int *, int, const char *, const char **);
-extern int pcre16_get_named_substring(const pcre16 *, const unsigned short *,
- int *, int, const unsigned short *, const unsigned short * *);
-extern int pcre32_get_named_substring(const pcre32 *, const unsigned int *,
- int *, int, const unsigned int *, const unsigned int * *);
-extern int pcre_get_stringnumber(const pcre *, const char *);
-extern int pcre16_get_stringnumber(const pcre16 *, const unsigned short *);
-extern int pcre32_get_stringnumber(const pcre32 *, const unsigned int *);
-extern int pcre_get_stringtable_entries(const pcre *, const char *,
- char **, char **);
-extern int pcre16_get_stringtable_entries(const pcre16 *, const unsigned short *,
- unsigned short **, unsigned short **);
-extern int pcre32_get_stringtable_entries(const pcre32 *, const unsigned int *,
- unsigned int **, unsigned int **);
-extern int pcre_get_substring(const char *, int *, int, int,
- const char **);
-extern int pcre16_get_substring(const unsigned short *, int *, int, int,
- const unsigned short * *);
-extern int pcre32_get_substring(const unsigned int *, int *, int, int,
- const unsigned int * *);
-extern int pcre_get_substring_list(const char *, int *, int,
- const char ***);
-extern int pcre16_get_substring_list(const unsigned short *, int *, int,
- const unsigned short * **);
-extern int pcre32_get_substring_list(const unsigned int *, int *, int,
- const unsigned int * **);
-extern const unsigned char *pcre_maketables(void);
-extern const unsigned char *pcre16_maketables(void);
-extern const unsigned char *pcre32_maketables(void);
-extern int pcre_refcount(pcre *, int);
-extern int pcre16_refcount(pcre16 *, int);
-extern int pcre32_refcount(pcre32 *, int);
-extern pcre_extra *pcre_study(const pcre *, int, const char **);
-extern pcre16_extra *pcre16_study(const pcre16 *, int, const char **);
-extern pcre32_extra *pcre32_study(const pcre32 *, int, const char **);
-extern void pcre_free_study(pcre_extra *);
-extern void pcre16_free_study(pcre16_extra *);
-extern void pcre32_free_study(pcre32_extra *);
-extern const char *pcre_version(void);
-extern const char *pcre16_version(void);
-extern const char *pcre32_version(void);
-
-
-extern int pcre_pattern_to_host_byte_order(pcre *, pcre_extra *,
- const unsigned char *);
-extern int pcre16_pattern_to_host_byte_order(pcre16 *, pcre16_extra *,
- const unsigned char *);
-extern int pcre32_pattern_to_host_byte_order(pcre32 *, pcre32_extra *,
- const unsigned char *);
-extern int pcre16_utf16_to_host_byte_order(unsigned short *,
- const unsigned short *, int, int *, int);
-extern int pcre32_utf32_to_host_byte_order(unsigned int *,
- const unsigned int *, int, int *, int);
-
-
-
-extern pcre_jit_stack *pcre_jit_stack_alloc(int, int);
-extern pcre16_jit_stack *pcre16_jit_stack_alloc(int, int);
-extern pcre32_jit_stack *pcre32_jit_stack_alloc(int, int);
-extern void pcre_jit_stack_free(pcre_jit_stack *);
-extern void pcre16_jit_stack_free(pcre16_jit_stack *);
-extern void pcre32_jit_stack_free(pcre32_jit_stack *);
-extern void pcre_assign_jit_stack(pcre_extra *,
- pcre_jit_callback, void *);
-extern void pcre16_assign_jit_stack(pcre16_extra *,
- pcre16_jit_callback, void *);
-extern void pcre32_assign_jit_stack(pcre32_extra *,
- pcre32_jit_callback, void *);
-extern void pcre_jit_free_unused_memory(void);
-extern void pcre16_jit_free_unused_memory(void);
-extern void pcre32_jit_free_unused_memory(void);
-# 31 "../../../server-code/src/map/npc.h" 2
-
-
-
-# 33 "../../../server-code/src/map/npc.h"
-struct hplugin_data_store;
-struct itemlist;
-struct view_data;
-
-enum npc_parse_options {
- NPO_NONE = 0x0,
- NPO_ONINIT = 0x1,
- NPO_TRADER = 0x2,
-};
-
-enum npc_shop_types {
- NST_ZENY,
- NST_CASH,
- NST_MARKET,
- NST_CUSTOM,
-
- NST_MAX,
-};
-
-struct npc_timerevent_list {
- int timer,pos;
-};
-struct npc_label_list {
- char name[(23 + 1)];
- int pos;
-};
-struct npc_item_list {
- unsigned short nameid;
- unsigned int value;
- unsigned int qty;
-};
-struct npc_shop_data {
- unsigned char type;
- struct npc_item_list *item;
- unsigned short items;
-};
-struct npc_parse;
-struct npc_data {
- struct block_list bl;
- struct unit_data *ud;
- struct view_data *vd;
- unsigned int option;
- struct npc_data *master_nd;
- short class_;
- short speed;
- char name[(23 + 1)+1];
- char exname[(23 + 1)+1];
- int chat_id;
- int touching_id;
- int64 next_walktime;
- uint8 dir;
- uint8 area_size;
-
- unsigned size : 2;
-
- struct status_data status;
- unsigned short level;
- unsigned short stat_point;
-
- struct npc_parse *chatdb;
- const char *path;
- enum npc_subtype subtype;
- int src_id;
- union {
- struct {
- struct script_code *script;
- short xs,ys;
- int guild_id;
- int timer,timerid,timeramount,rid;
- int64 timertick;
- struct npc_timerevent_list *timer_event;
- int label_list_num;
- struct npc_label_list *label_list;
-
- struct npc_shop_data *shop;
-
-# 108 "../../../server-code/src/map/npc.h" 3 4
- _Bool
-# 108 "../../../server-code/src/map/npc.h"
- trader;
- } scr;
- struct {
- struct npc_item_list* shop_item;
- unsigned short count;
- } shop;
- struct {
- short xs,ys;
- short x,y;
- unsigned short mapindex;
- } warp;
- struct {
- struct mob_data *md;
- time_t kill_time;
- char killer_name[(23 + 1)];
- } tomb;
- } u;
- struct hplugin_data_store *hdata;
-};
-
-
-
-
-enum actor_classes {
- FAKE_NPC = -1,
- WARP_CLASS = 45,
- HIDDEN_WARP_CLASS = 139,
- MOB_TOMB = 565,
- WARP_DEBUG_CLASS = 722,
- FLAG_CLASS = 722,
- INVISIBLE_CLASS = 32767,
-};
-# 148 "../../../server-code/src/map/npc.h"
-enum npce_event {
- NPCE_LOGIN,
- NPCE_LOGOUT,
- NPCE_LOADMAP,
- NPCE_BASELVUP,
- NPCE_JOBLVUP,
- NPCE_DIE,
- NPCE_KILLPC,
- NPCE_KILLNPC,
- NPCE_MAX
-};
-
-
-struct npc_src_list {
- struct npc_src_list* next;
- char name[4];
-};
-
-struct event_data {
- struct npc_data *nd;
- int pos;
-};
-
-struct npc_path_data {
- char* path;
- unsigned short references;
-};
-
-
-struct npc_interface {
-
- struct npc_data *motd;
- struct DBMap *ev_db;
- struct DBMap *ev_label_db;
- struct DBMap *name_db;
- struct DBMap *path_db;
- struct eri *timer_event_ers;
- struct npc_data *fake_nd;
- struct npc_src_list *src_files;
- struct unit_data base_ud;
-
-
-# 189 "../../../server-code/src/map/npc.h" 3 4
-_Bool
-# 189 "../../../server-code/src/map/npc.h"
- trader_ok;
- int trader_funds[2];
-
- int (*init) (
-# 192 "../../../server-code/src/map/npc.h" 3 4
- _Bool
-# 192 "../../../server-code/src/map/npc.h"
- minimal);
- int (*final) (void);
-
- int (*get_new_npc_id) (void);
- struct view_data* (*get_viewdata) (int class_);
- int (*isnear_sub) (struct block_list *bl, va_list args);
-
-# 198 "../../../server-code/src/map/npc.h" 3 4
-_Bool
-# 198 "../../../server-code/src/map/npc.h"
- (*isnear) (struct block_list *bl);
- int (*ontouch_event) (struct map_session_data *sd, struct npc_data *nd);
- int (*ontouch2_event) (struct map_session_data *sd, struct npc_data *nd);
- int (*onuntouch_event) (struct map_session_data *sd, struct npc_data *nd);
- int (*enable_sub) (struct block_list *bl, va_list ap);
- int (*enable) (const char *name, int flag);
- struct npc_data* (*name2id) (const char *name);
- int (*event_dequeue) (struct map_session_data *sd);
- struct DBData (*event_export_create) (union DBKey key, va_list args);
- int (*event_export) (struct npc_data *nd, int i);
- int (*event_sub) (struct map_session_data *sd, struct event_data *ev, const char *eventname);
- void (*event_doall_sub) (void *key, void *data, va_list ap);
- int (*event_do) (const char *name);
- int (*event_doall_id) (const char *name, int rid);
- int (*event_doall) (const char *name);
- int (*event_do_clock) (int tid, int64 tick, int id, intptr_t data);
- void (*event_do_oninit) (
-# 214 "../../../server-code/src/map/npc.h" 3 4
- _Bool
-# 214 "../../../server-code/src/map/npc.h"
- reload );
- int (*timerevent_export) (struct npc_data *nd, int i);
- int (*timerevent) (int tid, int64 tick, int id, intptr_t data);
- int (*timerevent_start) (struct npc_data *nd, int rid);
- int (*timerevent_stop) (struct npc_data *nd);
- void (*timerevent_quit) (struct map_session_data *sd);
- int64 (*gettimerevent_tick) (struct npc_data *nd);
- int (*settimerevent_tick) (struct npc_data *nd, int newtimer);
- int (*event) (struct map_session_data *sd, const char *eventname, int ontouch);
- int (*touch_areanpc_sub) (struct block_list *bl, va_list ap);
- int (*touchnext_areanpc) (struct map_session_data *sd,
-# 224 "../../../server-code/src/map/npc.h" 3 4
- _Bool
-# 224 "../../../server-code/src/map/npc.h"
- leavemap);
- int (*touch_areanpc) (struct map_session_data *sd, int16 m, int16 x, int16 y);
- int (*untouch_areanpc) (struct map_session_data *sd, int16 m, int16 x, int16 y);
- int (*touch_areanpc2) (struct mob_data *md);
- int (*check_areanpc) (int flag, int16 m, int16 x, int16 y, int16 range);
- struct npc_data* (*checknear) (struct map_session_data *sd, struct block_list *bl);
- int (*globalmessage) (const char *name, const char *mes);
- void (*run_tomb) (struct map_session_data *sd, struct npc_data *nd);
- int (*click) (struct map_session_data *sd, struct npc_data *nd);
- int (*scriptcont) (struct map_session_data *sd, int id,
-# 233 "../../../server-code/src/map/npc.h" 3 4
- _Bool
-# 233 "../../../server-code/src/map/npc.h"
- closing);
- int (*buysellsel) (struct map_session_data *sd, int id, int type);
- int (*cashshop_buylist) (struct map_session_data *sd, int points, struct itemlist *item_list);
- int (*buylist_sub) (struct map_session_data *sd, struct itemlist *item_list, struct npc_data *nd);
- int (*cashshop_buy) (struct map_session_data *sd, int nameid, int amount, int points);
- int (*buylist) (struct map_session_data *sd, struct itemlist *item_list);
- int (*selllist_sub) (struct map_session_data *sd, struct itemlist *item_list, struct npc_data *nd);
- int (*selllist) (struct map_session_data *sd, struct itemlist *item_list);
- int (*remove_map) (struct npc_data *nd);
- int (*unload_ev) (union DBKey key, struct DBData *data, va_list ap);
- int (*unload_ev_label) (union DBKey key, struct DBData *data, va_list ap);
- int (*unload_dup_sub) (struct npc_data *nd, va_list args);
- void (*unload_duplicates) (struct npc_data *nd);
- int (*unload) (struct npc_data *nd,
-# 246 "../../../server-code/src/map/npc.h" 3 4
- _Bool
-# 246 "../../../server-code/src/map/npc.h"
- single);
- void (*clearsrcfile) (void);
- void (*addsrcfile) (const char *name);
- void (*delsrcfile) (const char *name);
- const char *(*retainpathreference) (const char *filepath);
- void (*releasepathreference) (const char *filepath);
- void (*parsename) (struct npc_data *nd, const char *name, const char *start, const char *buffer, const char *filepath);
- int (*parseview) (const char *w4, const char *start, const char *buffer, const char *filepath);
-
-# 254 "../../../server-code/src/map/npc.h" 3 4
-_Bool
-# 254 "../../../server-code/src/map/npc.h"
- (*viewisid) (const char *viewid);
- struct npc_data *(*create_npc) (enum npc_subtype subtype, int m, int x, int y, uint8 dir, int16 class_);
- struct npc_data* (*add_warp) (char *name, short from_mapid, short from_x, short from_y, short xs, short ys, unsigned short to_mapindex, short to_x, short to_y);
- const char *(*parse_warp) (const char *w1, const char *w2, const char *w3, const char *w4, const char *start, const char *buffer, const char *filepath, int *retval);
- const char *(*parse_shop) (const char *w1, const char *w2, const char *w3, const char *w4, const char *start, const char *buffer, const char *filepath, int *retval);
- const char *(*parse_unknown_object) (const char *w1, const char *w2, const char *w3, const char *w4, const char *start, const char *buffer, const char *filepath, int *retval);
- void (*convertlabel_db) (struct npc_label_list *label_list, const char *filepath);
- const char* (*skip_script) (const char *start, const char *buffer, const char *filepath, int *retval);
- const char *(*parse_script) (const char *w1, const char *w2, const char *w3, const char *w4, const char *start, const char *buffer, const char *filepath, int options, int *retval);
- void (*add_to_location) (struct npc_data *nd);
-
-# 264 "../../../server-code/src/map/npc.h" 3 4
-_Bool
-# 264 "../../../server-code/src/map/npc.h"
- (*duplicate_script_sub) (struct npc_data *nd, const struct npc_data *snd, int xs, int ys, int options);
-
-# 265 "../../../server-code/src/map/npc.h" 3 4
-_Bool
-# 265 "../../../server-code/src/map/npc.h"
- (*duplicate_shop_sub) (struct npc_data *nd, const struct npc_data *snd, int xs, int ys, int options);
-
-# 266 "../../../server-code/src/map/npc.h" 3 4
-_Bool
-# 266 "../../../server-code/src/map/npc.h"
- (*duplicate_warp_sub) (struct npc_data *nd, const struct npc_data *snd, int xs, int ys, int options);
-
-# 267 "../../../server-code/src/map/npc.h" 3 4
-_Bool
-# 267 "../../../server-code/src/map/npc.h"
- (*duplicate_sub) (struct npc_data *nd, const struct npc_data *snd, int xs, int ys, int options);
- const char *(*parse_duplicate) (const char *w1, const char *w2, const char *w3, const char *w4, const char *start, const char *buffer, const char *filepath, int options, int *retval);
- int (*duplicate4instance) (struct npc_data *snd, int16 m);
- void (*setcells) (struct npc_data *nd);
- int (*unsetcells_sub) (struct block_list *bl, va_list ap);
- void (*unsetcells) (struct npc_data *nd);
- void (*movenpc) (struct npc_data *nd, int16 x, int16 y);
- void (*setdisplayname) (struct npc_data *nd, const char *newname);
- void (*setclass) (struct npc_data *nd, short class_);
- int (*do_atcmd_event) (struct map_session_data *sd, const char *command, const char *message, const char *eventname);
- const char *(*parse_function) (const char *w1, const char *w2, const char *w3, const char *w4, const char *start, const char *buffer, const char *filepath, int *retval);
- void (*parse_mob2) (struct spawn_data *mobspawn);
- const char *(*parse_mob) (const char *w1, const char *w2, const char *w3, const char *w4, const char *start, const char *buffer, const char *filepath, int *retval);
- const char *(*parse_mapflag) (const char *w1, const char *w2, const char *w3, const char *w4, const char *start, const char *buffer, const char *filepath, int *retval);
- void (*parse_unknown_mapflag) (const char *name, const char *w3, const char *w4, const char *start, const char *buffer, const char *filepath, int *retval);
- int (*parsesrcfile) (const char *filepath,
-# 282 "../../../server-code/src/map/npc.h" 3 4
- _Bool
-# 282 "../../../server-code/src/map/npc.h"
- runOnInit);
- int (*script_event) (struct map_session_data *sd, enum npce_event type);
- void (*read_event_script) (void);
- int (*path_db_clear_sub) (union DBKey key, struct DBData *data, va_list args);
- int (*ev_label_db_clear_sub) (union DBKey key, struct DBData *data, va_list args);
- int (*reload) (void);
-
-# 288 "../../../server-code/src/map/npc.h" 3 4
-_Bool
-# 288 "../../../server-code/src/map/npc.h"
- (*unloadfile) (const char *filepath);
- void (*do_clear_npc) (void);
- void (*debug_warps_sub) (struct npc_data *nd);
- void (*debug_warps) (void);
-
- void (*trader_count_funds) (struct npc_data *nd, struct map_session_data *sd);
-
-# 294 "../../../server-code/src/map/npc.h" 3 4
-_Bool
-# 294 "../../../server-code/src/map/npc.h"
- (*trader_pay) (struct npc_data *nd, struct map_session_data *sd, int price, int points);
- void (*trader_update) (int master);
- int (*market_buylist) (struct map_session_data *sd, struct itemlist *item_list);
-
-# 297 "../../../server-code/src/map/npc.h" 3 4
-_Bool
-# 297 "../../../server-code/src/map/npc.h"
- (*trader_open) (struct map_session_data *sd, struct npc_data *nd);
- void (*market_fromsql) (void);
- void (*market_tosql) (struct npc_data *nd, unsigned short index);
- void (*market_delfromsql) (struct npc_data *nd, unsigned short index);
- void (*market_delfromsql_sub) (const char *npcname, unsigned short index);
-
-# 302 "../../../server-code/src/map/npc.h" 3 4
-_Bool
-# 302 "../../../server-code/src/map/npc.h"
- (*db_checkid) (const int id);
-
-
-
- int (*secure_timeout_timer) (int tid, int64 tick, int id, intptr_t data);
-};
-
-
-void npc_defaults(void);
-
-
-extern struct npc_interface *npc;
-
-
-
-
-struct pcrematch_entry {
- struct pcrematch_entry* next;
- char* pattern;
- pcre* pcre_;
- pcre_extra* pcre_extra_;
- char* label;
-};
-
-
-
-
-struct pcrematch_set {
- struct pcrematch_set* prev;
- struct pcrematch_set* next;
- struct pcrematch_entry* head;
- int setid;
-};
-
-
-
-
-struct npc_parse {
- struct pcrematch_set* active;
- struct pcrematch_set* inactive;
-};
-
-struct npc_chat_interface {
- int (*sub) (struct block_list* bl, va_list ap);
- void (*finalize) (struct npc_data* nd);
- void (*def_pattern) (struct npc_data* nd, int setid, const char* pattern, const char* label);
- struct pcrematch_entry* (*create_pcrematch_entry) (struct pcrematch_set* set);
- void (*delete_pcreset) (struct npc_data* nd, int setid);
- void (*deactivate_pcreset) (struct npc_data* nd, int setid);
- void (*activate_pcreset) (struct npc_data* nd, int setid);
- struct pcrematch_set* (*lookup_pcreset) (struct npc_data* nd, int setid);
- void (*finalize_pcrematch_entry) (struct pcrematch_entry* e);
-};
-
-
-
-
-
-
-struct pcre_interface {
- pcre *(*compile) (const char *pattern, int options, const char **errptr, int *erroffset, const unsigned char *tableptr);
- pcre_extra *(*study) (const pcre *code, int options, const char **errptr);
- int (*exec) (const pcre *code, const pcre_extra *extra,
-# 364 "../../../server-code/src/map/npc.h" 3 4
- const char *
-# 364 "../../../server-code/src/map/npc.h"
- subject, int length, int startoffset, int options, int *ovector, int ovecsize);
- void (*free) (void *ptr);
- int (*copy_substring) (const char *subject, int *ovector, int stringcount, int stringnumber, char *buffer, int buffersize);
- void (*free_substring) (const char *stringptr);
- int (*copy_named_substring) (const pcre *code, const char *subject, int *ovector, int stringcount, const char *stringname, char *buffer, int buffersize);
- int (*get_substring) (const char *subject, int *ovector, int stringcount, int stringnumber, const char **stringptr);
-};
-
-
-
-
-
-void npc_chat_defaults(void);
-
-
-extern struct npc_chat_interface *npc_chat;
-extern struct pcre_interface *libpcre;
-# 45 "../../../server-code/src/map/clif.c" 2
-# 1 "../../../server-code/src/map/party.h" 1
-# 33 "../../../server-code/src/map/party.h"
-struct block_list;
-struct hplugin_data_store;
-struct map_session_data;
-
-struct party_member_data {
- struct map_session_data *sd;
- unsigned int hp;
- unsigned short x, y;
-};
-
-struct party_data {
- struct party party;
- struct party_member_data data[12];
- uint8 itemc;
- short *instance;
- unsigned short instances;
- struct {
- unsigned monk : 1;
- unsigned sg : 1;
- unsigned snovice :1;
- unsigned tk : 1;
- } state;
- struct hplugin_data_store *hdata;
-};
-
-
-
-struct party_booking_detail {
- short level;
-
-
-
- short mapid;
- short job[6];
-
-};
-
-struct party_booking_ad_info {
- unsigned int index;
-
-
-
-
- char charname[(23 + 1)];
- int expiretime;
-
- struct party_booking_detail p_detail;
-};
-
-
-
-
-
-
-struct party_interface {
- struct DBMap *db;
- struct DBMap *booking_db;
- unsigned int booking_nextid;
-
- void (*init) (
-# 92 "../../../server-code/src/map/party.h" 3 4
- _Bool
-# 92 "../../../server-code/src/map/party.h"
- minimal);
- void (*final) (void);
-
- struct party_data* (*search) (int party_id);
- struct party_data* (*searchname) (const char* str);
- int (*getmemberid) (struct party_data* p, struct map_session_data* sd);
- struct map_session_data* (*getavailablesd) (struct party_data *p);
-
- int (*create) (struct map_session_data *sd, const char *name, int item, int item2);
- void (*created) (int account_id, int char_id, int fail, int party_id, const char *name);
- int (*request_info) (int party_id, int char_id);
- int (*invite) (struct map_session_data *sd,struct map_session_data *tsd);
- void (*member_joined) (struct map_session_data *sd);
- int (*member_added) (int party_id,int account_id,int char_id,int flag);
- int (*leave) (struct map_session_data *sd);
- int (*removemember) (struct map_session_data *sd, int account_id, const char *name);
- int (*member_withdraw) (int party_id,int account_id,int char_id);
- void (*reply_invite) (struct map_session_data *sd,int party_id,int flag);
- int (*recv_noinfo) (int party_id, int char_id);
- int (*recv_info) (const struct party *sp, int char_id);
- int (*recv_movemap) (int party_id,int account_id,int char_id, unsigned short mapid,int online,int lv);
- int (*broken) (int party_id);
- int (*optionchanged) (int party_id,int account_id,int exp,int item,int flag);
- int (*changeoption) (struct map_session_data *sd,int exp,int item);
-
-# 116 "../../../server-code/src/map/party.h" 3 4
-_Bool
-# 116 "../../../server-code/src/map/party.h"
- (*changeleader) (struct map_session_data *sd, struct map_session_data *t_sd);
- void (*send_movemap) (struct map_session_data *sd);
- void (*send_levelup) (struct map_session_data *sd);
- int (*send_logout) (struct map_session_data *sd);
- int (*send_message) (struct map_session_data *sd,const char *mes,int len);
- int (*recv_message) (int party_id,int account_id,const char *mes,int len);
- int (*skill_check) (struct map_session_data *sd, int party_id, uint16 skill_id, uint16 skill_lv);
- int (*send_xy_clear) (struct party_data *p);
- int (*exp_share) (struct party_data *p,struct block_list *src,unsigned int base_exp,unsigned int job_exp,int zeny);
- int (*share_loot) (struct party_data* p, struct map_session_data* sd, struct item* item_data, int first_charid);
- int (*send_dot_remove) (struct map_session_data *sd);
- int (*sub_count) (struct block_list *bl, va_list ap);
- int (*sub_count_chorus) (struct block_list *bl, va_list ap);
-
-
-
- void (*booking_register) (struct map_session_data *sd, short level, short mapid, short* job);
- void (*booking_update) (struct map_session_data *sd, short* job);
- void (*booking_search) (struct map_session_data *sd, short level, short mapid, short job, unsigned long lastindex, short resultcount);
-
- void (*recruit_register) (struct map_session_data *sd, short level, const char *notice);
- void (*recruit_update) (struct map_session_data *sd, const char *notice);
- void (*recruit_search) (struct map_session_data *sd, short level, short mapid, unsigned long lastindex, short resultcount);
-
-# 139 "../../../server-code/src/map/party.h" 3 4
-_Bool
-# 139 "../../../server-code/src/map/party.h"
- (*booking_delete) (struct map_session_data *sd);
-
- int (*vforeachsamemap) (int (*func)(struct block_list *,va_list),struct map_session_data *sd,int range, va_list ap);
- int (*foreachsamemap) (int (*func)(struct block_list *,va_list),struct map_session_data *sd,int range,...);
- int (*send_xy_timer) (int tid, int64 tick, int id, intptr_t data);
- void (*fill_member) (struct party_member* member, struct map_session_data* sd, unsigned int leader);
- struct map_session_data *(*sd_check) (int party_id, int account_id, int char_id);
- void (*check_state) (struct party_data *p);
- struct party_booking_ad_info* (*create_booking_data) (void);
- int (*db_final) (union DBKey key, struct DBData *data, va_list ap);
-};
-
-
-void party_defaults(void);
-
-
-extern struct party_interface *party;
-# 46 "../../../server-code/src/map/clif.c" 2
-# 1 "../../../server-code/src/map/pc.h" 1
-# 26 "../../../server-code/src/map/pc.h"
-# 1 "../../../server-code/src/map/buyingstore.h" 1
-# 27 "../../../server-code/src/map/buyingstore.h"
-struct map_session_data;
-
-
-
-
-struct s_search_store_search;
-# 47 "../../../server-code/src/map/buyingstore.h"
-enum e_buyingstore_failure {
- BUYINGSTORE_CREATE = 1,
- BUYINGSTORE_CREATE_OVERWEIGHT = 2,
- BUYINGSTORE_TRADE_BUYER_ZENY = 3,
- BUYINGSTORE_TRADE_BUYER_NO_ITEMS = 4,
- BUYINGSTORE_TRADE_SELLER_FAILED = 5,
- BUYINGSTORE_TRADE_SELLER_COUNT = 6,
- BUYINGSTORE_TRADE_SELLER_ZENY = 7,
- BUYINGSTORE_CREATE_NO_INFO = 8,
-};
-
-
-
-
-struct s_buyingstore_item {
- int price;
- unsigned short amount;
- unsigned short nameid;
-};
-
-struct s_buyingstore {
- struct s_buyingstore_item items[5];
- int zenylimit;
- unsigned char slots;
-};
-
-
-
-
-struct buyingstore_interface {
- unsigned int nextid;
- short blankslots[4];
-
-
-# 80 "../../../server-code/src/map/buyingstore.h" 3 4
-_Bool
-# 80 "../../../server-code/src/map/buyingstore.h"
- (*setup) (struct map_session_data* sd, unsigned char slots);
- void (*create) (struct map_session_data* sd, int zenylimit, unsigned char result, const char* storename, const uint8* itemlist, unsigned int count);
- void (*close) (struct map_session_data* sd);
- void (*open) (struct map_session_data* sd, int account_id);
- void (*trade) (struct map_session_data* sd, int account_id, unsigned int buyer_id, const uint8* itemlist, unsigned int count);
-
-# 85 "../../../server-code/src/map/buyingstore.h" 3 4
-_Bool
-# 85 "../../../server-code/src/map/buyingstore.h"
- (*search) (struct map_session_data* sd, unsigned short nameid);
-
-# 86 "../../../server-code/src/map/buyingstore.h" 3 4
-_Bool
-# 86 "../../../server-code/src/map/buyingstore.h"
- (*searchall) (struct map_session_data* sd, const struct s_search_store_search* s);
- unsigned int (*getuid) (void);
-};
-
-
-void buyingstore_defaults (void);
-
-
-extern struct buyingstore_interface *buyingstore;
-# 27 "../../../server-code/src/map/pc.h" 2
-
-
-
-
-
-# 1 "../../../server-code/src/map/searchstore.h" 1
-# 38 "../../../server-code/src/map/searchstore.h"
-enum e_searchstore_searchtype {
- SEARCHTYPE_VENDING = 0,
- SEARCHTYPE_BUYING_STORE = 1,
-};
-
-enum e_searchstore_effecttype {
- EFFECTTYPE_NORMAL = 0,
- EFFECTTYPE_CASH = 1,
- EFFECTTYPE_MAX
-};
-
-enum e_searchstore_failure {
- SSI_FAILED_NOTHING_SEARCH_ITEM = 0,
- SSI_FAILED_OVER_MAXCOUNT = 1,
- SSI_FAILED_SEARCH_CNT = 2,
- SSI_FAILED_LIMIT_SEARCH_TIME = 3,
- SSI_FAILED_SSILIST_CLICK_TO_OPEN_STORE = 4,
-};
-
-
-
-
-
-struct s_search_store_search {
- struct map_session_data* search_sd;
- const unsigned short* itemlist;
- const unsigned short* cardlist;
- unsigned int item_count;
- unsigned int card_count;
- unsigned int min_price;
- unsigned int max_price;
-};
-
-struct s_search_store_info_item {
- unsigned int store_id;
- int account_id;
- char store_name[(79 + 1)];
- unsigned short nameid;
- unsigned short amount;
- unsigned int price;
- short card[4];
- unsigned char refine;
-};
-
-struct s_search_store_info {
- unsigned int count;
- struct s_search_store_info_item* items;
- unsigned int pages;
- unsigned int uses;
- int remote_id;
- time_t nextquerytime;
- unsigned short effect;
- unsigned char type;
-
-# 91 "../../../server-code/src/map/searchstore.h" 3 4
-_Bool
-# 91 "../../../server-code/src/map/searchstore.h"
- open;
-};
-
-
-typedef
-# 95 "../../../server-code/src/map/searchstore.h" 3 4
- _Bool
-# 95 "../../../server-code/src/map/searchstore.h"
- (*searchstore_search_t)(struct map_session_data* sd, unsigned short nameid);
-typedef
-# 96 "../../../server-code/src/map/searchstore.h" 3 4
- _Bool
-# 96 "../../../server-code/src/map/searchstore.h"
- (*searchstore_searchall_t)(struct map_session_data* sd, const struct s_search_store_search* s);
-
-
-
-
-struct searchstore_interface {
-
-# 102 "../../../server-code/src/map/searchstore.h" 3 4
-_Bool
-# 102 "../../../server-code/src/map/searchstore.h"
- (*open) (struct map_session_data* sd, unsigned int uses, unsigned short effect);
- void (*query) (struct map_session_data* sd, unsigned char type, unsigned int min_price, unsigned int max_price, const unsigned short* itemlist, unsigned int item_count, const unsigned short* cardlist, unsigned int card_count);
-
-# 104 "../../../server-code/src/map/searchstore.h" 3 4
-_Bool
-# 104 "../../../server-code/src/map/searchstore.h"
- (*querynext) (struct map_session_data* sd);
- void (*next) (struct map_session_data* sd);
- void (*clear) (struct map_session_data* sd);
- void (*close) (struct map_session_data* sd);
- void (*click) (struct map_session_data* sd, int account_id, int store_id, unsigned short nameid);
-
-# 109 "../../../server-code/src/map/searchstore.h" 3 4
-_Bool
-# 109 "../../../server-code/src/map/searchstore.h"
- (*queryremote) (struct map_session_data* sd, int account_id);
- void (*clearremote) (struct map_session_data* sd);
-
-# 111 "../../../server-code/src/map/searchstore.h" 3 4
-_Bool
-# 111 "../../../server-code/src/map/searchstore.h"
- (*result) (struct map_session_data* sd, unsigned 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);
-};
-
-
-void searchstore_defaults(void);
-
-
-extern struct searchstore_interface *searchstore;
-# 33 "../../../server-code/src/map/pc.h" 2
-
-
-# 1 "../../../server-code/src/map/vending.h" 1
-# 27 "../../../server-code/src/map/vending.h"
-struct DBMap;
-struct map_session_data;
-struct s_search_store_search;
-
-struct s_vending {
- short index;
- short amount;
- unsigned int value;
-};
-
-struct vending_interface {
- unsigned int next_id;
- struct DBMap *db;
-
- void (*init) (
-# 41 "../../../server-code/src/map/vending.h" 3 4
- _Bool
-# 41 "../../../server-code/src/map/vending.h"
- minimal);
- void (*final) (void);
-
- void (*close) (struct map_session_data* sd);
- void (*open) (struct map_session_data* sd, const char* message, const uint8* data, int count);
- void (*list) (struct map_session_data* sd, unsigned int id);
- void (*purchase) (struct map_session_data* sd, int aid, unsigned int uid, const uint8* data, int count);
-
-# 48 "../../../server-code/src/map/vending.h" 3 4
-_Bool
-# 48 "../../../server-code/src/map/vending.h"
- (*search) (struct map_session_data* sd, unsigned short nameid);
-
-# 49 "../../../server-code/src/map/vending.h" 3 4
-_Bool
-# 49 "../../../server-code/src/map/vending.h"
- (*searchall) (struct map_session_data* sd, const struct s_search_store_search* s);
-};
-
-
-void vending_defaults(void);
-
-
-extern struct vending_interface *vending;
-# 36 "../../../server-code/src/map/pc.h" 2
-
-# 1 "../../../server-code/src/common/ers.h" 1
-# 91 "../../../server-code/src/common/ers.h"
-enum ERSOptions {
- ERS_OPT_NONE = 0x00,
- ERS_OPT_CLEAR = 0x01,
- ERS_OPT_WAIT = 0x02,
- ERS_OPT_FREE_NAME = 0x04,
- ERS_OPT_CLEAN = 0x08,
- ERS_OPT_FLEX_CHUNK = 0x10,
-
-
- ERS_CACHE_OPTIONS = ERS_OPT_CLEAN|ERS_OPT_FLEX_CHUNK,
-};
-# 110 "../../../server-code/src/common/ers.h"
-typedef struct eri {
-
-
-
-
-
-
-
- void *(*alloc)(struct eri *self);
-# 127 "../../../server-code/src/common/ers.h"
- void (*free)(struct eri *self, void *entry);
-
-
-
-
-
-
- size_t (*entry_size)(struct eri *self);
-# 143 "../../../server-code/src/common/ers.h"
- void (*destroy)(struct eri *self);
-
-
- void (*chunk_size) (struct eri *self, unsigned int new_size);
-} ERS;
-# 180 "../../../server-code/src/common/ers.h"
-ERS *ers_new(uint32 size, char *name, enum ERSOptions options);
-# 189 "../../../server-code/src/common/ers.h"
-void ers_report(void);
-
-
-
-
-void ers_final(void);
-# 38 "../../../server-code/src/map/pc.h" 2
-# 51 "../../../server-code/src/map/pc.h"
-enum equip_index {
- EQI_ACC_L = 0,
- EQI_ACC_R,
- EQI_SHOES,
- EQI_GARMENT,
- EQI_HEAD_LOW,
- EQI_HEAD_MID,
- EQI_HEAD_TOP,
- EQI_ARMOR,
- EQI_HAND_L,
- EQI_HAND_R,
- EQI_COSTUME_TOP,
- EQI_COSTUME_MID,
- EQI_COSTUME_LOW,
- EQI_COSTUME_GARMENT,
- EQI_AMMO,
- EQI_SHADOW_ARMOR,
- EQI_SHADOW_WEAPON,
- EQI_SHADOW_SHIELD,
- EQI_SHADOW_SHOES,
- EQI_SHADOW_ACC_R,
- EQI_SHADOW_ACC_L,
- EQI_MAX
-};
-
-enum pc_unequipitem_flag {
- PCUNEQUIPITEM_NONE = 0x0,
- PCUNEQUIPITEM_RECALC = 0x1,
- PCUNEQUIPITEM_FORCE = 0x2,
-};
-
-enum pc_resetskill_flag {
- PCRESETSKILL_NONE = 0x0,
- PCRESETSKILL_RESYNC = 0x1,
- PCRESETSKILL_RECOUNT = 0x2,
- PCRESETSKILL_CHSEX = 0x4,
-};
-
-struct weapon_data {
- int atkmods[3];
-int8 HERC__zeroed_block_BEGIN;
- int overrefine;
- int star;
- int ignore_def_ele;
- int ignore_def_race;
- int def_ratio_atk_ele;
- int def_ratio_atk_race;
- int addele[ELE_MAX];
- int addrace[RC_MAX];
- int addrace2[RC2_MAX];
- int addsize[3];
- struct drain_data {
- short rate;
- short per;
- short value;
- unsigned type:1;
- } hp_drain[RC_MAX], sp_drain[RC_MAX];
- struct {
- short class_, rate;
- } add_dmg[10];
- struct {
- short flag, rate;
- unsigned char ele;
- } addele2[10];
-int8 HERC__zeroed_block_END;
-};
-struct s_autospell {
- short id, lv, rate, card_id, flag;
-
-# 119 "../../../server-code/src/map/pc.h" 3 4
-_Bool
-# 119 "../../../server-code/src/map/pc.h"
- lock;
-};
-
-struct s_addeffect {
- enum sc_type id;
- int16 rate;
- int16 arrow_rate;
- uint8 flag;
- uint16 duration;
-
-};
-struct s_addeffectonskill {
- enum sc_type id;
- short rate, skill;
- unsigned char target;
-};
-struct s_add_drop {
- short id, group;
- int race, rate;
-};
-struct s_autobonus {
- short rate,atk_type;
- unsigned int duration;
- char *bonus_script, *other_script;
- int active;
- unsigned short pos;
-};
-enum npc_timeout_type {
- NPCT_INPUT = 0,
- NPCT_MENU = 1,
- NPCT_WAIT = 2,
-};
-
-struct pc_combos {
- struct script_code *bonus;
- unsigned short id;
-};
-
-struct map_session_data {
- struct block_list bl;
- struct unit_data ud;
- struct view_data vd;
- struct status_data base_status, battle_status;
- struct status_change sc;
- struct regen_data regen;
- struct regen_data_sub sregen, ssregen;
-
-
- struct {
- unsigned int active : 1;
- unsigned int menu_or_input : 1;
- unsigned int dead_sit : 2;
- unsigned int lr_flag : 3;
- unsigned int connect_new : 1;
- unsigned int arrow_atk : 1;
- unsigned int gangsterparadise : 1;
- unsigned int rest : 1;
- unsigned int storage_flag : 2;
- unsigned int snovice_dead_flag : 1;
- unsigned int abra_flag : 2;
- unsigned int autocast : 1;
- unsigned int autotrade : 2;
- unsigned int showdelay :1;
- unsigned int showexp :1;
- unsigned int showzeny :1;
- unsigned int noask :1;
- unsigned int trading :1;
- unsigned int deal_locked :2;
- unsigned int monster_ignore :1;
- unsigned int size :2;
- unsigned int night :1;
- unsigned int blockedmove :1;
- unsigned int using_fake_npc :1;
- unsigned int rewarp :1;
- unsigned int killer : 1;
- unsigned int killable : 1;
- unsigned int doridori : 1;
- unsigned int ignoreAll : 1;
- unsigned int debug_remove_map : 1;
- unsigned int buyingstore : 1;
- unsigned int lesseffect : 1;
- unsigned int vending : 1;
- unsigned int noks : 3;
- unsigned int changemap : 1;
- unsigned int callshop : 1;
- short pmap;
- unsigned short autoloot;
- unsigned short autolootid[10];
- unsigned short autoloottype;
- unsigned int autolooting : 1;
- unsigned short autobonus;
- unsigned int gmaster_flag : 1;
- unsigned int prevend : 1;
- unsigned int warping : 1;
- unsigned int permanent_speed : 1;
- unsigned int dialog : 1;
- unsigned int prerefining : 1;
- unsigned int workinprogress : 3;
- unsigned int hold_recalc : 1;
- unsigned int snovice_call_flag : 3;
- unsigned int hpmeter_visible : 1;
- unsigned int itemcheck : 1;
- unsigned int standalone : 1;
- unsigned int loggingout : 1;
- unsigned int warp_clean : 1;
- } state;
- struct {
- unsigned char no_weapon_damage, no_magic_damage, no_misc_damage;
- unsigned int restart_full_recover : 1;
- unsigned int no_castcancel : 1;
- unsigned int no_castcancel2 : 1;
- unsigned int no_sizefix : 1;
- unsigned int no_gemstone : 1;
- unsigned int intravision : 1;
- unsigned int perfect_hiding : 1;
- unsigned int no_knockback : 1;
- unsigned int bonus_coma : 1;
- } special_state;
- int login_id1, login_id2;
- unsigned short class_;
-
-
- int group_id;
- GroupSettings *group;
- unsigned int extra_temp_permissions;
-
- struct mmo_charstatus status;
- struct item_data* inventory_data[100];
- short equip_index[EQI_MAX];
- unsigned int weight,max_weight;
- int cart_weight,cart_num,cart_weight_max;
- int fd;
- unsigned short mapindex;
- unsigned char head_dir;
- unsigned int client_tick;
- int npc_id,areanpc_id,npc_shopid,touching_id;
- int npc_item_flag;
- int npc_menu;
- int npc_amount;
- struct script_state *st;
- char npc_str[(70 + 1)];
- int npc_timer_id;
- unsigned int chatID;
- int64 idletime;
- struct {
- int npc_id;
- int64 timeout;
- } progressbar;
- struct{
- char name[(23 + 1)];
- } ignore[20];
- int followtimer;
- int followtarget;
- time_t emotionlasttime;
- short skillitem,skillitemlv;
- uint16 skill_id_old,skill_lv_old;
- uint16 skill_id_dance,skill_lv_dance;
- short cook_mastery;
-
-# 277 "../../../server-code/src/map/pc.h" 3 4
-_Bool
-# 277 "../../../server-code/src/map/pc.h"
- blockskill[1478];
- int cloneskill_id, reproduceskill_id;
- int menuskill_id, menuskill_val, menuskill_val2;
- int invincible_timer;
- int64 canlog_tick;
- int64 canuseitem_tick;
- int64 canusecashfood_tick;
- int64 canequip_tick;
- int64 cantalk_tick;
- int64 canskill_tick;
- int64 cansendmail_tick;
- int64 ks_floodprotect_tick;
- struct {
- short nameid;
- int64 tick;
- } item_delay[10];
- short weapontype1,weapontype2;
- short disguise;
- struct weapon_data right_weapon, left_weapon;
-
-int8 HERC__zeroed_block_BEGIN;
- int param_bonus[6],param_equip[6];
- int subele[ELE_MAX];
- int subrace[RC_MAX];
- int subrace2[RC2_MAX];
- int subsize[3];
- int reseff[SC_COMMON_MAX-SC_COMMON_MIN+1];
- int weapon_coma_ele[ELE_MAX];
- int weapon_coma_race[RC_MAX];
- int weapon_atk[MAX_WEAPON_TYPE];
- int weapon_atk_rate[MAX_WEAPON_TYPE];
- int arrow_addele[ELE_MAX];
- int arrow_addrace[RC_MAX];
- int arrow_addsize[3];
- int magic_addele[ELE_MAX];
- int magic_addrace[RC_MAX];
- int magic_addsize[3];
- int magic_atk_ele[ELE_MAX];
- int critaddrace[RC_MAX];
- int expaddrace[RC_MAX];
- int ignore_mdef[RC_MAX];
- int ignore_def[RC_MAX];
- short sp_gain_race[RC_MAX];
- short sp_gain_race_attack[RC_MAX];
- short hp_gain_race_attack[RC_MAX];
-
- int race_tolerance[RC_MAX];
-
- struct s_autospell autospell[15], autospell2[15], autospell3[15];
- struct s_addeffect addeff[10], addeff2[10];
- struct s_addeffectonskill addeff3[10];
- struct {
- unsigned short id;
- short val;
- } skillatk[10], skillusesprate[10], skillusesp[10], skillheal[5], skillheal2[5], skillblown[10], skillcast[10], skillcooldown[10], skillfixcast[10], skillvarcast[10], skillfixcastrate[10];
- struct {
- short value;
- int rate;
- int tick;
- } hp_loss, sp_loss, hp_regen, sp_regen;
- struct {
- short class_, rate;
- } add_def[10], add_mdef[10], add_mdmg[10];
- struct s_add_drop add_drop[10];
- struct {
- int nameid;
- int rate;
- } itemhealrate[10];
- struct {
- short flag, rate;
- unsigned char ele;
- } subele2[10];
- struct {
- short value;
- int rate, tick;
- } def_set_race[RC_MAX], mdef_set_race[RC_MAX];
- struct {
- int atk_rate;
- int arrow_atk,arrow_ele,arrow_cri,arrow_hit;
- int nsshealhp,nsshealsp;
- int critical_def,double_rate;
- int long_attack_atk_rate;
- int near_attack_def_rate,long_attack_def_rate,magic_def_rate,misc_def_rate;
- int ignore_mdef_ele;
- int ignore_mdef_race;
- int perfect_hit;
- int perfect_hit_add;
- int get_zeny_rate;
- int get_zeny_num;
- int double_add_rate;
- int short_weapon_damage_return,long_weapon_damage_return;
- int magic_damage_return;
- int break_weapon_rate,break_armor_rate;
- int crit_atk_rate;
- int classchange;
- int speed_rate, speed_add_rate, aspd_add;
- int itemhealrate2;
- int shieldmdef;
- unsigned int setitem_hash, setitem_hash2;
- short splash_range, splash_add_range;
- short add_steal_rate;
- short add_heal_rate, add_heal2_rate;
- short sp_gain_value, hp_gain_value, magic_sp_gain_value, magic_hp_gain_value;
- short hp_vanish_rate;
- short hp_vanish_per, hp_vanish_trigger;
- short sp_vanish_rate;
- short sp_vanish_per, sp_vanish_trigger;
- unsigned short unbreakable;
- unsigned short unbreakable_equip;
- unsigned short unstripable_equip;
- int fixcastrate,varcastrate;
- int add_fixcast,add_varcast;
- int ematk;
- } bonus;
-int8 HERC__zeroed_block_END;
-
-
- struct s_autobonus autobonus[10], autobonus2[10], autobonus3[10];
-
- int castrate,delayrate,hprate,sprate,dsprate;
- int hprecov_rate,sprecov_rate;
- int matk_rate;
- int critical_rate,hit_rate,flee_rate,flee2_rate,def_rate,def2_rate,mdef_rate,mdef2_rate;
- int itemid;
- short itemindex;
- short catch_target_class;
- short spiritball, spiritball_old;
- int spirit_timer[15];
- short charm_count;
- int charm_type;
- int charm_timer[10];
- unsigned char potion_success_counter;
- unsigned char mission_count;
- short mission_mobid;
- int die_counter;
- int devotion[5];
- int trade_partner;
- struct {
- struct {
- short index, amount;
- } item[10];
- int zeny, weight;
- } deal;
-
-# 420 "../../../server-code/src/map/pc.h" 3 4
-_Bool
-# 420 "../../../server-code/src/map/pc.h"
- party_creating;
-
-# 421 "../../../server-code/src/map/pc.h" 3 4
-_Bool
-# 421 "../../../server-code/src/map/pc.h"
- party_joining;
- int party_invite, party_invite_account;
- int adopt_invite;
- struct guild *guild;
- int guild_invite,guild_invite_account;
- int guild_emblem_id,guild_alliance,guild_alliance_account;
- short guild_x,guild_y;
- int guildspy;
- int partyspy;
- unsigned int vended_id;
- unsigned int vender_id;
- int vend_num;
- char message[(79 + 1)];
- struct s_vending vending[12];
- unsigned int buyer_id;
- struct s_buyingstore buyingstore;
- struct s_search_store_info searchstore;
-
- struct pet_data *pd;
- struct homun_data *hd;
- struct mercenary_data *md;
- struct elemental_data *ed;
-
- struct {
- int m;
- unsigned short index;
- } feel_map[3];
- short hate_mob[3];
-
- int pvp_timer;
- short pvp_point;
- unsigned short pvp_rank, pvp_lastusers;
- unsigned short pvp_won, pvp_lost;
-
- char eventqueue[2][( (23 + 1) * 2 + 3 )];
- int eventtimer[32];
- unsigned short eventcount;
-
- unsigned char change_level_2nd;
- unsigned char change_level_3rd;
-
- char fakename[(23 + 1)];
-
- int duel_group;
- int duel_invite;
-
- int killerrid, killedrid;
-
- int cashPoints, kafraPoints;
- int rental_timer;
-
-
- struct {
- int index, amount;
- } auction;
-
-
- struct {
- short nameid;
- int index, amount, zeny;
- struct mail_data inbox;
-
-# 482 "../../../server-code/src/map/pc.h" 3 4
- _Bool
-# 482 "../../../server-code/src/map/pc.h"
- changed;
- } mail;
-
-
- int num_quests;
- int avail_quests;
- struct quest *quest_log;
-
-# 489 "../../../server-code/src/map/pc.h" 3 4
-_Bool
-# 489 "../../../server-code/src/map/pc.h"
- save_quest;
-
-
- const char* debug_file;
- int debug_line;
- const char* debug_func;
-
- unsigned int bg_id;
-# 519 "../../../server-code/src/map/pc.h"
- struct pc_combos *combos;
- unsigned char combo_count;
-
-
-
-
- int friend_req;
-
- int shadowform_id;
-
-
- struct channel_data **channels;
- unsigned char channel_count;
- struct channel_data *gcbind;
- unsigned char fontcolor;
- unsigned int fontcolor_tid;
- int64 hchsysch_tick;
-
-
- struct sc_display_entry **sc_display;
- unsigned char sc_display_count;
-
- short *instance;
- unsigned short instances;
-
-
- struct {
- unsigned int ready : 1;
- unsigned int client_has_bg_data : 1;
- struct bg_arena *arena;
- enum bg_queue_types type;
- } bg_queue;
-
- struct { int _max_; int _len_; int *_data_; } script_queues;
-
-
- unsigned int cryptKey;
- unsigned short (*parse_cmd_func)(int fd, struct map_session_data *sd);
-
- unsigned char delayed_damage;
- struct hplugin_data_store *hdata;
-
-
- int expiration_tid;
- time_t expiration_time;
-
-
- struct {
- unsigned int second,third;
- } sktree;
-
-
-
-
- struct reg_db regs;
- unsigned char vars_received;
-
-# 575 "../../../server-code/src/map/pc.h" 3 4
-_Bool
-# 575 "../../../server-code/src/map/pc.h"
- vars_ok;
-
-# 576 "../../../server-code/src/map/pc.h" 3 4
-_Bool
-# 576 "../../../server-code/src/map/pc.h"
- vars_dirty;
-
- struct {
- short stage;
- short prizeIdx;
- short prizeStage;
-
-# 582 "../../../server-code/src/map/pc.h" 3 4
- _Bool
-# 582 "../../../server-code/src/map/pc.h"
- claimPrize;
- } roulette;
-
- uint8 lang_id;
-
-
- const char* delunit_prevfile;
- int delunit_prevline;
-
-};
-# 717 "../../../server-code/src/map/pc.h"
-struct skill_tree_requirement {
- short id;
- unsigned short idx;
- unsigned char lv;
-};
-
-struct skill_tree_entry {
- short id;
- unsigned short idx;
- unsigned char max;
- unsigned char joblv;
- short inherited;
- struct { int _max_; int _len_; struct skill_tree_requirement *_data_; } need;
-};
-
-struct sg_data {
- short anger_id;
- short bless_id;
- short comfort_id;
- char feel_var[(23 + 1)];
- char hate_var[(23 + 1)];
-
-# 738 "../../../server-code/src/map/pc.h" 3 4
-_Bool
-# 738 "../../../server-code/src/map/pc.h"
- (*day_func)(void);
-};
-
-enum { ADDITEM_EXIST , ADDITEM_NEW , ADDITEM_OVERAMOUNT };
-
-
-
-
-
-
-
-struct item_cd {
- int64 tick[10];
- short nameid[10];
-};
-
-enum e_pc_autotrade_update_action {
- PAUC_START,
- PAUC_REFRESH,
- PAUC_REMOVE,
-};
-
-
-
-
-enum pc_skill_flag {
- SKILL_GRANT_PERMANENT = 0,
- SKILL_GRANT_TEMPORARY = 1,
- SKILL_GRANT_TEMPSTACK = 2,
- SKILL_GRANT_UNCONDITIONAL = 3,
-};
-
-
-
-
-struct autotrade_vending {
- struct item list[12];
- struct s_vending vending[12];
- unsigned char vend_num;
- struct hplugin_data_store *hdata;
-};
-
-
-
-
-
-
-struct pc_interface {
-
-
- struct DBMap *at_db;
-
- struct DBMap *itemcd_db;
-
- int day_timer_tid;
- int night_timer_tid;
-
-
-int8 HERC__zeroed_block_BEGIN;
- unsigned int exp_table[(JOB_MAX - JOB_NOVICE_HIGH + JOB_MAX_BASIC)][2][175];
- unsigned int max_level[(JOB_MAX - JOB_NOVICE_HIGH + JOB_MAX_BASIC)][2];
- unsigned int statp[175 +1];
- unsigned int level_penalty[3][RC_MAX][175*2+1];
-
- struct skill_tree_entry skill_tree[(JOB_MAX - JOB_NOVICE_HIGH + JOB_MAX_BASIC)][86];
- struct fame_list smith_fame_list[10];
- struct fame_list chemist_fame_list[10];
- struct fame_list taekwon_fame_list[10];
-int8 HERC__zeroed_block_END;
-
- unsigned int equip_pos[EQI_MAX];
- struct sg_data sg_info[3];
-
- struct eri *sc_display_ers;
-
- int expiration_tid;
-
-
-
- struct eri *num_reg_ers;
- struct eri *str_reg_ers;
-
-
-# 820 "../../../server-code/src/map/pc.h" 3 4
-_Bool
-# 820 "../../../server-code/src/map/pc.h"
- reg_load;
-
- void (*init) (
-# 822 "../../../server-code/src/map/pc.h" 3 4
- _Bool
-# 822 "../../../server-code/src/map/pc.h"
- minimal);
- void (*final) (void);
-
- struct map_session_data* (*get_dummy_sd) (void);
- int (*class2idx) (int class_);
-
-# 827 "../../../server-code/src/map/pc.h" 3 4
-_Bool
-# 827 "../../../server-code/src/map/pc.h"
- (*can_talk) (struct map_session_data *sd);
-
-# 828 "../../../server-code/src/map/pc.h" 3 4
-_Bool
-# 828 "../../../server-code/src/map/pc.h"
- (*can_attack) ( struct map_session_data *sd, int target_id );
-
-
-# 830 "../../../server-code/src/map/pc.h" 3 4
-_Bool
-# 830 "../../../server-code/src/map/pc.h"
- (*can_use_command) (struct map_session_data *sd, const char *command);
- int (*set_group) (struct map_session_data *sd, int group_id);
-
-# 832 "../../../server-code/src/map/pc.h" 3 4
-_Bool
-# 832 "../../../server-code/src/map/pc.h"
- (*should_log_commands) (struct map_session_data *sd);
-
- int (*setrestartvalue) (struct map_session_data *sd,int type);
- int (*makesavestatus) (struct map_session_data *sd);
- void (*respawn) (struct map_session_data* sd, clr_type clrtype);
- int (*setnewpc) (struct map_session_data *sd, int account_id, int char_id, int login_id1, unsigned int client_tick, int sex, int fd);
-
-# 838 "../../../server-code/src/map/pc.h" 3 4
-_Bool
-# 838 "../../../server-code/src/map/pc.h"
- (*authok) (struct map_session_data *sd, int login_id2, time_t expiration_time, int group_id, const struct mmo_charstatus *st,
-# 838 "../../../server-code/src/map/pc.h" 3 4
- _Bool
-# 838 "../../../server-code/src/map/pc.h"
- changing_mapservers);
- void (*authfail) (struct map_session_data *sd);
- int (*reg_received) (struct map_session_data *sd);
-
- int (*isequip) (struct map_session_data *sd,int n);
- int (*equippoint) (struct map_session_data *sd,int n);
- int (*setinventorydata) (struct map_session_data *sd);
-
- int (*checkskill) (struct map_session_data *sd,uint16 skill_id);
- int (*checkskill2) (struct map_session_data *sd,uint16 index);
- int (*checkallowskill) (struct map_session_data *sd);
- int (*checkequip) (struct map_session_data *sd,int pos);
-
- int (*calc_skilltree) (struct map_session_data *sd);
- int (*calc_skilltree_normalize_job) (struct map_session_data *sd);
- int (*clean_skilltree) (struct map_session_data *sd);
-
- int (*setpos) (struct map_session_data* sd, unsigned short map_index, int x, int y, clr_type clrtype);
- int (*setsavepoint) (struct map_session_data *sd, short map_index, int x, int y);
- int (*randomwarp) (struct map_session_data *sd,clr_type type);
- int (*memo) (struct map_session_data* sd, int pos);
-
- int (*checkadditem) (struct map_session_data *sd,int nameid,int amount);
- int (*inventoryblank) (struct map_session_data *sd);
- int (*search_inventory) (struct map_session_data *sd,int item_id);
- int (*payzeny) (struct map_session_data *sd,int zeny, enum e_log_pick_type type, struct map_session_data *tsd);
- int (*additem) (struct map_session_data *sd,struct item *item_data,int amount,e_log_pick_type log_type);
- int (*getzeny) (struct map_session_data *sd,int zeny, enum e_log_pick_type type, struct map_session_data *tsd);
- int (*delitem) (struct map_session_data *sd,int n,int amount,int type, short reason, e_log_pick_type log_type);
-
-
- int (*paycash) (struct map_session_data *sd, int price, int points);
- int (*getcash) (struct map_session_data *sd, int cash, int points);
-
- int (*cart_additem) (struct map_session_data *sd,struct item *item_data,int amount,e_log_pick_type log_type);
- int (*cart_delitem) (struct map_session_data *sd,int n,int amount,int type,e_log_pick_type log_type);
- int (*putitemtocart) (struct map_session_data *sd,int idx,int amount);
- int (*getitemfromcart) (struct map_session_data *sd,int idx,int amount);
- int (*cartitem_amount) (struct map_session_data *sd,int idx,int amount);
-
- int (*takeitem) (struct map_session_data *sd,struct flooritem_data *fitem);
- int (*dropitem) (struct map_session_data *sd,int n,int amount);
-
-
-# 881 "../../../server-code/src/map/pc.h" 3 4
-_Bool
-# 881 "../../../server-code/src/map/pc.h"
- (*isequipped) (struct map_session_data *sd, int nameid);
-
-# 882 "../../../server-code/src/map/pc.h" 3 4
-_Bool
-# 882 "../../../server-code/src/map/pc.h"
- (*can_Adopt) (struct map_session_data *p1_sd, struct map_session_data *p2_sd, struct map_session_data *b_sd);
-
-# 883 "../../../server-code/src/map/pc.h" 3 4
-_Bool
-# 883 "../../../server-code/src/map/pc.h"
- (*adoption) (struct map_session_data *p1_sd, struct map_session_data *p2_sd, struct map_session_data *b_sd);
-
- int (*updateweightstatus) (struct map_session_data *sd);
-
- int (*addautobonus) (struct s_autobonus *bonus,char max,const char *bonus_script,short rate,unsigned int dur,short atk_type,const char *o_script,unsigned short pos,
-# 887 "../../../server-code/src/map/pc.h" 3 4
- _Bool
-# 887 "../../../server-code/src/map/pc.h"
- onskill);
- int (*exeautobonus) (struct map_session_data* sd,struct s_autobonus *bonus);
- int (*endautobonus) (int tid, int64 tick, int id, intptr_t data);
- int (*delautobonus) (struct map_session_data* sd,struct s_autobonus *bonus,char max,
-# 890 "../../../server-code/src/map/pc.h" 3 4
- _Bool
-# 890 "../../../server-code/src/map/pc.h"
- restore);
-
- int (*bonus) (struct map_session_data *sd,int type,int val);
- int (*bonus2) (struct map_session_data *sd,int type,int type2,int val);
- int (*bonus3) (struct map_session_data *sd,int type,int type2,int type3,int val);
- int (*bonus4) (struct map_session_data *sd,int type,int type2,int type3,int type4,int val);
- int (*bonus5) (struct map_session_data *sd,int type,int type2,int type3,int type4,int type5,int val);
- int (*skill) (struct map_session_data *sd, int id, int level, int flag);
-
- int (*insert_card) (struct map_session_data *sd,int idx_card,int idx_equip);
-
-# 900 "../../../server-code/src/map/pc.h" 3 4
-_Bool
-# 900 "../../../server-code/src/map/pc.h"
- (*can_insert_card) (struct map_session_data* sd, int idx_card);
-
-# 901 "../../../server-code/src/map/pc.h" 3 4
-_Bool
-# 901 "../../../server-code/src/map/pc.h"
- (*can_insert_card_into) (struct map_session_data* sd, int idx_card, int idx_equip);
-
- int (*steal_item) (struct map_session_data *sd,struct block_list *bl, uint16 skill_lv);
- int (*steal_coin) (struct map_session_data *sd,struct block_list *bl);
-
- int (*modifybuyvalue) (struct map_session_data *sd,int orig_value);
- int (*modifysellvalue) (struct map_session_data *sd,int orig_value);
-
- int (*follow) (struct map_session_data *sd, int target_id);
- int (*stop_following) (struct map_session_data *sd);
-
- unsigned int (*maxbaselv) (struct map_session_data *sd);
- unsigned int (*maxjoblv) (struct map_session_data *sd);
- int (*checkbaselevelup) (struct map_session_data *sd);
- int (*checkjoblevelup) (struct map_session_data *sd);
-
-# 916 "../../../server-code/src/map/pc.h" 3 4
-_Bool
-# 916 "../../../server-code/src/map/pc.h"
- (*gainexp) (struct map_session_data *sd, struct block_list *src, unsigned int base_exp, unsigned int job_exp,
-# 916 "../../../server-code/src/map/pc.h" 3 4
- _Bool
-# 916 "../../../server-code/src/map/pc.h"
- is_quest);
- unsigned int (*nextbaseexp) (struct map_session_data *sd);
- unsigned int (*thisbaseexp) (struct map_session_data *sd);
- unsigned int (*nextjobexp) (struct map_session_data *sd);
- unsigned int (*thisjobexp) (struct map_session_data *sd);
- int (*gets_status_point) (int level);
- int (*need_status_point) (struct map_session_data *sd,int type,int val);
- int (*maxparameterincrease) (struct map_session_data* sd, int type);
-
-# 924 "../../../server-code/src/map/pc.h" 3 4
-_Bool
-# 924 "../../../server-code/src/map/pc.h"
- (*statusup) (struct map_session_data *sd, int type, int increase);
- int (*statusup2) (struct map_session_data *sd,int type,int val);
- int (*skillup) (struct map_session_data *sd,uint16 skill_id);
- int (*allskillup) (struct map_session_data *sd);
- int (*resetlvl) (struct map_session_data *sd,int type);
- int (*resetstate) (struct map_session_data *sd);
- int (*resetskill) (struct map_session_data *sd, int flag);
- int (*resetfeel) (struct map_session_data *sd);
- int (*resethate) (struct map_session_data *sd);
- int (*equipitem) (struct map_session_data *sd,int n,int req_pos);
- void (*equipitem_pos) (struct map_session_data *sd, struct item_data *id, int n, int pos);
- int (*unequipitem) (struct map_session_data *sd,int n,int flag);
- void (*unequipitem_pos) (struct map_session_data *sd, int n, int pos);
- int (*checkitem) (struct map_session_data *sd);
- int (*useitem) (struct map_session_data *sd,int n);
-
- int (*skillatk_bonus) (struct map_session_data *sd, uint16 skill_id);
- int (*skillheal_bonus) (struct map_session_data *sd, uint16 skill_id);
- int (*skillheal2_bonus) (struct map_session_data *sd, uint16 skill_id);
-
- void (*damage) (struct map_session_data *sd,struct block_list *src,unsigned int hp, unsigned int sp);
- int (*dead) (struct map_session_data *sd,struct block_list *src);
- void (*revive) (struct map_session_data *sd,unsigned int hp, unsigned int sp);
- void (*heal) (struct map_session_data *sd,unsigned int hp,unsigned int sp, int type);
- int (*itemheal) (struct map_session_data *sd,int itemid, int hp,int sp);
- int (*percentheal) (struct map_session_data *sd,int hp,int sp);
- int (*jobchange) (struct map_session_data *sd,int job, int upper);
- int (*setoption) (struct map_session_data *sd,int type);
- int (*setcart) (struct map_session_data* sd, int type);
- void (*setfalcon) (struct map_session_data *sd,
-# 953 "../../../server-code/src/map/pc.h" 3 4
- _Bool
-# 953 "../../../server-code/src/map/pc.h"
- flag);
- void (*setridingpeco) (struct map_session_data *sd,
-# 954 "../../../server-code/src/map/pc.h" 3 4
- _Bool
-# 954 "../../../server-code/src/map/pc.h"
- flag);
- void (*setmadogear) (struct map_session_data *sd,
-# 955 "../../../server-code/src/map/pc.h" 3 4
- _Bool
-# 955 "../../../server-code/src/map/pc.h"
- flag);
- void (*setridingdragon) (struct map_session_data *sd, unsigned int type);
- void (*setridingwug) (struct map_session_data *sd,
-# 957 "../../../server-code/src/map/pc.h" 3 4
- _Bool
-# 957 "../../../server-code/src/map/pc.h"
- flag);
- int (*changelook) (struct map_session_data *sd,int type,int val);
- int (*equiplookall) (struct map_session_data *sd);
-
- int (*readparam) (struct map_session_data *sd,int type);
- int (*setparam) (struct map_session_data *sd,int type,int val);
- int (*readreg) (struct map_session_data *sd, int64 reg);
- void (*setreg) (struct map_session_data *sd, int64 reg,int val);
- char * (*readregstr) (struct map_session_data *sd, int64 reg);
- void (*setregstr) (struct map_session_data *sd, int64 reg, const char *str);
- int (*readregistry) (struct map_session_data *sd, int64 reg);
- int (*setregistry) (struct map_session_data *sd, int64 reg, int val);
- char * (*readregistry_str) (struct map_session_data *sd, int64 reg);
- int (*setregistry_str) (struct map_session_data *sd, int64 reg, const char *val);
-
- int (*addeventtimer) (struct map_session_data *sd,int tick,const char *name);
- int (*deleventtimer) (struct map_session_data *sd,const char *name);
- int (*cleareventtimer) (struct map_session_data *sd);
- int (*addeventtimercount) (struct map_session_data *sd,const char *name,int tick);
-
- int (*calc_pvprank) (struct map_session_data *sd);
- int (*calc_pvprank_timer) (int tid, int64 tick, int id, intptr_t data);
-
- int (*ismarried) (struct map_session_data *sd);
- int (*marriage) (struct map_session_data *sd,struct map_session_data *dstsd);
- int (*divorce) (struct map_session_data *sd);
- struct map_session_data * (*get_partner) (struct map_session_data *sd);
- struct map_session_data * (*get_father) (struct map_session_data *sd);
- struct map_session_data * (*get_mother) (struct map_session_data *sd);
- struct map_session_data * (*get_child) (struct map_session_data *sd);
-
- void (*bleeding) (struct map_session_data *sd, unsigned int diff_tick);
- void (*regen) (struct map_session_data *sd, unsigned int diff_tick);
-
- void (*setstand) (struct map_session_data *sd);
- int (*candrop) (struct map_session_data *sd,struct item *item);
-
- int (*jobid2mapid) (unsigned short b_class);
- int (*mapid2jobid) (unsigned short class_, int sex);
-
- const char * (*job_name) (int class_);
-
- void (*setinvincibletimer) (struct map_session_data* sd, int val);
- void (*delinvincibletimer) (struct map_session_data* sd);
-
- int (*addspiritball) (struct map_session_data *sd,int interval,int max);
- int (*delspiritball) (struct map_session_data *sd,int count,int type);
- int (*getmaxspiritball) (struct map_session_data *sd, int min);
- void (*addfame) (struct map_session_data *sd,int count);
- unsigned char (*famerank) (int char_id, int job);
- int (*set_hate_mob) (struct map_session_data *sd, int pos, struct block_list *bl);
-
- int (*readdb) (void);
- int (*map_day_timer) (int tid, int64 tick, int id, intptr_t data);
- int (*map_night_timer) (int tid, int64 tick, int id, intptr_t data);
-
- void (*inventory_rentals) (struct map_session_data *sd);
- int (*inventory_rental_clear) (struct map_session_data *sd);
- void (*inventory_rental_add) (struct map_session_data *sd, int seconds);
-
- int (*disguise) (struct map_session_data *sd, int class_);
-
-# 1018 "../../../server-code/src/map/pc.h" 3 4
-_Bool
-# 1018 "../../../server-code/src/map/pc.h"
- (*isautolooting) (struct map_session_data *sd, int nameid);
-
- void (*overheat) (struct map_session_data *sd, int val);
-
- int (*banding) (struct map_session_data *sd, uint16 skill_lv);
-
- void (*itemcd_do) (struct map_session_data *sd,
-# 1024 "../../../server-code/src/map/pc.h" 3 4
- _Bool
-# 1024 "../../../server-code/src/map/pc.h"
- load);
-
- int (*load_combo) (struct map_session_data *sd);
-
- void (*add_charm) (struct map_session_data *sd, int interval, int max, int type);
- void (*del_charm) (struct map_session_data *sd, int count, int type);
-
- void (*baselevelchanged) (struct map_session_data *sd);
- int (*level_penalty_mod) (int diff, unsigned char race, uint32 mode, int type);
- int (*calc_skillpoint) (struct map_session_data* sd);
-
- int (*invincible_timer) (int tid, int64 tick, int id, intptr_t data);
- int (*spiritball_timer) (int tid, int64 tick, int id, intptr_t data);
- int (*check_banding) ( struct block_list *bl, va_list ap );
- int (*inventory_rental_end) (int tid, int64 tick, int id, intptr_t data);
- void (*check_skilltree) (struct map_session_data *sd, int skill_id);
- int (*bonus_autospell) (struct s_autospell *spell, int max, short id, short lv, short rate, short flag, short card_id);
- int (*bonus_autospell_onskill) (struct s_autospell *spell, int max, short src_skill, short id, short lv, short rate, short card_id);
- int (*bonus_addeff) (struct s_addeffect* effect, int max, enum sc_type id, int16 rate, int16 arrow_rate, uint8 flag, uint16 duration);
- int (*bonus_addeff_onskill) (struct s_addeffectonskill* effect, int max, enum sc_type id, short rate, short skill_id, unsigned char target);
- int (*bonus_item_drop) (struct s_add_drop *drop, const short max, short id, short group, int race, int rate);
- void (*calcexp) (struct map_session_data *sd, unsigned int *base_exp, unsigned int *job_exp, struct block_list *src);
- int (*respawn_timer) (int tid, int64 tick, int id, intptr_t data);
- int (*jobchange_killclone) (struct block_list *bl, va_list ap);
- int (*getstat) (struct map_session_data* sd, int type);
- int (*setstat) (struct map_session_data* sd, int type, int val);
- int (*eventtimer) (int tid, int64 tick, int id, intptr_t data);
- int (*daynight_timer_sub) (struct map_session_data *sd,va_list ap);
- int (*charm_timer) (int tid, int64 tick, int id, intptr_t data);
-
-# 1053 "../../../server-code/src/map/pc.h" 3 4
-_Bool
-# 1053 "../../../server-code/src/map/pc.h"
- (*readdb_levelpenalty) (char* fields[], int columns, int current);
- int (*autosave) (int tid, int64 tick, int id, intptr_t data);
- int (*follow_timer) (int tid, int64 tick, int id, intptr_t data);
- void (*read_skill_tree) (void);
- void (*clear_skill_tree) (void);
- int (*isUseitem) (struct map_session_data *sd,int n);
- int (*show_steal) (struct block_list *bl,va_list ap);
- int (*checkcombo) (struct map_session_data *sd, struct item_data *data );
- int (*calcweapontype) (struct map_session_data *sd);
- int (*removecombo) (struct map_session_data *sd, struct item_data *data );
-
- void (*bank_deposit) (struct map_session_data *sd, int money);
- void (*bank_withdraw) (struct map_session_data *sd, int money);
-
- void (*rental_expire) (struct map_session_data *sd, int i);
- void (*scdata_received) (struct map_session_data *sd);
-
- void (*bound_clear) (struct map_session_data *sd, enum e_item_bound_type type);
-
- int (*expiration_timer) (int tid, int64 tick, int id, intptr_t data);
- int (*global_expiration_timer) (int tid, int64 tick, int id, intptr_t data);
- void (*expire_check) (struct map_session_data *sd);
-
-
-# 1076 "../../../server-code/src/map/pc.h" 3 4
-_Bool
-# 1076 "../../../server-code/src/map/pc.h"
- (*db_checkid) (unsigned int class_);
-
- void (*validate_levels) (void);
-
-
-
-
- void (*autotrade_load) (void);
- void (*autotrade_update) (struct map_session_data *sd, enum e_pc_autotrade_update_action action);
- void (*autotrade_start) (struct map_session_data *sd);
- void (*autotrade_prepare) (struct map_session_data *sd);
- void (*autotrade_populate) (struct map_session_data *sd);
- int (*autotrade_final) (union DBKey key, struct DBData *data, va_list ap);
-
- int (*check_job_name) (const char *name);
- void (*update_idle_time) (struct map_session_data* sd, enum e_battle_config_idletime type);
-
- int (*have_magnifier) (struct map_session_data *sd);
-};
-
-
-void pc_defaults(void);
-
-
-extern struct pc_interface *pc;
-# 47 "../../../server-code/src/map/clif.c" 2
-# 1 "../../../server-code/src/map/pet.h" 1
-# 33 "../../../server-code/src/map/pet.h"
-struct s_pet_db {
- short class_;
- char name[(23 + 1)],jname[(23 + 1)];
- short itemID;
- short EggID;
- short AcceID;
- short FoodID;
- int fullness;
- int hungry_delay;
- int r_hungry;
- int r_full;
- int intimate;
- int die;
- int capture;
- int speed;
- char s_perfor;
- int talk_convert_class;
- int attack_rate;
- int defence_attack_rate;
- int change_target_rate;
- struct script_code *equip_script;
- struct script_code *pet_script;
-};
-
-enum { PET_CLASS,PET_CATCH,PET_EGG,PET_EQUIP,PET_FOOD };
-
-struct pet_recovery {
- enum sc_type type;
- unsigned short delay;
- int timer;
-};
-
-struct pet_bonus {
- unsigned short type;
- unsigned short val;
- unsigned short duration;
- unsigned short delay;
- int timer;
-};
-
-struct pet_skill_attack {
- unsigned short id;
- unsigned short lv;
- unsigned short div_;
- unsigned short rate;
- unsigned short bonusrate;
-};
-
-struct pet_skill_support {
- unsigned short id;
- unsigned short lv;
- unsigned short hp;
- unsigned short sp;
- unsigned short delay;
- int timer;
-};
-
-struct pet_loot {
- struct item *item;
- unsigned short count;
- unsigned short weight;
- unsigned short max;
-};
-
-struct pet_data {
- struct block_list bl;
- struct unit_data ud;
- struct view_data vd;
- struct s_pet pet;
- struct status_data status;
- struct mob_db *db;
- struct s_pet_db *petDB;
- int pet_hungry_timer;
- int target_id;
- struct {
- unsigned skillbonus : 1;
- } state;
- int move_fail_count;
- int64 next_walktime, last_thinktime;
- short rate_fix;
-
- struct pet_recovery* recovery;
- struct pet_bonus* bonus;
- struct pet_skill_attack* a_skill;
- struct pet_skill_support* s_skill;
- struct pet_loot* loot;
-
- struct map_session_data *msd;
-};
-
-
-
-
-struct pet_interface {
- struct s_pet_db db[300];
- struct eri *item_drop_ers;
- struct eri *item_drop_list_ers;
-
- int (*init) (
-# 131 "../../../server-code/src/map/pet.h" 3 4
- _Bool
-# 131 "../../../server-code/src/map/pet.h"
- minimal);
- int (*final) (void);
-
- int (*hungry_val) (struct pet_data *pd);
- void (*set_intimate) (struct pet_data *pd, int value);
- int (*create_egg) (struct map_session_data *sd, int item_id);
- int (*unlocktarget) (struct pet_data *pd);
- int (*attackskill) (struct pet_data *pd, int target_id);
- int (*target_check) (struct map_session_data *sd, struct block_list *bl, int type);
- int (*sc_check) (struct map_session_data *sd, int type);
- int (*hungry) (int tid, int64 tick, int id, intptr_t data);
- int (*search_petDB_index) (int key, int type);
- int (*hungry_timer_delete) (struct pet_data *pd);
- int (*performance) (struct map_session_data *sd, struct pet_data *pd);
- int (*return_egg) (struct map_session_data *sd, struct pet_data *pd);
- int (*data_init) (struct map_session_data *sd, struct s_pet *petinfo);
- int (*birth_process) (struct map_session_data *sd, struct s_pet *petinfo);
- int (*recv_petdata) (int account_id, struct s_pet *p, int flag);
- int (*select_egg) (struct map_session_data *sd, short egg_index);
- int (*catch_process1) (struct map_session_data *sd, int target_class);
- int (*catch_process2) (struct map_session_data *sd, int target_id);
-
-# 152 "../../../server-code/src/map/pet.h" 3 4
-_Bool
-# 152 "../../../server-code/src/map/pet.h"
- (*get_egg) (int account_id, short pet_class, int pet_id );
- int (*unequipitem) (struct map_session_data *sd, struct pet_data *pd);
- int (*food) (struct map_session_data *sd, struct pet_data *pd);
- int (*ai_sub_hard_lootsearch) (struct block_list *bl, va_list ap);
- int (*menu) (struct map_session_data *sd, int menunum);
- int (*change_name) (struct map_session_data *sd, const char *name);
- int (*change_name_ack) (struct map_session_data *sd, const char *name, int flag);
- int (*equipitem) (struct map_session_data *sd, int index);
- int (*randomwalk) (struct pet_data *pd, int64 tick);
- int (*ai_sub_hard) (struct pet_data *pd, struct map_session_data *sd, int64 tick);
- int (*ai_sub_foreachclient) (struct map_session_data *sd, va_list ap);
- int (*ai_hard) (int tid, int64 tick, int id, intptr_t data);
- int (*delay_item_drop) (int tid, int64 tick, int id, intptr_t data);
- int (*lootitem_drop) (struct pet_data *pd, struct map_session_data *sd);
- int (*skill_bonus_timer) (int tid, int64 tick, int id, intptr_t data);
- int (*recovery_timer) (int tid, int64 tick, int id, intptr_t data);
- int (*skill_support_timer) (int tid, int64 tick, int id, intptr_t data);
- int (*read_db) (void);
-};
-
-
-void pet_defaults(void);
-
-
-extern struct pet_interface *pet;
-# 48 "../../../server-code/src/map/clif.c" 2
-# 1 "../../../server-code/src/map/quest.h" 1
-# 28 "../../../server-code/src/map/quest.h"
-struct block_list;
-struct config_setting_t;
-struct map_session_data;
-
-
-
-struct quest_dropitem {
- int mob_id;
- int nameid;
- int rate;
-};
-
-struct quest_objective {
- int mob;
- int count;
-};
-
-struct quest_db {
- int id;
- unsigned int time;
- int objectives_count;
- struct quest_objective *objectives;
- int dropitem_count;
- struct quest_dropitem *dropitem;
-
-};
-
-
-enum quest_check_type {
- HAVEQUEST,
- PLAYTIME,
- HUNTING,
-};
-
-struct quest_interface {
- struct quest_db **db_data;
- struct quest_db dummy;
-
- void (*init) (
-# 66 "../../../server-code/src/map/quest.h" 3 4
- _Bool
-# 66 "../../../server-code/src/map/quest.h"
- minimal);
- void (*final) (void);
- void (*reload) (void);
-
- struct quest_db *(*db) (int quest_id);
- int (*pc_login) (struct map_session_data *sd);
- int (*add) (struct map_session_data *sd, int quest_id);
- int (*change) (struct map_session_data *sd, int qid1, int qid2);
- int (*delete) (struct map_session_data *sd, int quest_id);
- int (*update_objective_sub) (struct block_list *bl, va_list ap);
- void (*update_objective) (struct map_session_data *sd, int mob_id);
- int (*update_status) (struct map_session_data *sd, int quest_id, enum quest_state qs);
- int (*check) (struct map_session_data *sd, int quest_id, enum quest_check_type type);
- void (*clear) (void);
- int (*read_db) (void);
- struct quest_db *(*read_db_sub) (struct config_setting_t *cs, int n, const char *source);
-};
-
-
-void quest_defaults(void);
-
-
-extern struct quest_interface *quest;
-# 49 "../../../server-code/src/map/clif.c" 2
-
-
-
-# 1 "../../../server-code/src/map/storage.h" 1
-# 27 "../../../server-code/src/map/storage.h"
-struct guild_storage;
-struct item;
-struct map_session_data;
-
-
-
-
-enum storage_flag {
- STORAGE_FLAG_CLOSED = 0,
- STORAGE_FLAG_NORMAL = 1,
- STORAGE_FLAG_GUILD = 2,
-};
-
-struct storage_interface {
-
- void (*reconnect) (void);
-
- int (*delitem) (struct map_session_data* sd, int n, int amount);
- int (*open) (struct map_session_data *sd);
- int (*add) (struct map_session_data *sd,int index,int amount);
- int (*get) (struct map_session_data *sd,int index,int amount);
- int (*additem) (struct map_session_data* sd, struct item* item_data, int amount);
- int (*addfromcart) (struct map_session_data *sd,int index,int amount);
- int (*gettocart) (struct map_session_data *sd,int index,int amount);
- void (*close) (struct map_session_data *sd);
- void (*pc_quit) (struct map_session_data *sd, int flag);
- int (*comp_item) (const void *i1_, const void *i2_);
- void (*sortitem) (struct item* items, unsigned int size);
- int (*reconnect_sub) (union DBKey key, struct DBData *data, va_list ap);
-};
-
-struct guild_storage_interface {
- struct DBMap *db;
-
- struct guild_storage *(*ensure) (int guild_id);
-
- void (*init) (
-# 63 "../../../server-code/src/map/storage.h" 3 4
- _Bool
-# 63 "../../../server-code/src/map/storage.h"
- minimal);
- void (*final) (void);
-
- int (*delete) (int guild_id);
- int (*open) (struct map_session_data *sd);
- int (*additem) (struct map_session_data *sd,struct guild_storage *stor,struct item *item_data,int amount);
- int (*delitem) (struct map_session_data *sd,struct guild_storage *stor,int n,int amount);
- int (*add) (struct map_session_data *sd,int index,int amount);
- int (*get) (struct map_session_data *sd,int index,int amount);
- int (*addfromcart) (struct map_session_data *sd,int index,int amount);
- int (*gettocart) (struct map_session_data *sd,int index,int amount);
- int (*close) (struct map_session_data *sd);
- int (*pc_quit) (struct map_session_data *sd,int flag);
- int (*save) (int account_id, int guild_id, int flag);
- int (*saved) (int guild_id);
- struct DBData (*create) (union DBKey key, va_list args);
-};
-
-
-void storage_defaults(void);
-void gstorage_defaults(void);
-
-
-extern struct storage_interface *storage;
-extern struct guild_storage_interface *gstorage;
-# 53 "../../../server-code/src/map/clif.c" 2
-# 1 "../../../server-code/src/map/trade.h" 1
-# 30 "../../../server-code/src/map/trade.h"
-struct map_session_data;
-
-struct trade_interface {
- void (*request) (struct map_session_data *sd, struct map_session_data *target_sd);
- void (*ack) (struct map_session_data *sd,int type);
- int (*check_impossible) (struct map_session_data *sd);
- int (*check) (struct map_session_data *sd, struct map_session_data *tsd);
- void (*additem) (struct map_session_data *sd,short index,short amount);
- void (*addzeny) (struct map_session_data *sd,int amount);
- void (*ok) (struct map_session_data *sd);
- void (*cancel) (struct map_session_data *sd);
- void (*commit) (struct map_session_data *sd);
-};
-
-
-void trade_defaults(void);
-
-
-extern struct trade_interface *trade;
-# 54 "../../../server-code/src/map/clif.c" 2
-
-
-# 1 "../../../server-code/src/common/HPM.h" 1
-# 29 "../../../server-code/src/common/HPM.h"
-# 1 "../../../server-code/src/common/HPMi.h" 1
-# 24 "../../../server-code/src/common/HPMi.h"
-# 1 "../../../server-code/src/common/console.h" 1
-# 25 "../../../server-code/src/common/console.h"
-# 1 "../../../server-code/src/common/mutex.h" 1
-# 26 "../../../server-code/src/common/mutex.h"
-typedef struct ramutex ramutex;
-typedef struct racond racond;
-
-
-
-
-
-
-
-ramutex *ramutex_create(void);
-
-
-
-
-
-
-void ramutex_destroy(ramutex *m);
-
-
-
-
-
-
-void ramutex_lock(ramutex *m);
-# 58 "../../../server-code/src/common/mutex.h"
-
-# 58 "../../../server-code/src/common/mutex.h" 3 4
-_Bool
-# 58 "../../../server-code/src/common/mutex.h"
- ramutex_trylock(ramutex *m);
-
-
-
-
-
-
-void ramutex_unlock(ramutex *m);
-
-
-
-
-
-
-
-racond *racond_create(void);
-
-
-
-
-
-
-void racond_destroy(racond *c);
-# 89 "../../../server-code/src/common/mutex.h"
-void racond_wait(racond *c, ramutex *m, sysint timeout_ticks);
-# 99 "../../../server-code/src/common/mutex.h"
-void racond_signal(racond *c);
-# 108 "../../../server-code/src/common/mutex.h"
-void racond_broadcast(racond *c);
-# 26 "../../../server-code/src/common/console.h" 2
-# 1 "../../../server-code/src/common/spinlock.h" 1
-# 31 "../../../server-code/src/common/spinlock.h"
-# 1 "../../../server-code/src/common/atomic.h" 1
-# 110 "../../../server-code/src/common/atomic.h"
-static __attribute__((always_inline)) inline int64 InterlockedExchangeAdd64(volatile int64 *addend, int64 increment){
- return __sync_fetch_and_add(addend, increment);
-}
-
-static __attribute__((always_inline)) inline int32 InterlockedExchangeAdd(volatile int32 *addend, int32 increment){
- return __sync_fetch_and_add(addend, increment);
-}
-
-static __attribute__((always_inline)) inline int64 InterlockedIncrement64(volatile int64 *addend){
- return __sync_add_and_fetch(addend, 1);
-}
-
-static __attribute__((always_inline)) inline int32 InterlockedIncrement(volatile int32 *addend){
- return __sync_add_and_fetch(addend, 1);
-}
-
-static __attribute__((always_inline)) inline int64 InterlockedDecrement64(volatile int64 *addend){
- return __sync_sub_and_fetch(addend, 1);
-}
-
-static __attribute__((always_inline)) inline int32 InterlockedDecrement(volatile int32 *addend){
- return __sync_sub_and_fetch(addend, 1);
-}
-
-static __attribute__((always_inline)) inline int64 InterlockedCompareExchange64(volatile int64 *dest, int64 exch, int64 cmp){
- return __sync_val_compare_and_swap(dest, cmp, exch);
-}
-
-static __attribute__((always_inline)) inline int32 InterlockedCompareExchange(volatile int32 *dest, int32 exch, int32 cmp){
- return __sync_val_compare_and_swap(dest, cmp, exch);
-}
-
-static __attribute__((always_inline)) inline int64 InterlockedExchange64(volatile int64 *target, int64 val){
- return __sync_lock_test_and_set(target, val);
-}
-
-static __attribute__((always_inline)) inline int32 InterlockedExchange(volatile int32 *target, int32 val){
- return __sync_lock_test_and_set(target, val);
-}
-# 32 "../../../server-code/src/common/spinlock.h" 2
-
-# 1 "../../../server-code/src/common/thread.h" 1
-# 26 "../../../server-code/src/common/thread.h"
-typedef struct rAthread rAthread;
-typedef void* (*rAthreadProc)(void*);
-
-typedef enum RATHREAD_PRIO {
- RAT_PRIO_LOW = 0,
- RAT_PRIO_NORMAL,
- RAT_PRIO_HIGH
-} RATHREAD_PRIO;
-# 45 "../../../server-code/src/common/thread.h"
-rAthread *rathread_create(rAthreadProc entryPoint, void *param);
-# 58 "../../../server-code/src/common/thread.h"
-rAthread *rathread_createEx(rAthreadProc entryPoint, void *param, size_t szStack, RATHREAD_PRIO prio);
-# 68 "../../../server-code/src/common/thread.h"
-void rathread_destroy(rAthread *handle);
-# 79 "../../../server-code/src/common/thread.h"
-rAthread *rathread_self(void);
-# 90 "../../../server-code/src/common/thread.h"
-int rathread_get_tid(void);
-# 101 "../../../server-code/src/common/thread.h"
-
-# 101 "../../../server-code/src/common/thread.h" 3 4
-_Bool
-# 101 "../../../server-code/src/common/thread.h"
- rathread_wait(rAthread *handle, void **out_exitCode);
-# 110 "../../../server-code/src/common/thread.h"
-void rathread_prio_set(rAthread *handle, RATHREAD_PRIO prio);
-
-
-
-
-
-
-
-RATHREAD_PRIO rathread_prio_get(rAthread *handle);
-# 128 "../../../server-code/src/common/thread.h"
-void rathread_yield(void);
-
-void rathread_init(void);
-void rathread_final(void);
-# 34 "../../../server-code/src/common/spinlock.h" 2
-# 47 "../../../server-code/src/common/spinlock.h"
-typedef struct SPIN_LOCK{
- volatile int32 lock;
- volatile int32 nest;
-
- volatile int32 sync_lock;
-} __attribute__((aligned(64))) SPIN_LOCK;
-
-
-
-
-static __attribute__((always_inline)) inline void InitializeSpinLock(SPIN_LOCK *lck){
- lck->lock = 0;
- lck->nest = 0;
- lck->sync_lock = 0;
-}
-
-static __attribute__((always_inline)) inline void FinalizeSpinLock(SPIN_LOCK *lck){
- return;
-}
-
-
-
-
-
-static __attribute__((always_inline)) inline void EnterSpinLock(SPIN_LOCK *lck){
- int tid = rathread_get_tid();
-
-
-
- do { if(InterlockedCompareExchange((&lck->sync_lock), 1, 0) == 0) break; rathread_yield(); } while( 1);
- if(InterlockedCompareExchange(&lck->lock, tid, tid) == tid){
- InterlockedIncrement(&lck->nest);
- do { InterlockedExchange((&lck->sync_lock), 0); } while(0);
- return;
- }
-
- do { InterlockedExchange((&lck->sync_lock), 0); } while(0);
-
-
- while(1){
- if(InterlockedCompareExchange(&lck->lock, tid, 0) == 0){
- InterlockedIncrement(&lck->nest);
- return;
- }
- rathread_yield();
- }
-
-}
-
-
-static __attribute__((always_inline)) inline void LeaveSpinLock(SPIN_LOCK *lck){
- int tid = rathread_get_tid();
-
- do { if(InterlockedCompareExchange((&lck->sync_lock), 1, 0) == 0) break; rathread_yield(); } while( 1);
-
- if(InterlockedCompareExchange(&lck->lock, tid, tid) == tid){
- if(InterlockedDecrement(&lck->nest) == 0)
- InterlockedExchange(&lck->lock, 0);
- }
-
- do { InterlockedExchange((&lck->sync_lock), 0); } while(0);
-}
-# 27 "../../../server-code/src/common/console.h" 2
-
-
-
-struct Sql;
-# 41 "../../../server-code/src/common/console.h"
-typedef void (*CParseFunc)(char *line);
-# 56 "../../../server-code/src/common/console.h"
-enum CONSOLE_PARSE_ENTRY_TYPE {
- CPET_UNKNOWN,
- CPET_FUNCTION,
- CPET_CATEGORY,
-};
-
-struct CParseEntry {
- char cmd[20];
- int type;
- union {
- CParseFunc func;
- struct { int _max_; int _len_; struct CParseEntry * *_data_; } children;
- } u;
-};
-
-struct console_input_interface {
-
-
- SPIN_LOCK ptlock;
- rAthread *pthread;
- volatile int32 ptstate;
- ramutex *ptmutex;
- racond *ptcond;
-
- struct { int _max_; int _len_; struct CParseEntry * *_data_; } command_list;
- struct { int _max_; int _len_; struct CParseEntry * *_data_; } commands;
-
- struct Sql *SQL;
-
- void (*parse_init) (void);
- void (*parse_final) (void);
- int (*parse_timer) (int tid, int64 tick, int id, intptr_t data);
- void *(*pthread_main) (void *x);
- void (*parse) (char* line);
- void (*parse_sub) (char* line);
- int (*key_pressed) (void);
- void (*load_defaults) (void);
- void (*parse_list_subs) (struct CParseEntry *cmd, unsigned char depth);
- void (*addCommand) (char *name, CParseFunc func);
- void (*setSQL) (struct Sql *SQL_handle);
-
-
-
-};
-
-struct console_interface {
- void (*init) (void);
- void (*final) (void);
- void (*display_title) (void);
- void (*display_gplnotice) (void);
-
- struct console_input_interface *input;
-};
-
-
-void console_defaults(void);
-
-
-extern struct console_interface *console;
-# 25 "../../../server-code/src/common/HPMi.h" 2
-
-# 1 "../../../server-code/src/common/showmsg.h" 1
-# 29 "../../../server-code/src/common/showmsg.h"
-struct config_setting_t;
-# 89 "../../../server-code/src/common/showmsg.h"
-enum msg_type {
- MSG_NONE,
- MSG_STATUS,
- MSG_SQL,
- MSG_INFORMATION,
- MSG_NOTICE,
- MSG_WARNING,
- MSG_DEBUG,
- MSG_ERROR,
- MSG_FATALERROR
-};
-
-struct showmsg_interface {
-
-# 102 "../../../server-code/src/common/showmsg.h" 3 4
-_Bool
-# 102 "../../../server-code/src/common/showmsg.h"
- stdout_with_ansisequence;
- int silent;
- int console_log;
- char timestamp_format[20];
-
- void (*init) (void);
- void (*final) (void);
-
- void (*clearScreen) (void);
- int (*showMessageV) (const char *string, va_list ap);
-
- void (*showMessage) (const char *, ...) __attribute__((format(printf, 1, 2)));
- void (*showStatus) (const char *, ...) __attribute__((format(printf, 1, 2)));
- void (*showSQL) (const char *, ...) __attribute__((format(printf, 1, 2)));
- void (*showInfo) (const char *, ...) __attribute__((format(printf, 1, 2)));
- void (*showNotice) (const char *, ...) __attribute__((format(printf, 1, 2)));
- void (*showWarning) (const char *, ...) __attribute__((format(printf, 1, 2)));
- void (*showDebug) (const char *, ...) __attribute__((format(printf, 1, 2)));
- void (*showError) (const char *, ...) __attribute__((format(printf, 1, 2)));
- void (*showFatalError) (const char *, ...) __attribute__((format(printf, 1, 2)));
- void (*showConfigWarning) (struct config_setting_t *config, const char *string, ...) __attribute__((format(printf, 2, 3)));
-};
-# 140 "../../../server-code/src/common/showmsg.h"
-void showmsg_defaults(void);
-
-
-extern struct showmsg_interface *showmsg;
-# 27 "../../../server-code/src/common/HPMi.h" 2
-
-struct Sql;
-struct script_state;
-struct AtCommandInfo;
-struct socket_data;
-struct map_session_data;
-struct hplugin_data_store;
-
-
-
-
-struct hplugin_info {
- char* name;
- enum server_types type;
- char* version;
- char* req_version;
-};
-
-struct s_HPMDataCheck {
- char *name;
- unsigned int size;
- int type;
-};
-
-
-
-enum hp_event_types {
- HPET_INIT,
- HPET_FINAL,
- HPET_READY,
- HPET_POST_FINAL,
- HPET_PRE_INIT,
- HPET_MAX,
-};
-
-enum HPluginPacketHookingPoints {
- hpClif_Parse,
- hpChrif_Parse,
- hpParse_FromMap,
- hpParse_FromLogin,
- hpParse_Char,
- hpParse_FromChar,
- hpParse_Login,
-
- hpPHP_MAX,
-};
-
-enum HPluginHookType {
- HOOK_TYPE_PRE,
- HOOK_TYPE_POST,
-};
-
-
-
-
-enum HPluginDataTypes {
- HPDT_UNKNOWN,
- HPDT_SESSION,
- HPDT_MSD,
- HPDT_NPCD,
- HPDT_MAP,
- HPDT_INSTANCE,
- HPDT_GUILD,
- HPDT_PARTY,
- HPDT_MOBDB,
- HPDT_MOBDATA,
- HPDT_ITEMDATA,
- HPDT_BGDATA,
- HPDT_AUTOTRADE_VEND,
-};
-
-
-enum HPluginConfType {
- HPCT_BATTLE,
- HPCT_LOGIN,
- HPCT_CHAR,
- HPCT_CHAR_INTER,
- HPCT_MAP_INTER,
- HPCT_LOG,
- HPCT_SCRIPT,
- HPCT_MAX,
-};
-# 220 "../../../server-code/src/common/HPMi.h"
-struct HPMi_interface {
-
- unsigned int pid;
-
- void (*event[HPET_MAX]) (void);
-
-# 225 "../../../server-code/src/common/HPMi.h" 3 4
-_Bool
-# 225 "../../../server-code/src/common/HPMi.h"
- (*addCommand) (char *name,
-# 225 "../../../server-code/src/common/HPMi.h" 3 4
- _Bool
-# 225 "../../../server-code/src/common/HPMi.h"
- (*func)(const int fd, struct map_session_data* sd, const char* command, const char* message,struct AtCommandInfo *info));
-
-# 226 "../../../server-code/src/common/HPMi.h" 3 4
-_Bool
-# 226 "../../../server-code/src/common/HPMi.h"
- (*addScript) (char *name, char *args,
-# 226 "../../../server-code/src/common/HPMi.h" 3 4
- _Bool
-# 226 "../../../server-code/src/common/HPMi.h"
- (*func)(struct script_state *st),
-# 226 "../../../server-code/src/common/HPMi.h" 3 4
- _Bool
-# 226 "../../../server-code/src/common/HPMi.h"
- isDeprecated);
- void (*addCPCommand) (char *name, CParseFunc func);
-
- void (*addToHPData) (enum HPluginDataTypes type, uint32 pluginID, struct hplugin_data_store **storeptr, void *data, uint32 classid,
-# 229 "../../../server-code/src/common/HPMi.h" 3 4
- _Bool
-# 229 "../../../server-code/src/common/HPMi.h"
- autofree);
- void *(*getFromHPData) (enum HPluginDataTypes type, uint32 pluginID, struct hplugin_data_store *store, uint32 classid);
- void (*removeFromHPData) (enum HPluginDataTypes type, uint32 pluginID, struct hplugin_data_store *store, uint32 classid);
-
-
-# 233 "../../../server-code/src/common/HPMi.h" 3 4
-_Bool
-# 233 "../../../server-code/src/common/HPMi.h"
- (*addPacket) (unsigned short cmd, unsigned short length, void (*receive)(int fd), unsigned int point, unsigned int pluginID);
-
-
-# 235 "../../../server-code/src/common/HPMi.h" 3 4
-_Bool
-# 235 "../../../server-code/src/common/HPMi.h"
- (*AddHook) (enum HPluginHookType type, const char *target, void *hook, unsigned int pID);
- void (*HookStop) (const char *func, unsigned int pID);
-
-# 237 "../../../server-code/src/common/HPMi.h" 3 4
-_Bool
-# 237 "../../../server-code/src/common/HPMi.h"
- (*HookStopped) (void);
-
-
-# 239 "../../../server-code/src/common/HPMi.h" 3 4
-_Bool
-# 239 "../../../server-code/src/common/HPMi.h"
- (*addArg) (unsigned int pluginID, char *name,
-# 239 "../../../server-code/src/common/HPMi.h" 3 4
- _Bool
-# 239 "../../../server-code/src/common/HPMi.h"
- has_param, CmdlineExecFunc func, const char *help);
-
-
-# 241 "../../../server-code/src/common/HPMi.h" 3 4
-_Bool
-# 241 "../../../server-code/src/common/HPMi.h"
- (*addConf) (unsigned int pluginID, enum HPluginConfType type, char *name, void (*parse_func) (const char *key, const char *val), int (*return_func) (const char *key));
-
- void (*addPCGPermission) (unsigned int pluginID, char *name, unsigned int *mask);
-
- struct Sql *sql_handle;
-};
-# 30 "../../../server-code/src/common/HPM.h" 2
-# 44 "../../../server-code/src/common/HPM.h"
-# 1 "/usr/include/dlfcn.h" 1 3 4
-# 24 "/usr/include/dlfcn.h" 3 4
-# 1 "/usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h" 1 3 4
-# 25 "/usr/include/dlfcn.h" 2 3 4
-
-
-# 1 "/usr/include/x86_64-linux-gnu/bits/dlfcn.h" 1 3 4
-# 28 "/usr/include/dlfcn.h" 2 3 4
-# 52 "/usr/include/dlfcn.h" 3 4
-
-
-
-
-
-# 56 "/usr/include/dlfcn.h" 3 4
-extern void *dlopen (const char *__file, int __mode) __attribute__ ((__nothrow__));
-
-
-
-extern int dlclose (void *__handle) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
-
-
-
-extern void *dlsym (void *__restrict __handle,
- const char *__restrict __name) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2)));
-# 82 "/usr/include/dlfcn.h" 3 4
-extern char *dlerror (void) __attribute__ ((__nothrow__ , __leaf__));
-# 188 "/usr/include/dlfcn.h" 3 4
-
-# 45 "../../../server-code/src/common/HPM.h" 2
-# 68 "../../../server-code/src/common/HPM.h"
-
-# 68 "../../../server-code/src/common/HPM.h"
-struct hplugin {
- void * dll;
- unsigned int idx;
- char *filename;
- struct hplugin_info *info;
- struct HPMi_interface *hpi;
-};
-
-
-
-
-struct hpm_symbol {
- const char *name;
- void *ptr;
-};
-
-
-
-
-struct hplugin_data_entry {
- uint32 pluginID;
- uint32 classid;
- struct {
- unsigned int free : 1;
- } flag;
- void *data;
-};
-
-
-
-
-struct hplugin_data_store {
- enum HPluginDataTypes type;
- struct { int _max_; int _len_; struct hplugin_data_entry * *_data_; } entries;
-};
-
-struct HPluginPacket {
- unsigned int pluginID;
- unsigned short cmd;
- short len;
- void (*receive) (int fd);
-};
-
-struct HPMFileNameCache {
- const char *addr;
- char *name;
-};
-
-
-struct HPConfListenStorage {
- unsigned int pluginID;
- char key[40];
- void (*parse_func) (const char *key, const char *val);
- int (*return_func) (const char *key);
-};
-
-
-struct HPM_interface {
-
- unsigned int version[2];
-
-# 128 "../../../server-code/src/common/HPM.h" 3 4
-_Bool
-# 128 "../../../server-code/src/common/HPM.h"
- off;
-
-# 129 "../../../server-code/src/common/HPM.h" 3 4
-_Bool
-# 129 "../../../server-code/src/common/HPM.h"
- hooking;
-
-
-# 131 "../../../server-code/src/common/HPM.h" 3 4
-_Bool
-# 131 "../../../server-code/src/common/HPM.h"
- force_return;
-
- struct { int _max_; int _len_; struct hplugin * *_data_; } plugins;
- struct { int _max_; int _len_; struct hpm_symbol * *_data_; } symbols;
-
- struct { int _max_; int _len_; struct HPluginPacket *_data_; } packets[hpPHP_MAX];
-
- struct {
-
- int count;
- struct HPMFileNameCache *data;
- } filenames;
-
- struct { int _max_; int _len_; struct HPConfListenStorage *_data_; } config_listeners[HPCT_MAX];
-
- struct { int _max_; int _len_; char * *_data_; } cmdline_load_plugins;
-
- void (*init) (void);
- void (*final) (void);
- struct hplugin * (*create) (void);
- struct hplugin * (*load) (const char* filename);
- void (*unload) (struct hplugin* plugin);
-
-# 153 "../../../server-code/src/common/HPM.h" 3 4
-_Bool
-# 153 "../../../server-code/src/common/HPM.h"
- (*exists) (const char *filename);
-
-# 154 "../../../server-code/src/common/HPM.h" 3 4
-_Bool
-# 154 "../../../server-code/src/common/HPM.h"
- (*iscompatible) (char* version);
- void (*event) (enum hp_event_types type);
- void *(*import_symbol) (char *name, unsigned int pID);
- void (*share) (void *value, const char *name);
- void (*config_read) (void);
- char *(*pid2name) (unsigned int pid);
- unsigned char (*parse_packets) (int fd, int packet_id, enum HPluginPacketHookingPoints point);
- void (*load_sub) (struct hplugin *plugin);
-
-# 162 "../../../server-code/src/common/HPM.h" 3 4
-_Bool
-# 162 "../../../server-code/src/common/HPM.h"
- (*addhook_sub) (enum HPluginHookType type, const char *target, void *hook, unsigned int pID);
-
-
-# 164 "../../../server-code/src/common/HPM.h" 3 4
-_Bool
-# 164 "../../../server-code/src/common/HPM.h"
- (*parseConf) (const char *w1, const char *w2, enum HPluginConfType point);
-
-# 165 "../../../server-code/src/common/HPM.h" 3 4
-_Bool
-# 165 "../../../server-code/src/common/HPM.h"
- (*getBattleConf) (const char* w1, int *value);
-
-
-# 167 "../../../server-code/src/common/HPM.h" 3 4
-_Bool
-# 167 "../../../server-code/src/common/HPM.h"
- (*DataCheck) (struct s_HPMDataCheck *src, unsigned int size, int version, char *name);
- void (*datacheck_init) (const struct s_HPMDataCheck *src, unsigned int length, int version);
- void (*datacheck_final) (void);
-
- void (*data_store_create) (struct hplugin_data_store **storeptr, enum HPluginDataTypes type);
- void (*data_store_destroy) (struct hplugin_data_store **storeptr);
-
-# 173 "../../../server-code/src/common/HPM.h" 3 4
-_Bool
-# 173 "../../../server-code/src/common/HPM.h"
- (*data_store_validate) (enum HPluginDataTypes type, struct hplugin_data_store **storeptr,
-# 173 "../../../server-code/src/common/HPM.h" 3 4
- _Bool
-# 173 "../../../server-code/src/common/HPM.h"
- initialize);
-
-
-# 175 "../../../server-code/src/common/HPM.h" 3 4
-_Bool
-# 175 "../../../server-code/src/common/HPM.h"
- (*data_store_validate_sub) (enum HPluginDataTypes type, struct hplugin_data_store **storeptr,
-# 175 "../../../server-code/src/common/HPM.h" 3 4
- _Bool
-# 175 "../../../server-code/src/common/HPM.h"
- initialize);
-};
-
-
-# 178 "../../../server-code/src/common/HPM.h" 3 4
-_Bool
-# 178 "../../../server-code/src/common/HPM.h"
-cmdline_arg_loadplugin (const char *name, const char *params);
-
-extern struct HPM_interface *HPM;
-
-void hpm_defaults(void);
-# 57 "../../../server-code/src/map/clif.c" 2
-
-# 1 "../../../server-code/src/common/conf.h" 1
-# 26 "../../../server-code/src/common/conf.h"
-# 1 "../../../server-code/3rdparty/libconfig/libconfig.h" 1
-# 70 "../../../server-code/3rdparty/libconfig/libconfig.h"
-union config_value_t
-{
- int ival;
- long long llval;
- double fval;
- char *sval;
- struct config_list_t *list;
-};
-
-struct config_setting_t
-{
- char *name;
- short type;
- short format;
- union config_value_t value;
- struct config_setting_t *parent;
- struct config_t *config;
- void *hook;
- unsigned int line;
- const char *file;
-};
-
-enum config_error_t
-{
- CONFIG_ERR_NONE = 0,
- CONFIG_ERR_FILE_IO = 1,
- CONFIG_ERR_PARSE = 2
-};
-
-struct config_list_t
-{
- unsigned int length;
- struct config_setting_t **elements;
-};
-
-struct config_t
-{
- struct config_setting_t *root;
- void (*destructor)(void *);
- int options;
- unsigned short tab_width;
- short default_format;
- char *include_dir;
- const char *error_text;
- const char *error_file;
- int error_line;
- enum config_error_t error_type;
- char **filenames;
- unsigned int num_filenames;
-};
-
-extern int config_read(struct config_t *config, FILE *stream);
-extern void config_write(const struct config_t *config, FILE *stream);
-
-extern void config_set_default_format(struct config_t *config,
- short format);
-
-extern void config_set_options(struct config_t *config, int options);
-extern int config_get_options(const struct config_t *config);
-
-extern void config_set_auto_convert(struct config_t *config, int flag);
-extern int config_get_auto_convert(const struct config_t *config);
-
-extern int config_read_string(struct config_t *config, const char *str);
-
-extern int config_read_file(struct config_t *config,
- const char *filename);
-extern int config_write_file(struct config_t *config,
- const char *filename);
-
-extern void config_set_destructor(struct config_t *config,
- void (*destructor)(void *));
-extern void config_set_include_dir(struct config_t *config,
- const char *include_dir);
-
-extern void config_init(struct config_t *config);
-extern void config_destroy(struct config_t *config);
-
-extern int config_setting_get_int(
- const struct config_setting_t *setting);
-extern long long config_setting_get_int64(
- const struct config_setting_t *setting);
-extern double config_setting_get_float(
- const struct config_setting_t *setting);
-extern int config_setting_get_bool(
- const struct config_setting_t *setting);
-extern const char *config_setting_get_string(
- const struct config_setting_t *setting);
-
-extern int config_setting_lookup_int(
- const struct config_setting_t *setting, const char *name, int *value);
-extern int config_setting_lookup_int64(
- const struct config_setting_t *setting, const char *name, long long *value);
-extern int config_setting_lookup_float(
- const struct config_setting_t *setting, const char *name, double *value);
-extern int config_setting_lookup_bool(
- const struct config_setting_t *setting, const char *name, int *value);
-extern int config_setting_lookup_string(
- const struct config_setting_t *setting, const char *name, const char **value);
-
-extern int config_setting_set_int(struct config_setting_t *setting,
- int value);
-extern int config_setting_set_int64(struct config_setting_t *setting,
- long long value);
-extern int config_setting_set_float(struct config_setting_t *setting,
- double value);
-extern int config_setting_set_bool(struct config_setting_t *setting,
- int value);
-extern int config_setting_set_string(struct config_setting_t *setting,
- const char *value);
-
-extern int config_setting_set_format(struct config_setting_t *setting,
- short format);
-extern short config_setting_get_format(
- const struct config_setting_t *setting);
-
-extern int config_setting_get_int_elem(
- const struct config_setting_t *setting, int idx);
-extern long long config_setting_get_int64_elem(
- const struct config_setting_t *setting, int idx);
-extern double config_setting_get_float_elem(
- const struct config_setting_t *setting, int idx);
-extern int config_setting_get_bool_elem(
- const struct config_setting_t *setting, int idx);
-extern const char *config_setting_get_string_elem(
- const struct config_setting_t *setting, int idx);
-
-extern struct config_setting_t *config_setting_set_int_elem(
- struct config_setting_t *setting, int idx, int value);
-extern struct config_setting_t *config_setting_set_int64_elem(
- struct config_setting_t *setting, int idx, long long value);
-extern struct config_setting_t *config_setting_set_float_elem(
- struct config_setting_t *setting, int idx, double value);
-extern struct config_setting_t *config_setting_set_bool_elem(
- struct config_setting_t *setting, int idx, int value);
-extern struct config_setting_t *config_setting_set_string_elem(
- struct config_setting_t *setting, int idx, const char *value);
-# 247 "../../../server-code/3rdparty/libconfig/libconfig.h"
-extern int config_setting_index(const struct config_setting_t *setting);
-
-extern int config_setting_length(
- const struct config_setting_t *setting);
-extern struct config_setting_t *config_setting_get_elem(
- const struct config_setting_t *setting, unsigned int idx);
-
-extern struct config_setting_t *config_setting_get_member(
- const struct config_setting_t *setting, const char *name);
-
-extern struct config_setting_t *config_setting_add(
- struct config_setting_t *parent, const char *name, int type);
-extern int config_setting_remove(struct config_setting_t *parent,
- const char *name);
-extern int config_setting_remove_elem(struct config_setting_t *parent,
- unsigned int idx);
-extern void config_setting_set_hook(struct config_setting_t *setting,
- void *hook);
-
-
-
-extern struct config_setting_t *config_lookup(const struct config_t *config,
- const char *path);
-extern struct config_setting_t *config_setting_lookup(
- struct config_setting_t *setting, const char *path);
-
-extern int config_lookup_int(const struct config_t *config,
- const char *path, int *value);
-extern int config_lookup_int64(const struct config_t *config,
- const char *path,
- long long *value);
-extern int config_lookup_float(const struct config_t *config,
- const char *path, double *value);
-extern int config_lookup_bool(const struct config_t *config,
- const char *path, int *value);
-extern int config_lookup_string(const struct config_t *config,
- const char *path,
- const char **value);
-# 27 "../../../server-code/src/common/conf.h" 2
-
-
-
-
-struct libconfig_interface {
- int (*read) (struct config_t *config, FILE *stream);
- void (*write) (const struct config_t *config, FILE *stream);
-
- void (*set_options) (struct config_t *config, int options);
- int (*get_options) (const struct config_t *config);
-
- int (*read_string) (struct config_t *config, const char *str);
- int (*read_file_src) (struct config_t *config, const char *filename);
- int (*write_file) (struct config_t *config, const char *filename);
-
- void (*set_destructor) (struct config_t *config, void (*destructor)(void *));
- void (*set_include_dir) (struct config_t *config, const char *include_dir);
-
- void (*init) (struct config_t *config);
- void (*destroy) (struct config_t *config);
-
- int (*setting_get_int) (const struct config_setting_t *setting);
- long long (*setting_get_int64) (const struct config_setting_t *setting);
- double (*setting_get_float) (const struct config_setting_t *setting);
-
- int (*setting_get_bool) (const struct config_setting_t *setting);
-
- const char * (*setting_get_string) (const struct config_setting_t *setting);
-
- struct config_setting_t * (*setting_lookup) (struct config_setting_t *setting, const char *name);
- int (*setting_lookup_int) (const struct config_setting_t *setting, const char *name, int *value);
- int (*setting_lookup_int64) (const struct config_setting_t *setting, const char *name, long long *value);
- int (*setting_lookup_float) (const struct config_setting_t *setting, const char *name, double *value);
- int (*setting_lookup_bool) (const struct config_setting_t *setting, const char *name, int *value);
- int (*setting_lookup_string) (const struct config_setting_t *setting, const char *name, const char **value);
- int (*setting_set_int) (struct config_setting_t *setting ,int value);
- int (*setting_set_int64) (struct config_setting_t *setting, long long value);
- int (*setting_set_float) (struct config_setting_t *setting, double value);
- int (*setting_set_bool) (struct config_setting_t *setting, int value);
- int (*setting_set_string) (struct config_setting_t *setting, const char *value);
-
- int (*setting_set_format) (struct config_setting_t *setting, short format);
- short (*setting_get_format) (const struct config_setting_t *setting);
-
- int (*setting_get_int_elem) (const struct config_setting_t *setting, int idx);
- long long (*setting_get_int64_elem) (const struct config_setting_t *setting, int idx);
- double (*setting_get_float_elem) (const struct config_setting_t *setting, int idx);
- int (*setting_get_bool_elem) (const struct config_setting_t *setting, int idx);
- const char * (*setting_get_string_elem) (const struct config_setting_t *setting, int idx);
- struct config_setting_t * (*setting_set_int_elem) (struct config_setting_t *setting, int idx, int value);
- struct config_setting_t * (*setting_set_int64_elem) (struct config_setting_t *setting, int idx, long long value);
- struct config_setting_t * (*setting_set_float_elem) (struct config_setting_t *setting, int idx, double value);
- struct config_setting_t * (*setting_set_bool_elem) (struct config_setting_t *setting, int idx, int value);
- struct config_setting_t * (*setting_set_string_elem) (struct config_setting_t *setting, int idx, const char *value);
-
- int (*setting_index) (const struct config_setting_t *setting);
- int (*setting_length) (const struct config_setting_t *setting);
-
- struct config_setting_t * (*setting_get_elem) (const struct config_setting_t *setting, unsigned int idx);
- struct config_setting_t * (*setting_get_member) (const struct config_setting_t *setting, const char *name);
-
- struct config_setting_t * (*setting_add) (struct config_setting_t *parent, const char *name, int type);
- int (*setting_remove) (struct config_setting_t *parent, const char *name);
-
- int (*setting_remove_elem) (struct config_setting_t *parent, unsigned int idx);
- void (*setting_set_hook) (struct config_setting_t *setting, void *hook);
-
- struct config_setting_t * (*lookup) (const struct config_t *config, const char *filepath);
- int (*lookup_int) (const struct config_t *config, const char *filepath, int *value);
- int (*lookup_int64) (const struct config_t *config, const char *filepath, long long *value);
- int (*lookup_float) (const struct config_t *config, const char *filepath, double *value);
- int (*lookup_bool) (const struct config_t *config, const char *filepath, int *value);
- int (*lookup_string) (const struct config_t *config, const char *filepath, const char **value);
-
-
-
- int (*load_file) (struct config_t *config, const char *config_filename);
- void (*setting_copy_simple) (struct config_setting_t *parent, const struct config_setting_t *src);
- void (*setting_copy_elem) (struct config_setting_t *parent, const struct config_setting_t *src);
- void (*setting_copy_aggregate) (struct config_setting_t *parent, const struct config_setting_t *src);
- int (*setting_copy) (struct config_setting_t *parent, const struct config_setting_t *src);
-
-
-# 109 "../../../server-code/src/common/conf.h" 3 4
-_Bool
-# 109 "../../../server-code/src/common/conf.h"
- (*setting_get_bool_real) (const struct config_setting_t *setting);
- uint32 (*setting_get_uint32) (const struct config_setting_t *setting);
- uint16 (*setting_get_uint16) (const struct config_setting_t *setting);
- int16 (*setting_get_int16) (const struct config_setting_t *setting);
-
- int (*setting_lookup_bool_real) (const struct config_setting_t *setting, const char *name,
-# 114 "../../../server-code/src/common/conf.h" 3 4
- _Bool
-# 114 "../../../server-code/src/common/conf.h"
- *value);
- int (*setting_lookup_uint32) (const struct config_setting_t *setting, const char *name, uint32 *value);
- int (*setting_lookup_uint16) (const struct config_setting_t *setting, const char *name, uint16 *value);
- int (*setting_lookup_int16) (const struct config_setting_t *setting, const char *name, int16 *value);
- int (*setting_lookup_mutable_string) (const struct config_setting_t *setting, const char *name, char *out, size_t out_size);
- int (*lookup_mutable_string) (const struct config_t *config, const char *name, char *out, size_t out_size);
-};
-
-
-void libconfig_defaults(void);
-
-
-extern struct libconfig_interface *libconfig;
-# 59 "../../../server-code/src/map/clif.c" 2
-
-# 1 "../../../server-code/src/common/grfio.h" 1
-# 25 "../../../server-code/src/common/grfio.h"
-void grfio_init(const char* fname);
-void grfio_final(void);
-void* grfio_reads(const char* fname, int* size);
-char* grfio_find_file(const char* fname);
-
-
-unsigned long grfio_crc32(const unsigned char *buf, unsigned int len);
-int decode_zip(void* dest, unsigned long* destLen, const void* source, unsigned long sourceLen);
-int encode_zip(void* dest, unsigned long* destLen, const void* source, unsigned long sourceLen);
-# 61 "../../../server-code/src/map/clif.c" 2
-# 1 "../../../server-code/src/common/memmgr.h" 1
-# 80 "../../../server-code/src/common/memmgr.h"
-struct malloc_interface {
- void (*init) (void);
- void (*final) (void);
-
- void* (*malloc)(size_t size, const char *file, int line, const char *func);
- void* (*calloc)(size_t num, size_t size, const char *file, int line, const char *func);
- void* (*realloc)(void *p, size_t size, const char *file, int line, const char *func);
- void* (*reallocz)(void *p, size_t size, const char *file, int line, const char *func);
- char* (*astrdup)(const char *p, const char *file, int line, const char *func);
- char *(*astrndup)(const char *p, size_t size, const char *file, int line, const char *func);
- void (*free)(void *p, const char *file, int line, const char *func);
-
- void (*memory_check)(void);
-
-# 93 "../../../server-code/src/common/memmgr.h" 3 4
-_Bool
-# 93 "../../../server-code/src/common/memmgr.h"
- (*verify_ptr)(void* ptr);
- size_t (*usage) (void);
-
- void (*post_shutdown) (void);
- void (*init_messages) (void);
-};
-
-
-void malloc_defaults(void);
-
-void memmgr_report(int extra);
-
-
-extern struct malloc_interface *iMalloc;
-# 62 "../../../server-code/src/map/clif.c" 2
-
-# 1 "../../../server-code/src/common/nullpo.h" 1
-# 40 "../../../server-code/src/common/nullpo.h"
-# 1 "/usr/include/assert.h" 1 3 4
-# 66 "/usr/include/assert.h" 3 4
-
-
-
-
-# 69 "/usr/include/assert.h" 3 4
-extern void __assert_fail (const char *__assertion, const char *__file,
- unsigned int __line, const char *__function)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__noreturn__));
-
-
-extern void __assert_perror_fail (int __errnum, const char *__file,
- unsigned int __line, const char *__function)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__noreturn__));
-
-
-
-
-extern void __assert (const char *__assertion, const char *__file, int __line)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__noreturn__));
-
-
-
-# 41 "../../../server-code/src/common/nullpo.h" 2
-# 155 "../../../server-code/src/common/nullpo.h"
-
-# 155 "../../../server-code/src/common/nullpo.h"
-struct nullpo_interface {
- void (*assert_report) (const char *file, int line, const char *func, const char *targetname, const char *title);
-};
-
-
-void nullpo_defaults(void);
-
-
-extern struct nullpo_interface *nullpo;
-# 64 "../../../server-code/src/map/clif.c" 2
-# 1 "../../../server-code/src/common/random.h" 1
-# 27 "../../../server-code/src/common/random.h"
-void rnd_init(void);
-void rnd_seed(uint32);
-
-int32 rnd(void);
-uint32 rnd_roll(uint32 dice_faces);
-int32 rnd_value(int32 min, int32 max);
-double rnd_uniform(void);
-double rnd_uniform53(void);
-# 65 "../../../server-code/src/map/clif.c" 2
-
-# 1 "../../../server-code/src/common/socket.h" 1
-# 67 "../../../server-code/src/map/clif.c" 2
-
-# 1 "../../../server-code/src/common/timer.h" 1
-# 32 "../../../server-code/src/common/timer.h"
-enum {
- TIMER_ONCE_AUTODEL = 0x01,
- TIMER_INTERVAL = 0x02,
- TIMER_REMOVE_HEAP = 0x10,
-};
-
-
-
-typedef int (*TimerFunc)(int tid, int64 tick, int id, intptr_t data);
-
-struct TimerData {
- int64 tick;
- TimerFunc func;
- unsigned char type;
- int interval;
-
-
- int id;
- intptr_t data;
-};
-
-
-
-
-
-
-
-struct timer_interface {
-
-
- int64 (*gettick) (void);
- int64 (*gettick_nocache) (void);
-
- int (*add) (int64 tick, TimerFunc func, int id, intptr_t data);
- int (*add_interval) (int64 tick, TimerFunc func, int id, intptr_t data, int interval);
- const struct TimerData *(*get) (int tid);
- int (*delete) (int tid, TimerFunc func);
-
- int64 (*addtick) (int tid, int64 tick);
- int64 (*settick) (int tid, int64 tick);
-
- int (*add_func_list) (TimerFunc func, char* name);
-
- unsigned long (*get_uptime) (void);
-
- int (*perform) (int64 tick);
- void (*init) (void);
- void (*final) (void);
-};
-
-
-void timer_defaults(void);
-
-
-extern struct timer_interface *timer;
-# 69 "../../../server-code/src/map/clif.c" 2
-# 1 "../../../server-code/src/common/utils.h" 1
-# 28 "../../../server-code/src/common/utils.h"
-# 1 "/usr/include/unistd.h" 1 3 4
-# 27 "/usr/include/unistd.h" 3 4
-
-# 205 "/usr/include/unistd.h" 3 4
-# 1 "/usr/include/x86_64-linux-gnu/bits/posix_opt.h" 1 3 4
-# 206 "/usr/include/unistd.h" 2 3 4
-
-
-
-# 1 "/usr/include/x86_64-linux-gnu/bits/environments.h" 1 3 4
-# 22 "/usr/include/x86_64-linux-gnu/bits/environments.h" 3 4
-# 1 "/usr/include/x86_64-linux-gnu/bits/wordsize.h" 1 3 4
-# 23 "/usr/include/x86_64-linux-gnu/bits/environments.h" 2 3 4
-# 210 "/usr/include/unistd.h" 2 3 4
-# 229 "/usr/include/unistd.h" 3 4
-# 1 "/usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h" 1 3 4
-# 230 "/usr/include/unistd.h" 2 3 4
-# 258 "/usr/include/unistd.h" 3 4
-
-# 258 "/usr/include/unistd.h" 3 4
-typedef __useconds_t useconds_t;
-# 277 "/usr/include/unistd.h" 3 4
-typedef __socklen_t socklen_t;
-# 290 "/usr/include/unistd.h" 3 4
-extern int access (const char *__name, int __type) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
-# 307 "/usr/include/unistd.h" 3 4
-extern int faccessat (int __fd, const char *__file, int __type, int __flag)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2))) ;
-# 337 "/usr/include/unistd.h" 3 4
-extern __off_t lseek (int __fd, __off_t __offset, int __whence) __attribute__ ((__nothrow__ , __leaf__));
-# 356 "/usr/include/unistd.h" 3 4
-extern int close (int __fd);
-
-
-
-
-
-
-extern ssize_t read (int __fd, void *__buf, size_t __nbytes) ;
-
-
-
-
-
-extern ssize_t write (int __fd, const void *__buf, size_t __n) ;
-# 379 "/usr/include/unistd.h" 3 4
-extern ssize_t pread (int __fd, void *__buf, size_t __nbytes,
- __off_t __offset) ;
-
-
-
-
-
-
-extern ssize_t pwrite (int __fd, const void *__buf, size_t __n,
- __off_t __offset) ;
-# 420 "/usr/include/unistd.h" 3 4
-extern int pipe (int __pipedes[2]) __attribute__ ((__nothrow__ , __leaf__)) ;
-# 435 "/usr/include/unistd.h" 3 4
-extern unsigned int alarm (unsigned int __seconds) __attribute__ ((__nothrow__ , __leaf__));
-# 447 "/usr/include/unistd.h" 3 4
-extern unsigned int sleep (unsigned int __seconds);
-
-
-
-
-
-
-
-extern __useconds_t ualarm (__useconds_t __value, __useconds_t __interval)
- __attribute__ ((__nothrow__ , __leaf__));
-
-
-
-
-
-
-extern int usleep (__useconds_t __useconds);
-# 472 "/usr/include/unistd.h" 3 4
-extern int pause (void);
-
-
-
-extern int chown (const char *__file, __uid_t __owner, __gid_t __group)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ;
-
-
-
-extern int fchown (int __fd, __uid_t __owner, __gid_t __group) __attribute__ ((__nothrow__ , __leaf__)) ;
-
-
-
-
-extern int lchown (const char *__file, __uid_t __owner, __gid_t __group)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ;
-
-
-
-
-
-
-extern int fchownat (int __fd, const char *__file, __uid_t __owner,
- __gid_t __group, int __flag)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2))) ;
-
-
-
-extern int chdir (const char *__path) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ;
-
-
-
-extern int fchdir (int __fd) __attribute__ ((__nothrow__ , __leaf__)) ;
-# 514 "/usr/include/unistd.h" 3 4
-extern char *getcwd (char *__buf, size_t __size) __attribute__ ((__nothrow__ , __leaf__)) ;
-# 528 "/usr/include/unistd.h" 3 4
-extern char *getwd (char *__buf)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__deprecated__)) ;
-
-
-
-
-extern int dup (int __fd) __attribute__ ((__nothrow__ , __leaf__)) ;
-
-
-extern int dup2 (int __fd, int __fd2) __attribute__ ((__nothrow__ , __leaf__));
-# 546 "/usr/include/unistd.h" 3 4
-extern char **__environ;
-
-
-
-
-
-
-
-extern int execve (const char *__path, char *const __argv[],
- char *const __envp[]) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
-
-
-
-
-extern int fexecve (int __fd, char *const __argv[], char *const __envp[])
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2)));
-
-
-
-
-extern int execv (const char *__path, char *const __argv[])
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
-
-
-
-extern int execle (const char *__path, const char *__arg, ...)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
-
-
-
-extern int execl (const char *__path, const char *__arg, ...)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
-
-
-
-extern int execvp (const char *__file, char *const __argv[])
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
-
-
-
-
-extern int execlp (const char *__file, const char *__arg, ...)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
-# 601 "/usr/include/unistd.h" 3 4
-extern int nice (int __inc) __attribute__ ((__nothrow__ , __leaf__)) ;
-
-
-
-
-extern void _exit (int __status) __attribute__ ((__noreturn__));
-
-
-
-
-
-# 1 "/usr/include/x86_64-linux-gnu/bits/confname.h" 1 3 4
-# 24 "/usr/include/x86_64-linux-gnu/bits/confname.h" 3 4
-enum
- {
- _PC_LINK_MAX,
-
- _PC_MAX_CANON,
-
- _PC_MAX_INPUT,
-
- _PC_NAME_MAX,
-
- _PC_PATH_MAX,
-
- _PC_PIPE_BUF,
-
- _PC_CHOWN_RESTRICTED,
-
- _PC_NO_TRUNC,
-
- _PC_VDISABLE,
-
- _PC_SYNC_IO,
-
- _PC_ASYNC_IO,
-
- _PC_PRIO_IO,
-
- _PC_SOCK_MAXBUF,
-
- _PC_FILESIZEBITS,
-
- _PC_REC_INCR_XFER_SIZE,
-
- _PC_REC_MAX_XFER_SIZE,
-
- _PC_REC_MIN_XFER_SIZE,
-
- _PC_REC_XFER_ALIGN,
-
- _PC_ALLOC_SIZE_MIN,
-
- _PC_SYMLINK_MAX,
-
- _PC_2_SYMLINKS
-
- };
-
-
-enum
- {
- _SC_ARG_MAX,
-
- _SC_CHILD_MAX,
-
- _SC_CLK_TCK,
-
- _SC_NGROUPS_MAX,
-
- _SC_OPEN_MAX,
-
- _SC_STREAM_MAX,
-
- _SC_TZNAME_MAX,
-
- _SC_JOB_CONTROL,
-
- _SC_SAVED_IDS,
-
- _SC_REALTIME_SIGNALS,
-
- _SC_PRIORITY_SCHEDULING,
-
- _SC_TIMERS,
-
- _SC_ASYNCHRONOUS_IO,
-
- _SC_PRIORITIZED_IO,
-
- _SC_SYNCHRONIZED_IO,
-
- _SC_FSYNC,
-
- _SC_MAPPED_FILES,
-
- _SC_MEMLOCK,
-
- _SC_MEMLOCK_RANGE,
-
- _SC_MEMORY_PROTECTION,
-
- _SC_MESSAGE_PASSING,
-
- _SC_SEMAPHORES,
-
- _SC_SHARED_MEMORY_OBJECTS,
-
- _SC_AIO_LISTIO_MAX,
-
- _SC_AIO_MAX,
-
- _SC_AIO_PRIO_DELTA_MAX,
-
- _SC_DELAYTIMER_MAX,
-
- _SC_MQ_OPEN_MAX,
-
- _SC_MQ_PRIO_MAX,
-
- _SC_VERSION,
-
- _SC_PAGESIZE,
-
-
- _SC_RTSIG_MAX,
-
- _SC_SEM_NSEMS_MAX,
-
- _SC_SEM_VALUE_MAX,
-
- _SC_SIGQUEUE_MAX,
-
- _SC_TIMER_MAX,
-
-
-
-
- _SC_BC_BASE_MAX,
-
- _SC_BC_DIM_MAX,
-
- _SC_BC_SCALE_MAX,
-
- _SC_BC_STRING_MAX,
-
- _SC_COLL_WEIGHTS_MAX,
-
- _SC_EQUIV_CLASS_MAX,
-
- _SC_EXPR_NEST_MAX,
-
- _SC_LINE_MAX,
-
- _SC_RE_DUP_MAX,
-
- _SC_CHARCLASS_NAME_MAX,
-
-
- _SC_2_VERSION,
-
- _SC_2_C_BIND,
-
- _SC_2_C_DEV,
-
- _SC_2_FORT_DEV,
-
- _SC_2_FORT_RUN,
-
- _SC_2_SW_DEV,
-
- _SC_2_LOCALEDEF,
-
-
- _SC_PII,
-
- _SC_PII_XTI,
-
- _SC_PII_SOCKET,
-
- _SC_PII_INTERNET,
-
- _SC_PII_OSI,
-
- _SC_POLL,
-
- _SC_SELECT,
-
- _SC_UIO_MAXIOV,
-
- _SC_IOV_MAX = _SC_UIO_MAXIOV,
-
- _SC_PII_INTERNET_STREAM,
-
- _SC_PII_INTERNET_DGRAM,
-
- _SC_PII_OSI_COTS,
-
- _SC_PII_OSI_CLTS,
-
- _SC_PII_OSI_M,
-
- _SC_T_IOV_MAX,
-
-
-
- _SC_THREADS,
-
- _SC_THREAD_SAFE_FUNCTIONS,
-
- _SC_GETGR_R_SIZE_MAX,
-
- _SC_GETPW_R_SIZE_MAX,
-
- _SC_LOGIN_NAME_MAX,
-
- _SC_TTY_NAME_MAX,
-
- _SC_THREAD_DESTRUCTOR_ITERATIONS,
-
- _SC_THREAD_KEYS_MAX,
-
- _SC_THREAD_STACK_MIN,
-
- _SC_THREAD_THREADS_MAX,
-
- _SC_THREAD_ATTR_STACKADDR,
-
- _SC_THREAD_ATTR_STACKSIZE,
-
- _SC_THREAD_PRIORITY_SCHEDULING,
-
- _SC_THREAD_PRIO_INHERIT,
-
- _SC_THREAD_PRIO_PROTECT,
-
- _SC_THREAD_PROCESS_SHARED,
-
-
- _SC_NPROCESSORS_CONF,
-
- _SC_NPROCESSORS_ONLN,
-
- _SC_PHYS_PAGES,
-
- _SC_AVPHYS_PAGES,
-
- _SC_ATEXIT_MAX,
-
- _SC_PASS_MAX,
-
-
- _SC_XOPEN_VERSION,
-
- _SC_XOPEN_XCU_VERSION,
-
- _SC_XOPEN_UNIX,
-
- _SC_XOPEN_CRYPT,
-
- _SC_XOPEN_ENH_I18N,
-
- _SC_XOPEN_SHM,
-
-
- _SC_2_CHAR_TERM,
-
- _SC_2_C_VERSION,
-
- _SC_2_UPE,
-
-
- _SC_XOPEN_XPG2,
-
- _SC_XOPEN_XPG3,
-
- _SC_XOPEN_XPG4,
-
-
- _SC_CHAR_BIT,
-
- _SC_CHAR_MAX,
-
- _SC_CHAR_MIN,
-
- _SC_INT_MAX,
-
- _SC_INT_MIN,
-
- _SC_LONG_BIT,
-
- _SC_WORD_BIT,
-
- _SC_MB_LEN_MAX,
-
- _SC_NZERO,
-
- _SC_SSIZE_MAX,
-
- _SC_SCHAR_MAX,
-
- _SC_SCHAR_MIN,
-
- _SC_SHRT_MAX,
-
- _SC_SHRT_MIN,
-
- _SC_UCHAR_MAX,
-
- _SC_UINT_MAX,
-
- _SC_ULONG_MAX,
-
- _SC_USHRT_MAX,
-
-
- _SC_NL_ARGMAX,
-
- _SC_NL_LANGMAX,
-
- _SC_NL_MSGMAX,
-
- _SC_NL_NMAX,
-
- _SC_NL_SETMAX,
-
- _SC_NL_TEXTMAX,
-
-
- _SC_XBS5_ILP32_OFF32,
-
- _SC_XBS5_ILP32_OFFBIG,
-
- _SC_XBS5_LP64_OFF64,
-
- _SC_XBS5_LPBIG_OFFBIG,
-
-
- _SC_XOPEN_LEGACY,
-
- _SC_XOPEN_REALTIME,
-
- _SC_XOPEN_REALTIME_THREADS,
-
-
- _SC_ADVISORY_INFO,
-
- _SC_BARRIERS,
-
- _SC_BASE,
-
- _SC_C_LANG_SUPPORT,
-
- _SC_C_LANG_SUPPORT_R,
-
- _SC_CLOCK_SELECTION,
-
- _SC_CPUTIME,
-
- _SC_THREAD_CPUTIME,
-
- _SC_DEVICE_IO,
-
- _SC_DEVICE_SPECIFIC,
-
- _SC_DEVICE_SPECIFIC_R,
-
- _SC_FD_MGMT,
-
- _SC_FIFO,
-
- _SC_PIPE,
-
- _SC_FILE_ATTRIBUTES,
-
- _SC_FILE_LOCKING,
-
- _SC_FILE_SYSTEM,
-
- _SC_MONOTONIC_CLOCK,
-
- _SC_MULTI_PROCESS,
-
- _SC_SINGLE_PROCESS,
-
- _SC_NETWORKING,
-
- _SC_READER_WRITER_LOCKS,
-
- _SC_SPIN_LOCKS,
-
- _SC_REGEXP,
-
- _SC_REGEX_VERSION,
-
- _SC_SHELL,
-
- _SC_SIGNALS,
-
- _SC_SPAWN,
-
- _SC_SPORADIC_SERVER,
-
- _SC_THREAD_SPORADIC_SERVER,
-
- _SC_SYSTEM_DATABASE,
-
- _SC_SYSTEM_DATABASE_R,
-
- _SC_TIMEOUTS,
-
- _SC_TYPED_MEMORY_OBJECTS,
-
- _SC_USER_GROUPS,
-
- _SC_USER_GROUPS_R,
-
- _SC_2_PBS,
-
- _SC_2_PBS_ACCOUNTING,
-
- _SC_2_PBS_LOCATE,
-
- _SC_2_PBS_MESSAGE,
-
- _SC_2_PBS_TRACK,
-
- _SC_SYMLOOP_MAX,
-
- _SC_STREAMS,
-
- _SC_2_PBS_CHECKPOINT,
-
-
- _SC_V6_ILP32_OFF32,
-
- _SC_V6_ILP32_OFFBIG,
-
- _SC_V6_LP64_OFF64,
-
- _SC_V6_LPBIG_OFFBIG,
-
-
- _SC_HOST_NAME_MAX,
-
- _SC_TRACE,
-
- _SC_TRACE_EVENT_FILTER,
-
- _SC_TRACE_INHERIT,
-
- _SC_TRACE_LOG,
-
-
- _SC_LEVEL1_ICACHE_SIZE,
-
- _SC_LEVEL1_ICACHE_ASSOC,
-
- _SC_LEVEL1_ICACHE_LINESIZE,
-
- _SC_LEVEL1_DCACHE_SIZE,
-
- _SC_LEVEL1_DCACHE_ASSOC,
-
- _SC_LEVEL1_DCACHE_LINESIZE,
-
- _SC_LEVEL2_CACHE_SIZE,
-
- _SC_LEVEL2_CACHE_ASSOC,
-
- _SC_LEVEL2_CACHE_LINESIZE,
-
- _SC_LEVEL3_CACHE_SIZE,
-
- _SC_LEVEL3_CACHE_ASSOC,
-
- _SC_LEVEL3_CACHE_LINESIZE,
-
- _SC_LEVEL4_CACHE_SIZE,
-
- _SC_LEVEL4_CACHE_ASSOC,
-
- _SC_LEVEL4_CACHE_LINESIZE,
-
-
-
- _SC_IPV6 = _SC_LEVEL1_ICACHE_SIZE + 50,
-
- _SC_RAW_SOCKETS,
-
-
- _SC_V7_ILP32_OFF32,
-
- _SC_V7_ILP32_OFFBIG,
-
- _SC_V7_LP64_OFF64,
-
- _SC_V7_LPBIG_OFFBIG,
-
-
- _SC_SS_REPL_MAX,
-
-
- _SC_TRACE_EVENT_NAME_MAX,
-
- _SC_TRACE_NAME_MAX,
-
- _SC_TRACE_SYS_MAX,
-
- _SC_TRACE_USER_EVENT_MAX,
-
-
- _SC_XOPEN_STREAMS,
-
-
- _SC_THREAD_ROBUST_PRIO_INHERIT,
-
- _SC_THREAD_ROBUST_PRIO_PROTECT
-
- };
-
-
-enum
- {
- _CS_PATH,
-
-
- _CS_V6_WIDTH_RESTRICTED_ENVS,
-
-
-
- _CS_GNU_LIBC_VERSION,
-
- _CS_GNU_LIBPTHREAD_VERSION,
-
-
- _CS_V5_WIDTH_RESTRICTED_ENVS,
-
-
-
- _CS_V7_WIDTH_RESTRICTED_ENVS,
-
-
-
- _CS_LFS_CFLAGS = 1000,
-
- _CS_LFS_LDFLAGS,
-
- _CS_LFS_LIBS,
-
- _CS_LFS_LINTFLAGS,
-
- _CS_LFS64_CFLAGS,
-
- _CS_LFS64_LDFLAGS,
-
- _CS_LFS64_LIBS,
-
- _CS_LFS64_LINTFLAGS,
-
-
- _CS_XBS5_ILP32_OFF32_CFLAGS = 1100,
-
- _CS_XBS5_ILP32_OFF32_LDFLAGS,
-
- _CS_XBS5_ILP32_OFF32_LIBS,
-
- _CS_XBS5_ILP32_OFF32_LINTFLAGS,
-
- _CS_XBS5_ILP32_OFFBIG_CFLAGS,
-
- _CS_XBS5_ILP32_OFFBIG_LDFLAGS,
-
- _CS_XBS5_ILP32_OFFBIG_LIBS,
-
- _CS_XBS5_ILP32_OFFBIG_LINTFLAGS,
-
- _CS_XBS5_LP64_OFF64_CFLAGS,
-
- _CS_XBS5_LP64_OFF64_LDFLAGS,
-
- _CS_XBS5_LP64_OFF64_LIBS,
-
- _CS_XBS5_LP64_OFF64_LINTFLAGS,
-
- _CS_XBS5_LPBIG_OFFBIG_CFLAGS,
-
- _CS_XBS5_LPBIG_OFFBIG_LDFLAGS,
-
- _CS_XBS5_LPBIG_OFFBIG_LIBS,
-
- _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS,
-
-
- _CS_POSIX_V6_ILP32_OFF32_CFLAGS,
-
- _CS_POSIX_V6_ILP32_OFF32_LDFLAGS,
-
- _CS_POSIX_V6_ILP32_OFF32_LIBS,
-
- _CS_POSIX_V6_ILP32_OFF32_LINTFLAGS,
-
- _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS,
-
- _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS,
-
- _CS_POSIX_V6_ILP32_OFFBIG_LIBS,
-
- _CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS,
-
- _CS_POSIX_V6_LP64_OFF64_CFLAGS,
-
- _CS_POSIX_V6_LP64_OFF64_LDFLAGS,
-
- _CS_POSIX_V6_LP64_OFF64_LIBS,
-
- _CS_POSIX_V6_LP64_OFF64_LINTFLAGS,
-
- _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS,
-
- _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS,
-
- _CS_POSIX_V6_LPBIG_OFFBIG_LIBS,
-
- _CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS,
-
-
- _CS_POSIX_V7_ILP32_OFF32_CFLAGS,
-
- _CS_POSIX_V7_ILP32_OFF32_LDFLAGS,
-
- _CS_POSIX_V7_ILP32_OFF32_LIBS,
-
- _CS_POSIX_V7_ILP32_OFF32_LINTFLAGS,
-
- _CS_POSIX_V7_ILP32_OFFBIG_CFLAGS,
-
- _CS_POSIX_V7_ILP32_OFFBIG_LDFLAGS,
-
- _CS_POSIX_V7_ILP32_OFFBIG_LIBS,
-
- _CS_POSIX_V7_ILP32_OFFBIG_LINTFLAGS,
-
- _CS_POSIX_V7_LP64_OFF64_CFLAGS,
-
- _CS_POSIX_V7_LP64_OFF64_LDFLAGS,
-
- _CS_POSIX_V7_LP64_OFF64_LIBS,
-
- _CS_POSIX_V7_LP64_OFF64_LINTFLAGS,
-
- _CS_POSIX_V7_LPBIG_OFFBIG_CFLAGS,
-
- _CS_POSIX_V7_LPBIG_OFFBIG_LDFLAGS,
-
- _CS_POSIX_V7_LPBIG_OFFBIG_LIBS,
-
- _CS_POSIX_V7_LPBIG_OFFBIG_LINTFLAGS,
-
-
- _CS_V6_ENV,
-
- _CS_V7_ENV
-
- };
-# 613 "/usr/include/unistd.h" 2 3 4
-
-
-extern long int pathconf (const char *__path, int __name)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
-
-
-extern long int fpathconf (int __fd, int __name) __attribute__ ((__nothrow__ , __leaf__));
-
-
-extern long int sysconf (int __name) __attribute__ ((__nothrow__ , __leaf__));
-
-
-
-extern size_t confstr (int __name, char *__buf, size_t __len) __attribute__ ((__nothrow__ , __leaf__));
-
-
-
-
-extern __pid_t getpid (void) __attribute__ ((__nothrow__ , __leaf__));
-
-
-extern __pid_t getppid (void) __attribute__ ((__nothrow__ , __leaf__));
-
-
-extern __pid_t getpgrp (void) __attribute__ ((__nothrow__ , __leaf__));
-
-
-extern __pid_t __getpgid (__pid_t __pid) __attribute__ ((__nothrow__ , __leaf__));
-
-extern __pid_t getpgid (__pid_t __pid) __attribute__ ((__nothrow__ , __leaf__));
-
-
-
-
-
-
-extern int setpgid (__pid_t __pid, __pid_t __pgid) __attribute__ ((__nothrow__ , __leaf__));
-# 663 "/usr/include/unistd.h" 3 4
-extern int setpgrp (void) __attribute__ ((__nothrow__ , __leaf__));
-
-
-
-
-
-
-extern __pid_t setsid (void) __attribute__ ((__nothrow__ , __leaf__));
-
-
-
-extern __pid_t getsid (__pid_t __pid) __attribute__ ((__nothrow__ , __leaf__));
-
-
-
-extern __uid_t getuid (void) __attribute__ ((__nothrow__ , __leaf__));
-
-
-extern __uid_t geteuid (void) __attribute__ ((__nothrow__ , __leaf__));
-
-
-extern __gid_t getgid (void) __attribute__ ((__nothrow__ , __leaf__));
-
-
-extern __gid_t getegid (void) __attribute__ ((__nothrow__ , __leaf__));
-
-
-
-
-extern int getgroups (int __size, __gid_t __list[]) __attribute__ ((__nothrow__ , __leaf__)) ;
-# 703 "/usr/include/unistd.h" 3 4
-extern int setuid (__uid_t __uid) __attribute__ ((__nothrow__ , __leaf__)) ;
-
-
-
-
-extern int setreuid (__uid_t __ruid, __uid_t __euid) __attribute__ ((__nothrow__ , __leaf__)) ;
-
-
-
-
-extern int seteuid (__uid_t __uid) __attribute__ ((__nothrow__ , __leaf__)) ;
-
-
-
-
-
-
-extern int setgid (__gid_t __gid) __attribute__ ((__nothrow__ , __leaf__)) ;
-
-
-
-
-extern int setregid (__gid_t __rgid, __gid_t __egid) __attribute__ ((__nothrow__ , __leaf__)) ;
-
-
-
-
-extern int setegid (__gid_t __gid) __attribute__ ((__nothrow__ , __leaf__)) ;
-# 759 "/usr/include/unistd.h" 3 4
-extern __pid_t fork (void) __attribute__ ((__nothrow__));
-
-
-
-
-
-
-
-extern __pid_t vfork (void) __attribute__ ((__nothrow__ , __leaf__));
-
-
-
-
-
-extern char *ttyname (int __fd) __attribute__ ((__nothrow__ , __leaf__));
-
-
-
-extern int ttyname_r (int __fd, char *__buf, size_t __buflen)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2))) ;
-
-
-
-extern int isatty (int __fd) __attribute__ ((__nothrow__ , __leaf__));
-
-
-
-
-
-extern int ttyslot (void) __attribute__ ((__nothrow__ , __leaf__));
-
-
-
-
-extern int link (const char *__from, const char *__to)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))) ;
-
-
-
-
-extern int linkat (int __fromfd, const char *__from, int __tofd,
- const char *__to, int __flags)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 4))) ;
-
-
-
-
-extern int symlink (const char *__from, const char *__to)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))) ;
-
-
-
-
-extern ssize_t readlink (const char *__restrict __path,
- char *__restrict __buf, size_t __len)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))) ;
-
-
-
-
-extern int symlinkat (const char *__from, int __tofd,
- const char *__to) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 3))) ;
-
-
-extern ssize_t readlinkat (int __fd, const char *__restrict __path,
- char *__restrict __buf, size_t __len)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 3))) ;
-
-
-
-extern int unlink (const char *__name) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
-
-
-
-extern int unlinkat (int __fd, const char *__name, int __flag)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2)));
-
-
-
-extern int rmdir (const char *__path) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
-
-
-
-extern __pid_t tcgetpgrp (int __fd) __attribute__ ((__nothrow__ , __leaf__));
-
-
-extern int tcsetpgrp (int __fd, __pid_t __pgrp_id) __attribute__ ((__nothrow__ , __leaf__));
-
-
-
-
-
-
-extern char *getlogin (void);
-
-
-
-
-
-
-
-extern int getlogin_r (char *__name, size_t __name_len) __attribute__ ((__nonnull__ (1)));
-
-
-
-
-extern int setlogin (const char *__name) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
-# 874 "/usr/include/unistd.h" 3 4
-# 1 "/usr/include/getopt.h" 1 3 4
-# 57 "/usr/include/getopt.h" 3 4
-extern char *optarg;
-# 71 "/usr/include/getopt.h" 3 4
-extern int optind;
-
-
-
-
-extern int opterr;
-
-
-
-extern int optopt;
-# 150 "/usr/include/getopt.h" 3 4
-extern int getopt (int ___argc, char *const *___argv, const char *__shortopts)
- __attribute__ ((__nothrow__ , __leaf__));
-# 875 "/usr/include/unistd.h" 2 3 4
-
-
-
-
-
-
-
-extern int gethostname (char *__name, size_t __len) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
-
-
-
-
-
-
-extern int sethostname (const char *__name, size_t __len)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ;
-
-
-
-extern int sethostid (long int __id) __attribute__ ((__nothrow__ , __leaf__)) ;
-
-
-
-
-
-extern int getdomainname (char *__name, size_t __len)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ;
-extern int setdomainname (const char *__name, size_t __len)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ;
-
-
-
-
-
-extern int vhangup (void) __attribute__ ((__nothrow__ , __leaf__));
-
-
-extern int revoke (const char *__file) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ;
-
-
-
-
-
-
-
-extern int profil (unsigned short int *__sample_buffer, size_t __size,
- size_t __offset, unsigned int __scale)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
-
-
-
-
-
-extern int acct (const char *__name) __attribute__ ((__nothrow__ , __leaf__));
-
-
-
-extern char *getusershell (void) __attribute__ ((__nothrow__ , __leaf__));
-extern void endusershell (void) __attribute__ ((__nothrow__ , __leaf__));
-extern void setusershell (void) __attribute__ ((__nothrow__ , __leaf__));
-
-
-
-
-
-extern int daemon (int __nochdir, int __noclose) __attribute__ ((__nothrow__ , __leaf__)) ;
-
-
-
-
-
-
-extern int chroot (const char *__path) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ;
-
-
-
-extern char *getpass (const char *__prompt) __attribute__ ((__nonnull__ (1)));
-
-
-
-
-
-
-
-extern int fsync (int __fd);
-# 972 "/usr/include/unistd.h" 3 4
-extern long int gethostid (void);
-
-
-extern void sync (void) __attribute__ ((__nothrow__ , __leaf__));
-
-
-
-
-
-extern int getpagesize (void) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__));
-
-
-
-
-extern int getdtablesize (void) __attribute__ ((__nothrow__ , __leaf__));
-# 996 "/usr/include/unistd.h" 3 4
-extern int truncate (const char *__file, __off_t __length)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ;
-# 1019 "/usr/include/unistd.h" 3 4
-extern int ftruncate (int __fd, __off_t __length) __attribute__ ((__nothrow__ , __leaf__)) ;
-# 1040 "/usr/include/unistd.h" 3 4
-extern int brk (void *__addr) __attribute__ ((__nothrow__ , __leaf__)) ;
-
-
-
-
-
-extern void *sbrk (intptr_t __delta) __attribute__ ((__nothrow__ , __leaf__));
-# 1061 "/usr/include/unistd.h" 3 4
-extern long int syscall (long int __sysno, ...) __attribute__ ((__nothrow__ , __leaf__));
-# 1084 "/usr/include/unistd.h" 3 4
-extern int lockf (int __fd, int __cmd, __off_t __len) ;
-# 1115 "/usr/include/unistd.h" 3 4
-extern int fdatasync (int __fildes);
-# 1154 "/usr/include/unistd.h" 3 4
-
-# 29 "../../../server-code/src/common/utils.h" 2
-# 39 "../../../server-code/src/common/utils.h"
-
-# 39 "../../../server-code/src/common/utils.h"
-void WriteDump(FILE* fp, const void* buffer, size_t length);
-void ShowDump(const void* buffer, size_t length);
-
-void findfile(const char *p, const char *pat, void (func)(const char*));
-
-# 43 "../../../server-code/src/common/utils.h" 3 4
-_Bool
-# 43 "../../../server-code/src/common/utils.h"
- exists(const char* filename);
-
-
-unsigned int get_percentage(const unsigned int A, const unsigned int B);
-
-int64 apply_percentrate64(int64 value, int rate, int maxrate);
-int apply_percentrate(int value, int rate, int maxrate);
-
-const char* timestamp2string(char* str, size_t size, time_t timestamp, const char* format);
-
-
-
-
-
-extern uint8 GetByte(uint32 val, int idx);
-extern uint16 GetWord(uint32 val, int idx);
-extern uint16 MakeWord(uint8 byte0, uint8 byte1);
-extern uint32 MakeDWord(uint16 word0, uint16 word1);
-
-
-
-
-extern int16 MakeShortLE(int16 val);
-extern int32 MakeLongLE(int32 val);
-extern uint16 GetUShort(const unsigned char* buf);
-extern uint32 GetULong(const unsigned char* buf);
-extern int32 GetLong(const unsigned char* buf);
-extern float GetFloat(const unsigned char* buf);
-
-size_t hread(void * ptr, size_t size, size_t count, FILE * stream);
-size_t hwrite(const void * ptr, size_t size, size_t count, FILE * stream);
-# 83 "../../../server-code/src/common/utils.h"
-struct HCache_interface {
- void (*init) (void);
-
-
-# 86 "../../../server-code/src/common/utils.h" 3 4
-_Bool
-# 86 "../../../server-code/src/common/utils.h"
- (*check) (const char *file);
- FILE *(*open) (const char *file, const char *opt);
-
- time_t recompile_time;
-
-# 90 "../../../server-code/src/common/utils.h" 3 4
-_Bool
-# 90 "../../../server-code/src/common/utils.h"
- enabled;
-};
-
-
-void HCache_defaults(void);
-
-
-extern struct HCache_interface *HCache;
-# 70 "../../../server-code/src/map/clif.c" 2
-
-
-
-
-
-
-
-struct clif_interface clif_s;
-struct clif_interface *clif;
-
-struct s_packet_db packet_db[0x0F00 + 1];
-
-
-static struct packet_itemlist_normal itemlist_normal;
-static struct packet_itemlist_equip itemlist_equip;
-static struct packet_storelist_normal storelist_normal;
-static struct packet_storelist_equip storelist_equip;
-static struct packet_viewequip_ack viewequip_list;
-
-static struct packet_npc_market_result_ack npcmarket_result;
-static struct packet_npc_market_open npcmarket_open;
-
-
-
-
-
-static inline int itemtype(int type) {
- switch( type ) {
-
- case IT_WEAPON:
- return IT_ARMOR;
- case IT_ARMOR:
- case IT_PETARMOR:
-
- case IT_PETEGG:
- return IT_WEAPON;
- default:
- return type;
- }
-}
-
-static inline void WBUFPOS(uint8* p, unsigned short pos, short x, short y, unsigned char dir) {
- p += pos;
- p[0] = (uint8)(x>>2);
- p[1] = (uint8)((x<<6) | ((y>>4)&0x3f));
- p[2] = (uint8)((y<<4) | (dir&0xf));
-}
-
-
-static inline void WBUFPOS2(uint8* p, unsigned short pos, short x0, short y0, short x1, short y1, unsigned char sx0, unsigned char sy0) {
- p += pos;
- p[0] = (uint8)(x0>>2);
- p[1] = (uint8)((x0<<6) | ((y0>>4)&0x3f));
- p[2] = (uint8)((y0<<4) | ((x1>>6)&0x0f));
- p[3] = (uint8)((x1<<2) | ((y1>>8)&0x03));
- p[4] = (uint8)y1;
- p[5] = (uint8)((sx0<<4) | (sy0&0x0f));
-}
-
-
-
-
-
-
-
-static inline void WFIFOPOS2(int fd, unsigned short pos, short x0, short y0, short x1, short y1, unsigned char sx0, unsigned char sy0) {
- WBUFPOS2(WFIFOP(fd,pos), 0, x0, y0, x1, y1, sx0, sy0);
-}
-
-static inline void RBUFPOS(const uint8* p, unsigned short pos, short* x, short* y, unsigned char* dir) {
- p += pos;
-
- if( x ) {
- x[0] = ( ( p[0] & 0xff ) << 2 ) | ( p[1] >> 6 );
- }
-
- if( y ) {
- y[0] = ( ( p[1] & 0x3f ) << 4 ) | ( p[2] >> 4 );
- }
-
- if( dir ) {
- dir[0] = ( p[2] & 0x0f );
- }
-}
-
-static inline void RFIFOPOS(int fd, unsigned short pos, short* x, short* y, unsigned char* dir) {
- RBUFPOS(RFIFOP(fd,pos), 0, x, y, dir);
-}
-# 193 "../../../server-code/src/map/clif.c"
-static inline
-# 193 "../../../server-code/src/map/clif.c" 3 4
- _Bool
-# 193 "../../../server-code/src/map/clif.c"
- disguised(struct block_list* bl)
-{
- struct map_session_data *sd = ( ((bl) == (struct block_list *)
-# 195 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 195 "../../../server-code/src/map/clif.c"
- || (bl)->type != (BL_PC)) ? (TBL_PC *)
-# 195 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 195 "../../../server-code/src/map/clif.c"
- : (TBL_PC *)(bl) );
- if (sd ==
-# 196 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 196 "../../../server-code/src/map/clif.c"
- || sd->disguise == -1)
- return
-# 197 "../../../server-code/src/map/clif.c" 3 4
- 0
-# 197 "../../../server-code/src/map/clif.c"
- ;
- return
-# 198 "../../../server-code/src/map/clif.c" 3 4
- 1
-# 198 "../../../server-code/src/map/clif.c"
- ;
-}
-
-
-
-
-
-# 204 "../../../server-code/src/map/clif.c" 3 4
-_Bool
-# 204 "../../../server-code/src/map/clif.c"
- clif_setip(const char* ip) {
- char ip_str[16];
- do { if (((void)(ip),
-# 206 "../../../server-code/src/map/clif.c" 3 4
-0
-# 206 "../../../server-code/src/map/clif.c"
-)) return(
-# 206 "../../../server-code/src/map/clif.c" 3 4
-0
-# 206 "../../../server-code/src/map/clif.c"
-); } while(0);
- clif->map_ip = sockt->host2ip(ip);
- if ( !clif->map_ip ) {
- (showmsg->showWarning(("Failed to Resolve Map Server Address! (%s)\n"), ip));
- return
-# 210 "../../../server-code/src/map/clif.c" 3 4
- 0
-# 210 "../../../server-code/src/map/clif.c"
- ;
- }
-
- (strlib->safestrncpy_((clif->map_ip_str),(ip),(sizeof(clif->map_ip_str))));
- (showmsg->showInfo(("Map Server IP Address : '""\033[1;37m""%s""\033[0m""' -> '""\033[1;37m""%s""\033[0m""'.\n"), ip, sockt->ip2str(clif->map_ip, ip_str)));
- return
-# 215 "../../../server-code/src/map/clif.c" 3 4
- 1
-# 215 "../../../server-code/src/map/clif.c"
- ;
-}
-
-
-# 218 "../../../server-code/src/map/clif.c" 3 4
-_Bool
-# 218 "../../../server-code/src/map/clif.c"
- clif_setbindip(const char* ip) {
- do { if (((void)(ip),
-# 219 "../../../server-code/src/map/clif.c" 3 4
-0
-# 219 "../../../server-code/src/map/clif.c"
-)) return(
-# 219 "../../../server-code/src/map/clif.c" 3 4
-0
-# 219 "../../../server-code/src/map/clif.c"
-); } while(0);
- clif->bind_ip = sockt->host2ip(ip);
- if ( clif->bind_ip ) {
- char ip_str[16];
- (showmsg->showInfo(("Map Server Bind IP Address : '""\033[1;37m""%s""\033[0m""' -> '""\033[1;37m""%s""\033[0m""'.\n"), ip, sockt->ip2str(clif->bind_ip, ip_str)));
- return
-# 224 "../../../server-code/src/map/clif.c" 3 4
- 1
-# 224 "../../../server-code/src/map/clif.c"
- ;
- }
- (showmsg->showWarning(("Failed to Resolve Map Server Address! (%s)\n"), ip));
- return
-# 227 "../../../server-code/src/map/clif.c" 3 4
- 0
-# 227 "../../../server-code/src/map/clif.c"
- ;
-}
-
-
-
-
-
-void clif_setport(uint16 port)
-{
- clif->map_port = port;
-}
-
-
-
-
-uint32 clif_getip(void)
-{
- return clif->map_ip;
-}
-
-
-
-
-uint16 clif_getport(void)
-{
- return clif->map_port;
-}
-
-
-
-uint32 clif_refresh_ip(void)
-{
- uint32 new_ip = sockt->host2ip(clif->map_ip_str);
- if ( new_ip && new_ip != clif->map_ip ) {
- clif->map_ip = new_ip;
- (showmsg->showInfo(("Updating IP resolution of [%s].\n"), clif->map_ip_str));
- return clif->map_ip;
- }
- return 0;
-}
-
-
-static inline unsigned char clif_bl_type(struct block_list *bl) {
- do { if (((void)(bl),
-# 270 "../../../server-code/src/map/clif.c" 3 4
-0
-# 270 "../../../server-code/src/map/clif.c"
-)) return(0x1); } while(0);
- switch (bl->type) {
- case BL_PC: return (disguised(bl) && !pc->db_checkid(status->get_viewdata(bl)->class_))? 0x1:0x0;
- case BL_ITEM: return 0x2;
- case BL_SKILL: return 0x3;
- case BL_CHAT: return 0x4;
- case BL_MOB: return pc->db_checkid(status->get_viewdata(bl)->class_)?0x0:0x5;
- case BL_NPC: return pc->db_checkid(status->get_viewdata(bl)->class_)?0x0:0x6;
- case BL_PET: return pc->db_checkid(status->get_viewdata(bl)->class_)?0x0:0x7;
- case BL_HOM: return 0x8;
- case BL_MER: return 0x9;
- case BL_ELEM: return 0xa;
- default: return 0x1;
- }
-}
-# 297 "../../../server-code/src/map/clif.c"
-int clif_send_sub(struct block_list *bl, va_list ap) {
- struct block_list *src_bl;
- struct map_session_data *sd;
- void *buf;
- int len, type, fd;
-
- do { if (((void)(bl),
-# 303 "../../../server-code/src/map/clif.c" 3 4
-0
-# 303 "../../../server-code/src/map/clif.c"
-)) return(0); } while(0);
- do { if (( (bl->type == BL_PC) ?
-# 304 "../../../server-code/src/map/clif.c" 3 4
-0
-# 304 "../../../server-code/src/map/clif.c"
-: (nullpo->assert_report("../../../server-code/src/map/clif.c", 304, __func__, "bl->type == BL_PC", "failed assertion"),
-# 304 "../../../server-code/src/map/clif.c" 3 4
-1
-# 304 "../../../server-code/src/map/clif.c"
-) )) return(0); } while(0);
- sd = ((TBL_PC *)BL_UCAST_(bl));
-
- fd = sd->fd;
- if (!fd || sockt->session[fd] ==
-# 308 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 308 "../../../server-code/src/map/clif.c"
- )
- return 0;
-
- buf =
-# 311 "../../../server-code/src/map/clif.c" 3 4
- __builtin_va_arg(
-# 311 "../../../server-code/src/map/clif.c"
- ap
-# 311 "../../../server-code/src/map/clif.c" 3 4
- ,
-# 311 "../../../server-code/src/map/clif.c"
- void*
-# 311 "../../../server-code/src/map/clif.c" 3 4
- )
-# 311 "../../../server-code/src/map/clif.c"
- ;
- len =
-# 312 "../../../server-code/src/map/clif.c" 3 4
- __builtin_va_arg(
-# 312 "../../../server-code/src/map/clif.c"
- ap
-# 312 "../../../server-code/src/map/clif.c" 3 4
- ,
-# 312 "../../../server-code/src/map/clif.c"
- int
-# 312 "../../../server-code/src/map/clif.c" 3 4
- )
-# 312 "../../../server-code/src/map/clif.c"
- ;
- do { if (((void)(src_bl =
-# 313 "../../../server-code/src/map/clif.c" 3 4
-__builtin_va_arg(
-# 313 "../../../server-code/src/map/clif.c"
-ap
-# 313 "../../../server-code/src/map/clif.c" 3 4
-,
-# 313 "../../../server-code/src/map/clif.c"
-struct block_list*
-# 313 "../../../server-code/src/map/clif.c" 3 4
-)
-# 313 "../../../server-code/src/map/clif.c"
-),
-# 313 "../../../server-code/src/map/clif.c" 3 4
-0
-# 313 "../../../server-code/src/map/clif.c"
-)) return(0); } while(0);
- type =
-# 314 "../../../server-code/src/map/clif.c" 3 4
- __builtin_va_arg(
-# 314 "../../../server-code/src/map/clif.c"
- ap
-# 314 "../../../server-code/src/map/clif.c" 3 4
- ,
-# 314 "../../../server-code/src/map/clif.c"
- int
-# 314 "../../../server-code/src/map/clif.c" 3 4
- )
-# 314 "../../../server-code/src/map/clif.c"
- ;
-
- switch(type) {
- case AREA_WOS:
- if (bl == src_bl)
- return 0;
- break;
- case AREA_WOC:
- if (sd->chatID || bl == src_bl)
- return 0;
- break;
- case AREA_WOSC: {
- if (src_bl->type == BL_PC) {
- const struct map_session_data *ssd = ((const TBL_PC *)BL_UCCAST_(src_bl));
- if (ssd !=
-# 328 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 328 "../../../server-code/src/map/clif.c"
- && sd->chatID != 0 && (sd->chatID == ssd->chatID))
- return 0;
- } else if (src_bl->type == BL_NPC) {
- const struct npc_data *nd = ((const TBL_NPC *)BL_UCCAST_(src_bl));
- if (nd !=
-# 332 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 332 "../../../server-code/src/map/clif.c"
- && sd->chatID != 0 && (sd->chatID == nd->chat_id))
- return 0;
- }
- }
- break;
-
-
-
-
-
-
-
- }
-
-
- if( clif->ally_only && !sd->sc.data[SC_CLAIRVOYANCE] && !sd->special_state.intravision && battle->check_target( src_bl, &sd->bl, BCT_ENEMY ) > 0 )
- return 0;
-
- return clif->send_actual(fd, buf, len);
-}
-
-int clif_send_actual(int fd, void *buf, int len)
-{
- do { if (((void)(buf),
-# 355 "../../../server-code/src/map/clif.c" 3 4
-0
-# 355 "../../../server-code/src/map/clif.c"
-)) return(0); } while(0);
- WFIFOHEAD(fd, len);
- if (WFIFOP(fd,0) == buf) {
- (showmsg->showError(("WARNING: Invalid use of clif->send function\n")));
- (showmsg->showError((" Packet x%4x use a WFIFO of a player instead of to use a buffer.\n"), WBUFW(buf,0)));
- (showmsg->showError((" Please correct your code.\n")));
-
-
-
- return 0;
- }
-
- memcpy(WFIFOP(fd,0), buf, len);
- WFIFOSET(fd,len);
-
- return 0;
-}
-
-
-
-
-
-
-# 377 "../../../server-code/src/map/clif.c" 3 4
-_Bool
-# 377 "../../../server-code/src/map/clif.c"
- clif_send(const void* buf, int len, struct block_list* bl, enum send_target type) {
- int i;
- struct map_session_data *sd, *tsd;
- struct party_data *p =
-# 380 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 380 "../../../server-code/src/map/clif.c"
- ;
- struct guild *g =
-# 381 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 381 "../../../server-code/src/map/clif.c"
- ;
- struct battleground_data *bgd =
-# 382 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 382 "../../../server-code/src/map/clif.c"
- ;
- int x0 = 0, x1 = 0, y0 = 0, y1 = 0, fd;
- struct s_mapiterator* iter;
-
- if( type != ALL_CLIENT )
- do { if (((void)(bl),
-# 387 "../../../server-code/src/map/clif.c" 3 4
- 0
-# 387 "../../../server-code/src/map/clif.c"
- )) return(0); } while(0);
-
- sd = ( ((bl) == (struct block_list *)
-# 389 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 389 "../../../server-code/src/map/clif.c"
- || (bl)->type != (BL_PC)) ? (TBL_PC *)
-# 389 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 389 "../../../server-code/src/map/clif.c"
- : (TBL_PC *)(bl) );
-
- if (sd !=
-# 391 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 391 "../../../server-code/src/map/clif.c"
- && ( (sd)->sc.option&OPTION_INVISIBLE )) {
- if (type == AREA || type == BG || type == BG_AREA)
- type = SELF;
- else if (type == AREA_WOS || type == BG_WOS || type == BG_AREA_WOS)
- return
-# 395 "../../../server-code/src/map/clif.c" 3 4
- 1
-# 395 "../../../server-code/src/map/clif.c"
- ;
- }
-
- switch(type) {
- case ALL_CLIENT:
- iter = (mapit->alloc(MAPIT_NORMAL,BL_PC));
- while ((tsd = ((TBL_PC *)BL_UCAST_(mapit->next(iter)))) !=
-# 401 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 401 "../../../server-code/src/map/clif.c"
- ) {
- WFIFOHEAD(tsd->fd, len);
- memcpy(WFIFOP(tsd->fd,0), buf, len);
- WFIFOSET(tsd->fd,len);
- }
- mapit->free(iter);
- break;
-
- case ALL_SAMEMAP:
- iter = (mapit->alloc(MAPIT_NORMAL,BL_PC));
- while ((tsd = ((TBL_PC *)BL_UCAST_(mapit->next(iter)))) !=
-# 411 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 411 "../../../server-code/src/map/clif.c"
- ) {
- if (bl && bl->m == tsd->bl.m) {
- WFIFOHEAD(tsd->fd, len);
- memcpy(WFIFOP(tsd->fd,0), buf, len);
- WFIFOSET(tsd->fd,len);
- }
- }
- mapit->free(iter);
- break;
-
- case AREA:
- case AREA_WOSC:
- if (sd && bl->prev ==
-# 423 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 423 "../../../server-code/src/map/clif.c"
- )
- clif->send (buf, len, bl, SELF);
-
- case AREA_WOC:
- case AREA_WOS:
- do { if (((void)(bl),
-# 428 "../../../server-code/src/map/clif.c" 3 4
- 0
-# 428 "../../../server-code/src/map/clif.c"
- )) return(
-# 428 "../../../server-code/src/map/clif.c" 3 4
- 1
-# 428 "../../../server-code/src/map/clif.c"
- ); } while(0);
- map->foreachinarea(clif->send_sub, bl->m, bl->x-(battle->bc->area_size), bl->y-(battle->bc->area_size), bl->x+(battle->bc->area_size), bl->y+(battle->bc->area_size),
- BL_PC, buf, len, bl, type);
- break;
- case AREA_CHAT_WOC:
- do { if (((void)(bl),
-# 433 "../../../server-code/src/map/clif.c" 3 4
- 0
-# 433 "../../../server-code/src/map/clif.c"
- )) return(
-# 433 "../../../server-code/src/map/clif.c" 3 4
- 1
-# 433 "../../../server-code/src/map/clif.c"
- ); } while(0);
- map->foreachinarea(clif->send_sub, bl->m, bl->x-((battle->bc->area_size)-5), bl->y-((battle->bc->area_size)-5),
- bl->x+((battle->bc->area_size)-5), bl->y+((battle->bc->area_size)-5), BL_PC, buf, len, bl, AREA_WOC);
- break;
-
- case CHAT:
- case CHAT_WOS:
- do { if (((void)(bl),
-# 440 "../../../server-code/src/map/clif.c" 3 4
- 0
-# 440 "../../../server-code/src/map/clif.c"
- )) return(
-# 440 "../../../server-code/src/map/clif.c" 3 4
- 1
-# 440 "../../../server-code/src/map/clif.c"
- ); } while(0);
- {
- const struct chat_data *cd =
-# 442 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 442 "../../../server-code/src/map/clif.c"
- ;
- if (sd !=
-# 443 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 443 "../../../server-code/src/map/clif.c"
- ) {
- cd = map->id2cd(sd->chatID);
- } else {
- cd = ( ((bl) == (const struct block_list *)
-# 446 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 446 "../../../server-code/src/map/clif.c"
- || (bl)->type != (BL_CHAT)) ? (const TBL_CHAT *)
-# 446 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 446 "../../../server-code/src/map/clif.c"
- : (const TBL_CHAT *)(bl) );
- }
- if (cd ==
-# 448 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 448 "../../../server-code/src/map/clif.c"
- )
- break;
- for(i = 0; i < cd->users; i++) {
- if (type == CHAT_WOS && cd->usersd[i] == sd)
- continue;
- if ((fd=cd->usersd[i]->fd) >0 && sockt->session[fd]) {
- WFIFOHEAD(fd,len);
- memcpy(WFIFOP(fd,0), buf, len);
- WFIFOSET(fd,len);
- }
- }
- }
- break;
-
- case PARTY_AREA:
- case PARTY_AREA_WOS:
- do { if (((void)(bl),
-# 464 "../../../server-code/src/map/clif.c" 3 4
- 0
-# 464 "../../../server-code/src/map/clif.c"
- )) return(
-# 464 "../../../server-code/src/map/clif.c" 3 4
- 1
-# 464 "../../../server-code/src/map/clif.c"
- ); } while(0);
- x0 = bl->x - (battle->bc->area_size);
- y0 = bl->y - (battle->bc->area_size);
- x1 = bl->x + (battle->bc->area_size);
- y1 = bl->y + (battle->bc->area_size);
-
- case PARTY:
- case PARTY_WOS:
- case PARTY_SAMEMAP:
- case PARTY_SAMEMAP_WOS:
- if (sd && sd->status.party_id)
- p = party->search(sd->status.party_id);
-
- if (p) {
- for(i=0;i<12;i++){
- if( (sd = p->data[i].sd) ==
-# 479 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 479 "../../../server-code/src/map/clif.c"
- )
- continue;
-
- if( !(fd=sd->fd) )
- continue;
-
- if( sd->bl.id == bl->id && (type == PARTY_WOS || type == PARTY_SAMEMAP_WOS || type == PARTY_AREA_WOS) )
- continue;
-
- if( type != PARTY && type != PARTY_WOS && bl->m != sd->bl.m )
- continue;
-
- if( (type == PARTY_AREA || type == PARTY_AREA_WOS) && (sd->bl.x < x0 || sd->bl.y < y0 || sd->bl.x > x1 || sd->bl.y > y1) )
- continue;
-
- WFIFOHEAD(fd,len);
- memcpy(WFIFOP(fd,0), buf, len);
- WFIFOSET(fd,len);
- }
- if (!map->enable_spy)
- break;
-
- iter = (mapit->alloc(MAPIT_NORMAL,BL_PC));
- while ((tsd = ((TBL_PC *)BL_UCAST_(mapit->next(iter)))) !=
-# 502 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 502 "../../../server-code/src/map/clif.c"
- ) {
- if( tsd->partyspy == p->party.party_id ) {
- WFIFOHEAD(tsd->fd, len);
- memcpy(WFIFOP(tsd->fd,0), buf, len);
- WFIFOSET(tsd->fd,len);
- }
- }
- mapit->free(iter);
- }
- break;
-
- case DUEL:
- case DUEL_WOS:
- if (!sd || !sd->duel_group) break;
-
- iter = (mapit->alloc(MAPIT_NORMAL,BL_PC));
- while ((tsd = ((TBL_PC *)BL_UCAST_(mapit->next(iter)))) !=
-# 518 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 518 "../../../server-code/src/map/clif.c"
- ) {
- if( type == DUEL_WOS && bl->id == tsd->bl.id )
- continue;
- if( sd->duel_group == tsd->duel_group ) {
- WFIFOHEAD(tsd->fd, len);
- memcpy(WFIFOP(tsd->fd,0), buf, len);
- WFIFOSET(tsd->fd,len);
- }
- }
- mapit->free(iter);
- break;
-
- case SELF:
- if (sd && (fd=sd->fd) != 0) {
- WFIFOHEAD(fd,len);
- memcpy(WFIFOP(fd,0), buf, len);
- WFIFOSET(fd,len);
- }
- break;
-
-
- case GUILD_AREA:
- case GUILD_AREA_WOS:
- do { if (((void)(bl),
-# 541 "../../../server-code/src/map/clif.c" 3 4
- 0
-# 541 "../../../server-code/src/map/clif.c"
- )) return(
-# 541 "../../../server-code/src/map/clif.c" 3 4
- 1
-# 541 "../../../server-code/src/map/clif.c"
- ); } while(0);
- x0 = bl->x - (battle->bc->area_size);
- y0 = bl->y - (battle->bc->area_size);
- x1 = bl->x + (battle->bc->area_size);
- y1 = bl->y + (battle->bc->area_size);
-
- case GUILD_SAMEMAP:
- case GUILD_SAMEMAP_WOS:
- case GUILD:
- case GUILD_WOS:
- case GUILD_NOBG:
- if (sd && sd->status.guild_id)
- g = sd->guild;
-
- if (g) {
- for(i = 0; i < g->max_member; i++) {
- if( (sd = g->member[i].sd) !=
-# 557 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 557 "../../../server-code/src/map/clif.c"
- ) {
- if( !(fd=sd->fd) )
- continue;
-
- if( type == GUILD_NOBG && sd->bg_id )
- continue;
-
- if( sd->bl.id == bl->id && (type == GUILD_WOS || type == GUILD_SAMEMAP_WOS || type == GUILD_AREA_WOS) )
- continue;
-
- if( type != GUILD && type != GUILD_NOBG && type != GUILD_WOS && sd->bl.m != bl->m )
- continue;
-
- if( (type == GUILD_AREA || type == GUILD_AREA_WOS) && (sd->bl.x < x0 || sd->bl.y < y0 || sd->bl.x > x1 || sd->bl.y > y1) )
- continue;
- WFIFOHEAD(fd,len);
- memcpy(WFIFOP(fd,0), buf, len);
- WFIFOSET(fd,len);
- }
- }
- if (!map->enable_spy)
- break;
-
- iter = (mapit->alloc(MAPIT_NORMAL,BL_PC));
- while ((tsd = ((TBL_PC *)BL_UCAST_(mapit->next(iter)))) !=
-# 581 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 581 "../../../server-code/src/map/clif.c"
- ) {
- if( tsd->guildspy == g->guild_id ) {
- WFIFOHEAD(tsd->fd, len);
- memcpy(WFIFOP(tsd->fd,0), buf, len);
- WFIFOSET(tsd->fd,len);
- }
- }
- mapit->free(iter);
- }
- break;
-
- case BG_AREA:
- case BG_AREA_WOS:
- do { if (((void)(bl),
-# 594 "../../../server-code/src/map/clif.c" 3 4
- 0
-# 594 "../../../server-code/src/map/clif.c"
- )) return(
-# 594 "../../../server-code/src/map/clif.c" 3 4
- 1
-# 594 "../../../server-code/src/map/clif.c"
- ); } while(0);
- x0 = bl->x - (battle->bc->area_size);
- y0 = bl->y - (battle->bc->area_size);
- x1 = bl->x + (battle->bc->area_size);
- y1 = bl->y + (battle->bc->area_size);
-
- case BG_SAMEMAP:
- case BG_SAMEMAP_WOS:
- case BG:
- case BG_WOS:
- if( sd && sd->bg_id && (bgd = bg->team_search(sd->bg_id)) !=
-# 604 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 604 "../../../server-code/src/map/clif.c"
- ) {
- for( i = 0; i < 30; i++ ) {
- if( (sd = bgd->members[i].sd) ==
-# 606 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 606 "../../../server-code/src/map/clif.c"
- || !(fd = sd->fd) )
- continue;
- if( sd->bl.id == bl->id && (type == BG_WOS || type == BG_SAMEMAP_WOS || type == BG_AREA_WOS) )
- continue;
- if( type != BG && type != BG_WOS && sd->bl.m != bl->m )
- continue;
- if( (type == BG_AREA || type == BG_AREA_WOS) && (sd->bl.x < x0 || sd->bl.y < y0 || sd->bl.x > x1 || sd->bl.y > y1) )
- continue;
- WFIFOHEAD(fd,len);
- memcpy(WFIFOP(fd,0), buf, len);
- WFIFOSET(fd,len);
- }
- }
- break;
-
- case BG_QUEUE:
- if( sd && sd->bg_queue.arena ) {
- struct script_queue *queue = script->queue(sd->bg_queue.arena->queue_id);
-
- for (i = 0; i < ( (queue->entries)._len_ ); i++) {
- struct map_session_data *qsd = map->id2sd(( ( (queue->entries)._data_ )[i] ));
-
- if (qsd !=
-# 628 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 628 "../../../server-code/src/map/clif.c"
- ) {
- WFIFOHEAD(qsd->fd,len);
- memcpy(WFIFOP(qsd->fd,0), buf, len);
- WFIFOSET(qsd->fd,len);
- }
- }
- }
- break;
-
- default:
- (showmsg->showError(("clif_send: Unrecognized type %u\n"), type));
- return
-# 639 "../../../server-code/src/map/clif.c" 3 4
- 0
-# 639 "../../../server-code/src/map/clif.c"
- ;
- }
-
- return
-# 642 "../../../server-code/src/map/clif.c" 3 4
- 1
-# 642 "../../../server-code/src/map/clif.c"
- ;
-}
-
-
-
-
-void clif_authok(struct map_session_data *sd)
-{
- struct packet_authok p;
-
- do { if (((void)(sd),
-# 652 "../../../server-code/src/map/clif.c" 3 4
-0
-# 652 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- p.PacketType = authokType;
- p.startTime = (unsigned int)timer->gettick();
- WBUFPOS(&p.PosDir[0],0,sd->bl.x,sd->bl.y,sd->ud.dir);
- p.xSize = p.ySize = 5;
-
- p.font = sd->status.font;
-
-
- p.sex = sd->status.sex;
-
- clif->send(&p,sizeof(p),&sd->bl,SELF);
-}
-# 674 "../../../server-code/src/map/clif.c"
-void clif_authrefuse(int fd, uint8 error_code)
-{
- WFIFOHEAD(fd,packet_db[0x74].len);
- WFIFOW(fd,0) = 0x74;
- WFIFOB(fd,2) = error_code;
- WFIFOSET(fd,packet_db[0x74].len);
-}
-# 715 "../../../server-code/src/map/clif.c"
-void clif_authfail_fd(int fd, int type)
-{
- if (!fd || !sockt->session[fd] || sockt->session[fd]->func_parse != clif->parse)
- return;
-
- WFIFOHEAD(fd, packet_db[0x81].len);
- WFIFOW(fd,0) = 0x81;
- WFIFOB(fd,2) = type;
- WFIFOSET(fd,packet_db[0x81].len);
- sockt->eof(fd);
-
-}
-
-
-
-
-
-
-void clif_charselectok(int id, uint8 ok) {
- struct map_session_data* sd;
- int fd;
-
- if ((sd = map->id2sd(id)) ==
-# 737 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 737 "../../../server-code/src/map/clif.c"
- || !sd->fd)
- return;
-
- fd = sd->fd;
- WFIFOHEAD(fd,packet_db[0xb3].len);
- WFIFOW(fd,0) = 0xb3;
- WFIFOB(fd,2) = ok;
- WFIFOSET(fd,packet_db[0xb3].len);
-}
-
-
-
-
-void clif_dropflooritem(struct flooritem_data* fitem) {
- struct packet_dropflooritem p;
- int view;
-
- do { if (((void)(fitem),
-# 754 "../../../server-code/src/map/clif.c" 3 4
-0
-# 754 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- if (fitem->item_data.nameid <= 0)
- return;
-
- p.PacketType = dropflooritemType;
- p.ITAID = fitem->bl.id;
- p.ITID = ((view = (itemdb->search(fitem->item_data.nameid)->view_id)) > 0) ? view : fitem->item_data.nameid;
-
- p.type = itemtype((itemdb->search(fitem->item_data.nameid)->type));
-
- p.IsIdentified = fitem->item_data.identify ? 1 : 0;
- p.xPos = fitem->bl.x;
- p.yPos = fitem->bl.y;
- p.subX = fitem->subx;
- p.subY = fitem->suby;
- p.count = fitem->item_data.amount;
-
- clif->send(&p, sizeof(p), &fitem->bl, AREA);
-}
-
-
-
-void clif_clearflooritem(struct flooritem_data *fitem, int fd)
-{
- unsigned char buf[16];
-
- do { if (((void)(fitem),
-# 781 "../../../server-code/src/map/clif.c" 3 4
-0
-# 781 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- WBUFW(buf,0) = 0xa1;
- WBUFL(buf,2) = fitem->bl.id;
-
- if (fd == 0) {
- clif->send(buf, packet_db[0xa1].len, &fitem->bl, AREA);
- } else {
- WFIFOHEAD(fd,packet_db[0xa1].len);
- memcpy(WFIFOP(fd,0), buf, packet_db[0xa1].len);
- WFIFOSET(fd,packet_db[0xa1].len);
- }
-}
-# 803 "../../../server-code/src/map/clif.c"
-void clif_clearunit_single(int id, clr_type type, int fd)
-{
- WFIFOHEAD(fd, packet_db[0x80].len);
- WFIFOW(fd,0) = 0x80;
- WFIFOL(fd,2) = id;
- WFIFOB(fd,6) = type;
- WFIFOSET(fd, packet_db[0x80].len);
-}
-# 820 "../../../server-code/src/map/clif.c"
-void clif_clearunit_area(struct block_list* bl, clr_type type)
-{
- unsigned char buf[8];
-
- do { if (((void)(bl),
-# 824 "../../../server-code/src/map/clif.c" 3 4
-0
-# 824 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- WBUFW(buf,0) = 0x80;
- WBUFL(buf,2) = bl->id;
- WBUFB(buf,6) = type;
-
- clif->send(buf, packet_db[0x80].len, bl, type == CLR_DEAD ? AREA : AREA_WOS);
-
- if(disguised(bl)) {
- WBUFL(buf,2) = -bl->id;
- clif->send(buf, packet_db[0x80].len, bl, SELF);
- }
-}
-
-
-
-
-int clif_clearunit_delayed_sub(int tid, int64 tick, int id, intptr_t data) {
- struct block_list *bl = (struct block_list *)data;
- clif->clearunit_area(bl, (clr_type) id);
- ((clif->delay_clearunit_ers)->free((clif->delay_clearunit_ers),(bl)));
- return 0;
-}
-
-void clif_clearunit_delayed(struct block_list* bl, clr_type type, int64 tick) {
- struct block_list *tbl;
-
- do { if (((void)(bl),
-# 851 "../../../server-code/src/map/clif.c" 3 4
-0
-# 851 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- tbl = ((struct block_list *)(clif->delay_clearunit_ers)->alloc(clif->delay_clearunit_ers));
- memcpy (tbl, bl, sizeof (struct block_list));
- timer->add(tick, clif->clearunit_delayed_sub, (int)type, (intptr_t)tbl);
-}
-
-
-void clif_get_weapon_view(struct map_session_data* sd, unsigned short *rhand, unsigned short *lhand)
-{
- do { if (((void)(sd),
-# 860 "../../../server-code/src/map/clif.c" 3 4
-0
-# 860 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- do { if (((void)(rhand),
-# 861 "../../../server-code/src/map/clif.c" 3 4
-0
-# 861 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- do { if (((void)(lhand),
-# 862 "../../../server-code/src/map/clif.c" 3 4
-0
-# 862 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- if(sd->sc.option&OPTION_COSTUME) {
- *rhand = *lhand = 0;
- return;
- }
-
-
-
-
-
- if (sd->equip_index[EQI_HAND_R] >= 0 &&
- sd->inventory_data[sd->equip_index[EQI_HAND_R]])
- {
- struct item_data* id = sd->inventory_data[sd->equip_index[EQI_HAND_R]];
- if (id->view_id > 0)
- *rhand = id->view_id;
- else
- *rhand = id->nameid;
- } else
- *rhand = 0;
-
- if (sd->equip_index[EQI_HAND_L] >= 0 &&
- sd->equip_index[EQI_HAND_L] != sd->equip_index[EQI_HAND_R] &&
- sd->inventory_data[sd->equip_index[EQI_HAND_L]])
- {
- struct item_data* id = sd->inventory_data[sd->equip_index[EQI_HAND_L]];
- if (id->view_id > 0)
- *lhand = id->view_id;
- else
- *lhand = id->nameid;
- } else
- *lhand = 0;
-
-}
-
-
-static int clif_setlevel_sub(int lv) {
- if( lv < battle_config.max_lv ) {
- ;
- } else if( lv < battle_config.aura_lv ) {
- lv = battle_config.max_lv - 1;
- } else {
- lv = battle_config.max_lv;
- }
-
- return lv;
-}
-
-static int clif_setlevel(struct block_list* bl) {
- int lv = status->get_lv(bl);
- do { if (((void)(bl),
-# 912 "../../../server-code/src/map/clif.c" 3 4
-0
-# 912 "../../../server-code/src/map/clif.c"
-)) return(0); } while(0);
- if( battle_config.client_limit_unit_lv&bl->type )
- return clif_setlevel_sub(lv);
- switch( bl->type ) {
- case BL_NPC:
- case BL_PET:
-
- return 0;
- }
- return lv;
-}
-
-void clif_set_unit_idle2(struct block_list* bl, struct map_session_data *tsd, enum send_target target) {
-# 972 "../../../server-code/src/map/clif.c"
- return;
-
-}
-
-
-
-void clif_set_unit_idle(struct block_list* bl, struct map_session_data *tsd, enum send_target target) {
- struct map_session_data* sd;
- struct status_change* sc = status->get_sc(bl);
- struct view_data* vd = status->get_viewdata(bl);
- struct packet_idle_unit p;
- int g_id = status->get_guild_id(bl);
-
- do { if (((void)(bl),
-# 985 "../../../server-code/src/map/clif.c" 3 4
-0
-# 985 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-# 994 "../../../server-code/src/map/clif.c"
- sd = ( ((bl) == (struct block_list *)
-# 994 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 994 "../../../server-code/src/map/clif.c"
- || (bl)->type != (BL_PC)) ? (TBL_PC *)
-# 994 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 994 "../../../server-code/src/map/clif.c"
- : (TBL_PC *)(bl) );
-
- p.PacketType = idle_unitType;
-
- p.PacketLength = sizeof(p);
- p.objecttype = clif_bl_type(bl);
-
-
- p.AID = bl->id;
- p.GID = (sd) ? sd->status.char_id : 0;
-
-
-
- p.speed = status->get_speed(bl);
- p.bodyState = (sc) ? sc->opt1 : 0;
- p.healthState = (sc) ? sc->opt2 : 0;
- p.effectState = (sc !=
-# 1010 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 1010 "../../../server-code/src/map/clif.c"
- ) ? sc->option : ((bl->type == BL_NPC) ? ((const TBL_NPC *)BL_UCCAST_(bl))->option : 0);
- p.job = vd->class_;
- p.head = vd->hair_style;
- p.weapon = vd->weapon;
- p.accessory = vd->head_bottom;
-
-
-
- p.accessory2 = vd->head_top;
- p.accessory3 = vd->head_mid;
- if( bl->type == BL_NPC && vd->class_ == FLAG_CLASS ) {
- p.accessory = status->get_emblem_id(bl);
- p.accessory2 = GetWord(g_id, 1);
- p.accessory3 = GetWord(g_id, 0);
- }
- p.headpalette = vd->hair_color;
- p.bodypalette = vd->cloth_color;
- p.headDir = (sd)? sd->head_dir : 0;
-
- p.robe = vd->robe;
-
- p.GUID = g_id;
- p.GEmblemVer = status->get_emblem_id(bl);
- p.honor = (sd) ? sd->status.manner : 0;
- p.virtue = (sc) ? sc->opt3 : 0;
- p.isPKModeON = (sd && sd->status.karma) ? 1 : 0;
- p.sex = vd->sex;
- WBUFPOS(&p.PosDir[0],0,bl->x,bl->y,unit->getdir(bl));
- p.xSize = p.ySize = (sd) ? 5 : 0;
- p.state = vd->dead_sit;
- p.clevel = clif_setlevel(bl);
-
- p.font = (sd) ? sd->status.font : 0;
-
-
- if (battle_config.show_monster_hp_bar && bl->type == BL_MOB && (status->get_status_data(bl)->hp) < (status->get_status_data(bl)->max_hp)) {
- const struct mob_data *md = ((const TBL_MOB *)BL_UCCAST_(bl));
- p.maxHP = (status->get_status_data(bl)->max_hp);
- p.HP = (status->get_status_data(bl)->hp);
- p.isBoss = (md->spawn !=
-# 1049 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 1049 "../../../server-code/src/map/clif.c"
- && md->spawn->state.boss) ? 1 : 0;
- } else {
- p.maxHP = -1;
- p.HP = -1;
- p.isBoss = 0;
- }
-
-
-
-
-
-
- clif->send(&p,sizeof(p),tsd?&tsd->bl:bl,target);
-
- if( disguised(bl) ) {
-
- p.objecttype = pc->db_checkid(status->get_viewdata(bl)->class_) ? 0x0 : 0x5;
- p.GID = -bl->id;
-
-
-
- clif->send(&p,sizeof(p),bl,SELF);
- }
-
-}
-
-void clif_spawn_unit2(struct block_list* bl, enum send_target target) {
-# 1117 "../../../server-code/src/map/clif.c"
- return;
-
-}
-void clif_spawn_unit(struct block_list* bl, enum send_target target) {
- struct map_session_data* sd;
- struct status_change* sc = status->get_sc(bl);
- struct view_data* vd = status->get_viewdata(bl);
- struct packet_spawn_unit p;
- int g_id = status->get_guild_id(bl);
-
- do { if (((void)(bl),
-# 1127 "../../../server-code/src/map/clif.c" 3 4
-0
-# 1127 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-# 1136 "../../../server-code/src/map/clif.c"
- sd = ( ((bl) == (struct block_list *)
-# 1136 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 1136 "../../../server-code/src/map/clif.c"
- || (bl)->type != (BL_PC)) ? (TBL_PC *)
-# 1136 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 1136 "../../../server-code/src/map/clif.c"
- : (TBL_PC *)(bl) );
-
- p.PacketType = spawn_unitType;
-
- p.PacketLength = sizeof(p);
- p.objecttype = clif_bl_type(bl);
-
-
- p.AID = bl->id;
- p.GID = (sd) ? sd->status.char_id : 0;
-
-
-
- p.speed = status->get_speed(bl);
- p.bodyState = (sc) ? sc->opt1 : 0;
- p.healthState = (sc) ? sc->opt2 : 0;
- p.effectState = (sc !=
-# 1152 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 1152 "../../../server-code/src/map/clif.c"
- ) ? sc->option : ((bl->type == BL_NPC) ? ((const TBL_NPC *)BL_UCCAST_(bl))->option : 0);
- p.job = vd->class_;
- p.head = vd->hair_style;
- p.weapon = vd->weapon;
- p.accessory = vd->head_bottom;
-
-
-
- p.accessory2 = vd->head_top;
- p.accessory3 = vd->head_mid;
- if( bl->type == BL_NPC && vd->class_ == FLAG_CLASS ) {
- p.accessory = status->get_emblem_id(bl);
- p.accessory2 = GetWord(g_id, 1);
- p.accessory3 = GetWord(g_id, 0);
- }
- p.headpalette = vd->hair_color;
- p.bodypalette = vd->cloth_color;
- p.headDir = (sd)? sd->head_dir : 0;
-
- p.robe = vd->robe;
-
- p.GUID = g_id;
- p.GEmblemVer = status->get_emblem_id(bl);
- p.honor = (sd) ? sd->status.manner : 0;
- p.virtue = (sc) ? sc->opt3 : 0;
- p.isPKModeON = (sd && sd->status.karma) ? 1 : 0;
- p.sex = vd->sex;
- WBUFPOS(&p.PosDir[0],0,bl->x,bl->y,unit->getdir(bl));
- p.xSize = p.ySize = (sd) ? 5 : 0;
- p.clevel = clif_setlevel(bl);
-
- p.font = (sd) ? sd->status.font : 0;
-
-
- if (battle_config.show_monster_hp_bar && bl->type == BL_MOB && (status->get_status_data(bl)->hp) < (status->get_status_data(bl)->max_hp)) {
- const struct mob_data *md = ((const TBL_MOB *)BL_UCCAST_(bl));
- p.maxHP = (status->get_status_data(bl)->max_hp);
- p.HP = (status->get_status_data(bl)->hp);
- p.isBoss = (md->spawn !=
-# 1190 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 1190 "../../../server-code/src/map/clif.c"
- && md->spawn->state.boss) ? 1 : 0;
- } else {
- p.maxHP = -1;
- p.HP = -1;
- p.isBoss = 0;
- }
-
-
-
-
-
- if( disguised(bl) ) {
- do { if (((void)(sd),
-# 1202 "../../../server-code/src/map/clif.c" 3 4
- 0
-# 1202 "../../../server-code/src/map/clif.c"
- )) return; } while(0);
- if( sd->status.class_ != sd->disguise )
- clif->send(&p,sizeof(p),bl,target);
-
- p.objecttype = pc->db_checkid(status->get_viewdata(bl)->class_) ? 0x0 : 0x5;
- p.GID = -bl->id;
-
-
-
- clif->send(&p,sizeof(p),bl,SELF);
- } else
- clif->send(&p,sizeof(p),bl,target);
-
-}
-
-
-
-
-void clif_set_unit_walking(struct block_list* bl, struct map_session_data *tsd, struct unit_data* ud, enum send_target target) {
- struct map_session_data* sd;
- struct status_change* sc = status->get_sc(bl);
- struct view_data* vd = status->get_viewdata(bl);
- struct packet_unit_walking p;
- int g_id = status->get_guild_id(bl);
-
- do { if (((void)(bl),
-# 1227 "../../../server-code/src/map/clif.c" 3 4
-0
-# 1227 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- do { if (((void)(ud),
-# 1228 "../../../server-code/src/map/clif.c" 3 4
-0
-# 1228 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- sd = ( ((bl) == (struct block_list *)
-# 1230 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 1230 "../../../server-code/src/map/clif.c"
- || (bl)->type != (BL_PC)) ? (TBL_PC *)
-# 1230 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 1230 "../../../server-code/src/map/clif.c"
- : (TBL_PC *)(bl) );
-
- p.PacketType = unit_walkingType;
-
- p.PacketLength = sizeof(p);
-
-
- p.objecttype = clif_bl_type(bl);
-
-
- p.AID = bl->id;
- p.GID = (tsd) ? tsd->status.char_id : 0;
-
-
-
- p.speed = status->get_speed(bl);
- p.bodyState = (sc) ? sc->opt1 : 0;
- p.healthState = (sc) ? sc->opt2 : 0;
- p.effectState = (sc !=
-# 1248 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 1248 "../../../server-code/src/map/clif.c"
- ) ? sc->option : ((bl->type == BL_NPC) ? ((const TBL_NPC *)BL_UCCAST_(bl))->option : 0);
- p.job = vd->class_;
- p.head = vd->hair_style;
- p.weapon = vd->weapon;
- p.accessory = vd->head_bottom;
- p.moveStartTime = (unsigned int)timer->gettick();
-
-
-
- p.accessory2 = vd->head_top;
- p.accessory3 = vd->head_mid;
- p.headpalette = vd->hair_color;
- p.bodypalette = vd->cloth_color;
- p.headDir = (sd)? sd->head_dir : 0;
-
- p.robe = vd->robe;
-
- p.GUID = g_id;
- p.GEmblemVer = status->get_emblem_id(bl);
- p.honor = (sd) ? sd->status.manner : 0;
- p.virtue = (sc) ? sc->opt3 : 0;
- p.isPKModeON = (sd && sd->status.karma) ? 1 : 0;
- p.sex = vd->sex;
- WBUFPOS2(&p.MoveData[0],0,bl->x,bl->y,ud->to_x,ud->to_y,8,8);
- p.xSize = p.ySize = (sd) ? 5 : 0;
- p.clevel = clif_setlevel(bl);
-
- p.font = (sd) ? sd->status.font : 0;
-
-
- if (battle_config.show_monster_hp_bar && bl->type == BL_MOB && (status->get_status_data(bl)->hp) < (status->get_status_data(bl)->max_hp)) {
- const struct mob_data *md = ((const TBL_MOB *)BL_UCCAST_(bl));
- p.maxHP = (status->get_status_data(bl)->max_hp);
- p.HP = (status->get_status_data(bl)->hp);
- p.isBoss = (md->spawn !=
-# 1282 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 1282 "../../../server-code/src/map/clif.c"
- && md->spawn->state.boss) ? 1 : 0;
- } else {
- p.maxHP = -1;
- p.HP = -1;
- p.isBoss = 0;
- }
-
-
-
-
-
-
- clif->send(&p,sizeof(p),tsd?&tsd->bl:bl,target);
-
- if( disguised(bl) ) {
-
- p.objecttype = pc->db_checkid(status->get_viewdata(bl)->class_) ? 0x0 : 0x5;
- p.GID = -bl->id;
-
-
-
- clif->send(&p,sizeof(p),bl,SELF);
- }
-}
-
-
-
-
-
-void clif_class_change(struct block_list *bl, int class_, int type)
-{
- do { if (((void)(bl),
-# 1313 "../../../server-code/src/map/clif.c" 3 4
-0
-# 1313 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- if(!pc->db_checkid(class_))
- {
- unsigned char buf[16];
- WBUFW(buf,0)=0x1b0;
- WBUFL(buf,2)=bl->id;
- WBUFB(buf,6)=type;
- WBUFL(buf,7)=class_;
- clif->send(buf,packet_db[0x1b0].len,bl,AREA);
- }
-}
-
-
-
-
-void clif_spiritball_single(int fd, struct map_session_data *sd) {
- do { if (((void)(sd),
-# 1330 "../../../server-code/src/map/clif.c" 3 4
-0
-# 1330 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- WFIFOHEAD(fd, packet_db[0x1e1].len);
- WFIFOW(fd,0)=0x1e1;
- WFIFOL(fd,2)=sd->bl.id;
- WFIFOW(fd,6)=sd->spiritball;
- WFIFOSET(fd, packet_db[0x1e1].len);
-}
-
-
-
-
-void clif_charm_single(int fd, struct map_session_data *sd)
-{
- do { if (((void)(sd),
-# 1343 "../../../server-code/src/map/clif.c" 3 4
-0
-# 1343 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- WFIFOHEAD(fd, packet_db[0x08cf].len);
- WFIFOW(fd,0) = 0x08cf;
- WFIFOL(fd,2) = sd->bl.id;
- WFIFOW(fd,6) = sd->charm_type;
- WFIFOW(fd,8) = sd->charm_count;
- WFIFOSET(fd, packet_db[0x08cf].len);
-}
-
-
-
-
-
-void clif_weather_check(struct map_session_data *sd) {
- int16 m;
- int fd;
-
- do { if (((void)(sd),
-# 1360 "../../../server-code/src/map/clif.c" 3 4
-0
-# 1360 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- m = sd->bl.m;
- fd = sd->fd;
- if (map->list[m].flag.snow)
- clif->specialeffect_single(&sd->bl, 162, fd);
- if (map->list[m].flag.clouds)
- clif->specialeffect_single(&sd->bl, 233, fd);
- if (map->list[m].flag.clouds2)
- clif->specialeffect_single(&sd->bl, 516, fd);
- if (map->list[m].flag.fog)
- clif->specialeffect_single(&sd->bl, 515, fd);
- if (map->list[m].flag.fireworks) {
- clif->specialeffect_single(&sd->bl, 297, fd);
- clif->specialeffect_single(&sd->bl, 299, fd);
- clif->specialeffect_single(&sd->bl, 301, fd);
- }
- if (map->list[m].flag.sakura)
- clif->specialeffect_single(&sd->bl, 163, fd);
- if (map->list[m].flag.leaves)
- clif->specialeffect_single(&sd->bl, 333, fd);
-}
-
-
-
-void clif_weather(int16 m)
-{
- struct s_mapiterator* iter;
- struct map_session_data *sd=
-# 1387 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 1387 "../../../server-code/src/map/clif.c"
- ;
-
- iter = (mapit->alloc(MAPIT_NORMAL,BL_PC));
- for (sd = ((TBL_PC *)BL_UCAST_(mapit->first(iter))); mapit->exists(iter); sd = ((TBL_PC *)BL_UCAST_(mapit->next(iter)))) {
- if( sd->bl.m == m )
- clif->weather_check(sd);
- }
- mapit->free(iter);
-}
-
-
-
-
-# 1399 "../../../server-code/src/map/clif.c" 3 4
-_Bool
-# 1399 "../../../server-code/src/map/clif.c"
- clif_spawn(struct block_list *bl)
-{
- struct view_data *vd;
-
- do { if (((void)(bl),
-# 1403 "../../../server-code/src/map/clif.c" 3 4
-0
-# 1403 "../../../server-code/src/map/clif.c"
-)) return(
-# 1403 "../../../server-code/src/map/clif.c" 3 4
-0
-# 1403 "../../../server-code/src/map/clif.c"
-); } while(0);
- vd = status->get_viewdata(bl);
- if( !vd )
- return
-# 1406 "../../../server-code/src/map/clif.c" 3 4
- 0
-# 1406 "../../../server-code/src/map/clif.c"
- ;
-
- if (vd->class_ == INVISIBLE_CLASS)
- return
-# 1409 "../../../server-code/src/map/clif.c" 3 4
- 1
-# 1409 "../../../server-code/src/map/clif.c"
- ;
-
- if (bl->type == BL_NPC) {
- struct npc_data *nd = ((TBL_NPC *)BL_UCAST_(bl));
- if (nd->chat_id == 0 && (nd->option&OPTION_INVISIBLE))
- return
-# 1414 "../../../server-code/src/map/clif.c" 3 4
- 1
-# 1414 "../../../server-code/src/map/clif.c"
- ;
- }
-
- clif->spawn_unit(bl,AREA_WOS);
-
- if (vd->cloth_color)
- clif->refreshlook(bl,bl->id,LOOK_CLOTHES_COLOR,vd->cloth_color,AREA_WOS);
- if (vd->body_style)
- clif->refreshlook(bl,bl->id,LOOK_BODY2,vd->body_style,AREA_WOS);
-
- switch (bl->type) {
- case BL_PC:
- {
- struct map_session_data *sd = ((TBL_PC *)BL_UCAST_(bl));
- int i;
- if (sd->spiritball > 0)
- clif->spiritball(&sd->bl);
- if (sd->state.size == SZ_BIG)
- clif->specialeffect(bl,423,AREA);
- else if (sd->state.size == SZ_MEDIUM)
- clif->specialeffect(bl,421,AREA);
- if (sd->bg_id != 0 && map->list[sd->bl.m].flag.battleground)
- clif->sendbgemblem_area(sd);
- for (i = 0; i < sd->sc_display_count; i++) {
- clif->sc_load(&sd->bl, sd->bl.id,AREA,status->dbs->IconChangeTable[sd->sc_display[i]->type],sd->sc_display[i]->val1,sd->sc_display[i]->val2,sd->sc_display[i]->val3);
- }
- if (sd->charm_type != CHARM_TYPE_NONE && sd->charm_count > 0)
- clif->spiritcharm(sd);
- if (sd->status.robe)
- clif->refreshlook(bl,bl->id,LOOK_ROBE,sd->status.robe,AREA);
- }
- break;
- case BL_MOB:
- {
- struct mob_data *md = ((TBL_MOB *)BL_UCAST_(bl));
- if (md->special_state.size==SZ_BIG)
- clif->specialeffect(&md->bl,423,AREA);
- else if (md->special_state.size==SZ_MEDIUM)
- clif->specialeffect(&md->bl,421,AREA);
- }
- break;
- case BL_NPC:
- {
- struct npc_data *nd = ((TBL_NPC *)BL_UCAST_(bl));
- if (nd->size == SZ_BIG)
- clif->specialeffect(&nd->bl,423,AREA);
- else if (nd->size == SZ_MEDIUM)
- clif->specialeffect(&nd->bl,421,AREA);
- }
- break;
- case BL_PET:
- if (vd->head_bottom)
- clif->send_petdata(
-# 1466 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 1466 "../../../server-code/src/map/clif.c"
- , ((TBL_PET *)BL_UCAST_(bl)), 3, vd->head_bottom);
- break;
- }
- return
-# 1469 "../../../server-code/src/map/clif.c" 3 4
- 1
-# 1469 "../../../server-code/src/map/clif.c"
- ;
-}
-
-
-
-void clif_hominfo(struct map_session_data *sd, struct homun_data *hd, int flag) {
- struct status_data *hstatus;
- unsigned char buf[128];
- enum homun_type htype;
-
- do { if (((void)(sd),
-# 1479 "../../../server-code/src/map/clif.c" 3 4
-0
-# 1479 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- do { if (((void)(hd),
-# 1480 "../../../server-code/src/map/clif.c" 3 4
-0
-# 1480 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- hstatus = &hd->battle_status;
- htype = homun->class2type(hd->homunculus.class_);
-
- memset(buf,0,packet_db[0x22e].len);
- WBUFW(buf,0)=0x22e;
- memcpy(WBUFP(buf,2),hd->homunculus.name,(23 + 1));
-
- WBUFB(buf,26)=(battle_config.hom_rename && hd->homunculus.rename_flag ? 0x1 : 0x0) | (hd->homunculus.vaporize == HOM_ST_REST ? 0x2 : 0) | (hd->homunculus.hp > 0 ? 0x4 : 0);
- WBUFW(buf,27)=hd->homunculus.level;
- WBUFW(buf,29)=hd->homunculus.hunger;
- WBUFW(buf,31)=(unsigned short) (hd->homunculus.intimacy / 100) ;
- WBUFW(buf,33)=0;
-
- WBUFW(buf,35) = (((hstatus->rhw.atk2) >= (
-# 1495 "../../../server-code/src/map/clif.c" 3 4
- (32767)
-# 1495 "../../../server-code/src/map/clif.c"
- )) ? (
-# 1495 "../../../server-code/src/map/clif.c" 3 4
- (32767)
-# 1495 "../../../server-code/src/map/clif.c"
- ) : ((hstatus->rhw.atk2) <= (0)) ? (0) : (hstatus->rhw.atk2));
-
-
-
- WBUFW(buf,37)=(((hstatus->matk_max) >= (
-# 1499 "../../../server-code/src/map/clif.c" 3 4
- (32767)
-# 1499 "../../../server-code/src/map/clif.c"
- )) ? (
-# 1499 "../../../server-code/src/map/clif.c" 3 4
- (32767)
-# 1499 "../../../server-code/src/map/clif.c"
- ) : ((hstatus->matk_max) <= (0)) ? (0) : (hstatus->matk_max));
- WBUFW(buf,39)=hstatus->hit;
- if (battle_config.hom_setting&0x10)
- WBUFW(buf,41)=hstatus->luk/3 + 1;
- else
- WBUFW(buf,41)=hstatus->cri/10;
-
- WBUFW(buf,43) = hstatus->def + hstatus->def2;
- WBUFW(buf,45) = hstatus->mdef + hstatus->mdef2;
-
-
-
-
- WBUFW(buf,47)=hstatus->flee;
- WBUFW(buf,49)=(flag)?0:hstatus->amotion;
- if (hstatus->max_hp >
-# 1514 "../../../server-code/src/map/clif.c" 3 4
- (32767)
-# 1514 "../../../server-code/src/map/clif.c"
- ) {
- WBUFW(buf,51) = hstatus->hp/(hstatus->max_hp/100);
- WBUFW(buf,53) = 100;
- } else {
- WBUFW(buf,51)=hstatus->hp;
- WBUFW(buf,53)=hstatus->max_hp;
- }
- if (hstatus->max_sp >
-# 1521 "../../../server-code/src/map/clif.c" 3 4
- (32767)
-# 1521 "../../../server-code/src/map/clif.c"
- ) {
- WBUFW(buf,55) = hstatus->sp/(hstatus->max_sp/100);
- WBUFW(buf,57) = 100;
- } else {
- WBUFW(buf,55)=hstatus->sp;
- WBUFW(buf,57)=hstatus->max_sp;
- }
- WBUFL(buf,59)=hd->homunculus.exp;
- WBUFL(buf,63)=hd->exp_next;
- switch( htype ) {
- case HT_REG:
- case HT_EVO:
- if( hd->homunculus.level >= battle_config.hom_max_level )
- WBUFL(buf,63)=0;
- break;
- case HT_S:
- if( hd->homunculus.level >= battle_config.hom_S_max_level )
- WBUFL(buf,63)=0;
- break;
- }
- WBUFW(buf,67)=hd->homunculus.skillpts;
- WBUFW(buf,69)=(status->get_status_data(&hd->bl)->rhw.range);
- clif->send(buf,packet_db[0x22e].len,&sd->bl,SELF);
-}
-# 1556 "../../../server-code/src/map/clif.c"
-void clif_send_homdata(struct map_session_data *sd, int state, int param)
-{
- int fd;
-
- do { if (((void)(sd),
-# 1560 "../../../server-code/src/map/clif.c" 3 4
-0
-# 1560 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- do { if (((void)(sd->hd),
-# 1561 "../../../server-code/src/map/clif.c" 3 4
-0
-# 1561 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- fd = sd->fd;
- if ( (state == SP_INTIMATE) && (param >= 910) && (sd->hd->homunculus.class_ == sd->hd->homunculusDB->evo_class) )
- homun->calc_skilltree(sd->hd, 0);
-
- WFIFOHEAD(fd, packet_db[0x230].len);
- WFIFOW(fd,0)=0x230;
- WFIFOB(fd,2)=0;
- WFIFOB(fd,3)=state;
- WFIFOL(fd,4)=sd->hd->bl.id;
- WFIFOL(fd,8)=param;
- WFIFOSET(fd,packet_db[0x230].len);
-}
-
-
-void clif_homskillinfoblock(struct map_session_data *sd) {
- struct homun_data *hd;
- int fd;
- int i,j;
- int len=4;
- do { if (((void)(sd),
-# 1582 "../../../server-code/src/map/clif.c" 3 4
-0
-# 1582 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- fd = sd->fd;
- hd = sd->hd;
-
- if ( !hd )
- return;
-
- WFIFOHEAD(fd, 4+37*43);
- WFIFOW(fd,0)=0x235;
-
- for ( i = 0; i < 43; i++ ) {
- int id = hd->homunculus.hskill[i].id;
- if ( id != 0 ) {
- j = id - 8001;
- WFIFOW(fd,len) = id;
- WFIFOW(fd,len + 2) = skill->get_inf(id);
- WFIFOW(fd,len + 4) = 0;
- WFIFOW(fd,len + 6) = hd->homunculus.hskill[j].lv;
- if ( hd->homunculus.hskill[j].lv ) {
- WFIFOW(fd,len + 8) = skill->get_sp(id, hd->homunculus.hskill[j].lv);
- WFIFOW(fd,len + 10) = skill->get_range2(&sd->hd->bl, id, hd->homunculus.hskill[j].lv);
- } else {
- WFIFOW(fd,len + 8) = 0;
- WFIFOW(fd,len + 10) = 0;
- }
- (strlib->safestrncpy_((WFIFOP(fd, len + 12)),(skill->get_name(id)),((23 + 1))));
- WFIFOB(fd, len + 36) = (hd->homunculus.hskill[j].lv < homun->skill_tree_get_max(id, hd->homunculus.class_)) ? 1 : 0;
- len += 37;
- }
- }
- WFIFOW(fd,2)=len;
- WFIFOSET(fd,len);
-
- return;
-}
-
-void clif_homskillup(struct map_session_data *sd, uint16 skill_id) {
- struct homun_data *hd;
- int fd, idx;
- do { if (((void)(sd),
-# 1622 "../../../server-code/src/map/clif.c" 3 4
-0
-# 1622 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- do { if (((void)(sd->hd),
-# 1623 "../../../server-code/src/map/clif.c" 3 4
-0
-# 1623 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- idx = skill_id - 8001;
-
- fd=sd->fd;
- hd=sd->hd;
-
- WFIFOHEAD(fd, packet_db[0x239].len);
- WFIFOW(fd,0) = 0x239;
- WFIFOW(fd,2) = skill_id;
- WFIFOW(fd,4) = hd->homunculus.hskill[idx].lv;
- WFIFOW(fd,6) = skill->get_sp(skill_id,hd->homunculus.hskill[idx].lv);
- WFIFOW(fd,8) = skill->get_range2(&hd->bl, skill_id,hd->homunculus.hskill[idx].lv);
- WFIFOB(fd,10) = (hd->homunculus.hskill[idx].lv < skill->get_max(hd->homunculus.hskill[idx].id)) ? 1 : 0;
- WFIFOSET(fd,packet_db[0x239].len);
-}
-
-void clif_hom_food(struct map_session_data *sd,int foodid,int fail)
-{
- int fd;
- do { if (((void)(sd),
-# 1642 "../../../server-code/src/map/clif.c" 3 4
-0
-# 1642 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- fd = sd->fd;
- WFIFOHEAD(fd,packet_db[0x22f].len);
- WFIFOW(fd,0)=0x22f;
- WFIFOB(fd,2)=fail;
- WFIFOW(fd,3)=foodid;
- WFIFOSET(fd,packet_db[0x22f].len);
-
- return;
-}
-
-
-
-void clif_walkok(struct map_session_data *sd)
-{
- int fd;
-
- do { if (((void)(sd),
-# 1660 "../../../server-code/src/map/clif.c" 3 4
-0
-# 1660 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- fd = sd->fd;
- WFIFOHEAD(fd, packet_db[0x87].len);
- WFIFOW(fd,0)=0x87;
- WFIFOL(fd,2)=(unsigned int)timer->gettick();
- WFIFOPOS2(fd,6,sd->bl.x,sd->bl.y,sd->ud.to_x,sd->ud.to_y,8,8);
- WFIFOSET(fd,packet_db[0x87].len);
-}
-
-void clif_move2(struct block_list *bl, struct view_data *vd, struct unit_data *ud) {
-
- struct status_change *sc =
-# 1671 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 1671 "../../../server-code/src/map/clif.c"
- ;
-
-
- do { if (((void)(bl),
-# 1674 "../../../server-code/src/map/clif.c" 3 4
-0
-# 1674 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- do { if (((void)(vd),
-# 1675 "../../../server-code/src/map/clif.c" 3 4
-0
-# 1675 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- do { if (((void)(ud),
-# 1676 "../../../server-code/src/map/clif.c" 3 4
-0
-# 1676 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
-
- if( (sc = status->get_sc(bl)) && sc->option&(OPTION_HIDE|OPTION_CLOAK|OPTION_INVISIBLE|OPTION_CHASEWALK) )
- clif->ally_only =
-# 1680 "../../../server-code/src/map/clif.c" 3 4
- 1
-# 1680 "../../../server-code/src/map/clif.c"
- ;
-
-
- clif->set_unit_walking(bl,
-# 1683 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 1683 "../../../server-code/src/map/clif.c"
- ,ud,AREA_WOS);
-
- if(vd->cloth_color)
- clif->refreshlook(bl,bl->id,LOOK_CLOTHES_COLOR,vd->cloth_color,AREA_WOS);
- if (vd->body_style)
- clif->refreshlook(bl,bl->id,LOOK_BODY2,vd->body_style,AREA_WOS);
-
- switch(bl->type) {
- case BL_PC:
- {
- struct map_session_data *sd = ((TBL_PC *)BL_UCAST_(bl));
-
- if(sd->state.size==SZ_BIG)
- clif->specialeffect(&sd->bl,423,AREA);
- else if(sd->state.size==SZ_MEDIUM)
- clif->specialeffect(&sd->bl,421,AREA);
- }
- break;
- case BL_MOB:
- {
- struct mob_data *md = ((TBL_MOB *)BL_UCAST_(bl));
- if (md->special_state.size == SZ_BIG)
- clif->specialeffect(&md->bl,423,AREA);
- else if (md->special_state.size == SZ_MEDIUM)
- clif->specialeffect(&md->bl,421,AREA);
- }
- break;
- case BL_PET:
- if( vd->head_bottom )
- clif->send_petdata(
-# 1712 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 1712 "../../../server-code/src/map/clif.c"
- , ((TBL_PET *)BL_UCAST_(bl)), 3, vd->head_bottom);
- break;
- }
-
- clif->ally_only =
-# 1716 "../../../server-code/src/map/clif.c" 3 4
- 0
-# 1716 "../../../server-code/src/map/clif.c"
- ;
-
-}
-
-
-
-
-void clif_move(struct unit_data *ud)
-{
- unsigned char buf[16];
- struct view_data *vd;
- struct block_list *bl;
-
- struct status_change *sc =
-# 1729 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 1729 "../../../server-code/src/map/clif.c"
- ;
-
-
- do { if (((void)(ud),
-# 1732 "../../../server-code/src/map/clif.c" 3 4
-0
-# 1732 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- bl = ud->bl;
- do { if (((void)(bl),
-# 1734 "../../../server-code/src/map/clif.c" 3 4
-0
-# 1734 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- vd = status->get_viewdata(bl);
- if (!vd || vd->class_ == INVISIBLE_CLASS)
- return;
-
- if (bl->type == BL_NPC) {
-
- struct npc_data *nd = ((TBL_NPC *)BL_UCAST_(bl));
- if (nd->chat_id == 0 && (nd->option&OPTION_INVISIBLE))
- return;
- }
-
- if (ud->state.speed_changed) {
-
-
- ud->state.speed_changed = 0;
- clif->move2(bl, vd, ud);
- return;
- }
-
- if( (sc = status->get_sc(bl)) && sc->option&(OPTION_HIDE|OPTION_CLOAK|OPTION_INVISIBLE) )
- clif->ally_only =
-# 1755 "../../../server-code/src/map/clif.c" 3 4
- 1
-# 1755 "../../../server-code/src/map/clif.c"
- ;
-
-
- WBUFW(buf,0)=0x86;
- WBUFL(buf,2)=bl->id;
- WBUFPOS2(buf,6,bl->x,bl->y,ud->to_x,ud->to_y,8,8);
- WBUFL(buf,12)=(unsigned int)timer->gettick();
-
- clif->send(buf, packet_db[0x86].len, bl, AREA_WOS);
-
- if (disguised(bl)) {
- WBUFL(buf,2)=-bl->id;
- clif->send(buf, packet_db[0x86].len, bl, SELF);
- }
-
- clif->ally_only =
-# 1770 "../../../server-code/src/map/clif.c" 3 4
- 0
-# 1770 "../../../server-code/src/map/clif.c"
- ;
-
-}
-
-
-
-
-int clif_delayquit(int tid, int64 tick, int id, intptr_t data) {
- struct map_session_data *sd =
-# 1778 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 1778 "../../../server-code/src/map/clif.c"
- ;
-
-
- if ((sd = map->id2sd(id)) !=
-# 1781 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 1781 "../../../server-code/src/map/clif.c"
- && sd->fd == 0)
- map->quit(sd);
- return 0;
-}
-
-
-
-
-void clif_quitsave(int fd, struct map_session_data *sd) {
- do { if (((void)(sd),
-# 1790 "../../../server-code/src/map/clif.c" 3 4
-0
-# 1790 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- if (!battle_config.prevent_logout ||
- ((timer->gettick())-(sd->canlog_tick)) > battle_config.prevent_logout)
- map->quit(sd);
- else if (sd->fd) {
-
-
- sockt->session[sd->fd]->session_data =
-# 1797 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 1797 "../../../server-code/src/map/clif.c"
- ;
- sd->fd = 0;
- timer->add(timer->gettick() + 10000, clif->delayquit, sd->bl.id, 0);
- }
-}
-
-
-
-void clif_changemap(struct map_session_data *sd, short m, int x, int y) {
- int fd;
- do { if (((void)(sd),
-# 1807 "../../../server-code/src/map/clif.c" 3 4
-0
-# 1807 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- fd = sd->fd;
-
- WFIFOHEAD(fd,packet_db[0x91].len);
- WFIFOW(fd,0) = 0x91;
- mapindex->getmapname_ext(map->list[m].custom_name ? map->list[map->list[m].instance_src_map].name : map->list[m].name, WFIFOP(fd,2));
- WFIFOW(fd,18) = x;
- WFIFOW(fd,20) = y;
- WFIFOSET(fd,packet_db[0x91].len);
-}
-
-
-
-void clif_changemapserver(struct map_session_data* sd, unsigned short map_index, int x, int y, uint32 ip, uint16 port) {
- int fd;
- do { if (((void)(sd),
-# 1822 "../../../server-code/src/map/clif.c" 3 4
-0
-# 1822 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- fd = sd->fd;
-
- WFIFOHEAD(fd,packet_db[0x92].len);
- WFIFOW(fd,0) = 0x92;
- mapindex->getmapname_ext(mapindex->id2name((map_index),"../../../server-code/src/map/clif.c", 1827, __func__), WFIFOP(fd,2));
- WFIFOW(fd,18) = x;
- WFIFOW(fd,20) = y;
- WFIFOL(fd,22) = htonl(ip);
- WFIFOW(fd,26) = sockt->ntows(htons(port));
- WFIFOSET(fd,packet_db[0x92].len);
-}
-
-void clif_blown(struct block_list *bl)
-{
-
- do { if (((void)(bl),
-# 1838 "../../../server-code/src/map/clif.c" 3 4
-0
-# 1838 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- clif->fixpos(bl);
- clif->slide(bl, bl->x, bl->y);
-}
-
-
-
-
-
-void clif_fixpos(struct block_list *bl) {
- unsigned char buf[10];
-
- do { if (((void)(bl),
-# 1850 "../../../server-code/src/map/clif.c" 3 4
-0
-# 1850 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- WBUFW(buf,0) = 0x88;
- WBUFL(buf,2) = bl->id;
- WBUFW(buf,6) = bl->x;
- WBUFW(buf,8) = bl->y;
- clif->send(buf, packet_db[0x88].len, bl, AREA);
-
- if( disguised(bl) ) {
- WBUFL(buf,2) = -bl->id;
- clif->send(buf, packet_db[0x88].len, bl, SELF);
- }
-}
-
-
-
-void clif_npcbuysell(struct map_session_data* sd, int id)
-{
- int fd;
-
- do { if (((void)(sd),
-# 1870 "../../../server-code/src/map/clif.c" 3 4
-0
-# 1870 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- fd=sd->fd;
- WFIFOHEAD(fd, packet_db[0xc4].len);
- WFIFOW(fd,0)=0xc4;
- WFIFOL(fd,2)=id;
- WFIFOSET(fd,packet_db[0xc4].len);
-}
-
-
-
-void clif_buylist(struct map_session_data *sd, struct npc_data *nd) {
- struct npc_item_list *shop =
-# 1882 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 1882 "../../../server-code/src/map/clif.c"
- ;
- unsigned short shop_size = 0;
- int fd,i,c;
-
- do { if (((void)(sd),
-# 1886 "../../../server-code/src/map/clif.c" 3 4
-0
-# 1886 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- do { if (((void)(nd),
-# 1887 "../../../server-code/src/map/clif.c" 3 4
-0
-# 1887 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- if( nd->subtype == SCRIPT ) {
- shop = nd->u.scr.shop->item;
- shop_size = nd->u.scr.shop->items;
- } else {
- shop = nd->u.shop.shop_item;
- shop_size = nd->u.shop.count;
- }
-
- fd = sd->fd;
-
- WFIFOHEAD(fd, 4 + shop_size * 11);
- WFIFOW(fd,0) = 0xc6;
-
- c = 0;
- for( i = 0; i < shop_size; i++ ) {
- if( shop[i].nameid ) {
- struct item_data* id = itemdb->exists(shop[i].nameid);
- int val = shop[i].value;
- if( id ==
-# 1907 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 1907 "../../../server-code/src/map/clif.c"
- )
- continue;
- WFIFOL(fd, 4+c*11) = val;
- WFIFOL(fd, 8+c*11) = pc->modifybuyvalue(sd,val);
- WFIFOB(fd,12+c*11) = itemtype(id->type);
- WFIFOW(fd,13+c*11) = ( id->view_id > 0 ) ? id->view_id : id->nameid;
- c++;
- }
- }
-
- WFIFOW(fd,2) = 4 + c*11;
- WFIFOSET(fd,WFIFOW(fd,2));
-}
-
-
-
-void clif_selllist(struct map_session_data *sd)
-{
- int fd,i,c=0,val;
-
- do { if (((void)(sd),
-# 1927 "../../../server-code/src/map/clif.c" 3 4
-0
-# 1927 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- fd=sd->fd;
- WFIFOHEAD(fd, 100 * 10 + 4);
- WFIFOW(fd,0)=0xc7;
- for( i = 0; i < 100; i++ )
- {
- if( sd->status.inventory[i].nameid > 0 && sd->inventory_data[i] )
- {
- if( !(itemdb->isrestricted((&sd->status.inventory[i]), (( (sd)->group->level )), 0, itemdb->cansell_sub)) )
- continue;
-
- if( sd->status.inventory[i].expire_time )
- continue;
-
- if( sd->status.inventory[i].bound && !( ( (((sd))->extra_temp_permissions&(PC_PERM_TRADE_BOUND)) != 0 || (((sd))->group->e_permissions&(PC_PERM_TRADE_BOUND)) != 0 ) ))
- continue;
-
- val=sd->inventory_data[i]->value_sell;
- if( val < 0 )
- continue;
- WFIFOW(fd,4+c*10)=i+2;
- WFIFOL(fd,6+c*10)=val;
- WFIFOL(fd,10+c*10)=pc->modifysellvalue(sd,val);
- c++;
- }
- }
- WFIFOW(fd,2)=c*10+4;
- WFIFOSET(fd,WFIFOW(fd,2));
-}
-# 1966 "../../../server-code/src/map/clif.c"
-void clif_scriptmes(struct map_session_data *sd, int npcid, const char *mes) {
- int fd = sd->fd;
- size_t slen;
-
- do { if (((void)(sd),
-# 1970 "../../../server-code/src/map/clif.c" 3 4
-0
-# 1970 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- do { if (((void)(mes),
-# 1971 "../../../server-code/src/map/clif.c" 3 4
-0
-# 1971 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- slen = strlen(mes) + 9;
-
- sd->state.dialog = 1;
-
- WFIFOHEAD(fd, slen);
- WFIFOW(fd,0)=0xb4;
- WFIFOW(fd,2)=slen;
- WFIFOL(fd,4)=npcid;
- memcpy(WFIFOP(fd,8), mes, slen-8);
- WFIFOSET(fd,WFIFOW(fd,2));
-}
-# 1994 "../../../server-code/src/map/clif.c"
-void clif_scriptnext(struct map_session_data *sd, int npcid)
-{
- int fd;
-
- do { if (((void)(sd),
-# 1998 "../../../server-code/src/map/clif.c" 3 4
-0
-# 1998 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- fd=sd->fd;
- WFIFOHEAD(fd, packet_db[0xb5].len);
- WFIFOW(fd,0)=0xb5;
- WFIFOL(fd,2)=npcid;
- WFIFOSET(fd,packet_db[0xb5].len);
-}
-# 2022 "../../../server-code/src/map/clif.c"
-void clif_scriptclose(struct map_session_data *sd, int npcid)
-{
- int fd;
-
- do { if (((void)(sd),
-# 2026 "../../../server-code/src/map/clif.c" 3 4
-0
-# 2026 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- fd=sd->fd;
- WFIFOHEAD(fd, packet_db[0xb6].len);
- WFIFOW(fd,0)=0xb6;
- WFIFOL(fd,2)=npcid;
- WFIFOSET(fd,packet_db[0xb6].len);
-}
-
-
-
-
-void clif_sendfakenpc(struct map_session_data *sd, int npcid) {
- unsigned char *buf;
- int fd;
-
- do { if (((void)(sd),
-# 2042 "../../../server-code/src/map/clif.c" 3 4
-0
-# 2042 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- fd = sd->fd;
- sd->state.using_fake_npc = 1;
- WFIFOHEAD(fd, packet_db[0x78].len);
- buf = WFIFOP(fd,0);
- memset(WBUFP(buf,0), 0, packet_db[0x78].len);
- WBUFW(buf,0)=0x78;
-
- WBUFB(buf,2) = 0;
- buf = WFIFOP(fd,1);
-
- WBUFL(buf,2)=npcid;
- WBUFW(buf,14)=111;
- WBUFPOS(buf,46,sd->bl.x,sd->bl.y,sd->ud.dir);
- WBUFB(buf,49)=5;
- WBUFB(buf,50)=5;
- WFIFOSET(fd, packet_db[0x78].len);
-}
-# 2081 "../../../server-code/src/map/clif.c"
-void clif_scriptmenu(struct map_session_data* sd, int npcid, const char* mes) {
- int fd;
- size_t slen;
- struct block_list *bl =
-# 2084 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 2084 "../../../server-code/src/map/clif.c"
- ;
-
- do { if (((void)(sd),
-# 2086 "../../../server-code/src/map/clif.c" 3 4
-0
-# 2086 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- do { if (((void)(mes),
-# 2087 "../../../server-code/src/map/clif.c" 3 4
-0
-# 2087 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- fd = sd->fd;
- slen = strlen(mes) + 9;
- if (!sd->state.using_fake_npc && (npcid == npc->fake_nd->bl.id || ((bl = map->id2bl(npcid)) !=
-# 2090 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 2090 "../../../server-code/src/map/clif.c"
- && (bl->m!=sd->bl.m ||
- bl->x<sd->bl.x-(battle->bc->area_size)-1 || bl->x>sd->bl.x+(battle->bc->area_size)+1 ||
- bl->y<sd->bl.y-(battle->bc->area_size)-1 || bl->y>sd->bl.y+(battle->bc->area_size)+1))))
- clif->sendfakenpc(sd, npcid);
-
- WFIFOHEAD(fd, slen);
- WFIFOW(fd,0)=0xb7;
- WFIFOW(fd,2)=slen;
- WFIFOL(fd,4)=npcid;
- memcpy(WFIFOP(fd,8), mes, slen-8);
- WFIFOSET(fd,WFIFOW(fd,2));
-}
-# 2114 "../../../server-code/src/map/clif.c"
-void clif_scriptinput(struct map_session_data *sd, int npcid) {
- int fd;
- struct block_list *bl =
-# 2116 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 2116 "../../../server-code/src/map/clif.c"
- ;
-
- do { if (((void)(sd),
-# 2118 "../../../server-code/src/map/clif.c" 3 4
-0
-# 2118 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- if (!sd->state.using_fake_npc && (npcid == npc->fake_nd->bl.id || ((bl = map->id2bl(npcid)) !=
-# 2120 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 2120 "../../../server-code/src/map/clif.c"
- && (bl->m!=sd->bl.m ||
- bl->x<sd->bl.x-(battle->bc->area_size)-1 || bl->x>sd->bl.x+(battle->bc->area_size)+1 ||
- bl->y<sd->bl.y-(battle->bc->area_size)-1 || bl->y>sd->bl.y+(battle->bc->area_size)+1))))
- clif->sendfakenpc(sd, npcid);
-
- fd=sd->fd;
- WFIFOHEAD(fd, packet_db[0x142].len);
- WFIFOW(fd,0)=0x142;
- WFIFOL(fd,2)=npcid;
- WFIFOSET(fd,packet_db[0x142].len);
-}
-# 2143 "../../../server-code/src/map/clif.c"
-void clif_scriptinputstr(struct map_session_data *sd, int npcid) {
- int fd;
- struct block_list *bl =
-# 2145 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 2145 "../../../server-code/src/map/clif.c"
- ;
-
- do { if (((void)(sd),
-# 2147 "../../../server-code/src/map/clif.c" 3 4
-0
-# 2147 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- if (!sd->state.using_fake_npc && (npcid == npc->fake_nd->bl.id || ((bl = map->id2bl(npcid)) !=
-# 2149 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 2149 "../../../server-code/src/map/clif.c"
- && (bl->m!=sd->bl.m ||
- bl->x<sd->bl.x-(battle->bc->area_size)-1 || bl->x>sd->bl.x+(battle->bc->area_size)+1 ||
- bl->y<sd->bl.y-(battle->bc->area_size)-1 || bl->y>sd->bl.y+(battle->bc->area_size)+1))))
- clif->sendfakenpc(sd, npcid);
-
- fd=sd->fd;
- WFIFOHEAD(fd, packet_db[0x1d4].len);
- WFIFOW(fd,0)=0x1d4;
- WFIFOL(fd,2)=npcid;
- WFIFOSET(fd,packet_db[0x1d4].len);
-}
-# 2171 "../../../server-code/src/map/clif.c"
-void clif_viewpoint(struct map_session_data *sd, int npc_id, int type, int x, int y, int id, int color)
-{
- int fd;
-
- do { if (((void)(sd),
-# 2175 "../../../server-code/src/map/clif.c" 3 4
-0
-# 2175 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- fd=sd->fd;
- WFIFOHEAD(fd, packet_db[0x144].len);
- WFIFOW(fd,0)=0x144;
- WFIFOL(fd,2)=npc_id;
- WFIFOL(fd,6)=type;
- WFIFOL(fd,10)=x;
- WFIFOL(fd,14)=y;
- WFIFOB(fd,18)=id;
- WFIFOL(fd,19)=color;
- WFIFOSET(fd,packet_db[0x144].len);
-}
-# 2198 "../../../server-code/src/map/clif.c"
-void clif_cutin(struct map_session_data* sd, const char* image, int type)
-{
- int fd;
-
- do { if (((void)(sd),
-# 2202 "../../../server-code/src/map/clif.c" 3 4
-0
-# 2202 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- fd=sd->fd;
- WFIFOHEAD(fd, packet_db[0x1b3].len);
- WFIFOW(fd,0)=0x1b3;
- strncpy(WFIFOP(fd,2),image,64);
- WFIFOB(fd,66)=type;
- WFIFOSET(fd,packet_db[0x1b3].len);
-}
-
-
-
-
-void clif_addcards(unsigned char* buf, struct item* item) {
- int i=0,j;
- do { if (((void)(buf),
-# 2217 "../../../server-code/src/map/clif.c" 3 4
-0
-# 2217 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- if( item ==
-# 2218 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 2218 "../../../server-code/src/map/clif.c"
- ) {
- WBUFW(buf,0) = 0;
- WBUFW(buf,2) = 0;
- WBUFW(buf,4) = 0;
- WBUFW(buf,6) = 0;
- return;
- }
- if( item->card[0] == ((short)0xFF00) ) {
- WBUFW(buf,0) = 0;
- WBUFW(buf,2) = 0;
- WBUFW(buf,4) = 0;
- WBUFW(buf,6) = item->card[3];
- return;
- }
- if( item->card[0] == 0x00FF || item->card[0] == 0x00FE ) {
- WBUFW(buf,0) = item->card[0];
- WBUFW(buf,2) = item->card[1];
- WBUFW(buf,4) = item->card[2];
- WBUFW(buf,6) = item->card[3];
- return;
- }
-
- if( 4 > 4 && (j = (itemdb->search(item->nameid)->slot)) > 4 )
- i = rnd()%(j-3);
-
-
- if( item->card[i] > 0 && (j=(itemdb->search(item->card[i])->view_id)) > 0 )
- WBUFW(buf,0) = j;
- else
- WBUFW(buf,0) = item->card[i];
-
- if( item->card[++i] > 0 && (j=(itemdb->search(item->card[i])->view_id)) > 0 )
- WBUFW(buf,2) = j;
- else
- WBUFW(buf,2) = item->card[i];
-
- if( item->card[++i] > 0 && (j=(itemdb->search(item->card[i])->view_id)) > 0 )
- WBUFW(buf,4) = j;
- else
- WBUFW(buf,4) = item->card[i];
-
- if( item->card[++i] > 0 && (j=(itemdb->search(item->card[i])->view_id)) > 0 )
- WBUFW(buf,6) = j;
- else
- WBUFW(buf,6) = item->card[i];
-}
-
-void clif_addcards2(unsigned short *cards, struct item* item) {
- int i=0,j;
- do { if (((void)(cards),
-# 2267 "../../../server-code/src/map/clif.c" 3 4
-0
-# 2267 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- if( item ==
-# 2268 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 2268 "../../../server-code/src/map/clif.c"
- ) {
- cards[0] = 0;
- cards[1] = 0;
- cards[2] = 0;
- cards[3] = 0;
- return;
- }
- if( item->card[0] == ((short)0xFF00) ) {
- cards[0] = 0;
- cards[1] = 0;
- cards[2] = 0;
- cards[3] = item->card[3];
- return;
- }
- if( item->card[0] == 0x00FF || item->card[0] == 0x00FE ) {
- cards[0] = item->card[0];
- cards[1] = item->card[1];
- cards[2] = item->card[2];
- cards[3] = item->card[3];
- return;
- }
-
- if( 4 > 4 && (j = (itemdb->search(item->nameid)->slot)) > 4 )
- i = rnd()%(j-3);
-
-
- if( item->card[i] > 0 && (j=(itemdb->search(item->card[i])->view_id)) > 0 )
- cards[0] = j;
- else
- cards[0] = item->card[i];
-
- if( item->card[++i] > 0 && (j=(itemdb->search(item->card[i])->view_id)) > 0 )
- cards[1] = j;
- else
- cards[1] = item->card[i];
-
- if( item->card[++i] > 0 && (j=(itemdb->search(item->card[i])->view_id)) > 0 )
- cards[2] = j;
- else
- cards[2] = item->card[i];
-
- if( item->card[++i] > 0 && (j=(itemdb->search(item->card[i])->view_id)) > 0 )
- cards[3] = j;
- else
- cards[3] = item->card[i];
-}
-# 2324 "../../../server-code/src/map/clif.c"
-void clif_add_random_options(unsigned char* buf, struct item* item)
-{
- int i;
- do { if (((void)(buf),
-# 2327 "../../../server-code/src/map/clif.c" 3 4
-0
-# 2327 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- for (i = 0; i < 5; i++){
- WBUFW(buf,i*5+0) = 0;
- WBUFW(buf,i*5+2) = 0;
- WBUFB(buf,i*5+4) = 0;
- }
-}
-
-
-
-
-
-
-
-void clif_additem(struct map_session_data *sd, int n, int amount, int fail) {
- struct packet_additem p;
- do { if (((void)(sd),
-# 2343 "../../../server-code/src/map/clif.c" 3 4
-0
-# 2343 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- if (!sockt->session_is_active(sd->fd))
- return;
-
- if( fail )
- memset(&p, 0, sizeof(p));
-
- p.PacketType = additemType;
- p.Index = n+2;
- p.count = amount;
-
- if( !fail ) {
-
- int i;
-
- if( n < 0 || n >= 100 || sd->status.inventory[n].nameid <=0 || sd->inventory_data[n] ==
-# 2359 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 2359 "../../../server-code/src/map/clif.c"
- )
- return;
-
- if (sd->inventory_data[n]->view_id > 0)
- p.nameid = sd->inventory_data[n]->view_id;
- else
- p.nameid = sd->status.inventory[n].nameid;
-
- p.IsIdentified = sd->status.inventory[n].identify ? 1 : 0;
- p.IsDamaged = sd->status.inventory[n].attribute ? 1 : 0;
- p.refiningLevel =sd->status.inventory[n].refine;
- clif->addcards2(&p.slot.card[0], &sd->status.inventory[n]);
- p.location = pc->equippoint(sd,n);
- p.type = itemtype(sd->inventory_data[n]->type);
-
- p.HireExpireDate = sd->status.inventory[n].expire_time;
-
-
-
-
-
- p.bindOnEquipType = sd->status.inventory[n].bound && !itemdb->isstackable2(sd->inventory_data[n]) ? 2 : sd->inventory_data[n]->flag.bindonequip ? 1 : 0;
-
-
- for (i=0; i<5; i++){
- p.option_data[i].index = 0;
- p.option_data[i].value = 0;
- p.option_data[i].param = 0;
- }
-
- }
- p.result = (unsigned char)fail;
-
- clif->send(&p,sizeof(p),&sd->bl,SELF);
-}
-
-
-
-void clif_dropitem(struct map_session_data *sd,int n,int amount)
-{
- int fd;
-
- do { if (((void)(sd),
-# 2401 "../../../server-code/src/map/clif.c" 3 4
-0
-# 2401 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- fd=sd->fd;
- WFIFOHEAD(fd, packet_db[0xaf].len);
- WFIFOW(fd,0)=0xaf;
- WFIFOW(fd,2)=n+2;
- WFIFOW(fd,4)=amount;
- WFIFOSET(fd,packet_db[0xaf].len);
-}
-
-
-
-
-void clif_delitem(struct map_session_data *sd,int n,int amount, short reason)
-{
-
-
-
- int fd;
-
- do { if (((void)(sd),
-# 2421 "../../../server-code/src/map/clif.c" 3 4
-0
-# 2421 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- fd=sd->fd;
-
- WFIFOHEAD(fd, packet_db[0x7fa].len);
- WFIFOW(fd,0)=0x7fa;
- WFIFOW(fd,2)=reason;
- WFIFOW(fd,4)=n+2;
- WFIFOW(fd,6)=amount;
- WFIFOSET(fd,packet_db[0x7fa].len);
-
-}
-
-
-
-
-
-void clif_item_sub(unsigned char *buf, int n, struct item *i, struct item_data *id, int equip) {
- if (id->view_id > 0)
- WBUFW(buf,n)=id->view_id;
- else
- WBUFW(buf,n)=i->nameid;
- WBUFB(buf,n+2)=itemtype(id->type);
- WBUFB(buf,n+3)=i->identify;
- if (equip >= 0) {
- WBUFW(buf,n+4)=equip;
- WBUFW(buf,n+6)=i->equip;
- WBUFB(buf,n+8)=i->attribute;
- WBUFB(buf,n+9)=i->refine;
- } else {
- WBUFW(buf,n+4)=i->amount;
- if (equip == -2 && id->equip == EQP_AMMO)
- WBUFW(buf,n+6)=EQP_AMMO;
- else
- WBUFW(buf,n+6)=0;
- }
-
-}
-
-void clif_item_equip(short idx, struct EQUIPITEM_INFO *p, struct item *i, struct item_data *id, int eqp_pos) {
-
- int j;
-
- do { if (((void)(p),
-# 2464 "../../../server-code/src/map/clif.c" 3 4
-0
-# 2464 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- do { if (((void)(i),
-# 2465 "../../../server-code/src/map/clif.c" 3 4
-0
-# 2465 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- do { if (((void)(id),
-# 2466 "../../../server-code/src/map/clif.c" 3 4
-0
-# 2466 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- p->index = idx;
-
- if (id->view_id > 0)
- p->ITID = id->view_id;
- else
- p->ITID = i->nameid;
-
- p->type = itemtype(id->type);
-
-
-
-
-
- p->location = eqp_pos;
- p->WearState = i->equip;
-
-
-
- p->RefiningLevel = i->refine;
-
- clif->addcards2(&p->slot.card[0], i);
-
-
- p->HireExpireDate = i->expire_time;
-
-
-
- p->bindOnEquipType = i->bound ? 2 : id->flag.bindonequip ? 1 : 0;
-
-
-
- p->wItemSpriteNumber = (id->equip&((EQP_HEAD_LOW|EQP_HEAD_MID|EQP_HEAD_TOP)|EQP_GARMENT|(EQP_COSTUME_HEAD_TOP|EQP_COSTUME_HEAD_MID|EQP_COSTUME_HEAD_LOW|EQP_COSTUME_GARMENT))) ? id->look : 0;
-
-
-
- p->Flag.IsIdentified = i->identify ? 1 : 0;
- p->Flag.IsDamaged = i->attribute ? 1 : 0;
- p->Flag.PlaceETCTab = i->favorite ? 1 : 0;
- p->Flag.SpareBits = 0;
-
-
-
- p->option_count = 0;
- for (j=0; j<5; j++){
- p->option_data[j].index = 0;
- p->option_data[j].value = 0;
- p->option_data[j].param = 0;
- }
-
-}
-
-void clif_item_normal(short idx, struct NORMALITEM_INFO *p, struct item *i, struct item_data *id) {
- do { if (((void)(p),
-# 2519 "../../../server-code/src/map/clif.c" 3 4
-0
-# 2519 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- do { if (((void)(i),
-# 2520 "../../../server-code/src/map/clif.c" 3 4
-0
-# 2520 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- do { if (((void)(id),
-# 2521 "../../../server-code/src/map/clif.c" 3 4
-0
-# 2521 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- p->index = idx;
-
- if (id->view_id > 0)
- p->ITID = id->view_id;
- else
- p->ITID = i->nameid;
-
- p->type = itemtype(id->type);
-
-
-
-
-
- p->count = i->amount;
- p->WearState = id->equip;
-
-
- clif->addcards2(&p->slot.card[0], i);
-
-
-
- p->HireExpireDate = i->expire_time;
-
-
-
- p->Flag.IsIdentified = i->identify ? 1 : 0;
- p->Flag.PlaceETCTab = i->favorite ? 1 : 0;
- p->Flag.SpareBits = 0;
-
-}
-
-void clif_inventorylist(struct map_session_data *sd) {
- int i, normal = 0, equip = 0;
-
- do { if (((void)(sd),
-# 2557 "../../../server-code/src/map/clif.c" 3 4
-0
-# 2557 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- for( i = 0; i < 100; i++ ) {
-
- if( sd->status.inventory[i].nameid <= 0 || sd->inventory_data[i] ==
-# 2560 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 2560 "../../../server-code/src/map/clif.c"
- )
- continue;
- if( !itemdb->isstackable2(sd->inventory_data[i]) )
- clif->item_equip(i+2,&itemlist_equip.list[equip++],&sd->status.inventory[i],sd->inventory_data[i],pc->equippoint(sd,i));
- else
- clif->item_normal(i+2,&itemlist_normal.list[normal++],&sd->status.inventory[i],sd->inventory_data[i]);
- }
-
- if( normal ) {
- itemlist_normal.PacketType = inventorylistnormalType;
- itemlist_normal.PacketLength = 4 + (sizeof(struct NORMALITEM_INFO) * normal);
-
- clif->send(&itemlist_normal, itemlist_normal.PacketLength, &sd->bl, SELF);
- }
-
- if( sd->equip_index[EQI_AMMO] >= 0 )
- clif->arrowequip(sd,sd->equip_index[EQI_AMMO]);
-
- if( equip ) {
- itemlist_equip.PacketType = inventorylistequipType;
- itemlist_equip.PacketLength = 4 + (sizeof(struct EQUIPITEM_INFO) * equip);
-
- clif->send(&itemlist_equip, itemlist_equip.PacketLength, &sd->bl, SELF);
- }
-# 2594 "../../../server-code/src/map/clif.c"
-}
-
-
-void clif_equiplist(struct map_session_data *sd) {
- int i, equip = 0;
-
- do { if (((void)(sd),
-# 2600 "../../../server-code/src/map/clif.c" 3 4
-0
-# 2600 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- for( i = 0; i < 100; i++ ) {
-
- if( sd->status.inventory[i].nameid <= 0 || sd->inventory_data[i] ==
-# 2603 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 2603 "../../../server-code/src/map/clif.c"
- )
- continue;
- if( !itemdb->isstackable2(sd->inventory_data[i]) )
- clif->item_equip(i+2,&itemlist_equip.list[equip++],&sd->status.inventory[i],sd->inventory_data[i],pc->equippoint(sd,i));
- }
-
- if( equip ) {
- itemlist_equip.PacketType = inventorylistequipType;
- itemlist_equip.PacketLength = 4 + (sizeof(struct EQUIPITEM_INFO) * equip);
-
- clif->send(&itemlist_equip, itemlist_equip.PacketLength, &sd->bl, SELF);
- }
-# 2626 "../../../server-code/src/map/clif.c"
-}
-
-void clif_storagelist(struct map_session_data* sd, struct item* items, int items_length) {
- int i = 0;
- struct item_data *id;
-
- do { if (((void)(sd),
-# 2632 "../../../server-code/src/map/clif.c" 3 4
-0
-# 2632 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- do { if (((void)(items),
-# 2633 "../../../server-code/src/map/clif.c" 3 4
-0
-# 2633 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- do {
- int normal = 0, equip = 0, k = 0;
-
- for( ; i < items_length && k < 500; i++, k++ ) {
-
- if( items[i].nameid <= 0 )
- continue;
-
- id = itemdb->search(items[i].nameid);
-
- if( !itemdb->isstackable2(id) )
- clif->item_equip(i+1,&storelist_equip.list[equip++],&items[i],id,id->equip);
- else
- clif->item_normal(i+1,&storelist_normal.list[normal++],&items[i],id);
- }
-
- if( normal ) {
- storelist_normal.PacketType = storagelistnormalType;
- storelist_normal.PacketLength = ( sizeof( storelist_normal ) - sizeof( storelist_normal.list ) ) + (sizeof(struct NORMALITEM_INFO) * normal);
-
-
- (strlib->safestrncpy_((storelist_normal.name),("Storage"),((23 + 1))));
-
-
- clif->send(&storelist_normal, storelist_normal.PacketLength, &sd->bl, SELF);
- }
-
- if( equip ) {
- storelist_equip.PacketType = storagelistequipType;
- storelist_equip.PacketLength = ( sizeof( storelist_equip ) - sizeof( storelist_equip.list ) ) + (sizeof(struct EQUIPITEM_INFO) * equip);
-
-
- (strlib->safestrncpy_((storelist_equip.name),("Storage"),((23 + 1))));
-
-
- clif->send(&storelist_equip, storelist_equip.PacketLength, &sd->bl, SELF);
- }
-
- } while ( i < items_length );
-
-}
-
-void clif_cartlist(struct map_session_data *sd) {
- int i, normal = 0, equip = 0;
- struct item_data *id;
-
- do { if (((void)(sd),
-# 2680 "../../../server-code/src/map/clif.c" 3 4
-0
-# 2680 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- for( i = 0; i < 100; i++ ) {
-
- if( sd->status.cart[i].nameid <= 0 )
- continue;
-
- id = itemdb->search(sd->status.cart[i].nameid);
- if( !itemdb->isstackable2(id) )
- clif->item_equip(i+2,&itemlist_equip.list[equip++],&sd->status.cart[i],id,id->equip);
- else
- clif->item_normal(i+2,&itemlist_normal.list[normal++],&sd->status.cart[i],id);
- }
-
- if( normal ) {
- itemlist_normal.PacketType = cartlistnormalType;
- itemlist_normal.PacketLength = 4 + (sizeof(struct NORMALITEM_INFO) * normal);
-
- clif->send(&itemlist_normal, itemlist_normal.PacketLength, &sd->bl, SELF);
- }
-
- if( equip ) {
- itemlist_equip.PacketType = cartlistequipType;
- itemlist_equip.PacketLength = 4 + (sizeof(struct EQUIPITEM_INFO) * equip);
-
- clif->send(&itemlist_equip, itemlist_equip.PacketLength, &sd->bl, SELF);
- }
-}
-
-
-
-
-
-
-void clif_clearcart(int fd)
-{
- WFIFOHEAD(fd, packet_db[0x12b].len);
- WFIFOW(fd,0) = 0x12b;
- WFIFOSET(fd, packet_db[0x12b].len);
-
-}
-
-
-
-void clif_guild_xy(struct map_session_data *sd)
-{
- unsigned char buf[10];
-
- do { if (((void)(sd),
-# 2727 "../../../server-code/src/map/clif.c" 3 4
-0
-# 2727 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- WBUFW(buf,0)=0x1eb;
- WBUFL(buf,2)=sd->status.account_id;
- WBUFW(buf,6)=sd->bl.x;
- WBUFW(buf,8)=sd->bl.y;
- clif->send(buf,packet_db[0x1eb].len,&sd->bl,GUILD_SAMEMAP_WOS);
-}
-
-
-
-
-void clif_guild_xy_single(int fd, struct map_session_data *sd)
-{
- if( sd->bg_id )
- return;
-
- do { if (((void)(sd),
-# 2744 "../../../server-code/src/map/clif.c" 3 4
-0
-# 2744 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- WFIFOHEAD(fd,packet_db[0x1eb].len);
- WFIFOW(fd,0)=0x1eb;
- WFIFOL(fd,2)=sd->status.account_id;
- WFIFOW(fd,6)=sd->bl.x;
- WFIFOW(fd,8)=sd->bl.y;
- WFIFOSET(fd,packet_db[0x1eb].len);
-}
-
-
-void clif_guild_xy_remove(struct map_session_data *sd)
-{
- unsigned char buf[10];
-
- do { if (((void)(sd),
-# 2758 "../../../server-code/src/map/clif.c" 3 4
-0
-# 2758 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- WBUFW(buf,0)=0x1eb;
- WBUFL(buf,2)=sd->status.account_id;
- WBUFW(buf,6)=-1;
- WBUFW(buf,8)=-1;
- clif->send(buf,packet_db[0x1eb].len,&sd->bl,GUILD_SAMEMAP_WOS);
-}
-
-
-
-
-int clif_hpmeter_sub(struct block_list *bl, va_list ap)
-{
-
-
-
- const int cmd = 0x80e;
-
- struct map_session_data *sd =
-# 2777 "../../../server-code/src/map/clif.c" 3 4
- __builtin_va_arg(
-# 2777 "../../../server-code/src/map/clif.c"
- ap
-# 2777 "../../../server-code/src/map/clif.c" 3 4
- ,
-# 2777 "../../../server-code/src/map/clif.c"
- struct map_session_data *
-# 2777 "../../../server-code/src/map/clif.c" 3 4
- )
-# 2777 "../../../server-code/src/map/clif.c"
- ;
- struct map_session_data *tsd = ( ((bl) == (struct block_list *)
-# 2778 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 2778 "../../../server-code/src/map/clif.c"
- || (bl)->type != (BL_PC)) ? (TBL_PC *)
-# 2778 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 2778 "../../../server-code/src/map/clif.c"
- : (TBL_PC *)(bl) );
-
- do { if (((void)(sd),
-# 2780 "../../../server-code/src/map/clif.c" 3 4
-0
-# 2780 "../../../server-code/src/map/clif.c"
-)) return(0); } while(0);
- do { if (((void)(tsd),
-# 2781 "../../../server-code/src/map/clif.c" 3 4
-0
-# 2781 "../../../server-code/src/map/clif.c"
-)) return(0); } while(0);
-
- if( !tsd->fd || tsd == sd )
- return 0;
-
- if( !( ((tsd)->extra_temp_permissions&(PC_PERM_VIEW_HPMETER)) != 0 || ((tsd)->group->e_permissions&(PC_PERM_VIEW_HPMETER)) != 0 ) )
- return 0;
- WFIFOHEAD(tsd->fd,packet_db[cmd].len);
- WFIFOW(tsd->fd,0) = cmd;
- WFIFOL(tsd->fd,2) = sd->status.account_id;
-# 2801 "../../../server-code/src/map/clif.c"
- WFIFOL(tsd->fd,6) = sd->battle_status.hp;
- WFIFOL(tsd->fd,10) = sd->battle_status.max_hp;
-
- WFIFOSET(tsd->fd,packet_db[cmd].len);
- return 0;
-}
-
-
-
-
-
-int clif_hpmeter(struct map_session_data *sd) {
- do { if (((void)(sd),
-# 2813 "../../../server-code/src/map/clif.c" 3 4
-0
-# 2813 "../../../server-code/src/map/clif.c"
-)) return(0); } while(0);
- map->foreachinarea(clif->hpmeter_sub, sd->bl.m, sd->bl.x-(battle->bc->area_size), sd->bl.y-(battle->bc->area_size), sd->bl.x+(battle->bc->area_size), sd->bl.y+(battle->bc->area_size), BL_PC, sd);
- return 0;
-}
-# 2826 "../../../server-code/src/map/clif.c"
-void clif_updatestatus(struct map_session_data *sd,int type)
-{
- int fd,len;
-
- do { if (((void)(sd),
-# 2830 "../../../server-code/src/map/clif.c" 3 4
-0
-# 2830 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- fd=sd->fd;
-
- if (!sockt->session_is_active(fd))
- return;
-
- WFIFOHEAD(fd, 14);
- WFIFOW(fd,0)=0xb0;
- WFIFOW(fd,2)=type;
- len = packet_db[0xb0].len;
- switch(type){
-
- case SP_WEIGHT:
- pc->updateweightstatus(sd);
- WFIFOHEAD(fd,14);
- WFIFOW(fd,0)=0xb0;
- WFIFOW(fd,2)=type;
- WFIFOL(fd,4)=sd->weight;
- break;
- case SP_MAXWEIGHT:
- WFIFOL(fd,4)=sd->max_weight;
- break;
- case SP_SPEED:
- WFIFOL(fd,4)=sd->battle_status.speed;
- break;
- case SP_BASELEVEL:
- WFIFOL(fd,4)=sd->status.base_level;
- break;
- case SP_JOBLEVEL:
- WFIFOL(fd,4)=sd->status.job_level;
- break;
- case SP_KARMA:
- WFIFOL(fd,4)=sd->status.karma;
- break;
- case SP_MANNER:
- WFIFOL(fd,4)=sd->status.manner;
- break;
- case SP_STATUSPOINT:
- WFIFOL(fd,4)=sd->status.status_point;
- break;
- case SP_SKILLPOINT:
- WFIFOL(fd,4)=sd->status.skill_point;
- break;
- case SP_HIT:
- WFIFOL(fd,4)=sd->battle_status.hit;
- break;
- case SP_FLEE1:
- WFIFOL(fd,4)=sd->battle_status.flee;
- break;
- case SP_FLEE2:
- WFIFOL(fd,4)=sd->battle_status.flee2/10;
- break;
- case SP_MAXHP:
- WFIFOL(fd,4)=sd->battle_status.max_hp;
- break;
- case SP_MAXSP:
- WFIFOL(fd,4)=sd->battle_status.max_sp;
- break;
- case SP_HP:
- WFIFOL(fd,4)=sd->battle_status.hp;
-
- if( map->list[sd->bl.m].hpmeter_visible )
- clif->hpmeter(sd);
- if( !battle_config.party_hp_mode && sd->status.party_id )
- clif->party_hp(sd);
- if( sd->bg_id )
- clif->bg_hp(sd);
- break;
- case SP_SP:
- WFIFOL(fd,4)=sd->battle_status.sp;
- break;
- case SP_ASPD:
- WFIFOL(fd,4)=sd->battle_status.amotion;
- break;
- case SP_ATK1:
- WFIFOL(fd,4)=((sd)->battle_status.batk);
- break;
- case SP_DEF1:
- WFIFOL(fd,4)=((sd)->battle_status.def2);
- break;
- case SP_MDEF1:
- WFIFOL(fd,4)=((sd)->battle_status.mdef2);
- break;
- case SP_ATK2:
- WFIFOL(fd,4)=((sd)->battle_status.rhw.atk + (sd)->battle_status.lhw.atk + (sd)->battle_status.rhw.atk2 + (sd)->battle_status.lhw.atk2 + (sd)->battle_status.equip_atk );
- break;
- case SP_DEF2:
- WFIFOL(fd,4)=((sd)->battle_status.def);
- break;
- case SP_MDEF2: {
-
- int mdef2 = ((sd)->battle_status.mdef);
-
- WFIFOL(fd,4)=
-
-
-
- mdef2;
-
- }
- break;
- case SP_CRITICAL:
- WFIFOL(fd,4)=sd->battle_status.cri/10;
- break;
- case SP_MATK1:
- WFIFOL(fd,4)=((sd)->battle_status.rhw.matk+(sd)->battle_status.lhw.matk+(sd)->bonus.ematk);
- break;
- case SP_MATK2:
- WFIFOL(fd,4)=(status->base_matk(&(sd)->bl, status->get_status_data(&(sd)->bl), (sd)->status.base_level));
- break;
- case SP_ZENY:
- WFIFOW(fd,0)=0xb1;
- WFIFOL(fd,4)=sd->status.zeny;
- len = packet_db[0xb1].len;
- break;
- case SP_BASEEXP:
- WFIFOW(fd,0)=0xb1;
- WFIFOL(fd,4)=sd->status.base_exp;
- len = packet_db[0xb1].len;
- break;
- case SP_JOBEXP:
- WFIFOW(fd,0)=0xb1;
- WFIFOL(fd,4)=sd->status.job_exp;
- len = packet_db[0xb1].len;
- break;
- case SP_NEXTBASEEXP:
- WFIFOW(fd,0)=0xb1;
- WFIFOL(fd,4)=pc->nextbaseexp(sd);
- len = packet_db[0xb1].len;
- break;
- case SP_NEXTJOBEXP:
- WFIFOW(fd,0)=0xb1;
- WFIFOL(fd,4)=pc->nextjobexp(sd);
- len = packet_db[0xb1].len;
- break;
-
-
-
-
- case SP_USTR:
- case SP_UAGI:
- case SP_UVIT:
- case SP_UINT:
- case SP_UDEX:
- case SP_ULUK:
- WFIFOW(fd,0)=0xbe;
- WFIFOB(fd,4)=pc->need_status_point(sd,type-SP_USTR+SP_STR,1);
- len = packet_db[0xbe].len;
- break;
-
-
-
-
- case SP_ATTACKRANGE:
- WFIFOW(fd,0)=0x13a;
- WFIFOW(fd,2)=sd->battle_status.rhw.range;
- len = packet_db[0x13a].len;
- break;
-
- case SP_STR:
- WFIFOW(fd,0)=0x141;
- WFIFOL(fd,2)=type;
- WFIFOL(fd,6)=sd->status.str;
- WFIFOL(fd,10)=sd->battle_status.str - sd->status.str;
- len = packet_db[0x141].len;
- break;
- case SP_AGI:
- WFIFOW(fd,0)=0x141;
- WFIFOL(fd,2)=type;
- WFIFOL(fd,6)=sd->status.agi;
- WFIFOL(fd,10)=sd->battle_status.agi - sd->status.agi;
- len = packet_db[0x141].len;
- break;
- case SP_VIT:
- WFIFOW(fd,0)=0x141;
- WFIFOL(fd,2)=type;
- WFIFOL(fd,6)=sd->status.vit;
- WFIFOL(fd,10)=sd->battle_status.vit - sd->status.vit;
- len = packet_db[0x141].len;
- break;
- case SP_INT:
- WFIFOW(fd,0)=0x141;
- WFIFOL(fd,2)=type;
- WFIFOL(fd,6)=sd->status.int_;
- WFIFOL(fd,10)=sd->battle_status.int_ - sd->status.int_;
- len = packet_db[0x141].len;
- break;
- case SP_DEX:
- WFIFOW(fd,0)=0x141;
- WFIFOL(fd,2)=type;
- WFIFOL(fd,6)=sd->status.dex;
- WFIFOL(fd,10)=sd->battle_status.dex - sd->status.dex;
- len = packet_db[0x141].len;
- break;
- case SP_LUK:
- WFIFOW(fd,0)=0x141;
- WFIFOL(fd,2)=type;
- WFIFOL(fd,6)=sd->status.luk;
- WFIFOL(fd,10)=sd->battle_status.luk - sd->status.luk;
- len = packet_db[0x141].len;
- break;
-
- case SP_CARTINFO:
- WFIFOW(fd,0)=0x121;
- WFIFOW(fd,2)=sd->cart_num;
- WFIFOW(fd,4)=100;
- WFIFOL(fd,6)=sd->cart_weight;
- WFIFOL(fd,10)=sd->cart_weight_max;
- len = packet_db[0x121].len;
- break;
-
- default:
- (showmsg->showError(("clif->updatestatus : unrecognized type %d\n"),type));
- return;
- }
- WFIFOSET(fd,len);
-}
-
-
-
-void clif_changestatus(struct map_session_data* sd,int type,int val)
-{
- unsigned char buf[12];
-
- do { if (((void)(sd),
-# 3055 "../../../server-code/src/map/clif.c" 3 4
-0
-# 3055 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- WBUFW(buf,0)=0x1ab;
- WBUFL(buf,2)=sd->bl.id;
- WBUFW(buf,6)=type;
-
- switch(type)
- {
- case SP_MANNER:
- WBUFL(buf,8)=val;
- break;
- default:
- (showmsg->showError(("clif_changestatus : unrecognized type %d.\n"),type));
- return;
- }
-
- clif->send(buf,packet_db[0x1ab].len,&sd->bl,AREA_WOS);
-}
-
-
-void clif_changelook(struct block_list *bl,int type,int val)
-{
- struct map_session_data* sd;
- struct status_change* sc;
- struct view_data* vd;
- enum send_target target = AREA;
- int val2 = 0;
- do { if (((void)(bl),
-# 3082 "../../../server-code/src/map/clif.c" 3 4
-0
-# 3082 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- sd = ( ((bl) == (struct block_list *)
-# 3084 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 3084 "../../../server-code/src/map/clif.c"
- || (bl)->type != (BL_PC)) ? (TBL_PC *)
-# 3084 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 3084 "../../../server-code/src/map/clif.c"
- : (TBL_PC *)(bl) );
- sc = status->get_sc(bl);
- vd = status->get_viewdata(bl);
-
- if( vd )
- switch(type) {
- case LOOK_WEAPON:
- if (sd) {
- clif->get_weapon_view(sd, &vd->weapon, &vd->shield);
- val = vd->weapon;
- }
- else
- vd->weapon = val;
- break;
- case LOOK_SHIELD:
- if (sd) {
- clif->get_weapon_view(sd, &vd->weapon, &vd->shield);
- val = vd->shield;
- }
- else
- vd->shield = val;
- break;
- case LOOK_BASE:
- if( !sd ) break;
-
- if ( val == INVISIBLE_CLASS )
- return;
-
- if( sd->sc.option&OPTION_COSTUME )
- vd->weapon = vd->shield = 0;
-
- if( !vd->cloth_color )
- break;
-
- if (sd->sc.option&OPTION_WEDDING && battle_config.wedding_ignorepalette)
- vd->cloth_color = 0;
- if (sd->sc.option&OPTION_XMAS && battle_config.xmas_ignorepalette)
- vd->cloth_color = 0;
- if (sd->sc.option&OPTION_SUMMER && battle_config.summer_ignorepalette)
- vd->cloth_color = 0;
- if (sd->sc.option&OPTION_HANBOK && battle_config.hanbok_ignorepalette)
- vd->cloth_color = 0;
- if (sd->sc.option&OPTION_OKTOBERFEST )
- vd->cloth_color = 0;
- if (vd->body_style && (
- sd->sc.option&OPTION_WEDDING || sd->sc.option&OPTION_XMAS ||
- sd->sc.option&OPTION_SUMMER || sd->sc.option&OPTION_HANBOK ||
- sd->sc.option&OPTION_OKTOBERFEST))
- vd->body_style = 0;
- break;
- case LOOK_HAIR:
- vd->hair_style = val;
- break;
- case LOOK_HEAD_BOTTOM:
- vd->head_bottom = val;
- break;
- case LOOK_HEAD_TOP:
- vd->head_top = val;
- break;
- case LOOK_HEAD_MID:
- vd->head_mid = val;
- break;
- case LOOK_HAIR_COLOR:
- vd->hair_color = val;
- break;
- case LOOK_CLOTHES_COLOR:
- if( val && sd ) {
- if( sd->sc.option&OPTION_WEDDING && battle_config.wedding_ignorepalette )
- val = 0;
- if( sd->sc.option&OPTION_XMAS && battle_config.xmas_ignorepalette )
- val = 0;
- if( sd->sc.option&OPTION_SUMMER && battle_config.summer_ignorepalette )
- val = 0;
- if( sd->sc.option&OPTION_HANBOK && battle_config.hanbok_ignorepalette )
- val = 0;
- if( sd->sc.option&OPTION_OKTOBERFEST )
- val = 0;
- }
- vd->cloth_color = val;
- break;
- case LOOK_SHOES:
-
- if (sd) {
- int n;
- if((n = sd->equip_index[2]) >= 0 && sd->inventory_data[n]) {
- if(sd->inventory_data[n]->view_id > 0)
- val = sd->inventory_data[n]->view_id;
- else
- val = sd->status.inventory[n].nameid;
- } else
- val = 0;
- }
-
-
- break;
- case LOOK_BODY:
- case LOOK_FLOOR:
-
- break;
- case LOOK_ROBE:
-
-
-
- vd->robe = val;
-
- break;
- case LOOK_BODY2:
- if (val && (
- sd->sc.option&OPTION_WEDDING || sd->sc.option&OPTION_XMAS ||
- sd->sc.option&OPTION_SUMMER || sd->sc.option&OPTION_HANBOK ||
- sd->sc.option&OPTION_OKTOBERFEST))
- val = 0;
- vd->body_style = val;
- break;
- }
-
-
- if( sc && sc->option&OPTION_INVISIBLE && !disguised(bl) )
- target = SELF;
-
-
-
- if(type == LOOK_WEAPON || type == LOOK_SHIELD) {
- do { if (((void)(vd),
-# 3207 "../../../server-code/src/map/clif.c" 3 4
- 0
-# 3207 "../../../server-code/src/map/clif.c"
- )) return; } while(0);
- type = LOOK_WEAPON;
- val = vd->weapon;
- val2 = vd->shield;
- }
- if( disguised(bl) ) {
- clif->sendlook(bl, bl->id, type, val, val2, AREA_WOS);
- clif->sendlook(bl, -bl->id, type, val, val2, SELF);
- } else
- clif->sendlook(bl, bl->id, type, val, val2, target);
-
-}
-
-
-void clif_changetraplook(struct block_list *bl,int val)
-{
- clif->sendlook(bl, bl->id, LOOK_BASE, val, 0, AREA);
-}
-
-
-
-void clif_sendlook(struct block_list *bl, int id, int type, int val, int val2, enum send_target target)
-{
- unsigned char buf[32];
-
-
-
-
-
-
-
- WBUFW(buf,0)=0x1d7;
- WBUFL(buf,2)=id;
- WBUFB(buf,6)=type;
- WBUFW(buf,7)=val;
- WBUFW(buf,9)=val2;
- clif->send(buf,packet_db[0x1d7].len,bl,target);
-
-}
-
-
-void clif_refreshlook(struct block_list *bl,int id,int type,int val,enum send_target target)
-{
- clif->sendlook(bl, id, type, val, 0, target);
-}
-
-
-
-
-
-
-void clif_initialstatus(struct map_session_data *sd) {
- int fd, mdef2;
- unsigned char *buf;
-
- do { if (((void)(sd),
-# 3262 "../../../server-code/src/map/clif.c" 3 4
-0
-# 3262 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- fd=sd->fd;
- WFIFOHEAD(fd,packet_db[0xbd].len);
- buf=WFIFOP(fd,0);
-
- WBUFW(buf,0)=0xbd;
- WBUFW(buf,2)=(((sd->status.status_point) < (
-# 3269 "../../../server-code/src/map/clif.c" 3 4
- (32767)
-# 3269 "../../../server-code/src/map/clif.c"
- )) ? (sd->status.status_point) : (
-# 3269 "../../../server-code/src/map/clif.c" 3 4
- (32767)
-# 3269 "../../../server-code/src/map/clif.c"
- ));
- WBUFB(buf,4)=(((sd->status.str) < (((uint8) 0xFF))) ? (sd->status.str) : (((uint8) 0xFF)));
- WBUFB(buf,5)=pc->need_status_point(sd,SP_STR,1);
- WBUFB(buf,6)=(((sd->status.agi) < (((uint8) 0xFF))) ? (sd->status.agi) : (((uint8) 0xFF)));
- WBUFB(buf,7)=pc->need_status_point(sd,SP_AGI,1);
- WBUFB(buf,8)=(((sd->status.vit) < (((uint8) 0xFF))) ? (sd->status.vit) : (((uint8) 0xFF)));
- WBUFB(buf,9)=pc->need_status_point(sd,SP_VIT,1);
- WBUFB(buf,10)=(((sd->status.int_) < (((uint8) 0xFF))) ? (sd->status.int_) : (((uint8) 0xFF)));
- WBUFB(buf,11)=pc->need_status_point(sd,SP_INT,1);
- WBUFB(buf,12)=(((sd->status.dex) < (((uint8) 0xFF))) ? (sd->status.dex) : (((uint8) 0xFF)));
- WBUFB(buf,13)=pc->need_status_point(sd,SP_DEX,1);
- WBUFB(buf,14)=(((sd->status.luk) < (((uint8) 0xFF))) ? (sd->status.luk) : (((uint8) 0xFF)));
- WBUFB(buf,15)=pc->need_status_point(sd,SP_LUK,1);
-
- WBUFW(buf,16) = ((sd)->battle_status.batk);
- WBUFW(buf,18) = ((sd)->battle_status.rhw.atk + (sd)->battle_status.lhw.atk + (sd)->battle_status.rhw.atk2 + (sd)->battle_status.lhw.atk2 + (sd)->battle_status.equip_atk );
- WBUFW(buf,20) = ((sd)->battle_status.rhw.matk+(sd)->battle_status.lhw.matk+(sd)->bonus.ematk);
- WBUFW(buf,22) = (status->base_matk(&(sd)->bl, status->get_status_data(&(sd)->bl), (sd)->status.base_level));
- WBUFW(buf,24) = ((sd)->battle_status.def2);
- WBUFW(buf,26) = ((sd)->battle_status.def);
- WBUFW(buf,28) = ((sd)->battle_status.mdef2);
- mdef2 = ((sd)->battle_status.mdef);
- WBUFW(buf,30) =
-
-
-
- mdef2;
- WBUFW(buf,32) = sd->battle_status.hit;
- WBUFW(buf,34) = sd->battle_status.flee;
- WBUFW(buf,36) = sd->battle_status.flee2/10;
- WBUFW(buf,38) = sd->battle_status.cri/10;
- WBUFW(buf,40) = sd->battle_status.amotion;
- WBUFW(buf,42) = 0;
-
- WFIFOSET(fd,packet_db[0xbd].len);
-
- clif->updatestatus(sd,SP_STR);
- clif->updatestatus(sd,SP_AGI);
- clif->updatestatus(sd,SP_VIT);
- clif->updatestatus(sd,SP_INT);
- clif->updatestatus(sd,SP_DEX);
- clif->updatestatus(sd,SP_LUK);
-
- clif->updatestatus(sd,SP_ATTACKRANGE);
- clif->updatestatus(sd,SP_ASPD);
-}
-
-
-
-void clif_arrowequip(struct map_session_data *sd,int val)
-{
- int fd;
-
- do { if (((void)(sd),
-# 3322 "../../../server-code/src/map/clif.c" 3 4
-0
-# 3322 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
-
- clif->status_change(&sd->bl, SI_CLIENT_ONLY_EQUIP_ARROW, 1, (-1), 0, 0, 0);
-
- fd=sd->fd;
- WFIFOHEAD(fd, packet_db[0x013c].len);
- WFIFOW(fd,0)=0x013c;
- WFIFOW(fd,2)=val+2;
- WFIFOSET(fd,packet_db[0x013c].len);
-}
-# 3343 "../../../server-code/src/map/clif.c"
-void clif_arrow_fail(struct map_session_data *sd,int type)
-{
- int fd;
-
- do { if (((void)(sd),
-# 3347 "../../../server-code/src/map/clif.c" 3 4
-0
-# 3347 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- fd=sd->fd;
- WFIFOHEAD(fd, packet_db[0x013b].len);
- WFIFOW(fd,0)=0x013b;
- WFIFOW(fd,2)=type;
- WFIFOSET(fd,packet_db[0x013b].len);
-}
-
-
-
-void clif_arrow_create_list(struct map_session_data *sd)
-{
- int i, c;
- int fd;
-
- do { if (((void)(sd),
-# 3363 "../../../server-code/src/map/clif.c" 3 4
-0
-# 3363 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- fd = sd->fd;
- WFIFOHEAD(fd, 140*2+4);
- WFIFOW(fd,0) = 0x1ad;
-
- for (i = 0, c = 0; i < 140; i++) {
- int j;
- if (skill->dbs->arrow_db[i].nameid > 0
- && (j = pc->search_inventory(sd, skill->dbs->arrow_db[i].nameid)) != (-1)
- && !sd->status.inventory[j].equip && sd->status.inventory[j].identify
- ) {
- if ((j = (itemdb->search(skill->dbs->arrow_db[i].nameid)->view_id)) > 0)
- WFIFOW(fd,c*2+4) = j;
- else
- WFIFOW(fd,c*2+4) = skill->dbs->arrow_db[i].nameid;
- c++;
- }
- }
- WFIFOW(fd,2) = c*2+4;
- WFIFOSET(fd, WFIFOW(fd,2));
- if (c > 0) {
- sd->menuskill_id = AC_MAKINGARROW;
- sd->menuskill_val = c;
- }
-}
-# 3397 "../../../server-code/src/map/clif.c"
-void clif_statusupack(struct map_session_data *sd,int type,int ok,int val)
-{
- int fd;
-
- do { if (((void)(sd),
-# 3401 "../../../server-code/src/map/clif.c" 3 4
-0
-# 3401 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- fd=sd->fd;
- WFIFOHEAD(fd,packet_db[0xbc].len);
- WFIFOW(fd,0)=0xbc;
- WFIFOW(fd,2)=type;
- WFIFOB(fd,4)=ok;
- WFIFOB(fd,5)=(((val) >= (((uint8) 0xFF))) ? (((uint8) 0xFF)) : ((val) <= (0)) ? (0) : (val));
- WFIFOSET(fd,packet_db[0xbc].len);
-}
-
-
-
-
-void clif_equipitemack(struct map_session_data *sd,int n,int pos,enum e_EQUIP_ITEM_ACK result) {
- struct packet_equipitem_ack p;
-
- do { if (((void)(sd),
-# 3418 "../../../server-code/src/map/clif.c" 3 4
-0
-# 3418 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- p.PacketType = equipitemackType;
- p.index = n+2;
- p.wearLocation = pos;
-
- if (result == EIA_SUCCESS && sd->inventory_data[n]->equip&((EQP_HEAD_LOW|EQP_HEAD_MID|EQP_HEAD_TOP)|EQP_GARMENT|(EQP_COSTUME_HEAD_TOP|EQP_COSTUME_HEAD_MID|EQP_COSTUME_HEAD_LOW|EQP_COSTUME_GARMENT)))
- p.wItemSpriteNumber = sd->inventory_data[n]->look;
- else
- p.wItemSpriteNumber = 0;
-
- p.result = (unsigned char)result;
-
- clif->send(&p, sizeof(p), &sd->bl, SELF);
-}
-
-
-
-void clif_unequipitemack(struct map_session_data *sd,int n,int pos,enum e_UNEQUIP_ITEM_ACK result) {
- struct packet_unequipitem_ack p;
-
- do { if (((void)(sd),
-# 3439 "../../../server-code/src/map/clif.c" 3 4
-0
-# 3439 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- p.PacketType = unequipitemackType;
- p.index = n+2;
- p.wearLocation = pos;
- p.result = (unsigned char)result;
-
- clif->send(&p, sizeof(p), &sd->bl, SELF);
-}
-# 3462 "../../../server-code/src/map/clif.c"
-void clif_misceffect(struct block_list* bl,int type)
-{
- unsigned char buf[32];
-
- do { if (((void)(bl),
-# 3466 "../../../server-code/src/map/clif.c" 3 4
-0
-# 3466 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- WBUFW(buf,0) = 0x19b;
- WBUFL(buf,2) = bl->id;
- WBUFL(buf,6) = type;
-
- clif->send(buf,packet_db[0x19b].len,bl,AREA);
-}
-
-
-
-
-void clif_changeoption(struct block_list* bl)
-{
- unsigned char buf[32];
- struct status_change *sc;
- struct map_session_data* sd;
-
- do { if (((void)(bl),
-# 3484 "../../../server-code/src/map/clif.c" 3 4
-0
-# 3484 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- if ( !(sc = status->get_sc(bl)) && bl->type != BL_NPC ) return;
-
- sd = ( ((bl) == (struct block_list *)
-# 3488 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 3488 "../../../server-code/src/map/clif.c"
- || (bl)->type != (BL_PC)) ? (TBL_PC *)
-# 3488 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 3488 "../../../server-code/src/map/clif.c"
- : (TBL_PC *)(bl) );
-
-
- WBUFW(buf,0) = 0x229;
- WBUFL(buf,2) = bl->id;
- WBUFW(buf,6) = (sc) ? sc->opt1 : 0;
- WBUFW(buf,8) = (sc) ? sc->opt2 : 0;
- WBUFL(buf,10) = (sc !=
-# 3495 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 3495 "../../../server-code/src/map/clif.c"
- ) ? sc->option : ((bl->type == BL_NPC) ? ((const TBL_NPC *)BL_UCCAST_(bl))->option : 0);
- WBUFB(buf,14) = (sd)? sd->status.karma : 0;
- if(disguised(bl)) {
- clif->send(buf,packet_db[0x229].len,bl,AREA_WOS);
- WBUFL(buf,2) = -bl->id;
- clif->send(buf,packet_db[0x229].len,bl,SELF);
- WBUFL(buf,2) = bl->id;
- WBUFL(buf,10) = OPTION_INVISIBLE;
- clif->send(buf,packet_db[0x229].len,bl,SELF);
- } else
- clif->send(buf,packet_db[0x229].len,bl,AREA);
-# 3523 "../../../server-code/src/map/clif.c"
-}
-
-
-
-void clif_changeoption2(struct block_list* bl) {
- unsigned char buf[20];
- struct status_change *sc;
-
- do { if (((void)(bl),
-# 3531 "../../../server-code/src/map/clif.c" 3 4
-0
-# 3531 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- if ( !(sc = status->get_sc(bl)) && bl->type != BL_NPC ) return;
-
- WBUFW(buf,0) = 0x28a;
- WBUFL(buf,2) = bl->id;
- WBUFL(buf,6) = (sc !=
-# 3536 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 3536 "../../../server-code/src/map/clif.c"
- ) ? sc->option : ((bl->type == BL_NPC) ? ((const TBL_NPC *)BL_UCCAST_(bl))->option : 0);
- WBUFL(buf,10) = clif_setlevel(bl);
- WBUFL(buf,14) = (sc) ? sc->opt3 : 0;
- if(disguised(bl)) {
- clif->send(buf,packet_db[0x28a].len,bl,AREA_WOS);
- WBUFL(buf,2) = -bl->id;
- clif->send(buf,packet_db[0x28a].len,bl,SELF);
- WBUFL(buf,2) = bl->id;
- WBUFL(buf,6) = OPTION_INVISIBLE;
- clif->send(buf,packet_db[0x28a].len,bl,SELF);
- } else
- clif->send(buf,packet_db[0x28a].len,bl,AREA);
-}
-
-
-
-
-void clif_useitemack(struct map_session_data *sd,int index,int amount,
-# 3553 "../../../server-code/src/map/clif.c" 3 4
- _Bool
-# 3553 "../../../server-code/src/map/clif.c"
- ok)
-{
- do { if (((void)(sd),
-# 3555 "../../../server-code/src/map/clif.c" 3 4
-0
-# 3555 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- if(!ok) {
- int fd=sd->fd;
- WFIFOHEAD(fd,packet_db[0xa8].len);
- WFIFOW(fd,0)=0xa8;
- WFIFOW(fd,2)=index+2;
- WFIFOW(fd,4)=amount;
- WFIFOB(fd,6)=ok;
- WFIFOSET(fd,packet_db[0xa8].len);
- }
- else {
-# 3576 "../../../server-code/src/map/clif.c"
- unsigned char buf[32];
-
- WBUFW(buf,0)=0x1c8;
- WBUFW(buf,2)=index+2;
- if(sd->inventory_data[index] && sd->inventory_data[index]->view_id > 0)
- WBUFW(buf,4)=sd->inventory_data[index]->view_id;
- else
- WBUFW(buf,4)=sd->status.inventory[index].nameid;
- WBUFL(buf,6)=sd->bl.id;
- WBUFW(buf,10)=amount;
- WBUFB(buf,12)=ok;
- clif->send(buf,packet_db[0x1c8].len,&sd->bl,AREA);
-
- }
-}
-# 3599 "../../../server-code/src/map/clif.c"
-void clif_createchat(struct map_session_data* sd, int flag)
-{
- int fd;
-
- do { if (((void)(sd),
-# 3603 "../../../server-code/src/map/clif.c" 3 4
-0
-# 3603 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- fd = sd->fd;
- WFIFOHEAD(fd,packet_db[0xd6].len);
- WFIFOW(fd,0) = 0xd6;
- WFIFOB(fd,2) = flag;
- WFIFOSET(fd,packet_db[0xd6].len);
-}
-# 3619 "../../../server-code/src/map/clif.c"
-void clif_dispchat(struct chat_data* cd, int fd)
-{
- unsigned char buf[128];
- uint8 type;
-
- if( cd ==
-# 3624 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 3624 "../../../server-code/src/map/clif.c"
- || cd->owner ==
-# 3624 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 3624 "../../../server-code/src/map/clif.c"
- )
- return;
-
- type = (cd->owner->type == BL_PC ) ? (cd->pub) ? 1 : 0
- : (cd->owner->type == BL_NPC) ? (cd->limit) ? 2 : 3
- : 1;
-
- WBUFW(buf,0) = 0xd7;
- WBUFW(buf,2) = 17 + strlen(cd->title);
- WBUFL(buf, 4) = cd->owner->id;
- WBUFL(buf, 8) = cd->bl.id;
- WBUFW(buf,12) = cd->limit;
- WBUFW(buf,14) = (cd->owner->type == BL_NPC) ? cd->users+1 : cd->users;
- WBUFB(buf,16) = type;
- memcpy(WBUFP(buf,17), cd->title, strlen(cd->title));
-
- if( fd ) {
- WFIFOHEAD(fd,WBUFW(buf,2));
- memcpy(WFIFOP(fd,0),buf,WBUFW(buf,2));
- WFIFOSET(fd,WBUFW(buf,2));
- } else {
- clif->send(buf,WBUFW(buf,2),cd->owner,AREA_WOSC);
- }
-}
-# 3656 "../../../server-code/src/map/clif.c"
-void clif_changechatstatus(struct chat_data* cd)
-{
- unsigned char buf[128];
- uint8 type;
-
- if( cd ==
-# 3661 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 3661 "../../../server-code/src/map/clif.c"
- || cd->usersd[0] ==
-# 3661 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 3661 "../../../server-code/src/map/clif.c"
- )
- return;
-
- type = (cd->owner->type == BL_PC ) ? (cd->pub) ? 1 : 0
- : (cd->owner->type == BL_NPC) ? (cd->limit) ? 2 : 3
- : 1;
-
- WBUFW(buf,0) = 0xdf;
- WBUFW(buf,2) = 17 + strlen(cd->title);
- WBUFL(buf, 4) = cd->owner->id;
- WBUFL(buf, 8) = cd->bl.id;
- WBUFW(buf,12) = cd->limit;
- WBUFW(buf,14) = (cd->owner->type == BL_NPC) ? cd->users+1 : cd->users;
- WBUFB(buf,16) = type;
- memcpy(WBUFP(buf,17), cd->title, strlen(cd->title));
-
- clif->send(buf,WBUFW(buf,2),cd->owner,CHAT);
-}
-
-
-
-void clif_clearchat(struct chat_data *cd,int fd)
-{
- unsigned char buf[32];
-
- do { if (((void)(cd),
-# 3686 "../../../server-code/src/map/clif.c" 3 4
-0
-# 3686 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- WBUFW(buf,0) = 0xd8;
- WBUFL(buf,2) = cd->bl.id;
- if( fd ) {
- WFIFOHEAD(fd,packet_db[0xd8].len);
- memcpy(WFIFOP(fd,0),buf,packet_db[0xd8].len);
- WFIFOSET(fd,packet_db[0xd8].len);
- } else {
- clif->send(buf,packet_db[0xd8].len,cd->owner,AREA_WOSC);
- }
-}
-# 3710 "../../../server-code/src/map/clif.c"
-void clif_joinchatfail(struct map_session_data *sd,int flag)
-{
- int fd;
-
- do { if (((void)(sd),
-# 3714 "../../../server-code/src/map/clif.c" 3 4
-0
-# 3714 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- fd = sd->fd;
-
- WFIFOHEAD(fd,packet_db[0xda].len);
- WFIFOW(fd,0) = 0xda;
- WFIFOB(fd,2) = flag;
- WFIFOSET(fd,packet_db[0xda].len);
-}
-
-
-
-
-
-
-void clif_joinchatok(struct map_session_data *sd,struct chat_data* cd)
-{
- int fd;
- int i,t;
-
- do { if (((void)(sd),
-# 3734 "../../../server-code/src/map/clif.c" 3 4
-0
-# 3734 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- do { if (((void)(cd),
-# 3735 "../../../server-code/src/map/clif.c" 3 4
-0
-# 3735 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- fd = sd->fd;
- if (!sockt->session_is_active(fd))
- return;
- t = (int)(cd->owner->type == BL_NPC);
- WFIFOHEAD(fd, 8 + (28*(cd->users+t)));
- WFIFOW(fd,0) = 0xdb;
- WFIFOW(fd,2) = 8 + (28*(cd->users+t));
- WFIFOL(fd, 4) = cd->bl.id;
-
- if(cd->owner->type == BL_NPC) {
- const struct npc_data *nd = ((const TBL_NPC *)BL_UCCAST_(cd->owner));
- WFIFOL(fd, 30) = 1;
- WFIFOL(fd, 8) = 0;
- memcpy(WFIFOP(fd, 12), nd->name, (23 + 1));
- for (i = 0; i < cd->users; i++) {
- WFIFOL(fd, 8+(i+1)*28) = 1;
- memcpy(WFIFOP(fd, 8+(i+t)*28+4), cd->usersd[i]->status.name, (23 + 1));
- }
- } else
- for (i = 0; i < cd->users; i++) {
- WFIFOL(fd, 8+i*28) = (i != 0 || cd->owner->type == BL_NPC);
- memcpy(WFIFOP(fd, 8+(i+t)*28+4), cd->usersd[i]->status.name, (23 + 1));
- }
- WFIFOSET(fd, WFIFOW(fd,2));
-}
-
-
-
-void clif_addchat(struct chat_data* cd,struct map_session_data *sd)
-{
- unsigned char buf[32];
-
- do { if (((void)(sd),
-# 3769 "../../../server-code/src/map/clif.c" 3 4
-0
-# 3769 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- do { if (((void)(cd),
-# 3770 "../../../server-code/src/map/clif.c" 3 4
-0
-# 3770 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- WBUFW(buf,0) = 0xdc;
- WBUFW(buf,2) = cd->users;
- memcpy(WBUFP(buf, 4),sd->status.name,(23 + 1));
- clif->send(buf,packet_db[0xdc].len,&sd->bl,CHAT_WOS);
-}
-
-
-
-
-
-
-void clif_changechatowner(struct chat_data* cd, struct map_session_data* sd)
-{
- unsigned char buf[64];
-
- do { if (((void)(sd),
-# 3787 "../../../server-code/src/map/clif.c" 3 4
-0
-# 3787 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- do { if (((void)(cd),
-# 3788 "../../../server-code/src/map/clif.c" 3 4
-0
-# 3788 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- WBUFW(buf,0) = 0xe1;
- WBUFL(buf, 2) = 1;
- memcpy(WBUFP(buf,6),cd->usersd[0]->status.name,(23 + 1));
-
- WBUFW(buf,30) = 0xe1;
- WBUFL(buf,32) = 0;
- memcpy(WBUFP(buf,36),sd->status.name,(23 + 1));
-
- clif->send(buf,packet_db[0xe1].len*2,&sd->bl,CHAT);
-}
-
-
-
-
-
-
-void clif_leavechat(struct chat_data* cd, struct map_session_data* sd,
-# 3806 "../../../server-code/src/map/clif.c" 3 4
- _Bool
-# 3806 "../../../server-code/src/map/clif.c"
- flag)
-{
- unsigned char buf[32];
-
- do { if (((void)(sd),
-# 3810 "../../../server-code/src/map/clif.c" 3 4
-0
-# 3810 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- do { if (((void)(cd),
-# 3811 "../../../server-code/src/map/clif.c" 3 4
-0
-# 3811 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- WBUFW(buf,0) = 0xdd;
- WBUFW(buf,2) = cd->users-1;
- memcpy(WBUFP(buf,4),sd->status.name,(23 + 1));
- WBUFB(buf,28) = flag;
-
- clif->send(buf,packet_db[0xdd].len,&sd->bl,CHAT);
-}
-
-
-
-
-void clif_traderequest(struct map_session_data *sd, const char *name)
-{
- int fd;
-
- struct map_session_data* tsd =
-# 3828 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 3828 "../../../server-code/src/map/clif.c"
- ;
-
- do { if (((void)(sd),
-# 3830 "../../../server-code/src/map/clif.c" 3 4
-0
-# 3830 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- do { if (((void)(name),
-# 3831 "../../../server-code/src/map/clif.c" 3 4
-0
-# 3831 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- fd = sd->fd;
-
-
-
-
-
-
- tsd = map->id2sd(sd->trade_partner);
- if (!tsd)
- return;
-
- WFIFOHEAD(fd,packet_db[0x1f4].len);
- WFIFOW(fd,0) = 0x1f4;
- (strlib->safestrncpy_((WFIFOP(fd,2)),(name),((23 + 1))));
- WFIFOL(fd,26) = tsd->status.char_id;
- WFIFOW(fd,30) = tsd->status.base_level;
- WFIFOSET(fd,packet_db[0x1f4].len);
-
-}
-# 3863 "../../../server-code/src/map/clif.c"
-void clif_tradestart(struct map_session_data *sd, uint8 type)
-{
- int fd;
-
- struct map_session_data *tsd =
-# 3867 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 3867 "../../../server-code/src/map/clif.c"
- ;
-
- do { if (((void)(sd),
-# 3869 "../../../server-code/src/map/clif.c" 3 4
-0
-# 3869 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- fd = sd->fd;
-
- tsd = map->id2sd(sd->trade_partner);
- if (tsd) {
- WFIFOHEAD(fd,packet_db[0x1f5].len);
- WFIFOW(fd,0) = 0x1f5;
- WFIFOB(fd,2) = type;
- WFIFOL(fd,3) = tsd->status.char_id;
- WFIFOW(fd,7) = tsd->status.base_level;
- WFIFOSET(fd,packet_db[0x1f5].len);
- return;
- }
-
- WFIFOHEAD(fd,packet_db[0xe7].len);
- WFIFOW(fd,0) = 0xe7;
- WFIFOB(fd,2) = type;
- WFIFOSET(fd,packet_db[0xe7].len);
-}
-
-
-
-
-void clif_tradeadditem(struct map_session_data* sd, struct map_session_data* tsd, int index, int amount)
-{
- int fd;
- unsigned char *buf;
- do { if (((void)(sd),
-# 3897 "../../../server-code/src/map/clif.c" 3 4
-0
-# 3897 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- do { if (((void)(tsd),
-# 3898 "../../../server-code/src/map/clif.c" 3 4
-0
-# 3898 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- fd = tsd->fd;
- buf = WFIFOP(fd,0);
- WFIFOHEAD(fd,packet_db[tradeaddType].len);
- WBUFW(buf,0) = tradeaddType;
- if( index == 0 )
- {
-
-
-
-
- WBUFW(buf,2) = 0;
- WBUFB(buf,4) = 0;
- WBUFL(buf,5) = amount;
- buf = WBUFP(buf,1);
-
- WBUFB(buf,8) = 0;
- WBUFB(buf,9) = 0;
- WBUFB(buf,10)= 0;
- WBUFW(buf,11)= 0;
- WBUFW(buf,13)= 0;
- WBUFW(buf,15)= 0;
- WBUFW(buf,17)= 0;
-
- clif->add_random_options(WBUFP(buf, 19), &sd->status.inventory[index]);
-
- }
- else
- {
- index -= 2;
-
-
-
-
-
-
-
- if(sd->inventory_data[index] && sd->inventory_data[index]->view_id > 0)
- WBUFW(buf,2) = sd->inventory_data[index]->view_id;
- else
- WBUFW(buf,2) = sd->status.inventory[index].nameid;
- WBUFB(buf,4) = sd->inventory_data[index]->type;
- WBUFL(buf,5) = amount;
- buf = WBUFP(buf,1);
-
- WBUFB(buf,8) = sd->status.inventory[index].identify;
- WBUFB(buf,9) = sd->status.inventory[index].attribute;
- WBUFB(buf,10)= sd->status.inventory[index].refine;
- clif->addcards(WBUFP(buf, 11), &sd->status.inventory[index]);
-
- clif->add_random_options(WBUFP(buf, 19), &sd->status.inventory[index]);
-
- }
- WFIFOSET(fd,packet_db[tradeaddType].len);
-}
-
-
-
-
-
-
-
-void clif_tradeitemok(struct map_session_data* sd, int index, int fail)
-{
- int fd;
- do { if (((void)(sd),
-# 3964 "../../../server-code/src/map/clif.c" 3 4
-0
-# 3964 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- fd = sd->fd;
- WFIFOHEAD(fd,packet_db[0xea].len);
- WFIFOW(fd,0) = 0xea;
- WFIFOW(fd,2) = index;
- WFIFOB(fd,4) = fail;
- WFIFOSET(fd,packet_db[0xea].len);
-}
-
-
-
-
-
-
-void clif_tradedeal_lock(struct map_session_data* sd, int fail)
-{
- int fd;
- do { if (((void)(sd),
-# 3982 "../../../server-code/src/map/clif.c" 3 4
-0
-# 3982 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- fd = sd->fd;
- WFIFOHEAD(fd,packet_db[0xec].len);
- WFIFOW(fd,0) = 0xec;
- WFIFOB(fd,2) = fail;
- WFIFOSET(fd,packet_db[0xec].len);
-}
-
-
-
-void clif_tradecancelled(struct map_session_data* sd)
-{
- int fd;
- do { if (((void)(sd),
-# 3996 "../../../server-code/src/map/clif.c" 3 4
-0
-# 3996 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- fd = sd->fd;
- WFIFOHEAD(fd,packet_db[0xee].len);
- WFIFOW(fd,0) = 0xee;
- WFIFOSET(fd,packet_db[0xee].len);
-}
-
-
-
-
-
-
-void clif_tradecompleted(struct map_session_data* sd, int fail)
-{
- int fd;
- do { if (((void)(sd),
-# 4012 "../../../server-code/src/map/clif.c" 3 4
-0
-# 4012 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- fd = sd->fd;
- WFIFOHEAD(fd,packet_db[0xf0].len);
- WFIFOW(fd,0) = 0xf0;
- WFIFOB(fd,2) = fail;
- WFIFOSET(fd,packet_db[0xf0].len);
-}
-
-
-
-
-
-
-void clif_tradeundo(struct map_session_data* sd)
-{
- int fd;
-
- do { if (((void)(sd),
-# 4030 "../../../server-code/src/map/clif.c" 3 4
-0
-# 4030 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- fd = sd->fd;
- WFIFOHEAD(fd,packet_db[0xf1].len);
- WFIFOW(fd,0) = 0xf1;
- WFIFOSET(fd,packet_db[0xf1].len);
-}
-
-
-
-void clif_updatestorageamount(struct map_session_data* sd, int amount, int max_amount)
-{
- int fd;
-
- do { if (((void)(sd),
-# 4043 "../../../server-code/src/map/clif.c" 3 4
-0
-# 4043 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- fd=sd->fd;
- WFIFOHEAD(fd,packet_db[0xf2].len);
- WFIFOW(fd,0) = 0xf2;
- WFIFOW(fd,2) = amount;
- WFIFOW(fd,4) = max_amount;
- WFIFOSET(fd,packet_db[0xf2].len);
-}
-
-
-
-
-void clif_storageitemadded(struct map_session_data* sd, struct item* i, int index, int amount)
-{
- int view,fd;
- int offset = 0;
-
- do { if (((void)(sd),
-# 4061 "../../../server-code/src/map/clif.c" 3 4
-0
-# 4061 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- do { if (((void)(i),
-# 4062 "../../../server-code/src/map/clif.c" 3 4
-0
-# 4062 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- fd=sd->fd;
- view = (itemdb->search(i->nameid)->view_id);
-
- WFIFOHEAD(fd,packet_db[storageaddType].len);
- WFIFOW(fd,0) = storageaddType;
- WFIFOW(fd,2) = index+1;
- WFIFOL(fd, 4) = amount;
- WFIFOW(fd,8) = ( view > 0 ) ? view : i->nameid;
-
- WFIFOB(fd,10) = itemtype((itemdb->search(i->nameid)->type));
- offset += 1;
-
- WFIFOB(fd,10+offset) = i->identify;
- WFIFOB(fd,11+offset) = i->attribute;
- WFIFOB(fd,12+offset) = i->refine;
- clif->addcards(WFIFOP(fd,13+offset), i);
-
- clif->add_random_options(WFIFOP(fd,21+offset), i);
-
- WFIFOSET(fd,packet_db[storageaddType].len);
-}
-
-
-
-void clif_storageitemremoved(struct map_session_data* sd, int index, int amount)
-{
- int fd;
-
- do { if (((void)(sd),
-# 4091 "../../../server-code/src/map/clif.c" 3 4
-0
-# 4091 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- fd=sd->fd;
- WFIFOHEAD(fd,packet_db[0xf6].len);
- WFIFOW(fd,0)=0xf6;
- WFIFOW(fd,2)=index+1;
- WFIFOL(fd,4)=amount;
- WFIFOSET(fd,packet_db[0xf6].len);
-}
-
-
-
-void clif_storageclose(struct map_session_data* sd)
-{
- int fd;
-
- do { if (((void)(sd),
-# 4107 "../../../server-code/src/map/clif.c" 3 4
-0
-# 4107 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- fd=sd->fd;
- WFIFOHEAD(fd,packet_db[0xf8].len);
- WFIFOW(fd,0) = 0xf8;
- WFIFOSET(fd,packet_db[0xf8].len);
-}
-
-
-
-
-void clif_getareachar_pc(struct map_session_data* sd,struct map_session_data* dstsd) {
- struct block_list *d_bl;
- int i;
-
- do { if (((void)(sd),
-# 4122 "../../../server-code/src/map/clif.c" 3 4
-0
-# 4122 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- do { if (((void)(dstsd),
-# 4123 "../../../server-code/src/map/clif.c" 3 4
-0
-# 4123 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- if( dstsd->chatID ) {
- struct chat_data *cd = map->id2cd(dstsd->chatID);
- if (cd !=
-# 4126 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 4126 "../../../server-code/src/map/clif.c"
- && cd->usersd[0] == dstsd)
- clif->dispchat(cd,sd->fd);
- } else if( dstsd->state.vending )
- clif->showvendingboard(&dstsd->bl,dstsd->message,sd->fd);
- else if( dstsd->state.buyingstore )
- clif->buyingstore_entry_single(sd, dstsd);
-
- if(dstsd->spiritball > 0)
- clif->spiritball_single(sd->fd, dstsd);
- if (dstsd->charm_type != CHARM_TYPE_NONE && dstsd->charm_count > 0)
- clif->charm_single(sd->fd, dstsd);
-
- for( i = 0; i < dstsd->sc_display_count; i++ ) {
- clif->sc_load(&sd->bl,dstsd->bl.id,SELF,status->dbs->IconChangeTable[dstsd->sc_display[i]->type],dstsd->sc_display[i]->val1,dstsd->sc_display[i]->val2,dstsd->sc_display[i]->val3);
- }
- if( (sd->status.party_id && dstsd->status.party_id == sd->status.party_id) ||
- (sd->bg_id && sd->bg_id == dstsd->bg_id) ||
- ( ((sd)->extra_temp_permissions&(PC_PERM_VIEW_HPMETER)) != 0 || ((sd)->group->e_permissions&(PC_PERM_VIEW_HPMETER)) != 0 )
- )
- clif->hpmeter_single(sd->fd, dstsd->bl.id, dstsd->battle_status.hp, dstsd->battle_status.max_hp);
-
-
- do { for ((i) = (0); (i) < (5); ++(i)) if (sd->devotion[i] == dstsd->bl.id) break; } while(
-# 4148 "../../../server-code/src/map/clif.c" 3 4
-0
-# 4148 "../../../server-code/src/map/clif.c"
-);
- if( i < 5 ) clif->devotion(&sd->bl, sd);
-
- do { for ((i) = (0); (i) < (5); ++(i)) if (dstsd->devotion[i] > 0) break; } while(
-# 4151 "../../../server-code/src/map/clif.c" 3 4
-0
-# 4151 "../../../server-code/src/map/clif.c"
-);
- if( i < 5 ) clif->devotion(&dstsd->bl, sd);
-
- if( dstsd->sc.data[SC_DEVOTION] && (d_bl = map->id2bl(dstsd->sc.data[SC_DEVOTION]->val1)) !=
-# 4154 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 4154 "../../../server-code/src/map/clif.c"
- )
- clif->devotion(d_bl, sd);
-}
-
-void clif_getareachar_unit(struct map_session_data* sd,struct block_list *bl) {
- struct unit_data *ud;
- struct view_data *vd;
-
- do { if (((void)(sd),
-# 4162 "../../../server-code/src/map/clif.c" 3 4
-0
-# 4162 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- do { if (((void)(bl),
-# 4163 "../../../server-code/src/map/clif.c" 3 4
-0
-# 4163 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- vd = status->get_viewdata(bl);
- if (!vd || vd->class_ == INVISIBLE_CLASS)
- return;
-
- if (bl->type == BL_NPC) {
-
- struct npc_data *nd = ((TBL_NPC *)BL_UCAST_(bl));
- if (nd->chat_id == 0 && (nd->option&OPTION_INVISIBLE))
- return;
- }
-
- if ( ( ud = unit->bl2ud(bl) ) && ud->walktimer != (-1) )
- clif->set_unit_walking(bl,sd,ud,SELF);
- else
- clif->set_unit_idle(bl,sd,SELF);
-
- if (vd->cloth_color)
- clif->refreshlook(&sd->bl,bl->id,LOOK_CLOTHES_COLOR,vd->cloth_color,SELF);
- if (vd->body_style)
- clif->refreshlook(&sd->bl,bl->id,LOOK_BODY2,vd->body_style,SELF);
-
- switch (bl->type) {
- case BL_PC:
- {
- struct map_session_data *tsd = ((TBL_PC *)BL_UCAST_(bl));
- clif->getareachar_pc(sd, tsd);
- if (tsd->state.size == SZ_BIG)
- clif->specialeffect_single(bl,423,sd->fd);
- else if (tsd->state.size == SZ_MEDIUM)
- clif->specialeffect_single(bl,421,sd->fd);
- if (tsd->bg_id != 0 && map->list[tsd->bl.m].flag.battleground)
- clif->sendbgemblem_single(sd->fd,tsd);
- if (tsd->status.robe)
- clif->refreshlook(&sd->bl,bl->id,LOOK_ROBE,tsd->status.robe,SELF);
- }
- break;
- case BL_MER:
- {
- struct mercenary_data *md = ((TBL_MER *)BL_UCAST_(bl));
- if (md->devotion_flag)
- clif->devotion(bl, sd);
- }
- break;
- case BL_NPC:
- {
- struct npc_data *nd = ((TBL_NPC *)BL_UCAST_(bl));
- if (nd->chat_id != 0)
- clif->dispchat(map->id2cd(nd->chat_id), sd->fd);
- if (nd->size == SZ_BIG)
- clif->specialeffect_single(bl,423,sd->fd);
- else if (nd->size == SZ_MEDIUM)
- clif->specialeffect_single(bl,421,sd->fd);
- }
- break;
- case BL_MOB:
- {
- struct mob_data *md = ((TBL_MOB *)BL_UCAST_(bl));
- if (md->special_state.size == SZ_BIG)
- clif->specialeffect_single(bl,423,sd->fd);
- else if (md->special_state.size == SZ_MEDIUM)
- clif->specialeffect_single(bl,421,sd->fd);
-# 4237 "../../../server-code/src/map/clif.c"
- }
- break;
- case BL_PET:
- if (vd->head_bottom)
- clif->send_petdata(
-# 4241 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 4241 "../../../server-code/src/map/clif.c"
- , ((TBL_PET *)BL_UCAST_(bl)), 3, vd->head_bottom);
- break;
- }
-}
-
-
-
-static inline int clif_calc_delay(int type, int div, int damage, int delay)
-{
- return ( delay == 0 && damage > 0 ) ? ( div > 1 ? 9 : 4 ) : type;
-}
-
-
-
-
-int clif_calc_walkdelay(struct block_list *bl,int delay, int type, int damage, int div_) {
- if (type == 4 || type == 9 || damage <=0)
- return 0;
-
- do { if (((void)(bl),
-# 4260 "../../../server-code/src/map/clif.c" 3 4
-0
-# 4260 "../../../server-code/src/map/clif.c"
-)) return(delay); } while(0);
- if (bl->type == BL_PC) {
- if (battle_config.pc_walk_delay_rate != 100)
- delay = delay*battle_config.pc_walk_delay_rate/100;
- } else
- if (battle_config.walk_delay_rate != 100)
- delay = delay*battle_config.walk_delay_rate/100;
-
- if (div_ > 1)
- delay += battle_config.multihit_delay*(div_-1);
-
- return delay>0?delay:1;
-}
-
-
-
-
-
-
-
-int clif_damage(struct block_list* src, struct block_list* dst, int sdelay, int ddelay, int64 in_damage, short div, unsigned char type, int64 in_damage2) {
- struct packet_damage p;
- struct status_change *sc;
-
-
-
- int damage,damage2;
-
-
- do { if (((void)(src),
-# 4289 "../../../server-code/src/map/clif.c" 3 4
-0
-# 4289 "../../../server-code/src/map/clif.c"
-)) return(0); } while(0);
- do { if (((void)(dst),
-# 4290 "../../../server-code/src/map/clif.c" 3 4
-0
-# 4290 "../../../server-code/src/map/clif.c"
-)) return(0); } while(0);
-
- sc = status->get_sc(dst);
-
- if(sc && sc->count && sc->data[SC_ILLUSION]) {
- if(in_damage) in_damage = in_damage*(sc->data[SC_ILLUSION]->val2) + rnd()%100;
- if(in_damage2) in_damage2 = in_damage2*(sc->data[SC_ILLUSION]->val2) + rnd()%100;
- }
-
-
-
-
-
- damage = (int)(((in_damage) < (0x7fffffff)) ? (in_damage) : (0x7fffffff));
- damage2 = (int)(((in_damage2) < (0x7fffffff)) ? (in_damage2) : (0x7fffffff));
-
-
- type = clif_calc_delay(type,div,damage+damage2,ddelay);
-
- p.PacketType = damageType;
- p.GID = src->id;
- p.targetGID = dst->id;
- p.startTime = (uint32)timer->gettick();
- p.attackMT = sdelay;
- p.attackedMT = ddelay;
- p.count = div;
- p.action = type;
-
- if( battle_config.hide_woe_damage && (map->list[src->m].flag.gvg || map->list[src->m].flag.gvg_castle) ) {
- p.damage = damage?div:0;
- p.leftDamage = damage2?div:0;
- } else {
- p.damage = damage;
- p.leftDamage = damage2;
- }
-
- p.is_sp_damaged = 0;
-
-
- if(disguised(dst)) {
- clif->send(&p,sizeof(p),dst,AREA_WOS);
- p.targetGID = -dst->id;
- clif->send(&p,sizeof(p),dst,SELF);
- } else
- clif->send(&p,sizeof(p),dst,AREA);
-
- if(disguised(src)) {
- p.GID = -src->id;
- if (disguised(dst))
- p.targetGID = dst->id;
-
- if(damage > 0) p.damage = -1;
- if(damage2 > 0) p.leftDamage = -1;
-
- clif->send(&p,sizeof(p),src,SELF);
- }
-
- if(src == dst) {
- unit->setdir(src,unit->getdir(src));
- }
-
-
- return clif->calc_walkdelay(dst,ddelay,type,damage+damage2,div);
-}
-
-
-
-
-void clif_takeitem(struct block_list* src, struct block_list* dst)
-{
-
- unsigned char buf[32];
-
- do { if (((void)(src),
-# 4363 "../../../server-code/src/map/clif.c" 3 4
-0
-# 4363 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- do { if (((void)(dst),
-# 4364 "../../../server-code/src/map/clif.c" 3 4
-0
-# 4364 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- WBUFW(buf,0) = 0x8a;
- WBUFL(buf, 2) = src->id;
- WBUFL(buf, 6) = dst->id;
- WBUFB(buf,26) = 1;
- clif->send(buf, packet_db[0x8a].len, src, AREA);
-
-}
-
-
-
-
-void clif_sitting(struct block_list* bl)
-{
- unsigned char buf[32];
- do { if (((void)(bl),
-# 4380 "../../../server-code/src/map/clif.c" 3 4
-0
-# 4380 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- WBUFW(buf,0) = 0x8a;
- WBUFL(buf, 2) = bl->id;
- WBUFB(buf,26) = 2;
- clif->send(buf, packet_db[0x8a].len, bl, AREA);
-
- if(disguised(bl)) {
- WBUFL(buf, 2) = - bl->id;
- clif->send(buf, packet_db[0x8a].len, bl, SELF);
- }
-}
-
-
-
-
-void clif_standing(struct block_list* bl)
-{
- unsigned char buf[32];
- do { if (((void)(bl),
-# 4399 "../../../server-code/src/map/clif.c" 3 4
-0
-# 4399 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- WBUFW(buf,0) = 0x8a;
- WBUFL(buf, 2) = bl->id;
- WBUFB(buf,26) = 3;
- clif->send(buf, packet_db[0x8a].len, bl, AREA);
-
- if(disguised(bl)) {
- WBUFL(buf, 2) = - bl->id;
- clif->send(buf, packet_db[0x8a].len, bl, SELF);
- }
-}
-
-
-
-void clif_changemapcell(int fd, int16 m, int x, int y, int type, enum send_target target) {
- unsigned char buf[32];
-
- WBUFW(buf,0) = 0x192;
- WBUFW(buf,2) = x;
- WBUFW(buf,4) = y;
- WBUFW(buf,6) = type;
- mapindex->getmapname_ext(map->list[m].custom_name ? map->list[map->list[m].instance_src_map].name : map->list[m].name, WBUFP(buf,8));
-
- if( fd ) {
- WFIFOHEAD(fd,packet_db[0x192].len);
- memcpy(WFIFOP(fd,0), buf, packet_db[0x192].len);
- WFIFOSET(fd,packet_db[0x192].len);
- } else {
- struct block_list dummy_bl;
- dummy_bl.type = BL_NUL;
- dummy_bl.x = x;
- dummy_bl.y = y;
- dummy_bl.m = m;
- clif->send(buf,packet_db[0x192].len,&dummy_bl,target);
- }
-}
-
-
-
-void clif_getareachar_item(struct map_session_data* sd,struct flooritem_data* fitem) {
- int view,fd;
-
- do { if (((void)(sd),
-# 4442 "../../../server-code/src/map/clif.c" 3 4
-0
-# 4442 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- do { if (((void)(fitem),
-# 4443 "../../../server-code/src/map/clif.c" 3 4
-0
-# 4443 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- fd=sd->fd;
-
- WFIFOHEAD(fd,packet_db[0x9d].len);
- WFIFOW(fd,0)=0x9d;
- WFIFOL(fd,2)=fitem->bl.id;
- if((view = (itemdb->search(fitem->item_data.nameid)->view_id)) > 0)
- WFIFOW(fd,6)=view;
- else
- WFIFOW(fd,6)=fitem->item_data.nameid;
- WFIFOB(fd,8)=fitem->item_data.identify;
- WFIFOW(fd,9)=fitem->bl.x;
- WFIFOW(fd,11)=fitem->bl.y;
- WFIFOW(fd,13)=fitem->item_data.amount;
- WFIFOB(fd,15)=fitem->subx;
- WFIFOB(fd,16)=fitem->suby;
- WFIFOSET(fd,packet_db[0x9d].len);
-}
-
-void clif_graffiti_entry(struct block_list *bl, struct skill_unit *su, enum send_target target) {
- struct packet_graffiti_entry p;
-
- do { if (((void)(bl),
-# 4465 "../../../server-code/src/map/clif.c" 3 4
-0
-# 4465 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- do { if (((void)(su),
-# 4466 "../../../server-code/src/map/clif.c" 3 4
-0
-# 4466 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- do { if (((void)(su->group),
-# 4467 "../../../server-code/src/map/clif.c" 3 4
-0
-# 4467 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- p.PacketType = graffiti_entryType;
- p.AID = su->bl.id;
- p.creatorAID = su->group->src_id;
- p.xPos = su->bl.x;
- p.yPos = su->bl.y;
- p.job = su->group->unit_id;
- p.isContens = 1;
- p.isVisible = 1;
- (strlib->safestrncpy_((p.msg),(su->group->valstr),(80)));
-
- clif->send(&p,sizeof(p),bl,target);
-}
-
-
-
-
-
-
-void clif_getareachar_skillunit(struct block_list *bl, struct skill_unit *su, enum send_target target) {
- struct packet_skill_entry p;
- do { if (((void)(bl),
-# 4488 "../../../server-code/src/map/clif.c" 3 4
-0
-# 4488 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- do { if (((void)(su),
-# 4489 "../../../server-code/src/map/clif.c" 3 4
-0
-# 4489 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- do { if (((void)(su->group),
-# 4490 "../../../server-code/src/map/clif.c" 3 4
-0
-# 4490 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- if( su->group->state.guildaura )
- return;
-
-
- if(su->group->unit_id == UNT_GRAFFITI) {
- clif->graffiti_entry(bl,su,target);
- return;
- }
-
-
- p.PacketType = skill_entryType;
-
- p.PacketLength = sizeof(p);
-
-
- p.AID = su->bl.id;
- p.creatorAID = su->group->src_id;
- p.xPos = su->bl.x;
- p.yPos = su->bl.y;
-
-
- if ((battle_config.traps_setting&1 && skill->get_inf2(su->group->skill_id)&INF2_TRAP) ||
- (skill->get_unit_flag(su->group->skill_id) & UF_RANGEDSINGLEUNIT && !(su->val2 & UF_RANGEDSINGLEUNIT)))
- p.job = UNT_DUMMYSKILL;
- else
- p.job = su->group->unit_id;
-
-
- p.RadiusRange = (unsigned char)su->range;
-
-
- p.isVisible = 1;
-
-
- p.level = (unsigned char)su->group->skill_lv;
-
-
- clif->send(&p,sizeof(p),bl,target);
-
- if (su->group->skill_id == WZ_ICEWALL) {
- struct map_session_data *sd = ( ((bl) == (struct block_list *)
-# 4532 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 4532 "../../../server-code/src/map/clif.c"
- || (bl)->type != (BL_PC)) ? (TBL_PC *)
-# 4532 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 4532 "../../../server-code/src/map/clif.c"
- : (TBL_PC *)(bl) );
- clif->changemapcell(sd !=
-# 4533 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 4533 "../../../server-code/src/map/clif.c"
- ? sd->fd : 0, su->bl.m, su->bl.x, su->bl.y, 5, SELF);
- }
-}
-
-
-
-
-void clif_clearchar_skillunit(struct skill_unit *su, int fd) {
- do { if (((void)(su),
-# 4541 "../../../server-code/src/map/clif.c" 3 4
-0
-# 4541 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- WFIFOHEAD(fd,packet_db[0x120].len);
- WFIFOW(fd,0)=0x120;
- WFIFOL(fd, 2)=su->bl.id;
- WFIFOSET(fd,packet_db[0x120].len);
-
- if(su->group && su->group->skill_id == WZ_ICEWALL)
- clif->changemapcell(fd,su->bl.m,su->bl.x,su->bl.y,su->val2,SELF);
-}
-
-
-
-void clif_skill_delunit(struct skill_unit *su) {
- unsigned char buf[16];
-
- do { if (((void)(su),
-# 4557 "../../../server-code/src/map/clif.c" 3 4
-0
-# 4557 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- WBUFW(buf,0)=0x120;
- WBUFL(buf, 2)=su->bl.id;
- clif->send(buf,packet_db[0x120].len,&su->bl,AREA);
-}
-
-
-
-
-void clif_skillunit_update(struct block_list* bl)
-{
- unsigned char buf[6];
- do { if (((void)(bl),
-# 4570 "../../../server-code/src/map/clif.c" 3 4
-0
-# 4570 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- WBUFW(buf,0) = 0x1ac;
- WBUFL(buf,2) = bl->id;
-
- clif->send(buf,packet_db[0x1ac].len,bl,AREA);
-}
-
-
-
-
-int clif_getareachar(struct block_list* bl,va_list ap) {
- struct map_session_data *sd;
-
- do { if (((void)(bl),
-# 4584 "../../../server-code/src/map/clif.c" 3 4
-0
-# 4584 "../../../server-code/src/map/clif.c"
-)) return(0); } while(0);
-
- sd=
-# 4586 "../../../server-code/src/map/clif.c" 3 4
- __builtin_va_arg(
-# 4586 "../../../server-code/src/map/clif.c"
- ap
-# 4586 "../../../server-code/src/map/clif.c" 3 4
- ,
-# 4586 "../../../server-code/src/map/clif.c"
- struct map_session_data*
-# 4586 "../../../server-code/src/map/clif.c" 3 4
- )
-# 4586 "../../../server-code/src/map/clif.c"
- ;
-
- if (sd ==
-# 4588 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 4588 "../../../server-code/src/map/clif.c"
- || !sd->fd)
- return 0;
-
- switch(bl->type){
- case BL_ITEM:
- clif->getareachar_item(sd, ((TBL_ITEM *)BL_UCAST_(bl)));
- break;
- case BL_SKILL:
- clif->getareachar_skillunit(&sd->bl, ((TBL_SKILL *)BL_UCAST_(bl)), SELF);
- break;
- default:
- if(&sd->bl == bl)
- break;
- clif->getareachar_unit(sd,bl);
- break;
- }
- return 0;
-}
-
-
-
-
-int clif_outsight(struct block_list *bl,va_list ap)
-{
- struct block_list *tbl;
- struct view_data *vd;
- struct map_session_data *sd, *tsd;
- tbl=
-# 4615 "../../../server-code/src/map/clif.c" 3 4
- __builtin_va_arg(
-# 4615 "../../../server-code/src/map/clif.c"
- ap
-# 4615 "../../../server-code/src/map/clif.c" 3 4
- ,
-# 4615 "../../../server-code/src/map/clif.c"
- struct block_list*
-# 4615 "../../../server-code/src/map/clif.c" 3 4
- )
-# 4615 "../../../server-code/src/map/clif.c"
- ;
- if(bl == tbl) return 0;
-
- sd = ( ((bl) == (struct block_list *)
-# 4618 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 4618 "../../../server-code/src/map/clif.c"
- || (bl)->type != (BL_PC)) ? (TBL_PC *)
-# 4618 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 4618 "../../../server-code/src/map/clif.c"
- : (TBL_PC *)(bl) );
- tsd = ( ((tbl) == (struct block_list *)
-# 4619 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 4619 "../../../server-code/src/map/clif.c"
- || (tbl)->type != (BL_PC)) ? (TBL_PC *)
-# 4619 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 4619 "../../../server-code/src/map/clif.c"
- : (TBL_PC *)(tbl) );
-
- if (tsd && tsd->fd) {
- do { if (((void)(bl),
-# 4622 "../../../server-code/src/map/clif.c" 3 4
- 0
-# 4622 "../../../server-code/src/map/clif.c"
- )) return(0); } while(0);
- switch(bl->type){
- case BL_PC:
- if (sd->vd.class_ != INVISIBLE_CLASS)
- clif->clearunit_single(bl->id,CLR_OUTSIGHT,tsd->fd);
- if (sd->chatID) {
- struct chat_data *cd = map->id2cd(sd->chatID);
- if(cd->usersd[0]==sd)
- clif->dispchat(cd,tsd->fd);
- }
- if( sd->state.vending )
- clif->closevendingboard(bl,tsd->fd);
- if( sd->state.buyingstore )
- clif->buyingstore_disappear_entry_single(tsd, sd);
- break;
- case BL_ITEM:
- clif->clearflooritem(((TBL_ITEM *)BL_UCAST_(bl)), tsd->fd);
- break;
- case BL_SKILL:
- clif->clearchar_skillunit(((TBL_SKILL *)BL_UCAST_(bl)), tsd->fd);
- break;
- case BL_NPC:
- if (!(((TBL_NPC *)BL_UCAST_(bl))->option&OPTION_INVISIBLE))
- clif->clearunit_single(bl->id,CLR_OUTSIGHT,tsd->fd);
- break;
- default:
- if ((vd=status->get_viewdata(bl)) && vd->class_ != INVISIBLE_CLASS)
- clif->clearunit_single(bl->id,CLR_OUTSIGHT,tsd->fd);
- break;
- }
- }
- if (sd && sd->fd) {
- do { if (((void)(tbl),
-# 4654 "../../../server-code/src/map/clif.c" 3 4
- 0
-# 4654 "../../../server-code/src/map/clif.c"
- )) return(0); } while(0);
- if (tbl->type == BL_SKILL)
- clif->clearchar_skillunit(((TBL_SKILL *)BL_UCAST_(tbl)), sd->fd);
- else if ((vd = status->get_viewdata(tbl)) && vd->class_ != INVISIBLE_CLASS
- && !(tbl->type == BL_NPC && (((TBL_NPC *)BL_UCAST_(tbl))->option&OPTION_INVISIBLE)))
- clif->clearunit_single(tbl->id,CLR_OUTSIGHT,sd->fd);
- }
- return 0;
-}
-
-
-
-
-int clif_insight(struct block_list *bl,va_list ap)
-{
- struct block_list *tbl;
- struct map_session_data *sd, *tsd;
- tbl=
-# 4671 "../../../server-code/src/map/clif.c" 3 4
- __builtin_va_arg(
-# 4671 "../../../server-code/src/map/clif.c"
- ap
-# 4671 "../../../server-code/src/map/clif.c" 3 4
- ,
-# 4671 "../../../server-code/src/map/clif.c"
- struct block_list*
-# 4671 "../../../server-code/src/map/clif.c" 3 4
- )
-# 4671 "../../../server-code/src/map/clif.c"
- ;
-
- if (bl == tbl) return 0;
-
- sd = ( ((bl) == (struct block_list *)
-# 4675 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 4675 "../../../server-code/src/map/clif.c"
- || (bl)->type != (BL_PC)) ? (TBL_PC *)
-# 4675 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 4675 "../../../server-code/src/map/clif.c"
- : (TBL_PC *)(bl) );
- tsd = ( ((tbl) == (struct block_list *)
-# 4676 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 4676 "../../../server-code/src/map/clif.c"
- || (tbl)->type != (BL_PC)) ? (TBL_PC *)
-# 4676 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 4676 "../../../server-code/src/map/clif.c"
- : (TBL_PC *)(tbl) );
-
- if (tsd && tsd->fd) {
- do { if (((void)(bl),
-# 4679 "../../../server-code/src/map/clif.c" 3 4
- 0
-# 4679 "../../../server-code/src/map/clif.c"
- )) return(0); } while(0);
- switch(bl->type) {
- case BL_ITEM:
- clif->getareachar_item(tsd, ((TBL_ITEM *)BL_UCAST_(bl)));
- break;
- case BL_SKILL:
- clif->getareachar_skillunit(&tsd->bl, ((TBL_SKILL *)BL_UCAST_(bl)), SELF);
- break;
- default:
- clif->getareachar_unit(tsd,bl);
- break;
- }
- }
- if (sd && sd->fd) {
- clif->getareachar_unit(sd,tbl);
- }
- return 0;
-}
-
-
-
-void clif_skillinfoblock(struct map_session_data *sd)
-{
- int fd;
- int i,len,id;
-
- do { if (((void)(sd),
-# 4705 "../../../server-code/src/map/clif.c" 3 4
-0
-# 4705 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- fd=sd->fd;
- if (!fd) return;
-
- WFIFOHEAD(fd, 1478 * 37 + 4);
- WFIFOW(fd,0) = 0x10f;
- for ( i = 0, len = 4; i < 1478; i++) {
- if( (id = sd->status.skill[i].id) != 0 ) {
- int level;
-
- if (len + 37 > 8192)
- break;
-
- WFIFOW(fd,len) = id;
- WFIFOL(fd, len + 2) = skill->get_inf(id);
- level = sd->status.skill[i].lv;
- WFIFOW(fd,len + 6) = level;
- if (level) {
- WFIFOW(fd,len + 8) = skill->get_sp(id, level);
- WFIFOW(fd,len + 10)= skill->get_range2(&sd->bl, id, level);
- }
- else {
- WFIFOW(fd,len + 8) = 0;
- WFIFOW(fd,len + 10)= 0;
- }
- (strlib->safestrncpy_((WFIFOP(fd,len+12)),(skill->get_name(id)),((23 + 1))));
- if(sd->status.skill[i].flag == SKILL_FLAG_PERMANENT)
- WFIFOB(fd,len+36) = (sd->status.skill[i].lv < skill->tree_get_max(id, sd->status.class_))? 1:0;
- else
- WFIFOB(fd,len+36) = 0;
- len += 37;
- }
- }
- WFIFOW(fd,2)=len;
- WFIFOSET(fd,len);
-
-
- for ( ; i < 1478; i++) {
- if( (id = sd->status.skill[i].id) != 0 ) {
- clif->addskill(sd, id);
- clif->skillinfo(sd, id, 0);
- }
- }
-}
-
-
-
-
-
-
-void clif_addskill(struct map_session_data *sd, int id)
-{
- int fd, skill_lv, idx = skill->get_index(id);
-
- do { if (((void)(sd),
-# 4760 "../../../server-code/src/map/clif.c" 3 4
-0
-# 4760 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- fd = sd->fd;
- if (!fd) return;
-
- if (sd->status.skill[idx].id <= 0)
- return;
-
- skill_lv = sd->status.skill[idx].lv;
-
- WFIFOHEAD(fd, packet_db[0x111].len);
- WFIFOW(fd,0) = 0x111;
- WFIFOW(fd,2) = id;
- WFIFOL(fd,4) = skill->get_inf(id);
- WFIFOW(fd,8) = skill_lv;
- if (skill_lv > 0) {
- WFIFOW(fd,10) = skill->get_sp(id, skill_lv);
- WFIFOW(fd,12) = skill->get_range2(&sd->bl, id, skill_lv);
- } else {
- WFIFOW(fd,10) = 0;
- WFIFOW(fd,12) = 0;
- }
- (strlib->safestrncpy_((WFIFOP(fd,14)),(skill->get_name(id)),((23 + 1))));
- if (sd->status.skill[idx].flag == SKILL_FLAG_PERMANENT)
- WFIFOB(fd,38) = (skill_lv < skill->tree_get_max(id, sd->status.class_))? 1:0;
- else
- WFIFOB(fd,38) = 0;
- WFIFOSET(fd,packet_db[0x111].len);
-}
-
-
-
-void clif_deleteskill(struct map_session_data *sd, int id)
-{
-
- int fd;
-
- do { if (((void)(sd),
-# 4797 "../../../server-code/src/map/clif.c" 3 4
-0
-# 4797 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- fd = sd->fd;
- if( !fd ) return;
-
- WFIFOHEAD(fd,packet_db[0x441].len);
- WFIFOW(fd,0) = 0x441;
- WFIFOW(fd,2) = id;
- WFIFOSET(fd,packet_db[0x441].len);
-
- clif->skillinfoblock(sd);
-}
-
-
-
-
-
-
-
-void clif_skillup(struct map_session_data *sd, uint16 skill_id, int skill_lv, int flag)
-{
- int fd;
- do { if (((void)(sd),
-# 4818 "../../../server-code/src/map/clif.c" 3 4
-0
-# 4818 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- fd = sd->fd;
-
- WFIFOHEAD(fd, packet_db[0x10e].len);
- WFIFOW(fd,0) = 0x10e;
- WFIFOW(fd,2) = skill_id;
- WFIFOW(fd,4) = skill_lv;
- WFIFOW(fd,6) = skill->get_sp(skill_id, skill_lv);
- WFIFOW(fd,8) = (flag)?skill->get_range2(&sd->bl, skill_id, skill_lv) : skill->get_range(skill_id, skill_lv);
- if( flag )
- WFIFOB(fd,10) = (skill_lv < skill->tree_get_max(skill_id, sd->status.class_)) ? 1 : 0;
- else
- WFIFOB(fd,10) = 1;
-
- WFIFOSET(fd, packet_db[0x10e].len);
-}
-
-
-
-void clif_skillinfo(struct map_session_data *sd,int skill_id, int inf)
-{
- const int fd = sd->fd;
- int idx = skill->get_index(skill_id);
- int skill_lv;
-
- do { if (((void)(sd),
-# 4844 "../../../server-code/src/map/clif.c" 3 4
-0
-# 4844 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- do { if (( (idx >= 0 && idx < 1478) ?
-# 4845 "../../../server-code/src/map/clif.c" 3 4
-0
-# 4845 "../../../server-code/src/map/clif.c"
-: (nullpo->assert_report("../../../server-code/src/map/clif.c", 4845, __func__, "idx >= 0 && idx < 1478", "failed assertion"),
-# 4845 "../../../server-code/src/map/clif.c" 3 4
-1
-# 4845 "../../../server-code/src/map/clif.c"
-) )) return; } while(0);
-
- skill_lv = sd->status.skill[idx].lv;
-
- WFIFOHEAD(fd,packet_db[0x7e1].len);
- WFIFOW(fd,0) = 0x7e1;
- WFIFOW(fd,2) = skill_id;
- WFIFOL(fd,4) = inf?inf:skill->get_inf(skill_id);
- WFIFOW(fd,8) = skill_lv;
- if (skill_lv > 0) {
- WFIFOW(fd,10) = skill->get_sp(skill_id, skill_lv);
- WFIFOW(fd,12) = skill->get_range2(&sd->bl, skill_id, skill_lv);
- } else {
- WFIFOW(fd,10) = 0;
- WFIFOW(fd,12) = 0;
- }
- if (sd->status.skill[idx].flag == SKILL_FLAG_PERMANENT)
- WFIFOB(fd,14) = (skill_lv < skill->tree_get_max(skill_id, sd->status.class_))? 1:0;
- else
- WFIFOB(fd,14) = 0;
- WFIFOSET(fd,packet_db[0x7e1].len);
-}
-# 4883 "../../../server-code/src/map/clif.c"
-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)
-{
-
-
-
- const int cmd = 0x7fb;
-
- unsigned char buf[32];
-
- WBUFW(buf,0) = cmd;
- WBUFL(buf,2) = src_id;
- WBUFL(buf,6) = dst_id;
- WBUFW(buf,10) = dst_x;
- WBUFW(buf,12) = dst_y;
- WBUFW(buf,14) = skill_id;
- WBUFL(buf,16) = property<0?0:property;
- WBUFL(buf,20) = casttime;
-
- WBUFB(buf,24) = 0;
-
-
- if (disguised(bl)) {
- clif->send(buf,packet_db[cmd].len, bl, AREA_WOS);
- WBUFL(buf,2) = -src_id;
- clif->send(buf,packet_db[cmd].len, bl, SELF);
- } else
- clif->send(buf,packet_db[cmd].len, bl, AREA);
-}
-
-
-
-void clif_skillcastcancel(struct block_list* bl)
-{
- unsigned char buf[16];
-
- do { if (((void)(bl),
-# 4918 "../../../server-code/src/map/clif.c" 3 4
-0
-# 4918 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- WBUFW(buf,0) = 0x1b9;
- WBUFL(buf,2) = bl->id;
- clif->send(buf,packet_db[0x1b9].len, bl, AREA);
-}
-# 4948 "../../../server-code/src/map/clif.c"
-void clif_skill_fail(struct map_session_data *sd,uint16 skill_id,enum useskill_fail_cause cause,int btype)
-{
- int fd;
-
- if (!sd) {
-
- (showmsg->showDebug(("clif_skill_fail: Error, received NULL sd for skill %d\n"), skill_id));
- return;
- }
-
- fd=sd->fd;
- if (!fd) return;
-
- if(battle_config.display_skill_fail&1)
- return;
-
- if(cause==USESKILL_FAIL_SKILLINTERVAL && !sd->state.showdelay)
- return;
-
- if(skill_id == RG_SNATCHER && battle_config.display_skill_fail&4)
- return;
-
- if(skill_id == TF_POISON && battle_config.display_skill_fail&8)
- return;
-
- WFIFOHEAD(fd,packet_db[0x110].len);
- WFIFOW(fd,0) = 0x110;
- WFIFOW(fd,2) = skill_id;
- WFIFOL(fd,4) = btype;
- WFIFOB(fd,8) = 0;
- WFIFOB(fd,9) = cause;
- WFIFOSET(fd,packet_db[0x110].len);
-}
-
-
-
-void clif_skill_cooldown(struct map_session_data *sd, uint16 skill_id, unsigned int duration)
-{
-
- int fd;
-
- do { if (((void)(sd),
-# 4989 "../../../server-code/src/map/clif.c" 3 4
-0
-# 4989 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- fd=sd->fd;
- WFIFOHEAD(fd,packet_db[0x43d].len);
- WFIFOW(fd,0) = 0x43d;
- WFIFOW(fd,2) = skill_id;
- WFIFOL(fd,4) = duration;
- WFIFOSET(fd,packet_db[0x43d].len);
-
-}
-
-
-
-
-int clif_skill_damage(struct block_list *src, struct block_list *dst, int64 tick, int sdelay, int ddelay, int64 in_damage, int div, uint16 skill_id, uint16 skill_lv, int type) {
- unsigned char buf[64];
- struct status_change *sc;
- int damage;
-
- do { if (((void)(src),
-# 5008 "../../../server-code/src/map/clif.c" 3 4
-0
-# 5008 "../../../server-code/src/map/clif.c"
-)) return(0); } while(0);
- do { if (((void)(dst),
-# 5009 "../../../server-code/src/map/clif.c" 3 4
-0
-# 5009 "../../../server-code/src/map/clif.c"
-)) return(0); } while(0);
-
- damage = (int)(((in_damage) >= (0x7fffffff)) ? (0x7fffffff) : ((in_damage) <= (
-# 5011 "../../../server-code/src/map/clif.c" 3 4
- (-0x7fffffff - 1)
-# 5011 "../../../server-code/src/map/clif.c"
- )) ? (
-# 5011 "../../../server-code/src/map/clif.c" 3 4
- (-0x7fffffff - 1)
-# 5011 "../../../server-code/src/map/clif.c"
- ) : (in_damage));
- type = clif_calc_delay(type, div, damage, ddelay);
-
-
- if (type == BDT_SKILL) type = BDT_MULTIHIT;
-
-
- if ((sc = status->get_sc(dst)) && sc->count) {
- if (sc->data[SC_ILLUSION] && damage)
- damage = damage * (sc->data[SC_ILLUSION]->val2) + rnd() % 100;
- }
-# 5055 "../../../server-code/src/map/clif.c"
- WBUFW(buf,0) = 0x1de;
- WBUFW(buf,2) = skill_id;
- WBUFL(buf, 4) = src->id;
- WBUFL(buf, 8) = dst->id;
- WBUFL(buf, 12) = (uint32)tick;
- WBUFL(buf, 16) = sdelay;
- WBUFL(buf, 20) = ddelay;
- if (battle_config.hide_woe_damage && (map->list[src->m].flag.gvg || map->list[src->m].flag.gvg_castle)) {
- WBUFL(buf, 24) = damage ? div : 0;
- } else {
- WBUFL(buf, 24) = damage;
- }
- WBUFW(buf,28) = skill_lv;
- WBUFW(buf,30) = div;
-
-
-
-
-
-
-
- WBUFB(buf, 32) = (type == BDT_SKILL) ? BDT_MULTIHIT : type;
-
- if (disguised(dst)) {
- clif->send(buf, packet_db[0x1de].len, dst, AREA_WOS);
- WBUFL(buf,8)=-dst->id;
- clif->send(buf, packet_db[0x1de].len, dst, SELF);
- } else
- clif->send(buf, packet_db[0x1de].len, dst, AREA);
-
- if (disguised(src)) {
- WBUFL(buf, 4) = -src->id;
- if (disguised(dst))
- WBUFL(buf, 8) = dst->id;
- if (damage > 0)
- WBUFL(buf, 24) = -1;
- clif->send(buf, packet_db[0x1de].len, src, SELF);
- }
-
-
-
- return clif->calc_walkdelay(dst, ddelay, type, damage, div);
-}
-# 5158 "../../../server-code/src/map/clif.c"
-int clif_skill_nodamage(struct block_list *src,struct block_list *dst,uint16 skill_id,int heal,int fail)
-{
- unsigned char buf[32];
-
- do { if (((void)(dst),
-# 5162 "../../../server-code/src/map/clif.c" 3 4
-0
-# 5162 "../../../server-code/src/map/clif.c"
-)) return(0); } while(0);
-
- WBUFW(buf,0)=0x11a;
- WBUFW(buf,2)=skill_id;
- WBUFW(buf,4)=(((heal) < (
-# 5166 "../../../server-code/src/map/clif.c" 3 4
- (32767)
-# 5166 "../../../server-code/src/map/clif.c"
- )) ? (heal) : (
-# 5166 "../../../server-code/src/map/clif.c" 3 4
- (32767)
-# 5166 "../../../server-code/src/map/clif.c"
- ));
- WBUFL(buf,6)=dst->id;
- WBUFL(buf,10)=src?src->id:0;
- WBUFB(buf,14)=fail;
-
- if (disguised(dst)) {
- clif->send(buf,packet_db[0x11a].len,dst,AREA_WOS);
- WBUFL(buf,6)=-dst->id;
- clif->send(buf,packet_db[0x11a].len,dst,SELF);
- } else
- clif->send(buf,packet_db[0x11a].len,dst,AREA);
-
- if(src && disguised(src)) {
- WBUFL(buf,10)=-src->id;
- if (disguised(dst))
- WBUFL(buf,6)=dst->id;
- clif->send(buf,packet_db[0x11a].len,src,SELF);
- }
-
- return fail;
-}
-
-
-
-void clif_skill_poseffect(struct block_list *src, uint16 skill_id, int val, int x, int y, int64 tick) {
- unsigned char buf[32];
-
- do { if (((void)(src),
-# 5193 "../../../server-code/src/map/clif.c" 3 4
-0
-# 5193 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- WBUFW(buf,0)=0x117;
- WBUFW(buf,2)=skill_id;
- WBUFL(buf,4)=src->id;
- WBUFW(buf,8)=val;
- WBUFW(buf,10)=x;
- WBUFW(buf,12)=y;
- WBUFL(buf,14)=(uint32)tick;
- if(disguised(src)) {
- clif->send(buf,packet_db[0x117].len,src,AREA_WOS);
- WBUFL(buf,4)=-src->id;
- clif->send(buf,packet_db[0x117].len,src,SELF);
- } else
- clif->send(buf,packet_db[0x117].len,src,AREA);
-}
-
-
-
-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;
-
- do { if (((void)(sd),
-# 5216 "../../../server-code/src/map/clif.c" 3 4
-0
-# 5216 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- fd = sd->fd;
-
- WFIFOHEAD(fd,packet_db[0x11c].len);
- WFIFOW(fd,0) = 0x11c;
- WFIFOW(fd,2) = skill_id;
- memset(WFIFOP(fd,4), 0x00, 4*((11 + 1) + 4));
- if (map1 == (unsigned short)-1) strcpy(WFIFOP(fd,4), "Random");
- else
- if (map1 > 0) mapindex->getmapname_ext(mapindex->id2name((map1),"../../../server-code/src/map/clif.c", 5225, __func__), WFIFOP(fd,4));
- if (map2 > 0) mapindex->getmapname_ext(mapindex->id2name((map2),"../../../server-code/src/map/clif.c", 5226, __func__), WFIFOP(fd,20));
- if (map3 > 0) mapindex->getmapname_ext(mapindex->id2name((map3),"../../../server-code/src/map/clif.c", 5227, __func__), WFIFOP(fd,36));
- if (map4 > 0) mapindex->getmapname_ext(mapindex->id2name((map4),"../../../server-code/src/map/clif.c", 5228, __func__), WFIFOP(fd,52));
- WFIFOSET(fd,packet_db[0x11c].len);
-
- sd->menuskill_id = skill_id;
- if (skill_id == AL_WARP){
- sd->menuskill_val = (sd->ud.skillx<<16)|sd->ud.skilly;
- sd->state.workinprogress = 3;
- }else
- sd->menuskill_val = skill_lv;
-}
-# 5248 "../../../server-code/src/map/clif.c"
-void clif_skill_memomessage(struct map_session_data* sd, int type)
-{
- int fd;
-
- do { if (((void)(sd),
-# 5252 "../../../server-code/src/map/clif.c" 3 4
-0
-# 5252 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- fd=sd->fd;
- WFIFOHEAD(fd,packet_db[0x11e].len);
- WFIFOW(fd,0)=0x11e;
- WFIFOB(fd,2)=type;
- WFIFOSET(fd,packet_db[0x11e].len);
-}
-# 5270 "../../../server-code/src/map/clif.c"
-void clif_skill_mapinfomessage(struct map_session_data *sd, int type)
-{
- int fd;
-
- do { if (((void)(sd),
-# 5274 "../../../server-code/src/map/clif.c" 3 4
-0
-# 5274 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- fd=sd->fd;
- WFIFOHEAD(fd,packet_db[0x189].len);
- WFIFOW(fd,0)=0x189;
- WFIFOW(fd,2)=type;
- WFIFOSET(fd,packet_db[0x189].len);
-}
-
-
-
-
-void clif_skill_estimation(struct map_session_data *sd,struct block_list *dst) {
- struct status_data *dstatus;
- unsigned char buf[64];
- int i;
-
- do { if (((void)(sd),
-# 5291 "../../../server-code/src/map/clif.c" 3 4
-0
-# 5291 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- do { if (((void)(dst),
-# 5292 "../../../server-code/src/map/clif.c" 3 4
-0
-# 5292 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- if( dst->type != BL_MOB )
- return;
-
- dstatus = status->get_status_data(dst);
-
- WBUFW(buf,0) = 0x18c;
- WBUFW(buf,2) = status->get_class(dst);
- WBUFW(buf,4) = status->get_lv(dst);
- WBUFW(buf,6) = dstatus->size;
- WBUFL(buf, 8) = dstatus->hp;
- WBUFW(buf,12) = ((battle_config.estimation_type&1) ? dstatus->def : 0)
- + ((battle_config.estimation_type&2) ? dstatus->def2 : 0);
- WBUFW(buf,14) = dstatus->race;
- WBUFW(buf,16) = ((battle_config.estimation_type&1) ? dstatus->mdef : 0)
- + ((battle_config.estimation_type&2) ? dstatus->mdef2 : 0);
- WBUFW(buf,18) = dstatus->def_ele;
- for(i=0;i<9;i++) {
- WBUFB(buf,20+i)= (unsigned char)battle->attr_ratio(i+1,dstatus->def_ele, dstatus->ele_lv);
-
-
- }
-
- clif->send(buf,packet_db[0x18c].len,&sd->bl,sd->status.party_id>0?PARTY_SAMEMAP:SELF);
-}
-
-
-
-
-
-void clif_skill_produce_mix_list(struct map_session_data *sd, int skill_id , int trigger)
-{
- int i,c,view,fd;
- do { if (((void)(sd),
-# 5326 "../../../server-code/src/map/clif.c" 3 4
-0
-# 5326 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- if(sd->menuskill_id == skill_id)
- return;
- if( skill_id == GC_CREATENEWPOISON )
- skill_id = GC_RESEARCHNEWPOISON;
-
- fd=sd->fd;
- WFIFOHEAD(fd, 270 * 8 + 8);
- WFIFOW(fd,0)=0x18d;
-
- for(i=0,c=0;i<270;i++){
- if( skill->can_produce_mix(sd,skill->dbs->produce_db[i].nameid, trigger, 1) &&
- ( ( skill_id > 0 && skill->dbs->produce_db[i].req_skill == skill_id ) || skill_id < 0 )
- ){
- if((view = (itemdb->search(skill->dbs->produce_db[i].nameid)->view_id)) > 0)
- WFIFOW(fd,c*8+ 4)= view;
- else
- WFIFOW(fd,c*8+ 4)= skill->dbs->produce_db[i].nameid;
- WFIFOW(fd,c*8+ 6)= 0;
- WFIFOW(fd,c*8+ 8)= 0;
- WFIFOW(fd,c*8+10)= 0;
- c++;
- }
- }
- WFIFOW(fd,2)=c*8+8;
- WFIFOSET(fd,WFIFOW(fd,2));
- if(c > 0) {
- sd->menuskill_id = skill_id;
- sd->menuskill_val = trigger;
- return;
- }
-}
-# 5369 "../../../server-code/src/map/clif.c"
-void clif_cooking_list(struct map_session_data *sd, int trigger, uint16 skill_id, int qty, int list_type)
-{
- int fd;
- int i, c;
- int view;
-
- do { if (((void)(sd),
-# 5375 "../../../server-code/src/map/clif.c" 3 4
-0
-# 5375 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- fd = sd->fd;
-
- WFIFOHEAD(fd, 6 + 2 * 270);
- WFIFOW(fd,0) = 0x25a;
- WFIFOW(fd,4) = list_type;
-
- c = 0;
- for( i = 0; i < 270; i++ ) {
- if( !skill->can_produce_mix(sd,skill->dbs->produce_db[i].nameid,trigger, qty) )
- continue;
-
- if( (view = (itemdb->search(skill->dbs->produce_db[i].nameid)->view_id)) > 0 )
- WFIFOW(fd,6 + 2 * c) = view;
- else
- WFIFOW(fd,6 + 2 * c) = skill->dbs->produce_db[i].nameid;
-
- c++;
- }
-
- if( skill_id == AM_PHARMACY ) {
-
- WFIFOW(fd,2) = 6 + 2 * c;
- WFIFOSET(fd,WFIFOW(fd,2));
- }
-
- if( c > 0 ) {
- sd->menuskill_id = skill_id;
- sd->menuskill_val = trigger;
- if( skill_id != AM_PHARMACY ) {
- sd->menuskill_val2 = qty;
- WFIFOW(fd,2) = 6 + 2 * c;
- WFIFOSET(fd,WFIFOW(fd,2));
- }
- } else {
- ((sd)->menuskill_id = (sd)->menuskill_val = (sd)->menuskill_val2 = 0);
- if( skill_id != AM_PHARMACY ) {
-
-
- clif->msgtable_skill(sd, skill_id, MSG_COOKING_LIST_FAIL);
-
-
-
-
- }
- }
-}
-
-void clif_status_change_notick(struct block_list *bl,int type,int flag,int tick,int val1, int val2, int val3) {
- struct packet_sc_notick p;
- struct map_session_data *sd;
-
- do { if (((void)(bl),
-# 5427 "../../../server-code/src/map/clif.c" 3 4
-0
-# 5427 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- if (type == SI_BLANK)
- return;
-
- if (!(status->type2relevant_bl_types(type)&bl->type))
- return;
-
- sd = ( ((bl) == (struct block_list *)
-# 5435 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 5435 "../../../server-code/src/map/clif.c"
- || (bl)->type != (BL_PC)) ? (TBL_PC *)
-# 5435 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 5435 "../../../server-code/src/map/clif.c"
- : (TBL_PC *)(bl) );
-
- p.PacketType = sc_notickType;
- p.index = type;
- p.AID = bl->id;
- p.state = (unsigned char)flag;
-
- clif->send(&p,packet_db[p.PacketType].len, bl, (sd && sd->status.option&OPTION_INVISIBLE) ? SELF : AREA);
-}
-
-
-
-
-
-
-
-void clif_status_change(struct block_list *bl,int type,int flag,int tick,int val1, int val2, int val3) {
- struct packet_status_change p;
- struct map_session_data *sd;
-
- if (type == SI_BLANK)
- return;
-
- do { if (((void)(bl),
-# 5458 "../../../server-code/src/map/clif.c" 3 4
-0
-# 5458 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- if (!(status->type2relevant_bl_types(type)&bl->type))
- return;
-
- if ( tick < 0 )
- tick = 9999;
-
- sd = ( ((bl) == (struct block_list *)
-# 5466 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 5466 "../../../server-code/src/map/clif.c"
- || (bl)->type != (BL_PC)) ? (TBL_PC *)
-# 5466 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 5466 "../../../server-code/src/map/clif.c"
- : (TBL_PC *)(bl) );
-
- p.PacketType = status_changeType;
- p.index = type;
- p.AID = bl->id;
- p.state = (unsigned char)flag;
-
-
- p.Total = tick;
-
-
- p.Left = tick;
- p.val1 = val1;
- p.val2 = val2;
- p.val3 = val3;
-
- clif->send(&p,sizeof(p), bl, (sd && sd->status.option&OPTION_INVISIBLE) ? SELF : AREA);
-}
-
-
-
-void clif_displaymessage(const int fd, const char* mes) {
- do { if (((void)(mes),
-# 5488 "../../../server-code/src/map/clif.c" 3 4
-0
-# 5488 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- if( map->cpsd_active && fd == 0 ) {
- (showmsg->showInfo(("HCP: %s\n"),mes));
- } else if ( fd > 0 ) {
-
-
-
-
-
- size_t len;
-
- if ( ( len = (strlib->strnlen_((mes),(255))) ) > 0 ) {
- WFIFOHEAD(fd, 5 + len);
- WFIFOW(fd,0) = 0x8e;
- WFIFOW(fd,2) = 5 + len;
- (strlib->safestrncpy_((WFIFOP(fd,4)),(mes),(len + 1)));
- WFIFOSET(fd, 5 + len);
- }
-
- }
-}
-
-void clif_displaymessage2(const int fd, const char* mes) {
- do { if (((void)(mes),
-# 5512 "../../../server-code/src/map/clif.c" 3 4
-0
-# 5512 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
-
- if (fd == 0 && !map->cpsd_active)
- ;
- else {
-
- char *message, *line;
-
- message = (iMalloc->astrdup((mes),"../../../server-code/src/map/clif.c", 5521, __func__));
- line = strtok(message, "\n");
- while(line !=
-# 5523 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 5523 "../../../server-code/src/map/clif.c"
- ) {
-
- size_t len = (strlib->strnlen_((line),(255)));
-
- if (len > 0) {
- if( map->cpsd_active && fd == 0 ) {
- (showmsg->showInfo(("HCP: %s\n"),line));
- } else {
- WFIFOHEAD(fd, 5 + len);
- WFIFOW(fd,0) = 0x8e;
- WFIFOW(fd,2) = 5 + len;
- (strlib->safestrncpy_((WFIFOP(fd,4)),(line),(len + 1)));
- WFIFOSET(fd, 5 + len);
- }
- }
- line = strtok(
-# 5538 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 5538 "../../../server-code/src/map/clif.c"
- , "\n");
- }
- (iMalloc->free((message),"../../../server-code/src/map/clif.c", 5540, __func__));
- }
-}
-
-void clif_displaymessage_sprintf(const int fd, const char *mes, ...) __attribute__((format(printf, 2, 3)));
-void clif_displaymessage_sprintf(const int fd, const char *mes, ...) {
- va_list ap;
-
- do { if (((void)(mes),
-# 5548 "../../../server-code/src/map/clif.c" 3 4
-0
-# 5548 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- if (map->cpsd_active && fd == 0) {
- (showmsg->showInfo(("HCP: ")));
-
-# 5551 "../../../server-code/src/map/clif.c" 3 4
- __builtin_va_start(
-# 5551 "../../../server-code/src/map/clif.c"
- ap
-# 5551 "../../../server-code/src/map/clif.c" 3 4
- ,
-# 5551 "../../../server-code/src/map/clif.c"
- mes
-# 5551 "../../../server-code/src/map/clif.c" 3 4
- )
-# 5551 "../../../server-code/src/map/clif.c"
- ;
- (showmsg->showMessageV((mes), (ap)));
-
-# 5553 "../../../server-code/src/map/clif.c" 3 4
- __builtin_va_end(
-# 5553 "../../../server-code/src/map/clif.c"
- ap
-# 5553 "../../../server-code/src/map/clif.c" 3 4
- )
-# 5553 "../../../server-code/src/map/clif.c"
- ;
- (showmsg->showMessage(("\n")));
- } else if (fd > 0) {
- int len = 1;
- char *ptr;
-
- WFIFOHEAD(fd, 5 + 255);
-
-
-
-# 5562 "../../../server-code/src/map/clif.c" 3 4
- __builtin_va_start(
-# 5562 "../../../server-code/src/map/clif.c"
- ap
-# 5562 "../../../server-code/src/map/clif.c" 3 4
- ,
-# 5562 "../../../server-code/src/map/clif.c"
- mes
-# 5562 "../../../server-code/src/map/clif.c" 3 4
- )
-# 5562 "../../../server-code/src/map/clif.c"
- ;
- len += vsnprintf(WFIFOP(fd,4), 255, mes, ap);
-
-# 5564 "../../../server-code/src/map/clif.c" 3 4
- __builtin_va_end(
-# 5564 "../../../server-code/src/map/clif.c"
- ap
-# 5564 "../../../server-code/src/map/clif.c" 3 4
- )
-# 5564 "../../../server-code/src/map/clif.c"
- ;
-
-
- ptr = WFIFOP(fd,4);
- ptr[len - 1] = '\0';
-
-
- WFIFOW(fd,0) = 0x8e;
- WFIFOW(fd,2) = 5 + len;
-
- WFIFOSET(fd, 5 + len);
- }
-}
-
-
-void clif_broadcast(struct block_list *bl, const char *mes, size_t len, int type, enum send_target target)
-{
- int lp = (type&BC_COLOR_MASK) ? 4 : 0;
- unsigned char *buf =
-# 5582 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 5582 "../../../server-code/src/map/clif.c"
- ;
- do { if (((void)(mes),
-# 5583 "../../../server-code/src/map/clif.c" 3 4
-0
-# 5583 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- buf = (iMalloc->malloc(((4 + lp + len)*sizeof(unsigned char)),"../../../server-code/src/map/clif.c", 5585, __func__));
-
- WBUFW(buf,0) = 0x9a;
- WBUFW(buf,2) = 4 + lp + len;
- if( type&BC_BLUE )
- WBUFL(buf,4) = 0x65756c62;
- else if( type&BC_WOE )
- WBUFL(buf,4) = 0x73737373;
- memcpy(WBUFP(buf, 4 + lp), mes, len);
- clif->send(buf, WBUFW(buf,2), bl, target);
-
- (iMalloc->free((buf),"../../../server-code/src/map/clif.c", 5596, __func__));
-}
-
-
-
-
-
-void clif_GlobalMessage(struct block_list* bl, const char* message) {
- char buf[256];
- size_t len;
- do { if (((void)(bl),
-# 5606 "../../../server-code/src/map/clif.c" 3 4
-0
-# 5606 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- if(!message)
- return;
-
- len = strlen(message)+1;
-
- if (len > sizeof(buf)-8) {
- (showmsg->showWarning(("clif_GlobalMessage: Truncating too long message '%s' (len=%""z" "u"").\n"), message, len));
- len = sizeof(buf)-8;
- }
-
- WBUFW(buf,0)=0x8d;
- WBUFW(buf,2)=len+8;
- WBUFL(buf,4)=bl->id;
- (strlib->safestrncpy_((WBUFP(buf,8)),(message),(len)));
- clif->send((unsigned char *) buf,WBUFW(buf,2),bl,ALL_CLIENT);
-
-}
-
-
-
-void clif_broadcast2(struct block_list* bl, const char* mes, size_t len, unsigned int fontColor, short fontType, short fontSize, short fontAlign, short fontY, enum send_target target)
-{
- unsigned char *buf;
-
- do { if (((void)(mes),
-# 5632 "../../../server-code/src/map/clif.c" 3 4
-0
-# 5632 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- buf = (unsigned char*)(iMalloc->malloc(((16 + len)*sizeof(unsigned char)),"../../../server-code/src/map/clif.c", 5634, __func__));
- WBUFW(buf,0) = 0x1c3;
- WBUFW(buf,2) = len + 16;
- WBUFL(buf,4) = fontColor;
- WBUFW(buf,8) = fontType;
- WBUFW(buf,10) = fontSize;
- WBUFW(buf,12) = fontAlign;
- WBUFW(buf,14) = fontY;
- memcpy(WBUFP(buf,16), mes, len);
- clif->send(buf, WBUFW(buf,2), bl, target);
-
- (iMalloc->free((buf),"../../../server-code/src/map/clif.c", 5645, __func__));
-}
-
-
-
-
-
-
-
-void clif_heal(int fd,int type,int val)
-{
- WFIFOHEAD(fd,packet_db[0x13d].len);
- WFIFOW(fd,0)=0x13d;
- WFIFOW(fd,2)=type;
- WFIFOW(fd,4)=(((val) >= (
-# 5659 "../../../server-code/src/map/clif.c" 3 4
- (32767)
-# 5659 "../../../server-code/src/map/clif.c"
- )) ? (
-# 5659 "../../../server-code/src/map/clif.c" 3 4
- (32767)
-# 5659 "../../../server-code/src/map/clif.c"
- ) : ((val) <= (0)) ? (0) : (val));
- WFIFOSET(fd,packet_db[0x13d].len);
-}
-
-
-
-
-
-void clif_resurrection(struct block_list *bl,int type)
-{
- unsigned char buf[16];
-
- do { if (((void)(bl),
-# 5671 "../../../server-code/src/map/clif.c" 3 4
-0
-# 5671 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- WBUFW(buf,0)=0x148;
- WBUFL(buf,2)=bl->id;
- WBUFW(buf,6)=0;
-
- clif->send(buf,packet_db[0x148].len,bl, type == 1 ? AREA : AREA_WOS);
- if (disguised(bl)) {
- struct map_session_data *sd = ((TBL_PC *)BL_UCAST_(bl));
- if (sd->fontcolor) {
- WBUFL(buf,2)=-bl->id;
- clif->send(buf,packet_db[0x148].len,bl, SELF);
- } else {
- clif->spawn(bl);
- }
- }
-}
-
-
-
-void clif_map_property(struct map_session_data* sd, enum map_property property)
-{
- int fd;
-
- do { if (((void)(sd),
-# 5695 "../../../server-code/src/map/clif.c" 3 4
-0
-# 5695 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- fd=sd->fd;
- WFIFOHEAD(fd,packet_db[0x199].len);
- WFIFOW(fd,0)=0x199;
- WFIFOW(fd,2)=property;
- WFIFOSET(fd,packet_db[0x199].len);
-}
-
-
-
-void clif_map_type(struct map_session_data* sd, enum map_type type) {
- int fd;
-
- do { if (((void)(sd),
-# 5709 "../../../server-code/src/map/clif.c" 3 4
-0
-# 5709 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- fd=sd->fd;
- WFIFOHEAD(fd,packet_db[0x1D6].len);
- WFIFOW(fd,0)=0x1D6;
- WFIFOW(fd,2)=type;
- WFIFOSET(fd,packet_db[0x1D6].len);
-}
-
-
-
-
-void clif_pvpset(struct map_session_data *sd,int pvprank,int pvpnum,int type)
-{
- do { if (((void)(sd),
-# 5723 "../../../server-code/src/map/clif.c" 3 4
-0
-# 5723 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- if(type == 2) {
- int fd = sd->fd;
- WFIFOHEAD(fd,packet_db[0x19a].len);
- WFIFOW(fd,0) = 0x19a;
- WFIFOL(fd,2) = sd->bl.id;
- WFIFOL(fd,6) = pvprank;
- WFIFOL(fd,10) = pvpnum;
- WFIFOSET(fd,packet_db[0x19a].len);
- } else {
- unsigned char buf[32];
- WBUFW(buf,0) = 0x19a;
- WBUFL(buf,2) = sd->bl.id;
- if (sd->sc.option&(OPTION_HIDE|OPTION_CLOAK))
- WBUFL(buf,6) = ((uint32)0xFFFFFFFFU);
- else
- WBUFL(buf,6) = pvprank;
- WBUFL(buf,10) = pvpnum;
- if (( (sd)->sc.option&OPTION_INVISIBLE ) || sd->disguise != -1)
- clif->send(buf,packet_db[0x19a].len,&sd->bl,SELF);
- else if(!type)
- clif->send(buf,packet_db[0x19a].len,&sd->bl,AREA);
- else
- clif->send(buf,packet_db[0x19a].len,&sd->bl,ALL_SAMEMAP);
- }
-}
-
-
-
-
-void clif_map_property_mapall(int mapid, enum map_property property)
-{
- struct block_list bl;
- unsigned char buf[16];
-
- bl.id = 0;
- bl.type = BL_NUL;
- bl.m = mapid;
- WBUFW(buf,0)=0x199;
- WBUFW(buf,2)=property;
- clif->send(buf,packet_db[0x199].len,&bl,ALL_SAMEMAP);
-}
-
-
-
-
-
-
-
-void clif_refine(int fd, int fail, int index, int val)
-{
- WFIFOHEAD(fd,packet_db[0x188].len);
- WFIFOW(fd,0)=0x188;
- WFIFOW(fd,2)=fail;
- WFIFOW(fd,4)=index+2;
- WFIFOW(fd,6)=val;
- WFIFOSET(fd,packet_db[0x188].len);
-}
-# 5790 "../../../server-code/src/map/clif.c"
-void clif_upgrademessage(int fd, int result, int item_id)
-{
- WFIFOHEAD(fd,packet_db[0x223].len);
- WFIFOW(fd,0)=0x223;
- WFIFOL(fd,2)=result;
- WFIFOW(fd,6)=item_id;
- WFIFOSET(fd,packet_db[0x223].len);
-}
-
-
-
-
-void clif_wis_message(int fd, const char *nick, const char *mes, size_t mes_len)
-{
-
- struct map_session_data *ssd =
-# 5805 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 5805 "../../../server-code/src/map/clif.c"
- ;
-
- do { if (((void)(nick),
-# 5807 "../../../server-code/src/map/clif.c" 3 4
-0
-# 5807 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- do { if (((void)(mes),
-# 5808 "../../../server-code/src/map/clif.c" 3 4
-0
-# 5808 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-# 5818 "../../../server-code/src/map/clif.c"
- ssd = map->nick2sd(nick);
-
- WFIFOHEAD(fd, mes_len + (23 + 1) + 8);
- WFIFOW(fd,0) = 0x97;
- WFIFOW(fd,2) = mes_len + (23 + 1) + 8;
- (strlib->safestrncpy_((WFIFOP(fd,4)),(nick),((23 + 1))));
- WFIFOL(fd,28) = (ssd && ( (ssd)->group->level ) == 99) ? 1 : 0;
- (strlib->safestrncpy_((WFIFOP(fd,32)),(mes),(mes_len)));
- WFIFOSET(fd,WFIFOW(fd,2));
-
-}
-# 5837 "../../../server-code/src/map/clif.c"
-void clif_wis_end(int fd, int flag) {
- struct map_session_data *sd = sockt->session_is_valid(fd) ? sockt->session[fd]->session_data :
-# 5838 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 5838 "../../../server-code/src/map/clif.c"
- ;
- struct packet_wis_end p;
-
- if( !sd )
- return;
-
- p.PacketType = wisendType;
- p.result = (char)flag;
-
- p.unknown = 0;
-
-
- clif->send(&p, sizeof(p), &sd->bl, SELF);
-}
-
-
-
-void clif_solved_charname(int fd, int charid, const char* name)
-{
- do { if (((void)(name),
-# 5857 "../../../server-code/src/map/clif.c" 3 4
-0
-# 5857 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- WFIFOHEAD(fd,packet_db[0x194].len);
- WFIFOW(fd,0)=0x194;
- WFIFOL(fd,2)=charid;
- (strlib->safestrncpy_((WFIFOP(fd,6)),(name),((23 + 1))));
- WFIFOSET(fd,packet_db[0x194].len);
-}
-
-
-
-void clif_use_card(struct map_session_data *sd,int idx)
-{
- int i, c;
- int fd;
-
- do { if (((void)(sd),
-# 5872 "../../../server-code/src/map/clif.c" 3 4
-0
-# 5872 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- fd = sd->fd;
- if (sd->state.trading != 0)
- return;
- if (!pc->can_insert_card(sd, idx))
- return;
-
- WFIFOHEAD(fd, 100 * 2 + 4);
- WFIFOW(fd,0) = 0x17b;
-
- for (i = c = 0; i < 100; i++) {
- if (!pc->can_insert_card_into(sd, idx, i))
- continue;
- WFIFOW(fd,4 + c * 2) = i + 2;
- c++;
- }
-
- if (!c) return;
-
- WFIFOW(fd,2) = 4 + c * 2;
- WFIFOSET(fd, WFIFOW(fd,2));
-}
-
-
-
-
-
-
-void clif_insert_card(struct map_session_data *sd,int idx_equip,int idx_card,int flag)
-{
- int fd;
-
- do { if (((void)(sd),
-# 5904 "../../../server-code/src/map/clif.c" 3 4
-0
-# 5904 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- fd=sd->fd;
- WFIFOHEAD(fd,packet_db[0x17d].len);
- WFIFOW(fd,0)=0x17d;
- WFIFOW(fd,2)=idx_equip+2;
- WFIFOW(fd,4)=idx_card+2;
- WFIFOB(fd,6)=flag;
- WFIFOSET(fd,packet_db[0x17d].len);
-}
-
-
-
-void clif_item_identify_list(struct map_session_data *sd)
-{
- int i,c;
- int fd;
-
- do { if (((void)(sd),
-# 5922 "../../../server-code/src/map/clif.c" 3 4
-0
-# 5922 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- fd=sd->fd;
-
- WFIFOHEAD(fd,100 * 2 + 4);
- WFIFOW(fd,0)=0x177;
- for(i=c=0;i<100;i++){
- if(sd->status.inventory[i].nameid > 0 && !sd->status.inventory[i].identify){
- WFIFOW(fd,c*2+4)=i+2;
- c++;
- }
- }
- if(c > 0) {
- WFIFOW(fd,2)=c*2+4;
- WFIFOSET(fd,WFIFOW(fd,2));
- sd->menuskill_id = MC_IDENTIFY;
- sd->menuskill_val = c;
- sd->state.workinprogress = 3;
- }
-}
-
-
-
-void clif_item_identified(struct map_session_data *sd,int idx,int flag)
-{
- int fd;
-
- do { if (((void)(sd),
-# 5949 "../../../server-code/src/map/clif.c" 3 4
-0
-# 5949 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- fd=sd->fd;
- WFIFOHEAD(fd,packet_db[0x179].len);
- WFIFOW(fd,0)=0x179;
- WFIFOW(fd,2)=idx+2;
- WFIFOB(fd, 4)=flag;
- WFIFOSET(fd,packet_db[0x179].len);
-}
-
-
-
-void clif_item_repair_list(struct map_session_data *sd,struct map_session_data *dstsd, int lv)
-{
- int i,c;
- int fd;
-
- do { if (((void)(sd),
-# 5966 "../../../server-code/src/map/clif.c" 3 4
-0
-# 5966 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- do { if (((void)(dstsd),
-# 5967 "../../../server-code/src/map/clif.c" 3 4
-0
-# 5967 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- fd=sd->fd;
-
- WFIFOHEAD(fd, 100 * 13 + 4);
- WFIFOW(fd,0)=0x1fc;
- for (i = c = 0; i < 100; i++) {
- int nameid = dstsd->status.inventory[i].nameid;
- if (nameid > 0 && dstsd->status.inventory[i].attribute != 0) {
- WFIFOW(fd,c*13+4) = i;
- WFIFOW(fd,c*13+6) = nameid;
- WFIFOB(fd,c*13+8) = dstsd->status.inventory[i].refine;
- clif->addcards(WFIFOP(fd,c*13+9), &dstsd->status.inventory[i]);
- c++;
- }
- }
- if(c > 0) {
- WFIFOW(fd,2)=c*13+4;
- WFIFOSET(fd,WFIFOW(fd,2));
- sd->menuskill_id = BS_REPAIRWEAPON;
- sd->menuskill_val = dstsd->bl.id;
- sd->menuskill_val2 = lv;
- }else
- clif->skill_fail(sd,sd->ud.skill_id,USESKILL_FAIL_LEVEL,0);
-}
-# 6000 "../../../server-code/src/map/clif.c"
-void clif_item_repaireffect(struct map_session_data *sd,int idx,int flag)
-{
- int fd;
-
- do { if (((void)(sd),
-# 6004 "../../../server-code/src/map/clif.c" 3 4
-0
-# 6004 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- fd = sd->fd;
-
- WFIFOHEAD(fd,packet_db[0x1fe].len);
- WFIFOW(fd,0)=0x1fe;
- WFIFOW(fd,2)=idx+2;
- WFIFOB(fd, 4)=flag;
- WFIFOSET(fd,packet_db[0x1fe].len);
-
-}
-
-
-
-void clif_item_damaged(struct map_session_data* sd, unsigned short position)
-{
- int fd;
-
- do { if (((void)(sd),
-# 6022 "../../../server-code/src/map/clif.c" 3 4
-0
-# 6022 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- fd = sd->fd;
-
- WFIFOHEAD(fd,packet_db[0x2bb].len);
- WFIFOW(fd,0) = 0x2bb;
- WFIFOW(fd,2) = position;
- WFIFOL(fd,4) = sd->bl.id;
- WFIFOSET(fd,packet_db[0x2bb].len);
-}
-
-
-
-void clif_item_refine_list(struct map_session_data *sd)
-{
- int i,c;
- int fd;
- uint16 skill_lv;
-
- do { if (((void)(sd),
-# 6040 "../../../server-code/src/map/clif.c" 3 4
-0
-# 6040 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- skill_lv = pc->checkskill(sd,WS_WEAPONREFINE);
-
- fd=sd->fd;
-
- WFIFOHEAD(fd, 100 * 13 + 4);
- WFIFOW(fd,0)=0x221;
- for (i = c = 0; i < 100; i++) {
- if(sd->status.inventory[i].nameid > 0 && sd->status.inventory[i].identify
- && (itemdb->search(sd->status.inventory[i].nameid)->wlv) >= 1
- && !sd->inventory_data[i]->flag.no_refine
- && !(sd->status.inventory[i].equip&(EQP_HAND_R|EQP_HAND_L))){
- WFIFOW(fd,c*13+ 4)=i+2;
- WFIFOW(fd,c*13+ 6)=sd->status.inventory[i].nameid;
- WFIFOB(fd,c*13+ 8)=sd->status.inventory[i].refine;
- clif->addcards(WFIFOP(fd,c*13+9), &sd->status.inventory[i]);
- c++;
- }
- }
- WFIFOW(fd,2)=c*13+4;
- WFIFOSET(fd,WFIFOW(fd,2));
- if (c > 0) {
- sd->menuskill_id = WS_WEAPONREFINE;
- sd->menuskill_val = skill_lv;
- }
-}
-
-
-
-void clif_item_skill(struct map_session_data *sd,uint16 skill_id,uint16 skill_lv)
-{
- int fd;
-
- do { if (((void)(sd),
-# 6074 "../../../server-code/src/map/clif.c" 3 4
-0
-# 6074 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- fd=sd->fd;
- WFIFOHEAD(fd,packet_db[0x147].len);
- WFIFOW(fd,0)=0x147;
- WFIFOW(fd,2)=skill_id;
- WFIFOW(fd,4)=skill->get_inf(skill_id);
- WFIFOW(fd,6)=0;
- 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);
- (strlib->safestrncpy_((WFIFOP(fd,14)),(skill->get_name(skill_id)),((23 + 1))));
- WFIFOB(fd,38)=0;
- WFIFOSET(fd,packet_db[0x147].len);
-}
-
-
-
-
-void clif_cart_additem(struct map_session_data *sd,int n,int amount,int fail)
-{
- int view,fd;
- unsigned char *buf;
- int offset = 0;
-
- do { if (((void)(sd),
-# 6099 "../../../server-code/src/map/clif.c" 3 4
-0
-# 6099 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- fd=sd->fd;
- if(n<0 || n>=100 || sd->status.cart[n].nameid<=0)
- return;
-
- WFIFOHEAD(fd,packet_db[cartaddType].len);
- buf=WFIFOP(fd,0);
- WBUFW(buf,0)=cartaddType;
- WBUFW(buf,2)=n+2;
- WBUFL(buf,4)=amount;
- if((view = (itemdb->search(sd->status.cart[n].nameid)->view_id)) > 0)
- WBUFW(buf,8)=view;
- else
- WBUFW(buf,8)=sd->status.cart[n].nameid;
-
- WBUFB(buf,10)=(itemdb->search(sd->status.cart[n].nameid)->type);
- offset = 1;
-
- WBUFB(buf,10+offset)=sd->status.cart[n].identify;
- WBUFB(buf,11+offset)=sd->status.cart[n].attribute;
- WBUFB(buf,12+offset)=sd->status.cart[n].refine;
- clif->addcards(WBUFP(buf,13+offset), &sd->status.cart[n]);
-
- clif->add_random_options(WBUFP(buf,21+offset), &sd->status.cart[n]);
-
- WFIFOSET(fd,packet_db[cartaddType].len);
-}
-
-
-
-void clif_cart_delitem(struct map_session_data *sd,int n,int amount)
-{
- int fd;
-
- do { if (((void)(sd),
-# 6134 "../../../server-code/src/map/clif.c" 3 4
-0
-# 6134 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- fd=sd->fd;
-
- WFIFOHEAD(fd,packet_db[0x125].len);
- WFIFOW(fd,0)=0x125;
- WFIFOW(fd,2)=n+2;
- WFIFOL(fd,4)=amount;
- WFIFOSET(fd,packet_db[0x125].len);
-}
-
-
-
-
-
-void clif_openvendingreq(struct map_session_data* sd, int num)
-{
- int fd;
-
- do { if (((void)(sd),
-# 6153 "../../../server-code/src/map/clif.c" 3 4
-0
-# 6153 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- fd = sd->fd;
- WFIFOHEAD(fd,packet_db[0x12d].len);
- WFIFOW(fd,0) = 0x12d;
- WFIFOW(fd,2) = num;
- WFIFOSET(fd,packet_db[0x12d].len);
-}
-
-
-
-void clif_showvendingboard(struct block_list* bl, const char* message, int fd)
-{
- unsigned char buf[128];
-
- do { if (((void)(bl),
-# 6168 "../../../server-code/src/map/clif.c" 3 4
-0
-# 6168 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- WBUFW(buf,0) = 0x131;
- WBUFL(buf,2) = bl->id;
- (strlib->safestrncpy_((WBUFP(buf,6)),(message),(80)));
-
- if( fd ) {
- WFIFOHEAD(fd,packet_db[0x131].len);
- memcpy(WFIFOP(fd,0),buf,packet_db[0x131].len);
- WFIFOSET(fd,packet_db[0x131].len);
- } else {
- clif->send(buf,packet_db[0x131].len,bl,AREA_WOS);
- }
-}
-
-
-
-void clif_closevendingboard(struct block_list* bl, int fd)
-{
- unsigned char buf[16];
-
- do { if (((void)(bl),
-# 6189 "../../../server-code/src/map/clif.c" 3 4
-0
-# 6189 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- WBUFW(buf,0) = 0x132;
- WBUFL(buf,2) = bl->id;
- if( fd ) {
- WFIFOHEAD(fd,packet_db[0x132].len);
- memcpy(WFIFOP(fd,0),buf,packet_db[0x132].len);
- WFIFOSET(fd,packet_db[0x132].len);
- } else {
- clif->send(buf,packet_db[0x132].len,bl,AREA_WOS);
- }
-}
-
-
-
-
-void clif_vendinglist(struct map_session_data* sd, unsigned int id, struct s_vending* vending_items) {
- int i,fd;
- int count;
- struct map_session_data* vsd;
-
-
-
-
- const int cmd = 0x800;
- const int offset = 12;
-
-
-
- const int item_length = 47;
-
-
-
-
- do { if (((void)(sd),
-# 6223 "../../../server-code/src/map/clif.c" 3 4
-0
-# 6223 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- do { if (((void)(vending_items),
-# 6224 "../../../server-code/src/map/clif.c" 3 4
-0
-# 6224 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- do { if (((void)(vsd=map->id2sd(id)),
-# 6225 "../../../server-code/src/map/clif.c" 3 4
-0
-# 6225 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- fd = sd->fd;
- count = vsd->vend_num;
-
- WFIFOHEAD(fd, offset+count*item_length);
- WFIFOW(fd,0) = cmd;
- WFIFOW(fd,2) = offset+count*item_length;
- WFIFOL(fd,4) = id;
-
- WFIFOL(fd,8) = vsd->vender_id;
-
-
- for( i = 0; i < count; i++ ) {
- int index = vending_items[i].index;
- struct item_data* data = itemdb->search(vsd->status.cart[index].nameid);
- WFIFOL(fd,offset+ 0+i*item_length) = vending_items[i].value;
- WFIFOW(fd,offset+ 4+i*item_length) = vending_items[i].amount;
- WFIFOW(fd,offset+ 6+i*item_length) = vending_items[i].index + 2;
- WFIFOB(fd,offset+ 8+i*item_length) = itemtype(data->type);
- WFIFOW(fd,offset+ 9+i*item_length) = ( data->view_id > 0 ) ? data->view_id : vsd->status.cart[index].nameid;
- WFIFOB(fd,offset+11+i*item_length) = vsd->status.cart[index].identify;
- WFIFOB(fd,offset+12+i*item_length) = vsd->status.cart[index].attribute;
- WFIFOB(fd,offset+13+i*item_length) = vsd->status.cart[index].refine;
- clif->addcards(WFIFOP(fd,offset+14+i*item_length), &vsd->status.cart[index]);
-
- clif->add_random_options(WFIFOP(fd,offset+22+i*item_length), &vsd->status.cart[index]);
-
- }
- WFIFOSET(fd,WFIFOW(fd,2));
-}
-# 6267 "../../../server-code/src/map/clif.c"
-void clif_buyvending(struct map_session_data* sd, int index, int amount, int fail)
-{
- int fd;
-
- do { if (((void)(sd),
-# 6271 "../../../server-code/src/map/clif.c" 3 4
-0
-# 6271 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- fd = sd->fd;
- WFIFOHEAD(fd,packet_db[0x135].len);
- WFIFOW(fd,0) = 0x135;
- WFIFOW(fd,2) = index+2;
- WFIFOW(fd,4) = amount;
- WFIFOB(fd,6) = fail;
- WFIFOSET(fd,packet_db[0x135].len);
-}
-
-
-
-void clif_openvending(struct map_session_data* sd, int id, struct s_vending* vending_items) {
- int i,fd;
- int count;
-
-
- const int item_length = 47;
-
-
-
-
- do { if (((void)(sd),
-# 6294 "../../../server-code/src/map/clif.c" 3 4
-0
-# 6294 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- do { if (((void)(vending_items),
-# 6295 "../../../server-code/src/map/clif.c" 3 4
-0
-# 6295 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- fd = sd->fd;
- count = sd->vend_num;
-
- WFIFOHEAD(fd, 8+count*item_length);
- WFIFOW(fd,0) = 0x136;
- WFIFOW(fd,2) = 8+count*item_length;
- WFIFOL(fd,4) = id;
- for( i = 0; i < count; i++ ) {
- int index = vending_items[i].index;
- struct item_data* data = itemdb->search(sd->status.cart[index].nameid);
- WFIFOL(fd, 8+i*item_length) = vending_items[i].value;
- WFIFOW(fd,12+i*item_length) = vending_items[i].index + 2;
- WFIFOW(fd,14+i*item_length) = vending_items[i].amount;
- WFIFOB(fd,16+i*item_length) = itemtype(data->type);
- WFIFOW(fd,17+i*item_length) = ( data->view_id > 0 ) ? data->view_id : sd->status.cart[index].nameid;
- WFIFOB(fd,19+i*item_length) = sd->status.cart[index].identify;
- WFIFOB(fd,20+i*item_length) = sd->status.cart[index].attribute;
- WFIFOB(fd,21+i*item_length) = sd->status.cart[index].refine;
- clif->addcards(WFIFOP(fd,22+i*item_length), &sd->status.cart[index]);
-
- clif->add_random_options(WFIFOP(fd,30+22+i*item_length), &sd->status.cart[index]);
-
- }
- WFIFOSET(fd,WFIFOW(fd,2));
-
-
-
- WFIFOHEAD(fd, 3);
- WFIFOW(fd,0) = 0xa28;
- WFIFOB(fd, 2) = 0;
- WFIFOSET(fd, 3);
-
-}
-
-
-
-void clif_vendingreport(struct map_session_data* sd, int index, int amount)
-{
- int fd;
-
- do { if (((void)(sd),
-# 6337 "../../../server-code/src/map/clif.c" 3 4
-0
-# 6337 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- fd = sd->fd;
- WFIFOHEAD(fd,packet_db[0x137].len);
- WFIFOW(fd,0) = 0x137;
- WFIFOW(fd,2) = index+2;
- WFIFOW(fd,4) = amount;
- WFIFOSET(fd,packet_db[0x137].len);
-}
-# 6355 "../../../server-code/src/map/clif.c"
-void clif_party_created(struct map_session_data *sd,int result)
-{
- int fd;
-
- do { if (((void)(sd),
-# 6359 "../../../server-code/src/map/clif.c" 3 4
-0
-# 6359 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- fd=sd->fd;
- WFIFOHEAD(fd,packet_db[0xfa].len);
- WFIFOW(fd,0)=0xfa;
- WFIFOB(fd,2)=result;
- WFIFOSET(fd,packet_db[0xfa].len);
-}
-# 6377 "../../../server-code/src/map/clif.c"
-void clif_party_member_info(struct party_data *p, struct map_session_data *sd)
-{
- unsigned char buf[81];
- int i;
-
- do { if (((void)(p),
-# 6382 "../../../server-code/src/map/clif.c" 3 4
-0
-# 6382 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- do { if (((void)(sd),
-# 6383 "../../../server-code/src/map/clif.c" 3 4
-0
-# 6383 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- if (!sd) {
- do { for ((i) = (0); (i) < (12); ++(i)) if (p->data[i].sd != 0) break; } while(
-# 6385 "../../../server-code/src/map/clif.c" 3 4
- 0
-# 6385 "../../../server-code/src/map/clif.c"
- );
- } else {
- do { for ((i) = (0); (i) < (12); ++(i)) if (p->data[i].sd == sd) break; } while(
-# 6387 "../../../server-code/src/map/clif.c" 3 4
- 0
-# 6387 "../../../server-code/src/map/clif.c"
- );
- }
- if (i >= 12) return;
- sd = p->data[i].sd;
-
- WBUFW(buf,0) = 0x1e9;
- WBUFL(buf, 2) = sd->status.account_id;
- WBUFL(buf, 6) = (p->party.member[i].leader)?0:1;
- WBUFW(buf,10) = sd->bl.x;
- WBUFW(buf,12) = sd->bl.y;
- WBUFB(buf,14) = (p->party.member[i].online)?0:1;
- memcpy(WBUFP(buf,15), p->party.name, (23 + 1));
- memcpy(WBUFP(buf,39), sd->status.name, (23 + 1));
- mapindex->getmapname_ext(map->list[sd->bl.m].custom_name ? map->list[map->list[sd->bl.m].instance_src_map].name : map->list[sd->bl.m].name, WBUFP(buf,63));
- WBUFB(buf,79) = (p->party.item&1)?1:0;
- WBUFB(buf,80) = (p->party.item&2)?1:0;
- clif->send(buf,packet_db[0x1e9].len,&sd->bl,PARTY);
-}
-# 6414 "../../../server-code/src/map/clif.c"
-void clif_party_info(struct party_data* p, struct map_session_data *sd)
-{
- unsigned char buf[2+2+(23 + 1)+(4+(23 + 1)+((11 + 1) + 4)+1+1)*12];
- struct map_session_data* party_sd =
-# 6417 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 6417 "../../../server-code/src/map/clif.c"
- ;
- int i, c;
-
- do { if (((void)(p),
-# 6420 "../../../server-code/src/map/clif.c" 3 4
-0
-# 6420 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- WBUFW(buf,0) = 0xfb;
- memcpy(WBUFP(buf,4), p->party.name, (23 + 1));
- for(i = 0, c = 0; i < 12; i++)
- {
- struct party_member* m = &p->party.member[i];
- if(!m->account_id) continue;
-
- if(party_sd ==
-# 6429 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 6429 "../../../server-code/src/map/clif.c"
- ) party_sd = p->data[i].sd;
-
- WBUFL(buf,28+c*46) = m->account_id;
- memcpy(WBUFP(buf,28+c*46+4), m->name, (23 + 1));
- mapindex->getmapname_ext(mapindex->id2name((m->map),"../../../server-code/src/map/clif.c", 6433, __func__), WBUFP(buf,28+c*46+28));
- WBUFB(buf,28+c*46+44) = (m->leader) ? 0 : 1;
- WBUFB(buf,28+c*46+45) = (m->online) ? 0 : 1;
- c++;
- }
- WBUFW(buf,2) = 28+c*46;
-
- if(sd) {
- clif->send(buf, WBUFW(buf,2), &sd->bl, SELF);
- } else if (party_sd) {
- clif->send(buf, WBUFW(buf,2), &party_sd->bl, PARTY);
- }
-}
-
-
-
-
-
-
-void clif_partyinvitationstate(struct map_session_data* sd)
-{
- int fd;
- do { if (((void)(sd),
-# 6455 "../../../server-code/src/map/clif.c" 3 4
-0
-# 6455 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- fd = sd->fd;
-
- WFIFOHEAD(fd, packet_db[0x2c9].len);
- WFIFOW(fd,0) = 0x2c9;
- WFIFOB(fd, 2) = sd->status.allow_party ? 1 : 0;
- WFIFOSET(fd, packet_db[0x2c9].len);
-}
-
-
-
-
-void clif_party_invite(struct map_session_data *sd,struct map_session_data *tsd)
-{
-
-
-
- const int cmd = 0x2c6;
-
- int fd;
- struct party_data *p;
-
- do { if (((void)(sd),
-# 6477 "../../../server-code/src/map/clif.c" 3 4
-0
-# 6477 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- do { if (((void)(tsd),
-# 6478 "../../../server-code/src/map/clif.c" 3 4
-0
-# 6478 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- fd=tsd->fd;
-
- if( (p=party->search(sd->status.party_id))==
-# 6482 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 6482 "../../../server-code/src/map/clif.c"
- )
- return;
-
- WFIFOHEAD(fd,packet_db[cmd].len);
- WFIFOW(fd,0)=cmd;
- WFIFOL(fd,2)=sd->status.party_id;
- memcpy(WFIFOP(fd,6),p->party.name,(23 + 1));
- WFIFOSET(fd,packet_db[cmd].len);
-}
-# 6504 "../../../server-code/src/map/clif.c"
-void clif_party_inviteack(struct map_session_data* sd, const char* nick, int result)
-{
- int fd;
- do { if (((void)(sd),
-# 6507 "../../../server-code/src/map/clif.c" 3 4
-0
-# 6507 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- do { if (((void)(nick),
-# 6508 "../../../server-code/src/map/clif.c" 3 4
-0
-# 6508 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- fd=sd->fd;
-# 6525 "../../../server-code/src/map/clif.c"
- WFIFOHEAD(fd,packet_db[0x2c5].len);
- WFIFOW(fd,0) = 0x2c5;
- (strlib->safestrncpy_((WFIFOP(fd,2)),(nick),((23 + 1))));
- WFIFOL(fd,26) = result;
- WFIFOSET(fd,packet_db[0x2c5].len);
-
-}
-# 6544 "../../../server-code/src/map/clif.c"
-void clif_party_option(struct party_data *p,struct map_session_data *sd,int flag)
-{
- unsigned char buf[16];
-
-
-
- const int cmd = 0x7d8;
-
-
- do { if (((void)(p),
-# 6553 "../../../server-code/src/map/clif.c" 3 4
-0
-# 6553 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- if(!sd && flag==0){
- int i;
- for(i=0;i<12 && !p->data[i].sd;i++)
- ;
- if (i < 12)
- sd = p->data[i].sd;
- }
- if(!sd) return;
- WBUFW(buf,0)=cmd;
- WBUFL(buf,2)=((flag&0x01)?2:p->party.exp);
-
- WBUFB(buf,6)=(p->party.item&1)?1:0;
- WBUFB(buf,7)=(p->party.item&2)?1:0;
-
- if(flag==0)
- clif->send(buf,packet_db[cmd].len,&sd->bl,PARTY);
- else
- clif->send(buf,packet_db[cmd].len,&sd->bl,SELF);
-}
-
-
-
-
-
-
-
-void clif_party_withdraw(struct party_data* p, struct map_session_data* sd, int account_id, const char* name, int flag)
-{
- unsigned char buf[64];
-
- do { if (((void)(p),
-# 6585 "../../../server-code/src/map/clif.c" 3 4
-0
-# 6585 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- do { if (((void)(name),
-# 6586 "../../../server-code/src/map/clif.c" 3 4
-0
-# 6586 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- if(!sd && (flag&0xf0)==0) {
- int i;
-
- do { for ((i) = (0); (i) < (12); ++(i)) if (p->data[i].sd !=
-# 6591 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 6591 "../../../server-code/src/map/clif.c"
- ) break; } while(
-# 6591 "../../../server-code/src/map/clif.c" 3 4
- 0
-# 6591 "../../../server-code/src/map/clif.c"
- );
- if (i != 12)
- sd = p->data[i].sd;
- }
-
- if (!sd)
- return;
-
- WBUFW(buf,0)=0x105;
- WBUFL(buf,2)=account_id;
- memcpy(WBUFP(buf,6),name,(23 + 1));
- WBUFB(buf,30)=flag&0x0f;
- if((flag&0xf0)==0)
- clif->send(buf,packet_db[0x105].len,&sd->bl,PARTY);
- else
- clif->send(buf,packet_db[0x105].len,&sd->bl,SELF);
-}
-
-
-
-void clif_party_message(struct party_data* p, int account_id, const char* mes, int len)
-{
- struct map_session_data *sd;
- int i;
-
- do { if (((void)(p),
-# 6616 "../../../server-code/src/map/clif.c" 3 4
-0
-# 6616 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- do { if (((void)(mes),
-# 6617 "../../../server-code/src/map/clif.c" 3 4
-0
-# 6617 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- for(i=0; i < 12 && !p->data[i].sd;i++);
- if(i < 12){
- unsigned char buf[1024];
-
- if (len > sizeof(buf)-8) {
- (showmsg->showWarning(("clif_party_message: Truncated message '%s' (len=%d, max=%""z" "u"", party_id=%d).\n"), mes, len, sizeof(buf)-8, p->party.party_id))
- ;
- len = sizeof(buf)-8;
- }
-
- sd = p->data[i].sd;
- WBUFW(buf,0)=0x109;
- WBUFW(buf,2)=len+8;
- WBUFL(buf,4)=account_id;
- (strlib->safestrncpy_((WBUFP(buf,8)),(mes),(len)));
- clif->send(buf,len+8,&sd->bl,PARTY);
- }
-}
-
-
-
-void clif_party_xy(struct map_session_data *sd)
-{
- unsigned char buf[16];
-
- do { if (((void)(sd),
-# 6644 "../../../server-code/src/map/clif.c" 3 4
-0
-# 6644 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- WBUFW(buf,0)=0x107;
- WBUFL(buf,2)=sd->status.account_id;
- WBUFW(buf,6)=sd->bl.x;
- WBUFW(buf,8)=sd->bl.y;
- clif->send(buf,packet_db[0x107].len,&sd->bl,PARTY_SAMEMAP_WOS);
-}
-
-
-
-
-void clif_party_xy_single(int fd, struct map_session_data *sd)
-{
- do { if (((void)(sd),
-# 6658 "../../../server-code/src/map/clif.c" 3 4
-0
-# 6658 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- WFIFOHEAD(fd,packet_db[0x107].len);
- WFIFOW(fd,0)=0x107;
- WFIFOL(fd,2)=sd->status.account_id;
- WFIFOW(fd,6)=sd->bl.x;
- WFIFOW(fd,8)=sd->bl.y;
- WFIFOSET(fd,packet_db[0x107].len);
-}
-
-
-
-
-void clif_party_hp(struct map_session_data *sd)
-{
- unsigned char buf[16];
-
-
-
- const int cmd = 0x80e;
-
-
- do { if (((void)(sd),
-# 6679 "../../../server-code/src/map/clif.c" 3 4
-0
-# 6679 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- WBUFW(buf,0)=cmd;
- WBUFL(buf,2)=sd->status.account_id;
-# 6692 "../../../server-code/src/map/clif.c"
- WBUFL(buf,6) = sd->battle_status.hp;
- WBUFL(buf,10) = sd->battle_status.max_hp;
-
- clif->send(buf,packet_db[cmd].len,&sd->bl,PARTY_AREA_WOS);
-}
-
-
-
-
-void clif_hpmeter_single(int fd, int id, unsigned int hp, unsigned int maxhp)
-{
-
-
-
- const int cmd = 0x80e;
-
- WFIFOHEAD(fd,packet_db[cmd].len);
- WFIFOW(fd,0) = cmd;
- WFIFOL(fd,2) = id;
-# 6721 "../../../server-code/src/map/clif.c"
- WFIFOL(fd,6) = hp;
- WFIFOL(fd,10) = maxhp;
-
- WFIFOSET(fd, packet_db[cmd].len);
-}
-
-
-
-void clif_movetoattack(struct map_session_data *sd,struct block_list *bl)
-{
- int fd;
-
- do { if (((void)(sd),
-# 6733 "../../../server-code/src/map/clif.c" 3 4
-0
-# 6733 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- do { if (((void)(bl),
-# 6734 "../../../server-code/src/map/clif.c" 3 4
-0
-# 6734 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- fd=sd->fd;
- WFIFOHEAD(fd,packet_db[0x139].len);
- WFIFOW(fd,0)=0x139;
- WFIFOL(fd, 2)=bl->id;
- WFIFOW(fd,6)=bl->x;
- WFIFOW(fd,8)=bl->y;
- WFIFOW(fd,10)=sd->bl.x;
- WFIFOW(fd,12)=sd->bl.y;
- WFIFOW(fd,14)=sd->battle_status.rhw.range;
- WFIFOSET(fd,packet_db[0x139].len);
-}
-# 6755 "../../../server-code/src/map/clif.c"
-void clif_produceeffect(struct map_session_data* sd,int flag,int nameid)
-{
- int view,fd;
-
- do { if (((void)(sd),
-# 6759 "../../../server-code/src/map/clif.c" 3 4
-0
-# 6759 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- fd = sd->fd;
- clif->solved_charname(fd, sd->status.char_id, sd->status.name);
- WFIFOHEAD(fd,packet_db[0x18f].len);
- WFIFOW(fd,0)=0x18f;
- WFIFOW(fd,2)=flag;
- if((view = (itemdb->search(nameid)->view_id)) > 0)
- WFIFOW(fd,4)=view;
- else
- WFIFOW(fd,4)=nameid;
- WFIFOSET(fd,packet_db[0x18f].len);
-}
-
-
-
-void clif_catch_process(struct map_session_data *sd)
-{
- int fd;
-
- do { if (((void)(sd),
-# 6779 "../../../server-code/src/map/clif.c" 3 4
-0
-# 6779 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- fd=sd->fd;
- WFIFOHEAD(fd,packet_db[0x19e].len);
- WFIFOW(fd,0)=0x19e;
- WFIFOSET(fd,packet_db[0x19e].len);
-}
-
-
-
-
-
-void clif_pet_roulette(struct map_session_data *sd,int data)
-{
- int fd;
-
- do { if (((void)(sd),
-# 6795 "../../../server-code/src/map/clif.c" 3 4
-0
-# 6795 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- fd=sd->fd;
- WFIFOHEAD(fd,packet_db[0x1a0].len);
- WFIFOW(fd,0)=0x1a0;
- WFIFOB(fd,2)=data;
- WFIFOSET(fd,packet_db[0x1a0].len);
-}
-
-
-
-void clif_sendegg(struct map_session_data *sd) {
- int i, n, fd;
-
- do { if (((void)(sd),
-# 6809 "../../../server-code/src/map/clif.c" 3 4
-0
-# 6809 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- fd = sd->fd;
- if (battle_config.pet_no_gvg && (map->list[sd->bl.m].flag.gvg || map->list[sd->bl.m].flag.gvg_castle)) {
- clif->message(fd, atcommand->msgsd((sd),(866)));
- return;
- }
-
- WFIFOHEAD(fd, 100 * 2 + 4);
- WFIFOW(fd,0) = 0x1a6;
- for (i = n = 0; i < 100; i++) {
- if (sd->status.inventory[i].nameid <= 0 || sd->inventory_data[i] ==
-# 6820 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 6820 "../../../server-code/src/map/clif.c"
- || sd->inventory_data[i]->type!=IT_PETEGG || sd->status.inventory[i].amount <= 0)
- continue;
- WFIFOW(fd,n * 2 + 4) = i + 2;
- n++;
- }
-
- if (!n) return;
-
- WFIFOW(fd,2) = 4 + n * 2;
- WFIFOSET(fd, WFIFOW(fd,2));
-
- sd->menuskill_id = SA_TAMINGMONSTER;
- sd->menuskill_val = -1;
-}
-# 6846 "../../../server-code/src/map/clif.c"
-void clif_send_petdata(struct map_session_data* sd, struct pet_data* pd, int type, int param)
-{
- uint8 buf[16];
- do { if (((void)(pd),
-# 6849 "../../../server-code/src/map/clif.c" 3 4
-0
-# 6849 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- WBUFW(buf,0) = 0x1a4;
- WBUFB(buf,2) = type;
- WBUFL(buf,3) = pd->bl.id;
- WBUFL(buf,7) = param;
- if (sd)
- clif->send(buf, packet_db[0x1a4].len, &sd->bl, SELF);
- else
- clif->send(buf, packet_db[0x1a4].len, &pd->bl, AREA);
-}
-
-
-
-void clif_send_petstatus(struct map_session_data *sd)
-{
- int fd;
- struct s_pet *p;
-
- do { if (((void)(sd),
-# 6868 "../../../server-code/src/map/clif.c" 3 4
-0
-# 6868 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- do { if (((void)(sd->pd),
-# 6869 "../../../server-code/src/map/clif.c" 3 4
-0
-# 6869 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- fd=sd->fd;
- p = &sd->pd->pet;
- WFIFOHEAD(fd,packet_db[0x1a2].len);
- WFIFOW(fd,0)=0x1a2;
- memcpy(WFIFOP(fd,2),p->name,(23 + 1));
- WFIFOB(fd,26)=battle_config.pet_rename?0:p->rename_flag;
- WFIFOW(fd,27)=p->level;
- WFIFOW(fd,29)=p->hungry;
- WFIFOW(fd,31)=p->intimate;
- WFIFOW(fd,33)=p->equip;
-
- WFIFOW(fd,35)=p->class_;
-
- WFIFOSET(fd,packet_db[0x1a2].len);
-}
-
-
-
-
-
-void clif_pet_emotion(struct pet_data *pd,int param)
-{
- unsigned char buf[16];
-
- do { if (((void)(pd),
-# 6895 "../../../server-code/src/map/clif.c" 3 4
-0
-# 6895 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- memset(buf,0,packet_db[0x1aa].len);
-
- WBUFW(buf,0)=0x1aa;
- WBUFL(buf,2)=pd->bl.id;
- if(param >= 100 && pd->petDB->talk_convert_class) {
- if(pd->petDB->talk_convert_class < 0)
- return;
- else if(pd->petDB->talk_convert_class > 0) {
-
- param -= (pd->pet.class_ - 100)*100;
- param += (pd->petDB->talk_convert_class - 100)*100;
- }
- }
- WBUFL(buf,6)=param;
-
- clif->send(buf,packet_db[0x1aa].len,&pd->bl,AREA);
-}
-
-
-
-
-
-
-void clif_pet_food(struct map_session_data *sd,int foodid,int fail)
-{
- int fd;
-
- do { if (((void)(sd),
-# 6924 "../../../server-code/src/map/clif.c" 3 4
-0
-# 6924 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- fd=sd->fd;
- WFIFOHEAD(fd,packet_db[0x1a3].len);
- WFIFOW(fd,0)=0x1a3;
- WFIFOB(fd,2)=fail;
- WFIFOW(fd,3)=foodid;
- WFIFOSET(fd,packet_db[0x1a3].len);
-}
-
-
-
-void clif_autospell(struct map_session_data *sd,uint16 skill_lv)
-{
- int fd;
-
- do { if (((void)(sd),
-# 6940 "../../../server-code/src/map/clif.c" 3 4
-0
-# 6940 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- fd=sd->fd;
- WFIFOHEAD(fd,packet_db[0x1cd].len);
- WFIFOW(fd,0)=0x1cd;
-
- if(skill_lv>0 && pc->checkskill(sd,MG_NAPALMBEAT)>0)
- WFIFOL(fd,2)= MG_NAPALMBEAT;
- else
- WFIFOL(fd,2)= 0x00000000;
- if(skill_lv>1 && pc->checkskill(sd,MG_COLDBOLT)>0)
- WFIFOL(fd,6)= MG_COLDBOLT;
- else
- WFIFOL(fd,6)= 0x00000000;
- if(skill_lv>1 && pc->checkskill(sd,MG_FIREBOLT)>0)
- WFIFOL(fd,10)= MG_FIREBOLT;
- else
- WFIFOL(fd,10)= 0x00000000;
- if(skill_lv>1 && pc->checkskill(sd,MG_LIGHTNINGBOLT)>0)
- WFIFOL(fd,14)= MG_LIGHTNINGBOLT;
- else
- WFIFOL(fd,14)= 0x00000000;
- if(skill_lv>4 && pc->checkskill(sd,MG_SOULSTRIKE)>0)
- WFIFOL(fd,18)= MG_SOULSTRIKE;
- else
- WFIFOL(fd,18)= 0x00000000;
- if(skill_lv>7 && pc->checkskill(sd,MG_FIREBALL)>0)
- WFIFOL(fd,22)= MG_FIREBALL;
- else
- WFIFOL(fd,22)= 0x00000000;
- if(skill_lv>9 && pc->checkskill(sd,MG_FROSTDIVER)>0)
- WFIFOL(fd,26)= MG_FROSTDIVER;
- else
- WFIFOL(fd,26)= 0x00000000;
-
- WFIFOSET(fd,packet_db[0x1cd].len);
- sd->menuskill_id = SA_AUTOSPELL;
- sd->menuskill_val = skill_lv;
-}
-
-
-
-void clif_devotion(struct block_list *src, struct map_session_data *tsd)
-{
- unsigned char buf[56];
-
- do { if (((void)(src),
-# 6986 "../../../server-code/src/map/clif.c" 3 4
-0
-# 6986 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- memset(buf,0,packet_db[0x1cf].len);
-
- WBUFW(buf,0) = 0x1cf;
- WBUFL(buf,2) = src->id;
- if( src->type == BL_MER )
- {
- struct mercenary_data *md = ( ((src) == (struct block_list *)
-# 6993 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 6993 "../../../server-code/src/map/clif.c"
- || (src)->type != (BL_MER)) ? (TBL_MER *)
-# 6993 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 6993 "../../../server-code/src/map/clif.c"
- : (TBL_MER *)(src) );
- if( md && md->master && md->devotion_flag )
- WBUFL(buf,6) = md->master->bl.id;
-
- WBUFW(buf,26) = skill->get_range2(src, ML_DEVOTION, mercenary->checkskill(md, ML_DEVOTION));
- }
- else
- {
- int i;
- struct map_session_data *sd = ( ((src) == (struct block_list *)
-# 7002 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 7002 "../../../server-code/src/map/clif.c"
- || (src)->type != (BL_PC)) ? (TBL_PC *)
-# 7002 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 7002 "../../../server-code/src/map/clif.c"
- : (TBL_PC *)(src) );
- if( sd ==
-# 7003 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 7003 "../../../server-code/src/map/clif.c"
- )
- return;
-
- for( i = 0; i < 5; i++ )
- WBUFL(buf,6+4*i) = sd->devotion[i];
- WBUFW(buf,26) = skill->get_range2(src, CR_DEVOTION, pc->checkskill(sd, CR_DEVOTION));
- }
-
- if( tsd )
- clif->send(buf, packet_db[0x1cf].len, &tsd->bl, SELF);
- else
- clif->send(buf, packet_db[0x1cf].len, src, AREA);
-}
-
-
-
-
-
-
-
-void clif_spiritball(struct block_list *bl) {
- unsigned char buf[16];
- struct map_session_data *sd = ( ((bl) == (struct block_list *)
-# 7025 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 7025 "../../../server-code/src/map/clif.c"
- || (bl)->type != (BL_PC)) ? (TBL_PC *)
-# 7025 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 7025 "../../../server-code/src/map/clif.c"
- : (TBL_PC *)(bl) );
- struct homun_data *hd = ( ((bl) == (struct block_list *)
-# 7026 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 7026 "../../../server-code/src/map/clif.c"
- || (bl)->type != (BL_HOM)) ? (TBL_HOM *)
-# 7026 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 7026 "../../../server-code/src/map/clif.c"
- : (TBL_HOM *)(bl) );
-
- do { if (((void)(bl),
-# 7028 "../../../server-code/src/map/clif.c" 3 4
-0
-# 7028 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- WBUFW(buf,0) = 0x1d0;
- WBUFL(buf, 2) = bl->id;
- WBUFW(buf,6) = 0;
- switch(bl->type){
- case BL_PC: WBUFW(buf,6) = sd->spiritball; break;
- case BL_HOM: WBUFW(buf,6) = hd->homunculus.spiritball; break;
- }
- clif->send(buf, packet_db[0x1d0].len, bl, AREA);
-}
-
-
-
-void clif_combo_delay(struct block_list *bl,int wait)
-{
- unsigned char buf[32];
-
- do { if (((void)(bl),
-# 7046 "../../../server-code/src/map/clif.c" 3 4
-0
-# 7046 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- WBUFW(buf,0)=0x1d2;
- WBUFL(buf,2)=bl->id;
- WBUFL(buf,6)=wait;
- clif->send(buf,packet_db[0x1d2].len,bl,AREA);
-}
-
-
-
-
-
-
-void clif_bladestop(struct block_list *src, int dst_id, int active)
-{
- unsigned char buf[32];
-
- do { if (((void)(src),
-# 7063 "../../../server-code/src/map/clif.c" 3 4
-0
-# 7063 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- WBUFW(buf,0)=0x1d1;
- WBUFL(buf,2)=src->id;
- WBUFL(buf,6)=dst_id;
- WBUFL(buf,10)=active;
-
- clif->send(buf,packet_db[0x1d1].len,src,AREA);
-}
-
-
-
-void clif_mvp_effect(struct map_session_data *sd)
-{
- unsigned char buf[16];
-
- do { if (((void)(sd),
-# 7079 "../../../server-code/src/map/clif.c" 3 4
-0
-# 7079 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- WBUFW(buf,0)=0x10c;
- WBUFL(buf,2)=sd->bl.id;
- clif->send(buf,packet_db[0x10c].len,&sd->bl,AREA);
-}
-
-
-
-void clif_mvp_item(struct map_session_data *sd,int nameid)
-{
- int view,fd;
-
- do { if (((void)(sd),
-# 7092 "../../../server-code/src/map/clif.c" 3 4
-0
-# 7092 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- fd=sd->fd;
- WFIFOHEAD(fd,packet_db[0x10a].len);
- WFIFOW(fd,0)=0x10a;
- if((view = (itemdb->search(nameid)->view_id)) > 0)
- WFIFOW(fd,2)=view;
- else
- WFIFOW(fd,2)=nameid;
- WFIFOSET(fd,packet_db[0x10a].len);
-}
-
-
-
-void clif_mvp_exp(struct map_session_data *sd, unsigned int exp)
-{
- int fd;
-
- do { if (((void)(sd),
-# 7110 "../../../server-code/src/map/clif.c" 3 4
-0
-# 7110 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- fd=sd->fd;
- WFIFOHEAD(fd,packet_db[0x10b].len);
- WFIFOW(fd,0)=0x10b;
- WFIFOL(fd,2)=(((exp) >= (
-# 7115 "../../../server-code/src/map/clif.c" 3 4
- (2147483647)
-# 7115 "../../../server-code/src/map/clif.c"
- )) ? (
-# 7115 "../../../server-code/src/map/clif.c" 3 4
- (2147483647)
-# 7115 "../../../server-code/src/map/clif.c"
- ) : ((exp) <= (0)) ? (0) : (exp));
- WFIFOSET(fd,packet_db[0x10b].len);
-}
-
-
-
-
-
-
-void clif_mvp_noitem(struct map_session_data* sd)
-{
- int fd = sd->fd;
-
- WFIFOHEAD(fd,packet_db[0x10d].len);
- WFIFOW(fd,0) = 0x10d;
- WFIFOSET(fd,packet_db[0x10d].len);
-}
-# 7140 "../../../server-code/src/map/clif.c"
-void clif_guild_created(struct map_session_data *sd,int flag)
-{
- int fd;
-
- do { if (((void)(sd),
-# 7144 "../../../server-code/src/map/clif.c" 3 4
-0
-# 7144 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- fd=sd->fd;
- WFIFOHEAD(fd,packet_db[0x167].len);
- WFIFOW(fd,0)=0x167;
- WFIFOB(fd,2)=flag;
- WFIFOSET(fd,packet_db[0x167].len);
-}
-
-
-
-
-void clif_guild_belonginfo(struct map_session_data *sd, struct guild *g)
-{
- int ps,fd;
- do { if (((void)(sd),
-# 7159 "../../../server-code/src/map/clif.c" 3 4
-0
-# 7159 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- do { if (((void)(g),
-# 7160 "../../../server-code/src/map/clif.c" 3 4
-0
-# 7160 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- fd=sd->fd;
- ps=guild->getposition(g,sd);
- WFIFOHEAD(fd,packet_db[0x16c].len);
- WFIFOW(fd,0)=0x16c;
- WFIFOL(fd,2)=g->guild_id;
- WFIFOL(fd,6)=g->emblem_id;
- WFIFOL(fd,10)=g->position[ps].mode;
- WFIFOB(fd,14)=(
-# 7169 "../../../server-code/src/map/clif.c" 3 4
- _Bool
-# 7169 "../../../server-code/src/map/clif.c"
- )(sd->state.gmaster_flag == 1);
- WFIFOL(fd,15)=0;
- memcpy(WFIFOP(fd,19),g->name,(23 + 1));
- WFIFOSET(fd,packet_db[0x16c].len);
-}
-
-
-
-
-
-
-
-void clif_guild_memberlogin_notice(struct guild *g,int idx,int flag)
-{
- unsigned char buf[64];
- struct map_session_data* sd;
-
- do { if (((void)(g),
-# 7186 "../../../server-code/src/map/clif.c" 3 4
-0
-# 7186 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- WBUFW(buf,0)=0x1f2;
- WBUFL(buf, 2)=g->member[idx].account_id;
- WBUFL(buf, 6)=g->member[idx].char_id;
- WBUFL(buf,10)=flag;
-
- if( ( sd = g->member[idx].sd ) !=
-# 7193 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 7193 "../../../server-code/src/map/clif.c"
- )
- {
- WBUFW(buf,14) = sd->status.sex;
- WBUFW(buf,16) = sd->status.hair;
- WBUFW(buf,18) = sd->status.hair_color;
- clif->send(buf,packet_db[0x1f2].len,&sd->bl,GUILD_WOS);
- }
- else if( ( sd = guild->getavailablesd(g) ) !=
-# 7200 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 7200 "../../../server-code/src/map/clif.c"
- )
- {
- WBUFW(buf,14) = 0;
- WBUFW(buf,16) = 0;
- WBUFW(buf,18) = 0;
- clif->send(buf,packet_db[0x1f2].len,&sd->bl,GUILD);
- }
-}
-# 7218 "../../../server-code/src/map/clif.c"
-void clif_guild_send_onlineinfo(struct map_session_data *sd)
-{
- struct guild *g;
- unsigned char buf[14*128];
- int i, count=0, p_len;
-
- do { if (((void)(sd),
-# 7224 "../../../server-code/src/map/clif.c" 3 4
-0
-# 7224 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- p_len = packet_db[0x16d].len;
-
- if(!(g = sd->guild))
- return;
-
- for(i=0; i<g->max_member; i++) {
-
- if(g->member[i].account_id > 0 &&
- g->member[i].account_id != sd->status.account_id) {
-
- WBUFW(buf,count*p_len) = 0x16d;
- WBUFL(buf,count*p_len+2) = g->member[i].account_id;
- WBUFL(buf,count*p_len+6) = g->member[i].char_id;
- WBUFL(buf,count*p_len+10) = g->member[i].online;
- count++;
- }
- }
-
- clif->send(buf, p_len*count, &sd->bl, SELF);
-}
-# 7257 "../../../server-code/src/map/clif.c"
-void clif_guild_masterormember(struct map_session_data *sd)
-{
- int fd;
-
- do { if (((void)(sd),
-# 7261 "../../../server-code/src/map/clif.c" 3 4
-0
-# 7261 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- fd=sd->fd;
- WFIFOHEAD(fd,packet_db[0x14e].len);
- WFIFOW(fd,0) = 0x14e;
- WFIFOL(fd,2) = (sd->state.gmaster_flag) ? 0xd7 : 0x57;
- WFIFOSET(fd,packet_db[0x14e].len);
-}
-
-
-
-
-void clif_guild_basicinfo(struct map_session_data *sd) {
- int fd;
- struct guild *g;
-
- do { if (((void)(sd),
-# 7277 "../../../server-code/src/map/clif.c" 3 4
-0
-# 7277 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- fd = sd->fd;
-
- if( (g = sd->guild) ==
-# 7280 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 7280 "../../../server-code/src/map/clif.c"
- )
- return;
-
- WFIFOHEAD(fd,packet_db[0x1b6].len);
- WFIFOW(fd,0)=0x1b6;
- WFIFOL(fd, 2)=g->guild_id;
- WFIFOL(fd, 6)=g->guild_lv;
- WFIFOL(fd,10)=g->connect_member;
- WFIFOL(fd,14)=g->max_member;
- WFIFOL(fd,18)=g->average_lv;
- WFIFOL(fd,22)=(uint32)(((g->exp) >= (
-# 7290 "../../../server-code/src/map/clif.c" 3 4
- (2147483647)
-# 7290 "../../../server-code/src/map/clif.c"
- )) ? (
-# 7290 "../../../server-code/src/map/clif.c" 3 4
- (2147483647)
-# 7290 "../../../server-code/src/map/clif.c"
- ) : ((g->exp) <= (0)) ? (0) : (g->exp));
- WFIFOL(fd,26)=g->next_exp;
- WFIFOL(fd,30)=0;
- WFIFOL(fd,34)=0;
- WFIFOL(fd,38)=0;
- WFIFOL(fd,42)=g->emblem_id;
- memcpy(WFIFOP(fd,46),g->name, (23 + 1));
- memcpy(WFIFOP(fd,70),g->master, (23 + 1));
-
- (strlib->safestrncpy_((WFIFOP(fd,94)),(atcommand->msgsd((sd),(300+guild->checkcastles(g)))),(16)));
- WFIFOL(fd,110) = 0;
-
- WFIFOSET(fd,packet_db[0x1b6].len);
-}
-
-
-
-void clif_guild_allianceinfo(struct map_session_data *sd)
-{
- int fd,i,c;
- struct guild *g;
-
- do { if (((void)(sd),
-# 7312 "../../../server-code/src/map/clif.c" 3 4
-0
-# 7312 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- if( (g = sd->guild) ==
-# 7313 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 7313 "../../../server-code/src/map/clif.c"
- )
- return;
-
- fd = sd->fd;
- WFIFOHEAD(fd, 16 * 32 + 4);
- WFIFOW(fd,0)=0x14c;
- for(i=c=0;i<16;i++){
- struct guild_alliance *a=&g->alliance[i];
- if(a->guild_id>0){
- WFIFOL(fd,c*32+4)=a->opposition;
- WFIFOL(fd,c*32+8)=a->guild_id;
- memcpy(WFIFOP(fd,c*32+12),a->name,(23 + 1));
- c++;
- }
- }
- WFIFOW(fd,2)=c*32+4;
- WFIFOSET(fd,WFIFOW(fd,2));
-}
-# 7339 "../../../server-code/src/map/clif.c"
-void clif_guild_memberlist(struct map_session_data *sd)
-{
- int fd;
- int i,c;
- struct guild *g;
- do { if (((void)(sd),
-# 7344 "../../../server-code/src/map/clif.c" 3 4
-0
-# 7344 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- if( (fd = sd->fd) == 0 )
- return;
- if( (g = sd->guild) ==
-# 7348 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 7348 "../../../server-code/src/map/clif.c"
- )
- return;
-
- WFIFOHEAD(fd, g->max_member * 104 + 4);
- WFIFOW(fd,0)=0x154;
- for(i=0,c=0;i<g->max_member;i++){
- struct guild_member *m=&g->member[i];
- if(m->account_id==0)
- continue;
- WFIFOL(fd,c*104+ 4)=m->account_id;
- WFIFOL(fd,c*104+ 8)=m->char_id;
- WFIFOW(fd,c*104+12)=m->hair;
- WFIFOW(fd,c*104+14)=m->hair_color;
- WFIFOW(fd,c*104+16)=m->gender;
- WFIFOW(fd,c*104+18)=m->class_;
- WFIFOW(fd,c*104+20)=m->lv;
- WFIFOL(fd,c*104+22)=(int)(((m->exp) >= (
-# 7364 "../../../server-code/src/map/clif.c" 3 4
- (2147483647)
-# 7364 "../../../server-code/src/map/clif.c"
- )) ? (
-# 7364 "../../../server-code/src/map/clif.c" 3 4
- (2147483647)
-# 7364 "../../../server-code/src/map/clif.c"
- ) : ((m->exp) <= (0)) ? (0) : (m->exp));
- WFIFOL(fd,c*104+26)=m->online;
- WFIFOL(fd,c*104+30)=m->position;
- memset(WFIFOP(fd,c*104+34),0,50);
- memcpy(WFIFOP(fd,c*104+84),m->name,(23 + 1));
- c++;
- }
- WFIFOW(fd,2)=c*104+4;
- WFIFOSET(fd,WFIFOW(fd,2));
-}
-
-
-
-void clif_guild_positionnamelist(struct map_session_data *sd) {
- int i,fd;
- struct guild *g;
-
- do { if (((void)(sd),
-# 7381 "../../../server-code/src/map/clif.c" 3 4
-0
-# 7381 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- if( (g = sd->guild) ==
-# 7382 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 7382 "../../../server-code/src/map/clif.c"
- )
- return;
-
- fd = sd->fd;
- WFIFOHEAD(fd, 20 * 28 + 4);
- WFIFOW(fd,0)=0x166;
- for(i=0;i<20;i++){
- WFIFOL(fd,i*28+4)=i;
- memcpy(WFIFOP(fd,i*28+8),g->position[i].name,(23 + 1));
- }
- WFIFOW(fd,2)=i*28+4;
- WFIFOSET(fd,WFIFOW(fd,2));
-}
-
-
-
-
-
-
-void clif_guild_positioninfolist(struct map_session_data *sd) {
- int i,fd;
- struct guild *g;
-
- do { if (((void)(sd),
-# 7405 "../../../server-code/src/map/clif.c" 3 4
-0
-# 7405 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- if( (g = sd->guild) ==
-# 7406 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 7406 "../../../server-code/src/map/clif.c"
- )
- return;
-
- fd = sd->fd;
- WFIFOHEAD(fd, 20 * 16 + 4);
- WFIFOW(fd,0)=0x160;
- for(i=0;i<20;i++){
- struct guild_position *p=&g->position[i];
- WFIFOL(fd,i*16+ 4)=i;
- WFIFOL(fd,i*16+ 8)=p->mode;
- WFIFOL(fd,i*16+12)=i;
- WFIFOL(fd,i*16+16)=p->exp_mode;
- }
- WFIFOW(fd,2)=i*16+4;
- WFIFOSET(fd,WFIFOW(fd,2));
-}
-
-
-
-
-
-
-void clif_guild_positionchanged(struct guild *g,int idx)
-{
-
-
-
- struct map_session_data *sd;
- unsigned char buf[128];
-
- do { if (((void)(g),
-# 7436 "../../../server-code/src/map/clif.c" 3 4
-0
-# 7436 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- WBUFW(buf,0)=0x174;
- WBUFW(buf,2)=44;
-
- WBUFL(buf, 4)=idx;
- WBUFL(buf, 8)=g->position[idx].mode;
- WBUFL(buf,12)=idx;
- WBUFL(buf,16)=g->position[idx].exp_mode;
- memcpy(WBUFP(buf,20),g->position[idx].name,(23 + 1));
-
- if( (sd=guild->getavailablesd(g))!=
-# 7447 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 7447 "../../../server-code/src/map/clif.c"
- )
- clif->send(buf,WBUFW(buf,2),&sd->bl,GUILD);
-}
-
-
-
-void clif_guild_memberpositionchanged(struct guild *g,int idx)
-{
-
-
-
- struct map_session_data *sd;
- unsigned char buf[64];
-
- do { if (((void)(g),
-# 7461 "../../../server-code/src/map/clif.c" 3 4
-0
-# 7461 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- WBUFW(buf,0)=0x156;
- WBUFW(buf,2)=16;
-
- WBUFL(buf, 4)=g->member[idx].account_id;
- WBUFL(buf, 8)=g->member[idx].char_id;
- WBUFL(buf,12)=g->member[idx].position;
-
- if( (sd=guild->getavailablesd(g))!=
-# 7470 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 7470 "../../../server-code/src/map/clif.c"
- )
- clif->send(buf,WBUFW(buf,2),&sd->bl,GUILD);
-}
-
-
-
-void clif_guild_emblem(struct map_session_data *sd,struct guild *g)
-{
- int fd;
- do { if (((void)(sd),
-# 7479 "../../../server-code/src/map/clif.c" 3 4
-0
-# 7479 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- do { if (((void)(g),
-# 7480 "../../../server-code/src/map/clif.c" 3 4
-0
-# 7480 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- fd = sd->fd;
- if( g->emblem_len <= 0 )
- return;
-
- WFIFOHEAD(fd,g->emblem_len+12);
- WFIFOW(fd,0)=0x152;
- WFIFOW(fd,2)=g->emblem_len+12;
- WFIFOL(fd,4)=g->guild_id;
- WFIFOL(fd,8)=g->emblem_id;
- memcpy(WFIFOP(fd,12),g->emblem_data,g->emblem_len);
- WFIFOSET(fd,WFIFOW(fd,2));
-}
-
-
-
-void clif_guild_emblem_area(struct block_list* bl)
-{
- uint8 buf[12];
-
- do { if (((void)(bl),
-# 7501 "../../../server-code/src/map/clif.c" 3 4
-0
-# 7501 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
-
-
- WBUFW(buf,0) = 0x1b4;
- WBUFL(buf,2) = bl->id;
- WBUFL(buf,6) = status->get_guild_id(bl);
- WBUFW(buf,10) = status->get_emblem_id(bl);
- clif->send(buf, 12, bl, AREA_WOS);
-}
-
-
-
-void clif_guild_skillinfo(struct map_session_data* sd)
-{
- int fd;
- struct guild* g;
- int i,c;
-
- do { if (((void)(sd),
-# 7520 "../../../server-code/src/map/clif.c" 3 4
-0
-# 7520 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- if( (g = sd->guild) ==
-# 7521 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 7521 "../../../server-code/src/map/clif.c"
- )
- return;
-
- fd = sd->fd;
- WFIFOHEAD(fd, 6 + 15*37);
- WFIFOW(fd,0) = 0x0162;
- WFIFOW(fd,4) = g->skill_point;
- for(i = 0, c = 0; i < 15; i++) {
- if(g->skill[i].id > 0 && guild->check_skill_require(g, g->skill[i].id)) {
- int id = g->skill[i].id;
- int p = 6 + c*37;
- WFIFOW(fd,p+0) = id;
- WFIFOL(fd,p+2) = skill->get_inf(id);
- WFIFOW(fd,p+6) = g->skill[i].lv;
- if ( g->skill[i].lv ) {
- WFIFOW(fd,p + 8) = skill->get_sp(id, g->skill[i].lv);
- WFIFOW(fd,p + 10) = skill->get_range(id, g->skill[i].lv);
- } else {
- WFIFOW(fd,p + 8) = 0;
- WFIFOW(fd,p + 10) = 0;
- }
- (strlib->safestrncpy_((WFIFOP(fd,p+12)),(skill->get_name(id)),((23 + 1))));
- WFIFOB(fd,p+36)= (g->skill[i].lv < guild->skill_get_max(id) && sd == g->member[0].sd) ? 1 : 0;
- c++;
- }
- }
- WFIFOW(fd,2) = 6 + c*37;
- WFIFOSET(fd,WFIFOW(fd,2));
-}
-
-
-
-void clif_guild_notice(struct map_session_data* sd, struct guild* g)
-{
- int fd;
-
- do { if (((void)(sd),
-# 7557 "../../../server-code/src/map/clif.c" 3 4
-0
-# 7557 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- do { if (((void)(g),
-# 7558 "../../../server-code/src/map/clif.c" 3 4
-0
-# 7558 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- fd = sd->fd;
-
- if (!sockt->session_is_active(fd))
- return;
-
- if(g->mes1[0] == '\0' && g->mes2[0] == '\0')
- return;
-
- WFIFOHEAD(fd,packet_db[0x16f].len);
- WFIFOW(fd,0) = 0x16f;
- memcpy(WFIFOP(fd,2), g->mes1, 60);
- memcpy(WFIFOP(fd,62), g->mes2, 120);
- WFIFOSET(fd,packet_db[0x16f].len);
-}
-
-
-
-void clif_guild_invite(struct map_session_data *sd,struct guild *g)
-{
- int fd;
-
- do { if (((void)(sd),
-# 7581 "../../../server-code/src/map/clif.c" 3 4
-0
-# 7581 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- do { if (((void)(g),
-# 7582 "../../../server-code/src/map/clif.c" 3 4
-0
-# 7582 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- fd=sd->fd;
- WFIFOHEAD(fd,packet_db[0x16a].len);
- WFIFOW(fd,0)=0x16a;
- WFIFOL(fd,2)=g->guild_id;
- memcpy(WFIFOP(fd,6),g->name,(23 + 1));
- WFIFOSET(fd,packet_db[0x16a].len);
-}
-# 7599 "../../../server-code/src/map/clif.c"
-void clif_guild_inviteack(struct map_session_data *sd,int flag)
-{
- int fd;
-
- do { if (((void)(sd),
-# 7603 "../../../server-code/src/map/clif.c" 3 4
-0
-# 7603 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- fd=sd->fd;
- WFIFOHEAD(fd,packet_db[0x169].len);
- WFIFOW(fd,0)=0x169;
- WFIFOB(fd,2)=flag;
- WFIFOSET(fd,packet_db[0x169].len);
-}
-
-
-
-void clif_guild_leave(struct map_session_data *sd,const char *name,const char *mes)
-{
- unsigned char buf[128];
-
- do { if (((void)(sd),
-# 7618 "../../../server-code/src/map/clif.c" 3 4
-0
-# 7618 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- WBUFW(buf,0)=0x15a;
- memcpy(WBUFP(buf, 2),name,(23 + 1));
- memcpy(WBUFP(buf,26),mes,40);
- clif->send(buf,packet_db[0x15a].len,&sd->bl,GUILD_NOBG);
-}
-
-
-
-
-void clif_guild_expulsion(struct map_session_data* sd, const char* name, const char* mes, int account_id)
-{
- unsigned char buf[128];
-
-
-
- const unsigned short cmd = 0x839;
-
-
- do { if (((void)(sd),
-# 7638 "../../../server-code/src/map/clif.c" 3 4
-0
-# 7638 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- do { if (((void)(name),
-# 7639 "../../../server-code/src/map/clif.c" 3 4
-0
-# 7639 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- do { if (((void)(mes),
-# 7640 "../../../server-code/src/map/clif.c" 3 4
-0
-# 7640 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- WBUFW(buf,0) = cmd;
- (strlib->safestrncpy_((WBUFP(buf,2)),(name),((23 + 1))));
- (strlib->safestrncpy_((WBUFP(buf,26)),(mes),(40)));
-
-
-
- clif->send(buf, packet_db[cmd].len, &sd->bl, GUILD_NOBG);
-}
-
-
-
-
-void clif_guild_expulsionlist(struct map_session_data* sd) {
-
-
-
- const int offset = (23 + 1)+40;
-
- int fd, i, c = 0;
- struct guild* g;
-
- do { if (((void)(sd),
-# 7663 "../../../server-code/src/map/clif.c" 3 4
-0
-# 7663 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- if( (g = sd->guild) ==
-# 7665 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 7665 "../../../server-code/src/map/clif.c"
- )
- return;
-
- fd = sd->fd;
-
- WFIFOHEAD(fd,4 + 32 * offset);
- WFIFOW(fd,0) = 0x163;
-
- for( i = 0; i < 32; i++ )
- {
- struct guild_expulsion* e = &g->expulsion[i];
-
- if( e->account_id > 0 )
- {
- memcpy(WFIFOP(fd,4 + c*offset), e->name, (23 + 1));
-
-
-
-
- memcpy(WFIFOP(fd,4 + c*offset+24), e->mes, 40);
-
- c++;
- }
- }
- WFIFOW(fd,2) = 4 + c*offset;
- WFIFOSET(fd,WFIFOW(fd,2));
-}
-
-
-
-void clif_guild_message(struct guild *g,int account_id,const char *mes,int len)
-{
- struct map_session_data *sd;
- uint8 buf[256];
-
- do { if (((void)(mes),
-# 7700 "../../../server-code/src/map/clif.c" 3 4
-0
-# 7700 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- if (len == 0)
- return;
-
- if (len > sizeof(buf)-5) {
- (showmsg->showWarning(("clif_guild_message: Truncated message '%s' (len=%d, max=%""z" "u"", guild_id=%d).\n"), mes, len, sizeof(buf)-5, g->guild_id));
- len = sizeof(buf)-5;
- }
-
- WBUFW(buf,0) = 0x17f;
- WBUFW(buf,2) = len + 5;
- (strlib->safestrncpy_((WBUFP(buf,4)),(mes),(len+1)));
-
- if ((sd = guild->getavailablesd(g)) !=
-# 7713 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 7713 "../../../server-code/src/map/clif.c"
- )
- clif->send(buf, WBUFW(buf,2), &sd->bl, GUILD_NOBG);
-}
-
-
-
-void clif_guild_reqalliance(struct map_session_data *sd,int account_id,const char *name)
-{
- int fd;
-
- do { if (((void)(sd),
-# 7723 "../../../server-code/src/map/clif.c" 3 4
-0
-# 7723 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- do { if (((void)(name),
-# 7724 "../../../server-code/src/map/clif.c" 3 4
-0
-# 7724 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- fd=sd->fd;
- WFIFOHEAD(fd,packet_db[0x171].len);
- WFIFOW(fd,0)=0x171;
- WFIFOL(fd,2)=account_id;
- memcpy(WFIFOP(fd,6),name,(23 + 1));
- WFIFOSET(fd,packet_db[0x171].len);
-}
-# 7743 "../../../server-code/src/map/clif.c"
-void clif_guild_allianceack(struct map_session_data *sd,int flag)
-{
- int fd;
-
- do { if (((void)(sd),
-# 7747 "../../../server-code/src/map/clif.c" 3 4
-0
-# 7747 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- fd=sd->fd;
- WFIFOHEAD(fd,packet_db[0x173].len);
- WFIFOW(fd,0)=0x173;
- WFIFOL(fd,2)=flag;
- WFIFOSET(fd,packet_db[0x173].len);
-}
-
-
-
-
-
-
-void clif_guild_delalliance(struct map_session_data *sd,int guild_id,int flag)
-{
- int fd;
-
- do { if (((void)(sd),
-# 7765 "../../../server-code/src/map/clif.c" 3 4
-0
-# 7765 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- fd = sd->fd;
- if (fd <= 0)
- return;
- WFIFOHEAD(fd,packet_db[0x184].len);
- WFIFOW(fd,0)=0x184;
- WFIFOL(fd,2)=guild_id;
- WFIFOL(fd,6)=flag;
- WFIFOSET(fd,packet_db[0x184].len);
-}
-# 7784 "../../../server-code/src/map/clif.c"
-void clif_guild_oppositionack(struct map_session_data *sd,int flag)
-{
- int fd;
-
- do { if (((void)(sd),
-# 7788 "../../../server-code/src/map/clif.c" 3 4
-0
-# 7788 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- fd=sd->fd;
- WFIFOHEAD(fd,packet_db[0x181].len);
- WFIFOW(fd,0)=0x181;
- WFIFOB(fd,2)=flag;
- WFIFOSET(fd,packet_db[0x181].len);
-}
-# 7816 "../../../server-code/src/map/clif.c"
-void clif_guild_broken(struct map_session_data *sd,int flag)
-{
- int fd;
-
- do { if (((void)(sd),
-# 7820 "../../../server-code/src/map/clif.c" 3 4
-0
-# 7820 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- fd=sd->fd;
- WFIFOHEAD(fd,packet_db[0x15e].len);
- WFIFOW(fd,0)=0x15e;
- WFIFOL(fd,2)=flag;
- WFIFOSET(fd,packet_db[0x15e].len);
-}
-
-
-
-
-
-void clif_emotion(struct block_list *bl,int type)
-{
- unsigned char buf[8];
-
- do { if (((void)(bl),
-# 7837 "../../../server-code/src/map/clif.c" 3 4
-0
-# 7837 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- WBUFW(buf,0)=0xc0;
- WBUFL(buf,2)=bl->id;
- WBUFB(buf,6)=type;
- clif->send(buf,packet_db[0xc0].len,bl,AREA);
-}
-
-
-
-void clif_talkiebox(struct block_list* bl, const char* talkie)
-{
- unsigned char buf[(79 + 1)+6];
- do { if (((void)(bl),
-# 7850 "../../../server-code/src/map/clif.c" 3 4
-0
-# 7850 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- do { if (((void)(talkie),
-# 7851 "../../../server-code/src/map/clif.c" 3 4
-0
-# 7851 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- WBUFW(buf,0) = 0x191;
- WBUFL(buf,2) = bl->id;
- (strlib->safestrncpy_((WBUFP(buf,6)),(talkie),((79 + 1))));
- clif->send(buf,packet_db[0x191].len,bl,AREA);
-}
-
-
-
-void clif_wedding_effect(struct block_list *bl)
-{
- unsigned char buf[6];
-
- do { if (((void)(bl),
-# 7865 "../../../server-code/src/map/clif.c" 3 4
-0
-# 7865 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- WBUFW(buf,0) = 0x1ea;
- WBUFL(buf,2) = bl->id;
- clif->send(buf, packet_db[0x1ea].len, bl, AREA);
-}
-
-
-
-void clif_callpartner(struct map_session_data *sd) {
- unsigned char buf[26];
-
- do { if (((void)(sd),
-# 7877 "../../../server-code/src/map/clif.c" 3 4
-0
-# 7877 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- WBUFW(buf,0) = 0x1e6;
-
- if( sd->status.partner_id ) {
- const char *p;
- if( ( p = map->charid2nick(sd->status.partner_id) ) !=
-# 7883 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 7883 "../../../server-code/src/map/clif.c"
- ) {
- memcpy(WBUFP(buf,2), p, (23 + 1));
- } else {
- WBUFB(buf,2) = 0;
- }
- } else {
-
- WBUFB(buf,2) = 0;
- }
-
- clif->send(buf, packet_db[0x1e6].len, &sd->bl, AREA);
-}
-# 7914 "../../../server-code/src/map/clif.c"
-void clif_divorced(struct map_session_data* sd, const char* name)
-{
- int fd;
- do { if (((void)(sd),
-# 7917 "../../../server-code/src/map/clif.c" 3 4
-0
-# 7917 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- fd=sd->fd;
- WFIFOHEAD(fd,packet_db[0x205].len);
- WFIFOW(fd,0)=0x205;
- memcpy(WFIFOP(fd,2), name, (23 + 1));
- WFIFOSET(fd, packet_db[0x205].len);
-}
-# 7946 "../../../server-code/src/map/clif.c"
-void clif_disp_message(struct block_list* src, const char* mes, size_t len, enum send_target target)
-{
- unsigned char buf[256];
-
- if (len == 0)
- return;
-
- do { if (((void)(src),
-# 7953 "../../../server-code/src/map/clif.c" 3 4
-0
-# 7953 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- do { if (((void)(mes),
-# 7954 "../../../server-code/src/map/clif.c" 3 4
-0
-# 7954 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- if (len > sizeof(buf)-5) {
- (showmsg->showWarning(("clif_disp_message: Truncated message '%s' (len=%""z" "u"", max=%""z" "u"", aid=%d).\n"), mes, len, sizeof(buf)-5, src->id));
- len = sizeof(buf)-5;
- }
-
- WBUFW(buf,0) = 0x17f;
- WBUFW(buf,2) = len + 5;
- (strlib->safestrncpy_((WBUFP(buf,4)),(mes),(len+1)));
- clif->send(buf, WBUFW(buf,2), src, target);
-}
-
-
-
-
-
-
-
-void clif_GM_kickack(struct map_session_data *sd, int result)
-{
- int fd;
-
- do { if (((void)(sd),
-# 7977 "../../../server-code/src/map/clif.c" 3 4
-0
-# 7977 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- fd = sd->fd;
- WFIFOHEAD(fd,packet_db[0xcd].len);
- WFIFOW(fd,0) = 0xcd;
- WFIFOB(fd,2) = result;
- WFIFOSET(fd, packet_db[0xcd].len);
-}
-
-void clif_GM_kick(struct map_session_data *sd,struct map_session_data *tsd) {
- int fd;
-
- do { if (((void)(tsd),
-# 7989 "../../../server-code/src/map/clif.c" 3 4
-0
-# 7989 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- fd = tsd->fd;
-
- if (fd > 0)
- clif->authfail_fd(fd, 15);
- else
- map->quit(tsd);
-
- if (sd)
- clif->GM_kickack(sd, 1);
-}
-# 8010 "../../../server-code/src/map/clif.c"
-void clif_manner_message(struct map_session_data* sd, uint32 type)
-{
- int fd;
- do { if (((void)(sd),
-# 8013 "../../../server-code/src/map/clif.c" 3 4
-0
-# 8013 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- fd = sd->fd;
- WFIFOHEAD(fd,packet_db[0x14a].len);
- WFIFOW(fd,0) = 0x14a;
- WFIFOL(fd,2) = type;
- WFIFOSET(fd, packet_db[0x14a].len);
-}
-
-
-
-
-
-
-void clif_GM_silence(struct map_session_data* sd, struct map_session_data* tsd, uint8 type)
-{
- int fd;
- do { if (((void)(sd),
-# 8030 "../../../server-code/src/map/clif.c" 3 4
-0
-# 8030 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- do { if (((void)(tsd),
-# 8031 "../../../server-code/src/map/clif.c" 3 4
-0
-# 8031 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- fd = tsd->fd;
- WFIFOHEAD(fd,packet_db[0x14b].len);
- WFIFOW(fd,0) = 0x14b;
- WFIFOB(fd,2) = type;
- (strlib->safestrncpy_((WFIFOP(fd,3)),(sd->status.name),((23 + 1))));
- WFIFOSET(fd, packet_db[0x14b].len);
-}
-# 8050 "../../../server-code/src/map/clif.c"
-void clif_wisexin(struct map_session_data *sd,int type,int flag) {
- int fd;
-
- do { if (((void)(sd),
-# 8053 "../../../server-code/src/map/clif.c" 3 4
-0
-# 8053 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- fd=sd->fd;
- WFIFOHEAD(fd,packet_db[0xd1].len);
- WFIFOW(fd,0)=0xd1;
- WFIFOB(fd,2)=type;
- WFIFOB(fd,3)=flag;
- WFIFOSET(fd,packet_db[0xd1].len);
-}
-# 8071 "../../../server-code/src/map/clif.c"
-void clif_wisall(struct map_session_data *sd,int type,int flag) {
- int fd;
-
- do { if (((void)(sd),
-# 8074 "../../../server-code/src/map/clif.c" 3 4
-0
-# 8074 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- fd=sd->fd;
- WFIFOHEAD(fd,packet_db[0xd2].len);
- WFIFOW(fd,0)=0xd2;
- WFIFOB(fd,2)=type;
- WFIFOB(fd,3)=flag;
- WFIFOSET(fd,packet_db[0xd2].len);
-}
-
-
-
-void clif_playBGM(struct map_session_data* sd, const char* name)
-{
- int fd;
-
- do { if (((void)(sd),
-# 8090 "../../../server-code/src/map/clif.c" 3 4
-0
-# 8090 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- fd = sd->fd;
- WFIFOHEAD(fd,packet_db[0x7fe].len);
- WFIFOW(fd,0) = 0x7fe;
- (strlib->safestrncpy_((WFIFOP(fd,2)),(name),((23 + 1))));
- WFIFOSET(fd,packet_db[0x7fe].len);
-}
-# 8112 "../../../server-code/src/map/clif.c"
-void clif_soundeffect(struct map_session_data* sd, struct block_list* bl, const char* name, int type)
-{
- int fd;
-
- do { if (((void)(sd),
-# 8116 "../../../server-code/src/map/clif.c" 3 4
-0
-# 8116 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- do { if (((void)(bl),
-# 8117 "../../../server-code/src/map/clif.c" 3 4
-0
-# 8117 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- do { if (((void)(name),
-# 8118 "../../../server-code/src/map/clif.c" 3 4
-0
-# 8118 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- fd = sd->fd;
- WFIFOHEAD(fd,packet_db[0x1d3].len);
- WFIFOW(fd,0) = 0x1d3;
- (strlib->safestrncpy_((WFIFOP(fd,2)),(name),((23 + 1))));
- WFIFOB(fd,26) = type;
- WFIFOL(fd,27) = 0;
- WFIFOL(fd,31) = bl->id;
- WFIFOSET(fd,packet_db[0x1d3].len);
-}
-
-void clif_soundeffectall(struct block_list* bl, const char* name, int type, enum send_target coverage)
-{
- unsigned char buf[40];
-
- do { if (((void)(bl),
-# 8134 "../../../server-code/src/map/clif.c" 3 4
-0
-# 8134 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- do { if (((void)(name),
-# 8135 "../../../server-code/src/map/clif.c" 3 4
-0
-# 8135 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- WBUFW(buf,0) = 0x1d3;
- (strlib->safestrncpy_((WBUFP(buf,2)),(name),((23 + 1))));
- WBUFB(buf,26) = type;
- WBUFL(buf,27) = 0;
- WBUFL(buf,31) = bl->id;
- clif->send(buf, packet_db[0x1d3].len, bl, coverage);
-}
-
-
-
-
-
-void clif_specialeffect(struct block_list* bl, int type, enum send_target target)
-{
- unsigned char buf[24];
-
- do { if (((void)(bl),
-# 8153 "../../../server-code/src/map/clif.c" 3 4
-0
-# 8153 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- memset(buf, 0, packet_db[0x1f3].len);
-
- WBUFW(buf,0) = 0x1f3;
- WBUFL(buf,2) = bl->id;
- WBUFL(buf,6) = type;
-
- clif->send(buf, packet_db[0x1f3].len, bl, target);
-
- if (disguised(bl)) {
- WBUFL(buf,2) = -bl->id;
- clif->send(buf, packet_db[0x1f3].len, bl, SELF);
- }
-}
-
-void clif_specialeffect_single(struct block_list* bl, int type, int fd) {
- do { if (((void)(bl),
-# 8170 "../../../server-code/src/map/clif.c" 3 4
-0
-# 8170 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- WFIFOHEAD(fd,10);
- WFIFOW(fd,0) = 0x1f3;
- WFIFOL(fd,2) = bl->id;
- WFIFOL(fd,6) = type;
- WFIFOSET(fd,10);
-}
-
-
-
-
-
-
-
-void clif_specialeffect_value(struct block_list* bl, int effect_id, int num, send_target target)
-{
- uint8 buf[14];
-
- WBUFW(buf,0) = 0x284;
- WBUFL(buf,2) = bl->id;
- WBUFL(buf,6) = effect_id;
- WBUFL(buf,10) = num;
-
- clif->send(buf, packet_db[0x284].len, bl, target);
-
- if( disguised(bl) )
- {
- WBUFL(buf,2) = -bl->id;
- clif->send(buf, packet_db[0x284].len, bl, SELF);
- }
-}
-# 8210 "../../../server-code/src/map/clif.c"
-void clif_messagecolor_self(int fd, uint32 color, const char *msg)
-{
- size_t msg_len;
-
- do { if (((void)(msg),
-# 8214 "../../../server-code/src/map/clif.c" 3 4
-0
-# 8214 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- msg_len = strlen(msg) + 1;
-
- WFIFOHEAD(fd,msg_len + 12);
- WFIFOW(fd,0) = 0x2C1;
- WFIFOW(fd,2) = msg_len + 12;
- WFIFOL(fd,4) = 0;
- WFIFOL(fd,8) = (((color) & 0x0000FF) << 16 | ((color) & 0x00FF00) | ((color) & 0xFF0000) >> 16);
- (strlib->safestrncpy_((WFIFOP(fd,12)),(msg),(msg_len)));
- WFIFOSET(fd, msg_len + 12);
-}
-# 8235 "../../../server-code/src/map/clif.c"
-void clif_messagecolor(struct block_list* bl, uint32 color, const char *msg)
-{
- size_t msg_len = strlen(msg) + 1;
- uint8 buf[256];
-
- do { if (((void)(bl),
-# 8240 "../../../server-code/src/map/clif.c" 3 4
-0
-# 8240 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- do { if (((void)(msg),
-# 8241 "../../../server-code/src/map/clif.c" 3 4
-0
-# 8241 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- if (msg_len > sizeof(buf)-12) {
- (showmsg->showWarning(("clif_messagecolor: Truncating too long message '%s' (len=%""z" "u"").\n"), msg, msg_len));
- msg_len = sizeof(buf)-12;
- }
-
- WBUFW(buf,0) = 0x2C1;
- WBUFW(buf,2) = msg_len + 12;
- WBUFL(buf,4) = bl->id;
- WBUFL(buf,8) = (((color) & 0x0000FF) << 16 | ((color) & 0x00FF00) | ((color) & 0xFF0000) >> 16);
- memcpy(WBUFP(buf,12), msg, msg_len);
-
- clif->send(buf, WBUFW(buf,2), bl, AREA_CHAT_WOC);
-}
-
-
-
-
-
-
-
-void clif_refresh_storagewindow(struct map_session_data *sd)
-{
- do { if (((void)(sd),
-# 8265 "../../../server-code/src/map/clif.c" 3 4
-0
-# 8265 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- if (sd->state.storage_flag == STORAGE_FLAG_NORMAL) {
- storage->sortitem(sd->status.storage.items, ( (int)(sizeof(sd->status.storage.items)/sizeof((sd->status.storage.items)[0])) ));
- clif->storagelist(sd, sd->status.storage.items, ( (int)(sizeof(sd->status.storage.items)/sizeof((sd->status.storage.items)[0])) ));
- clif->updatestorageamount(sd, sd->status.storage.storage_amount, 600);
- }
-
-
- if (sd->state.storage_flag == STORAGE_FLAG_GUILD) {
- struct guild_storage *gstor;
- if( (gstor = ( DB->data2ptr((gstorage->db)->get((gstorage->db),DB->i2key(sd->status.guild_id))) )) ==
-# 8276 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 8276 "../../../server-code/src/map/clif.c"
- ) {
-
- intif->request_guild_storage(sd->status.account_id,sd->status.guild_id);
- } else {
- storage->sortitem(gstor->items, ( (int)(sizeof(gstor->items)/sizeof((gstor->items)[0])) ));
- clif->storagelist(sd, gstor->items, ( (int)(sizeof(gstor->items)/sizeof((gstor->items)[0])) ));
- clif->updatestorageamount(sd, gstor->storage_amount, 600);
- }
- }
-}
-
-
-void clif_refresh(struct map_session_data *sd)
-{
- do { if (((void)(sd),
-# 8290 "../../../server-code/src/map/clif.c" 3 4
-0
-# 8290 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- clif->changemap(sd,sd->bl.m,sd->bl.x,sd->bl.y);
- clif->inventorylist(sd);
- if(( (sd)->sc.data[SC_PUSH_CART] )) {
- clif->cartlist(sd);
- clif->updatestatus(sd,SP_CARTINFO);
- }
- clif->updatestatus(sd,SP_WEIGHT);
- clif->updatestatus(sd,SP_MAXWEIGHT);
- clif->updatestatus(sd,SP_STR);
- clif->updatestatus(sd,SP_AGI);
- clif->updatestatus(sd,SP_VIT);
- clif->updatestatus(sd,SP_INT);
- clif->updatestatus(sd,SP_DEX);
- clif->updatestatus(sd,SP_LUK);
- if (sd->spiritball)
- clif->spiritball_single(sd->fd, sd);
- if (sd->charm_type != CHARM_TYPE_NONE && sd->charm_count > 0)
- clif->charm_single(sd->fd, sd);
-
- if (sd->vd.cloth_color)
- clif->refreshlook(&sd->bl,sd->bl.id,LOOK_CLOTHES_COLOR,sd->vd.cloth_color,SELF);
- if (sd->vd.body_style)
- clif->refreshlook(&sd->bl,sd->bl.id,LOOK_BODY2,sd->vd.body_style,SELF);
- if(((sd->hd) && (sd->hd)->homunculus.vaporize == HOM_ST_ACTIVE && (sd->hd)->battle_status.hp > 0))
- clif->send_homdata(sd,SP_ACK,0);
- if( sd->md ) {
- clif->mercenary_info(sd);
- clif->mercenary_skillblock(sd);
- }
- if( sd->ed )
- clif->elemental_info(sd);
- map->foreachinrange(clif->getareachar,&sd->bl,(battle->bc->area_size),BL_ALL,sd);
- clif->weather_check(sd);
- if( sd->chatID )
- chat->leave(sd,
-# 8326 "../../../server-code/src/map/clif.c" 3 4
- 0
-# 8326 "../../../server-code/src/map/clif.c"
- );
- if( sd->state.vending )
- clif->openvending(sd, sd->bl.id, sd->vending);
- if( ( (sd)->vd.dead_sit == 2 ) )
- clif->sitting(&sd->bl);
- if( ( (sd)->state.dead_sit == 1 ) )
- clif->clearunit_single(sd->bl.id,CLR_DEAD,sd->fd);
- else
- clif->changed_dir(&sd->bl, SELF);
-
-
- buyingstore->close(sd);
-
- mail->clear(sd);
-
- if( disguised(&sd->bl) ) {
- short disguise = sd->disguise;
- pc->disguise(sd, -1);
- pc->disguise(sd, disguise);
- }
-
- clif->refresh_storagewindow(sd);
-}
-
-
-
-
-void clif_charnameack (int fd, struct block_list *bl)
-{
- unsigned char buf[103];
- int cmd = 0x95;
-
- do { if (((void)(bl),
-# 8358 "../../../server-code/src/map/clif.c" 3 4
-0
-# 8358 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- WBUFW(buf,0) = cmd;
- WBUFL(buf,2) = bl->id;
-
- switch( bl->type ) {
- case BL_PC:
- {
- const struct map_session_data *ssd = ((const TBL_PC *)BL_UCCAST_(bl));
- const struct party_data *p =
-# 8367 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 8367 "../../../server-code/src/map/clif.c"
- ;
- const struct guild *g =
-# 8368 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 8368 "../../../server-code/src/map/clif.c"
- ;
- int ps = -1;
-
-
- if (ssd->fd == fd && ssd->disguise != -1)
- WBUFL(buf,2) = -bl->id;
-
- if (ssd->fakename[0] != '\0') {
- WBUFW(buf,0) = cmd = 0x195;
- memcpy(WBUFP(buf,6), ssd->fakename, (23 + 1));
- WBUFB(buf,30) = WBUFB(buf,54) = WBUFB(buf,78) = 0;
- break;
- }
- memcpy(WBUFP(buf,6), ssd->status.name, (23 + 1));
-
- if (ssd->status.party_id != 0) {
- p = party->search(ssd->status.party_id);
- }
- if (ssd->status.guild_id != 0) {
- if ((g = ssd->guild) !=
-# 8387 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 8387 "../../../server-code/src/map/clif.c"
- ) {
- int i;
- do { for ((i) = (0); (i) < (g->max_member); ++(i)) if (g->member[i].account_id == ssd->status.account_id && g->member[i].char_id == ssd->status.char_id) break; } while(
-# 8389 "../../../server-code/src/map/clif.c" 3 4
- 0
-# 8389 "../../../server-code/src/map/clif.c"
- );
- if (i < g->max_member)
- ps = g->member[i].position;
- }
- }
-
- if (!battle_config.display_party_name && g ==
-# 8395 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 8395 "../../../server-code/src/map/clif.c"
- ) {
-
- p =
-# 8397 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 8397 "../../../server-code/src/map/clif.c"
- ;
- }
-
- if (p ==
-# 8400 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 8400 "../../../server-code/src/map/clif.c"
- && g ==
-# 8400 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 8400 "../../../server-code/src/map/clif.c"
- )
- break;
-
- WBUFW(buf,0) = cmd = 0x195;
- if (p !=
-# 8404 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 8404 "../../../server-code/src/map/clif.c"
- )
- memcpy(WBUFP(buf,30), p->party.name, (23 + 1));
- else
- WBUFB(buf,30) = 0;
-
- if (g !=
-# 8409 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 8409 "../../../server-code/src/map/clif.c"
- && ps >= 0 && ps < 20) {
- memcpy(WBUFP(buf,54), g->name,(23 + 1));
- memcpy(WBUFP(buf,78), g->position[ps].name, (23 + 1));
- } else {
- WBUFB(buf,54) = 0;
- WBUFB(buf,78) = 0;
- }
- }
- break;
-
- case BL_HOM:
- memcpy(WBUFP(buf,6), ((const TBL_HOM *)BL_UCCAST_(bl))->homunculus.name, (23 + 1));
- break;
- case BL_MER:
- memcpy(WBUFP(buf,6), ((const TBL_MER *)BL_UCCAST_(bl))->db->name, (23 + 1));
- break;
- case BL_PET:
- memcpy(WBUFP(buf,6), ((const TBL_PET *)BL_UCCAST_(bl))->pet.name, (23 + 1));
- break;
- case BL_NPC:
- memcpy(WBUFP(buf,6), ((const TBL_NPC *)BL_UCCAST_(bl))->name, (23 + 1));
- break;
- case BL_MOB:
- {
- const struct mob_data *md = ((const TBL_MOB *)BL_UCCAST_(bl));
-
- memcpy(WBUFP(buf,6), md->name, (23 + 1));
- if (md->guardian_data && md->guardian_data->g) {
- WBUFW(buf,0) = cmd = 0x195;
- WBUFB(buf,30) = 0;
- memcpy(WBUFP(buf,54), md->guardian_data->g->name, (23 + 1));
- memcpy(WBUFP(buf,78), md->guardian_data->castle->castle_name, (23 + 1));
- } else if (battle_config.show_mob_info) {
- char mobhp[50], *str_p = mobhp;
- WBUFW(buf,0) = cmd = 0x195;
- if (battle_config.show_mob_info&4)
- str_p += sprintf(str_p, "Lv. %d | ", md->level);
- if (battle_config.show_mob_info&1)
- str_p += sprintf(str_p, "HP: %u/%u | ", md->status.hp, md->status.max_hp);
- if (battle_config.show_mob_info&2)
- str_p += sprintf(str_p, "HP: %u%% | ", get_percentage(md->status.hp, md->status.max_hp));
-
-
- if (str_p != mobhp) {
- *(str_p-3) = '\0';
- memcpy(WBUFP(buf,30), mobhp, (23 + 1));
- WBUFB(buf,54) = 0;
- WBUFB(buf,78) = 0;
- }
- }
- }
- break;
- case BL_CHAT:
-
-
-
-
- return;
- case BL_ELEM:
- memcpy(WBUFP(buf,6), ((const TBL_ELEM *)BL_UCCAST_(bl))->db->name, (23 + 1));
- break;
- default:
- (showmsg->showError(("clif_charnameack: bad type %u(%d)\n"), bl->type, bl->id));
- return;
- }
-
-
- if (fd == 0) {
- clif->send(buf, packet_db[cmd].len, bl, AREA);
- } else {
- WFIFOHEAD(fd, packet_db[cmd].len);
- memcpy(WFIFOP(fd, 0), buf, packet_db[cmd].len);
- WFIFOSET(fd, packet_db[cmd].len);
- }
-}
-
-
-
-void clif_charnameupdate (struct map_session_data *ssd)
-{
- unsigned char buf[103];
- int cmd = 0x195, ps = -1;
- struct party_data *p =
-# 8491 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 8491 "../../../server-code/src/map/clif.c"
- ;
- struct guild *g =
-# 8492 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 8492 "../../../server-code/src/map/clif.c"
- ;
-
- do { if (((void)(ssd),
-# 8494 "../../../server-code/src/map/clif.c" 3 4
-0
-# 8494 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- if( ssd->fakename[0] )
- return;
-
- WBUFW(buf,0) = cmd;
- WBUFL(buf,2) = ssd->bl.id;
-
- memcpy(WBUFP(buf,6), ssd->status.name, (23 + 1));
-
- if (!battle_config.display_party_name) {
- if (ssd->status.party_id > 0 && ssd->status.guild_id > 0 && (g = ssd->guild) !=
-# 8505 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 8505 "../../../server-code/src/map/clif.c"
- )
- p = party->search(ssd->status.party_id);
- }else{
- if (ssd->status.party_id > 0)
- p = party->search(ssd->status.party_id);
- }
-
- if( ssd->status.guild_id > 0 && (g = ssd->guild) !=
-# 8512 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 8512 "../../../server-code/src/map/clif.c"
- )
- {
- int i;
- do { for ((i) = (0); (i) < (g->max_member); ++(i)) if (g->member[i].account_id == ssd->status.account_id && g->member[i].char_id == ssd->status.char_id) break; } while(
-# 8515 "../../../server-code/src/map/clif.c" 3 4
- 0
-# 8515 "../../../server-code/src/map/clif.c"
- );
- if( i < g->max_member ) ps = g->member[i].position;
- }
-
- if( p )
- memcpy(WBUFP(buf,30), p->party.name, (23 + 1));
- else
- WBUFB(buf,30) = 0;
-
- if( g && ps >= 0 && ps < 20 )
- {
- memcpy(WBUFP(buf,54), g->name,(23 + 1));
- memcpy(WBUFP(buf,78), g->position[ps].name, (23 + 1));
- }
- else
- {
- WBUFB(buf,54) = 0;
- WBUFB(buf,78) = 0;
- }
-
-
- clif->send(buf, packet_db[cmd].len, &ssd->bl, AREA);
-}
-
-
-
-
-
-
-
-void clif_slide(struct block_list *bl, int x, int y)
-{
- unsigned char buf[10];
- do { if (((void)(bl),
-# 8548 "../../../server-code/src/map/clif.c" 3 4
-0
-# 8548 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- WBUFW(buf,0) = 0x01ff;
- WBUFL(buf, 2) = bl->id;
- WBUFW(buf,6) = x;
- WBUFW(buf,8) = y;
- clif->send(buf, packet_db[0x1ff].len, bl, AREA);
-
- if( disguised(bl) )
- {
- WBUFL(buf,2) = -bl->id;
- clif->send(buf, packet_db[0x1ff].len, bl, SELF);
- }
-}
-
-
-
-void clif_disp_overhead(struct block_list *bl, const char* mes)
-{
- unsigned char buf[256];
- size_t len_mes;
-
- do { if (((void)(bl),
-# 8570 "../../../server-code/src/map/clif.c" 3 4
-0
-# 8570 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- do { if (((void)(mes),
-# 8571 "../../../server-code/src/map/clif.c" 3 4
-0
-# 8571 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- len_mes = strlen(mes)+1;
-
- if (len_mes > sizeof(buf)-8) {
- (showmsg->showError(("clif_disp_overhead: Message too long (length %""z" "u"")\n"), len_mes));
- len_mes = sizeof(buf)-8;
- }
-
- WBUFW(buf,0) = 0x8d;
- WBUFW(buf,2) = len_mes + 8;
- WBUFL(buf,4) = bl->id;
- (strlib->safestrncpy_((WBUFP(buf,8)),(mes),(len_mes)));
- clif->send(buf, WBUFW(buf,2), bl, AREA_CHAT_WOC);
-
-
- if( bl->type == BL_PC ) {
- WBUFW(buf,0) = 0x8e;
- WBUFW(buf,2) = len_mes + 4;
- (strlib->safestrncpy_((WBUFP(buf,4)),(mes),(len_mes)));
- clif->send(buf, WBUFW(buf,2), bl, SELF);
- }
-
-}
-
-
-
-
-
-void clif_party_xy_remove(struct map_session_data *sd)
-{
- unsigned char buf[16];
- do { if (((void)(sd),
-# 8602 "../../../server-code/src/map/clif.c" 3 4
-0
-# 8602 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- WBUFW(buf,0)=0x107;
- WBUFL(buf,2)=sd->status.account_id;
- WBUFW(buf,6)=-1;
- WBUFW(buf,8)=-1;
- clif->send(buf,packet_db[0x107].len,&sd->bl,PARTY_SAMEMAP_WOS);
-}
-# 8625 "../../../server-code/src/map/clif.c"
-void clif_gospel_info(struct map_session_data *sd, int type)
-{
- int fd;
-
- do { if (((void)(sd),
-# 8629 "../../../server-code/src/map/clif.c" 3 4
-0
-# 8629 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- fd = sd->fd;
- WFIFOHEAD(fd,packet_db[0x215].len);
- WFIFOW(fd,0)=0x215;
- WFIFOL(fd,2)=type;
- WFIFOSET(fd, packet_db[0x215].len);
-
-}
-# 8666 "../../../server-code/src/map/clif.c"
-void clif_starskill(struct map_session_data* sd, const char* mapname, int monster_id, unsigned char star, unsigned char result)
-{
- int fd;
-
- do { if (((void)(sd),
-# 8670 "../../../server-code/src/map/clif.c" 3 4
-0
-# 8670 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- do { if (((void)(mapname),
-# 8671 "../../../server-code/src/map/clif.c" 3 4
-0
-# 8671 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- fd = sd->fd;
-
- WFIFOHEAD(fd,packet_db[0x20e].len);
- WFIFOW(fd,0) = 0x20e;
- (strlib->safestrncpy_((WFIFOP(fd,2)),(mapname),((23 + 1))));
- WFIFOL(fd,26) = monster_id;
- WFIFOB(fd,30) = star;
- WFIFOB(fd,31) = result;
- WFIFOSET(fd,packet_db[0x20e].len);
-}
-
-
-
-
-
-void clif_feel_info(struct map_session_data* sd, unsigned char feel_level, unsigned char type)
-{
- char mapname[((11 + 1) + 4)];
-
- do { if (((void)(sd),
-# 8691 "../../../server-code/src/map/clif.c" 3 4
-0
-# 8691 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- do { if (( (feel_level < 3) ?
-# 8692 "../../../server-code/src/map/clif.c" 3 4
-0
-# 8692 "../../../server-code/src/map/clif.c"
-: (nullpo->assert_report("../../../server-code/src/map/clif.c", 8692, __func__, "feel_level < 3", "failed assertion"),
-# 8692 "../../../server-code/src/map/clif.c" 3 4
-1
-# 8692 "../../../server-code/src/map/clif.c"
-) )) return; } while(0);
- mapindex->getmapname_ext(mapindex->id2name((sd->feel_map[feel_level].index),"../../../server-code/src/map/clif.c", 8693, __func__), mapname);
- clif->starskill(sd, mapname, 0, feel_level, type ? 1 : 0);
-}
-
-
-
-
-
-void clif_hate_info(struct map_session_data *sd, unsigned char hate_level,int class_, unsigned char type)
-{
- if( pc->db_checkid(class_) ) {
- clif->starskill(sd, pc->job_name(class_), class_, hate_level, type ? 10 : 11);
- } else if( mob->db_checkid(class_) ) {
- clif->starskill(sd, mob->db(class_)->jname, class_, hate_level, type ? 10 : 11);
- } else {
- (showmsg->showWarning(("clif_hate_info: Received invalid class %d for this packet (char_id=%d, hate_level=%u, type=%u).\n"), class_, sd->status.char_id, (unsigned int)hate_level, (unsigned int)type));
- }
-}
-
-
-
-
-void clif_mission_info(struct map_session_data *sd, int mob_id, unsigned char progress)
-{
- clif->starskill(sd, mob->db(mob_id)->jname, mob_id, progress, 20);
-}
-
-
-
-
-void clif_feel_hate_reset(struct map_session_data *sd)
-{
- clif->starskill(sd, "", 0, 0, 30);
-}
-# 8735 "../../../server-code/src/map/clif.c"
-void clif_equiptickack(struct map_session_data* sd, int flag)
-{
- int fd;
- do { if (((void)(sd),
-# 8738 "../../../server-code/src/map/clif.c" 3 4
-0
-# 8738 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- fd = sd->fd;
-
- WFIFOHEAD(fd, packet_db[0x2d9].len);
- WFIFOW(fd,0) = 0x2d9;
- WFIFOL(fd, 2) = 0;
- WFIFOL(fd, 6) = flag;
- WFIFOSET(fd, packet_db[0x2d9].len);
-}
-
-
-
-
-
-
-void clif_equpcheckbox(struct map_session_data* sd)
-{
- int fd;
- do { if (((void)(sd),
-# 8756 "../../../server-code/src/map/clif.c" 3 4
-0
-# 8756 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- fd = sd->fd;
-
- WFIFOHEAD(fd, packet_db[0x2da].len);
- WFIFOW(fd,0) = 0x2da;
- WFIFOB(fd, 2) = (sd->status.show_equip ? 1 : 0);
- WFIFOSET(fd, packet_db[0x2da].len);
-}
-
-
-
-
-
-
-void clif_viewequip_ack(struct map_session_data* sd, struct map_session_data* tsd) {
- int i, equip = 0;
-
- do { if (((void)(sd),
-# 8773 "../../../server-code/src/map/clif.c" 3 4
-0
-# 8773 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- do { if (((void)(tsd),
-# 8774 "../../../server-code/src/map/clif.c" 3 4
-0
-# 8774 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- for (i = 0; i < EQI_MAX; i++) {
- int k = tsd->equip_index[i];
- if (k >= 0) {
- if (tsd->status.inventory[k].nameid <= 0 || tsd->inventory_data[k] ==
-# 8779 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 8779 "../../../server-code/src/map/clif.c"
- )
- continue;
-
- clif->item_equip(k+2,&viewequip_list.list[equip++],&tsd->status.inventory[k],tsd->inventory_data[k],pc->equippoint(tsd,k));
- }
- }
-
- viewequip_list.PacketType = viewequipackType;
- viewequip_list.PacketLength = ( sizeof( viewequip_list ) - sizeof( viewequip_list.list ) ) + ( sizeof(struct EQUIPITEM_INFO) * equip );
-
- (strlib->safestrncpy_((viewequip_list.characterName),(tsd->status.name),((23 + 1))));
-
- viewequip_list.job = tsd->status.class_;
- viewequip_list.head = tsd->vd.hair_style;
- viewequip_list.accessory = tsd->vd.head_bottom;
- viewequip_list.accessory2 = tsd->vd.head_mid;
- viewequip_list.accessory3 = tsd->vd.head_top;
-
- viewequip_list.robe = tsd->vd.robe;
-
- viewequip_list.headpalette = tsd->vd.hair_color;
- viewequip_list.bodypalette = tsd->vd.cloth_color;
- viewequip_list.sex = tsd->vd.sex;
-
- clif->send(&viewequip_list, viewequip_list.PacketLength, &sd->bl, SELF);
-}
-# 8814 "../../../server-code/src/map/clif.c"
-void clif_msgtable(struct map_session_data* sd, unsigned short msg_id)
-{
- int fd;
- do { if (((void)(sd),
-# 8817 "../../../server-code/src/map/clif.c" 3 4
-0
-# 8817 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- fd = sd->fd;
-
- WFIFOHEAD(fd, packet_db[0x291].len);
- WFIFOW(fd,0) = 0x291;
- WFIFOW(fd,2) = msg_id;
- WFIFOSET(fd, packet_db[0x291].len);
-}
-# 8835 "../../../server-code/src/map/clif.c"
-void clif_msgtable_num(struct map_session_data *sd, unsigned short msg_id, int value)
-{
-
- int fd;
- do { if (((void)(sd),
-# 8839 "../../../server-code/src/map/clif.c" 3 4
-0
-# 8839 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- fd = sd->fd;
-
- WFIFOHEAD(fd, packet_db[0x7e2].len);
- WFIFOW(fd,0) = 0x7e2;
- WFIFOW(fd,2) = msg_id;
- WFIFOL(fd, 4) = value;
- WFIFOSET(fd, packet_db[0x7e2].len);
-
-}
-# 8862 "../../../server-code/src/map/clif.c"
-void clif_msgtable_skill(struct map_session_data* sd, uint16 skill_id, int msg_id)
-{
- int fd;
-
- do { if (((void)(sd),
-# 8866 "../../../server-code/src/map/clif.c" 3 4
-0
-# 8866 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- fd = sd->fd;
-
- WFIFOHEAD(fd, packet_db[0x7e6].len);
- WFIFOW(fd,0) = 0x7e6;
- WFIFOW(fd,2) = skill_id;
- WFIFOL(fd,4) = msg_id;
- WFIFOSET(fd, packet_db[0x7e6].len);
-}
-
-
-
-
-
-
-# 8880 "../../../server-code/src/map/clif.c" 3 4
-_Bool
-# 8880 "../../../server-code/src/map/clif.c"
- clif_process_message(struct map_session_data *sd, int format, const char **name_, size_t *namelen_, const char **message_, size_t *messagelen_)
-{
- const char *text, *name, *message;
- unsigned int packetlen, textlen;
- size_t namelen, messagelen;
- int fd = sd->fd;
-
- do { if (((void)(sd),
-# 8887 "../../../server-code/src/map/clif.c" 3 4
-0
-# 8887 "../../../server-code/src/map/clif.c"
-)) return(
-# 8887 "../../../server-code/src/map/clif.c" 3 4
-0
-# 8887 "../../../server-code/src/map/clif.c"
-); } while(0);
- do { if (((void)(name_),
-# 8888 "../../../server-code/src/map/clif.c" 3 4
-0
-# 8888 "../../../server-code/src/map/clif.c"
-)) return(
-# 8888 "../../../server-code/src/map/clif.c" 3 4
-0
-# 8888 "../../../server-code/src/map/clif.c"
-); } while(0);
- do { if (((void)(namelen_),
-# 8889 "../../../server-code/src/map/clif.c" 3 4
-0
-# 8889 "../../../server-code/src/map/clif.c"
-)) return(
-# 8889 "../../../server-code/src/map/clif.c" 3 4
-0
-# 8889 "../../../server-code/src/map/clif.c"
-); } while(0);
- do { if (((void)(message_),
-# 8890 "../../../server-code/src/map/clif.c" 3 4
-0
-# 8890 "../../../server-code/src/map/clif.c"
-)) return(
-# 8890 "../../../server-code/src/map/clif.c" 3 4
-0
-# 8890 "../../../server-code/src/map/clif.c"
-); } while(0);
- do { if (((void)(messagelen_),
-# 8891 "../../../server-code/src/map/clif.c" 3 4
-0
-# 8891 "../../../server-code/src/map/clif.c"
-)) return(
-# 8891 "../../../server-code/src/map/clif.c" 3 4
-0
-# 8891 "../../../server-code/src/map/clif.c"
-); } while(0);
-
- *name_ =
-# 8893 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 8893 "../../../server-code/src/map/clif.c"
- ;
- *namelen_ = 0;
- *message_ =
-# 8895 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 8895 "../../../server-code/src/map/clif.c"
- ;
- *messagelen_ = 0;
-
- packetlen = RFIFOW(fd,2);
-
- if (packetlen < 4 + 1) {
-
- (showmsg->showWarning(("clif_process_message: Received malformed packet from player '%s' (no message data)!\n"), sd->status.name));
- return
-# 8903 "../../../server-code/src/map/clif.c" 3 4
- 0
-# 8903 "../../../server-code/src/map/clif.c"
- ;
- }
-
- text = RFIFOP(fd,4);
- textlen = packetlen - 4;
-
-
- if( format == 0 )
- {
-
- name = text;
- namelen = (strlib->strnlen_((sd->status.name),((23 + 1)-1)));
-
- if( strncmp(name, sd->status.name, namelen) ||
- name[namelen] != ' ' || name[namelen+1] != ':' || name[namelen+2] != ' ' )
- {
-
- (showmsg->showWarning(("clif_process_message: Player '%s' sent a message using an incorrect name! Forcing a relog...\n"), sd->status.name));
- sockt->eof(fd);
- return
-# 8922 "../../../server-code/src/map/clif.c" 3 4
- 0
-# 8922 "../../../server-code/src/map/clif.c"
- ;
- }
-
- message = name + namelen + 3;
- messagelen = textlen - namelen - 3;
- }
- else
- {
- if( textlen < (23 + 1) + 1 )
- {
- (showmsg->showWarning(("clif_process_message: Received malformed packet from player '%s' (packet length is incorrect)!\n"), sd->status.name));
- return
-# 8933 "../../../server-code/src/map/clif.c" 3 4
- 0
-# 8933 "../../../server-code/src/map/clif.c"
- ;
- }
-
-
- name = text;
- namelen = (strlib->strnlen_((name),((23 + 1)-1)));
-
- if (name[namelen] != '\0') {
-
- (showmsg->showWarning(("clif_process_message: Player '%s' sent an unterminated name!\n"), sd->status.name));
- return
-# 8943 "../../../server-code/src/map/clif.c" 3 4
- 0
-# 8943 "../../../server-code/src/map/clif.c"
- ;
- }
-
- message = name + (23 + 1);
- messagelen = textlen - (23 + 1);
- }
-
- if (messagelen != (strlib->strnlen_((message),(messagelen)))+1) {
-
- (showmsg->showWarning(("clif_process_message: Received malformed packet from player '%s' (length is incorrect)!\n"), sd->status.name));
- return
-# 8953 "../../../server-code/src/map/clif.c" 3 4
- 0
-# 8953 "../../../server-code/src/map/clif.c"
- ;
- }
-
- if (message[messagelen-1] != '\0') {
-
- (showmsg->showWarning(("clif_process_message: Player '%s' sent an unterminated message string!\n"), sd->status.name));
- return
-# 8959 "../../../server-code/src/map/clif.c" 3 4
- 0
-# 8959 "../../../server-code/src/map/clif.c"
- ;
- }
- if (messagelen > (255 + 1)-1) {
-
-
-
-
-
- (showmsg->showWarning(("clif_process_message: Player '%s' sent a message too long ('%.*s')!\n"), sd->status.name, (255 + 1)-1, message));
- return
-# 8968 "../../../server-code/src/map/clif.c" 3 4
- 0
-# 8968 "../../../server-code/src/map/clif.c"
- ;
- }
-
- *name_ = name;
- *namelen_ = namelen;
- *message_ = message;
- *messagelen_ = messagelen;
- return
-# 8975 "../../../server-code/src/map/clif.c" 3 4
- 1
-# 8975 "../../../server-code/src/map/clif.c"
- ;
-}
-
-void clif_channel_msg(struct channel_data *chan, struct map_session_data *sd, char *msg)
-{
- struct DBIterator *iter;
- struct map_session_data *user;
- unsigned short msg_len;
- uint32 color;
-
- do { if (((void)(chan),
-# 8985 "../../../server-code/src/map/clif.c" 3 4
-0
-# 8985 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- do { if (((void)(sd),
-# 8986 "../../../server-code/src/map/clif.c" 3 4
-0
-# 8986 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- do { if (((void)(msg),
-# 8987 "../../../server-code/src/map/clif.c" 3 4
-0
-# 8987 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- iter = ( (chan->users)->iterator(chan->users) );
- msg_len = strlen(msg) + 1;
- color = channel->config->colors[chan->color];
-
- WFIFOHEAD(sd->fd,msg_len + 12);
- WFIFOW(sd->fd,0) = 0x2C1;
- WFIFOW(sd->fd,2) = msg_len + 12;
- WFIFOL(sd->fd,4) = 0;
- WFIFOL(sd->fd,8) = (((color) & 0x0000FF) << 16 | ((color) & 0x00FF00) | ((color) & 0xFF0000) >> 16);
- (strlib->safestrncpy_((WFIFOP(sd->fd,12)),(msg),(msg_len)));
-
- for (user = ( DB->data2ptr((iter)->first((iter),
-# 8999 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 8999 "../../../server-code/src/map/clif.c"
- )) ); ( (iter)->exists(iter) ); user = ( DB->data2ptr((iter)->next((iter),
-# 8999 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 8999 "../../../server-code/src/map/clif.c"
- )) )) {
- if( user->fd == sd->fd )
- continue;
- WFIFOHEAD(user->fd,msg_len + 12);
- memcpy(WFIFOP(user->fd,0), WFIFOP(sd->fd,0), msg_len + 12);
- WFIFOSET(user->fd, msg_len + 12);
- }
-
- WFIFOSET(sd->fd, msg_len + 12);
-
- ( (iter)->destroy(iter) );
-}
-
-void clif_channel_msg2(struct channel_data *chan, char *msg)
-{
- struct DBIterator *iter;
- struct map_session_data *user;
- unsigned char buf[210];
- unsigned short msg_len;
- uint32 color;
-
- do { if (((void)(chan),
-# 9020 "../../../server-code/src/map/clif.c" 3 4
-0
-# 9020 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- do { if (((void)(msg),
-# 9021 "../../../server-code/src/map/clif.c" 3 4
-0
-# 9021 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- iter = ( (chan->users)->iterator(chan->users) );
- msg_len = strlen(msg) + 1;
- color = channel->config->colors[chan->color];
-
- WBUFW(buf,0) = 0x2C1;
- WBUFW(buf,2) = msg_len + 12;
- WBUFL(buf,4) = 0;
- WBUFL(buf,8) = (((color) & 0x0000FF) << 16 | ((color) & 0x00FF00) | ((color) & 0xFF0000) >> 16);
- (strlib->safestrncpy_((WBUFP(buf,12)),(msg),(msg_len)));
-
- for (user = ( DB->data2ptr((iter)->first((iter),
-# 9032 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 9032 "../../../server-code/src/map/clif.c"
- )) ); ( (iter)->exists(iter) ); user = ( DB->data2ptr((iter)->next((iter),
-# 9032 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 9032 "../../../server-code/src/map/clif.c"
- )) )) {
- WFIFOHEAD(user->fd,msg_len + 12);
- memcpy(WFIFOP(user->fd,0), WBUFP(buf,0), msg_len + 12);
- WFIFOSET(user->fd, msg_len + 12);
- }
-
- ( (iter)->destroy(iter) );
-}
-# 9050 "../../../server-code/src/map/clif.c"
-void clif_parse_WantToConnection(int fd, struct map_session_data* sd) {
- struct block_list* bl;
- struct auth_node* node;
- int cmd, account_id, char_id, login_id1, sex;
- unsigned int client_tick;
-
- if (sd) {
- (showmsg->showError(("clif_parse_WantToConnection : invalid request (character already logged in)\n")));
- return;
- }
-
-
-
- cmd = RFIFOW(fd,0);
- account_id = RFIFOL(fd, packet_db[cmd].pos[0]);
- char_id = RFIFOL(fd, packet_db[cmd].pos[1]);
- login_id1 = RFIFOL(fd, packet_db[cmd].pos[2]);
- client_tick = RFIFOL(fd, packet_db[cmd].pos[3]);
- sex = RFIFOB(fd, packet_db[cmd].pos[4]);
-
- if( core->runflag != MAPSERVER_ST_RUNNING ) {
- clif->authfail_fd(fd,1);
- return;
- }
-
-
- bl = map->id2bl(account_id);
- if(bl && bl->type != BL_PC) {
- (showmsg->showError(("clif_parse_WantToConnection: a non-player object already has id %d, please increase the starting account number\n"), account_id));
- WFIFOHEAD(fd,packet_db[0x6a].len);
- WFIFOW(fd,0) = 0x6a;
- WFIFOB(fd,2) = 3;
- WFIFOSET(fd,packet_db[0x6a].len);
- sockt->eof(fd);
-
- return;
- }
-
- if (bl ||
- ((node=chrif->search(account_id)) &&
- !(node->account_id == account_id && node->char_id == char_id && node->state == ST_LOGIN)))
- {
- clif->authfail_fd(fd, 8);
- return;
- }
-
- ((sd) = (struct map_session_data *) (iMalloc->calloc(((1)),(sizeof(struct map_session_data)),"../../../server-code/src/map/clif.c", 9096, __func__)));
- sd->fd = fd;
-
- sd->cryptKey = (( ((( clif->cryptKey[0] * clif->cryptKey[1] ) + clif->cryptKey[2]) & 0xFFFFFFFF)
- * clif->cryptKey[1] ) + clif->cryptKey[2]) & 0xFFFFFFFF;
- sd->parse_cmd_func = clif->parse_cmd;
-
- sockt->session[fd]->session_data = sd;
-
- pc->setnewpc(sd, account_id, char_id, login_id1, client_tick, sex, fd);
-
-
-
-
-
-
- WFIFOHEAD(fd,packet_db[0x283].len);
- WFIFOW(fd,0) = 0x283;
- WFIFOL(fd,2) = sd->bl.id;
- WFIFOSET(fd,packet_db[0x283].len);
-
-
- chrif->authreq(sd,
-# 9118 "../../../server-code/src/map/clif.c" 3 4
- 0
-# 9118 "../../../server-code/src/map/clif.c"
- );
-}
-
-void clif_parse_LoadEndAck(int fd, struct map_session_data *sd) __attribute__((nonnull (2)));
-
-
-void clif_parse_LoadEndAck(int fd, struct map_session_data *sd) {
-
-# 9125 "../../../server-code/src/map/clif.c" 3 4
-_Bool
-# 9125 "../../../server-code/src/map/clif.c"
- first_time =
-# 9125 "../../../server-code/src/map/clif.c" 3 4
- 0
-# 9125 "../../../server-code/src/map/clif.c"
- ;
-
- if(sd->bl.prev !=
-# 9127 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 9127 "../../../server-code/src/map/clif.c"
- )
- return;
-
- if (!sd->state.active) {
-
- sd->state.connect_new = 0;
- return;
- }
-
- if (sd->state.rewarp) {
- sd->state.rewarp = 0;
- clif->changemap(sd, sd->bl.m, sd->bl.x, sd->bl.y);
- return;
- }
-
- sd->state.warping = 0;
- sd->state.dialog = 0;
-
-
-
-
-
-
- clif->changelook(&sd->bl,LOOK_WEAPON,0);
-
-
- if(sd->vd.cloth_color)
- clif->refreshlook(&sd->bl,sd->bl.id,LOOK_CLOTHES_COLOR,sd->vd.cloth_color,SELF);
- if (sd->vd.body_style)
- clif->refreshlook(&sd->bl,sd->bl.id,LOOK_BODY2,sd->vd.body_style,SELF);
-
- clif->inventorylist(sd);
- pc->checkitem(sd);
-
-
- if(( (sd)->sc.data[SC_PUSH_CART] )) {
- clif->cartlist(sd);
- clif->updatestatus(sd,SP_CARTINFO);
- }
-
-
- clif->updatestatus(sd,SP_WEIGHT);
- clif->updatestatus(sd,SP_MAXWEIGHT);
-
-
-
- if(sd->status.guild_id)
- guild->send_memberinfoshort(sd,1);
-
- if(battle_config.pc_invincible_time > 0) {
- pc->setinvincibletimer(sd,battle_config.pc_invincible_time);
- }
-
- if( map->list[sd->bl.m].users++ == 0 && battle_config.dynamic_mobs )
- map->spawnmobs(sd->bl.m);
-
- if( map->list[sd->bl.m].instance_id >= 0 ) {
- instance->list[map->list[sd->bl.m].instance_id].users++;
- instance->check_idle(map->list[sd->bl.m].instance_id);
- }
-
- if( ( ((sd)->extra_temp_permissions&(PC_PERM_VIEW_HPMETER)) != 0 || ((sd)->group->e_permissions&(PC_PERM_VIEW_HPMETER)) != 0 ) ) {
- map->list[sd->bl.m].hpmeter_visible++;
- sd->state.hpmeter_visible = 1;
- }
-
- if (!( (sd)->sc.option&OPTION_INVISIBLE )) {
- map->list[sd->bl.m].users_pvp++;
- }
-
- sd->state.debug_remove_map = 0;
-
-
- sd->state.callshop = 0;
-
- map->addblock(&sd->bl);
- clif->spawn(&sd->bl);
-
-
-
- if(sd->status.party_id) {
- party->send_movemap(sd);
- clif->party_hp(sd);
- }
-
- if( sd->bg_id ) clif->bg_hp(sd);
-
- if (map->list[sd->bl.m].flag.pvp && !( (sd)->sc.option&OPTION_INVISIBLE )) {
- if(!battle_config.pk_mode) {
- if (!map->list[sd->bl.m].flag.pvp_nocalcrank)
- sd->pvp_timer = timer->add(timer->gettick()+200, pc->calc_pvprank_timer, sd->bl.id, 0);
- sd->pvp_rank = 0;
- sd->pvp_lastusers = 0;
- sd->pvp_point = 5;
- sd->pvp_won = 0;
- sd->pvp_lost = 0;
- }
- clif->map_property(sd, MAPPROPERTY_FREEPVPZONE);
- } else
-
- if(sd->duel_group)
- clif->map_property(sd, MAPPROPERTY_FREEPVPZONE);
-
- if (map->list[sd->bl.m].flag.gvg_dungeon)
- clif->map_property(sd, MAPPROPERTY_FREEPVPZONE);
-
- if( (map->list[sd->bl.m].flag.gvg || map->list[sd->bl.m].flag.gvg_castle) )
- clif->map_property(sd, MAPPROPERTY_AGITZONE);
-
-
-
- map->foreachinarea(clif->getareachar, sd->bl.m, sd->bl.x-(battle->bc->area_size), sd->bl.y-(battle->bc->area_size), sd->bl.x+(battle->bc->area_size), sd->bl.y+(battle->bc->area_size), BL_ALL, sd);
-
-
- if( sd->pd ) {
- if( battle_config.pet_no_gvg && (map->list[sd->bl.m].flag.gvg || map->list[sd->bl.m].flag.gvg_castle) ) {
- clif->message(sd->fd, atcommand->msgsd((sd),(866)));
- pet->menu(sd, 3);
- } else {
- map->addblock(&sd->pd->bl);
- clif->spawn(&sd->pd->bl);
- clif->send_petdata(sd,sd->pd,0,0);
- clif->send_petstatus(sd);
-
- }
- }
-
-
- if( ((sd->hd) && (sd->hd)->homunculus.vaporize == HOM_ST_ACTIVE && (sd->hd)->battle_status.hp > 0) ) {
- map->addblock(&sd->hd->bl);
- clif->spawn(&sd->hd->bl);
- clif->send_homdata(sd,SP_ACK,0);
- clif->hominfo(sd,sd->hd,1);
- clif->hominfo(sd,sd->hd,0);
- clif->homskillinfoblock(sd);
- if( battle_config.hom_setting&0x8 )
- (status->calc_bl_((&sd->hd->bl), (enum scb_flag)(SCB_SPEED), SCO_NONE));
- if( !(battle_config.hom_setting&0x2) )
- skill->unit_move(&sd->hd->bl,timer->gettick(),1);
- }
-
- if( sd->md ) {
- map->addblock(&sd->md->bl);
- clif->spawn(&sd->md->bl);
- clif->mercenary_info(sd);
- clif->mercenary_skillblock(sd);
- (status->calc_bl_((&sd->md->bl), (enum scb_flag)(SCB_SPEED), SCO_NONE));
- }
-
- if( sd->ed ) {
- map->addblock(&sd->ed->bl);
- clif->spawn(&sd->ed->bl);
- clif->elemental_info(sd);
- clif->elemental_updatestatus(sd,SP_HP);
- clif->hpmeter_single(sd->fd,sd->ed->bl.id,sd->ed->battle_status.hp,sd->ed->battle_status.max_hp);
- clif->elemental_updatestatus(sd,SP_SP);
- (status->calc_bl_((&sd->ed->bl), (enum scb_flag)(SCB_SPEED), SCO_NONE));
- }
-
- if(sd->state.connect_new) {
- int lv;
- first_time =
-# 9288 "../../../server-code/src/map/clif.c" 3 4
- 1
-# 9288 "../../../server-code/src/map/clif.c"
- ;
- sd->state.connect_new = 0;
- clif->skillinfoblock(sd);
- clif->hotkeys(sd);
- clif->updatestatus(sd,SP_BASEEXP);
- clif->updatestatus(sd,SP_NEXTBASEEXP);
- clif->updatestatus(sd,SP_JOBEXP);
- clif->updatestatus(sd,SP_NEXTJOBEXP);
- clif->updatestatus(sd,SP_SKILLPOINT);
- clif->initialstatus(sd);
-
- if (( (sd)->sc.option&OPTION_FALCON ))
- clif->status_change(&sd->bl, SI_FALCON, 1, 0, 0, 0, 0);
- if (( (sd)->sc.option&(OPTION_RIDING) ) || ( (sd)->sc.option&OPTION_DRAGON ))
- clif->status_change(&sd->bl, SI_RIDING, 1, 0, 0, 0, 0);
- else if (( (sd)->sc.option&OPTION_WUGRIDER ))
- clif->status_change(&sd->bl, SI_WUGRIDER, 1, 0, 0, 0, 0);
-
- if(sd->status.manner < 0)
- (status->change_start((
-# 9307 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 9307 "../../../server-code/src/map/clif.c"
- ),(&sd->bl),(SC_NOCHAT),100*(100),(0),0,0,0,(0),SCFLAG_NONE));
-
-
- if ((lv = pc->checkskill(sd,SG_KNOWLEDGE)) > 0) {
- int i;
- for (i = 0; i < 3; i++) {
- if (sd->bl.m == sd->feel_map[i].m) {
- (status->change_start((
-# 9314 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 9314 "../../../server-code/src/map/clif.c"
- ),(&sd->bl),(SC_KNOWLEDGE),100*(100),(lv),0,0,0,(skill->get_time(SG_KNOWLEDGE, lv)),SCFLAG_NONE));
- break;
- }
- }
- }
-
- if(sd->pd && sd->pd->pet.intimate > 900)
- clif->pet_emotion(sd->pd,(sd->pd->pet.class_ - 100)*100 + 50 + pet->hungry_val(sd->pd));
-
- if(((sd->hd) && (sd->hd)->homunculus.vaporize == HOM_ST_ACTIVE && (sd->hd)->battle_status.hp > 0))
- homun->init_timers(sd->hd);
-
- if (map->night_flag && map->list[sd->bl.m].flag.nightenabled) {
- sd->state.night = 1;
- clif->status_change(&sd->bl, SI_SKE, 1, 0, 0, 0, 0);
- }
-
-
- map->foreachpc(clif->friendslist_toggle_sub, sd->status.account_id, sd->status.char_id, 1);
-
-
- npc->script_event(sd, NPCE_LOGIN);
- } else {
-
- clif->updatestatus(sd,SP_STR);
- clif->updatestatus(sd,SP_AGI);
- clif->updatestatus(sd,SP_VIT);
- clif->updatestatus(sd,SP_INT);
- clif->updatestatus(sd,SP_DEX);
- clif->updatestatus(sd,SP_LUK);
-
- if (sd->state.warp_clean) {
-
- sd->state.using_fake_npc = 0;
- sd->state.menu_or_input = 0;
- sd->npc_menu = 0;
- if(sd->npc_id)
- npc->event_dequeue(sd);
- } else {
- sd->state.warp_clean = 1;
- }
- if( sd->guild && ( battle_config.guild_notice_changemap == 2 || ( battle_config.guild_notice_changemap == 1 && sd->state.changemap ) ) )
- clif->guild_notice(sd,sd->guild);
- }
-
- if( sd->state.changemap ) {
-
- clif->partyinvitationstate(sd);
- clif->equpcheckbox(sd);
-
- if( (battle_config.bg_flee_penalty != 100 || battle_config.gvg_flee_penalty != 100)
- && ((map->list[sd->state.pmap].flag.gvg || map->list[sd->state.pmap].flag.gvg_castle) || (map->list[sd->bl.m].flag.gvg || map->list[sd->bl.m].flag.gvg_castle)
- || map->list[sd->state.pmap].flag.battleground || map->list[sd->bl.m].flag.battleground) )
- (status->calc_bl_((&sd->bl), (enum scb_flag)(SCB_FLEE), SCO_NONE));
-
- if( map->night_flag && map->list[sd->bl.m].flag.nightenabled ) {
-
- if( !sd->state.night ) {
- sd->state.night = 1;
- clif->status_change(&sd->bl, SI_SKE, 1, 0, 0, 0, 0);
- }
- } else if( sd->state.night ) {
- sd->state.night = 0;
- clif->sc_end(&sd->bl, sd->bl.id, SELF, SI_SKE);
- }
-
- if( map->list[sd->bl.m].flag.battleground ) {
- clif->map_type(sd, MAPTYPE_BATTLEFIELD);
- if( map->list[sd->bl.m].flag.battleground == 2 )
- clif->bg_updatescore_single(sd);
- }
-
- if( map->list[sd->bl.m].flag.allowks && !(map->list[sd->bl.m].flag.town || map->list[sd->bl.m].flag.pvp || map->list[sd->bl.m].flag.gvg || map->list[sd->bl.m].flag.battleground) ) {
- char output[128];
- sprintf(output, "[ Kill Steal Protection Disabled. KS is allowed in this map ]");
- clif->broadcast(&sd->bl, output, strlen(output) + 1, BC_BLUE, SELF);
- }
-
- map->iwall_get(sd);
- (status->calc_bl_(&(sd)->bl, SCB_ALL, (SCO_NONE)));
- sd->state.changemap =
-# 9394 "../../../server-code/src/map/clif.c" 3 4
- 0
-# 9394 "../../../server-code/src/map/clif.c"
- ;
-
- if (channel->config->local && channel->config->local_autojoin) {
- channel->map_join(sd);
- }
- if (channel->config->irc && channel->config->irc_autojoin) {
- channel->irc_join(sd);
- }
- }
-
- mail->clear(sd);
-
- clif->maptypeproperty2(&sd->bl,SELF);
-
-
- if( sd->state.gmaster_flag ) {
- guild->aura_refresh(sd,GD_LEADERSHIP,guild->checkskill(sd->guild,GD_LEADERSHIP));
- guild->aura_refresh(sd,GD_GLORYWOUNDS,guild->checkskill(sd->guild,GD_GLORYWOUNDS));
- guild->aura_refresh(sd,GD_SOULCOLD,guild->checkskill(sd->guild,GD_SOULCOLD));
- guild->aura_refresh(sd,GD_HAWKEYES,guild->checkskill(sd->guild,GD_HAWKEYES));
- }
-
- if( sd->state.vending ) {
- clif->openvending(sd,sd->bl.id,sd->vending);
- clif->showvendingboard(&sd->bl,sd->message,0);
- }
-
- if(map->list[sd->bl.m].flag.loadevent)
- npc->script_event(sd, NPCE_LOADMAP);
-
- if (pc->checkskill(sd, SG_DEVIL) && !pc->nextjobexp(sd))
- clif->sc_end(&sd->bl, sd->bl.id, SELF, SI_DEVIL1);
-
- if (sd->sc.opt2)
- clif->changeoption(&sd->bl);
-
- if( sd->sc.data[SC_MONSTER_TRANSFORM] && battle_config.mon_trans_disable_in_gvg && (map->list[sd->bl.m].flag.gvg || map->list[sd->bl.m].flag.gvg_castle) ){
- (status->change_end_((&sd->bl),(SC_MONSTER_TRANSFORM),((-1)),"../../../server-code/src/map/clif.c",9431));
- clif->message(sd->fd, atcommand->msgsd((sd),(1488)));
- }
-
- clif->weather_check(sd);
-
-
- if( sd->guild && first_time )
- clif->guild_notice(sd, sd->guild);
-
-
- if (map->getcell(sd->bl.m, &sd->bl, sd->bl.x, sd->bl.y, CELL_CHKNPC))
- npc->touch_areanpc(sd,sd->bl.m,sd->bl.x,sd->bl.y);
- else
- npc->untouch_areanpc(sd, sd->bl.m, sd->bl.x, sd->bl.y);
-
-
- if( !sd->status.hp && !( (sd)->state.dead_sit == 1 ) && status->isdead(&sd->bl) )
- ( (sd)->state.dead_sit = (sd)->vd.dead_sit = 1 );
-
-
- if(( (sd)->state.dead_sit == 1 ))
- clif->clearunit_area(&sd->bl, CLR_DEAD);
- else {
- skill->usave_trigger(sd);
- sd->ud.dir = 0;
- }
-
-
- if(!battle_config.pc_invincible_time)
- skill->unit_move(&sd->bl,timer->gettick(),1);
-
-
-
- {
- int i;
- for(i = 0; i < map->list[sd->bl.m].qi_count; i++) {
- struct questinfo *qi = &map->list[sd->bl.m].qi_data[i];
- if( quest->check(sd, qi->quest_id, HAVEQUEST) == -1 ) {
- if( qi->hasJob ) {
- if( sd->class_ == qi->job )
- clif->quest_show_event(sd, &qi->nd->bl, qi->icon, qi->color);
- } else {
- clif->quest_show_event(sd, &qi->nd->bl, qi->icon, qi->color);
- }
- }
- }
- }
-
-}
-
-
-
-void clif_notify_time(struct map_session_data* sd, int64 time) {
- int fd;
-
- do { if (((void)(sd),
-# 9487 "../../../server-code/src/map/clif.c" 3 4
-0
-# 9487 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- fd = sd->fd;
-
- WFIFOHEAD(fd,packet_db[0x7f].len);
- WFIFOW(fd,0) = 0x7f;
- WFIFOL(fd,2) = (uint32)time;
- WFIFOSET(fd,packet_db[0x7f].len);
-}
-
-void clif_parse_TickSend(int fd, struct map_session_data *sd) __attribute__((nonnull (2)));
-
-
-
-
-void clif_parse_TickSend(int fd, struct map_session_data *sd)
-{
- sd->client_tick = RFIFOL(fd,packet_db[RFIFOW(fd,0)].pos[0]);
-
- clif->notify_time(sd, timer->gettick());
-}
-
-
-
-
-
-
-void clif_hotkeys_send(struct map_session_data *sd) {
-
- struct packet_hotkey p;
- int i;
- do { if (((void)(sd),
-# 9517 "../../../server-code/src/map/clif.c" 3 4
-0
-# 9517 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- p.PacketType = hotkeyType;
-
- p.Rotate = sd->status.hotkey_rowshift;
-
- for(i = 0; i < ( (int)(sizeof(p.hotkey)/sizeof((p.hotkey)[0])) ); i++) {
- p.hotkey[i].isSkill = sd->status.hotkeys[i].type;
- p.hotkey[i].ID = sd->status.hotkeys[i].id;
- p.hotkey[i].count = sd->status.hotkeys[i].lv;
- }
- clif->send(&p, sizeof(p), &sd->bl, SELF);
-
-}
-
-void clif_parse_HotkeyRowShift(int fd, struct map_session_data *sd) __attribute__((nonnull (2)));
-void clif_parse_HotkeyRowShift(int fd, struct map_session_data *sd)
-{
- int cmd = RFIFOW(fd, 0);
- sd->status.hotkey_rowshift = RFIFOB(fd, packet_db[cmd].pos[0]);
-}
-
-void clif_parse_Hotkey(int fd, struct map_session_data *sd) __attribute__((nonnull (2)));
-
-
-void clif_parse_Hotkey(int fd, struct map_session_data *sd) {
-
- unsigned short idx;
- int cmd;
-
- cmd = RFIFOW(fd, 0);
- idx = RFIFOW(fd, packet_db[cmd].pos[0]);
- if (idx >= 38) return;
-
- sd->status.hotkeys[idx].type = RFIFOB(fd, packet_db[cmd].pos[1]);
- sd->status.hotkeys[idx].id = RFIFOL(fd, packet_db[cmd].pos[2]);
- sd->status.hotkeys[idx].lv = RFIFOW(fd, packet_db[cmd].pos[3]);
-
-}
-
-
-
-
-void clif_progressbar(struct map_session_data * sd, unsigned int color, unsigned int second)
-{
- int fd;
-
- do { if (((void)(sd),
-# 9563 "../../../server-code/src/map/clif.c" 3 4
-0
-# 9563 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- fd = sd->fd;
-
- WFIFOHEAD(fd,packet_db[0x2f0].len);
- WFIFOW(fd,0) = 0x2f0;
- WFIFOL(fd,2) = color;
- WFIFOL(fd,6) = second;
- WFIFOSET(fd,packet_db[0x2f0].len);
-}
-
-
-
-void clif_progressbar_abort(struct map_session_data * sd)
-{
- int fd;
-
- do { if (((void)(sd),
-# 9579 "../../../server-code/src/map/clif.c" 3 4
-0
-# 9579 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- fd = sd->fd;
-
- WFIFOHEAD(fd,packet_db[0x2f2].len);
- WFIFOW(fd,0) = 0x2f2;
- WFIFOSET(fd,packet_db[0x2f2].len);
-}
-
-void clif_parse_progressbar(int fd, struct map_session_data * sd) __attribute__((nonnull (2)));
-
-
-void clif_parse_progressbar(int fd, struct map_session_data * sd)
-{
- int npc_id = sd->progressbar.npc_id;
-
- if( timer->gettick() < sd->progressbar.timeout && sd->st )
- sd->st->state = END;
-
- sd->progressbar.timeout = sd->state.workinprogress = sd->progressbar.npc_id = 0;
- npc->scriptcont(sd, npc_id,
-# 9598 "../../../server-code/src/map/clif.c" 3 4
- 0
-# 9598 "../../../server-code/src/map/clif.c"
- );
-}
-
-void clif_parse_WalkToXY(int fd, struct map_session_data *sd) __attribute__((nonnull (2)));
-
-
-
-
-void clif_parse_WalkToXY(int fd, struct map_session_data *sd)
-{
- short x, y;
-
- if (( (sd)->state.dead_sit == 1 )) {
- clif->clearunit_area(&sd->bl, CLR_DEAD);
- return;
- }
-
- if (sd->sc.opt1 && ( sd->sc.opt1 == OPT1_STONEWAIT || sd->sc.opt1 == OPT1_BURNING ))
- ;
-
-
- else if (( (sd)->npc_id || (sd)->state.vending || (sd)->state.buyingstore || (sd)->chatID || ((sd)->sc.opt1 && (sd)->sc.opt1 != OPT1_BURNING) || (sd)->state.trading || (sd)->state.storage_flag || (sd)->state.prevend ))
- return;
-
- if(sd->sc.data[SC_RUN] || sd->sc.data[SC_WUGDASH])
- return;
-
- pc->delinvincibletimer(sd);
-
- RFIFOPOS(fd, packet_db[RFIFOW(fd,0)].pos[0], &x, &y,
-# 9627 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 9627 "../../../server-code/src/map/clif.c"
- );
-
-
- pc->update_idle_time(sd, BCIDLE_WALK);
-
- unit->walktoxy(&sd->bl, x, y, 4);
-}
-
-
-
-
-
-
-
-void clif_disconnect_ack(struct map_session_data* sd, short result)
-{
- int fd;
-
- do { if (((void)(sd),
-# 9645 "../../../server-code/src/map/clif.c" 3 4
-0
-# 9645 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- fd = sd->fd;
-
- WFIFOHEAD(fd,packet_db[0x18b].len);
- WFIFOW(fd,0) = 0x18b;
- WFIFOW(fd,2) = result;
- WFIFOSET(fd,packet_db[0x18b].len);
-}
-
-void clif_parse_QuitGame(int fd, struct map_session_data *sd) __attribute__((nonnull (2)));
-
-
-
-
-void clif_parse_QuitGame(int fd, struct map_session_data *sd)
-{
-
- if( !sd->sc.data[SC_CLOAKING] && !sd->sc.data[SC_HIDING] && !sd->sc.data[SC_CHASEWALK] && !sd->sc.data[SC_CLOAKINGEXCEED] && !sd->sc.data[SC__INVISIBILITY] &&
- (!battle_config.prevent_logout || ((timer->gettick())-(sd->canlog_tick)) > battle_config.prevent_logout) )
- {
- sockt->eof(fd);
-
- clif->disconnect_ack(sd, 0);
- } else {
- clif->disconnect_ack(sd, 1);
- }
-}
-
-void clif_parse_GetCharNameRequest(int fd, struct map_session_data *sd) __attribute__((nonnull (2)));
-
-
-
-
-void clif_parse_GetCharNameRequest(int fd, struct map_session_data *sd) {
- int id = RFIFOL(fd,packet_db[RFIFOW(fd,0)].pos[0]);
- struct block_list* bl;
-
-
- if( id < 0 && -id == sd->bl.id )
- id = sd->bl.id;
-
- bl = map->id2bl(id);
- if( bl ==
-# 9687 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 9687 "../../../server-code/src/map/clif.c"
- )
- return;
-
- if( sd->bl.m != bl->m || !(path->check_distance((&sd->bl)->x - (bl)->x, (&sd->bl)->y - (bl)->y, (battle->bc->area_size))) )
- return;
-# 9709 "../../../server-code/src/map/clif.c"
- clif->charnameack(fd, bl);
-}
-int clif_undisguise_timer(int tid, int64 tick, int id, intptr_t data) {
- struct map_session_data * sd;
- if( (sd = map->id2sd(id)) ) {
- sd->fontcolor_tid = (-1);
- if( sd->fontcolor && sd->disguise == sd->status.class_ )
- pc->disguise(sd,-1);
- }
- return 0;
-}
-
-void clif_parse_GlobalMessage(int fd, struct map_session_data* sd) __attribute__((nonnull (2)));
-
-
-
-void clif_parse_GlobalMessage(int fd, struct map_session_data* sd)
-{
- const char *text = RFIFOP(fd,4);
- size_t textlen = RFIFOW(fd,2) - 4;
-
- const char *name =
-# 9730 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 9730 "../../../server-code/src/map/clif.c"
- , *message =
-# 9730 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 9730 "../../../server-code/src/map/clif.c"
- ;
- char *fakename =
-# 9731 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 9731 "../../../server-code/src/map/clif.c"
- ;
- size_t namelen, messagelen;
-
-
-# 9734 "../../../server-code/src/map/clif.c" 3 4
-_Bool
-# 9734 "../../../server-code/src/map/clif.c"
- is_fake;
-
-
- if( !clif->process_message(sd, 0, &name, &namelen, &message, &messagelen) )
- return;
-
- if( atcommand->exec(fd, sd, message,
-# 9740 "../../../server-code/src/map/clif.c" 3 4
- 1
-# 9740 "../../../server-code/src/map/clif.c"
- ) )
- return;
-
- if( !pc->can_talk(sd) )
- return;
-
- if( battle_config.min_chat_delay ) {
- if (((sd->cantalk_tick)-(timer->gettick())) > 0)
- return;
- sd->cantalk_tick = timer->gettick() + battle_config.min_chat_delay;
- }
-
- if( (sd->class_&0x0fff) == MAPID_SUPER_NOVICE ) {
- unsigned int next = pc->nextbaseexp(sd);
- if( next == 0 ) next = pc->thisbaseexp(sd);
- if( next ) {
- int percent = (int)( ( (float)sd->status.base_exp/(float)next )*1000. );
- if( (battle_config.snovice_call_type || percent) && ( percent%100 ) == 0 ) {
- switch (sd->state.snovice_call_flag) {
- case 0:
- if( strstr(message, atcommand->msg(1479)) )
- sd->state.snovice_call_flag = 1;
- break;
- case 1: {
- char buf[256];
- snprintf(buf, 256, atcommand->msg(1480), sd->status.name);
- if( strstr(message, buf) )
- sd->state.snovice_call_flag = 2;
- }
- break;
- case 2:
- if( strstr(message, atcommand->msg(1481)) )
- sd->state.snovice_call_flag = 3;
- break;
- case 3:
- (status->change_start((
-# 9775 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 9775 "../../../server-code/src/map/clif.c"
- ),(&sd->bl),(status->skill2sc(MO_EXPLOSIONSPIRITS)),100*(100),(17),0,0,0,(skill->get_time(MO_EXPLOSIONSPIRITS, 5)),SCFLAG_NONE));
- clif->skill_nodamage(&sd->bl, &sd->bl, MO_EXPLOSIONSPIRITS, 5, 1);
- sd->state.snovice_call_flag = 0;
- break;
- }
- }
- }
- }
-
- pc->update_idle_time(sd, BCIDLE_CHAT);
-
- if( sd->gcbind ) {
- channel->send(sd->gcbind,sd,message);
- return;
- } else if ( sd->fontcolor && !sd->chatID ) {
- char mout[200];
- unsigned char mylen = 1;
- uint32 color = 0;
-
- if( sd->disguise == -1 ) {
- sd->fontcolor_tid = timer->add(timer->gettick()+5000, clif->undisguise_timer, sd->bl.id, 0);
- pc->disguise(sd,sd->status.class_);
- if( ( (sd)->state.dead_sit == 1 ) )
- clif->clearunit_single(-sd->bl.id, CLR_DEAD, sd->fd);
- if( unit->is_walking(&sd->bl) )
- clif->move(&sd->ud);
- } else if ( sd->disguise == sd->status.class_ && sd->fontcolor_tid != (-1) ) {
- const struct TimerData *td;
- if( (td = timer->get(sd->fontcolor_tid)) ) {
- timer->settick(sd->fontcolor_tid, td->tick+5000);
- }
- }
-
- mylen += snprintf(mout, 200, "%s : %s",sd->fakename[0]?sd->fakename:sd->status.name,message);
-
- color = channel->config->colors[sd->fontcolor - 1];
- WFIFOHEAD(fd,mylen + 12);
- WFIFOW(fd,0) = 0x2C1;
- WFIFOW(fd,2) = mylen + 12;
- WFIFOL(fd,4) = sd->bl.id;
- WFIFOL(fd,8) = (((color) & 0x0000FF) << 16 | ((color) & 0x00FF00) | ((color) & 0xFF0000) >> 16);
- (strlib->safestrncpy_((WFIFOP(fd,12)),(mout),(mylen)));
- clif->send(WFIFOP(fd,0), WFIFOW(fd,2), &sd->bl, AREA_WOS);
- WFIFOL(fd,4) = -sd->bl.id;
- WFIFOSET(fd, mylen + 12);
- return;
- }
-
-
-
-
- if( ( is_fake = ( sd->fakename[0] ) ) ) {
- fakename = (char*) (iMalloc->malloc((strlen(sd->fakename)+messagelen+3),"../../../server-code/src/map/clif.c", 9827, __func__));
- strcpy(fakename, sd->fakename);
- strcat(fakename, " : ");
- strcat(fakename, message);
- textlen = strlen(fakename) + 1;
- }
-
- WFIFOHEAD(fd, 8 + textlen);
- WFIFOW(fd,0) = 0x8d;
- WFIFOW(fd,2) = 8 + textlen;
- WFIFOL(fd,4) = sd->bl.id;
- (strlib->safestrncpy_((WFIFOP(fd,8)),(is_fake ? fakename : text),(textlen)));
-
- clif->send(WFIFOP(fd,0), WFIFOW(fd,2), &sd->bl, sd->chatID ? CHAT_WOS : AREA_CHAT_WOC);
-
-
- if( is_fake ) {
- WFIFOW(fd,0) = 0x8e;
- WFIFOW(fd,2) = textlen + 4;
- (strlib->safestrncpy_((WFIFOP(fd,4)),(fakename),(textlen)));
- (iMalloc->free((fakename),"../../../server-code/src/map/clif.c", 9847, __func__));
- } else {
- memcpy(WFIFOP(fd,0), RFIFOP(fd,0), RFIFOW(fd,2));
- WFIFOW(fd,0) = 0x8e;
- }
- WFIFOSET(fd, WFIFOW(fd,2));
-
-
- logs->chat(LOG_CHAT_GLOBAL, 0, sd->status.char_id, sd->status.account_id, mapindex->id2name((sd->mapindex),"../../../server-code/src/map/clif.c", 9855, __func__), sd->bl.x, sd->bl.y,
-# 9855 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 9855 "../../../server-code/src/map/clif.c"
- , message);
-
-
- map->foreachinrange(npc_chat->sub, &sd->bl, (battle->bc->area_size), BL_NPC, text, textlen, &sd->bl);
-}
-
-void clif_parse_MapMove(int fd, struct map_session_data *sd) __attribute__((nonnull (2)));
-
-
-
-void clif_parse_MapMove(int fd, struct map_session_data *sd)
-{
- char command[((11 + 1) + 4)+25];
- char map_name[((11 + 1) + 4)];
-
- (strlib->safestrncpy_((map_name),(RFIFOP(fd,2)),(((11 + 1) + 4))));
- sprintf(command, "%cmapmove %s %d %d", atcommand->at_symbol, map_name, RFIFOW(fd,18), RFIFOW(fd,20));
- atcommand->exec(fd, sd, command,
-# 9872 "../../../server-code/src/map/clif.c" 3 4
- 1
-# 9872 "../../../server-code/src/map/clif.c"
- );
-}
-# 9890 "../../../server-code/src/map/clif.c"
-void clif_changed_dir(struct block_list *bl, enum send_target target)
-{
- unsigned char buf[64];
-
- do { if (((void)(bl),
-# 9894 "../../../server-code/src/map/clif.c" 3 4
-0
-# 9894 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- WBUFW(buf,0) = 0x9c;
- WBUFL(buf,2) = bl->id;
- WBUFW(buf,6) = bl->type == BL_PC ? ((const TBL_PC *)BL_UCCAST_(bl))->head_dir : 0;
- WBUFB(buf,8) = unit->getdir(bl);
-
- clif->send(buf, packet_db[0x9c].len, bl, target);
-
- if (disguised(bl)) {
- WBUFL(buf,2) = -bl->id;
- WBUFW(buf,6) = 0;
- clif->send(buf, packet_db[0x9c].len, bl, SELF);
- }
-}
-
-void clif_parse_ChangeDir(int fd, struct map_session_data *sd) __attribute__((nonnull (2)));
-
-
-
-
-void clif_parse_ChangeDir(int fd, struct map_session_data *sd)
-{
- unsigned char headdir, dir;
-
- headdir = RFIFOB(fd,packet_db[RFIFOW(fd,0)].pos[0]);
- dir = RFIFOB(fd,packet_db[RFIFOW(fd,0)].pos[1]);
- ( (sd)->ud.dir = (dir) ,(sd)->head_dir = (headdir) );
-
- clif->changed_dir(&sd->bl, AREA_WOS);
-}
-
-void clif_parse_Emotion(int fd, struct map_session_data *sd) __attribute__((nonnull (2)));
-
-
-
-
-void clif_parse_Emotion(int fd, struct map_session_data *sd)
-{
- int emoticon = RFIFOB(fd,packet_db[RFIFOW(fd,0)].pos[0]);
-
- if (battle_config.basic_skill_check == 0 || pc->checkskill(sd, NV_BASIC) >= 2) {
- if (emoticon == E_MUTE) {
- clif->skill_fail(sd, 1, USESKILL_FAIL_LEVEL, 1);
- return;
- }
-
- if (sd->emotionlasttime + 1 >= time(
-# 9940 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 9940 "../../../server-code/src/map/clif.c"
- )) {
- sd->emotionlasttime = time(
-# 9941 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 9941 "../../../server-code/src/map/clif.c"
- );
- clif->skill_fail(sd, 1, USESKILL_FAIL_LEVEL, 1);
- return;
- }
- sd->emotionlasttime = time(
-# 9945 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 9945 "../../../server-code/src/map/clif.c"
- );
-
- pc->update_idle_time(sd, BCIDLE_EMOTION);
-
- if(battle_config.client_reshuffle_dice && emoticon>=E_DICE1 && emoticon<=E_DICE6) {
- emoticon = rnd()%6+E_DICE1;
- }
-
- clif->emotion(&sd->bl, emoticon);
- } else
- clif->skill_fail(sd, 1, USESKILL_FAIL_LEVEL, 1);
-}
-
-
-
-void clif_user_count(struct map_session_data* sd, int count) {
- int fd;
-
- do { if (((void)(sd),
-# 9963 "../../../server-code/src/map/clif.c" 3 4
-0
-# 9963 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- fd = sd->fd;
-
- WFIFOHEAD(fd,packet_db[0xc2].len);
- WFIFOW(fd,0) = 0xc2;
- WFIFOL(fd,2) = count;
- WFIFOSET(fd,packet_db[0xc2].len);
-}
-
-void clif_parse_HowManyConnections(int fd, struct map_session_data *sd) __attribute__((nonnull (2)));
-
-
-
-void clif_parse_HowManyConnections(int fd, struct map_session_data *sd) {
- clif->user_count(sd, map->getusers());
-}
-
-void clif_parse_ActionRequest_sub(struct map_session_data *sd, int action_type, int target_id, int64 tick)
-{
- do { if (((void)(sd),
-# 9982 "../../../server-code/src/map/clif.c" 3 4
-0
-# 9982 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- if (( (sd)->state.dead_sit == 1 )) {
- clif->clearunit_area(&sd->bl, CLR_DEAD);
- return;
- }
-
-
-
- if( sd->sc.count && (
- sd->sc.data[SC_TRICKDEAD] ||
- (sd->sc.data[SC_AUTOCOUNTER] && action_type != 0x07) ||
- sd->sc.data[SC_BLADESTOP] ||
- sd->sc.data[SC_DEEP_SLEEP] )
- )
- return;
-
- if(action_type != 0x00 && action_type != 0x07)
- (unit->stop_walking(&(sd)->bl, (STOPWALKING_FLAG_FIXPOS)));
- (unit->stop_attack(&(sd)->bl));
-
- if(target_id<0 && -target_id == sd->bl.id)
- target_id = sd->bl.id;
-
- switch(action_type) {
- case 0x00:
- case 0x07:
- {
- struct npc_data *nd = map->id2nd(target_id);
- if (nd !=
-# 10010 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 10010 "../../../server-code/src/map/clif.c"
- ) {
- npc->click(sd, nd);
- return;
- }
-
- if( ( (sd)->npc_id || (sd)->state.vending || (sd)->state.buyingstore || (sd)->chatID || ((sd)->sc.opt1 && (sd)->sc.opt1 != OPT1_BURNING) || (sd)->state.trading || (sd)->state.storage_flag || (sd)->state.prevend ) || ( (sd)->vd.dead_sit == 2 ) || sd->sc.option&OPTION_HIDE )
- return;
-
- if( sd->sc.option&OPTION_COSTUME )
- return;
-
- if (!battle_config.sdelay_attack_enable && pc->checkskill(sd, SA_FREECAST) <= 0) {
- if (((tick)-(sd->ud.canact_tick)) < 0) {
- clif->skill_fail(sd, 1, USESKILL_FAIL_SKILLINTERVAL, 0);
- return;
- }
- }
-
- pc->delinvincibletimer(sd);
- pc->update_idle_time(sd, BCIDLE_ATTACK);
- unit->attack(&sd->bl, target_id, action_type != 0);
- }
- break;
- case 0x02:
- if (battle_config.basic_skill_check && pc->checkskill(sd, NV_BASIC) < 3) {
- clif->skill_fail(sd, 1, USESKILL_FAIL_LEVEL, 2);
- break;
- }
-
- if (sd->sc.data[SC_SITDOWN_FORCE] || sd->sc.data[SC_BANANA_BOMB_SITDOWN_POSTDELAY])
- return;
-
- if(( (sd)->vd.dead_sit == 2 )) {
-
- clif->sitting(&sd->bl);
- return;
- }
-
- if (sd->ud.skilltimer != (-1) || (sd->sc.opt1 && sd->sc.opt1 != OPT1_BURNING ))
- break;
-
- if (sd->sc.count && (
- sd->sc.data[SC_DANCING] ||
- sd->sc.data[SC_ANKLESNARE] ||
- (sd->sc.data[SC_GRAVITATION] && sd->sc.data[SC_GRAVITATION]->val3 == BCT_SELF)
- ))
- break;
-
- pc->update_idle_time(sd, BCIDLE_SIT);
-
- ( (sd)->state.dead_sit = (sd)->vd.dead_sit = 2 );
- skill->sit(sd,1);
- clif->sitting(&sd->bl);
- break;
- case 0x03:
-
- if (sd->sc.data[SC_SITDOWN_FORCE] || sd->sc.data[SC_BANANA_BOMB_SITDOWN_POSTDELAY])
- return;
-
- if (!( (sd)->vd.dead_sit == 2 )) {
-
- clif->standing(&sd->bl);
- return;
- }
-
- pc->update_idle_time(sd, BCIDLE_SIT);
-
- pc->setstand(sd);
- skill->sit(sd,0);
- clif->standing(&sd->bl);
- break;
- }
-}
-
-void clif_parse_ActionRequest(int fd, struct map_session_data *sd) __attribute__((nonnull (2)));
-# 10096 "../../../server-code/src/map/clif.c"
-void clif_parse_ActionRequest(int fd, struct map_session_data *sd)
-{
- clif->pActionRequest_sub(sd,
- RFIFOB(fd,packet_db[RFIFOW(fd,0)].pos[1]),
- RFIFOL(fd,packet_db[RFIFOW(fd,0)].pos[0]),
- timer->gettick()
- );
-}
-
-void clif_parse_Restart(int fd, struct map_session_data *sd) __attribute__((nonnull (2)));
-
-
-
-
-
-void clif_parse_Restart(int fd, struct map_session_data *sd) {
- switch(RFIFOB(fd,2)) {
- case 0x00:
- pc->respawn(sd,CLR_OUTSIGHT);
- break;
- case 0x01:
-
- if (!sd->sc.data[SC_CLOAKING] && !sd->sc.data[SC_HIDING] && !sd->sc.data[SC_CHASEWALK]
- && !sd->sc.data[SC_CLOAKINGEXCEED] && !sd->sc.data[SC__INVISIBILITY]
- && (!battle_config.prevent_logout || ((timer->gettick())-(sd->canlog_tick)) > battle_config.prevent_logout)
- ) {
-
- chrif->charselectreq(sd, sockt->session[fd]->client_addr);
- } else {
- clif->disconnect_ack(sd, 1);
- }
- break;
- }
-}
-
-void clif_parse_WisMessage(int fd, struct map_session_data* sd) __attribute__((nonnull (2)));
-
-
-void clif_parse_WisMessage(int fd, struct map_session_data* sd)
-{
- struct map_session_data* dstsd;
- int i;
-
- const char *target, *message;
- size_t namelen, messagelen;
-
-
- if( !clif->process_message(sd, 1, &target, &namelen, &message, &messagelen) )
- return;
-
- if ( atcommand->exec(fd, sd, message,
-# 10146 "../../../server-code/src/map/clif.c" 3 4
- 1
-# 10146 "../../../server-code/src/map/clif.c"
- ) )
- return;
-
-
- if( !pc->can_talk(sd) )
- return;
-
- if (battle_config.min_chat_delay) {
- if (((sd->cantalk_tick)-(timer->gettick())) > 0) {
- return;
- }
- sd->cantalk_tick = timer->gettick() + battle_config.min_chat_delay;
- }
-
- pc->update_idle_time(sd, BCIDLE_CHAT);
-
-
- logs->chat(LOG_CHAT_WHISPER, 0, sd->status.char_id, sd->status.account_id, mapindex->id2name((sd->mapindex),"../../../server-code/src/map/clif.c", 10163, __func__), sd->bl.x, sd->bl.y, target, message);
-
-
-
-
- if (target[0] && (strncasecmp(target,"NPC:",4) == 0) && (strlen(target) > 4)) {
- const char *str = target+4;
- struct npc_data *nd;
- if ((nd = npc->name2id(str))) {
- char split_data[10][(255 + 1)];
- char *split;
- char output[256];
-
- str = message;
-
- if( str[0] == '|' && strlen(str) >= 4 )
- str += 3;
- for( i = 0; i < 10; ++i ) {
- split = strchr(str,'#');
- if( split ==
-# 10182 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 10182 "../../../server-code/src/map/clif.c"
- ) {
- (strlib->safestrncpy_((split_data[i]),(str),(( (int)(sizeof(split_data[i])/sizeof((split_data[i])[0])) ))));
- for( ++i; i < 10; ++i )
- split_data[i][0] = '\0';
- break;
- }
- *split = '\0';
- (strlib->safestrncpy_((split_data[i]),(str),(( (int)(sizeof(split_data[i])/sizeof((split_data[i])[0])) ))));
- str = split+1;
- }
-
- for( i = 0; i < 10; ++i ) {
- sprintf(output, "@whispervar%d$", i);
- script->set_var(sd,output,(char *) split_data[i]);
- }
-
- sprintf(output, "%s::OnWhisperGlobal", nd->exname);
- npc->event(sd,output,0);
-
- return;
- }
- } else if( target[0] == '#' ) {
- const char *chname = target;
- struct channel_data *chan = channel->search(chname, sd);
-
- if (chan) {
- int k;
- do { for ((k) = (0); (k) < (sd->channel_count); ++(k)) if (sd->channels[k] == chan) break; } while(
-# 10209 "../../../server-code/src/map/clif.c" 3 4
- 0
-# 10209 "../../../server-code/src/map/clif.c"
- );
- if (k < sd->channel_count || channel->join(chan, sd, "",
-# 10210 "../../../server-code/src/map/clif.c" 3 4
- 1
-# 10210 "../../../server-code/src/map/clif.c"
- ) == HCS_STATUS_OK) {
- channel->send(chan,sd,message);
- } else {
- clif->message(fd, atcommand->msgfd((fd),(1402)));
- }
- return;
- } else if (strcasecmp(&chname[1], channel->config->ally_name) == 0) {
- clif->message(fd, atcommand->msgfd((fd),(1294)));
- return;
- }
- }
-
-
- dstsd = map->nick2sd(target);
-
- if (dstsd ==
-# 10225 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 10225 "../../../server-code/src/map/clif.c"
- || strcmp(dstsd->status.name, target) != 0) {
-
-
-
-
-
- intif->wis_message(sd, target, message, messagelen);
- return;
- }
-
-
- if (dstsd->state.ignoreAll && ( (sd)->group->level ) <= ( (dstsd)->group->level )) {
- if (( (dstsd)->sc.option&OPTION_INVISIBLE ) && ( (sd)->group->level ) < ( (dstsd)->group->level ))
- clif->wis_end(fd, 1);
- else
- clif->wis_end(fd, 3);
- return;
- }
-
-
- if( dstsd->state.autotrade ) {
- char output[256];
- sprintf(output, "%s is in autotrade mode and cannot receive whispered messages.", dstsd->status.name);
- clif->wis_message(fd, map->wisp_server_name, output, strlen(output) + 1);
- return;
- }
-
- if( ( (sd)->group->level ) <= ( (dstsd)->group->level ) ) {
-
- do { for ((i) = (0); (i) < (20); ++(i)) if (dstsd->ignore[i].name[0] == '\0' || strcmp(dstsd->ignore[i].name, sd->status.name) == 0) break; } while(
-# 10254 "../../../server-code/src/map/clif.c" 3 4
- 0
-# 10254 "../../../server-code/src/map/clif.c"
- );
- if(i < 20 && dstsd->ignore[i].name[0] != '\0') {
- clif->wis_end(fd, 2);
- return;
- }
- }
-
-
- clif->wis_end(fd, 0);
-
-
- clif->wis_message(dstsd->fd, sd->status.name, message, messagelen);
-}
-
-void clif_parse_Broadcast(int fd, struct map_session_data *sd) __attribute__((nonnull (2)));
-
-
-
-void clif_parse_Broadcast(int fd, struct map_session_data *sd)
-{
- const char commandname[] = "kami";
- char command[sizeof commandname + 2 + (255 + 1)] = "";
- int len = (int)RFIFOW(fd,2) - 4;
-
- if (len < 0)
- return;
-
- sprintf(command, "%c%s ", atcommand->at_symbol, commandname);
-
-
- if (len >= (int)(sizeof command - strlen(command)))
- len = (int)(sizeof command - strlen(command)) - 1;
-
- strncat(command, RFIFOP(fd,4), len);
- atcommand->exec(fd, sd, command,
-# 10288 "../../../server-code/src/map/clif.c" 3 4
- 1
-# 10288 "../../../server-code/src/map/clif.c"
- );
-}
-
-void clif_parse_TakeItem(int fd, struct map_session_data *sd) __attribute__((nonnull (2)));
-
-
-
-
-void clif_parse_TakeItem(int fd, struct map_session_data *sd)
-{
- int map_object_id = RFIFOL(fd,packet_db[RFIFOW(fd,0)].pos[0]);
- struct flooritem_data *fitem = map->id2fi(map_object_id);
-
- do {
- if (( (sd)->state.dead_sit == 1 )) {
- clif->clearunit_area(&sd->bl, CLR_DEAD);
- break;
- }
-
- if (fitem ==
-# 10307 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 10307 "../../../server-code/src/map/clif.c"
- || fitem->bl.m != sd->bl.m)
- break;
-
- if( sd->sc.count && (
- sd->sc.data[SC_HIDING] ||
- sd->sc.data[SC_CLOAKING] ||
- sd->sc.data[SC_TRICKDEAD] ||
- sd->sc.data[SC_BLADESTOP] ||
- sd->sc.data[SC_CLOAKINGEXCEED] ||
- ( (&sd->sc)->data[SC_NOCHAT] && (&sd->sc)->data[SC_NOCHAT]->val1&(MANNER_NOITEM) )
- ) )
- break;
-
- if (( (sd)->npc_id || (sd)->state.vending || (sd)->state.buyingstore || (sd)->chatID || ((sd)->sc.opt1 && (sd)->sc.opt1 != OPT1_BURNING) || (sd)->state.trading || (sd)->state.storage_flag || (sd)->state.prevend ))
- break;
-
- if (!pc->takeitem(sd, fitem))
- break;
-
- return;
- } while (0);
-
- clif->additem(sd,0,0,6);
-}
-
-void clif_parse_DropItem(int fd, struct map_session_data *sd) __attribute__((nonnull (2)));
-
-
-
-
-void clif_parse_DropItem(int fd, struct map_session_data *sd)
-{
- int item_index = RFIFOW(fd,packet_db[RFIFOW(fd,0)].pos[0])-2;
- int item_amount = RFIFOW(fd,packet_db[RFIFOW(fd,0)].pos[1]);
-
- for(;;) {
- if (( (sd)->state.dead_sit == 1 ))
- break;
-
- if ( ( (sd)->npc_id || (sd)->state.buyingstore || ((sd)->sc.opt1 && (sd)->sc.opt1 != OPT1_BURNING) || (sd)->state.trading || (sd)->state.storage_flag || (sd)->state.prevend ) || sd->state.vending )
- break;
-
- if (sd->sc.count && (
- sd->sc.data[SC_AUTOCOUNTER] ||
- sd->sc.data[SC_BLADESTOP] ||
- ( (&sd->sc)->data[SC_NOCHAT] && (&sd->sc)->data[SC_NOCHAT]->val1&(MANNER_NOITEM) )
- ))
- break;
-
- if (!pc->dropitem(sd, item_index, item_amount))
- break;
-
- pc->update_idle_time(sd, BCIDLE_DROPITEM);
-
- return;
- }
-
-
- clif->dropitem(sd, item_index, 0);
-}
-
-void clif_parse_UseItem(int fd, struct map_session_data *sd) __attribute__((nonnull (2)));
-
-
-
-
-void clif_parse_UseItem(int fd, struct map_session_data *sd)
-{
- int n;
-
- if (( (sd)->state.dead_sit == 1 )) {
- clif->clearunit_area(&sd->bl, CLR_DEAD);
- return;
- }
-
- if ( (!sd->npc_id && ( (sd)->npc_id || (sd)->state.vending || (sd)->state.buyingstore || (sd)->state.trading )) || sd->chatID )
- return;
-
-
- pc->update_idle_time(sd, BCIDLE_USEITEM);
- n = RFIFOW(fd,packet_db[RFIFOW(fd,0)].pos[0])-2;
-
- if (n < 0 || n >= 100)
- return;
- if (!pc->useitem(sd,n))
- clif->useitemack(sd,n,0,
-# 10392 "../../../server-code/src/map/clif.c" 3 4
- 0
-# 10392 "../../../server-code/src/map/clif.c"
- );
-}
-
-void clif_parse_EquipItem(int fd,struct map_session_data *sd) __attribute__((nonnull (2)));
-
-
-
-void clif_parse_EquipItem(int fd,struct map_session_data *sd)
-{
- const struct packet_equip_item *p = RP2PTR(fd);
- int index = 0;
-
- if(( (sd)->state.dead_sit == 1 )) {
- clif->clearunit_area(&sd->bl,CLR_DEAD);
- return;
- }
-
- index = p->index - 2;
- if (index >= 100)
- return;
-
- if( sd->npc_id ) {
- if ( !sd->npc_item_flag )
- return;
- } else if (sd->state.storage_flag != STORAGE_FLAG_CLOSED || sd->sc.opt1)
- ;
- else if ( ( (sd)->npc_id || (sd)->state.buyingstore || ((sd)->sc.opt1 && (sd)->sc.opt1 != OPT1_BURNING) || (sd)->state.trading || (sd)->state.storage_flag || (sd)->state.prevend ) || sd->state.prerefining )
- return;
-
- if(!sd->status.inventory[index].identify) {
- clif->equipitemack(sd, index, 0, EIA_FAIL);
- return;
- }
-
- if(!sd->inventory_data[index])
- return;
-
- if(sd->inventory_data[index]->type == IT_PETARMOR){
- pet->equipitem(sd, index);
- return;
- }
-
- pc->update_idle_time(sd, BCIDLE_USEITEM);
-
-
- if(sd->inventory_data[index]->type == IT_AMMO)
- pc->equipitem(sd, index, EQP_AMMO);
- else
- pc->equipitem(sd, index, p->wearLocation);
-}
-
-void clif_parse_UnequipItem(int fd,struct map_session_data *sd) __attribute__((nonnull (2)));
-
-
-void clif_parse_UnequipItem(int fd,struct map_session_data *sd)
-{
- int index;
-
- if(( (sd)->state.dead_sit == 1 )) {
- clif->clearunit_area(&sd->bl,CLR_DEAD);
- return;
- }
-
- if( sd->npc_id ) {
- if ( !sd->npc_item_flag )
- return;
- } else if (sd->state.storage_flag != STORAGE_FLAG_CLOSED || sd->sc.opt1)
- ;
- else if ( ( (sd)->npc_id || (sd)->state.buyingstore || ((sd)->sc.opt1 && (sd)->sc.opt1 != OPT1_BURNING) || (sd)->state.trading || (sd)->state.storage_flag || (sd)->state.prevend ) || sd->state.prerefining )
- return;
-
- index = RFIFOW(fd,2)-2;
-
- pc->update_idle_time(sd, BCIDLE_USEITEM);
-
- pc->unequipitem(sd,index, PCUNEQUIPITEM_RECALC);
-}
-
-void clif_parse_NpcClicked(int fd,struct map_session_data *sd) __attribute__((nonnull (2)));
-
-
-
-
-void clif_parse_NpcClicked(int fd,struct map_session_data *sd)
-{
- struct block_list *bl;
-
- if( ( (sd)->state.dead_sit == 1 ) ) {
- clif->clearunit_area(&sd->bl,CLR_DEAD);
- return;
- }
- if( sd->npc_id || sd->state.workinprogress&2 ){
-
- clif->msgtable(sd, MSG_NPC_WORK_IN_PROGRESS);
-
- return;
- }
- if ( ( (sd)->npc_id || (sd)->state.buyingstore || ((sd)->sc.opt1 && (sd)->sc.opt1 != OPT1_BURNING) || (sd)->state.trading || (sd)->state.storage_flag || (sd)->state.prevend ) || !(bl = map->id2bl(RFIFOL(fd,2))) || sd->state.vending )
- return;
-
- switch (bl->type) {
- case BL_MOB:
- case BL_PC:
- clif->pActionRequest_sub(sd, 0x07, bl->id, timer->gettick());
- break;
- case BL_NPC:
- if( sd->ud.skill_id < RK_ENCHANTBLADE && sd->ud.skilltimer != (-1) ) {
-
- clif->msgtable(sd, MSG_NPC_WORK_IN_PROGRESS);
-
- break;
- }
- if( bl->m != -1 )
- npc->click(sd, ((TBL_NPC *)BL_UCAST_(bl)));
- break;
- }
-}
-
-void clif_parse_NpcBuySellSelected(int fd, struct map_session_data *sd) __attribute__((nonnull (2)));
-
-
-
-
-
-void clif_parse_NpcBuySellSelected(int fd, struct map_session_data *sd)
-{
- if (sd->state.trading)
- return;
- npc->buysellsel(sd, RFIFOL(fd,2), RFIFOB(fd,6));
-}
-# 10530 "../../../server-code/src/map/clif.c"
-void clif_npc_buy_result(struct map_session_data* sd, unsigned char result) {
- int fd;
-
- do { if (((void)(sd),
-# 10533 "../../../server-code/src/map/clif.c" 3 4
-0
-# 10533 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- fd = sd->fd;
- WFIFOHEAD(fd,packet_db[0xca].len);
- WFIFOW(fd,0) = 0xca;
- WFIFOB(fd,2) = result;
- WFIFOSET(fd,packet_db[0xca].len);
-}
-
-void clif_parse_NpcBuyListSend(int fd, struct map_session_data* sd) __attribute__((nonnull (2)));
-
-
-void clif_parse_NpcBuyListSend(int fd, struct map_session_data* sd)
-{
- int n = ((int)RFIFOW(fd,2)-4) / 4;
- int result;
-
- do { if (( (n >= 0) ?
-# 10549 "../../../server-code/src/map/clif.c" 3 4
-0
-# 10549 "../../../server-code/src/map/clif.c"
-: (nullpo->assert_report("../../../server-code/src/map/clif.c", 10549, __func__, "n >= 0", "failed assertion"),
-# 10549 "../../../server-code/src/map/clif.c" 3 4
-1
-# 10549 "../../../server-code/src/map/clif.c"
-) )) return; } while(0);
-
- if( sd->state.trading || !sd->npc_shopid || ( ((sd)->extra_temp_permissions&(PC_PERM_DISABLE_STORE)) != 0 || ((sd)->group->e_permissions&(PC_PERM_DISABLE_STORE)) != 0 ) ) {
- result = 1;
- } else {
- struct itemlist item_list = { 0 };
- int i;
-
- memset(&(item_list), 0, sizeof(item_list));
- do { int _empty_ = ( (item_list)._max_ )-( (item_list)._len_ ); if ((n) > _empty_) { while ((n) > _empty_) _empty_ += (1); do { if ((_empty_+( (item_list)._len_ )) > ( (item_list)._max_ )) { if (( (item_list)._max_ ) == 0) ( (item_list)._data_ ) = (iMalloc->malloc(((_empty_+( (item_list)._len_ ))*sizeof(( ( ( (item_list)._data_ )[0] ) ))),"../../../server-code/src/map/clif.c", 10558, __func__)); else ( (item_list)._data_ ) = (iMalloc->realloc((( (item_list)._data_ )),((_empty_+( (item_list)._len_ ))*sizeof(( ( ( (item_list)._data_ )[0] ) ))),"../../../server-code/src/map/clif.c", 10558, __func__)); memset(( (item_list)._data_ )+( (item_list)._len_ ), 0, (( (item_list)._max_ )-( (item_list)._len_ ))*sizeof(( ( ( (item_list)._data_ )[0] ) ))); ( (item_list)._max_ ) = (_empty_+( (item_list)._len_ )); } else if ((_empty_+( (item_list)._len_ )) == 0 && ( (item_list)._max_ ) > 0) { (iMalloc->free((( (item_list)._data_ )),"../../../server-code/src/map/clif.c", 10558, __func__)); ( (item_list)._data_ ) =
-# 10558 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 10558 "../../../server-code/src/map/clif.c"
- ; ( (item_list)._max_ ) = 0; ( (item_list)._len_ ) = 0; } else if ((_empty_+( (item_list)._len_ )) < ( (item_list)._max_ )) { ( (item_list)._data_ ) = (iMalloc->realloc((( (item_list)._data_ )),((_empty_+( (item_list)._len_ ))*sizeof(( ( ( (item_list)._data_ )[0] ) ))),"../../../server-code/src/map/clif.c", 10558, __func__)); ( (item_list)._max_ ) = (_empty_+( (item_list)._len_ )); if ((_empty_+( (item_list)._len_ )) - ( (item_list)._len_ ) > 0) ( (item_list)._len_ ) = (_empty_+( (item_list)._len_ )); } } while(
-# 10558 "../../../server-code/src/map/clif.c" 3 4
- 0
-# 10558 "../../../server-code/src/map/clif.c"
- ); } } while(
-# 10558 "../../../server-code/src/map/clif.c" 3 4
- 0
-# 10558 "../../../server-code/src/map/clif.c"
- );
- for (i = 0; i < n; i++) {
- struct itemlist_entry entry = { 0 };
-
- entry.amount = RFIFOW(fd, 4 + 4 * i);
- entry.id = RFIFOW(fd, 4 + 4 * i + 2);
-
- do { ( ( (item_list)._data_ )[( (item_list)._len_ )] ) = (entry); ++( (item_list)._len_ ); }while(
-# 10565 "../../../server-code/src/map/clif.c" 3 4
- 0
-# 10565 "../../../server-code/src/map/clif.c"
- );
- }
- result = npc->buylist(sd, &item_list);
- do { if (( (item_list)._max_ ) > 0) { (iMalloc->free((( (item_list)._data_ )),"../../../server-code/src/map/clif.c", 10568, __func__)); ( (item_list)._data_ ) =
-# 10568 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 10568 "../../../server-code/src/map/clif.c"
- ; ( (item_list)._max_ ) = 0; ( (item_list)._len_ ) = 0; } } while(
-# 10568 "../../../server-code/src/map/clif.c" 3 4
- 0
-# 10568 "../../../server-code/src/map/clif.c"
- );
- }
-
- sd->npc_shopid = 0;
-
- clif->npc_buy_result(sd, result);
-}
-
-
-
-
-
-
-void clif_npc_sell_result(struct map_session_data* sd, unsigned char result) {
- int fd;
-
- do { if (((void)(sd),
-# 10584 "../../../server-code/src/map/clif.c" 3 4
-0
-# 10584 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- fd = sd->fd;
- WFIFOHEAD(fd,packet_db[0xcb].len);
- WFIFOW(fd,0) = 0xcb;
- WFIFOB(fd,2) = result;
- WFIFOSET(fd,packet_db[0xcb].len);
-}
-
-void clif_parse_NpcSellListSend(int fd,struct map_session_data *sd) __attribute__((nonnull (2)));
-
-
-void clif_parse_NpcSellListSend(int fd,struct map_session_data *sd)
-{
- int fail=0,n;
-
- n = ((int)RFIFOW(fd,2)-4) /4;
-
- do { if (( (n >= 0) ?
-# 10601 "../../../server-code/src/map/clif.c" 3 4
-0
-# 10601 "../../../server-code/src/map/clif.c"
-: (nullpo->assert_report("../../../server-code/src/map/clif.c", 10601, __func__, "n >= 0", "failed assertion"),
-# 10601 "../../../server-code/src/map/clif.c" 3 4
-1
-# 10601 "../../../server-code/src/map/clif.c"
-) )) return; } while(0);
-
- if (sd->state.trading || !sd->npc_shopid) {
- fail = 1;
- } else {
- struct itemlist item_list = { 0 };
- int i;
-
- memset(&(item_list), 0, sizeof(item_list));
- do { int _empty_ = ( (item_list)._max_ )-( (item_list)._len_ ); if ((n) > _empty_) { while ((n) > _empty_) _empty_ += (1); do { if ((_empty_+( (item_list)._len_ )) > ( (item_list)._max_ )) { if (( (item_list)._max_ ) == 0) ( (item_list)._data_ ) = (iMalloc->malloc(((_empty_+( (item_list)._len_ ))*sizeof(( ( ( (item_list)._data_ )[0] ) ))),"../../../server-code/src/map/clif.c", 10610, __func__)); else ( (item_list)._data_ ) = (iMalloc->realloc((( (item_list)._data_ )),((_empty_+( (item_list)._len_ ))*sizeof(( ( ( (item_list)._data_ )[0] ) ))),"../../../server-code/src/map/clif.c", 10610, __func__)); memset(( (item_list)._data_ )+( (item_list)._len_ ), 0, (( (item_list)._max_ )-( (item_list)._len_ ))*sizeof(( ( ( (item_list)._data_ )[0] ) ))); ( (item_list)._max_ ) = (_empty_+( (item_list)._len_ )); } else if ((_empty_+( (item_list)._len_ )) == 0 && ( (item_list)._max_ ) > 0) { (iMalloc->free((( (item_list)._data_ )),"../../../server-code/src/map/clif.c", 10610, __func__)); ( (item_list)._data_ ) =
-# 10610 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 10610 "../../../server-code/src/map/clif.c"
- ; ( (item_list)._max_ ) = 0; ( (item_list)._len_ ) = 0; } else if ((_empty_+( (item_list)._len_ )) < ( (item_list)._max_ )) { ( (item_list)._data_ ) = (iMalloc->realloc((( (item_list)._data_ )),((_empty_+( (item_list)._len_ ))*sizeof(( ( ( (item_list)._data_ )[0] ) ))),"../../../server-code/src/map/clif.c", 10610, __func__)); ( (item_list)._max_ ) = (_empty_+( (item_list)._len_ )); if ((_empty_+( (item_list)._len_ )) - ( (item_list)._len_ ) > 0) ( (item_list)._len_ ) = (_empty_+( (item_list)._len_ )); } } while(
-# 10610 "../../../server-code/src/map/clif.c" 3 4
- 0
-# 10610 "../../../server-code/src/map/clif.c"
- ); } } while(
-# 10610 "../../../server-code/src/map/clif.c" 3 4
- 0
-# 10610 "../../../server-code/src/map/clif.c"
- );
-
- for (i = 0; i < n; i++) {
- struct itemlist_entry entry = { 0 };
-
- entry.id = (int)RFIFOW(fd, 4 + 4 * i) - 2;
- entry.amount = RFIFOW(fd, 4 + 4 * i + 2);
-
- do { ( ( (item_list)._data_ )[( (item_list)._len_ )] ) = (entry); ++( (item_list)._len_ ); }while(
-# 10618 "../../../server-code/src/map/clif.c" 3 4
- 0
-# 10618 "../../../server-code/src/map/clif.c"
- );
- }
- fail = npc->selllist(sd, &item_list);
-
- do { if (( (item_list)._max_ ) > 0) { (iMalloc->free((( (item_list)._data_ )),"../../../server-code/src/map/clif.c", 10622, __func__)); ( (item_list)._data_ ) =
-# 10622 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 10622 "../../../server-code/src/map/clif.c"
- ; ( (item_list)._max_ ) = 0; ( (item_list)._len_ ) = 0; } } while(
-# 10622 "../../../server-code/src/map/clif.c" 3 4
- 0
-# 10622 "../../../server-code/src/map/clif.c"
- );
- }
-
- sd->npc_shopid = 0;
-
- clif->npc_sell_result(sd, fail);
-}
-
-void clif_parse_CreateChatRoom(int fd, struct map_session_data* sd) __attribute__((nonnull (2)));
-
-
-
-
-
-void clif_parse_CreateChatRoom(int fd, struct map_session_data* sd)
-{
- int len = RFIFOW(fd,2)-15;
- int limit = RFIFOW(fd,4);
-
-# 10640 "../../../server-code/src/map/clif.c" 3 4
-_Bool
-# 10640 "../../../server-code/src/map/clif.c"
- pub = (RFIFOB(fd,6) != 0);
- const char *password = RFIFOP(fd,7);
- const char *title = RFIFOP(fd,15);
- char s_password[(8 + 1)];
- char s_title[(36 + 1)];
-
- if (( (&sd->sc)->data[SC_NOCHAT] && (&sd->sc)->data[SC_NOCHAT]->val1&(MANNER_NOROOM) ))
- return;
- if(battle_config.basic_skill_check && pc->checkskill(sd,NV_BASIC) < 4) {
- clif->skill_fail(sd,1,USESKILL_FAIL_LEVEL,3);
- return;
- }
- if( npc->isnear(&sd->bl) ) {
-
-
-
-
- clif->skill_fail(sd,1,USESKILL_FAIL_THERE_ARE_NPC_AROUND,0);
- return;
- }
-
- if( len <= 0 )
- return;
-
- (strlib->safestrncpy_((s_password),(password),((8 + 1))));
- (strlib->safestrncpy_((s_title),(title),((((len+1) < ((36 + 1))) ? (len+1) : ((36 + 1))))));
-
- chat->create_pc_chat(sd, s_title, s_password, limit, pub);
-}
-
-void clif_parse_ChatAddMember(int fd, struct map_session_data* sd) __attribute__((nonnull (2)));
-
-
-void clif_parse_ChatAddMember(int fd, struct map_session_data* sd)
-{
- int chatid = RFIFOL(fd,2);
- const char *password = RFIFOP(fd,6);
-
- chat->join(sd,chatid,password);
-}
-
-void clif_parse_ChatRoomStatusChange(int fd, struct map_session_data* sd) __attribute__((nonnull (2)));
-
-
-
-
-
-void clif_parse_ChatRoomStatusChange(int fd, struct map_session_data* sd)
-{
- int len = RFIFOW(fd,2)-15;
- int limit = RFIFOW(fd,4);
-
-# 10691 "../../../server-code/src/map/clif.c" 3 4
-_Bool
-# 10691 "../../../server-code/src/map/clif.c"
- pub = (RFIFOB(fd,6) != 0);
- const char *password = RFIFOP(fd,7);
- const char *title = RFIFOP(fd,15);
- char s_password[(8 + 1)];
- char s_title[(36 + 1)];
-
- if( len <= 0 )
- return;
-
- (strlib->safestrncpy_((s_password),(password),((8 + 1))));
- (strlib->safestrncpy_((s_title),(title),((((len+1) < ((36 + 1))) ? (len+1) : ((36 + 1))))));
-
- chat->change_status(sd, s_title, s_password, limit, pub);
-}
-
-void clif_parse_ChangeChatOwner(int fd, struct map_session_data* sd) __attribute__((nonnull (2)));
-
-
-
-
-
-void clif_parse_ChangeChatOwner(int fd, struct map_session_data* sd)
-{
- chat->change_owner(sd, RFIFOP(fd,6));
-}
-
-void clif_parse_KickFromChat(int fd,struct map_session_data *sd) __attribute__((nonnull (2)));
-
-
-void clif_parse_KickFromChat(int fd,struct map_session_data *sd)
-{
- chat->kick(sd, RFIFOP(fd,2));
-}
-
-void clif_parse_ChatLeave(int fd, struct map_session_data* sd) __attribute__((nonnull (2)));
-
-
-void clif_parse_ChatLeave(int fd, struct map_session_data* sd)
-{
- chat->leave(sd,
-# 10730 "../../../server-code/src/map/clif.c" 3 4
- 0
-# 10730 "../../../server-code/src/map/clif.c"
- );
-}
-
-
-
-
-void clif_noask_sub(struct map_session_data *src, struct map_session_data *target, int type) {
- const char* msg;
- char output[256];
- do { if (((void)(src),
-# 10739 "../../../server-code/src/map/clif.c" 3 4
-0
-# 10739 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- msg = atcommand->msgsd((src),(392));
- clif->disp_message( &(src)->bl, (msg), (strlen(msg)), SELF );
-
- snprintf(output, 256, atcommand->msgsd((target),(393+type)), src->status.name, 256);
- clif->disp_message( &(target)->bl, (output), (strlen(output)), SELF );
-}
-
-void clif_parse_TradeRequest(int fd,struct map_session_data *sd) __attribute__((nonnull (2)));
-
-
-void clif_parse_TradeRequest(int fd,struct map_session_data *sd) {
- struct map_session_data *t_sd;
-
- t_sd = map->id2sd(RFIFOL(fd,2));
-
- if(!sd->chatID && ( (sd)->npc_id || (sd)->state.vending || (sd)->state.buyingstore || (sd)->chatID || ((sd)->sc.opt1 && (sd)->sc.opt1 != OPT1_BURNING) || (sd)->state.trading || (sd)->state.storage_flag || (sd)->state.prevend ))
- return;
-
-
- if(t_sd && t_sd->state.noask) {
- clif->noask_sub(sd, t_sd, 0);
- return;
- }
-
- if( battle_config.basic_skill_check && pc->checkskill(sd,NV_BASIC) < 1) {
- clif->skill_fail(sd,1,USESKILL_FAIL_LEVEL,0);
- return;
- }
-
- trade->request(sd,t_sd);
-}
-
-void clif_parse_TradeAck(int fd,struct map_session_data *sd) __attribute__((nonnull (2)));
-
-
-
-
-
-void clif_parse_TradeAck(int fd,struct map_session_data *sd)
-{
- trade->ack(sd,RFIFOB(fd,2));
-}
-
-void clif_parse_TradeAddItem(int fd,struct map_session_data *sd) __attribute__((nonnull (2)));
-
-
-void clif_parse_TradeAddItem(int fd,struct map_session_data *sd)
-{
- short index = RFIFOW(fd,2);
- int amount = RFIFOL(fd,4);
-
- if( index == 0 )
- trade->addzeny(sd, amount);
- else
- trade->additem(sd, index, (short)amount);
-}
-
-void clif_parse_TradeOk(int fd,struct map_session_data *sd) __attribute__((nonnull (2)));
-
-
-void clif_parse_TradeOk(int fd,struct map_session_data *sd)
-{
- trade->ok(sd);
-}
-
-void clif_parse_TradeCancel(int fd,struct map_session_data *sd) __attribute__((nonnull (2)));
-
-
-void clif_parse_TradeCancel(int fd,struct map_session_data *sd)
-{
- trade->cancel(sd);
-}
-
-void clif_parse_TradeCommit(int fd,struct map_session_data *sd) __attribute__((nonnull (2)));
-
-
-void clif_parse_TradeCommit(int fd,struct map_session_data *sd)
-{
- trade->commit(sd);
-}
-
-void clif_parse_StopAttack(int fd,struct map_session_data *sd) __attribute__((nonnull (2)));
-
-
-void clif_parse_StopAttack(int fd,struct map_session_data *sd)
-{
- (unit->stop_attack(&(sd)->bl));
-}
-
-void clif_parse_PutItemToCart(int fd,struct map_session_data *sd) __attribute__((nonnull (2)));
-
-
-void clif_parse_PutItemToCart(int fd,struct map_session_data *sd) {
- int flag = 0;
- if (( (sd)->npc_id || (sd)->state.vending || (sd)->state.buyingstore || (sd)->state.trading ))
- return;
- if (!( (sd)->sc.data[SC_PUSH_CART] ))
- return;
- if ( (flag = pc->putitemtocart(sd,RFIFOW(fd,2)-2,RFIFOL(fd,4))) ) {
- clif->dropitem(sd, RFIFOW(fd,2)-2,0);
- clif->cart_additem_ack(sd,flag == 1?0x0:0x1);
- }
-}
-
-void clif_parse_GetItemFromCart(int fd,struct map_session_data *sd) __attribute__((nonnull (2)));
-
-
-void clif_parse_GetItemFromCart(int fd,struct map_session_data *sd)
-{
- if (!( (sd)->sc.data[SC_PUSH_CART] ))
- return;
- pc->getitemfromcart(sd,RFIFOW(fd,2)-2,RFIFOL(fd,4));
-}
-
-void clif_parse_RemoveOption(int fd,struct map_session_data *sd) __attribute__((nonnull (2)));
-
-
-void clif_parse_RemoveOption(int fd,struct map_session_data *sd)
-{
- if (( (sd)->sc.option&(OPTION_RIDING) ) || ( (sd)->sc.option&OPTION_FALCON ) || ( (sd)->sc.option&OPTION_DRAGON ) || ( (sd)->sc.option&OPTION_MADOGEAR )) {
-
- pc->setoption(sd,sd->sc.option&~(OPTION_RIDING|OPTION_FALCON|OPTION_DRAGON|OPTION_MADOGEAR));
- } else {
-
- if (sd->sc.data[SC_PUSH_CART])
- pc->setcart(sd,0);
-
-
-
- }
-}
-
-void clif_parse_ChangeCart(int fd,struct map_session_data *sd) __attribute__((nonnull (2)));
-
-
-void clif_parse_ChangeCart(int fd,struct map_session_data *sd)
-{
- int type;
-
- if( pc->checkskill(sd, MC_CHANGECART) < 1 )
- return;
-
-
- if( sd->npc_id || sd->state.workinprogress&1 ){
- clif->msgtable(sd, MSG_NPC_WORK_IN_PROGRESS);
- return;
- }
-
-
- type = RFIFOW(fd,2);
-
- if( (type == 9 && sd->status.base_level > 131) ||
- (type == 8 && sd->status.base_level > 121) ||
- (type == 7 && sd->status.base_level > 111) ||
- (type == 6 && sd->status.base_level > 101) ||
- (type == 5 && sd->status.base_level > 90) ||
- (type == 4 && sd->status.base_level > 80) ||
- (type == 3 && sd->status.base_level > 65) ||
- (type == 2 && sd->status.base_level > 40) ||
- (type == 1))
-
-
-
-
-
-
-
- pc->setcart(sd,type);
-}
-
-
-
-void clif_parse_SelectCart(int fd, struct map_session_data *sd)
-{
-# 10928 "../../../server-code/src/map/clif.c"
-}
-
-void clif_parse_StatusUp(int fd,struct map_session_data *sd) __attribute__((nonnull (2)));
-
-
-
-
-
-
-
-void clif_parse_StatusUp(int fd,struct map_session_data *sd) {
- int increase_amount;
-
- increase_amount = RFIFOB(fd,4);
- if( increase_amount < 0 )
- {
- (showmsg->showDebug(("clif_parse_StatusUp: Negative 'increase' value sent by client! (fd: %d, value: %d)\n"), fd, increase_amount))
- ;
- }
- pc->statusup(sd, RFIFOW(fd,2), increase_amount);
-}
-
-void clif_parse_SkillUp(int fd,struct map_session_data *sd) __attribute__((nonnull (2)));
-
-
-void clif_parse_SkillUp(int fd,struct map_session_data *sd)
-{
- pc->skillup(sd,RFIFOW(fd,2));
-}
-
-void clif_parse_UseSkillToId_homun(struct homun_data *hd, struct map_session_data *sd, int64 tick, uint16 skill_id, uint16 skill_lv, int target_id) {
- int lv;
-
- do { if (((void)(sd),
-# 10961 "../../../server-code/src/map/clif.c" 3 4
-0
-# 10961 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- if( !hd )
- return;
- if (skill->not_ok_hom(skill_id, hd)){
- clif->emotion(&hd->bl, E_DOTS);
- return;
- }
- if (hd->bl.id != target_id && skill->get_inf(skill_id)&INF_SELF_SKILL)
- target_id = hd->bl.id;
- if (hd->ud.skilltimer != (-1)) {
- if (skill_id != SA_CASTCANCEL && skill_id != SO_SPELLFIST) return;
- }
- else if (((tick)-(hd->ud.canact_tick)) < 0){
- clif->emotion(&hd->bl, E_DOTS);
- if (hd->master)
- clif->skill_fail(hd->master, skill_id, USESKILL_FAIL_SKILLINTERVAL, 0);
- return;
-
- }
-
- lv = homun->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);
-}
-
-void clif_parse_UseSkillToPos_homun(struct homun_data *hd, struct map_session_data *sd, int64 tick, uint16 skill_id, uint16 skill_lv, short x, short y, int skillmoreinfo) {
- int lv;
- do { if (((void)(sd),
-# 10990 "../../../server-code/src/map/clif.c" 3 4
-0
-# 10990 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- if( !hd )
- return;
- if (skill->not_ok_hom(skill_id, hd)){
- clif->emotion(&hd->bl, E_DOTS);
- return;
- }
- if ( hd->ud.skilltimer != (-1) ) {
- if ( skill_id != SA_CASTCANCEL && skill_id != SO_SPELLFIST ) return;
-
- } else if ( ((tick)-(hd->ud.canact_tick)) < 0 ) {
- clif->emotion(&hd->bl, E_DOTS);
- if ( hd->master )
- clif->skill_fail(hd->master, skill_id, USESKILL_FAIL_SKILLINTERVAL, 0);
- return;
- }
-
- if( hd->sc.data[SC_BASILICA] )
- return;
- lv = homun->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);
-}
-
-void clif_parse_UseSkillToId_mercenary(struct mercenary_data *md, struct map_session_data *sd, int64 tick, uint16 skill_id, uint16 skill_lv, int target_id) {
- int lv;
-
- do { if (((void)(sd),
-# 11019 "../../../server-code/src/map/clif.c" 3 4
-0
-# 11019 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- if( !md )
- return;
- if( skill->not_ok_mercenary(skill_id, md) )
- return;
- if( md->bl.id != target_id && skill->get_inf(skill_id)&INF_SELF_SKILL )
- target_id = md->bl.id;
- if( md->ud.skilltimer != (-1) ) {
- if( skill_id != SA_CASTCANCEL && skill_id != SO_SPELLFIST ) return;
- } else if( ((tick)-(md->ud.canact_tick)) < 0 )
- return;
-
- 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);
-}
-
-void clif_parse_UseSkillToPos_mercenary(struct mercenary_data *md, struct map_session_data *sd, int64 tick, uint16 skill_id, uint16 skill_lv, short x, short y, int skillmoreinfo) {
- int lv;
- do { if (((void)(sd),
-# 11040 "../../../server-code/src/map/clif.c" 3 4
-0
-# 11040 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- if( !md )
- return;
- if( skill->not_ok_mercenary(skill_id, md) )
- return;
- if( md->ud.skilltimer != (-1) )
- return;
- if( ((tick)-(md->ud.canact_tick)) < 0 ) {
- clif->skill_fail(md->master, skill_id, USESKILL_FAIL_SKILLINTERVAL, 0);
- return;
- }
-
- if( md->sc.data[SC_BASILICA] )
- return;
- 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);
-}
-
-void clif_parse_UseSkillToId(int fd, struct map_session_data *sd) __attribute__((nonnull (2)));
-
-
-
-
-void clif_parse_UseSkillToId(int fd, struct map_session_data *sd)
-{
- uint16 skill_id, skill_lv;
- int tmp, target_id;
- int64 tick = timer->gettick();
-
- skill_lv = RFIFOW(fd,packet_db[RFIFOW(fd,0)].pos[0]);
- skill_id = RFIFOW(fd,packet_db[RFIFOW(fd,0)].pos[1]);
- target_id = RFIFOL(fd,packet_db[RFIFOW(fd,0)].pos[2]);
-
- if( skill_lv < 1 ) skill_lv = 1;
-
- tmp = skill->get_inf(skill_id);
- if (tmp&INF_GROUND_SKILL || !tmp)
- return;
-
- if( skill_id >= 8001 && skill_id < 8001 + 43 ) {
- clif->pUseSkillToId_homun(sd->hd, sd, tick, skill_id, skill_lv, target_id);
- return;
- }
-
- if( skill_id >= 8201 && skill_id < 8201 + 40 ) {
- clif->pUseSkillToId_mercenary(sd->md, sd, tick, skill_id, skill_lv, target_id);
- return;
- }
-
-
- pc->update_idle_time(sd, BCIDLE_USESKILLTOID);
-
- if( sd->npc_id || sd->state.workinprogress&1 ){
-
- clif->msgtable(sd, MSG_NPC_WORK_IN_PROGRESS);
-
- return;
- }
-
- if( ( (sd)->npc_id || (sd)->state.vending || (sd)->state.buyingstore || (sd)->chatID || ((sd)->sc.opt1 && (sd)->sc.opt1 != OPT1_BURNING) || (sd)->state.trading || (sd)->state.storage_flag || (sd)->state.prevend )
- && skill_id != RK_REFRESH
- && !(skill_id == SR_GENTLETOUCH_CURE && (sd->sc.opt1 == OPT1_STONE || sd->sc.opt1 == OPT1_FREEZE || sd->sc.opt1 == OPT1_STUN))
- && (sd->state.storage_flag != STORAGE_FLAG_CLOSED && !(tmp&INF_SELF_SKILL))
- )
- return;
-
- if( ( (sd)->vd.dead_sit == 2 ) )
- return;
-
- if( skill->not_ok(skill_id, sd) )
- return;
-
- if( sd->bl.id != target_id && tmp&INF_SELF_SKILL )
- target_id = sd->bl.id;
-
- if( target_id < 0 && -target_id == sd->bl.id )
- target_id = sd->bl.id;
-
- if( sd->ud.skilltimer != (-1) ) {
- if( skill_id != SA_CASTCANCEL && skill_id != SO_SPELLFIST )
- return;
- } else if( ((tick)-(sd->ud.canact_tick)) < 0 ) {
- if( sd->skillitem != skill_id ) {
- clif->skill_fail(sd, skill_id, USESKILL_FAIL_SKILLINTERVAL, 0);
- return;
- }
- }
-
- if( sd->sc.option&OPTION_COSTUME )
- return;
-
- if( sd->sc.data[SC_BASILICA] && (skill_id != HP_BASILICA || sd->sc.data[SC_BASILICA]->val4 != sd->bl.id) )
- return;
-
- if( sd->menuskill_id ) {
- if( sd->menuskill_id == SA_TAMINGMONSTER ) {
- ((sd)->menuskill_id = (sd)->menuskill_val = (sd)->menuskill_val2 = 0);
- } else if( sd->menuskill_id != SA_AUTOSPELL )
- return;
- }
- if( sd->skillitem == skill_id ) {
- if( skill_lv != sd->skillitemlv )
- skill_lv = sd->skillitemlv;
- if( !(tmp&INF_SELF_SKILL) )
- pc->delinvincibletimer(sd);
- unit->skilluse_id(&sd->bl, target_id, skill_id, skill_lv);
- return;
- }
-
- sd->skillitem = sd->skillitemlv = 0;
-
- if( skill_id >= GD_SKILLBASE ) {
- if( sd->state.gmaster_flag )
- skill_lv = guild->checkskill(sd->guild, skill_id);
- else
- skill_lv = 0;
- } else {
- tmp = pc->checkskill(sd, skill_id);
- if( skill_lv > tmp )
- skill_lv = tmp;
- }
-
- pc->delinvincibletimer(sd);
-
- if( skill_lv )
- unit->skilluse_id(&sd->bl, target_id, skill_id, skill_lv);
-}
-
-
-
-
-void clif_parse_UseSkillToPosSub(int fd, struct map_session_data *sd, uint16 skill_lv, uint16 skill_id, short x, short y, int skillmoreinfo)
-{
- int64 tick = timer->gettick();
-
- do { if (((void)(sd),
-# 11178 "../../../server-code/src/map/clif.c" 3 4
-0
-# 11178 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- if( !(skill->get_inf(skill_id)&INF_GROUND_SKILL) )
- return;
-
- if( skill_id >= 8001 && skill_id < 8001 + 43 ) {
- clif->pUseSkillToPos_homun(sd->hd, sd, tick, skill_id, skill_lv, x, y, skillmoreinfo);
- return;
- }
-
- if( skill_id >= 8201 && skill_id < 8201 + 40 ) {
- clif->pUseSkillToPos_mercenary(sd->md, sd, tick, skill_id, skill_lv, x, y, skillmoreinfo);
- return;
- }
-
-
- if( sd->state.workinprogress&1 ){
- clif->msgtable(sd, MSG_NPC_WORK_IN_PROGRESS);
- return;
- }
-
-
-
- pc->update_idle_time(sd, BCIDLE_USESKILLTOPOS);
-
- if( skill->not_ok(skill_id, sd) )
- return;
- if( skillmoreinfo != -1 ) {
- if( ( (sd)->vd.dead_sit == 2 ) ) {
- clif->skill_fail(sd, skill_id, USESKILL_FAIL_LEVEL, 0);
- return;
- }
-
- (strlib->safestrncpy_((sd->message),(RFIFOP(fd,skillmoreinfo)),((79 + 1))));
- }
-
- if( sd->ud.skilltimer != (-1) )
- return;
-
- if( ((tick)-(sd->ud.canact_tick)) < 0 ) {
- if( sd->skillitem != skill_id ) {
- clif->skill_fail(sd, skill_id, USESKILL_FAIL_SKILLINTERVAL, 0);
- return;
- }
- }
-
- if( sd->sc.option&OPTION_COSTUME )
- return;
-
- if( sd->sc.data[SC_BASILICA] && (skill_id != HP_BASILICA || sd->sc.data[SC_BASILICA]->val4 != sd->bl.id) )
- return;
-
- if( sd->menuskill_id ) {
- if( sd->menuskill_id == SA_TAMINGMONSTER ) {
- ((sd)->menuskill_id = (sd)->menuskill_val = (sd)->menuskill_val2 = 0);
- } else if( sd->menuskill_id != SA_AUTOSPELL )
- return;
- }
-
- pc->delinvincibletimer(sd);
-
- 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, skill_id)) > 0 ) {
- if( skill_lv > lv )
- skill_lv = lv;
- unit->skilluse_pos(&sd->bl, x, y, skill_id,skill_lv);
- }
- }
-}
-
-void clif_parse_UseSkillToPos(int fd, struct map_session_data *sd) __attribute__((nonnull (2)));
-
-
-
-
-void clif_parse_UseSkillToPos(int fd, struct map_session_data *sd)
-{
- if (( (sd)->npc_id || (sd)->state.vending || (sd)->state.buyingstore || (sd)->chatID || ((sd)->sc.opt1 && (sd)->sc.opt1 != OPT1_BURNING) || (sd)->state.trading || (sd)->state.storage_flag || (sd)->state.prevend ))
- return;
- if (( (sd)->vd.dead_sit == 2 ))
- return;
-
- clif->pUseSkillToPosSub(fd, sd,
- RFIFOW(fd,packet_db[RFIFOW(fd,0)].pos[0]),
- RFIFOW(fd,packet_db[RFIFOW(fd,0)].pos[1]),
- RFIFOW(fd,packet_db[RFIFOW(fd,0)].pos[2]),
- RFIFOW(fd,packet_db[RFIFOW(fd,0)].pos[3]),
- -1
- );
-}
-
-void clif_parse_UseSkillToPosMoreInfo(int fd, struct map_session_data *sd) __attribute__((nonnull (2)));
-
-
-
-
-void clif_parse_UseSkillToPosMoreInfo(int fd, struct map_session_data *sd)
-{
- if (( (sd)->npc_id || (sd)->state.vending || (sd)->state.buyingstore || (sd)->chatID || ((sd)->sc.opt1 && (sd)->sc.opt1 != OPT1_BURNING) || (sd)->state.trading || (sd)->state.storage_flag || (sd)->state.prevend ))
- return;
- if (( (sd)->vd.dead_sit == 2 ))
- return;
-
- clif->pUseSkillToPosSub(fd, sd,
- RFIFOW(fd,packet_db[RFIFOW(fd,0)].pos[0]),
- RFIFOW(fd,packet_db[RFIFOW(fd,0)].pos[1]),
- RFIFOW(fd,packet_db[RFIFOW(fd,0)].pos[2]),
- RFIFOW(fd,packet_db[RFIFOW(fd,0)].pos[3]),
- packet_db[RFIFOW(fd,0)].pos[4]
- );
-}
-
-void clif_parse_UseSkillMap(int fd, struct map_session_data* sd) __attribute__((nonnull (2)));
-
-
-void clif_parse_UseSkillMap(int fd, struct map_session_data* sd)
-{
- uint16 skill_id = RFIFOW(fd,2);
- char map_name[(11 + 1)];
-
- mapindex->getmapname(RFIFOP(fd,4), map_name);
- sd->state.workinprogress = 0;
-
- if(skill_id != sd->menuskill_id)
- return;
-
-
- if (( (sd)->npc_id || (sd)->state.vending || (sd)->state.buyingstore || (sd)->chatID || ((sd)->sc.opt1 && (sd)->sc.opt1 != OPT1_BURNING) || (sd)->state.trading || (sd)->state.storage_flag || (sd)->state.prevend ) && (sd->state.storage_flag == STORAGE_FLAG_CLOSED && skill_id != AL_TELEPORT)) {
- ((sd)->menuskill_id = (sd)->menuskill_val = (sd)->menuskill_val2 = 0);
- return;
- }
-
- pc->delinvincibletimer(sd);
- skill->castend_map(sd,skill_id,map_name);
-}
-
-void clif_parse_RequestMemo(int fd,struct map_session_data *sd) __attribute__((nonnull (2)));
-
-
-void clif_parse_RequestMemo(int fd,struct map_session_data *sd)
-{
- if (!( (sd)->state.dead_sit == 1 ))
- pc->memo(sd,-1);
-}
-
-void clif_parse_ProduceMix(int fd,struct map_session_data *sd) __attribute__((nonnull (2)));
-
-
-void clif_parse_ProduceMix(int fd,struct map_session_data *sd)
-{
- switch( sd->menuskill_id ) {
- case -1:
- case AM_PHARMACY:
- case RK_RUNEMASTERY:
- case GC_RESEARCHNEWPOISON:
- break;
- default:
- return;
- }
- if (( (sd)->npc_id || (sd)->state.vending || (sd)->state.buyingstore || (sd)->state.trading )) {
-
- clif->skill_fail(sd,sd->ud.skill_id,USESKILL_FAIL_LEVEL,0);
- ((sd)->menuskill_id = (sd)->menuskill_val = (sd)->menuskill_val2 = 0);
- return;
- }
- if( skill->can_produce_mix(sd,RFIFOW(fd,2),sd->menuskill_val, 1) )
- skill->produce_mix(sd,0,RFIFOW(fd,2),RFIFOW(fd,4),RFIFOW(fd,6),RFIFOW(fd,8), 1);
- ((sd)->menuskill_id = (sd)->menuskill_val = (sd)->menuskill_val2 = 0);
-}
-
-void clif_parse_Cooking(int fd,struct map_session_data *sd) __attribute__((nonnull (2)));
-# 11363 "../../../server-code/src/map/clif.c"
-void clif_parse_Cooking(int fd,struct map_session_data *sd) {
- int type = RFIFOW(fd,2);
- int nameid = RFIFOW(fd,4);
- int amount = sd->menuskill_val2?sd->menuskill_val2:1;
- if( type == 6 && sd->menuskill_id != GN_MIX_COOKING && sd->menuskill_id != GN_S_PHARMACY )
- return;
-
- if (( (sd)->npc_id || (sd)->state.vending || (sd)->state.buyingstore || (sd)->state.trading )) {
-
- clif->skill_fail(sd,sd->ud.skill_id,USESKILL_FAIL_LEVEL,0);
- ((sd)->menuskill_id = (sd)->menuskill_val = (sd)->menuskill_val2 = 0);
- return;
- }
- if( skill->can_produce_mix(sd,nameid,sd->menuskill_val, amount) )
- skill->produce_mix(sd,(type>1?sd->menuskill_id:0),nameid,0,0,0,amount);
- ((sd)->menuskill_id = (sd)->menuskill_val = (sd)->menuskill_val2 = 0);
-}
-
-void clif_parse_RepairItem(int fd, struct map_session_data *sd) __attribute__((nonnull (2)));
-
-
-void clif_parse_RepairItem(int fd, struct map_session_data *sd)
-{
- if (sd->menuskill_id != BS_REPAIRWEAPON)
- return;
- if (( (sd)->npc_id || (sd)->state.vending || (sd)->state.buyingstore || (sd)->state.trading )) {
-
- clif->skill_fail(sd,sd->ud.skill_id,USESKILL_FAIL_LEVEL,0);
- ((sd)->menuskill_id = (sd)->menuskill_val = (sd)->menuskill_val2 = 0);
- return;
- }
- skill->repairweapon(sd,RFIFOW(fd,2));
- ((sd)->menuskill_id = (sd)->menuskill_val = (sd)->menuskill_val2 = 0);
-}
-
-void clif_parse_WeaponRefine(int fd, struct map_session_data *sd) __attribute__((nonnull (2)));
-
-
-void clif_parse_WeaponRefine(int fd, struct map_session_data *sd)
-{
- int idx;
-
- sd->state.prerefining = 0;
-
- if (sd->menuskill_id != WS_WEAPONREFINE)
- return;
- if (( (sd)->npc_id || (sd)->state.vending || (sd)->state.buyingstore || (sd)->state.trading )) {
-
- clif->skill_fail(sd,sd->ud.skill_id,USESKILL_FAIL_LEVEL,0);
- ((sd)->menuskill_id = (sd)->menuskill_val = (sd)->menuskill_val2 = 0);
- return;
- }
- idx = RFIFOL(fd,packet_db[RFIFOW(fd,0)].pos[0]);
- skill->weaponrefine(sd, idx-2);
- ((sd)->menuskill_id = (sd)->menuskill_val = (sd)->menuskill_val2 = 0);
-}
-
-void clif_parse_NpcSelectMenu(int fd,struct map_session_data *sd) __attribute__((nonnull (2)));
-
-
-
-
-
-
-
-void clif_parse_NpcSelectMenu(int fd,struct map_session_data *sd)
-{
- int npc_id = RFIFOL(fd,2);
- uint8 select = RFIFOB(fd,6);
-
- if( (select > sd->npc_menu && select != 0xff) || select == 0 ) {
-
-
-
- struct npc_data *nd = map->id2nd(npc_id);
- (showmsg->showWarning(("Invalid menu selection on npc %d:'%s' - got %d, valid range is [%d..%d] (player AID:%d, CID:%d, name:'%s')!\n"), npc_id, (nd)?nd->name:"invalid npc id", select, 1, sd->npc_menu, sd->bl.id, sd->status.char_id, sd->status.name));
- clif->GM_kick(
-# 11439 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 11439 "../../../server-code/src/map/clif.c"
- ,sd);
-
-
-
- return;
- }
-
- sd->npc_menu = select;
- npc->scriptcont(sd,npc_id,
-# 11447 "../../../server-code/src/map/clif.c" 3 4
- 0
-# 11447 "../../../server-code/src/map/clif.c"
- );
-}
-
-void clif_parse_NpcNextClicked(int fd,struct map_session_data *sd) __attribute__((nonnull (2)));
-
-
-void clif_parse_NpcNextClicked(int fd,struct map_session_data *sd)
-{
- npc->scriptcont(sd,RFIFOL(fd,2),
-# 11455 "../../../server-code/src/map/clif.c" 3 4
- 0
-# 11455 "../../../server-code/src/map/clif.c"
- );
-}
-
-void clif_parse_NpcAmountInput(int fd,struct map_session_data *sd) __attribute__((nonnull (2)));
-
-
-void clif_parse_NpcAmountInput(int fd,struct map_session_data *sd)
-{
- int npcid = RFIFOL(fd,2);
- int amount = RFIFOL(fd,6);
-
- if (amount >= 0)
- sd->npc_amount = amount;
- else
- sd->npc_amount = 0;
- npc->scriptcont(sd, npcid,
-# 11470 "../../../server-code/src/map/clif.c" 3 4
- 0
-# 11470 "../../../server-code/src/map/clif.c"
- );
-}
-
-void clif_parse_NpcStringInput(int fd, struct map_session_data* sd) __attribute__((nonnull (2)));
-
-
-void clif_parse_NpcStringInput(int fd, struct map_session_data* sd)
-{
- int message_len = RFIFOW(fd,2)-8;
- int npcid = RFIFOL(fd,4);
- const char *message = RFIFOP(fd,8);
-
- if( message_len <= 0 )
- return;
-
- (strlib->safestrncpy_((sd->npc_str),(message),((((message_len) < ((70 + 1))) ? (message_len) : ((70 + 1))))));
- npc->scriptcont(sd, npcid,
-# 11486 "../../../server-code/src/map/clif.c" 3 4
- 0
-# 11486 "../../../server-code/src/map/clif.c"
- );
-}
-
-void clif_parse_NpcCloseClicked(int fd,struct map_session_data *sd) __attribute__((nonnull (2)));
-
-
-void clif_parse_NpcCloseClicked(int fd,struct map_session_data *sd)
-{
- if (!sd->npc_id)
- return;
- sd->state.dialog = 0;
- npc->scriptcont(sd, RFIFOL(fd,2),
-# 11497 "../../../server-code/src/map/clif.c" 3 4
- 1
-# 11497 "../../../server-code/src/map/clif.c"
- );
-}
-
-void clif_parse_ItemIdentify(int fd,struct map_session_data *sd) __attribute__((nonnull (2)));
-
-
-
-
-void clif_parse_ItemIdentify(int fd,struct map_session_data *sd)
-{
- short idx = RFIFOW(fd,2);
-
- if (sd->menuskill_id != MC_IDENTIFY)
- return;
- if( idx == -1 ) {
- sd->state.workinprogress = 0;
- clif->item_identified(sd,idx-2,1);
- ((sd)->menuskill_id = (sd)->menuskill_val = (sd)->menuskill_val2 = 0);
- return;
- }
- skill->identify(sd,idx-2);
- ((sd)->menuskill_id = (sd)->menuskill_val = (sd)->menuskill_val2 = 0);
-}
-
-
-
-void clif_parse_OneClick_ItemIdentify(int fd, struct map_session_data *sd)
-{
- int cmd = RFIFOW(fd,0);
- short idx = RFIFOW(fd, packet_db[cmd].pos[0]) - 2;
- int n;
-
- if (idx < 0 || idx >= 100 || sd->inventory_data[idx] ==
-# 11529 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 11529 "../../../server-code/src/map/clif.c"
- || sd->status.inventory[idx].nameid <= 0)
- return;
-
- if ((n = pc->have_magnifier(sd) ) != (-1) &&
- pc->delitem(sd, n, 1, 0, DELITEM_NORMAL, LOG_TYPE_CONSUME) == 0)
- skill->identify(sd, idx);
-}
-
-void clif_parse_SelectArrow(int fd,struct map_session_data *sd) __attribute__((nonnull (2)));
-
-
-void clif_parse_SelectArrow(int fd,struct map_session_data *sd)
-{
- if (( (sd)->npc_id || (sd)->state.vending || (sd)->state.buyingstore || (sd)->state.trading )) {
-
- clif->skill_fail(sd,sd->ud.skill_id,USESKILL_FAIL_LEVEL,0);
- ((sd)->menuskill_id = (sd)->menuskill_val = (sd)->menuskill_val2 = 0);
- return;
- }
- switch( sd->menuskill_id ) {
- case AC_MAKINGARROW:
- skill->arrow_create(sd,RFIFOW(fd,2));
- break;
- case SA_CREATECON:
- skill->produce_mix(sd,SA_CREATECON,RFIFOW(fd,2),0,0,0, 1);
- break;
- case WL_READING_SB:
- skill->spellbook(sd,RFIFOW(fd,2));
- break;
- case GC_POISONINGWEAPON:
- skill->poisoningweapon(sd,RFIFOW(fd,2));
- break;
- case NC_MAGICDECOY:
- skill->magicdecoy(sd,RFIFOW(fd,2));
- break;
- }
-
- ((sd)->menuskill_id = (sd)->menuskill_val = (sd)->menuskill_val2 = 0);
-}
-
-void clif_parse_AutoSpell(int fd,struct map_session_data *sd) __attribute__((nonnull (2)));
-
-
-void clif_parse_AutoSpell(int fd,struct map_session_data *sd)
-{
- uint16 skill_id = RFIFOL(fd,2);
-
- sd->state.workinprogress = 0;
-
- if( sd->menuskill_id != SA_AUTOSPELL )
- return;
-
- if( !skill_id )
- return;
-
- skill->autospell(sd, skill_id);
- ((sd)->menuskill_id = (sd)->menuskill_val = (sd)->menuskill_val2 = 0);
-}
-
-void clif_parse_UseCard(int fd,struct map_session_data *sd) __attribute__((nonnull (2)));
-
-
-void clif_parse_UseCard(int fd,struct map_session_data *sd)
-{
- clif->use_card(sd,RFIFOW(fd,2)-2);
-}
-
-void clif_parse_InsertCard(int fd,struct map_session_data *sd) __attribute__((nonnull (2)));
-
-
-void clif_parse_InsertCard(int fd,struct map_session_data *sd)
-{
- pc->insert_card(sd,RFIFOW(fd,2)-2,RFIFOW(fd,4)-2);
-}
-
-void clif_parse_SolveCharName(int fd, struct map_session_data *sd) __attribute__((nonnull (2)));
-
-
-
-
-void clif_parse_SolveCharName(int fd, struct map_session_data *sd) {
- int charid;
-
- charid = RFIFOL(fd,packet_db[RFIFOW(fd,0)].pos[0]);
- map->reqnickdb(sd, charid);
-}
-
-void clif_parse_ResetChar(int fd, struct map_session_data *sd) __attribute__((nonnull (2)));
-
-
-
-
-
-
-void clif_parse_ResetChar(int fd, struct map_session_data *sd) {
- char cmd[15];
-
- if( RFIFOW(fd,2) )
- sprintf(cmd,"%cskreset",atcommand->at_symbol);
- else
- sprintf(cmd,"%cstreset",atcommand->at_symbol);
-
- atcommand->exec(fd, sd, cmd,
-# 11631 "../../../server-code/src/map/clif.c" 3 4
- 1
-# 11631 "../../../server-code/src/map/clif.c"
- );
-}
-
-void clif_parse_LocalBroadcast(int fd, struct map_session_data *sd) __attribute__((nonnull (2)));
-
-
-
-void clif_parse_LocalBroadcast(int fd, struct map_session_data *sd)
-{
- const char commandname[] = "lkami";
- char command[sizeof commandname + 2 + (255 + 1)] = "";
- int len = (int)RFIFOW(fd,2) - 4;
-
- if (len < 0)
- return;
-
- sprintf(command, "%c%s ", atcommand->at_symbol, commandname);
-
-
- if (len >= (int)(sizeof command - strlen(command)))
- len = (int)(sizeof command - strlen(command)) - 1;
-
- strncat(command, RFIFOP(fd,4), len);
- atcommand->exec(fd, sd, command,
-# 11654 "../../../server-code/src/map/clif.c" 3 4
- 1
-# 11654 "../../../server-code/src/map/clif.c"
- );
-}
-
-void clif_parse_MoveToKafra(int fd, struct map_session_data *sd) __attribute__((nonnull (2)));
-
-
-
-
-void clif_parse_MoveToKafra(int fd, struct map_session_data *sd)
-{
- int item_index, item_amount;
-
- if (( (sd)->npc_id || (sd)->state.vending || (sd)->state.buyingstore || (sd)->state.trading ))
- return;
-
- item_index = RFIFOW(fd,packet_db[RFIFOW(fd,0)].pos[0])-2;
- item_amount = RFIFOL(fd,packet_db[RFIFOW(fd,0)].pos[1]);
- if (item_index < 0 || item_index >= 100 || item_amount < 1)
- return;
-
- if (sd->state.storage_flag == STORAGE_FLAG_NORMAL)
- storage->add(sd, item_index, item_amount);
- else if (sd->state.storage_flag == STORAGE_FLAG_GUILD)
- gstorage->add(sd, item_index, item_amount);
-}
-
-void clif_parse_MoveFromKafra(int fd,struct map_session_data *sd) __attribute__((nonnull (2)));
-
-
-
-
-void clif_parse_MoveFromKafra(int fd,struct map_session_data *sd)
-{
- int item_index, item_amount;
-
- item_index = RFIFOW(fd,packet_db[RFIFOW(fd,0)].pos[0])-1;
- item_amount = RFIFOL(fd,packet_db[RFIFOW(fd,0)].pos[1]);
-
- if (sd->state.storage_flag == STORAGE_FLAG_NORMAL)
- storage->get(sd, item_index, item_amount);
- else if(sd->state.storage_flag == STORAGE_FLAG_GUILD)
- gstorage->get(sd, item_index, item_amount);
-}
-
-void clif_parse_MoveToKafraFromCart(int fd, struct map_session_data *sd) __attribute__((nonnull (2)));
-
-
-void clif_parse_MoveToKafraFromCart(int fd, struct map_session_data *sd)
-{
- if( sd->state.vending )
- return;
- if (!( (sd)->sc.data[SC_PUSH_CART] ))
- return;
-
- if (sd->state.storage_flag == STORAGE_FLAG_NORMAL)
- storage->addfromcart(sd, RFIFOW(fd,2) - 2, RFIFOL(fd,4));
- else if (sd->state.storage_flag == STORAGE_FLAG_GUILD)
- gstorage->addfromcart(sd, RFIFOW(fd,2) - 2, RFIFOL(fd,4));
-}
-
-void clif_parse_MoveFromKafraToCart(int fd, struct map_session_data *sd) __attribute__((nonnull (2)));
-
-
-void clif_parse_MoveFromKafraToCart(int fd, struct map_session_data *sd)
-{
- if( sd->state.vending )
- return;
- if (!( (sd)->sc.data[SC_PUSH_CART] ))
- return;
-
- if (sd->state.storage_flag == STORAGE_FLAG_NORMAL)
- storage->gettocart(sd, RFIFOW(fd,2)-1, RFIFOL(fd,4));
- else if (sd->state.storage_flag == STORAGE_FLAG_GUILD)
- gstorage->gettocart(sd, RFIFOW(fd,2)-1, RFIFOL(fd,4));
-}
-
-void clif_parse_CloseKafra(int fd, struct map_session_data *sd) __attribute__((nonnull (2)));
-
-
-void clif_parse_CloseKafra(int fd, struct map_session_data *sd)
-{
- if( sd->state.storage_flag == STORAGE_FLAG_NORMAL )
- storage->close(sd);
- else if( sd->state.storage_flag == STORAGE_FLAG_GUILD )
- gstorage->close(sd);
-}
-# 11749 "../../../server-code/src/map/clif.c"
-void clif_storagepassword(struct map_session_data* sd, short info)
-{
- int fd;
-
- do { if (((void)(sd),
-# 11753 "../../../server-code/src/map/clif.c" 3 4
-0
-# 11753 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- fd = sd->fd;
- WFIFOHEAD(fd,packet_db[0x23a].len);
- WFIFOW(fd,0) = 0x23a;
- WFIFOW(fd,2) = info;
- WFIFOSET(fd,packet_db[0x23a].len);
-}
-
-void clif_parse_StoragePassword(int fd, struct map_session_data *sd) __attribute__((nonnull (2)));
-
-
-
-
-
-
-void clif_parse_StoragePassword(int fd, struct map_session_data *sd)
-{
-
-}
-# 11783 "../../../server-code/src/map/clif.c"
-void clif_storagepassword_result(struct map_session_data* sd, short result, short error_count)
-{
- int fd;
-
- do { if (((void)(sd),
-# 11787 "../../../server-code/src/map/clif.c" 3 4
-0
-# 11787 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- fd = sd->fd;
- WFIFOHEAD(fd,packet_db[0x23c].len);
- WFIFOW(fd,0) = 0x23c;
- WFIFOW(fd,2) = result;
- WFIFOW(fd,4) = error_count;
- WFIFOSET(fd,packet_db[0x23c].len);
-}
-
-void clif_parse_CreateParty(int fd, struct map_session_data *sd) __attribute__((nonnull (2)));
-
-
-
-void clif_parse_CreateParty(int fd, struct map_session_data *sd)
-{
- char name[(23 + 1)];
-
- (strlib->safestrncpy_((name),(RFIFOP(fd,2)),((23 + 1))));
-
- if( map->list[sd->bl.m].flag.partylock ) {
-
- clif->message(fd, atcommand->msgfd((fd),(227)));
- return;
- }
- if( battle_config.basic_skill_check && pc->checkskill(sd,NV_BASIC) < 7 ) {
- clif->skill_fail(sd,1,USESKILL_FAIL_LEVEL,4);
- return;
- }
-
- party->create(sd,name,0,0);
-}
-
-void clif_parse_CreateParty2(int fd, struct map_session_data *sd) __attribute__((nonnull (2)));
-void clif_parse_CreateParty2(int fd, struct map_session_data *sd)
-{
- char name[(23 + 1)];
- int item1 = RFIFOB(fd,26);
- int item2 = RFIFOB(fd,27);
-
- (strlib->safestrncpy_((name),(RFIFOP(fd,2)),((23 + 1))));
-
- if( map->list[sd->bl.m].flag.partylock ) {
-
- clif->message(fd, atcommand->msgfd((fd),(227)));
- return;
- }
- if( battle_config.basic_skill_check && pc->checkskill(sd,NV_BASIC) < 7 ) {
- clif->skill_fail(sd,1,USESKILL_FAIL_LEVEL,4);
- return;
- }
-
- party->create(sd,name,item1,item2);
-}
-
-void clif_parse_PartyInvite(int fd, struct map_session_data *sd) __attribute__((nonnull (2)));
-
-
-
-void clif_parse_PartyInvite(int fd, struct map_session_data *sd) {
- struct map_session_data *t_sd;
-
- if(map->list[sd->bl.m].flag.partylock) {
-
- clif->message(fd, atcommand->msgfd((fd),(227)));
- return;
- }
-
- t_sd = map->id2sd(RFIFOL(fd,2));
-
- if(t_sd && t_sd->state.noask) {
- clif->noask_sub(sd, t_sd, 1);
- return;
- }
-
- party->invite(sd, t_sd);
-}
-
-void clif_parse_PartyInvite2(int fd, struct map_session_data *sd) __attribute__((nonnull (2)));
-void clif_parse_PartyInvite2(int fd, struct map_session_data *sd)
-{
- struct map_session_data *t_sd;
- char name[(23 + 1)];
-
- (strlib->safestrncpy_((name),(RFIFOP(fd,2)),((23 + 1))));
-
- if(map->list[sd->bl.m].flag.partylock) {
-
- clif->message(fd, atcommand->msgfd((fd),(227)));
- return;
- }
-
- t_sd = map->nick2sd(name);
-
- if(t_sd && t_sd->state.noask) {
- clif->noask_sub(sd, t_sd, 1);
- return;
- }
-
- party->invite(sd, t_sd);
-}
-
-void clif_parse_ReplyPartyInvite(int fd,struct map_session_data *sd) __attribute__((nonnull (2)));
-
-
-
-
-
-
-void clif_parse_ReplyPartyInvite(int fd,struct map_session_data *sd)
-{
- party->reply_invite(sd,RFIFOL(fd,2),RFIFOL(fd,6));
-}
-
-void clif_parse_ReplyPartyInvite2(int fd,struct map_session_data *sd) __attribute__((nonnull (2)));
-void clif_parse_ReplyPartyInvite2(int fd,struct map_session_data *sd)
-{
- party->reply_invite(sd,RFIFOL(fd,2),RFIFOB(fd,6));
-}
-
-void clif_parse_LeaveParty(int fd, struct map_session_data *sd) __attribute__((nonnull (2)));
-
-
-void clif_parse_LeaveParty(int fd, struct map_session_data *sd) {
- if(map->list[sd->bl.m].flag.partylock) {
-
- clif->message(fd, atcommand->msgfd((fd),(227)));
- return;
- }
- party->leave(sd);
-}
-
-void clif_parse_RemovePartyMember(int fd, struct map_session_data *sd) __attribute__((nonnull (2)));
-
-
-void clif_parse_RemovePartyMember(int fd, struct map_session_data *sd) {
- if(map->list[sd->bl.m].flag.partylock) {
-
- clif->message(fd, atcommand->msgfd((fd),(227)));
- return;
- }
- party->removemember(sd, RFIFOL(fd,2), RFIFOP(fd,6));
-}
-
-void clif_parse_PartyChangeOption(int fd, struct map_session_data *sd) __attribute__((nonnull (2)));
-
-
-
-void clif_parse_PartyChangeOption(int fd, struct map_session_data *sd)
-{
- struct party_data *p;
- int i;
-
- if( !sd->status.party_id )
- return;
-
- p = party->search(sd->status.party_id);
- if( p ==
-# 11943 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 11943 "../../../server-code/src/map/clif.c"
- )
- return;
-
- do { for ((i) = (0); (i) < (12); ++(i)) if (p->data[i].sd == sd) break; } while(
-# 11946 "../../../server-code/src/map/clif.c" 3 4
-0
-# 11946 "../../../server-code/src/map/clif.c"
-);
- if( i == 12 )
- return;
-
- if( !p->party.member[i].leader )
- return;
-
-
-
-
-
- party->changeoption(sd, RFIFOL(fd,2), ((RFIFOB(fd,6)?1:0)|(RFIFOB(fd,7)?2:0)));
-
-}
-
-void clif_parse_PartyMessage(int fd, struct map_session_data* sd) __attribute__((nonnull (2)));
-
-
-void clif_parse_PartyMessage(int fd, struct map_session_data* sd)
-{
- const char *text = RFIFOP(fd,4);
- int textlen = RFIFOW(fd,2) - 4;
-
- const char *name, *message;
- size_t namelen, messagelen;
-
-
- if( !clif->process_message(sd, 0, &name, &namelen, &message, &messagelen) )
- return;
-
- if( atcommand->exec(fd, sd, message,
-# 11976 "../../../server-code/src/map/clif.c" 3 4
- 1
-# 11976 "../../../server-code/src/map/clif.c"
- ) )
- return;
-
- if( !pc->can_talk(sd) )
- return;
-
- if (battle_config.min_chat_delay) {
- if (((sd->cantalk_tick)-(timer->gettick())) > 0)
- return;
- sd->cantalk_tick = timer->gettick() + battle_config.min_chat_delay;
- }
-
- pc->update_idle_time(sd, BCIDLE_CHAT);
-
- party->send_message(sd, text, textlen);
-}
-
-void clif_parse_PartyChangeLeader(int fd, struct map_session_data* sd) __attribute__((nonnull (2)));
-
-
-void clif_parse_PartyChangeLeader(int fd, struct map_session_data* sd) {
- party->changeleader(sd, map->id2sd(RFIFOL(fd,2)));
-}
-
-void clif_parse_PartyBookingRegisterReq(int fd, struct map_session_data* sd) __attribute__((nonnull (2)));
-
-
-
-
-
-void clif_parse_PartyBookingRegisterReq(int fd, struct map_session_data* sd)
-{
-
- short level = RFIFOW(fd,2);
- short mapid = RFIFOW(fd,4);
- short job[6];
- int i;
-
- for(i=0; i<6; i++)
- job[i] = RFIFOB(fd,6+i*2);
-
- party->booking_register(sd, level, mapid, job);
-
-
-
-}
-
-
-
-
-
-
-
-void clif_PartyBookingRegisterAck(struct map_session_data *sd, int flag)
-{
-
- int fd;
-
- do { if (((void)(sd),
-# 12034 "../../../server-code/src/map/clif.c" 3 4
-0
-# 12034 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- fd = sd->fd;
- WFIFOHEAD(fd,packet_db[0x803].len);
- WFIFOW(fd,0) = 0x803;
- WFIFOW(fd,2) = flag;
- WFIFOSET(fd,packet_db[0x803].len);
-
-
-
-}
-
-void clif_parse_PartyBookingSearchReq(int fd, struct map_session_data* sd) __attribute__((nonnull (2)));
-
-
-void clif_parse_PartyBookingSearchReq(int fd, struct map_session_data* sd)
-{
-
- short level = RFIFOW(fd,2);
- short mapid = RFIFOW(fd,4);
- short job = RFIFOW(fd,6);
- unsigned long lastindex = RFIFOL(fd,8);
- short resultcount = RFIFOW(fd,12);
-
- party->booking_search(sd, level, mapid, job, lastindex, resultcount);
-
-
-
-}
-
-
-
-
-
-
-void clif_PartyBookingSearchAck(int fd, struct party_booking_ad_info** results, int count,
-# 12068 "../../../server-code/src/map/clif.c" 3 4
- _Bool
-# 12068 "../../../server-code/src/map/clif.c"
- more_result)
-{
-
- int i, j;
- int size = sizeof(struct party_booking_ad_info);
- struct party_booking_ad_info *pb_ad;
- do { if (((void)(results),
-# 12074 "../../../server-code/src/map/clif.c" 3 4
-0
-# 12074 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- WFIFOHEAD(fd,size*count + 5);
- WFIFOW(fd,0) = 0x805;
- WFIFOW(fd,2) = size*count + 5;
- WFIFOB(fd,4) = more_result;
- for(i=0; i<count; i++)
- {
- pb_ad = results[i];
- WFIFOL(fd,i*size+5) = pb_ad->index;
- memcpy(WFIFOP(fd,i*size+9),pb_ad->charname,(23 + 1));
- WFIFOL(fd,i*size+33) = pb_ad->expiretime;
- WFIFOW(fd,i*size+37) = pb_ad->p_detail.level;
- WFIFOW(fd,i*size+39) = pb_ad->p_detail.mapid;
- for(j=0; j<6; j++)
- WFIFOW(fd,i*size+41+j*2) = pb_ad->p_detail.job[j];
- }
- WFIFOSET(fd,WFIFOW(fd,2));
-
-
-
-}
-
-void clif_parse_PartyBookingDeleteReq(int fd, struct map_session_data* sd) __attribute__((nonnull (2)));
-
-
-void clif_parse_PartyBookingDeleteReq(int fd, struct map_session_data* sd)
-{
-
- if(party->booking_delete(sd))
- clif->PartyBookingDeleteAck(sd, 0);
-
-
-
-}
-# 12116 "../../../server-code/src/map/clif.c"
-void clif_PartyBookingDeleteAck(struct map_session_data* sd, int flag)
-{
-
- int fd;
-
- do { if (((void)(sd),
-# 12121 "../../../server-code/src/map/clif.c" 3 4
-0
-# 12121 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- fd = sd->fd;
- WFIFOHEAD(fd,packet_db[0x807].len);
- WFIFOW(fd,0) = 0x807;
- WFIFOW(fd,2) = flag;
- WFIFOSET(fd,packet_db[0x807].len);
-
-
-
-}
-
-void clif_parse_PartyBookingUpdateReq(int fd, struct map_session_data* sd) __attribute__((nonnull (2)));
-
-
-void clif_parse_PartyBookingUpdateReq(int fd, struct map_session_data* sd)
-{
-
- short job[6];
- int i;
-
- for(i=0; i<6; i++)
- job[i] = RFIFOW(fd,2+i*2);
-
- party->booking_update(sd, job);
-
-
-
-}
-
-
-
-void clif_PartyBookingInsertNotify(struct map_session_data* sd, struct party_booking_ad_info* pb_ad)
-{
-
- int i;
- uint8 buf[38+6*2];
-
- do { if (((void)(sd),
-# 12158 "../../../server-code/src/map/clif.c" 3 4
-0
-# 12158 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- if(pb_ad ==
-# 12159 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 12159 "../../../server-code/src/map/clif.c"
- ) return;
-
- WBUFW(buf,0) = 0x809;
- WBUFL(buf,2) = pb_ad->index;
- memcpy(WBUFP(buf,6),pb_ad->charname,(23 + 1));
- WBUFL(buf,30) = pb_ad->expiretime;
- WBUFW(buf,34) = pb_ad->p_detail.level;
- WBUFW(buf,36) = pb_ad->p_detail.mapid;
- for(i=0; i<6; i++)
- WBUFW(buf,38+i*2) = pb_ad->p_detail.job[i];
-
- clif->send(buf, packet_db[0x809].len, &sd->bl, ALL_CLIENT);
-
-
-
-}
-
-
-
-void clif_PartyBookingUpdateNotify(struct map_session_data* sd, struct party_booking_ad_info* pb_ad)
-{
-
- int i;
- uint8 buf[6+6*2];
-
- do { if (((void)(sd),
-# 12184 "../../../server-code/src/map/clif.c" 3 4
-0
-# 12184 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- if(pb_ad ==
-# 12185 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 12185 "../../../server-code/src/map/clif.c"
- ) return;
-
- WBUFW(buf,0) = 0x80a;
- WBUFL(buf,2) = pb_ad->index;
- for(i=0; i<6; i++)
- WBUFW(buf,6+i*2) = pb_ad->p_detail.job[i];
- clif->send(buf,packet_db[0x80a].len,&sd->bl,ALL_CLIENT);
-
-
-
-}
-
-
-
-void clif_PartyBookingDeleteNotify(struct map_session_data* sd, int index)
-{
-
- uint8 buf[6];
-
- do { if (((void)(sd),
-# 12204 "../../../server-code/src/map/clif.c" 3 4
-0
-# 12204 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- WBUFW(buf,0) = 0x80b;
- WBUFL(buf,2) = index;
-
- clif->send(buf, packet_db[0x80b].len, &sd->bl, ALL_CLIENT);
-
-
-
-}
-
-void clif_parse_PartyRecruitRegisterReq(int fd, struct map_session_data* sd) __attribute__((nonnull (2)));
-
-
-
-
-
-void clif_parse_PartyRecruitRegisterReq(int fd, struct map_session_data* sd)
-{
-
-
-
-
-
-
- return;
-
-}
-
-
-
-
-
-
-void clif_PartyRecruitSearchAck(int fd, struct party_booking_ad_info** results, int count,
-# 12237 "../../../server-code/src/map/clif.c" 3 4
- _Bool
-# 12237 "../../../server-code/src/map/clif.c"
- more_result)
-{
-# 12262 "../../../server-code/src/map/clif.c"
- return;
-
-}
-
-
-
-
-
-
-
-void clif_PartyRecruitRegisterAck(struct map_session_data *sd, int flag)
-{
-# 12284 "../../../server-code/src/map/clif.c"
- return;
-
-}
-
-void clif_parse_PartyRecruitSearchReq(int fd, struct map_session_data* sd) __attribute__((nonnull (2)));
-
-
-void clif_parse_PartyRecruitSearchReq(int fd, struct map_session_data* sd)
-{
-# 12301 "../../../server-code/src/map/clif.c"
- return;
-
-}
-
-void clif_parse_PartyRecruitDeleteReq(int fd, struct map_session_data* sd) __attribute__((nonnull (2)));
-
-
-void clif_parse_PartyRecruitDeleteReq(int fd, struct map_session_data* sd)
-{
-
-
-
-
- return;
-
-}
-# 12325 "../../../server-code/src/map/clif.c"
-void clif_PartyRecruitDeleteAck(struct map_session_data* sd, int flag)
-{
-# 12337 "../../../server-code/src/map/clif.c"
- return;
-
-}
-
-void clif_parse_PartyRecruitUpdateReq(int fd, struct map_session_data *sd) __attribute__((nonnull (2)));
-
-
-void clif_parse_PartyRecruitUpdateReq(int fd, struct map_session_data *sd)
-{
-
-
-
-
-
- return;
-
-}
-
-
-
-void clif_PartyRecruitInsertNotify(struct map_session_data* sd, struct party_booking_ad_info* pb_ad)
-{
-# 12374 "../../../server-code/src/map/clif.c"
- return;
-
-}
-
-
-
-void clif_PartyRecruitUpdateNotify(struct map_session_data *sd, struct party_booking_ad_info* pb_ad)
-{
-# 12393 "../../../server-code/src/map/clif.c"
- return;
-
-}
-
-
-
-void clif_PartyRecruitDeleteNotify(struct map_session_data* sd, int index)
-{
-# 12410 "../../../server-code/src/map/clif.c"
- return;
-
-}
-
-void clif_parse_PartyBookingAddFilteringList(int fd, struct map_session_data *sd) __attribute__((nonnull (2)));
-
-
-void clif_parse_PartyBookingAddFilteringList(int fd, struct map_session_data *sd)
-{
-
-
-
-
-
- return;
-
-}
-
-void clif_parse_PartyBookingSubFilteringList(int fd, struct map_session_data *sd) __attribute__((nonnull (2)));
-
-
-void clif_parse_PartyBookingSubFilteringList(int fd, struct map_session_data *sd)
-{
-
-
-
-
-
- return;
-
-}
-
-void clif_parse_PartyBookingReqVolunteer(int fd, struct map_session_data *sd) __attribute__((nonnull (2)));
-
-
-void clif_parse_PartyBookingReqVolunteer(int fd, struct map_session_data *sd)
-{
-
-
-
-
-
- return;
-
-}
-
-
-
-void clif_PartyBookingVolunteerInfo(int index, struct map_session_data *sd)
-{
-# 12472 "../../../server-code/src/map/clif.c"
- return;
-
-}
-# 12519 "../../../server-code/src/map/clif.c"
-void clif_parse_PartyBookingRefuseVolunteer(int fd, struct map_session_data *sd) __attribute__((nonnull (2)));
-
-void clif_parse_PartyBookingRefuseVolunteer(int fd, struct map_session_data *sd)
-{
-
-
-
-
-
- return;
-
-}
-
-void clif_PartyBookingRefuseVolunteer(unsigned int aid, struct map_session_data *sd) __attribute__((nonnull (2)));
-
-void clif_PartyBookingRefuseVolunteer(unsigned int aid, struct map_session_data *sd)
-{
-# 12544 "../../../server-code/src/map/clif.c"
- return;
-
-}
-
-void clif_parse_PartyBookingCancelVolunteer(int fd, struct map_session_data *sd) __attribute__((nonnull (2)));
-
-void clif_parse_PartyBookingCancelVolunteer(int fd, struct map_session_data *sd)
-{
-
-
-
-
-
- return;
-
-}
-
-
-void clif_PartyBookingCancelVolunteer(int index, struct map_session_data *sd)
-{
-# 12573 "../../../server-code/src/map/clif.c"
- return;
-
-}
-
-
-void clif_PartyBookingAddFilteringList(int index, struct map_session_data *sd)
-{
-# 12590 "../../../server-code/src/map/clif.c"
- return;
-
-}
-
-
-void clif_PartyBookingSubFilteringList(int gid, struct map_session_data *sd)
-{
-# 12607 "../../../server-code/src/map/clif.c"
- return;
-
-}
-# 12623 "../../../server-code/src/map/clif.c"
-void clif_parse_CloseVending(int fd, struct map_session_data* sd) __attribute__((nonnull (2)));
-
-
-void clif_parse_CloseVending(int fd, struct map_session_data* sd)
-{
- vending->close(sd);
-}
-
-void clif_parse_VendingListReq(int fd, struct map_session_data* sd) __attribute__((nonnull (2)));
-
-
-void clif_parse_VendingListReq(int fd, struct map_session_data* sd)
-{
- if( sd->npc_id ) {
- return;
- }
- vending->list(sd,RFIFOL(fd,2));
-}
-
-void clif_parse_PurchaseReq(int fd, struct map_session_data* sd) __attribute__((nonnull (2)));
-
-
-void clif_parse_PurchaseReq(int fd, struct map_session_data* sd)
-{
- int len = (int)RFIFOW(fd,2) - 8;
- int id = RFIFOL(fd,4);
- const uint8 *data = RFIFOP(fd,8);
-
- vending->purchase(sd, id, sd->vended_id, data, len/4);
-
-
- sd->vended_id = 0;
-}
-
-void clif_parse_PurchaseReq2(int fd, struct map_session_data* sd) __attribute__((nonnull (2)));
-
-
-void clif_parse_PurchaseReq2(int fd, struct map_session_data* sd)
-{
- int len = (int)RFIFOW(fd,2) - 12;
- int aid = RFIFOL(fd,4);
- int uid = RFIFOL(fd,8);
- const uint8 *data = RFIFOP(fd,12);
-
- vending->purchase(sd, aid, uid, data, len/4);
-
-
- sd->vended_id = 0;
-}
-
-void clif_parse_OpenVending(int fd, struct map_session_data* sd) __attribute__((nonnull (2)));
-
-
-
-
-
-
-void clif_parse_OpenVending(int fd, struct map_session_data* sd) {
- short len = (short)RFIFOW(fd,2) - 85;
- const char *message = RFIFOP(fd,4);
-
-# 12683 "../../../server-code/src/map/clif.c" 3 4
-_Bool
-# 12683 "../../../server-code/src/map/clif.c"
- flag = (RFIFOB(fd,84) != 0) ?
-# 12683 "../../../server-code/src/map/clif.c" 3 4
- 1
-# 12683 "../../../server-code/src/map/clif.c"
- :
-# 12683 "../../../server-code/src/map/clif.c" 3 4
- 0
-# 12683 "../../../server-code/src/map/clif.c"
- ;
- const uint8 *data = RFIFOP(fd,85);
-
- if( !flag )
- sd->state.prevend = sd->state.workinprogress = 0;
-
- if(( (&sd->sc)->data[SC_NOCHAT] && (&sd->sc)->data[SC_NOCHAT]->val1&(MANNER_NOROOM) ))
- return;
- if( map->list[sd->bl.m].flag.novending ) {
- clif->message (sd->fd, atcommand->msgsd((sd),(276)));
- return;
- }
- if (map->getcell(sd->bl.m, &sd->bl, sd->bl.x, sd->bl.y, CELL_CHKNOVENDING)) {
- clif->message (sd->fd, atcommand->msgsd((sd),(204)));
- return;
- }
-
- if( message[0] == '\0' )
- return;
-
- vending->open(sd, message, data, len/8);
-}
-
-void clif_parse_CreateGuild(int fd,struct map_session_data *sd) __attribute__((nonnull (2)));
-
-
-void clif_parse_CreateGuild(int fd,struct map_session_data *sd)
-{
- char name[(23 + 1)];
- (strlib->safestrncpy_((name),(RFIFOP(fd,6)),((23 + 1))));
-
- if(map->list[sd->bl.m].flag.guildlock) {
-
- clif->message(fd, atcommand->msgfd((fd),(228)));
- return;
- }
-
- guild->create(sd, name);
-}
-
-void clif_parse_GuildCheckMaster(int fd, struct map_session_data *sd) __attribute__((nonnull (2)));
-
-
-void clif_parse_GuildCheckMaster(int fd, struct map_session_data *sd)
-{
- clif->guild_masterormember(sd);
-}
-
-void clif_parse_GuildRequestInfo(int fd, struct map_session_data *sd) __attribute__((nonnull (2)));
-# 12742 "../../../server-code/src/map/clif.c"
-void clif_parse_GuildRequestInfo(int fd, struct map_session_data *sd)
-{
- if( !sd->status.guild_id && !sd->bg_id )
- return;
-
- switch( RFIFOL(fd,2) ) {
- case 0:
- clif->guild_basicinfo(sd);
- clif->guild_allianceinfo(sd);
- break;
- case 1:
- clif->guild_positionnamelist(sd);
- clif->guild_memberlist(sd);
- break;
- case 2:
- clif->guild_positionnamelist(sd);
- clif->guild_positioninfolist(sd);
- break;
- case 3:
- clif->guild_skillinfo(sd);
- break;
- case 4:
- clif->guild_expulsionlist(sd);
- break;
- default:
- (showmsg->showError(("clif: guild request info: unknown type %u\n"), RFIFOL(fd,2)));
- break;
- }
-}
-
-void clif_parse_GuildChangePositionInfo(int fd, struct map_session_data *sd) __attribute__((nonnull (2)));
-
-
-void clif_parse_GuildChangePositionInfo(int fd, struct map_session_data *sd)
-{
- int i;
-
- if(!sd->state.gmaster_flag)
- return;
-
- for(i = 4; i < RFIFOW(fd,2); i += 40 ){
- guild->change_position(sd->status.guild_id, RFIFOL(fd,i), RFIFOL(fd,i+4), RFIFOL(fd,i+12), RFIFOP(fd,i+16));
- }
-}
-
-void clif_parse_GuildChangeMemberPosition(int fd, struct map_session_data *sd) __attribute__((nonnull (2)));
-
-
-void clif_parse_GuildChangeMemberPosition(int fd, struct map_session_data *sd)
-{
- int i;
-
- if(!sd->state.gmaster_flag)
- return;
-
- for(i=4;i<RFIFOW(fd,2);i+=12){
- guild->change_memberposition(sd->status.guild_id,
- RFIFOL(fd,i),RFIFOL(fd,i+4),RFIFOL(fd,i+8));
- }
-}
-
-void clif_parse_GuildRequestEmblem(int fd,struct map_session_data *sd) __attribute__((nonnull (2)));
-
-
-void clif_parse_GuildRequestEmblem(int fd,struct map_session_data *sd)
-{
- struct guild* g;
- int guild_id = RFIFOL(fd,2);
-
- if( (g = guild->search(guild_id)) !=
-# 12811 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 12811 "../../../server-code/src/map/clif.c"
- )
- clif->guild_emblem(sd,g);
-}
-
-
-
-# 12816 "../../../server-code/src/map/clif.c" 3 4
-_Bool
-# 12816 "../../../server-code/src/map/clif.c"
- clif_validate_emblem(const uint8 *emblem, unsigned long emblem_len) {
- enum e_bitmapconst {
- RGBTRIPLE_SIZE = 3,
- RGBQUAD_SIZE = 4,
- BITMAPFILEHEADER_SIZE = 14,
- BITMAPINFOHEADER_SIZE = 40,
- BITMAP_WIDTH = 24,
- BITMAP_HEIGHT = 24,
- };
-
-#pragma pack(push, 1)
-
- struct s_bitmaptripple {
-
-
-
- unsigned int rgb:24;
- } __attribute__((packed));
-
-#pragma pack(pop)
-
- uint8 buf[1800];
- unsigned long buf_len = sizeof(buf);
- int header = 0, bitmap = 0, offbits = 0, palettesize = 0;
-
- do { if (((void)(emblem),
-# 12841 "../../../server-code/src/map/clif.c" 3 4
-0
-# 12841 "../../../server-code/src/map/clif.c"
-)) return(
-# 12841 "../../../server-code/src/map/clif.c" 3 4
-0
-# 12841 "../../../server-code/src/map/clif.c"
-); } while(0);
- if( decode_zip(buf, &buf_len, emblem, emblem_len) != 0 || buf_len < BITMAPFILEHEADER_SIZE + BITMAPINFOHEADER_SIZE
- || RBUFW(buf,0) != 0x4d42
- || RBUFL(buf,2) != buf_len
- || RBUFL(buf,14) != BITMAPINFOHEADER_SIZE
- || RBUFL(buf,18) != BITMAP_WIDTH
- || RBUFL(buf,22) != BITMAP_HEIGHT
- || RBUFL(buf,30) != 0
- ) {
-
- return
-# 12851 "../../../server-code/src/map/clif.c" 3 4
- 0
-# 12851 "../../../server-code/src/map/clif.c"
- ;
- }
-
- offbits = RBUFL(buf,10);
-
- switch( RBUFW(buf,28) ) {
- case 8:
- palettesize = RBUFL(buf,46);
- if( palettesize == 0 )
- palettesize = 256;
- else if( palettesize > 256 )
- return
-# 12862 "../../../server-code/src/map/clif.c" 3 4
- 0
-# 12862 "../../../server-code/src/map/clif.c"
- ;
- header = BITMAPFILEHEADER_SIZE + BITMAPINFOHEADER_SIZE + RGBQUAD_SIZE * palettesize;
- bitmap = BITMAP_WIDTH * BITMAP_HEIGHT;
- break;
- case 24:
- header = BITMAPFILEHEADER_SIZE + BITMAPINFOHEADER_SIZE;
- bitmap = BITMAP_WIDTH * BITMAP_HEIGHT * RGBTRIPLE_SIZE;
- break;
- default:
- return
-# 12871 "../../../server-code/src/map/clif.c" 3 4
- 0
-# 12871 "../../../server-code/src/map/clif.c"
- ;
- }
-
-
-
-
-
-
- if( offbits < header || buf_len <= bitmap || offbits > buf_len - bitmap ) {
- return
-# 12880 "../../../server-code/src/map/clif.c" 3 4
- 0
-# 12880 "../../../server-code/src/map/clif.c"
- ;
- }
-
- if( battle_config.client_emblem_max_blank_percent < 100 ) {
- int required_pixels = BITMAP_WIDTH * BITMAP_HEIGHT * (100 - battle_config.client_emblem_max_blank_percent) / 100;
- int found_pixels = 0;
- int i;
-# 12895 "../../../server-code/src/map/clif.c"
- switch( RBUFW(buf,28) ) {
- case 8:
- {
- const uint8 *indexes = RBUFP(buf,offbits);
- const uint32 *palette = RBUFP(buf,BITMAPFILEHEADER_SIZE + BITMAPINFOHEADER_SIZE);
-
- for (i = 0; i < BITMAP_WIDTH * BITMAP_HEIGHT; i++) {
- if( indexes[i] >= palettesize )
- return
-# 12903 "../../../server-code/src/map/clif.c" 3 4
- 0
-# 12903 "../../../server-code/src/map/clif.c"
- ;
-
-
- if( ( palette[indexes[i]]&0x00F8F8F8 ) != 0x00F800F8 ) {
- if( ++found_pixels >= required_pixels ) {
-
- return
-# 12909 "../../../server-code/src/map/clif.c" 3 4
- 1
-# 12909 "../../../server-code/src/map/clif.c"
- ;
- }
- }
- }
- break;
- }
- case 24:
- {
- const struct s_bitmaptripple *pixels = RBUFP(buf,offbits);
-
- for (i = 0; i < BITMAP_WIDTH * BITMAP_HEIGHT; i++) {
-
- if( ( pixels[i].rgb&0xF8F8F8 ) != 0xF800F8 ) {
- if( ++found_pixels >= required_pixels ) {
-
- return
-# 12924 "../../../server-code/src/map/clif.c" 3 4
- 1
-# 12924 "../../../server-code/src/map/clif.c"
- ;
- }
- }
- }
- break;
- }
- }
-
-
- return
-# 12933 "../../../server-code/src/map/clif.c" 3 4
- 0
-# 12933 "../../../server-code/src/map/clif.c"
- ;
- }
-
- return
-# 12936 "../../../server-code/src/map/clif.c" 3 4
- 1
-# 12936 "../../../server-code/src/map/clif.c"
- ;
-}
-
-void clif_parse_GuildChangeEmblem(int fd,struct map_session_data *sd) __attribute__((nonnull (2)));
-
-
-void clif_parse_GuildChangeEmblem(int fd,struct map_session_data *sd)
-{
- unsigned int emblem_len = RFIFOW(fd,2)-4;
- const uint8* emblem = RFIFOP(fd,4);
-
- if( !emblem_len || !sd->state.gmaster_flag )
- return;
-
- if (!clif->validate_emblem(emblem, emblem_len)) {
- (showmsg->showWarning(("clif_parse_GuildChangeEmblem: Rejected malformed guild emblem (size=%u, accound_id=%d, char_id=%d, guild_id=%d).\n"), emblem_len, sd->status.account_id, sd->status.char_id, sd->status.guild_id))
- ;
- return;
- }
-
- guild->change_emblem(sd, emblem_len, (const char*)emblem);
-}
-
-void clif_parse_GuildChangeNotice(int fd, struct map_session_data* sd) __attribute__((nonnull (2)));
-
-
-void clif_parse_GuildChangeNotice(int fd, struct map_session_data* sd)
-{
- int guild_id = RFIFOL(fd,2);
- char *msg1 =
-# 12965 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 12965 "../../../server-code/src/map/clif.c"
- , *msg2 =
-# 12965 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 12965 "../../../server-code/src/map/clif.c"
- ;
-
- if (!sd->state.gmaster_flag)
- return;
-
- msg1 = (iMalloc->astrndup((RFIFOP(fd,6)),(60 -1),"../../../server-code/src/map/clif.c", 12970, __func__));
- msg2 = (iMalloc->astrndup((RFIFOP(fd,66)),(120 -1),"../../../server-code/src/map/clif.c", 12971, __func__));
-
-
- if (msg1[0] == '|' && msg1[3] == '|') msg1+= 3;
- if (msg2[0] == '|' && msg2[3] == '|') msg2+= 3;
- if (msg2[0] == '|') msg2[(strlib->strnlen_((msg2),(120)))-1] = '\0';
-
- guild->change_notice(sd, guild_id, msg1, msg2);
- (iMalloc->free((msg1),"../../../server-code/src/map/clif.c", 12979, __func__));
- (iMalloc->free((msg2),"../../../server-code/src/map/clif.c", 12980, __func__));
-}
-
-
-
-# 12984 "../../../server-code/src/map/clif.c" 3 4
-_Bool
-# 12984 "../../../server-code/src/map/clif.c"
- clif_sub_guild_invite(int fd, struct map_session_data *sd, struct map_session_data *t_sd) {
- if ( t_sd ==
-# 12985 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 12985 "../../../server-code/src/map/clif.c"
- )
- return
-# 12986 "../../../server-code/src/map/clif.c" 3 4
- 0
-# 12986 "../../../server-code/src/map/clif.c"
- ;
-
- do { if (((void)(sd),
-# 12988 "../../../server-code/src/map/clif.c" 3 4
-0
-# 12988 "../../../server-code/src/map/clif.c"
-)) return(
-# 12988 "../../../server-code/src/map/clif.c" 3 4
-0
-# 12988 "../../../server-code/src/map/clif.c"
-); } while(0);
- do { if (((void)(t_sd),
-# 12989 "../../../server-code/src/map/clif.c" 3 4
-0
-# 12989 "../../../server-code/src/map/clif.c"
-)) return(
-# 12989 "../../../server-code/src/map/clif.c" 3 4
-0
-# 12989 "../../../server-code/src/map/clif.c"
-); } while(0);
- if ( map->list[sd->bl.m].flag.guildlock ) {
-
- clif->message(fd, atcommand->msgfd((fd),(228)));
- return
-# 12993 "../../../server-code/src/map/clif.c" 3 4
- 0
-# 12993 "../../../server-code/src/map/clif.c"
- ;
- }
-
- if (t_sd->state.noask) {
- clif->noask_sub(sd, t_sd, 2);
- return
-# 12998 "../../../server-code/src/map/clif.c" 3 4
- 0
-# 12998 "../../../server-code/src/map/clif.c"
- ;
- }
-
- guild->invite(sd,t_sd);
- return
-# 13002 "../../../server-code/src/map/clif.c" 3 4
- 1
-# 13002 "../../../server-code/src/map/clif.c"
- ;
-}
-
-void clif_parse_GuildInvite(int fd,struct map_session_data *sd) __attribute__((nonnull (2)));
-
-
-void clif_parse_GuildInvite(int fd,struct map_session_data *sd) {
- struct map_session_data *t_sd = map->id2sd(RFIFOL(fd,2));
-
- if (!clif_sub_guild_invite(fd, sd, t_sd))
- return;
-}
-
-void clif_parse_GuildInvite2(int fd, struct map_session_data *sd) __attribute__((nonnull (2)));
-
-
-void clif_parse_GuildInvite2(int fd, struct map_session_data *sd)
-{
- char nick[(23 + 1)];
- struct map_session_data *t_sd =
-# 13021 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 13021 "../../../server-code/src/map/clif.c"
- ;
-
- (strlib->safestrncpy_((nick),(RFIFOP(fd, 2)),((23 + 1))));
- t_sd = map->nick2sd(nick);
-
- clif_sub_guild_invite(fd, sd, t_sd);
-}
-
-void clif_parse_GuildReplyInvite(int fd,struct map_session_data *sd) __attribute__((nonnull (2)));
-
-
-
-
-
-void clif_parse_GuildReplyInvite(int fd,struct map_session_data *sd)
-{
- guild->reply_invite(sd,RFIFOL(fd,2),RFIFOL(fd,6));
-}
-
-void clif_parse_GuildLeave(int fd,struct map_session_data *sd) __attribute__((nonnull (2)));
-
-
-void clif_parse_GuildLeave(int fd,struct map_session_data *sd) {
- if(map->list[sd->bl.m].flag.guildlock) {
-
- clif->message(fd, atcommand->msgfd((fd),(228)));
- return;
- }
- if( sd->bg_id ) {
- clif->message(fd, atcommand->msgfd((fd),(870)));
- return;
- }
-
- guild->leave(sd,RFIFOL(fd,2), RFIFOL(fd,6), RFIFOL(fd,10), RFIFOP(fd,14));
-}
-
-void clif_parse_GuildExpulsion(int fd,struct map_session_data *sd) __attribute__((nonnull (2)));
-
-
-void clif_parse_GuildExpulsion(int fd,struct map_session_data *sd) {
- if( map->list[sd->bl.m].flag.guildlock || sd->bg_id ) {
-
- clif->message(fd, atcommand->msgfd((fd),(228)));
- return;
- }
- guild->expulsion(sd, RFIFOL(fd,2), RFIFOL(fd,6), RFIFOL(fd,10), RFIFOP(fd,14));
-}
-
-void clif_parse_GuildMessage(int fd, struct map_session_data* sd) __attribute__((nonnull (2)));
-
-
-void clif_parse_GuildMessage(int fd, struct map_session_data* sd)
-{
- const char *text = RFIFOP(fd,4);
- int textlen = RFIFOW(fd,2) - 4;
-
- const char *name, *message;
- size_t namelen, messagelen;
-
-
- if( !clif->process_message(sd, 0, &name, &namelen, &message, &messagelen) )
- return;
-
- if( atcommand->exec(fd, sd, message,
-# 13084 "../../../server-code/src/map/clif.c" 3 4
- 1
-# 13084 "../../../server-code/src/map/clif.c"
- ) )
- return;
-
- if( !pc->can_talk(sd) )
- return;
-
- if (battle_config.min_chat_delay) {
- if (((sd->cantalk_tick)-(timer->gettick())) > 0)
- return;
- sd->cantalk_tick = timer->gettick() + battle_config.min_chat_delay;
- }
-
- pc->update_idle_time(sd, BCIDLE_CHAT);
-
- if( sd->bg_id )
- bg->send_message(sd, text, textlen);
- else
- guild->send_message(sd, text, textlen);
-}
-
-void clif_parse_GuildRequestAlliance(int fd, struct map_session_data *sd) __attribute__((nonnull (2)));
-
-
-void clif_parse_GuildRequestAlliance(int fd, struct map_session_data *sd) {
- struct map_session_data *t_sd;
-
- if(!sd->state.gmaster_flag)
- return;
-
- if(map->list[sd->bl.m].flag.guildlock) {
-
- clif->message(fd, atcommand->msgfd((fd),(228)));
- return;
- }
-
- t_sd = map->id2sd(RFIFOL(fd,2));
-
-
- if(t_sd && t_sd->state.noask) {
- clif->noask_sub(sd, t_sd, 3);
- return;
- }
-
- guild->reqalliance(sd,t_sd);
-}
-
-void clif_parse_GuildReplyAlliance(int fd, struct map_session_data *sd) __attribute__((nonnull (2)));
-
-
-
-
-
-void clif_parse_GuildReplyAlliance(int fd, struct map_session_data *sd)
-{
- guild->reply_reqalliance(sd,RFIFOL(fd,2),RFIFOL(fd,6));
-}
-
-void clif_parse_GuildDelAlliance(int fd, struct map_session_data *sd) __attribute__((nonnull (2)));
-
-
-
-
-
-void clif_parse_GuildDelAlliance(int fd, struct map_session_data *sd) {
- if(!sd->state.gmaster_flag)
- return;
-
- if(map->list[sd->bl.m].flag.guildlock) {
-
- clif->message(fd, atcommand->msgfd((fd),(228)));
- return;
- }
- guild->delalliance(sd,RFIFOL(fd,2),RFIFOL(fd,6));
-}
-
-void clif_parse_GuildOpposition(int fd, struct map_session_data *sd) __attribute__((nonnull (2)));
-
-
-void clif_parse_GuildOpposition(int fd, struct map_session_data *sd) {
- struct map_session_data *t_sd;
-
- if(!sd->state.gmaster_flag)
- return;
-
- if(map->list[sd->bl.m].flag.guildlock) {
-
- clif->message(fd, atcommand->msgfd((fd),(228)));
- return;
- }
-
- t_sd = map->id2sd(RFIFOL(fd,2));
-
-
- if(t_sd && t_sd->state.noask) {
- clif->noask_sub(sd, t_sd, 4);
- return;
- }
-
- guild->opposition(sd,t_sd);
-}
-
-void clif_parse_GuildBreak(int fd, struct map_session_data *sd) __attribute__((nonnull (2)));
-
-
-
-
-
-void clif_parse_GuildBreak(int fd, struct map_session_data *sd) {
- if( map->list[sd->bl.m].flag.guildlock ) {
-
- clif->message(fd, atcommand->msgfd((fd),(228)));
- return;
- }
- guild->dobreak(sd, RFIFOP(fd,2));
-}
-
-
-
-
-void clif_parse_PetMenu(int fd, struct map_session_data *sd) __attribute__((nonnull (2)));
-# 13212 "../../../server-code/src/map/clif.c"
-void clif_parse_PetMenu(int fd, struct map_session_data *sd)
-{
- pet->menu(sd,RFIFOB(fd,2));
-}
-
-void clif_parse_CatchPet(int fd, struct map_session_data *sd) __attribute__((nonnull (2)));
-
-
-void clif_parse_CatchPet(int fd, struct map_session_data *sd)
-{
- pet->catch_process2(sd,RFIFOL(fd,2));
-}
-
-void clif_parse_SelectEgg(int fd, struct map_session_data *sd) __attribute__((nonnull (2)));
-
-
-void clif_parse_SelectEgg(int fd, struct map_session_data *sd)
-{
- if (sd->menuskill_id != SA_TAMINGMONSTER || sd->menuskill_val != -1) {
- return;
- }
- pet->select_egg(sd,RFIFOW(fd,2)-2);
- ((sd)->menuskill_id = (sd)->menuskill_val = (sd)->menuskill_val2 = 0);
-}
-
-void clif_parse_SendEmotion(int fd, struct map_session_data *sd) __attribute__((nonnull (2)));
-# 13262 "../../../server-code/src/map/clif.c"
-void clif_parse_SendEmotion(int fd, struct map_session_data *sd)
-{
- if(sd->pd)
- clif->pet_emotion(sd->pd,RFIFOL(fd,2));
-}
-
-void clif_parse_ChangePetName(int fd, struct map_session_data *sd) __attribute__((nonnull (2)));
-
-
-void clif_parse_ChangePetName(int fd, struct map_session_data *sd)
-{
- pet->change_name(sd, RFIFOP(fd,2));
-}
-
-void clif_parse_GMKick(int fd, struct map_session_data *sd) __attribute__((nonnull (2)));
-
-
-
-
-void clif_parse_GMKick(int fd, struct map_session_data *sd) {
- struct block_list *target;
- int tid;
-
- tid = RFIFOL(fd,2);
- target = map->id2bl(tid);
- if (!target) {
- clif->GM_kickack(sd, 0);
- return;
- }
-
- switch (target->type) {
- case BL_PC:
- {
- char command[(23 + 1)+6];
- sprintf(command, "%ckick %s", atcommand->at_symbol, clif->get_bl_name(target));
- atcommand->exec(fd, sd, command,
-# 13297 "../../../server-code/src/map/clif.c" 3 4
- 1
-# 13297 "../../../server-code/src/map/clif.c"
- );
- }
- break;
-
-
-
-
- case BL_MOB:
- {
- char command[100];
- if( !pc->can_use_command(sd, "@killmonster")) {
- clif->GM_kickack(sd, 0);
- return;
- }
- sprintf(command, "/kick %s (%d)", clif->get_bl_name(target), status->get_class(target));
- logs->atcommand(sd, command);
- (status->percent_change((&sd->bl), (target), (100), (0), (
-# 13313 "../../../server-code/src/map/clif.c" 3 4
- 1
-# 13313 "../../../server-code/src/map/clif.c"
- )?1:2));
- }
- break;
-
- case BL_NPC:
- {
- struct npc_data *nd = ((TBL_NPC *)BL_UCAST_(target));
- if( !pc->can_use_command(sd, "@unloadnpc")) {
- clif->GM_kickack(sd, 0);
- return;
- }
- npc->unload_duplicates(nd);
- npc->unload(nd,
-# 13325 "../../../server-code/src/map/clif.c" 3 4
- 1
-# 13325 "../../../server-code/src/map/clif.c"
- );
- npc->read_event_script();
- }
- break;
-
- default:
- clif->GM_kickack(sd, 0);
- }
-}
-
-void clif_parse_GMKickAll(int fd, struct map_session_data* sd) __attribute__((nonnull (2)));
-
-
-
-void clif_parse_GMKickAll(int fd, struct map_session_data* sd) {
- char cmd[15];
- sprintf(cmd,"%ckickall",atcommand->at_symbol);
- atcommand->exec(fd, sd, cmd,
-# 13342 "../../../server-code/src/map/clif.c" 3 4
- 1
-# 13342 "../../../server-code/src/map/clif.c"
- );
-}
-
-void clif_parse_GMShift(int fd, struct map_session_data *sd) __attribute__((nonnull (2)));
-
-
-
-
-
-
-
-void clif_parse_GMShift(int fd, struct map_session_data *sd)
-{
-
- char player_name[(23 + 1)];
- char command[(23 + 1)+8];
-
- (strlib->safestrncpy_((player_name),(RFIFOP(fd,2)),((23 + 1))));
-
- sprintf(command, "%cjumpto %s", atcommand->at_symbol, player_name);
- atcommand->exec(fd, sd, command,
-# 13362 "../../../server-code/src/map/clif.c" 3 4
- 1
-# 13362 "../../../server-code/src/map/clif.c"
- );
-}
-
-void clif_parse_GMRemove2(int fd, struct map_session_data* sd) __attribute__((nonnull (2)));
-
-
-
-void clif_parse_GMRemove2(int fd, struct map_session_data* sd) {
- int account_id;
- struct map_session_data* pl_sd;
-
- account_id = RFIFOL(fd,packet_db[RFIFOW(fd,0)].pos[0]);
- if( (pl_sd = map->id2sd(account_id)) !=
-# 13374 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 13374 "../../../server-code/src/map/clif.c"
- ) {
- char command[(23 + 1)+8];
- sprintf(command, "%cjumpto %s", atcommand->at_symbol, pl_sd->status.name);
- atcommand->exec(fd, sd, command,
-# 13377 "../../../server-code/src/map/clif.c" 3 4
- 1
-# 13377 "../../../server-code/src/map/clif.c"
- );
- }
-}
-
-void clif_parse_GMRecall(int fd, struct map_session_data *sd) __attribute__((nonnull (2)));
-
-
-
-
-
-
-
-void clif_parse_GMRecall(int fd, struct map_session_data *sd)
-{
-
- char player_name[(23 + 1)];
- char command[(23 + 1)+8];
-
- (strlib->safestrncpy_((player_name),(RFIFOP(fd,2)),((23 + 1))));
-
- sprintf(command, "%crecall %s", atcommand->at_symbol, player_name);
- atcommand->exec(fd, sd, command,
-# 13398 "../../../server-code/src/map/clif.c" 3 4
- 1
-# 13398 "../../../server-code/src/map/clif.c"
- );
-}
-
-void clif_parse_GMRecall2(int fd, struct map_session_data* sd) __attribute__((nonnull (2)));
-
-
-
-void clif_parse_GMRecall2(int fd, struct map_session_data* sd) {
- int account_id;
- struct map_session_data* pl_sd;
-
- account_id = RFIFOL(fd,packet_db[RFIFOW(fd,0)].pos[0]);
- if( (pl_sd = map->id2sd(account_id)) !=
-# 13410 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 13410 "../../../server-code/src/map/clif.c"
- ) {
- char command[(23 + 1)+8];
- sprintf(command, "%crecall %s", atcommand->at_symbol, pl_sd->status.name);
- atcommand->exec(fd, sd, command,
-# 13413 "../../../server-code/src/map/clif.c" 3 4
- 1
-# 13413 "../../../server-code/src/map/clif.c"
- );
- }
-}
-
-void clif_parse_GM_Monster_Item(int fd, struct map_session_data *sd) __attribute__((nonnull (2)));
-# 13431 "../../../server-code/src/map/clif.c"
-void clif_parse_GM_Monster_Item(int fd, struct map_session_data *sd)
-{
- const struct packet_gm_monster_item *p = RP2PTR(fd);
- int i, count;
- char item_monster_name[sizeof p->str];
- struct item_data *item_array[10];
- struct mob_db *mob_array[10];
- char command[256];
-
- (strlib->safestrncpy_((item_monster_name),(p->str),(sizeof(item_monster_name))));
-
- if ( (count=itemdb->search_name_array(item_array, 10, item_monster_name, 1)) > 0 ) {
- for(i = 0; i < count; i++) {
- if( !item_array[i] )
- continue;
-
- if( battle_config.case_sensitive_aegisnames && strcmp(item_array[i]->name, item_monster_name) == 0 )
- break;
- if( !battle_config.case_sensitive_aegisnames && strcasecmp(item_array[i]->name, item_monster_name) == 0 )
- break;
- }
-
- if( i < count ) {
- if( item_array[i]->type == IT_WEAPON || item_array[i]->type == IT_ARMOR )
- snprintf(command, sizeof(command)-1, "%citem2 %d 1 0 0 0 0 0 0 0", atcommand->at_symbol, item_array[i]->nameid);
- else
- snprintf(command, sizeof(command)-1, "%citem %d 20", atcommand->at_symbol, item_array[i]->nameid);
- atcommand->exec(fd, sd, command,
-# 13458 "../../../server-code/src/map/clif.c" 3 4
- 1
-# 13458 "../../../server-code/src/map/clif.c"
- );
- return;
- }
- }
-
- if( strcmp("money", item_monster_name) == 0 ){
- snprintf(command, sizeof(command)-1, "%czeny %d", atcommand->at_symbol, 0x7fffffff);
- atcommand->exec(fd, sd, command,
-# 13465 "../../../server-code/src/map/clif.c" 3 4
- 1
-# 13465 "../../../server-code/src/map/clif.c"
- );
- return;
- }
-
- if( (count=mob->db_searchname_array(mob_array, 10, item_monster_name, 1)) > 0) {
- for(i = 0; i < count; i++) {
- if( !mob_array[i] )
- continue;
-
- if( battle_config.case_sensitive_aegisnames && strcmp(mob_array[i]->sprite, item_monster_name) == 0 )
- break;
- if( !battle_config.case_sensitive_aegisnames && strcasecmp(mob_array[i]->sprite, item_monster_name) == 0 )
- break;
- }
-
- if( i < count ){
- snprintf(command, sizeof(command)-1, "%cmonster %s", atcommand->at_symbol, mob_array[i]->sprite);
- atcommand->exec(fd, sd, command,
-# 13482 "../../../server-code/src/map/clif.c" 3 4
- 1
-# 13482 "../../../server-code/src/map/clif.c"
- );
- }
- }
-}
-
-void clif_parse_GMHide(int fd, struct map_session_data *sd) __attribute__((nonnull (2)));
-
-
-
-
-void clif_parse_GMHide(int fd, struct map_session_data *sd) {
- char cmd[6];
-
- sprintf(cmd,"%chide",atcommand->at_symbol);
-
- atcommand->exec(fd, sd, cmd,
-# 13497 "../../../server-code/src/map/clif.c" 3 4
- 1
-# 13497 "../../../server-code/src/map/clif.c"
- );
-}
-
-void clif_parse_GMReqNoChat(int fd,struct map_session_data *sd) __attribute__((nonnull (2)));
-
-
-
-
-
-
-void clif_parse_GMReqNoChat(int fd,struct map_session_data *sd) {
- int id, type, value;
- struct map_session_data *dstsd;
- char command[(23 + 1)+15];
-
- id = RFIFOL(fd,2);
- type = RFIFOB(fd,6);
- value = RFIFOW(fd,7);
-
- if( type == 0 )
- value = -value;
-
- if (type == 2) {
- if (!battle_config.client_accept_chatdori)
- return;
- if (( (sd)->group->level ) > 0 || sd->bl.id != id)
- return;
-
- value = battle_config.client_accept_chatdori;
- dstsd = sd;
- } else {
- dstsd = map->id2sd(id);
- if( dstsd ==
-# 13529 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 13529 "../../../server-code/src/map/clif.c"
- )
- return;
- }
-
- if (type == 2 || ( (( (sd)->group->level )) > ( (dstsd)->group->level ) && !pc->can_use_command(sd, "@mute"))) {
- clif->manner_message(sd, 0);
- clif->manner_message(dstsd, 5);
-
- if (dstsd->status.manner < value) {
- dstsd->status.manner -= value;
- (status->change_start((
-# 13539 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 13539 "../../../server-code/src/map/clif.c"
- ),(&dstsd->bl),(SC_NOCHAT),100*(100),(0),0,0,0,(0),SCFLAG_NONE));
-
- } else {
- dstsd->status.manner = 0;
- (status->change_end_((&dstsd->bl),(SC_NOCHAT),((-1)),"../../../server-code/src/map/clif.c",13543));
- }
-
- if( type != 2 )
- clif->GM_silence(sd, dstsd, type);
- }
-
- sprintf(command, "%cmute %d %s", atcommand->at_symbol, value, dstsd->status.name);
- atcommand->exec(fd, sd, command,
-# 13551 "../../../server-code/src/map/clif.c" 3 4
- 1
-# 13551 "../../../server-code/src/map/clif.c"
- );
-}
-
-void clif_parse_GMRc(int fd, struct map_session_data* sd) __attribute__((nonnull (2)));
-
-
-
-void clif_parse_GMRc(int fd, struct map_session_data* sd)
-{
- char command[(23 + 1)+15];
- char name[(23 + 1)];
-
- (strlib->safestrncpy_((name),(RFIFOP(fd,2)),((23 + 1))));
-
- sprintf(command, "%cmute %d %s", atcommand->at_symbol, 60, name);
- atcommand->exec(fd, sd, command,
-# 13566 "../../../server-code/src/map/clif.c" 3 4
- 1
-# 13566 "../../../server-code/src/map/clif.c"
- );
-}
-
-
-
-void clif_account_name(struct map_session_data* sd, int account_id, const char* accname) {
- int fd;
-
- do { if (((void)(sd),
-# 13574 "../../../server-code/src/map/clif.c" 3 4
-0
-# 13574 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- fd = sd->fd;
- WFIFOHEAD(fd,packet_db[0x1e0].len);
- WFIFOW(fd,0) = 0x1e0;
- WFIFOL(fd,2) = account_id;
- (strlib->safestrncpy_((WFIFOP(fd,6)),(accname),((23 + 1))));
- WFIFOSET(fd,packet_db[0x1e0].len);
-}
-
-void clif_parse_GMReqAccountName(int fd, struct map_session_data *sd) __attribute__((nonnull (2)));
-
-
-void clif_parse_GMReqAccountName(int fd, struct map_session_data *sd)
-{
- int account_id = RFIFOL(fd,2);
-
-
- clif->account_name(sd, account_id, "");
-}
-
-void clif_parse_GMChangeMapType(int fd, struct map_session_data *sd) __attribute__((nonnull (2)));
-
-
-
-
-
-
-void clif_parse_GMChangeMapType(int fd, struct map_session_data *sd) {
- int x,y,type;
-
- if (!( ((sd)->extra_temp_permissions&(PC_PERM_USE_CHANGEMAPTYPE)) != 0 || ((sd)->group->e_permissions&(PC_PERM_USE_CHANGEMAPTYPE)) != 0 ))
- return;
-
- x = RFIFOW(fd,2);
- y = RFIFOW(fd,4);
- type = RFIFOW(fd,6);
-
- map->setgatcell(sd->bl.m,x,y,type);
- clif->changemapcell(0,sd->bl.m,x,y,type,ALL_SAMEMAP);
-
-}
-
-void clif_parse_PMIgnore(int fd, struct map_session_data* sd) __attribute__((nonnull (2)));
-
-
-
-
-
-
-void clif_parse_PMIgnore(int fd, struct map_session_data* sd)
-{
- char nick[(23 + 1)];
- uint8 type;
- int i;
-
- (strlib->safestrncpy_((nick),(RFIFOP(fd,2)),((23 + 1))));
-
- type = RFIFOB(fd,26);
-
- if( type == 0 ) {
- if (strcmp(map->wisp_server_name, nick) == 0) {
- clif->wisexin(sd, type, 1);
- return;
- }
-
-
- do { for ((i) = (0); (i) < (20); ++(i)) if (sd->ignore[i].name[0] == '\0' || strcmp(sd->ignore[i].name, nick) == 0) break; } while(
-# 13640 "../../../server-code/src/map/clif.c" 3 4
- 0
-# 13640 "../../../server-code/src/map/clif.c"
- );
- if( i == 20 ) {
- clif->wisexin(sd, type, 2);
- return;
- }
- if( sd->ignore[i].name[0] != '\0' ) {
- clif->wisexin(sd, type, 0);
- return;
- }
-
-
- (strlib->safestrncpy_((sd->ignore[i].name),(nick),((23 + 1))));
- } else {
-
-
- do { for ((i) = (0); (i) < (20); ++(i)) if (sd->ignore[i].name[0] == '\0' || strcmp(sd->ignore[i].name, nick) == 0) break; } while(
-# 13655 "../../../server-code/src/map/clif.c" 3 4
- 0
-# 13655 "../../../server-code/src/map/clif.c"
- );
- if( i == 20 || sd->ignore[i].name[i] == '\0' ) {
- clif->wisexin(sd, type, 1);
- return;
- }
-
- if( i != 20 - 1 )
- memmove(&sd->ignore[i], &sd->ignore[i+1], (20 -i-1)*sizeof(sd->ignore[0]));
-
- memset(sd->ignore[20 -1].name, 0, sizeof(sd->ignore[0].name));
- }
-
- clif->wisexin(sd, type, 0);
-}
-
-void clif_parse_PMIgnoreAll(int fd, struct map_session_data *sd) __attribute__((nonnull (2)));
-
-
-
-
-
-
-void clif_parse_PMIgnoreAll(int fd, struct map_session_data *sd)
-{
- int type = RFIFOB(fd,2), flag;
-
- if( type == 0 ) {
- if( sd->state.ignoreAll ) {
- flag = 1;
- } else {
- sd->state.ignoreAll = 1;
- flag = 0;
- }
- } else {
- if( sd->state.ignoreAll ) {
- sd->state.ignoreAll = 0;
- flag = 0;
- } else {
- if (sd->ignore[0].name[0] != '\0')
- {
- memset(sd->ignore, 0, sizeof(sd->ignore));
- flag = 0;
- } else {
- flag = 1;
- }
- }
- }
-
- clif->wisall(sd, type, flag);
-}
-
-
-
-void clif_PMIgnoreList(struct map_session_data* sd) {
- int i, fd;
-
- do { if (((void)(sd),
-# 13711 "../../../server-code/src/map/clif.c" 3 4
-0
-# 13711 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- fd = sd->fd;
- WFIFOHEAD(fd,4+( (int)(sizeof(sd->ignore)/sizeof((sd->ignore)[0])) )*(23 + 1));
- WFIFOW(fd,0) = 0xd4;
-
- for( i = 0; i < ( (int)(sizeof(sd->ignore)/sizeof((sd->ignore)[0])) ) && sd->ignore[i].name[0]; i++ ) {
- memcpy(WFIFOP(fd,4+i*(23 + 1)), sd->ignore[i].name, (23 + 1));
- }
-
- WFIFOW(fd,2) = 4+i*(23 + 1);
- WFIFOSET(fd,WFIFOW(fd,2));
-}
-
-void clif_parse_PMIgnoreList(int fd,struct map_session_data *sd) __attribute__((nonnull (2)));
-
-
-void clif_parse_PMIgnoreList(int fd,struct map_session_data *sd)
-{
- clif->PMIgnoreList(sd);
-}
-
-void clif_parse_NoviceDoriDori(int fd, struct map_session_data *sd) __attribute__((nonnull (2)));
-
-
-void clif_parse_NoviceDoriDori(int fd, struct map_session_data *sd)
-{
- if (sd->state.doridori) return;
-
- switch (sd->class_&0x0fff) {
- case MAPID_SOUL_LINKER:
- case MAPID_STAR_GLADIATOR:
- case MAPID_TAEKWON:
- if (!sd->state.rest)
- break;
- case MAPID_SUPER_NOVICE:
- sd->state.doridori=1;
- break;
- }
-}
-
-void clif_parse_NoviceExplosionSpirits(int fd, struct map_session_data *sd) __attribute__((nonnull (2)));
-# 13760 "../../../server-code/src/map/clif.c"
-void clif_parse_NoviceExplosionSpirits(int fd, struct map_session_data *sd)
-{
-
-
-
-
- if( ( sd->class_&0x0fff ) == MAPID_SUPER_NOVICE ) {
- unsigned int next = pc->nextbaseexp(sd);
- if( next == 0 ) next = pc->thisbaseexp(sd);
- if( next ) {
- int percent = (int)( ( (float)sd->status.base_exp/(float)next )*1000. );
-
- if( percent && ( percent%100 ) == 0 ) {
- (status->change_start((
-# 13773 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 13773 "../../../server-code/src/map/clif.c"
- ),(&sd->bl),(status->skill2sc(MO_EXPLOSIONSPIRITS)),100*(100),(17),0,0,0,(skill->get_time(MO_EXPLOSIONSPIRITS, 5)),SCFLAG_NONE));
- clif->skill_nodamage(&sd->bl, &sd->bl, MO_EXPLOSIONSPIRITS, 5, 1);
- }
- }
- }
-}
-# 13788 "../../../server-code/src/map/clif.c"
-void clif_friendslist_toggle(struct map_session_data *sd,int account_id, int char_id, int online) {
- int i, fd;
-
- do { if (((void)(sd),
-# 13791 "../../../server-code/src/map/clif.c" 3 4
-0
-# 13791 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- fd = sd->fd;
-
- for (i = 0; i < 40 && sd->status.friends[i].char_id &&
- (sd->status.friends[i].char_id != char_id || sd->status.friends[i].account_id != account_id); i++);
-
- if(i == 40 || sd->status.friends[i].char_id == 0)
- return;
-
- WFIFOHEAD(fd,packet_db[0x206].len);
- WFIFOW(fd,0) = 0x206;
- WFIFOL(fd, 2) = sd->status.friends[i].account_id;
- WFIFOL(fd, 6) = sd->status.friends[i].char_id;
- WFIFOB(fd,10) = !online;
- WFIFOSET(fd, packet_db[0x206].len);
-}
-
-
-int clif_friendslist_toggle_sub(struct map_session_data *sd,va_list ap)
-{
- int account_id, char_id, online;
- account_id =
-# 13812 "../../../server-code/src/map/clif.c" 3 4
- __builtin_va_arg(
-# 13812 "../../../server-code/src/map/clif.c"
- ap
-# 13812 "../../../server-code/src/map/clif.c" 3 4
- ,
-# 13812 "../../../server-code/src/map/clif.c"
- int
-# 13812 "../../../server-code/src/map/clif.c" 3 4
- )
-# 13812 "../../../server-code/src/map/clif.c"
- ;
- char_id =
-# 13813 "../../../server-code/src/map/clif.c" 3 4
- __builtin_va_arg(
-# 13813 "../../../server-code/src/map/clif.c"
- ap
-# 13813 "../../../server-code/src/map/clif.c" 3 4
- ,
-# 13813 "../../../server-code/src/map/clif.c"
- int
-# 13813 "../../../server-code/src/map/clif.c" 3 4
- )
-# 13813 "../../../server-code/src/map/clif.c"
- ;
- online =
-# 13814 "../../../server-code/src/map/clif.c" 3 4
- __builtin_va_arg(
-# 13814 "../../../server-code/src/map/clif.c"
- ap
-# 13814 "../../../server-code/src/map/clif.c" 3 4
- ,
-# 13814 "../../../server-code/src/map/clif.c"
- int
-# 13814 "../../../server-code/src/map/clif.c" 3 4
- )
-# 13814 "../../../server-code/src/map/clif.c"
- ;
- clif->friendslist_toggle(sd, account_id, char_id, online);
- return 0;
-}
-
-
-
-void clif_friendslist_send(struct map_session_data *sd)
-{
- int i = 0, n, fd = sd->fd;
-
- do { if (((void)(sd),
-# 13825 "../../../server-code/src/map/clif.c" 3 4
-0
-# 13825 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- WFIFOHEAD(fd, 40 * 32 + 4);
- WFIFOW(fd,0) = 0x201;
- for(i = 0; i < 40 && sd->status.friends[i].char_id; i++) {
- WFIFOL(fd, 4 + 32 * i + 0) = sd->status.friends[i].account_id;
- WFIFOL(fd, 4 + 32 * i + 4) = sd->status.friends[i].char_id;
- memcpy(WFIFOP(fd, 4 + 32 * i + 8), &sd->status.friends[i].name, (23 + 1));
- }
-
- if (i) {
- WFIFOW(fd,2) = 4 + 32 * i;
- WFIFOSET(fd, WFIFOW(fd,2));
- }
-
- for (n = 0; n < i; n++) {
- if (map->charid2sd(sd->status.friends[n].char_id))
- clif->friendslist_toggle(sd, sd->status.friends[n].account_id, sd->status.friends[n].char_id, 1);
- }
-}
-# 13853 "../../../server-code/src/map/clif.c"
-void clif_friendslist_reqack(struct map_session_data *sd, struct map_session_data *f_sd, int type)
-{
- int fd;
- do { if (((void)(sd),
-# 13856 "../../../server-code/src/map/clif.c" 3 4
-0
-# 13856 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- fd = sd->fd;
- WFIFOHEAD(fd,packet_db[0x209].len);
- WFIFOW(fd,0) = 0x209;
- WFIFOW(fd,2) = type;
- if (f_sd) {
- WFIFOL(fd,4) = f_sd->status.account_id;
- WFIFOL(fd,8) = f_sd->status.char_id;
- memcpy(WFIFOP(fd, 12), f_sd->status.name,(23 + 1));
- }
- WFIFOSET(fd, packet_db[0x209].len);
-}
-
-
-
-void clif_friendlist_req(struct map_session_data* sd, int account_id, int char_id, const char* name) {
- int fd;
-
- do { if (((void)(sd),
-# 13875 "../../../server-code/src/map/clif.c" 3 4
-0
-# 13875 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- fd = sd->fd;
- WFIFOHEAD(fd,packet_db[0x207].len);
- WFIFOW(fd,0) = 0x207;
- WFIFOL(fd,2) = account_id;
- WFIFOL(fd,6) = char_id;
- memcpy(WFIFOP(fd,10), name, (23 + 1));
- WFIFOSET(fd,packet_db[0x207].len);
-}
-
-void clif_parse_FriendsListAdd(int fd, struct map_session_data *sd) __attribute__((nonnull (2)));
-
-
-void clif_parse_FriendsListAdd(int fd, struct map_session_data *sd)
-{
- struct map_session_data *f_sd;
- int i;
- char nick[(23 + 1)];
-
- (strlib->safestrncpy_((nick),(RFIFOP(fd,2)),((23 + 1))));
-
- f_sd = map->nick2sd(nick);
-
-
- do { for ((i) = (0); (i) < (40); ++(i)) if (sd->status.friends[i].char_id == 0) break; } while(
-# 13899 "../../../server-code/src/map/clif.c" 3 4
-0
-# 13899 "../../../server-code/src/map/clif.c"
-);
-
- if( i == 40 ) {
- clif->friendslist_reqack(sd, f_sd, 2);
- return;
- }
-
-
- if (f_sd ==
-# 13907 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 13907 "../../../server-code/src/map/clif.c"
- ) {
- clif->message(fd, atcommand->msgfd((fd),(3)));
- return;
- }
-
- if( sd->bl.id == f_sd->bl.id ) {
- return;
- }
-
-
- if(f_sd->state.noask) {
- clif->noask_sub(sd, f_sd, 5);
- return;
- }
-
-
- for (i = 0; i < 40 && sd->status.friends[i].char_id != 0; i++) {
- if (sd->status.friends[i].char_id == f_sd->status.char_id) {
- clif->message(fd, atcommand->msgfd((fd),(871)));
- return;
- }
- }
-
- f_sd->friend_req = sd->status.char_id;
- sd->friend_req = f_sd->status.char_id;
-
- clif->friendlist_req(f_sd, sd->status.account_id, sd->status.char_id, sd->status.name);
-}
-
-void clif_parse_FriendsListReply(int fd, struct map_session_data *sd) __attribute__((nonnull (2)));
-
-
-
-
-
-
-void clif_parse_FriendsListReply(int fd, struct map_session_data *sd)
-{
- struct map_session_data *f_sd;
- int account_id;
- char reply;
-
- account_id = RFIFOL(fd,2);
-
-
-
-
- reply = RFIFOL(fd,10);
-
-
- if( sd->bl.id == account_id ) {
- return;
- }
-
- f_sd = map->id2sd(account_id);
- if (f_sd ==
-# 13962 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 13962 "../../../server-code/src/map/clif.c"
- )
- return;
-
- if (reply == 0 || !( sd->friend_req == f_sd->status.char_id && f_sd->friend_req == sd->status.char_id ) )
- clif->friendslist_reqack(f_sd, sd, 1);
- else {
- int i;
-
- for (i = 0; i < 40; i++)
- if (f_sd->status.friends[i].char_id == 0)
- break;
- if (i == 40) {
- clif->friendslist_reqack(f_sd, sd, 2);
- return;
- }
-
- f_sd->status.friends[i].account_id = sd->status.account_id;
- f_sd->status.friends[i].char_id = sd->status.char_id;
- memcpy(f_sd->status.friends[i].name, sd->status.name, (23 + 1));
- clif->friendslist_reqack(f_sd, sd, 0);
-
- if (battle_config.friend_auto_add) {
-
- for (i = 0; i < 40; i++) {
- if (sd->status.friends[i].char_id == f_sd->status.char_id)
- return;
- if (sd->status.friends[i].char_id == 0)
- break;
- }
- if (i == 40) {
- clif->friendslist_reqack(sd, f_sd, 2);
- return;
- }
-
- sd->status.friends[i].account_id = f_sd->status.account_id;
- sd->status.friends[i].char_id = f_sd->status.char_id;
- memcpy(sd->status.friends[i].name, f_sd->status.name, (23 + 1));
- clif->friendslist_reqack(sd, f_sd, 0);
- }
- }
-}
-
-void clif_parse_FriendsListRemove(int fd, struct map_session_data *sd) __attribute__((nonnull (2)));
-
-
-void clif_parse_FriendsListRemove(int fd, struct map_session_data *sd)
-{
- struct map_session_data *f_sd =
-# 14009 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 14009 "../../../server-code/src/map/clif.c"
- ;
- int account_id, char_id;
- int i, j;
-
- account_id = RFIFOL(fd,2);
- char_id = RFIFOL(fd,6);
-
-
- for (i = 0; i < 40 &&
- (sd->status.friends[i].char_id != char_id || sd->status.friends[i].account_id != account_id); i++);
-
- if (i == 40) {
- clif->message(fd, atcommand->msgfd((fd),(872)));
- return;
- }
-
-
- if( (f_sd = map->id2sd(account_id)) && f_sd->status.char_id == char_id) {
- for (i = 0; i < 40 &&
- (f_sd->status.friends[i].char_id != sd->status.char_id || f_sd->status.friends[i].account_id != sd->status.account_id); i++);
-
- if (i != 40) {
-
- for(j = i + 1; j < 40; j++)
- memcpy(&f_sd->status.friends[j-1], &f_sd->status.friends[j], sizeof(f_sd->status.friends[0]));
-
- memset(&f_sd->status.friends[40 -1], 0, sizeof(f_sd->status.friends[40 -1]));
-
- WFIFOHEAD(f_sd->fd,packet_db[0x20a].len);
- WFIFOW(f_sd->fd,0) = 0x20a;
- WFIFOL(f_sd->fd,2) = sd->status.account_id;
- WFIFOL(f_sd->fd,6) = sd->status.char_id;
- WFIFOSET(f_sd->fd, packet_db[0x20a].len);
- }
-
- } else {
- if(!chrif->removefriend(char_id,sd->status.char_id)) {
- clif->message(fd, atcommand->msgfd((fd),(873)));
- return;
- }
- }
-
-
- for (i = 0; i < 40 &&
- (sd->status.friends[i].char_id != char_id || sd->status.friends[i].account_id != account_id); i++);
-
- for(j = i + 1; j < 40; j++)
- memcpy(&sd->status.friends[j-1], &sd->status.friends[j], sizeof(sd->status.friends[0]));
-
- memset(&sd->status.friends[40 -1], 0, sizeof(sd->status.friends[40 -1]));
- clif->message(fd, atcommand->msgfd((fd),(874)));
-
- WFIFOHEAD(fd,packet_db[0x20a].len);
- WFIFOW(fd,0) = 0x20a;
- WFIFOL(fd,2) = account_id;
- WFIFOL(fd,6) = char_id;
- WFIFOSET(fd, packet_db[0x20a].len);
-}
-
-
-
-void clif_PVPInfo(struct map_session_data* sd) {
- int fd;
-
- do { if (((void)(sd),
-# 14073 "../../../server-code/src/map/clif.c" 3 4
-0
-# 14073 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- fd = sd->fd;
- WFIFOHEAD(fd,packet_db[0x210].len);
- WFIFOW(fd,0) = 0x210;
- WFIFOL(fd,2) = sd->status.char_id;
- WFIFOL(fd,6) = sd->status.account_id;
- WFIFOL(fd,10) = sd->pvp_won;
- WFIFOL(fd,14) = sd->pvp_lost;
- WFIFOL(fd,18) = sd->pvp_point;
- WFIFOSET(fd, packet_db[0x210].len);
-}
-
-void clif_parse_PVPInfo(int fd,struct map_session_data *sd) __attribute__((nonnull (2)));
-
-
-void clif_parse_PVPInfo(int fd,struct map_session_data *sd)
-{
-
- clif->PVPInfo(sd);
-}
-
-
-
-
-void clif_ranklist_sub(unsigned char *buf, enum fame_list_type type) {
- const char* name;
- struct fame_list* list;
- int i;
-
- do { if (((void)(buf),
-# 14102 "../../../server-code/src/map/clif.c" 3 4
-0
-# 14102 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- switch( type ) {
- case RANKTYPE_BLACKSMITH: list = pc->smith_fame_list; break;
- case RANKTYPE_ALCHEMIST: list = pc->chemist_fame_list; break;
- case RANKTYPE_TAEKWON: list = pc->taekwon_fame_list; break;
- default: return;
- }
-
-
- for( i = 0; i < 10 && i < 10; i++ ) {
- if( list[i].id > 0 ) {
- if( strcmp(list[i].name, "-") == 0 && (name = map->charid2nick(list[i].id)) !=
-# 14113 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 14113 "../../../server-code/src/map/clif.c"
- ) {
- strncpy(WBUFP(buf, 24 * i), name, (23 + 1));
- } else {
- strncpy(WBUFP(buf, 24 * i), list[i].name, (23 + 1));
- }
- } else {
- strncpy(WBUFP(buf, 24 * i), "None", 5);
- }
- WBUFL(buf, 24 * 10 + i * 4) = list[i].fame;
- }
- for( ;i < 10; i++ ) {
- strncpy(WBUFP(buf, 24 * i), "Unavailable", 12);
- WBUFL(buf, 24 * 10 + i * 4) = 0;
- }
-}
-
-
-void clif_ranklist(struct map_session_data *sd, enum fame_list_type type) {
- int fd;
- int mypoint = 0;
- int upperMask;
-
- do { if (((void)(sd),
-# 14135 "../../../server-code/src/map/clif.c" 3 4
-0
-# 14135 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- fd = sd->fd;
- upperMask = sd->class_&0x0fff;
- WFIFOHEAD(fd, 288);
- WFIFOW(fd,0) = 0x97d;
- WFIFOW(fd,2) = type;
- clif_ranklist_sub(WFIFOP(fd,4), type);
-
- if( (upperMask == MAPID_BLACKSMITH && type == RANKTYPE_BLACKSMITH)
- || (upperMask == MAPID_ALCHEMIST && type == RANKTYPE_ALCHEMIST)
- || (upperMask == MAPID_TAEKWON && type == RANKTYPE_TAEKWON)
- ) {
- mypoint = sd->status.fame;
- } else {
- mypoint = 0;
- }
-
- WFIFOL(fd, 284) = mypoint;
- WFIFOSET(fd, 288);
-}
-
-void clif_parse_ranklist(int fd, struct map_session_data *sd) __attribute__((nonnull (2)));
-
-
-
-void clif_parse_ranklist(int fd, struct map_session_data *sd) {
- int16 type = RFIFOW(fd, 2);
-
- switch( type ) {
- case RANKTYPE_BLACKSMITH:
- case RANKTYPE_ALCHEMIST:
- case RANKTYPE_TAEKWON:
- clif->ranklist(sd, type);
- break;
- }
-}
-
-
-void clif_update_rankingpoint(struct map_session_data *sd, enum fame_list_type type, int points) {
-# 14182 "../../../server-code/src/map/clif.c"
- int fd;
-
- do { if (((void)(sd),
-# 14184 "../../../server-code/src/map/clif.c" 3 4
-0
-# 14184 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- fd = sd->fd;
- WFIFOHEAD(fd, 12);
- WFIFOW(fd,0) = 0x97e;
- WFIFOW(fd,2) = type;
- WFIFOL(fd, 4) = points;
- WFIFOL(fd, 8) = sd->status.fame;
- WFIFOSET(fd, 12);
-
-}
-
-
-
-void clif_blacksmith(struct map_session_data* sd) {
- int fd;
-
- do { if (((void)(sd),
-# 14200 "../../../server-code/src/map/clif.c" 3 4
-0
-# 14200 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- fd = sd->fd;
- WFIFOHEAD(fd,packet_db[0x219].len);
- WFIFOW(fd,0) = 0x219;
- clif_ranklist_sub(WFIFOP(fd, 2), RANKTYPE_BLACKSMITH);
- WFIFOSET(fd, packet_db[0x219].len);
-}
-
-void clif_parse_Blacksmith(int fd,struct map_session_data *sd) __attribute__((nonnull (2)));
-
-
-void clif_parse_Blacksmith(int fd,struct map_session_data *sd) {
- clif->blacksmith(sd);
-}
-
-
-
-void clif_fame_blacksmith(struct map_session_data *sd, int points) {
- int fd;
-
- do { if (((void)(sd),
-# 14220 "../../../server-code/src/map/clif.c" 3 4
-0
-# 14220 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- fd = sd->fd;
- WFIFOHEAD(fd,packet_db[0x21b].len);
- WFIFOW(fd,0) = 0x21b;
- WFIFOL(fd,2) = points;
- WFIFOL(fd,6) = sd->status.fame;
- WFIFOSET(fd, packet_db[0x21b].len);
-}
-
-
-
-void clif_alchemist(struct map_session_data* sd) {
- int fd;
-
- do { if (((void)(sd),
-# 14234 "../../../server-code/src/map/clif.c" 3 4
-0
-# 14234 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- fd = sd->fd;
- WFIFOHEAD(fd,packet_db[0x21a].len);
- WFIFOW(fd,0) = 0x21a;
- clif_ranklist_sub(WFIFOP(fd,2), RANKTYPE_ALCHEMIST);
- WFIFOSET(fd, packet_db[0x21a].len);
-}
-
-void clif_parse_Alchemist(int fd,struct map_session_data *sd) __attribute__((nonnull (2)));
-
-
-void clif_parse_Alchemist(int fd,struct map_session_data *sd) {
- clif->alchemist(sd);
-}
-
-
-
-void clif_fame_alchemist(struct map_session_data *sd, int points) {
- int fd;
-
- do { if (((void)(sd),
-# 14254 "../../../server-code/src/map/clif.c" 3 4
-0
-# 14254 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- fd = sd->fd;
- WFIFOHEAD(fd,packet_db[0x21c].len);
- WFIFOW(fd,0) = 0x21c;
- WFIFOL(fd,2) = points;
- WFIFOL(fd,6) = sd->status.fame;
- WFIFOSET(fd, packet_db[0x21c].len);
-}
-
-
-
-void clif_taekwon(struct map_session_data* sd) {
- int fd;
-
- do { if (((void)(sd),
-# 14268 "../../../server-code/src/map/clif.c" 3 4
-0
-# 14268 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- fd = sd->fd;
- WFIFOHEAD(fd,packet_db[0x226].len);
- WFIFOW(fd,0) = 0x226;
- clif_ranklist_sub(WFIFOP(fd,2), RANKTYPE_TAEKWON);
- WFIFOSET(fd, packet_db[0x226].len);
-}
-
-void clif_parse_Taekwon(int fd,struct map_session_data *sd) __attribute__((nonnull (2)));
-
-
-void clif_parse_Taekwon(int fd,struct map_session_data *sd) {
- clif->taekwon(sd);
-}
-
-
-
-void clif_fame_taekwon(struct map_session_data *sd, int points) {
- int fd;
-
- do { if (((void)(sd),
-# 14288 "../../../server-code/src/map/clif.c" 3 4
-0
-# 14288 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- fd = sd->fd;
- WFIFOHEAD(fd,packet_db[0x224].len);
- WFIFOW(fd,0) = 0x224;
- WFIFOL(fd,2) = points;
- WFIFOL(fd,6) = sd->status.fame;
- WFIFOSET(fd, packet_db[0x224].len);
-}
-
-
-
-void clif_ranking_pk(struct map_session_data* sd) {
- int i, fd;
-
- do { if (((void)(sd),
-# 14302 "../../../server-code/src/map/clif.c" 3 4
-0
-# 14302 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- fd = sd->fd;
- WFIFOHEAD(fd,packet_db[0x238].len);
- WFIFOW(fd,0) = 0x238;
- for (i = 0; i < 10;i ++) {
- strncpy(WFIFOP(fd, i * 24 + 2), "Unknown", (23 + 1));
- WFIFOL(fd,i*4+242) = 0;
- }
- WFIFOSET(fd, packet_db[0x238].len);
-}
-
-void clif_parse_RankingPk(int fd,struct map_session_data *sd) __attribute__((nonnull (2)));
-
-
-void clif_parse_RankingPk(int fd,struct map_session_data *sd) {
- clif->ranking_pk(sd);
-}
-
-void clif_parse_FeelSaveOk(int fd,struct map_session_data *sd) __attribute__((nonnull (2)));
-
-
-
-
-
-
-void clif_parse_FeelSaveOk(int fd,struct map_session_data *sd)
-{
- int i;
- if (sd->menuskill_id != SG_FEEL)
- return;
- i = sd->menuskill_val-1;
- if (i<0 || i >= 3) return;
-
- sd->feel_map[i].index = (map->list[(sd->bl.m)].index);
- sd->feel_map[i].m = sd->bl.m;
- (pc->setregistry((sd),(script->add_str(pc->sg_info[i].feel_var)),(sd->feel_map[i].index)));
-
-
-
-
-
- clif->feel_info(sd, i, 0);
- ((sd)->menuskill_id = (sd)->menuskill_val = (sd)->menuskill_val2 = 0);
-}
-
-
-
-
-
-
-
-void clif_feel_req(int fd, struct map_session_data *sd, uint16 skill_lv)
-{
- do { if (((void)(sd),
-# 14355 "../../../server-code/src/map/clif.c" 3 4
-0
-# 14355 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- WFIFOHEAD(fd,packet_db[0x253].len);
- WFIFOW(fd,0)=0x253;
- WFIFOB(fd,2)=TOB(skill_lv-1);
- WFIFOSET(fd, packet_db[0x253].len);
- sd->menuskill_id = SG_FEEL;
- sd->menuskill_val = skill_lv;
-}
-
-void clif_parse_ChangeHomunculusName(int fd, struct map_session_data *sd) __attribute__((nonnull (2)));
-
-
-void clif_parse_ChangeHomunculusName(int fd, struct map_session_data *sd)
-{
- homun->change_name(sd, RFIFOP(fd,2));
-}
-
-void clif_parse_HomMoveToMaster(int fd, struct map_session_data *sd) __attribute__((nonnull (2)));
-
-
-void clif_parse_HomMoveToMaster(int fd, struct map_session_data *sd)
-{
- int id = RFIFOL(fd,2);
- struct block_list *bl =
-# 14378 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 14378 "../../../server-code/src/map/clif.c"
- ;
- struct unit_data *ud =
-# 14379 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 14379 "../../../server-code/src/map/clif.c"
- ;
-
- if (sd->md && sd->md->bl.id == id)
- bl = &sd->md->bl;
- else if (((sd->hd) && (sd->hd)->homunculus.vaporize == HOM_ST_ACTIVE && (sd->hd)->battle_status.hp > 0) && sd->hd->bl.id == id)
- bl = &sd->hd->bl;
- else
- return;
-
- unit->calc_pos(bl, sd->bl.x, sd->bl.y, sd->ud.dir);
- ud = unit->bl2ud(bl);
- unit->walktoxy(bl, ud->to_x, ud->to_y, 4);
-}
-
-void clif_parse_HomMoveTo(int fd, struct map_session_data *sd) __attribute__((nonnull (2)));
-
-
-void clif_parse_HomMoveTo(int fd, struct map_session_data *sd)
-{
- int id = RFIFOL(fd,2);
- struct block_list *bl =
-# 14399 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 14399 "../../../server-code/src/map/clif.c"
- ;
- short x, y;
-
- RFIFOPOS(fd, packet_db[RFIFOW(fd,0)].pos[1], &x, &y,
-# 14402 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 14402 "../../../server-code/src/map/clif.c"
- );
-
- if( sd->md && sd->md->bl.id == id )
- bl = &sd->md->bl;
- else if( ((sd->hd) && (sd->hd)->homunculus.vaporize == HOM_ST_ACTIVE && (sd->hd)->battle_status.hp > 0) && sd->hd->bl.id == id )
- bl = &sd->hd->bl;
- else
- return;
-
- unit->walktoxy(bl, x, y, 4);
-}
-
-void clif_parse_HomAttack(int fd,struct map_session_data *sd) __attribute__((nonnull (2)));
-
-
-
-
-void clif_parse_HomAttack(int fd,struct map_session_data *sd)
-{
- struct block_list *bl =
-# 14421 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 14421 "../../../server-code/src/map/clif.c"
- ;
- int id = RFIFOL(fd,2),
- target_id = RFIFOL(fd,6),
- action_type = RFIFOB(fd,10);
-
- if( ((sd->hd) && (sd->hd)->homunculus.vaporize == HOM_ST_ACTIVE && (sd->hd)->battle_status.hp > 0) && sd->hd->bl.id == id )
- bl = &sd->hd->bl;
- else if( sd->md && sd->md->bl.id == id )
- bl = &sd->md->bl;
- else return;
-
- unit->stop_attack(bl);
- unit->attack(bl, target_id, action_type != 0);
-}
-
-void clif_parse_HomMenu(int fd, struct map_session_data *sd) __attribute__((nonnull (2)));
-# 14445 "../../../server-code/src/map/clif.c"
-void clif_parse_HomMenu(int fd, struct map_session_data *sd) {
- int cmd;
-
- cmd = RFIFOW(fd,0);
-
- if(!((sd->hd) && (sd->hd)->homunculus.vaporize == HOM_ST_ACTIVE && (sd->hd)->battle_status.hp > 0))
- return;
-
- homun->menu(sd,RFIFOB(fd,packet_db[cmd].pos[1]));
-}
-
-void clif_parse_AutoRevive(int fd, struct map_session_data *sd) __attribute__((nonnull (2)));
-
-
-void clif_parse_AutoRevive(int fd, struct map_session_data *sd) {
- int item_position = pc->search_inventory(sd, ITEMID_TOKEN_OF_SIEGFRIED);
- int hpsp = 100;
-
- if (item_position == (-1)) {
- if (sd->sc.data[SC_LIGHT_OF_REGENE])
- hpsp = 20 * sd->sc.data[SC_LIGHT_OF_REGENE]->val1;
- else
- return;
- }
-
- if (sd->sc.data[SC_HELLPOWER])
- return;
-
- if (!status->revive(&sd->bl, hpsp, hpsp))
- return;
-
- if (item_position == (-1))
- (status->change_end_((&sd->bl),(SC_LIGHT_OF_REGENE),((-1)),"../../../server-code/src/map/clif.c",14477));
- else
- pc->delitem(sd, item_position, 1, 0, DELITEM_SKILLUSE, LOG_TYPE_CONSUME);
-
- clif->skill_nodamage(&sd->bl,&sd->bl,ALL_RESURRECTION,4,1);
-}
-# 14491 "../../../server-code/src/map/clif.c"
-void clif_check(int fd, struct map_session_data* pl_sd) {
- do { if (((void)(pl_sd),
-# 14492 "../../../server-code/src/map/clif.c" 3 4
-0
-# 14492 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- WFIFOHEAD(fd,packet_db[0x214].len);
- WFIFOW(fd,0) = 0x214;
- WFIFOB(fd, 2) = (((pl_sd->status.str) < (((uint8) 0xFF))) ? (pl_sd->status.str) : (((uint8) 0xFF)));
- WFIFOB(fd, 3) = pc->need_status_point(pl_sd, SP_STR, 1);
- WFIFOB(fd, 4) = (((pl_sd->status.agi) < (((uint8) 0xFF))) ? (pl_sd->status.agi) : (((uint8) 0xFF)));
- WFIFOB(fd, 5) = pc->need_status_point(pl_sd, SP_AGI, 1);
- WFIFOB(fd, 6) = (((pl_sd->status.vit) < (((uint8) 0xFF))) ? (pl_sd->status.vit) : (((uint8) 0xFF)));
- WFIFOB(fd, 7) = pc->need_status_point(pl_sd, SP_VIT, 1);
- WFIFOB(fd, 8) = (((pl_sd->status.int_) < (((uint8) 0xFF))) ? (pl_sd->status.int_) : (((uint8) 0xFF)));
- WFIFOB(fd, 9) = pc->need_status_point(pl_sd, SP_INT, 1);
- WFIFOB(fd,10) = (((pl_sd->status.dex) < (((uint8) 0xFF))) ? (pl_sd->status.dex) : (((uint8) 0xFF)));
- WFIFOB(fd,11) = pc->need_status_point(pl_sd, SP_DEX, 1);
- WFIFOB(fd,12) = (((pl_sd->status.luk) < (((uint8) 0xFF))) ? (pl_sd->status.luk) : (((uint8) 0xFF)));
- WFIFOB(fd,13) = pc->need_status_point(pl_sd, SP_LUK, 1);
- WFIFOW(fd,14) = pl_sd->battle_status.batk+pl_sd->battle_status.rhw.atk+pl_sd->battle_status.lhw.atk;
- WFIFOW(fd,16) = pl_sd->battle_status.rhw.atk2+pl_sd->battle_status.lhw.atk2;
- WFIFOW(fd,18) = pl_sd->battle_status.matk_max;
- WFIFOW(fd,20) = pl_sd->battle_status.matk_min;
- WFIFOW(fd,22) = pl_sd->battle_status.def;
- WFIFOW(fd,24) = pl_sd->battle_status.def2;
- WFIFOW(fd,26) = pl_sd->battle_status.mdef;
- WFIFOW(fd,28) = pl_sd->battle_status.mdef2;
- WFIFOW(fd,30) = pl_sd->battle_status.hit;
- WFIFOW(fd,32) = pl_sd->battle_status.flee;
- WFIFOW(fd,34) = pl_sd->battle_status.flee2/10;
- WFIFOW(fd,36) = pl_sd->battle_status.cri/10;
- WFIFOW(fd,38) = (2000-pl_sd->battle_status.amotion)/10;
- WFIFOW(fd,40) = 0;
- WFIFOSET(fd,packet_db[0x214].len);
-}
-
-void clif_parse_Check(int fd, struct map_session_data *sd) __attribute__((nonnull (2)));
-
-
-
-void clif_parse_Check(int fd, struct map_session_data *sd)
-{
- char charname[(23 + 1)];
- struct map_session_data* pl_sd;
-
- if(!( ((sd)->extra_temp_permissions&(PC_PERM_USE_CHECK)) != 0 || ((sd)->group->e_permissions&(PC_PERM_USE_CHECK)) != 0 ))
- return;
-
- (strlib->safestrncpy_((charname),(RFIFOP(fd,packet_db[RFIFOW(fd,0)].pos[0])),(sizeof(charname))));
-
- if( ( pl_sd = map->nick2sd(charname) ) ==
-# 14538 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 14538 "../../../server-code/src/map/clif.c"
- || ( (sd)->group->level ) < ( (pl_sd)->group->level ) ) {
- return;
- }
-
- clif->check(fd, pl_sd);
-}
-# 14554 "../../../server-code/src/map/clif.c"
-void clif_Mail_setattachment(int fd, int index, uint8 flag)
-{
- WFIFOHEAD(fd,packet_db[0x255].len);
- WFIFOW(fd,0) = 0x255;
- WFIFOW(fd,2) = index;
- WFIFOB(fd,4) = flag;
- WFIFOSET(fd,packet_db[0x255].len);
-}
-
-
-
-
-
-
-
-void clif_Mail_getattachment(int fd, uint8 flag)
-{
- WFIFOHEAD(fd,packet_db[0x245].len);
- WFIFOW(fd,0) = 0x245;
- WFIFOB(fd,2) = flag;
- WFIFOSET(fd,packet_db[0x245].len);
-}
-
-
-
-
-
-
-void clif_Mail_send(int fd,
-# 14582 "../../../server-code/src/map/clif.c" 3 4
- _Bool
-# 14582 "../../../server-code/src/map/clif.c"
- fail)
-{
- WFIFOHEAD(fd,packet_db[0x249].len);
- WFIFOW(fd,0) = 0x249;
- WFIFOB(fd,2) = fail;
- WFIFOSET(fd,packet_db[0x249].len);
-}
-
-
-
-
-
-
-void clif_Mail_delete(int fd, int mail_id, short fail)
-{
- WFIFOHEAD(fd, packet_db[0x257].len);
- WFIFOW(fd,0) = 0x257;
- WFIFOL(fd,2) = mail_id;
- WFIFOW(fd,6) = fail;
- WFIFOSET(fd, packet_db[0x257].len);
-}
-
-
-
-
-
-
-void clif_Mail_return(int fd, int mail_id, short fail)
-{
- WFIFOHEAD(fd,packet_db[0x274].len);
- WFIFOW(fd,0) = 0x274;
- WFIFOL(fd,2) = mail_id;
- WFIFOW(fd,6) = fail;
- WFIFOSET(fd,packet_db[0x274].len);
-}
-
-
-
-void clif_Mail_new(int fd, int mail_id, const char *sender, const char *title)
-{
- do { if (((void)(sender),
-# 14622 "../../../server-code/src/map/clif.c" 3 4
-0
-# 14622 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- do { if (((void)(title),
-# 14623 "../../../server-code/src/map/clif.c" 3 4
-0
-# 14623 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- WFIFOHEAD(fd,packet_db[0x24a].len);
- WFIFOW(fd,0) = 0x24a;
- WFIFOL(fd,2) = mail_id;
- (strlib->safestrncpy_((WFIFOP(fd,6)),(title),(40)));
- (strlib->safestrncpy_((WFIFOP(fd,46)),(sender),((23 + 1))));
- WFIFOSET(fd,packet_db[0x24a].len);
-}
-
-
-
-
-
-
-void clif_Mail_window(int fd, int flag)
-{
- WFIFOHEAD(fd,packet_db[0x260].len);
- WFIFOW(fd,0) = 0x260;
- WFIFOL(fd,2) = flag;
- WFIFOSET(fd,packet_db[0x260].len);
-}
-
-
-
-
-
-
-void clif_Mail_refreshinbox(struct map_session_data *sd)
-{
- int fd = sd->fd;
- struct mail_data *md;
- struct mail_message *msg;
- int len, i, j;
-
- do { if (((void)(sd),
-# 14657 "../../../server-code/src/map/clif.c" 3 4
-0
-# 14657 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- md = &sd->mail.inbox;
- len = 8 + (73 * md->amount);
-
- WFIFOHEAD(fd,len);
- WFIFOW(fd,0) = 0x240;
- WFIFOW(fd,2) = len;
- WFIFOL(fd,4) = md->amount;
- for( i = j = 0; i < 30 && j < md->amount; i++ )
- {
- msg = &md->msg[i];
- if (msg->id < 1)
- continue;
-
- WFIFOL(fd,8+73*j) = msg->id;
- memcpy(WFIFOP(fd,12+73*j), msg->title, 40);
- WFIFOB(fd,52+73*j) = (msg->status != MAIL_UNREAD);
- memcpy(WFIFOP(fd,53+73*j), msg->send_name, (23 + 1));
- WFIFOL(fd,77+73*j) = (uint32)msg->timestamp;
- j++;
- }
- WFIFOSET(fd,len);
-
- if( md->full ) {
- char output[100];
- sprintf(output, "Inbox is full (Max %d). Delete some mails.", 30);
- clif->disp_message( &(sd)->bl, (output), (strlen(output)), SELF );
- }
-}
-
-void clif_parse_Mail_refreshinbox(int fd, struct map_session_data *sd) __attribute__((nonnull (2)));
-
-
-void clif_parse_Mail_refreshinbox(int fd, struct map_session_data *sd)
-{
- struct mail_data* md = &sd->mail.inbox;
-
- if( md->amount < 30 && (md->full || sd->mail.changed) )
- intif->Mail_requestinbox(sd->status.char_id, 1);
- else
- clif->mail_refreshinbox(sd);
-
- mail->removeitem(sd, 0);
- mail->removezeny(sd, 0);
-}
-
-
-
-
-
-void clif_Mail_read(struct map_session_data *sd, int mail_id)
-{
- int i, fd = sd->fd;
-
- do { if (((void)(sd),
-# 14711 "../../../server-code/src/map/clif.c" 3 4
-0
-# 14711 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- do { for ((i) = (0); (i) < (30); ++(i)) if (sd->mail.inbox.msg[i].id == mail_id) break; } while(
-# 14712 "../../../server-code/src/map/clif.c" 3 4
-0
-# 14712 "../../../server-code/src/map/clif.c"
-);
- if( i == 30 ) {
- clif->mail_return(sd->fd, mail_id, 1);
- (showmsg->showWarning(("clif_parse_Mail_read: char '%s' trying to read a message not the inbox.\n"), sd->status.name));
- return;
- } else {
- struct mail_message *msg = &sd->mail.inbox.msg[i];
- struct item *item = &msg->item;
- struct item_data *data;
- size_t msg_len = strlen(msg->body), len;
-
- if( msg_len == 0 ) {
- strcpy(msg->body, "(no message)");
- msg_len = strlen(msg->body);
- }
-
- len = 101 + msg_len;
-
- WFIFOHEAD(fd,len);
- WFIFOW(fd,0) = 0x242;
- WFIFOW(fd,2) = len;
- WFIFOL(fd,4) = msg->id;
- (strlib->safestrncpy_((WFIFOP(fd,8)),(msg->title),(40 + 1)));
- (strlib->safestrncpy_((WFIFOP(fd,48)),(msg->send_name),((23 + 1) + 1)));
- WFIFOL(fd,72) = 0;
- WFIFOL(fd,76) = msg->zeny;
-
- if( item->nameid && (data = itemdb->exists(item->nameid)) !=
-# 14739 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 14739 "../../../server-code/src/map/clif.c"
- ) {
- WFIFOL(fd,80) = item->amount;
- WFIFOW(fd,84) = (data->view_id)?data->view_id:item->nameid;
- WFIFOW(fd,86) = data->type;
- WFIFOB(fd,88) = item->identify;
- WFIFOB(fd,89) = item->attribute;
- WFIFOB(fd,90) = item->refine;
- WFIFOW(fd,91) = item->card[0];
- WFIFOW(fd,93) = item->card[1];
- WFIFOW(fd,95) = item->card[2];
- WFIFOW(fd,97) = item->card[3];
- } else
- memset(WFIFOP(fd,80), 0x00, 19);
-
- WFIFOB(fd,99) = (unsigned char)msg_len;
- (strlib->safestrncpy_((WFIFOP(fd,100)),(msg->body),(msg_len + 1)));
- WFIFOSET(fd,len);
-
- if (msg->status == MAIL_UNREAD) {
- msg->status = MAIL_READ;
- intif->Mail_read(mail_id);
- clif->pMail_refreshinbox(fd, sd);
- }
- }
-}
-
-void clif_parse_Mail_read(int fd, struct map_session_data *sd) __attribute__((nonnull (2)));
-
-
-void clif_parse_Mail_read(int fd, struct map_session_data *sd)
-{
- int mail_id = RFIFOL(fd,2);
-
- if( mail_id <= 0 )
- return;
- if( mail->invalid_operation(sd) )
- return;
-
- clif->mail_read(sd, RFIFOL(fd,2));
-}
-
-void clif_parse_Mail_getattach(int fd, struct map_session_data *sd) __attribute__((nonnull (2)));
-
-
-void clif_parse_Mail_getattach(int fd, struct map_session_data *sd)
-{
- int mail_id = RFIFOL(fd,2);
- int i;
-
-# 14787 "../../../server-code/src/map/clif.c" 3 4
-_Bool
-# 14787 "../../../server-code/src/map/clif.c"
- fail =
-# 14787 "../../../server-code/src/map/clif.c" 3 4
- 0
-# 14787 "../../../server-code/src/map/clif.c"
- ;
-
- if( !chrif->isconnected() )
- return;
- if( mail_id <= 0 )
- return;
- if( mail->invalid_operation(sd) )
- return;
-
- do { for ((i) = (0); (i) < (30); ++(i)) if (sd->mail.inbox.msg[i].id == mail_id) break; } while(
-# 14796 "../../../server-code/src/map/clif.c" 3 4
-0
-# 14796 "../../../server-code/src/map/clif.c"
-);
- if( i == 30 )
- return;
-
- if( sd->mail.inbox.msg[i].zeny < 1 && (sd->mail.inbox.msg[i].item.nameid < 1 || sd->mail.inbox.msg[i].item.amount < 1) )
- return;
-
- if( sd->mail.inbox.msg[i].zeny + sd->status.zeny > 0x7fffffff ) {
- clif->mail_getattachment(fd, 1);
- return;
- }
-
- if( sd->mail.inbox.msg[i].item.nameid > 0 ) {
- struct item_data *data;
- unsigned int weight;
-
- if ((data = itemdb->exists(sd->mail.inbox.msg[i].item.nameid)) ==
-# 14812 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 14812 "../../../server-code/src/map/clif.c"
- )
- return;
-
- if( ( (sd)->weight*10 >= (sd)->max_weight*9 ) ) {
- clif->mail_getattachment(fd, 2);
- return;
- }
-
- switch( pc->checkadditem(sd, data->nameid, sd->mail.inbox.msg[i].item.amount) ) {
- case ADDITEM_NEW:
- fail = ( pc->inventoryblank(sd) == 0 );
- break;
- case ADDITEM_OVERAMOUNT:
- fail =
-# 14825 "../../../server-code/src/map/clif.c" 3 4
- 1
-# 14825 "../../../server-code/src/map/clif.c"
- ;
- }
-
- if( fail ) {
- clif->mail_getattachment(fd, 1);
- return;
- }
-
- weight = data->weight * sd->mail.inbox.msg[i].item.amount;
- if( sd->weight + weight > sd->max_weight ) {
- clif->mail_getattachment(fd, 2);
- return;
- }
- }
-
- sd->mail.inbox.msg[i].zeny = 0;
- memset(&sd->mail.inbox.msg[i].item, 0, sizeof(struct item));
- mail->clear(sd);
-
- clif->mail_read(sd, mail_id);
- intif->Mail_getattach(sd->status.char_id, mail_id);
-}
-
-void clif_parse_Mail_delete(int fd, struct map_session_data *sd) __attribute__((nonnull (2)));
-
-
-void clif_parse_Mail_delete(int fd, struct map_session_data *sd)
-{
- int mail_id = RFIFOL(fd,2);
- int i;
-
- if( !chrif->isconnected() )
- return;
- if( mail_id <= 0 )
- return;
- if( mail->invalid_operation(sd) )
- return;
-
- do { for ((i) = (0); (i) < (30); ++(i)) if (sd->mail.inbox.msg[i].id == mail_id) break; } while(
-# 14863 "../../../server-code/src/map/clif.c" 3 4
-0
-# 14863 "../../../server-code/src/map/clif.c"
-);
- if (i < 30) {
- struct mail_message *msg = &sd->mail.inbox.msg[i];
-
- if( (msg->item.nameid > 0 && msg->item.amount > 0) || msg->zeny > 0 ) {
- clif->mail_delete(sd->fd, mail_id, 1);
- return;
- }
-
- sd->mail.inbox.msg[i].zeny = 0;
- memset(&sd->mail.inbox.msg[i].item, 0, sizeof(struct item));
- mail->clear(sd);
- intif->Mail_delete(sd->status.char_id, mail_id);
- }
-}
-
-void clif_parse_Mail_return(int fd, struct map_session_data *sd) __attribute__((nonnull (2)));
-
-
-void clif_parse_Mail_return(int fd, struct map_session_data *sd)
-{
- int mail_id = RFIFOL(fd,2);
- int i;
-
- if( mail_id <= 0 )
- return;
- if( mail->invalid_operation(sd) )
- return;
-
- do { for ((i) = (0); (i) < (30); ++(i)) if (sd->mail.inbox.msg[i].id == mail_id) break; } while(
-# 14892 "../../../server-code/src/map/clif.c" 3 4
-0
-# 14892 "../../../server-code/src/map/clif.c"
-);
- if (i < 30 && sd->mail.inbox.msg[i].send_id != 0) {
- sd->mail.inbox.msg[i].zeny = 0;
- memset(&sd->mail.inbox.msg[i].item, 0, sizeof(struct item));
- mail->clear(sd);
- intif->Mail_return(sd->status.char_id, mail_id);
- } else {
- clif->mail_return(sd->fd, mail_id, 1);
- }
-}
-
-void clif_parse_Mail_setattach(int fd, struct map_session_data *sd) __attribute__((nonnull (2)));
-
-
-void clif_parse_Mail_setattach(int fd, struct map_session_data *sd)
-{
- int idx = RFIFOW(fd,2);
- int amount = RFIFOL(fd,4);
- unsigned char flag;
-
- if( !chrif->isconnected() )
- return;
- if (idx < 0 || amount < 0)
- return;
-
- flag = mail->setitem(sd, idx, amount);
- clif->mail_setattachment(fd,idx,flag);
-}
-
-void clif_parse_Mail_winopen(int fd, struct map_session_data *sd) __attribute__((nonnull (2)));
-
-
-
-
-
-
-void clif_parse_Mail_winopen(int fd, struct map_session_data *sd)
-{
- int flag = RFIFOW(fd,2);
-
- if (flag == 0 || flag == 1)
- mail->removeitem(sd, 0);
- if (flag == 0 || flag == 2)
- mail->removezeny(sd, 0);
-}
-
-void clif_parse_Mail_send(int fd, struct map_session_data *sd) __attribute__((nonnull (2)));
-
-
-void clif_parse_Mail_send(int fd, struct map_session_data *sd)
-{
- struct mail_message msg;
- int body_len;
-
- if( !chrif->isconnected() )
- return;
- if( sd->state.trading )
- return;
-
- if( RFIFOW(fd,2) < 69 ) {
- (showmsg->showWarning(("Invalid Msg Len from account %d.\n"), sd->status.account_id));
- return;
- }
-
- if( ((sd->cansendmail_tick)-(timer->gettick())) > 0 ) {
- clif->message(sd->fd,atcommand->msgsd((sd),(875)));
- clif->mail_send(fd,
-# 14958 "../../../server-code/src/map/clif.c" 3 4
- 1
-# 14958 "../../../server-code/src/map/clif.c"
- );
- return;
- }
-
- body_len = RFIFOB(fd,68);
-
- if (body_len > 200)
- body_len = 200;
-
- memset(&msg, 0, sizeof(msg));
- if (!mail->setattachment(sd, &msg)) {
- clif->mail_send(sd->fd,
-# 14969 "../../../server-code/src/map/clif.c" 3 4
- 1
-# 14969 "../../../server-code/src/map/clif.c"
- );
- mail->removeitem(sd,0);
- mail->removezeny(sd,0);
- return;
- }
-
- msg.id = 0;
- msg.send_id = sd->status.char_id;
- msg.dest_id = 0;
- (strlib->safestrncpy_((msg.send_name),(sd->status.name),((23 + 1))));
- (strlib->safestrncpy_((msg.dest_name),(RFIFOP(fd,4)),((23 + 1))));
- (strlib->safestrncpy_((msg.title),(RFIFOP(fd,28)),(40)));
-
- if (msg.title[0] == '\0') {
- return;
- }
-
- if (body_len)
- (strlib->safestrncpy_((msg.body),(RFIFOP(fd,69)),(body_len + 1)));
- else
- memset(msg.body, 0x00, 200);
-
- msg.timestamp = time(
-# 14991 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 14991 "../../../server-code/src/map/clif.c"
- );
- if( !intif->Mail_send(sd->status.account_id, &msg) )
- mail->deliveryfail(sd, &msg);
-
- sd->cansendmail_tick = timer->gettick() + 1000;
-}
-# 15007 "../../../server-code/src/map/clif.c"
-void clif_Auction_openwindow(struct map_session_data *sd)
-{
- int fd;
-
- do { if (((void)(sd),
-# 15011 "../../../server-code/src/map/clif.c" 3 4
-0
-# 15011 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- fd = sd->fd;
- if (sd->state.storage_flag != STORAGE_FLAG_CLOSED || sd->state.vending || sd->state.buyingstore || sd->state.trading)
- return;
-
- if( !battle_config.feature_auction )
- return;
-
- WFIFOHEAD(fd,packet_db[0x25f].len);
- WFIFOW(fd,0) = 0x25f;
- WFIFOL(fd,2) = 0;
- WFIFOSET(fd,packet_db[0x25f].len);
-}
-
-
-
-void clif_Auction_results(struct map_session_data *sd, short count, short pages, const uint8 *buf)
-{
- int i, fd, len = sizeof(struct auction_data);
- struct auction_data auction;
- struct item_data *item;
-
- do { if (((void)(sd),
-# 15033 "../../../server-code/src/map/clif.c" 3 4
-0
-# 15033 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- fd = sd->fd;
- WFIFOHEAD(fd,12 + (count * 83));
- WFIFOW(fd,0) = 0x252;
- WFIFOW(fd,2) = 12 + (count * 83);
- WFIFOL(fd,4) = pages;
- WFIFOL(fd,8) = count;
-
- for( i = 0; i < count; i++ ) {
- int k = 12 + (i * 83);
- memcpy(&auction, RBUFP(buf,i * len), len);
-
- WFIFOL(fd,k) = auction.auction_id;
- (strlib->safestrncpy_((WFIFOP(fd,4+k)),(auction.seller_name),((23 + 1))));
-
- if( (item = itemdb->exists(auction.item.nameid)) !=
-# 15048 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 15048 "../../../server-code/src/map/clif.c"
- && item->view_id > 0 )
- WFIFOW(fd,28+k) = item->view_id;
- else
- WFIFOW(fd,28+k) = auction.item.nameid;
-
- WFIFOL(fd,30+k) = auction.type;
- WFIFOW(fd,34+k) = auction.item.amount;
- WFIFOB(fd,36+k) = auction.item.identify;
- WFIFOB(fd,37+k) = auction.item.attribute;
- WFIFOB(fd,38+k) = auction.item.refine;
- WFIFOW(fd,39+k) = auction.item.card[0];
- WFIFOW(fd,41+k) = auction.item.card[1];
- WFIFOW(fd,43+k) = auction.item.card[2];
- WFIFOW(fd,45+k) = auction.item.card[3];
- WFIFOL(fd,47+k) = auction.price;
- WFIFOL(fd,51+k) = auction.buynow;
- (strlib->safestrncpy_((WFIFOP(fd,55+k)),(auction.buyer_name),((23 + 1))));
- WFIFOL(fd,79+k) = (uint32)auction.timestamp;
- }
- WFIFOSET(fd,WFIFOW(fd,2));
-}
-
-
-
-
-
-
-void clif_Auction_setitem(int fd, int index,
-# 15075 "../../../server-code/src/map/clif.c" 3 4
- _Bool
-# 15075 "../../../server-code/src/map/clif.c"
- fail) {
- WFIFOHEAD(fd,packet_db[0x256].len);
- WFIFOW(fd,0) = 0x256;
- WFIFOW(fd,2) = index;
- WFIFOB(fd,4) = fail;
- WFIFOSET(fd,packet_db[0x256].len);
-}
-
-void clif_parse_Auction_cancelreg(int fd, struct map_session_data *sd) __attribute__((nonnull (2)));
-
-
-
-
-
-
-void clif_parse_Auction_cancelreg(int fd, struct map_session_data *sd)
-{
- if( sd->auction.amount > 0 )
- clif->additem(sd, sd->auction.index, sd->auction.amount, 0);
-
- sd->auction.amount = 0;
-}
-
-void clif_parse_Auction_setitem(int fd, struct map_session_data *sd) __attribute__((nonnull (2)));
-
-
-void clif_parse_Auction_setitem(int fd, struct map_session_data *sd)
-{
- int idx = RFIFOW(fd,2) - 2;
- int amount = RFIFOL(fd,4);
- struct item_data *item;
-
- if( !battle_config.feature_auction )
- return;
-
- if( sd->auction.amount > 0 )
- sd->auction.amount = 0;
-
- if( idx < 0 || idx >= 100 ) {
- (showmsg->showWarning(("Character %s trying to set invalid item index in auctions.\n"), sd->status.name));
- return;
- }
-
- if( amount != 1 || amount > sd->status.inventory[idx].amount ) {
- (showmsg->showWarning(("Character %s trying to set invalid amount in auctions.\n"), sd->status.name));
- return;
- }
-
- if( (item = itemdb->exists(sd->status.inventory[idx].nameid)) !=
-# 15123 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 15123 "../../../server-code/src/map/clif.c"
- && !(item->type == IT_ARMOR || item->type == IT_PETARMOR || item->type == IT_WEAPON || item->type == IT_CARD || item->type == IT_ETC) )
- {
- clif->auction_setitem(sd->fd, idx,
-# 15125 "../../../server-code/src/map/clif.c" 3 4
- 1
-# 15125 "../../../server-code/src/map/clif.c"
- );
- return;
- }
-
- if( !( ( (((sd))->extra_temp_permissions&(PC_PERM_TRADE)) != 0 || (((sd))->group->e_permissions&(PC_PERM_TRADE)) != 0 ) ) || sd->status.inventory[idx].expire_time ||
- !sd->status.inventory[idx].identify ||
- !(itemdb->isrestricted((&sd->status.inventory[idx]), (( (sd)->group->level )), 0, itemdb->canauction_sub)) ||
- (sd->status.inventory[idx].bound && !( ( (((sd))->extra_temp_permissions&(PC_PERM_TRADE_BOUND)) != 0 || (((sd))->group->e_permissions&(PC_PERM_TRADE_BOUND)) != 0 ) )) ) {
- clif->auction_setitem(sd->fd, idx,
-# 15133 "../../../server-code/src/map/clif.c" 3 4
- 1
-# 15133 "../../../server-code/src/map/clif.c"
- );
- return;
- }
-
- sd->auction.index = idx;
- sd->auction.amount = amount;
- clif->auction_setitem(fd, idx + 2,
-# 15139 "../../../server-code/src/map/clif.c" 3 4
- 0
-# 15139 "../../../server-code/src/map/clif.c"
- );
-}
-# 15155 "../../../server-code/src/map/clif.c"
-void clif_Auction_message(int fd, unsigned char flag)
-{
- WFIFOHEAD(fd,packet_db[0x250].len);
- WFIFOW(fd,0) = 0x250;
- WFIFOB(fd,2) = flag;
- WFIFOSET(fd,packet_db[0x250].len);
-}
-
-
-
-
-
-
-
-void clif_Auction_close(int fd, unsigned char flag)
-{
- WFIFOHEAD(fd,packet_db[0x25e].len);
- WFIFOW(fd,0) = 0x25d;
- WFIFOW(fd,2) = flag;
- WFIFOSET(fd,packet_db[0x25e].len);
-}
-
-void clif_parse_Auction_register(int fd, struct map_session_data *sd) __attribute__((nonnull (2)));
-
-
-void clif_parse_Auction_register(int fd, struct map_session_data *sd)
-{
- struct auction_data auction;
- struct item_data *item;
-
- if (!battle_config.feature_auction)
- return;
-
- do { if (( (sd->auction.index >= 0 && sd->auction.index < 100) ?
-# 15188 "../../../server-code/src/map/clif.c" 3 4
-0
-# 15188 "../../../server-code/src/map/clif.c"
-: (nullpo->assert_report("../../../server-code/src/map/clif.c", 15188, __func__, "sd->auction.index >= 0 && sd->auction.index < 100", "failed assertion"),
-# 15188 "../../../server-code/src/map/clif.c" 3 4
-1
-# 15188 "../../../server-code/src/map/clif.c"
-) )) return; } while(0);
-
- memset(&auction, 0, sizeof(auction));
- auction.price = RFIFOL(fd,2);
- auction.buynow = RFIFOL(fd,6);
- auction.hours = RFIFOW(fd,10);
-
-
- if (auction.price <= 0 || auction.buynow <= 0) {
- (showmsg->showWarning(("Character %s trying to register auction wit wrong price.\n"), sd->status.name));
- return;
- }
-
- if( sd->auction.amount < 1 ) {
- (showmsg->showWarning(("Character %s trying to register auction without item.\n"), sd->status.name));
- return;
- }
-
- if( auction.price >= auction.buynow ) {
- (showmsg->showWarning(("Character %s trying to alter auction prices.\n"), sd->status.name));
- return;
- }
-
- if( auction.hours < 1 || auction.hours > 48 ) {
- (showmsg->showWarning(("Character %s trying to enter an invalid time for auction.\n"), sd->status.name));
- return;
- }
-
- if( sd->status.zeny < (auction.hours * battle_config.auction_feeperhour) ) {
- clif_Auction_message(fd, 5);
- return;
- }
-
- if( auction.buynow > battle_config.auction_maximumprice )
- {
- auction.buynow = battle_config.auction_maximumprice;
- if( auction.price >= auction.buynow )
- auction.price = auction.buynow - 1;
- }
-
- auction.auction_id = 0;
- auction.seller_id = sd->status.char_id;
- (strlib->safestrncpy_((auction.seller_name),(sd->status.name),(sizeof(auction.seller_name))));
- auction.buyer_id = 0;
- memset(auction.buyer_name, '\0', sizeof(auction.buyer_name));
-
- if( sd->status.inventory[sd->auction.index].nameid == 0 || sd->status.inventory[sd->auction.index].amount < sd->auction.amount )
- {
- clif->auction_message(fd, 2);
- return;
- }
-
- if( (item = itemdb->exists(sd->status.inventory[sd->auction.index].nameid)) ==
-# 15240 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 15240 "../../../server-code/src/map/clif.c"
- )
- {
- clif->auction_message(fd, 2);
- return;
- }
-
-
- if( sd->status.inventory[sd->auction.index].bound && !( ( (((sd))->extra_temp_permissions&(PC_PERM_TRADE_BOUND)) != 0 || (((sd))->group->e_permissions&(PC_PERM_TRADE_BOUND)) != 0 ) ) ) {
- clif->message(sd->fd, atcommand->msgsd((sd),(293)));
- clif->auction_message(fd, 2);
- return;
- }
-
- (strlib->safestrncpy_((auction.item_name),(item->jname),(sizeof(auction.item_name))));
- auction.type = item->type;
- memcpy(&auction.item, &sd->status.inventory[sd->auction.index], sizeof(struct item));
- auction.item.amount = 1;
- auction.timestamp = 0;
-
- if( !intif->Auction_register(&auction) )
- clif->auction_message(fd, 4);
- else
- {
- int zeny = auction.hours*battle_config.auction_feeperhour;
-
- pc->delitem(sd, sd->auction.index, sd->auction.amount, 1, DELITEM_SOLD, LOG_TYPE_AUCTION);
- sd->auction.amount = 0;
-
- pc->payzeny(sd, zeny, LOG_TYPE_AUCTION,
-# 15268 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 15268 "../../../server-code/src/map/clif.c"
- );
- }
-}
-
-void clif_parse_Auction_cancel(int fd, struct map_session_data *sd) __attribute__((nonnull (2)));
-
-
-void clif_parse_Auction_cancel(int fd, struct map_session_data *sd)
-{
- unsigned int auction_id = RFIFOL(fd,2);
-
- intif->Auction_cancel(sd->status.char_id, auction_id);
-}
-
-void clif_parse_Auction_close(int fd, struct map_session_data *sd) __attribute__((nonnull (2)));
-
-
-void clif_parse_Auction_close(int fd, struct map_session_data *sd)
-{
- unsigned int auction_id = RFIFOL(fd,2);
-
- intif->Auction_close(sd->status.char_id, auction_id);
-}
-
-void clif_parse_Auction_bid(int fd, struct map_session_data *sd) __attribute__((nonnull (2)));
-
-
-void clif_parse_Auction_bid(int fd, struct map_session_data *sd)
-{
- unsigned int auction_id = RFIFOL(fd,2);
- int bid = RFIFOL(fd,6);
-
- if( !( ( (((sd))->extra_temp_permissions&(PC_PERM_TRADE)) != 0 || (((sd))->group->e_permissions&(PC_PERM_TRADE)) != 0 ) ) ) {
- clif->message(sd->fd, atcommand->msgsd((sd),(246)));
- return;
- }
-
- if( bid <= 0 )
- clif->auction_message(fd, 0);
- else if( bid > sd->status.zeny )
- clif->auction_message(fd, 8);
- else if ( intif->CheckForCharServer() )
- clif->auction_message(fd, 0);
- else {
- pc->payzeny(sd, bid, LOG_TYPE_AUCTION,
-# 15312 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 15312 "../../../server-code/src/map/clif.c"
- );
- intif->Auction_bid(sd->status.char_id, sd->status.name, auction_id, bid);
- }
-}
-
-void clif_parse_Auction_search(int fd, struct map_session_data* sd) __attribute__((nonnull (2)));
-# 15327 "../../../server-code/src/map/clif.c"
-void clif_parse_Auction_search(int fd, struct map_session_data* sd)
-{
- char search_text[(23 + 1)];
- short type = RFIFOW(fd,2), page = RFIFOW(fd,32);
- int price = RFIFOL(fd,4);
-
- if( !battle_config.feature_auction )
- return;
-
- clif->pAuction_cancelreg(fd, sd);
-
- (strlib->safestrncpy_((search_text),(RFIFOP(fd,8)),(sizeof(search_text))));
- intif->Auction_requestlist(sd->status.char_id, type, price, search_text, page);
-}
-
-void clif_parse_Auction_buysell(int fd, struct map_session_data* sd) __attribute__((nonnull (2)));
-
-
-
-
-
-void clif_parse_Auction_buysell(int fd, struct map_session_data* sd)
-{
- short type = RFIFOW(fd,2) + 6;
-
- if( !battle_config.feature_auction )
- return;
-
- clif->pAuction_cancelreg(fd, sd);
-
- intif->Auction_requestlist(sd->status.char_id, type, 0, "", 1);
-}
-
-
-
-
-
-
-
-void clif_cashshop_show(struct map_session_data *sd, struct npc_data *nd) {
- struct npc_item_list *shop =
-# 15367 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 15367 "../../../server-code/src/map/clif.c"
- ;
- unsigned short shop_size = 0;
- int fd,i, c = 0;
- int currency[2] = { 0,0 };
-
-
-
- const int offset = 12;
-
-
- do { if (((void)(sd),
-# 15377 "../../../server-code/src/map/clif.c" 3 4
-0
-# 15377 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- do { if (((void)(nd),
-# 15378 "../../../server-code/src/map/clif.c" 3 4
-0
-# 15378 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- if( nd->subtype == SCRIPT ) {
- shop = nd->u.scr.shop->item;
- shop_size = nd->u.scr.shop->items;
-
- npc->trader_count_funds(nd, sd);
-
- currency[0] = npc->trader_funds[0];
- currency[1] = npc->trader_funds[1];
- } else {
- shop = nd->u.shop.shop_item;
- shop_size = nd->u.shop.count;
-
- currency[0] = sd->cashPoints;
- currency[1] = sd->kafraPoints;
- }
-
- fd = sd->fd;
- sd->npc_shopid = nd->bl.id;
- WFIFOHEAD(fd,offset+shop_size*11);
- WFIFOW(fd,0) = 0x287;
-
- WFIFOL(fd,4) = currency[0];
-
- WFIFOL(fd,8) = currency[1];
-
-
- for( i = 0; i < shop_size; i++ ) {
- if( shop[i].nameid ) {
- struct item_data* id = itemdb->search(shop[i].nameid);
- WFIFOL(fd,offset+0+i*11) = shop[i].value;
- WFIFOL(fd,offset+4+i*11) = shop[i].value;
- WFIFOB(fd,offset+8+i*11) = itemtype(id->type);
- WFIFOW(fd,offset+9+i*11) = ( id->view_id > 0 ) ? id->view_id : id->nameid;
- c++;
- }
- }
- WFIFOW(fd,2) = offset+c*11;
- WFIFOSET(fd,WFIFOW(fd,2));
-}
-
-
-
-
-
-void clif_cashshop_ack(struct map_session_data* sd, int error) {
- struct npc_data *nd;
- int fd;
- int currency[2] = { 0,0 };
-
- do { if (((void)(sd),
-# 15429 "../../../server-code/src/map/clif.c" 3 4
-0
-# 15429 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- fd = sd->fd;
- if( (nd = map->id2nd(sd->npc_shopid)) && nd->subtype == SCRIPT ) {
- npc->trader_count_funds(nd,sd);
- currency[0] = npc->trader_funds[0];
- currency[1] = npc->trader_funds[1];
- } else {
- currency[0] = sd->cashPoints;
- currency[1] = sd->kafraPoints;
- }
-
- WFIFOHEAD(fd, packet_db[0x289].len);
- WFIFOW(fd,0) = 0x289;
- WFIFOL(fd,2) = currency[0];
-
-
-
- WFIFOL(fd,6) = currency[1];
- WFIFOW(fd,10) = TOW(error);
-
- WFIFOSET(fd, packet_db[0x289].len);
-}
-
-void clif_parse_cashshop_buy(int fd, struct map_session_data *sd) __attribute__((nonnull (2)));
-
-
-
-
-void clif_parse_cashshop_buy(int fd, struct map_session_data *sd)
-{
- int fail = 0;
-
- if( sd->state.trading || !sd->npc_shopid || ( ((sd)->extra_temp_permissions&(PC_PERM_DISABLE_STORE)) != 0 || ((sd)->group->e_permissions&(PC_PERM_DISABLE_STORE)) != 0 ) )
- fail = 1;
- else {
-
-
-
-
-
-
-
- int len = RFIFOW(fd,2);
- int points = RFIFOL(fd,4);
- int count = RFIFOW(fd,8);
- struct itemlist item_list = { 0 };
- int i;
-
- if( len < 10 || len != 10 + count * 4) {
- (showmsg->showWarning(("Player %d sent incorrect cash shop buy packet (len %d:%d)!\n"), sd->status.char_id, len, 10 + count * 4));
- return;
- }
- memset(&(item_list), 0, sizeof(item_list));
- do { int _empty_ = ( (item_list)._max_ )-( (item_list)._len_ ); if ((count) > _empty_) { while ((count) > _empty_) _empty_ += (1); do { if ((_empty_+( (item_list)._len_ )) > ( (item_list)._max_ )) { if (( (item_list)._max_ ) == 0) ( (item_list)._data_ ) = (iMalloc->malloc(((_empty_+( (item_list)._len_ ))*sizeof(( ( ( (item_list)._data_ )[0] ) ))),"../../../server-code/src/map/clif.c", 15482, __func__)); else ( (item_list)._data_ ) = (iMalloc->realloc((( (item_list)._data_ )),((_empty_+( (item_list)._len_ ))*sizeof(( ( ( (item_list)._data_ )[0] ) ))),"../../../server-code/src/map/clif.c", 15482, __func__)); memset(( (item_list)._data_ )+( (item_list)._len_ ), 0, (( (item_list)._max_ )-( (item_list)._len_ ))*sizeof(( ( ( (item_list)._data_ )[0] ) ))); ( (item_list)._max_ ) = (_empty_+( (item_list)._len_ )); } else if ((_empty_+( (item_list)._len_ )) == 0 && ( (item_list)._max_ ) > 0) { (iMalloc->free((( (item_list)._data_ )),"../../../server-code/src/map/clif.c", 15482, __func__)); ( (item_list)._data_ ) =
-# 15482 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 15482 "../../../server-code/src/map/clif.c"
- ; ( (item_list)._max_ ) = 0; ( (item_list)._len_ ) = 0; } else if ((_empty_+( (item_list)._len_ )) < ( (item_list)._max_ )) { ( (item_list)._data_ ) = (iMalloc->realloc((( (item_list)._data_ )),((_empty_+( (item_list)._len_ ))*sizeof(( ( ( (item_list)._data_ )[0] ) ))),"../../../server-code/src/map/clif.c", 15482, __func__)); ( (item_list)._max_ ) = (_empty_+( (item_list)._len_ )); if ((_empty_+( (item_list)._len_ )) - ( (item_list)._len_ ) > 0) ( (item_list)._len_ ) = (_empty_+( (item_list)._len_ )); } } while(
-# 15482 "../../../server-code/src/map/clif.c" 3 4
- 0
-# 15482 "../../../server-code/src/map/clif.c"
- ); } } while(
-# 15482 "../../../server-code/src/map/clif.c" 3 4
- 0
-# 15482 "../../../server-code/src/map/clif.c"
- );
- for (i = 0; i < count; i++) {
- struct itemlist_entry entry = { 0 };
-
- entry.amount = RFIFOW(fd, 10 + 4 * i);
- entry.id = RFIFOW(fd, 10 + 4 * i + 2);
-
- do { ( ( (item_list)._data_ )[( (item_list)._len_ )] ) = (entry); ++( (item_list)._len_ ); }while(
-# 15489 "../../../server-code/src/map/clif.c" 3 4
- 0
-# 15489 "../../../server-code/src/map/clif.c"
- );
- }
- fail = npc->cashshop_buylist(sd, points, &item_list);
- do { if (( (item_list)._max_ ) > 0) { (iMalloc->free((( (item_list)._data_ )),"../../../server-code/src/map/clif.c", 15492, __func__)); ( (item_list)._data_ ) =
-# 15492 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 15492 "../../../server-code/src/map/clif.c"
- ; ( (item_list)._max_ ) = 0; ( (item_list)._len_ ) = 0; } } while(
-# 15492 "../../../server-code/src/map/clif.c" 3 4
- 0
-# 15492 "../../../server-code/src/map/clif.c"
- );
-
- }
-
- clif->cashshop_ack(sd,fail);
-}
-# 15508 "../../../server-code/src/map/clif.c"
-void clif_Adopt_reply(struct map_session_data *sd, int type)
-{
- int fd;
-
- do { if (((void)(sd),
-# 15512 "../../../server-code/src/map/clif.c" 3 4
-0
-# 15512 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- fd = sd->fd;
- WFIFOHEAD(fd,6);
- WFIFOW(fd,0) = 0x216;
- WFIFOL(fd,2) = type;
- WFIFOSET(fd,6);
-}
-
-
-
-void clif_Adopt_request(struct map_session_data *sd, struct map_session_data *src, int p_id) {
- int fd;
-
- do { if (((void)(sd),
-# 15525 "../../../server-code/src/map/clif.c" 3 4
-0
-# 15525 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- do { if (((void)(src),
-# 15526 "../../../server-code/src/map/clif.c" 3 4
-0
-# 15526 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- fd = sd->fd;
- WFIFOHEAD(fd,34);
- WFIFOW(fd,0) = 0x1f6;
- WFIFOL(fd,2) = src->status.account_id;
- WFIFOL(fd,6) = p_id;
- memcpy(WFIFOP(fd,10), src->status.name, (23 + 1));
- WFIFOSET(fd,34);
-}
-
-void clif_parse_Adopt_request(int fd, struct map_session_data *sd) __attribute__((nonnull (2)));
-
-
-void clif_parse_Adopt_request(int fd, struct map_session_data *sd) {
- struct map_session_data *tsd = map->id2sd(RFIFOL(fd,2)), *p_sd = map->charid2sd(sd->status.partner_id);
-
- if( pc->can_Adopt(sd, p_sd, tsd) ) {
- tsd->adopt_invite = sd->status.account_id;
- clif->adopt_request(tsd, sd, p_sd->status.account_id);
- }
-}
-
-void clif_parse_Adopt_reply(int fd, struct map_session_data *sd) __attribute__((nonnull (2)));
-
-
-
-
-
-void clif_parse_Adopt_reply(int fd, struct map_session_data *sd) {
- int p1_id = RFIFOL(fd,2);
- int p2_id = RFIFOL(fd,6);
- int result = RFIFOL(fd,10);
- struct map_session_data* p1_sd = map->id2sd(p1_id);
- struct map_session_data* p2_sd = map->id2sd(p2_id);
-
- int pid = sd->adopt_invite;
- sd->adopt_invite = 0;
-
- if( p1_sd ==
-# 15564 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 15564 "../../../server-code/src/map/clif.c"
- || p2_sd ==
-# 15564 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 15564 "../../../server-code/src/map/clif.c"
- )
- return;
-
- if( pid != p1_sd->status.account_id )
- return;
-
- if( result == 0 )
- return;
-
- pc->adoption(p1_sd, p2_sd, sd);
-}
-# 15583 "../../../server-code/src/map/clif.c"
-void clif_bossmapinfo(int fd, struct mob_data *md, short flag)
-{
- WFIFOHEAD(fd,70);
- memset(WFIFOP(fd,0),0,70);
- WFIFOW(fd,0) = 0x293;
-
- if( md !=
-# 15589 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 15589 "../../../server-code/src/map/clif.c"
- ) {
- if( md->bl.prev !=
-# 15590 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 15590 "../../../server-code/src/map/clif.c"
- ) {
- if( flag ) {
- WFIFOB(fd,2) = 1;
- WFIFOL(fd,3) = md->bl.x;
- WFIFOL(fd,7) = md->bl.y;
- } else
- WFIFOB(fd,2) = 2;
- } else if (md->spawn_timer != (-1)) {
- const struct TimerData * timer_data = timer->get(md->spawn_timer);
- unsigned int seconds;
- int hours, minutes;
-
- seconds = (unsigned int)(((timer_data->tick)-(timer->gettick())) / 1000 + 60);
- hours = seconds / (60 * 60);
- seconds = seconds - (60 * 60 * hours);
- minutes = seconds / 60;
-
- WFIFOB(fd,2) = 3;
- WFIFOW(fd,11) = hours;
- WFIFOW(fd,13) = minutes;
- }
- (strlib->safestrncpy_((WFIFOP(fd,19)),(md->db->jname),((23 + 1))));
- }
-
- WFIFOSET(fd,70);
-}
-
-void clif_parse_ViewPlayerEquip(int fd, struct map_session_data* sd) __attribute__((nonnull (2)));
-
-
-void clif_parse_ViewPlayerEquip(int fd, struct map_session_data* sd) {
- int charid = RFIFOL(fd, 2);
- struct map_session_data* tsd = map->id2sd(charid);
-
- if (!tsd)
- return;
-
- if( tsd->status.show_equip || ( ((sd)->extra_temp_permissions&(PC_PERM_VIEW_EQUIPMENT)) != 0 || ((sd)->group->e_permissions&(PC_PERM_VIEW_EQUIPMENT)) != 0 ) )
- clif->viewequip_ack(sd, tsd);
- else
- clif->msgtable(sd, MSG_EQUIP_NOT_PUBLIC);
-}
-
-void clif_parse_EquipTick(int fd, struct map_session_data* sd) __attribute__((nonnull (2)));
-
-
-
-
-
-
-
-void clif_parse_EquipTick(int fd, struct map_session_data* sd)
-{
-
-# 15643 "../../../server-code/src/map/clif.c" 3 4
-_Bool
-# 15643 "../../../server-code/src/map/clif.c"
- flag = (RFIFOL(fd,6) != 0) ?
-# 15643 "../../../server-code/src/map/clif.c" 3 4
- 1
-# 15643 "../../../server-code/src/map/clif.c"
- :
-# 15643 "../../../server-code/src/map/clif.c" 3 4
- 0
-# 15643 "../../../server-code/src/map/clif.c"
- ;
- sd->status.show_equip = flag;
- clif->equiptickack(sd, flag);
-}
-
-void clif_parse_PartyTick(int fd, struct map_session_data* sd) __attribute__((nonnull (2)));
-
-
-
-
-void clif_parse_PartyTick(int fd, struct map_session_data* sd)
-{
-
-# 15655 "../../../server-code/src/map/clif.c" 3 4
-_Bool
-# 15655 "../../../server-code/src/map/clif.c"
- flag = RFIFOB(fd,6)?
-# 15655 "../../../server-code/src/map/clif.c" 3 4
- 1
-# 15655 "../../../server-code/src/map/clif.c"
- :
-# 15655 "../../../server-code/src/map/clif.c" 3 4
- 0
-# 15655 "../../../server-code/src/map/clif.c"
- ;
- sd->status.allow_party = flag;
- clif->partytickack(sd, flag);
-}
-
-
-
-
-
-
-
-void clif_quest_send_list(struct map_session_data *sd)
-{
- int i, len, real_len;
- uint8 *buf =
-# 15669 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 15669 "../../../server-code/src/map/clif.c"
- ;
- struct packet_quest_list_header *packet =
-# 15670 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 15670 "../../../server-code/src/map/clif.c"
- ;
- do { if (((void)(sd),
-# 15671 "../../../server-code/src/map/clif.c" 3 4
-0
-# 15671 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- len = sizeof(struct packet_quest_list_header)
- + sd->avail_quests * (sizeof(struct packet_quest_list_info)
- + 3 * sizeof(struct packet_mission_info_sub));
- buf = (iMalloc->malloc((len),"../../../server-code/src/map/clif.c", 15676, __func__));
- packet = WBUFP(buf, 0);
- real_len = sizeof(*packet);
-
- packet->PacketType = questListType;
- packet->questCount = sd->avail_quests;
-
- for (i = 0; i < sd->avail_quests; i++) {
- struct packet_quest_list_info *info = (struct packet_quest_list_info *)(buf+real_len);
-
- struct quest_db *qi = quest->db(sd->quest_log[i].quest_id);
- int j;
-
- real_len += sizeof(*info);
-
- info->questID = sd->quest_log[i].quest_id;
- info->active = sd->quest_log[i].state;
-
- info->quest_svrTime = sd->quest_log[i].time - qi->time;
- info->quest_endTime = sd->quest_log[i].time;
- info->hunting_count = qi->objectives_count;
-
- for (j = 0; j < qi->objectives_count; j++) {
- struct mob_db *mob_data;
- if (( (j < 3) ?
-# 15700 "../../../server-code/src/map/clif.c" 3 4
- 0
-# 15700 "../../../server-code/src/map/clif.c"
- : (nullpo->assert_report("../../../server-code/src/map/clif.c", 15700, __func__, "j < 3", "failed assertion"),
-# 15700 "../../../server-code/src/map/clif.c" 3 4
- 1
-# 15700 "../../../server-code/src/map/clif.c"
- ) )) break; else (void)0;
- real_len += sizeof(info->objectives[j]);
-
- mob_data = mob->db(qi->objectives[j].mob);
-
- info->objectives[j].mob_id = qi->objectives[j].mob;
- info->objectives[j].huntCount = sd->quest_log[i].count[j];
- info->objectives[j].maxCount = qi->objectives[j].count;
- (strlib->safestrncpy_((info->objectives[j].mobName),(mob_data->jname),(sizeof(info->objectives[j].mobName))));
- }
-
- }
- packet->PacketLength = real_len;
- clif->send(buf, real_len, &sd->bl, SELF);
- (iMalloc->free((buf),"../../../server-code/src/map/clif.c", 15714, __func__));
-}
-
-
-
-void clif_quest_send_mission(struct map_session_data *sd)
-{
- int fd = sd->fd;
- int i, j;
- int len;
- struct mob_db *monster;
-
- do { if (((void)(sd),
-# 15726 "../../../server-code/src/map/clif.c" 3 4
-0
-# 15726 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- len = sd->avail_quests*104+8;
- WFIFOHEAD(fd, len);
- WFIFOW(fd,0) = 0x2b2;
- WFIFOW(fd,2) = len;
- WFIFOL(fd, 4) = sd->avail_quests;
-
- for (i = 0; i < sd->avail_quests; i++) {
- struct quest_db *qi = quest->db(sd->quest_log[i].quest_id);
- WFIFOL(fd, i*104+8) = sd->quest_log[i].quest_id;
- WFIFOL(fd, i*104+12) = sd->quest_log[i].time - qi->time;
- WFIFOL(fd, i*104+16) = sd->quest_log[i].time;
- WFIFOW(fd,i*104+20) = qi->objectives_count;
-
- for (j = 0 ; j < qi->objectives_count; j++) {
- WFIFOL(fd, i*104+22+j*30) = qi->objectives[j].mob;
- WFIFOW(fd,i*104+26+j*30) = sd->quest_log[i].count[j];
- monster = mob->db(qi->objectives[j].mob);
- memcpy(WFIFOP(fd, i*104+28+j*30), monster->jname, (23 + 1));
- }
- }
-
- WFIFOSET(fd, len);
-}
-
-
-
-void clif_quest_add(struct map_session_data *sd, struct quest *qd)
-{
- int fd;
- int i;
- struct quest_db *qi;
-
- do { if (((void)(sd),
-# 15759 "../../../server-code/src/map/clif.c" 3 4
-0
-# 15759 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- do { if (((void)(qd),
-# 15760 "../../../server-code/src/map/clif.c" 3 4
-0
-# 15760 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- fd = sd->fd;
- qi = quest->db(qd->quest_id);
- WFIFOHEAD(fd, packet_db[0x2b3].len);
- WFIFOW(fd,0) = 0x2b3;
- WFIFOL(fd, 2) = qd->quest_id;
- WFIFOB(fd, 6) = qd->state;
- WFIFOB(fd, 7) = qd->time - qi->time;
- WFIFOL(fd, 11) = qd->time;
- WFIFOW(fd,15) = qi->objectives_count;
-
- for (i = 0; i < qi->objectives_count; i++) {
- struct mob_db *monster;
- WFIFOL(fd, i*30+17) = qi->objectives[i].mob;
- WFIFOW(fd,i*30+21) = qd->count[i];
- monster = mob->db(qi->objectives[i].mob);
- memcpy(WFIFOP(fd, i*30+23), monster->jname, (23 + 1));
- }
-
- WFIFOSET(fd, packet_db[0x2b3].len);
-}
-
-
-
-void clif_quest_delete(struct map_session_data *sd, int quest_id) {
- int fd;
-
- do { if (((void)(sd),
-# 15787 "../../../server-code/src/map/clif.c" 3 4
-0
-# 15787 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- fd = sd->fd;
- WFIFOHEAD(fd, packet_db[0x2b4].len);
- WFIFOW(fd,0) = 0x2b4;
- WFIFOL(fd, 2) = quest_id;
- WFIFOSET(fd, packet_db[0x2b4].len);
-}
-
-
-
-void clif_quest_update_objective(struct map_session_data *sd, struct quest *qd)
-{
- int fd;
- int i;
- struct quest_db *qi;
- int len;
-
- do { if (((void)(sd),
-# 15804 "../../../server-code/src/map/clif.c" 3 4
-0
-# 15804 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- do { if (((void)(qd),
-# 15805 "../../../server-code/src/map/clif.c" 3 4
-0
-# 15805 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- fd = sd->fd;
- qi = quest->db(qd->quest_id);
- len = qi->objectives_count * 12 + 6;
-
- WFIFOHEAD(fd, len);
- WFIFOW(fd,0) = 0x2b5;
- WFIFOW(fd,2) = len;
- WFIFOW(fd,4) = qi->objectives_count;
-
- for (i = 0; i < qi->objectives_count; i++) {
- WFIFOL(fd, i*12+6) = qd->quest_id;
- WFIFOL(fd, i*12+10) = qi->objectives[i].mob;
- WFIFOW(fd,i*12+14) = qi->objectives[i].count;
- WFIFOW(fd,i*12+16) = qd->count[i];
- }
-
- WFIFOSET(fd, len);
-}
-
-void clif_parse_questStateAck(int fd, struct map_session_data *sd) __attribute__((nonnull (2)));
-
-
-void clif_parse_questStateAck(int fd, struct map_session_data *sd) {
- quest->update_status(sd, RFIFOL(fd,2), RFIFOB(fd,6)?Q_ACTIVE:Q_INACTIVE);
-}
-
-
-
-void clif_quest_update_status(struct map_session_data *sd, int quest_id,
-# 15834 "../../../server-code/src/map/clif.c" 3 4
- _Bool
-# 15834 "../../../server-code/src/map/clif.c"
- active) {
- int fd;
-
- do { if (((void)(sd),
-# 15837 "../../../server-code/src/map/clif.c" 3 4
-0
-# 15837 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- fd = sd->fd;
- WFIFOHEAD(fd, packet_db[0x2b7].len);
- WFIFOW(fd,0) = 0x2b7;
- WFIFOL(fd, 2) = quest_id;
- WFIFOB(fd, 6) = active;
- WFIFOSET(fd, packet_db[0x2b7].len);
-}
-# 15857 "../../../server-code/src/map/clif.c"
-void clif_quest_show_event(struct map_session_data *sd, struct block_list *bl, short state, short color)
-{
-
- int fd;
-
- do { if (((void)(sd),
-# 15862 "../../../server-code/src/map/clif.c" 3 4
-0
-# 15862 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- do { if (((void)(bl),
-# 15863 "../../../server-code/src/map/clif.c" 3 4
-0
-# 15863 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- fd = sd->fd;
- WFIFOHEAD(fd, packet_db[0x446].len);
- WFIFOW(fd,0) = 0x446;
- WFIFOL(fd, 2) = bl->id;
- WFIFOW(fd,6) = bl->x;
- WFIFOW(fd,8) = bl->y;
- WFIFOW(fd,10) = state;
- WFIFOW(fd,12) = color;
- WFIFOSET(fd, packet_db[0x446].len);
-
-}
-
-
-
-
-
-
-void clif_mercenary_updatestatus(struct map_session_data *sd, int type) {
- struct mercenary_data *md;
- struct status_data *mstatus;
- int fd;
- if( sd ==
-# 15885 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 15885 "../../../server-code/src/map/clif.c"
- || (md = sd->md) ==
-# 15885 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 15885 "../../../server-code/src/map/clif.c"
- )
- return;
-
- fd = sd->fd;
- mstatus = &md->battle_status;
- WFIFOHEAD(fd,packet_db[0x2a2].len);
- WFIFOW(fd,0) = 0x2a2;
- WFIFOW(fd,2) = type;
- switch( type ) {
- case SP_ATK1:
- {
- int atk = rnd()%(mstatus->rhw.atk2 - mstatus->rhw.atk + 1) + mstatus->rhw.atk;
- WFIFOL(fd,4) = (((atk) >= (
-# 15897 "../../../server-code/src/map/clif.c" 3 4
- (32767)
-# 15897 "../../../server-code/src/map/clif.c"
- )) ? (
-# 15897 "../../../server-code/src/map/clif.c" 3 4
- (32767)
-# 15897 "../../../server-code/src/map/clif.c"
- ) : ((atk) <= (0)) ? (0) : (atk));
- }
- break;
- case SP_MATK1:
- WFIFOL(fd,4) = (((mstatus->matk_max) >= (
-# 15901 "../../../server-code/src/map/clif.c" 3 4
- (32767)
-# 15901 "../../../server-code/src/map/clif.c"
- )) ? (
-# 15901 "../../../server-code/src/map/clif.c" 3 4
- (32767)
-# 15901 "../../../server-code/src/map/clif.c"
- ) : ((mstatus->matk_max) <= (0)) ? (0) : (mstatus->matk_max));
- break;
- case SP_HIT:
- WFIFOL(fd,4) = mstatus->hit;
- break;
- case SP_CRITICAL:
- WFIFOL(fd,4) = mstatus->cri/10;
- break;
- case SP_DEF1:
- WFIFOL(fd,4) = mstatus->def;
- break;
- case SP_MDEF1:
- WFIFOL(fd,4) = mstatus->mdef;
- break;
- case SP_MERCFLEE:
- WFIFOL(fd,4) = mstatus->flee;
- break;
- case SP_ASPD:
- WFIFOL(fd,4) = mstatus->amotion;
- break;
- case SP_HP:
- WFIFOL(fd,4) = mstatus->hp;
- break;
- case SP_MAXHP:
- WFIFOL(fd,4) = mstatus->max_hp;
- break;
- case SP_SP:
- WFIFOL(fd,4) = mstatus->sp;
- break;
- case SP_MAXSP:
- WFIFOL(fd,4) = mstatus->max_sp;
- break;
- case SP_MERCKILLS:
- WFIFOL(fd,4) = md->mercenary.kill_count;
- break;
- case SP_MERCFAITH:
- WFIFOL(fd,4) = mercenary->get_faith(md);
- break;
- }
- WFIFOSET(fd,packet_db[0x2a2].len);
-}
-
-
-
-
-
-void clif_mercenary_info(struct map_session_data *sd) {
- int fd;
- struct mercenary_data *md;
- struct status_data *mstatus;
- int atk;
-
- if( sd ==
-# 15953 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 15953 "../../../server-code/src/map/clif.c"
- || (md = sd->md) ==
-# 15953 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 15953 "../../../server-code/src/map/clif.c"
- )
- return;
-
- fd = sd->fd;
- mstatus = &md->battle_status;
-
- WFIFOHEAD(fd,packet_db[0x29b].len);
- WFIFOW(fd,0) = 0x29b;
- WFIFOL(fd,2) = md->bl.id;
-
-
-
- atk = status->get_weapon_atk(&md->bl, &mstatus->rhw, 0);
-
-
-
- WFIFOW(fd,6) = (((atk) >= (
-# 15969 "../../../server-code/src/map/clif.c" 3 4
- (32767)
-# 15969 "../../../server-code/src/map/clif.c"
- )) ? (
-# 15969 "../../../server-code/src/map/clif.c" 3 4
- (32767)
-# 15969 "../../../server-code/src/map/clif.c"
- ) : ((atk) <= (0)) ? (0) : (atk));
-
- atk = status->base_matk(&md->bl, mstatus, status->get_lv(&md->bl));
- WFIFOW(fd,8) = (((atk) >= (
-# 15972 "../../../server-code/src/map/clif.c" 3 4
- (32767)
-# 15972 "../../../server-code/src/map/clif.c"
- )) ? (
-# 15972 "../../../server-code/src/map/clif.c" 3 4
- (32767)
-# 15972 "../../../server-code/src/map/clif.c"
- ) : ((atk) <= (0)) ? (0) : (atk));
-
-
-
- WFIFOW(fd,10) = mstatus->hit;
- WFIFOW(fd,12) = mstatus->cri/10;
-
- WFIFOW(fd,14) = mstatus->def2;
- WFIFOW(fd,16) = mstatus->mdef2;
-
-
-
-
- WFIFOW(fd,18) = mstatus->flee;
- WFIFOW(fd,20) = mstatus->amotion;
- (strlib->safestrncpy_((WFIFOP(fd,22)),(md->db->name),((23 + 1))));
- WFIFOW(fd,46) = md->db->lv;
- WFIFOL(fd,48) = mstatus->hp;
- WFIFOL(fd,52) = mstatus->max_hp;
- WFIFOL(fd,56) = mstatus->sp;
- WFIFOL(fd,60) = mstatus->max_sp;
- WFIFOL(fd,64) = (int)time(
-# 15993 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 15993 "../../../server-code/src/map/clif.c"
- ) + (mercenary->get_lifetime(md) / 1000);
- WFIFOW(fd,68) = mercenary->get_faith(md);
- WFIFOL(fd,70) = mercenary->get_calls(md);
- WFIFOL(fd,74) = md->mercenary.kill_count;
- WFIFOW(fd,78) = md->battle_status.rhw.range;
- WFIFOSET(fd,packet_db[0x29b].len);
-}
-
-
-
-void clif_mercenary_skillblock(struct map_session_data *sd)
-{
- struct mercenary_data *md;
- int fd, i, len = 4, j;
-
- if( sd ==
-# 16008 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 16008 "../../../server-code/src/map/clif.c"
- || (md = sd->md) ==
-# 16008 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 16008 "../../../server-code/src/map/clif.c"
- )
- return;
-
- fd = sd->fd;
- WFIFOHEAD(fd,4+37*40);
- WFIFOW(fd,0) = 0x29d;
- for (i = 0; i < 40; i++) {
- int id = md->db->skill[i].id;
- if (id == 0)
- continue;
- j = id - 8201;
- WFIFOW(fd,len) = id;
- WFIFOL(fd,len+2) = skill->get_inf(id);
- WFIFOW(fd,len+6) = md->db->skill[j].lv;
- if ( md->db->skill[j].lv ) {
- WFIFOW(fd,len + 8) = skill->get_sp(id, md->db->skill[j].lv);
- WFIFOW(fd,len + 10) = skill->get_range2(&md->bl, id, md->db->skill[j].lv);
- } else {
- WFIFOW(fd,len + 8) = 0;
- WFIFOW(fd,len + 10) = 0;
- }
- (strlib->safestrncpy_((WFIFOP(fd,len+12)),(skill->get_name(id)),((23 + 1))));
- WFIFOB(fd,len+36) = 0;
- len += 37;
- }
-
- WFIFOW(fd,2) = len;
- WFIFOSET(fd,len);
-}
-
-void clif_parse_mercenary_action(int fd, struct map_session_data* sd) __attribute__((nonnull (2)));
-
-
-
-
-void clif_parse_mercenary_action(int fd, struct map_session_data* sd)
-{
- int option = RFIFOB(fd,2);
- if (sd->md ==
-# 16046 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 16046 "../../../server-code/src/map/clif.c"
- )
- return;
-
- if (option == 2)
- mercenary->delete(sd->md, 2);
-}
-
-
-
-
-
-
-
-void clif_mercenary_message(struct map_session_data* sd, int message)
-{
- clif->msgtable(sd, MSG_MERCENARY_EXPIRED + message);
-}
-
-
-
-void clif_rental_time(int fd, int nameid, int seconds)
-{
- WFIFOHEAD(fd,packet_db[0x298].len);
- WFIFOW(fd,0) = 0x298;
- WFIFOW(fd,2) = nameid;
- WFIFOL(fd,4) = seconds;
- WFIFOSET(fd,packet_db[0x298].len);
-}
-
-
-
-void clif_rental_expired(int fd, int index, int nameid)
-{
- WFIFOHEAD(fd,packet_db[0x299].len);
- WFIFOW(fd,0) = 0x299;
- WFIFOW(fd,2) = index+2;
- WFIFOW(fd,4) = nameid;
- WFIFOSET(fd,packet_db[0x299].len);
-}
-
-
-
-void clif_readbook(int fd, int book_id, int page)
-{
- WFIFOHEAD(fd,packet_db[0x294].len);
- WFIFOW(fd,0) = 0x294;
- WFIFOL(fd,2) = book_id;
- WFIFOL(fd,6) = page;
- WFIFOSET(fd,packet_db[0x294].len);
-}
-
-
-
-
-
-
-void clif_bg_hp(struct map_session_data *sd)
-{
- unsigned char buf[34];
- const int cmd = 0x2e0;
- do { if (((void)(sd),
-# 16106 "../../../server-code/src/map/clif.c" 3 4
-0
-# 16106 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- WBUFW(buf,0) = cmd;
- WBUFL(buf,2) = sd->status.account_id;
- memcpy(WBUFP(buf,6), sd->status.name, (23 + 1));
-
- if( sd->battle_status.max_hp >
-# 16112 "../../../server-code/src/map/clif.c" 3 4
- (32767)
-# 16112 "../../../server-code/src/map/clif.c"
- )
- {
- WBUFW(buf,30) = sd->battle_status.hp/(sd->battle_status.max_hp/100);
- WBUFW(buf,32) = 100;
- }
- else
- {
- WBUFW(buf,30) = sd->battle_status.hp;
- WBUFW(buf,32) = sd->battle_status.max_hp;
- }
-
- clif->send(buf, packet_db[cmd].len, &sd->bl, BG_AREA_WOS);
-}
-
-
-
-void clif_bg_xy(struct map_session_data *sd)
-{
- unsigned char buf[36];
- do { if (((void)(sd),
-# 16131 "../../../server-code/src/map/clif.c" 3 4
-0
-# 16131 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- WBUFW(buf,0)=0x2df;
- WBUFL(buf,2)=sd->status.account_id;
- memcpy(WBUFP(buf,6), sd->status.name, (23 + 1));
- WBUFW(buf,30)=sd->status.class_;
- WBUFW(buf,32)=sd->bl.x;
- WBUFW(buf,34)=sd->bl.y;
-
- clif->send(buf, packet_db[0x2df].len, &sd->bl, BG_SAMEMAP_WOS);
-}
-
-void clif_bg_xy_remove(struct map_session_data *sd)
-{
- unsigned char buf[36];
- do { if (((void)(sd),
-# 16146 "../../../server-code/src/map/clif.c" 3 4
-0
-# 16146 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- WBUFW(buf,0)=0x2df;
- WBUFL(buf,2)=sd->status.account_id;
- memset(WBUFP(buf,6), 0, (23 + 1));
- WBUFW(buf,30)=0;
- WBUFW(buf,32)=-1;
- WBUFW(buf,34)=-1;
-
- clif->send(buf, packet_db[0x2df].len, &sd->bl, BG_SAMEMAP_WOS);
-}
-
-
-
-void clif_bg_message(struct battleground_data *bgd, int src_id, const char *name, const char *mes, size_t len)
-{
- struct map_session_data *sd;
- unsigned char *buf;
-
- do { if (((void)(bgd),
-# 16165 "../../../server-code/src/map/clif.c" 3 4
-0
-# 16165 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- do { if (((void)(name),
-# 16166 "../../../server-code/src/map/clif.c" 3 4
-0
-# 16166 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- do { if (((void)(mes),
-# 16167 "../../../server-code/src/map/clif.c" 3 4
-0
-# 16167 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- if( !bgd->count || (sd = bg->getavailablesd(bgd)) ==
-# 16168 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 16168 "../../../server-code/src/map/clif.c"
- )
- return;
-
- buf = (unsigned char*)(iMalloc->malloc(((len + (23 + 1) + 8)*sizeof(unsigned char)),"../../../server-code/src/map/clif.c", 16171, __func__));
-
- WBUFW(buf,0) = 0x2dc;
- WBUFW(buf,2) = len + (23 + 1) + 8;
- WBUFL(buf,4) = src_id;
- memcpy(WBUFP(buf,8), name, (23 + 1));
- memcpy(WBUFP(buf,32), mes, len);
- clif->send(buf,WBUFW(buf,2), &sd->bl, BG);
-
- (iMalloc->free((buf),"../../../server-code/src/map/clif.c", 16180, __func__));
-}
-
-void clif_parse_BattleChat(int fd, struct map_session_data* sd) __attribute__((nonnull (2)));
-
-
-void clif_parse_BattleChat(int fd, struct map_session_data* sd)
-{
- const char *text = RFIFOP(fd,4);
- int textlen = RFIFOW(fd,2) - 4;
-
- const char *name, *message;
- size_t namelen, messagelen;
-
- if( !clif->process_message(sd, 0, &name, &namelen, &message, &messagelen) )
- return;
-
- if( atcommand->exec(fd, sd, message,
-# 16197 "../../../server-code/src/map/clif.c" 3 4
- 1
-# 16197 "../../../server-code/src/map/clif.c"
- ) )
- return;
-
- if( !pc->can_talk(sd) )
- return;
-
- if( battle_config.min_chat_delay ) {
- if( ((sd->cantalk_tick)-(timer->gettick())) > 0 )
- return;
- sd->cantalk_tick = timer->gettick() + battle_config.min_chat_delay;
- }
-
- pc->update_idle_time(sd, BCIDLE_CHAT);
-
- bg->send_message(sd, text, textlen);
-}
-
-
-
-void clif_bg_updatescore(int16 m) {
- struct block_list bl;
- unsigned char buf[6];
-
- bl.id = 0;
- bl.type = BL_NUL;
- bl.m = m;
-
- WBUFW(buf,0) = 0x2de;
- WBUFW(buf,2) = map->list[m].bgscore_lion;
- WBUFW(buf,4) = map->list[m].bgscore_eagle;
- clif->send(buf,packet_db[0x2de].len,&bl,ALL_SAMEMAP);
-}
-
-void clif_bg_updatescore_single(struct map_session_data *sd) {
- int fd;
- do { if (((void)(sd),
-# 16232 "../../../server-code/src/map/clif.c" 3 4
-0
-# 16232 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- fd = sd->fd;
-
- WFIFOHEAD(fd,packet_db[0x2de].len);
- WFIFOW(fd,0) = 0x2de;
- WFIFOW(fd,2) = map->list[sd->bl.m].bgscore_lion;
- WFIFOW(fd,4) = map->list[sd->bl.m].bgscore_eagle;
- WFIFOSET(fd,packet_db[0x2de].len);
-}
-
-
-
-void clif_sendbgemblem_area(struct map_session_data *sd)
-{
- unsigned char buf[33];
- do { if (((void)(sd),
-# 16247 "../../../server-code/src/map/clif.c" 3 4
-0
-# 16247 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- WBUFW(buf,0) = 0x2dd;
- WBUFL(buf,2) = sd->bl.id;
- (strlib->safestrncpy_((WBUFP(buf,6)),(sd->status.name),((23 + 1))));
- WBUFW(buf,30) = sd->bg_id;
- clif->send(buf,packet_db[0x2dd].len, &sd->bl, AREA);
-}
-
-void clif_sendbgemblem_single(int fd, struct map_session_data *sd)
-{
- do { if (((void)(sd),
-# 16258 "../../../server-code/src/map/clif.c" 3 4
-0
-# 16258 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- WFIFOHEAD(fd,32);
- WFIFOW(fd,0) = 0x2dd;
- WFIFOL(fd,2) = sd->bl.id;
- (strlib->safestrncpy_((WFIFOP(fd,6)),(sd->status.name),((23 + 1))));
- WFIFOW(fd,30) = sd->bg_id;
- WFIFOSET(fd,packet_db[0x2dd].len);
-}
-
-
-
-void clif_font(struct map_session_data *sd)
-{
-
- unsigned char buf[8];
- do { if (((void)(sd),
-# 16273 "../../../server-code/src/map/clif.c" 3 4
-0
-# 16273 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- WBUFW(buf,0) = 0x2ef;
- WBUFL(buf,2) = sd->bl.id;
- WBUFW(buf,6) = sd->status.font;
- clif->send(buf, packet_db[0x2ef].len, &sd->bl, AREA);
-
-}
-
-
-
-
-int clif_instance(int instance_id, int type, int flag) {
- struct map_session_data *sd =
-# 16285 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 16285 "../../../server-code/src/map/clif.c"
- ;
- unsigned char buf[255];
- enum send_target target = PARTY;
-
- switch( instance->list[instance_id].owner_type ) {
- case IOT_NONE:
- return 0;
- case IOT_GUILD:
- target = GUILD;
- sd = guild->getavailablesd(guild->search(instance->list[instance_id].owner_id));
- break;
- case IOT_PARTY:
-
- sd = party->getavailablesd(party->search(instance->list[instance_id].owner_id));
- break;
- case IOT_CHAR:
- target = SELF;
- sd = map->id2sd(instance->list[instance_id].owner_id);
- break;
- }
-
- if( !sd )
- return 0;
-
- switch( type ) {
- case 1:
-
-
-
- WBUFW(buf,0) = 0x02CB;
- memcpy(WBUFP(buf,2),instance->list[instance_id].name,(60+1));
- WBUFW(buf,63) = flag;
- clif->send(buf,packet_db[0x02CB].len,&sd->bl,target);
- break;
- case 2:
-
-
- WBUFW(buf,0) = 0x02CC;
- WBUFW(buf,2) = flag;
- clif->send(buf,packet_db[0x02CC].len,&sd->bl,target);
- break;
- case 3:
- case 4:
-
- WBUFW(buf,0) = 0x02CD;
- memcpy(WBUFP(buf,2),instance->list[instance_id].name,61);
- if( type == 3 ) {
- WBUFL(buf,63) = instance->list[instance_id].progress_timeout;
- WBUFL(buf,67) = 0;
- } else {
- WBUFL(buf,63) = 0;
- WBUFL(buf,67) = instance->list[instance_id].idle_timeout;
- }
- clif->send(buf,packet_db[0x02CD].len,&sd->bl,target);
- break;
- case 5:
-
-
-
-
-
-
- WBUFW(buf,0) = 0x02CE;
- WBUFL(buf,2) = flag;
-
- clif->send(buf,packet_db[0x02CE].len,&sd->bl,target);
- break;
- }
- return 0;
-}
-
-void clif_instance_join(int fd, int instance_id)
-{
- if( instance->list[instance_id].idle_timer != (-1) ) {
- WFIFOHEAD(fd,packet_db[0x02CD].len);
- WFIFOW(fd,0) = 0x02CD;
- memcpy(WFIFOP(fd,2),instance->list[instance_id].name,61);
- WFIFOL(fd,63) = 0;
- WFIFOL(fd,67) = instance->list[instance_id].idle_timeout;
- WFIFOSET(fd,packet_db[0x02CD].len);
- } else if( instance->list[instance_id].progress_timer != (-1) ) {
- WFIFOHEAD(fd,packet_db[0x02CD].len);
- WFIFOW(fd,0) = 0x02CD;
- memcpy(WFIFOP(fd,2),instance->list[instance_id].name,61);
- WFIFOL(fd,63) = instance->list[instance_id].progress_timeout;
- WFIFOL(fd,67) = 0;
- WFIFOSET(fd,packet_db[0x02CD].len);
- } else {
- WFIFOHEAD(fd,packet_db[0x02CB].len);
- WFIFOW(fd,0) = 0x02CB;
- memcpy(WFIFOP(fd,2),instance->list[instance_id].name,61);
- WFIFOW(fd,63) = 0;
- WFIFOSET(fd,packet_db[0x02CB].len);
- }
-}
-
-void clif_instance_leave(int fd)
-{
- WFIFOHEAD(fd,packet_db[0x02CE].len);
- WFIFOW(fd,0) = 0x02ce;
- WFIFOL(fd,2) = 4;
- WFIFOSET(fd,packet_db[0x02CE].len);
-}
-
-
-
-void clif_party_show_picker(struct map_session_data * sd, struct item * item_data)
-{
-
- unsigned char buf[22];
- struct item_data* id;
-
- do { if (((void)(sd),
-# 16397 "../../../server-code/src/map/clif.c" 3 4
-0
-# 16397 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- do { if (((void)(item_data),
-# 16398 "../../../server-code/src/map/clif.c" 3 4
-0
-# 16398 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- id = itemdb->search(item_data->nameid);
- WBUFW(buf,0) = 0x2b8;
- WBUFL(buf,2) = sd->status.account_id;
- WBUFW(buf,6) = item_data->nameid;
- WBUFB(buf,8) = item_data->identify;
- WBUFB(buf,9) = item_data->attribute;
- WBUFB(buf,10) = item_data->refine;
- clif->addcards(WBUFP(buf,11), item_data);
- WBUFW(buf,19) = id->equip;
- WBUFB(buf,21) = itemtype(id->type);
- clif->send(buf, packet_db[0x2b8].len, &sd->bl, PARTY_SAMEMAP_WOS);
-
-}
-# 16420 "../../../server-code/src/map/clif.c"
-void clif_displayexp(struct map_session_data *sd, unsigned int exp, char type,
-# 16420 "../../../server-code/src/map/clif.c" 3 4
- _Bool
-# 16420 "../../../server-code/src/map/clif.c"
- is_quest) {
- int fd;
-
- do { if (((void)(sd),
-# 16423 "../../../server-code/src/map/clif.c" 3 4
-0
-# 16423 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- fd = sd->fd;
-
- WFIFOHEAD(fd, packet_db[0x7f6].len);
- WFIFOW(fd,0) = 0x7f6;
- WFIFOL(fd,2) = sd->bl.id;
- WFIFOL(fd,6) = exp;
- WFIFOW(fd,10) = type;
- WFIFOW(fd,12) = is_quest?1:0;
- WFIFOSET(fd,packet_db[0x7f6].len);
-}
-# 16444 "../../../server-code/src/map/clif.c"
-void clif_showdigit(struct map_session_data* sd, unsigned char type, int value)
-{
- do { if (((void)(sd),
-# 16446 "../../../server-code/src/map/clif.c" 3 4
-0
-# 16446 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- WFIFOHEAD(sd->fd, packet_db[0x1b1].len);
- WFIFOW(sd->fd,0) = 0x1b1;
- WFIFOB(sd->fd,2) = type;
- WFIFOL(sd->fd,3) = value;
- WFIFOSET(sd->fd, packet_db[0x1b1].len);
-}
-
-void clif_parse_LessEffect(int fd, struct map_session_data* sd) __attribute__((nonnull (2)));
-# 16467 "../../../server-code/src/map/clif.c"
-void clif_parse_LessEffect(int fd, struct map_session_data* sd)
-{
- int isLess = RFIFOL(fd,packet_db[RFIFOW(fd,0)].pos[0]);
-
- sd->state.lesseffect = ( isLess != 0 );
-}
-
-void clif_parse_ItemListWindowSelected(int fd, struct map_session_data *sd) __attribute__((nonnull (2)));
-
-void clif_parse_ItemListWindowSelected(int fd, struct map_session_data *sd)
-{
- int n = ((int)RFIFOW(fd,2) - 12) / 4;
- int type = RFIFOL(fd,4);
- int flag = RFIFOL(fd,8);
- struct itemlist item_list = { 0 };
- int i;
-
- if( sd->state.trading || sd->npc_shopid )
- return;
-
- if (flag == 0 || n <= 0) {
- ((sd)->menuskill_id = (sd)->menuskill_val = (sd)->menuskill_val2 = 0);
- return;
- }
-
- if (n > 100)
- n = 100;
-
- if (sd->menuskill_id != SO_EL_ANALYSIS && sd->menuskill_id != GN_CHANGEMATERIAL) {
- ((sd)->menuskill_id = (sd)->menuskill_val = (sd)->menuskill_val2 = 0);
- return;
- }
-
- memset(&(item_list), 0, sizeof(item_list));
- do { int _empty_ = ( (item_list)._max_ )-( (item_list)._len_ ); if ((n) > _empty_) { while ((n) > _empty_) _empty_ += (1); do { if ((_empty_+( (item_list)._len_ )) > ( (item_list)._max_ )) { if (( (item_list)._max_ ) == 0) ( (item_list)._data_ ) = (iMalloc->malloc(((_empty_+( (item_list)._len_ ))*sizeof(( ( ( (item_list)._data_ )[0] ) ))),"../../../server-code/src/map/clif.c", 16501, __func__)); else ( (item_list)._data_ ) = (iMalloc->realloc((( (item_list)._data_ )),((_empty_+( (item_list)._len_ ))*sizeof(( ( ( (item_list)._data_ )[0] ) ))),"../../../server-code/src/map/clif.c", 16501, __func__)); memset(( (item_list)._data_ )+( (item_list)._len_ ), 0, (( (item_list)._max_ )-( (item_list)._len_ ))*sizeof(( ( ( (item_list)._data_ )[0] ) ))); ( (item_list)._max_ ) = (_empty_+( (item_list)._len_ )); } else if ((_empty_+( (item_list)._len_ )) == 0 && ( (item_list)._max_ ) > 0) { (iMalloc->free((( (item_list)._data_ )),"../../../server-code/src/map/clif.c", 16501, __func__)); ( (item_list)._data_ ) =
-# 16501 "../../../server-code/src/map/clif.c" 3 4
-((void *)0)
-# 16501 "../../../server-code/src/map/clif.c"
-; ( (item_list)._max_ ) = 0; ( (item_list)._len_ ) = 0; } else if ((_empty_+( (item_list)._len_ )) < ( (item_list)._max_ )) { ( (item_list)._data_ ) = (iMalloc->realloc((( (item_list)._data_ )),((_empty_+( (item_list)._len_ ))*sizeof(( ( ( (item_list)._data_ )[0] ) ))),"../../../server-code/src/map/clif.c", 16501, __func__)); ( (item_list)._max_ ) = (_empty_+( (item_list)._len_ )); if ((_empty_+( (item_list)._len_ )) - ( (item_list)._len_ ) > 0) ( (item_list)._len_ ) = (_empty_+( (item_list)._len_ )); } } while(
-# 16501 "../../../server-code/src/map/clif.c" 3 4
-0
-# 16501 "../../../server-code/src/map/clif.c"
-); } } while(
-# 16501 "../../../server-code/src/map/clif.c" 3 4
-0
-# 16501 "../../../server-code/src/map/clif.c"
-);
- for (i = 0; i < n; i++) {
- struct itemlist_entry entry = { 0 };
- entry.id = (int)RFIFOW(fd, 12 + 4 * i) - 2;
- entry.amount = RFIFOW(fd, 12 + 4 * i + 2);
- do { ( ( (item_list)._data_ )[( (item_list)._len_ )] ) = (entry); ++( (item_list)._len_ ); }while(
-# 16506 "../../../server-code/src/map/clif.c" 3 4
- 0
-# 16506 "../../../server-code/src/map/clif.c"
- );
- }
-
- switch( type ) {
- case 0:
- skill->changematerial(sd, &item_list);
- break;
- case 1:
- case 2:
- skill->elementalanalysis(sd, type, &item_list);
- break;
- }
- do { if (( (item_list)._max_ ) > 0) { (iMalloc->free((( (item_list)._data_ )),"../../../server-code/src/map/clif.c", 16518, __func__)); ( (item_list)._data_ ) =
-# 16518 "../../../server-code/src/map/clif.c" 3 4
-((void *)0)
-# 16518 "../../../server-code/src/map/clif.c"
-; ( (item_list)._max_ ) = 0; ( (item_list)._len_ ) = 0; } } while(
-# 16518 "../../../server-code/src/map/clif.c" 3 4
-0
-# 16518 "../../../server-code/src/map/clif.c"
-);
- ((sd)->menuskill_id = (sd)->menuskill_val = (sd)->menuskill_val2 = 0);
-
- return;
-}
-
-
-
-
-void clif_elemental_updatestatus(struct map_session_data *sd, int type) {
- struct elemental_data *ed;
- struct status_data *estatus;
- int fd;
-
- if( sd ==
-# 16532 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 16532 "../../../server-code/src/map/clif.c"
- || (ed = sd->ed) ==
-# 16532 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 16532 "../../../server-code/src/map/clif.c"
- )
- return;
-
- fd = sd->fd;
- estatus = &ed->battle_status;
- WFIFOHEAD(fd,8);
- WFIFOW(fd,0) = 0x81e;
- WFIFOW(fd,2) = type;
- switch( type ) {
- case SP_HP:
- WFIFOL(fd,4) = estatus->hp;
- break;
- case SP_MAXHP:
- WFIFOL(fd,4) = estatus->max_hp;
- break;
- case SP_SP:
- WFIFOL(fd,4) = estatus->sp;
- break;
- case SP_MAXSP:
- WFIFOL(fd,4) = estatus->max_sp;
- break;
- }
- WFIFOSET(fd,8);
-}
-
-void clif_elemental_info(struct map_session_data *sd) {
- int fd;
- struct elemental_data *ed;
- struct status_data *estatus;
-
- if( sd ==
-# 16562 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 16562 "../../../server-code/src/map/clif.c"
- || (ed = sd->ed) ==
-# 16562 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 16562 "../../../server-code/src/map/clif.c"
- )
- return;
-
- fd = sd->fd;
- estatus = &ed->battle_status;
-
- WFIFOHEAD(fd,22);
- WFIFOW(fd,0) = 0x81d;
- WFIFOL(fd, 2) = ed->bl.id;
- WFIFOL(fd, 6) = estatus->hp;
- WFIFOL(fd,10) = estatus->max_hp;
- WFIFOL(fd,14) = estatus->sp;
- WFIFOL(fd,18) = estatus->max_sp;
- WFIFOSET(fd,22);
-}
-
-
-
-
-
-
-void clif_buyingstore_open(struct map_session_data* sd)
-{
- int fd;
-
- do { if (((void)(sd),
-# 16587 "../../../server-code/src/map/clif.c" 3 4
-0
-# 16587 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- fd = sd->fd;
- WFIFOHEAD(fd,packet_db[0x810].len);
- WFIFOW(fd,0) = 0x810;
- WFIFOB(fd,2) = sd->buyingstore.slots;
- WFIFOSET(fd,packet_db[0x810].len);
-}
-
-void clif_parse_ReqOpenBuyingStore(int fd, struct map_session_data* sd) __attribute__((nonnull (2)));
-
-
-
-
-
-void clif_parse_ReqOpenBuyingStore(int fd, struct map_session_data* sd) {
- const unsigned int blocksize = 8;
- const uint8 *itemlist;
- char storename[(79 + 1)];
- unsigned char result;
- int zenylimit;
- unsigned int count, packet_len;
- struct s_packet_db* info = &packet_db[RFIFOW(fd,0)];
-
- packet_len = RFIFOW(fd,info->pos[0]);
-
-
- if( packet_len < 89 )
- {
- (showmsg->showError(("clif_parse_ReqOpenBuyingStore: Malformed packet (expected length=%u, length=%u, account_id=%d).\n"), 89U, packet_len, sd->bl.id));
- return;
- }
-
- zenylimit = RFIFOL(fd,info->pos[1]);
- result = RFIFOL(fd,info->pos[2]);
- (strlib->safestrncpy_((storename),(RFIFOP(fd,info->pos[3])),(sizeof(storename))));
- itemlist = RFIFOP(fd,info->pos[4]);
-
-
- packet_len-= info->pos[4];
-
- if( packet_len%blocksize )
- {
- (showmsg->showError(("clif_parse_ReqOpenBuyingStore: Unexpected item list size %u (account_id=%d, block size=%u)\n"), packet_len, sd->bl.id, blocksize));
- return;
- }
- count = packet_len/blocksize;
-
- buyingstore->create(sd, zenylimit, result, storename, itemlist, count);
-}
-# 16644 "../../../server-code/src/map/clif.c"
-void clif_buyingstore_open_failed(struct map_session_data* sd, unsigned short result, unsigned int weight)
-{
- int fd;
-
- do { if (((void)(sd),
-# 16648 "../../../server-code/src/map/clif.c" 3 4
-0
-# 16648 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- fd = sd->fd;
- WFIFOHEAD(fd,packet_db[0x812].len);
- WFIFOW(fd,0) = 0x812;
- WFIFOW(fd,2) = result;
- WFIFOL(fd,4) = weight;
- WFIFOSET(fd,packet_db[0x812].len);
-}
-
-
-
-void clif_buyingstore_myitemlist(struct map_session_data* sd)
-{
- int fd;
- unsigned int i;
-
- do { if (((void)(sd),
-# 16664 "../../../server-code/src/map/clif.c" 3 4
-0
-# 16664 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- fd = sd->fd;
- WFIFOHEAD(fd,12+sd->buyingstore.slots*9);
- WFIFOW(fd,0) = 0x813;
- WFIFOW(fd,2) = 12+sd->buyingstore.slots*9;
- WFIFOL(fd,4) = sd->bl.id;
- WFIFOL(fd,8) = sd->buyingstore.zenylimit;
-
- for( i = 0; i < sd->buyingstore.slots; i++ )
- {
- WFIFOL(fd,12+i*9) = sd->buyingstore.items[i].price;
- WFIFOW(fd,16+i*9) = sd->buyingstore.items[i].amount;
- WFIFOB(fd,18+i*9) = itemtype((itemdb->search(sd->buyingstore.items[i].nameid)->type));
- WFIFOW(fd,19+i*9) = sd->buyingstore.items[i].nameid;
- }
-
- WFIFOSET(fd,WFIFOW(fd,2));
-}
-
-
-
-void clif_buyingstore_entry(struct map_session_data* sd)
-{
- uint8 buf[86];
-
- do { if (((void)(sd),
-# 16689 "../../../server-code/src/map/clif.c" 3 4
-0
-# 16689 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- WBUFW(buf,0) = 0x814;
- WBUFL(buf,2) = sd->bl.id;
- memcpy(WBUFP(buf,6), sd->message, (79 + 1));
-
- clif->send(buf, packet_db[0x814].len, &sd->bl, AREA_WOS);
-}
-void clif_buyingstore_entry_single(struct map_session_data* sd, struct map_session_data* pl_sd)
-{
- int fd;
-
- do { if (((void)(sd),
-# 16700 "../../../server-code/src/map/clif.c" 3 4
-0
-# 16700 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- fd = sd->fd;
- WFIFOHEAD(fd,packet_db[0x814].len);
- WFIFOW(fd,0) = 0x814;
- WFIFOL(fd,2) = pl_sd->bl.id;
- memcpy(WFIFOP(fd,6), pl_sd->message, (79 + 1));
- WFIFOSET(fd,packet_db[0x814].len);
-}
-
-void clif_parse_ReqCloseBuyingStore(int fd, struct map_session_data* sd) __attribute__((nonnull (2)));
-
-
-void clif_parse_ReqCloseBuyingStore(int fd, struct map_session_data* sd) {
- buyingstore->close(sd);
-}
-
-
-
-void clif_buyingstore_disappear_entry(struct map_session_data* sd)
-{
- uint8 buf[6];
-
- do { if (((void)(sd),
-# 16722 "../../../server-code/src/map/clif.c" 3 4
-0
-# 16722 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- WBUFW(buf,0) = 0x816;
- WBUFL(buf,2) = sd->bl.id;
-
- clif->send(buf, packet_db[0x816].len, &sd->bl, AREA_WOS);
-}
-void clif_buyingstore_disappear_entry_single(struct map_session_data* sd, struct map_session_data* pl_sd)
-{
- int fd;
-
- do { if (((void)(sd),
-# 16732 "../../../server-code/src/map/clif.c" 3 4
-0
-# 16732 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- do { if (((void)(pl_sd),
-# 16733 "../../../server-code/src/map/clif.c" 3 4
-0
-# 16733 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- fd = sd->fd;
- WFIFOHEAD(fd,packet_db[0x816].len);
- WFIFOW(fd,0) = 0x816;
- WFIFOL(fd,2) = pl_sd->bl.id;
- WFIFOSET(fd,packet_db[0x816].len);
-}
-
-
-
-void clif_parse_ReqClickBuyingStore(int fd, struct map_session_data* sd)
-{
- int account_id;
-
- account_id = RFIFOL(fd,packet_db[RFIFOW(fd,0)].pos[0]);
-
- buyingstore->open(sd, account_id);
-}
-
-
-
-void clif_buyingstore_itemlist(struct map_session_data* sd, struct map_session_data* pl_sd)
-{
- int fd;
- unsigned int i;
-
- do { if (((void)(sd),
-# 16759 "../../../server-code/src/map/clif.c" 3 4
-0
-# 16759 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- do { if (((void)(pl_sd),
-# 16760 "../../../server-code/src/map/clif.c" 3 4
-0
-# 16760 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- fd = sd->fd;
- WFIFOHEAD(fd,16+pl_sd->buyingstore.slots*9);
- WFIFOW(fd,0) = 0x818;
- WFIFOW(fd,2) = 16+pl_sd->buyingstore.slots*9;
- WFIFOL(fd,4) = pl_sd->bl.id;
- WFIFOL(fd,8) = pl_sd->buyer_id;
- WFIFOL(fd,12) = pl_sd->buyingstore.zenylimit;
-
- for( i = 0; i < pl_sd->buyingstore.slots; i++ )
- {
- WFIFOL(fd,16+i*9) = pl_sd->buyingstore.items[i].price;
- WFIFOW(fd,20+i*9) = pl_sd->buyingstore.items[i].amount;
- WFIFOB(fd,22+i*9) = itemtype((itemdb->search(pl_sd->buyingstore.items[i].nameid)->type));
- WFIFOW(fd,23+i*9) = pl_sd->buyingstore.items[i].nameid;
- }
-
- WFIFOSET(fd,WFIFOW(fd,2));
-}
-
-void clif_parse_ReqTradeBuyingStore(int fd, struct map_session_data* sd) __attribute__((nonnull (2)));
-
-
-void clif_parse_ReqTradeBuyingStore(int fd, struct map_session_data* sd) {
- const unsigned int blocksize = 6;
- const uint8 *itemlist;
- int account_id;
- unsigned int count, packet_len, buyer_id;
- struct s_packet_db* info = &packet_db[RFIFOW(fd,0)];
-
- packet_len = RFIFOW(fd,info->pos[0]);
-
- if( packet_len < 12 )
- {
- (showmsg->showError(("clif_parse_ReqTradeBuyingStore: Malformed packet (expected length=%u, length=%u, account_id=%d).\n"), 12U, packet_len, sd->bl.id));
- return;
- }
-
- account_id = RFIFOL(fd,info->pos[1]);
- buyer_id = RFIFOL(fd,info->pos[2]);
- itemlist = RFIFOP(fd,info->pos[3]);
-
-
- packet_len-= info->pos[3];
-
- if( packet_len%blocksize )
- {
- (showmsg->showError(("clif_parse_ReqTradeBuyingStore: Unexpected item list size %u (account_id=%d, buyer_id=%d, block size=%u)\n"), packet_len, sd->bl.id, account_id, blocksize));
- return;
- }
- count = packet_len/blocksize;
-
- buyingstore->trade(sd, account_id, buyer_id, itemlist, count);
-}
-
-
-
-
-
-
-
-void clif_buyingstore_trade_failed_buyer(struct map_session_data* sd, short result)
-{
- int fd;
-
- do { if (((void)(sd),
-# 16825 "../../../server-code/src/map/clif.c" 3 4
-0
-# 16825 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- fd = sd->fd;
- WFIFOHEAD(fd,packet_db[0x81a].len);
- WFIFOW(fd,0) = 0x81a;
- WFIFOW(fd,2) = result;
- WFIFOSET(fd,packet_db[0x81a].len);
-}
-
-
-
-void clif_buyingstore_update_item(struct map_session_data* sd, unsigned short nameid, unsigned short amount)
-{
- int fd;
-
- do { if (((void)(sd),
-# 16839 "../../../server-code/src/map/clif.c" 3 4
-0
-# 16839 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- fd = sd->fd;
- WFIFOHEAD(fd,packet_db[0x81b].len);
- WFIFOW(fd,0) = 0x81b;
- WFIFOW(fd,2) = nameid;
- WFIFOW(fd,4) = amount;
- WFIFOL(fd,6) = sd->buyingstore.zenylimit;
- WFIFOSET(fd,packet_db[0x81b].len);
-}
-
-
-
-
-
-
-
-void clif_buyingstore_delete_item(struct map_session_data* sd, short index, unsigned short amount, int price)
-{
- int fd;
-
- do { if (((void)(sd),
-# 16859 "../../../server-code/src/map/clif.c" 3 4
-0
-# 16859 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- fd = sd->fd;
- WFIFOHEAD(fd,packet_db[0x81c].len);
- WFIFOW(fd,0) = 0x81c;
- WFIFOW(fd,2) = index+2;
- WFIFOW(fd,4) = amount;
- WFIFOL(fd,6) = price;
- WFIFOSET(fd,packet_db[0x81c].len);
-}
-# 16876 "../../../server-code/src/map/clif.c"
-void clif_buyingstore_trade_failed_seller(struct map_session_data* sd, short result, unsigned short nameid)
-{
- int fd;
-
- do { if (((void)(sd),
-# 16880 "../../../server-code/src/map/clif.c" 3 4
-0
-# 16880 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- fd = sd->fd;
- WFIFOHEAD(fd,packet_db[0x824].len);
- WFIFOW(fd,0) = 0x824;
- WFIFOW(fd,2) = result;
- WFIFOW(fd,4) = nameid;
- WFIFOSET(fd,packet_db[0x824].len);
-}
-
-void clif_parse_SearchStoreInfo(int fd, struct map_session_data* sd) __attribute__((nonnull (2)));
-# 16902 "../../../server-code/src/map/clif.c"
-void clif_parse_SearchStoreInfo(int fd, struct map_session_data* sd) {
- const unsigned int blocksize = 2;
- const uint8* itemlist;
- const uint8* cardlist;
- unsigned char type;
- unsigned int min_price, max_price, packet_len, count, item_count, card_count;
- struct s_packet_db* info = &packet_db[RFIFOW(fd,0)];
-
- packet_len = RFIFOW(fd,info->pos[0]);
-
- if( packet_len < 15 )
- {
- (showmsg->showError(("clif_parse_SearchStoreInfo: Malformed packet (expected length=%u, length=%u, account_id=%d).\n"), 15U, packet_len, sd->bl.id));
- return;
- }
-
- type = RFIFOB(fd,info->pos[1]);
- max_price = RFIFOL(fd,info->pos[2]);
- min_price = RFIFOL(fd,info->pos[3]);
- item_count = RFIFOB(fd,info->pos[4]);
- card_count = RFIFOB(fd,info->pos[5]);
- itemlist = RFIFOP(fd,info->pos[6]);
- cardlist = RFIFOP(fd,info->pos[6]+blocksize*item_count);
-
-
- packet_len-= info->pos[6];
-
- if( packet_len%blocksize )
- {
- (showmsg->showError(("clif_parse_SearchStoreInfo: Unexpected item list size %u (account_id=%d, block size=%u)\n"), packet_len, sd->bl.id, blocksize));
- return;
- }
- count = packet_len/blocksize;
-
- if( count < item_count+card_count )
- {
- (showmsg->showError(("clif_parse_SearchStoreInfo: Malformed packet (expected count=%u, count=%u, account_id=%d).\n"), item_count+card_count, count, sd->bl.id));
- return;
- }
-
- searchstore->query(sd, type, min_price, max_price, (const unsigned short*)itemlist, item_count, (const unsigned short*)cardlist, card_count);
-}
-# 16953 "../../../server-code/src/map/clif.c"
-void clif_search_store_info_ack(struct map_session_data* sd)
-{
- const unsigned int blocksize = (79 + 1)+26;
- int fd;
- unsigned int i, start, end;
-
- do { if (((void)(sd),
-# 16959 "../../../server-code/src/map/clif.c" 3 4
-0
-# 16959 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- fd = sd->fd;
- start = sd->searchstore.pages*10;
- end = (((sd->searchstore.count) < (start+10)) ? (sd->searchstore.count) : (start+10));
-
- WFIFOHEAD(fd,7+(end-start)*blocksize);
- WFIFOW(fd,0) = 0x836;
- WFIFOW(fd,2) = 7+(end-start)*blocksize;
- WFIFOB(fd,4) = !sd->searchstore.pages;
- WFIFOB(fd,5) = searchstore->querynext(sd);
- WFIFOB(fd,6) = (unsigned char)(((sd->searchstore.uses) < (((uint8) 0xFF))) ? (sd->searchstore.uses) : (((uint8) 0xFF)));
-
- for( i = start; i < end; i++ ) {
- struct s_search_store_info_item* ssitem = &sd->searchstore.items[i];
- struct item it;
-
- WFIFOL(fd,i*blocksize+ 7) = ssitem->store_id;
- WFIFOL(fd,i*blocksize+11) = ssitem->account_id;
- memcpy(WFIFOP(fd,i*blocksize+15), ssitem->store_name, (79 + 1));
- WFIFOW(fd,i*blocksize+15+(79 + 1)) = ssitem->nameid;
- WFIFOB(fd,i*blocksize+17+(79 + 1)) = itemtype((itemdb->search(ssitem->nameid)->type));
- WFIFOL(fd,i*blocksize+18+(79 + 1)) = ssitem->price;
- WFIFOW(fd,i*blocksize+22+(79 + 1)) = ssitem->amount;
- WFIFOB(fd,i*blocksize+24+(79 + 1)) = ssitem->refine;
-
-
- memset(&it, 0, sizeof(it));
- memcpy(&it.card, &ssitem->card, sizeof(it.card));
- it.nameid = ssitem->nameid;
- it.amount = ssitem->amount;
-
- clif->addcards(WFIFOP(fd,i*blocksize+25+(79 + 1)), &it);
- }
-
- WFIFOSET(fd,WFIFOW(fd,2));
-}
-# 17004 "../../../server-code/src/map/clif.c"
-void clif_search_store_info_failed(struct map_session_data* sd, unsigned char reason)
-{
- int fd;
-
- do { if (((void)(sd),
-# 17008 "../../../server-code/src/map/clif.c" 3 4
-0
-# 17008 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- fd = sd->fd;
- WFIFOHEAD(fd,packet_db[0x837].len);
- WFIFOW(fd,0) = 0x837;
- WFIFOB(fd,2) = reason;
- WFIFOSET(fd,packet_db[0x837].len);
-}
-
-void clif_parse_SearchStoreInfoNextPage(int fd, struct map_session_data* sd) __attribute__((nonnull (2)));
-
-
-void clif_parse_SearchStoreInfoNextPage(int fd, struct map_session_data* sd)
-{
- searchstore->next(sd);
-}
-
-
-
-
-
-
-void clif_open_search_store_info(struct map_session_data* sd)
-{
- int fd;
-
- do { if (((void)(sd),
-# 17033 "../../../server-code/src/map/clif.c" 3 4
-0
-# 17033 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- fd = sd->fd;
- WFIFOHEAD(fd,packet_db[0x83a].len);
- WFIFOW(fd,0) = 0x83a;
- WFIFOW(fd,2) = sd->searchstore.effect;
-
- WFIFOB(fd,4) = (unsigned char)(((sd->searchstore.uses) < (((uint8) 0xFF))) ? (sd->searchstore.uses) : (((uint8) 0xFF)));
-
- WFIFOSET(fd,packet_db[0x83a].len);
-}
-
-void clif_parse_CloseSearchStoreInfo(int fd, struct map_session_data* sd) __attribute__((nonnull (2)));
-
-
-void clif_parse_CloseSearchStoreInfo(int fd, struct map_session_data* sd)
-{
- searchstore->close(sd);
-}
-
-void clif_parse_SearchStoreInfoListItemClick(int fd, struct map_session_data* sd) __attribute__((nonnull (2)));
-
-
-void clif_parse_SearchStoreInfoListItemClick(int fd, struct map_session_data* sd)
-{
- unsigned short nameid;
- int account_id, store_id;
- struct s_packet_db* info = &packet_db[RFIFOW(fd,0)];
-
- account_id = RFIFOL(fd,info->pos[0]);
- store_id = RFIFOL(fd,info->pos[1]);
- nameid = RFIFOW(fd,info->pos[2]);
-
- searchstore->click(sd, account_id, store_id, nameid);
-}
-
-
-
-void clif_search_store_info_click_ack(struct map_session_data* sd, short x, short y)
-{
- int fd;
-
- do { if (((void)(sd),
-# 17074 "../../../server-code/src/map/clif.c" 3 4
-0
-# 17074 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- fd = sd->fd;
- WFIFOHEAD(fd,packet_db[0x83d].len);
- WFIFOW(fd,0) = 0x83d;
- WFIFOW(fd,2) = x;
- WFIFOW(fd,4) = y;
- WFIFOSET(fd,packet_db[0x83d].len);
-}
-
-
-void clif_parse_debug(int fd,struct map_session_data *sd) {
- int cmd, packet_len;
-
-
- cmd = RFIFOW(fd,0);
-
- if( sd ) {
- packet_len = packet_db[cmd].len;
-
- if( packet_len == -1 ) {
- packet_len = RFIFOW(fd,2);
- }
- (showmsg->showDebug(("Packet debug of 0x%04X (length %d), %s session #%d, %d/%d (AID/CID)\n"), (unsigned int)cmd, packet_len, sd->state.active ? "authed" : "unauthed", fd, sd->status.account_id, sd->status.char_id));
- } else {
- packet_len = (int)RFIFOREST(fd);
- (showmsg->showDebug(("Packet debug of 0x%04X (length %d), session #%d\n"), (unsigned int)cmd, packet_len, fd));
- }
-
- ShowDump(RFIFOP(fd,0), packet_len);
-}
-
-
-
-
-int clif_elementalconverter_list(struct map_session_data *sd) {
- int i,c,view,fd;
-
- do { if (((void)(sd),
-# 17111 "../../../server-code/src/map/clif.c" 3 4
-0
-# 17111 "../../../server-code/src/map/clif.c"
-)) return(0); } while(0);
-
-
- fd=sd->fd;
- WFIFOHEAD(fd, 270 *2+4);
- WFIFOW(fd,0)=0x1ad;
-
- for(i=0,c=0;i<270;i++){
- if( skill->can_produce_mix(sd,skill->dbs->produce_db[i].nameid,23, 1) ){
- if((view = (itemdb->search(skill->dbs->produce_db[i].nameid)->view_id)) > 0)
- WFIFOW(fd,c*2+ 4)= view;
- else
- WFIFOW(fd,c*2+ 4)= skill->dbs->produce_db[i].nameid;
- c++;
- }
- }
- WFIFOW(fd,2) = c*2+4;
- WFIFOSET(fd, WFIFOW(fd,2));
- if (c > 0) {
- sd->menuskill_id = SA_CREATECON;
- sd->menuskill_val = c;
- }
-
- return 0;
-}
-
-
-
-void clif_millenniumshield(struct block_list *bl, short shields ) {
-
- unsigned char buf[10];
-
- do { if (((void)(bl),
-# 17143 "../../../server-code/src/map/clif.c" 3 4
-0
-# 17143 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- WBUFW(buf,0) = 0x440;
- WBUFL(buf,2) = bl->id;
- WBUFW(buf,6) = shields;
- WBUFW(buf,8) = 0;
- clif->send(buf,packet_db[0x440].len,bl,AREA);
-
-}
-
-
-
-
-
-
-int clif_spellbook_list(struct map_session_data *sd)
-{
- int i, c;
- int fd;
-
- do { if (((void)(sd),
-# 17162 "../../../server-code/src/map/clif.c" 3 4
-0
-# 17162 "../../../server-code/src/map/clif.c"
-)) return(0); } while(0);
-
- fd = sd->fd;
- WFIFOHEAD(fd, 8 * 8 + 8);
- WFIFOW(fd,0) = 0x1ad;
-
- for( i = 0, c = 0; i < 100; i ++ )
- {
- if( ((sd->status.inventory[i].nameid) >= ITEMID_MAGIC_BOOK_FB && (sd->status.inventory[i].nameid) <= ITEMID_MAGIC_BOOK_DL) )
- {
- WFIFOW(fd,c * 2 + 4) = sd->status.inventory[i].nameid;
- c++;
- }
- }
-
- if( c > 0 )
- {
- WFIFOW(fd,2) = c * 2 + 4;
- WFIFOSET(fd, WFIFOW(fd,2));
- sd->menuskill_id = WL_READING_SB;
- sd->menuskill_val = c;
- }
- else{
- (status->change_end_((&sd->bl),(SC_STOP),((-1)),"../../../server-code/src/map/clif.c",17185));
- clif->skill_fail(sd, WL_READING_SB, USESKILL_FAIL_SPELLBOOK, 0);
- }
-
- return 1;
-}
-
-
-
-
-
-
-int clif_magicdecoy_list(struct map_session_data *sd, uint16 skill_lv, short x, short y) {
- int i, c;
- int fd;
-
- do { if (((void)(sd),
-# 17201 "../../../server-code/src/map/clif.c" 3 4
-0
-# 17201 "../../../server-code/src/map/clif.c"
-)) return(0); } while(0);
-
- fd = sd->fd;
- WFIFOHEAD(fd, 8 * 8 + 8);
- WFIFOW(fd,0) = 0x1ad;
-
- for( i = 0, c = 0; i < 100; i ++ ) {
- if( ((sd->status.inventory[i].nameid) >= ITEMID_SCARLET_POINT && (sd->status.inventory[i].nameid) <= ITEMID_LIME_GREEN_POINT) ) {
- WFIFOW(fd,c * 2 + 4) = sd->status.inventory[i].nameid;
- c ++;
- }
- }
- if( c > 0 ) {
- sd->menuskill_id = NC_MAGICDECOY;
- sd->menuskill_val = skill_lv;
- sd->sc.comet_x = x;
- sd->sc.comet_y = y;
- WFIFOW(fd,2) = c * 2 + 4;
- WFIFOSET(fd, WFIFOW(fd,2));
- } else {
- clif->skill_fail(sd,NC_MAGICDECOY,USESKILL_FAIL_LEVEL,0);
- return 0;
- }
-
- return 1;
-}
-
-
-
-
-
-
-int clif_poison_list(struct map_session_data *sd, uint16 skill_lv) {
- int i, c;
- int fd;
-
- do { if (((void)(sd),
-# 17237 "../../../server-code/src/map/clif.c" 3 4
-0
-# 17237 "../../../server-code/src/map/clif.c"
-)) return(0); } while(0);
-
- fd = sd->fd;
- WFIFOHEAD(fd, 8 * 8 + 8);
- WFIFOW(fd,0) = 0x1ad;
-
- for( i = 0, c = 0; i < 100; i ++ ) {
- if( ((sd->status.inventory[i].nameid) >= ITEMID_POISON_PARALYSIS && (sd->status.inventory[i].nameid) <= ITEMID_POISON_FATIGUE) ) {
- WFIFOW(fd,c * 2 + 4) = sd->status.inventory[i].nameid;
- c ++;
- }
- }
- if( c > 0 ) {
- sd->menuskill_id = GC_POISONINGWEAPON;
- sd->menuskill_val = skill_lv;
- WFIFOW(fd,2) = c * 2 + 4;
- WFIFOSET(fd, WFIFOW(fd,2));
- } else {
- clif->skill_fail(sd,GC_POISONINGWEAPON,USESKILL_FAIL_GUILLONTINE_POISON,0);
- return 0;
- }
-
- return 1;
-}
-int clif_autoshadowspell_list(struct map_session_data *sd) {
- int fd, i, c;
- do { if (((void)(sd),
-# 17263 "../../../server-code/src/map/clif.c" 3 4
-0
-# 17263 "../../../server-code/src/map/clif.c"
-)) return(0); } while(0);
- fd = sd->fd;
- if( !fd ) return 0;
-
- if( sd->menuskill_id == SC_AUTOSHADOWSPELL )
- return 0;
-
- WFIFOHEAD(fd, 2 * 6 + 4);
- WFIFOW(fd,0) = 0x442;
- for( i = 0, c = 0; i < 1478; i++ )
- if( sd->status.skill[i].flag == SKILL_FLAG_PLAGIARIZED && sd->status.skill[i].id > 0 &&
- sd->status.skill[i].id < GS_GLITTERING && skill->get_type(sd->status.skill[i].id) == BF_MAGIC )
- {
- WFIFOW(fd,8+c*2) = sd->status.skill[i].id;
- c++;
- }
-
- if( c > 0 ) {
- WFIFOW(fd,2) = 8 + c * 2;
- WFIFOL(fd,4) = c;
- WFIFOSET(fd,WFIFOW(fd,2));
- sd->menuskill_id = SC_AUTOSHADOWSPELL;
- sd->menuskill_val = c;
- } else {
- (status->change_end_((&sd->bl),(SC_STOP),((-1)),"../../../server-code/src/map/clif.c",17287));
- clif->skill_fail(sd,SC_AUTOSHADOWSPELL,USESKILL_FAIL_IMITATION_SKILL_NONE,0);
- }
-
- return 1;
-}
-
-
-
-
-int clif_skill_itemlistwindow( struct map_session_data *sd, uint16 skill_id, uint16 skill_lv )
-{
-
- int fd;
-
- do { if (((void)(sd),
-# 17302 "../../../server-code/src/map/clif.c" 3 4
-0
-# 17302 "../../../server-code/src/map/clif.c"
-)) return(0); } while(0);
-
- sd->menuskill_id = skill_id;
- sd->menuskill_val = skill_lv;
-
- if( skill_id == GN_CHANGEMATERIAL )
- skill_lv = 0;
-
- fd = sd->fd;
- WFIFOHEAD(fd,packet_db[0x7e3].len);
- WFIFOW(fd,0) = 0x7e3;
- WFIFOL(fd,2) = skill_lv;
- WFIFOL(fd,4) = 0;
- WFIFOSET(fd,packet_db[0x7e3].len);
-
-
-
- return 1;
-
-}
-
-void clif_parse_SkillSelectMenu(int fd, struct map_session_data *sd) __attribute__((nonnull (2)));
-
-
-
-
-void clif_parse_SkillSelectMenu(int fd, struct map_session_data *sd) {
-
- if( sd->menuskill_id != SC_AUTOSHADOWSPELL )
- return;
-
- if( ( (sd)->npc_id || (sd)->state.vending || (sd)->state.buyingstore || (sd)->state.trading ) ) {
- clif->skill_fail(sd,sd->ud.skill_id,0,0);
- ((sd)->menuskill_id = (sd)->menuskill_val = (sd)->menuskill_val2 = 0);
- return;
- }
-
- skill->select_menu(sd,RFIFOW(fd,6));
-
- ((sd)->menuskill_id = (sd)->menuskill_val = (sd)->menuskill_val2 = 0);
-}
-
-
-
-
-void clif_charm(struct map_session_data *sd)
-{
- unsigned char buf[10];
-
- do { if (((void)(sd),
-# 17351 "../../../server-code/src/map/clif.c" 3 4
-0
-# 17351 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- WBUFW(buf,0) = 0x08cf;
- WBUFL(buf,2) = sd->bl.id;
- WBUFW(buf,6) = sd->charm_type;
- WBUFW(buf,8) = sd->charm_count;
- clif->send(buf,packet_db[0x08cf].len,&sd->bl,AREA);
-}
-
-void clif_parse_MoveItem(int fd, struct map_session_data *sd) __attribute__((nonnull (2)));
-
-
-
-
-
-
-
-void clif_parse_MoveItem(int fd, struct map_session_data *sd) {
-
- int index;
-
-
- if(( (sd)->state.dead_sit == 1 )) {
- return;
- }
-
- index = RFIFOW(fd,2)-2;
-
- if (index < 0 || index >= 100)
- return;
-
- if ( sd->status.inventory[index].favorite && RFIFOB(fd, 4) == 1 )
- sd->status.inventory[index].favorite = 0;
- else if( RFIFOB(fd, 4) == 0 )
- sd->status.inventory[index].favorite = 1;
- else
- return;
-
- clif->favorite_item(sd, index);
-
-}
-
-
-void clif_cashshop_db(void) {
- struct config_t cashshop_conf;
- struct config_setting_t *cashshop =
-# 17396 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 17396 "../../../server-code/src/map/clif.c"
- , *cats =
-# 17396 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 17396 "../../../server-code/src/map/clif.c"
- ;
- const char *config_filename = "db/cashshop_db.conf";
- int i, item_count_t = 0;
- for( i = 0; i < CASHSHOP_TAB_MAX; i++ ) {
- ((clif->cs.data[i]) = (struct hCSData * *) (iMalloc->calloc(((1)),(sizeof(struct hCSData *)),"../../../server-code/src/map/clif.c", 17400, __func__)));
- clif->cs.item_count[i] = 0;
- }
-
- if (!libconfig->load_file(&cashshop_conf, config_filename))
- return;
-
- cashshop = libconfig->lookup(&cashshop_conf, "cash_shop");
-
- if( cashshop !=
-# 17409 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 17409 "../../../server-code/src/map/clif.c"
- && (cats = libconfig->setting_get_elem(cashshop, 0)) !=
-# 17409 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 17409 "../../../server-code/src/map/clif.c"
- ) {
- for(i = 0; i < CASHSHOP_TAB_MAX; i++) {
- struct config_setting_t *cat;
- char entry_name[10];
-
- sprintf(entry_name,"cat_%d",i);
-
- if( (cat = libconfig->setting_get_member(cats, entry_name)) !=
-# 17416 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 17416 "../../../server-code/src/map/clif.c"
- ) {
- int k, item_count = libconfig->setting_length(cat);
-
- for(k = 0; k < item_count; k++) {
- struct config_setting_t *entry = libconfig->setting_get_elem(cat,k);
- const char *name = ((entry)->name);
- int price = libconfig->setting_get_int(entry);
- struct item_data * data =
-# 17423 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 17423 "../../../server-code/src/map/clif.c"
- ;
-
- if( price < 1 ) {
- (showmsg->showWarning(("cashshop_db: unsupported price '%d' for entry named '%s' in category '%s'\n"), price, name, entry_name));
- continue;
- }
-
- if( name[0] == 'I' && name[1] == 'D' && strlen(name) <= 7 ) {
- if( !( data = itemdb->exists(atoi(name+2))) ) {
- (showmsg->showWarning(("cashshop_db: unknown item id '%s' in category '%s'\n"), name+2, entry_name));
- continue;
- }
- } else {
- if( !( data = itemdb->search_name(name) ) ) {
- (showmsg->showWarning(("cashshop_db: unknown item name '%s' in category '%s'\n"), name, entry_name));
- continue;
- }
- }
-
- ((clif->cs.data[i]) = (struct hCSData * *) (iMalloc->reallocz(((clif->cs.data[i])),(sizeof(struct hCSData *) * (++clif->cs.item_count[i])),"../../../server-code/src/map/clif.c", 17442, __func__)));
- ((clif->cs.data[i][ clif->cs.item_count[i] - 1 ]) = (struct hCSData *) (iMalloc->calloc(((1)),(sizeof(struct hCSData)),"../../../server-code/src/map/clif.c", 17443, __func__)));
-
- clif->cs.data[i][ clif->cs.item_count[i] - 1 ]->id = data->nameid;
- clif->cs.data[i][ clif->cs.item_count[i] - 1 ]->price = price;
- item_count_t++;
- }
- }
- }
-
- }
- libconfig->destroy(&cashshop_conf);
- (showmsg->showStatus(("Done reading '""\033[1;37m""%d""\033[0m""' entries in '""\033[1;37m""%s""\033[0m""'.\n"), item_count_t, config_filename));
-}
-
-
-void clif_favorite_item(struct map_session_data* sd, unsigned short index) {
- int fd;
-
- do { if (((void)(sd),
-# 17461 "../../../server-code/src/map/clif.c" 3 4
-0
-# 17461 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- fd = sd->fd;
- WFIFOHEAD(fd,packet_db[0x908].len);
- WFIFOW(fd,0) = 0x908;
- WFIFOW(fd,2) = index+2;
- WFIFOB(fd,4) = (sd->status.inventory[index].favorite == 1) ? 0 : 1;
- WFIFOSET(fd,packet_db[0x908].len);
-}
-
-void clif_snap( struct block_list *bl, short x, short y ) {
- unsigned char buf[10];
-
- do { if (((void)(bl),
-# 17473 "../../../server-code/src/map/clif.c" 3 4
-0
-# 17473 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- WBUFW(buf,0) = 0x8d2;
- WBUFL(buf,2) = bl->id;
- WBUFW(buf,6) = x;
- WBUFW(buf,8) = y;
-
- clif->send(buf,packet_db[0x8d2].len,bl,AREA);
-}
-
-void clif_monster_hp_bar( struct mob_data* md, struct map_session_data *sd ) {
- struct packet_monster_hp p;
-
- do { if (((void)(md),
-# 17485 "../../../server-code/src/map/clif.c" 3 4
-0
-# 17485 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- do { if (((void)(sd),
-# 17486 "../../../server-code/src/map/clif.c" 3 4
-0
-# 17486 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- p.PacketType = monsterhpType;
- p.GID = md->bl.id;
- p.HP = md->status.hp;
- p.MaxHP = md->status.max_hp;
-
- clif->send(&p, sizeof(p), &sd->bl, SELF);
-}
-
-
-void __attribute__ ((unused)) clif_parse_dull(int fd,struct map_session_data *sd) {
- return;
-}
-
-void clif_parse_CashShopOpen(int fd, struct map_session_data *sd) __attribute__((nonnull (2)));
-void clif_parse_CashShopOpen(int fd, struct map_session_data *sd) {
-
- if (map->list[sd->bl.m].flag.nocashshop) {
- clif->messagecolor_self(fd, 0xff0000U, atcommand->msgfd((fd),(1489)));
- return;
- }
-
- WFIFOHEAD(fd, 10);
- WFIFOW(fd,0) = 0x845;
- WFIFOL(fd, 2) = sd->cashPoints;
- WFIFOL(fd, 6) = sd->kafraPoints;
- WFIFOSET(fd, 10);
-}
-
-void clif_parse_CashShopClose(int fd, struct map_session_data *sd) __attribute__((nonnull (2)));
-void clif_parse_CashShopClose(int fd, struct map_session_data *sd) {
-
-}
-
-void clif_parse_CashShopSchedule(int fd, struct map_session_data *sd) __attribute__((nonnull (2)));
-void clif_parse_CashShopSchedule(int fd, struct map_session_data *sd) {
- int i, j = 0;
-
- for( i = 0; i < CASHSHOP_TAB_MAX; i++ ) {
- if( clif->cs.item_count[i] == 0 )
- continue;
-
- WFIFOHEAD(fd, 8 + ( clif->cs.item_count[i] * 6 ) );
- WFIFOW(fd,0) = 0x8ca;
- WFIFOW(fd,2) = 8 + ( clif->cs.item_count[i] * 6 );
- WFIFOW(fd,4) = clif->cs.item_count[i];
- WFIFOW(fd,6) = i;
-
- for( j = 0; j < clif->cs.item_count[i]; j++ ) {
- WFIFOW(fd,8 + ( 6 * j )) = clif->cs.data[i][j]->id;
- WFIFOL(fd, 10 + ( 6 * j ) ) = clif->cs.data[i][j]->price;
- }
-
- WFIFOSET(fd, 8 + ( clif->cs.item_count[i] * 6 ));
- }
-}
-
-void clif_parse_CashShopBuy(int fd, struct map_session_data *sd) __attribute__((nonnull (2)));
-void clif_parse_CashShopBuy(int fd, struct map_session_data *sd) {
- unsigned short limit = RFIFOW(fd, 4), i, j;
- unsigned int kafra_pay = RFIFOL(fd, 6);
-
- if (map->list[sd->bl.m].flag.nocashshop) {
- clif->messagecolor_self(fd, 0xff0000U, atcommand->msgfd((fd),(1489)));
- return;
- }
-
- for(i = 0; i < limit; i++) {
- int qty = RFIFOL(fd, 14 + ( i * 10 ));
- int id = RFIFOL(fd, 10 + ( i * 10 ));
- short tab = RFIFOW(fd, 18 + ( i * 10 ));
- enum CASH_SHOP_BUY_RESULT result = CSBR_UNKNOWN;
-
- if( tab < 0 || tab >= CASHSHOP_TAB_MAX )
- continue;
-
- for( j = 0; j < clif->cs.item_count[tab]; j++ ) {
- if( clif->cs.data[tab][j]->id == id )
- break;
- }
- if( j < clif->cs.item_count[tab] ) {
- struct item_data *data;
- if( sd->kafraPoints < kafra_pay ) {
- result = CSBR_SHORTTAGE_CASH;
- } else if( (sd->cashPoints+kafra_pay) < (clif->cs.data[tab][j]->price * qty) ) {
- result = CSBR_SHORTTAGE_CASH;
- } else if ( !( data = itemdb->exists(clif->cs.data[tab][j]->id) ) ) {
- result = CSBR_UNKONWN_ITEM;
- } else {
- struct item item_tmp;
- int k, get_count;
-
- get_count = qty;
-
- if (!itemdb->isstackable2(data))
- get_count = 1;
-
- pc->paycash(sd, clif->cs.data[tab][j]->price * qty, kafra_pay);
- for (k = 0; k < qty; k += get_count) {
- if (!pet->create_egg(sd, data->nameid)) {
- memset(&item_tmp, 0, sizeof(item_tmp));
- item_tmp.nameid = data->nameid;
- item_tmp.identify = 1;
-
- switch (pc->additem(sd, &item_tmp, get_count, LOG_TYPE_NPC)) {
- case 0:
- result = CSBR_SUCCESS;
- break;
- case 1:
- result = CSBR_EACHITEM_OVERCOUNT;
- break;
- case 2:
- result = CSBR_INVENTORY_WEIGHT;
- break;
- case 4:
- result = CSBR_INVENTORY_ITEMCNT;
- break;
- case 5:
- result = CSBR_EACHITEM_OVERCOUNT;
- break;
- case 7:
- result = CSBR_RUNE_OVERCOUNT;
- break;
- }
-
- if( result != CSBR_SUCCESS )
- pc->getcash(sd, clif->cs.data[tab][j]->price * get_count,0);
- } else
- result = CSBR_SUCCESS;
- }
- }
- } else {
- result = CSBR_UNKONWN_ITEM;
- }
-
- WFIFOHEAD(fd, 16);
- WFIFOW(fd,0) = 0x849;
- WFIFOL(fd, 2) = id;
- WFIFOW(fd,6) = result;
- WFIFOL(fd, 8) = sd->cashPoints;
- WFIFOL(fd, 12) = sd->kafraPoints;
- WFIFOSET(fd, 16);
-
- }
-}
-
-void clif_parse_CashShopReqTab(int fd, struct map_session_data *sd) __attribute__((nonnull (2)));
-
-void clif_parse_CashShopReqTab(int fd, struct map_session_data *sd) {
- short tab = RFIFOW(fd, 2);
- int j;
-
- if( tab < 0 || tab >= CASHSHOP_TAB_MAX || clif->cs.item_count[tab] == 0 )
- return;
-
- WFIFOHEAD(fd, 10 + ( clif->cs.item_count[tab] * 6 ) );
- WFIFOW(fd,0) = 0x8c0;
- WFIFOW(fd,2) = 10 + ( clif->cs.item_count[tab] * 6 );
- WFIFOL(fd, 4) = tab;
- WFIFOW(fd,8) = clif->cs.item_count[tab];
-
- for( j = 0; j < clif->cs.item_count[tab]; j++ ) {
- WFIFOW(fd,10 + ( 6 * j )) = clif->cs.data[tab][j]->id;
- WFIFOL(fd, 12 + ( 6 * j ) ) = clif->cs.data[tab][j]->price;
- }
-
- WFIFOSET(fd, 10 + ( clif->cs.item_count[tab] * 6 ));
-}
-
-void clif_maptypeproperty2(struct block_list *bl,enum send_target t) {
-
- struct packet_maptypeproperty2 p;
- struct map_session_data *sd =
-# 17658 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 17658 "../../../server-code/src/map/clif.c"
- ;
- do { if (((void)(bl),
-# 17659 "../../../server-code/src/map/clif.c" 3 4
-0
-# 17659 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- sd = ( ((bl) == (struct block_list *)
-# 17661 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 17661 "../../../server-code/src/map/clif.c"
- || (bl)->type != (BL_PC)) ? (TBL_PC *)
-# 17661 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 17661 "../../../server-code/src/map/clif.c"
- : (TBL_PC *)(bl) );
-
- p.PacketType = maptypeproperty2Type;
- p.type = 0x28;
- p.flag.party = map->list[bl->m].flag.pvp ? 1 : 0;
- p.flag.guild = (map->list[bl->m].flag.battleground || (map->list[bl->m].flag.gvg || ((map->agit_flag || map->agit2_flag) && map->list[bl->m].flag.gvg_castle))) ? 1 : 0;
- p.flag.siege = (map->list[bl->m].flag.battleground || (map->list[bl->m].flag.gvg || map->list[bl->m].flag.gvg_castle)) ? 1: 0;
- p.flag.mineffect = (map->list[bl->m].flag.gvg || ((map->agit_flag || map->agit2_flag) && map->list[bl->m].flag.gvg_castle)) ? 1 : ( (sd && sd->state.lesseffect) ? 1 : 0);
- p.flag.nolockon = 0;
- p.flag.countpk = map->list[bl->m].flag.pvp ? 1 : 0;
- p.flag.nopartyformation = map->list[bl->m].flag.partylock ? 1 : 0;
- p.flag.bg = map->list[bl->m].flag.battleground ? 1 : 0;
- p.flag.nocostume = (map->list[bl->m].flag.noviewid & (EQP_COSTUME_HEAD_TOP|EQP_COSTUME_HEAD_MID|EQP_COSTUME_HEAD_LOW|EQP_COSTUME_GARMENT)) ? 1 : 0;
- p.flag.usecart = 1;
- p.flag.summonstarmiracle = 0;
- p.flag.SpareBits = 0;
-
- clif->send(&p,sizeof(p),bl,t);
-
-}
-
-void clif_status_change2(struct block_list *bl, int tid, enum send_target target, int type, int val1, int val2, int val3) {
- struct packet_status_change2 p;
-
- p.PacketType = status_change2Type;
- p.index = type;
- p.AID = tid;
- p.state = 1;
- p.Left = 9999;
- p.val1 = val1;
- p.val2 = val2;
- p.val3 = val3;
-
- clif->send(&p,sizeof(p), bl, target);
-}
-
-void clif_partytickack(struct map_session_data* sd,
-# 17697 "../../../server-code/src/map/clif.c" 3 4
- _Bool
-# 17697 "../../../server-code/src/map/clif.c"
- flag) {
- do { if (((void)(sd),
-# 17698 "../../../server-code/src/map/clif.c" 3 4
-0
-# 17698 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- WFIFOHEAD(sd->fd, packet_db[0x2c9].len);
- WFIFOW(sd->fd,0) = 0x2c9;
- WFIFOB(sd->fd, 2) = flag;
- WFIFOSET(sd->fd, packet_db[0x2c9].len);
-}
-
-void clif_ShowScript(struct block_list* bl, const char* message) {
- char buf[256];
- size_t len;
- do { if (((void)(bl),
-# 17709 "../../../server-code/src/map/clif.c" 3 4
-0
-# 17709 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- if(!message)
- return;
-
- len = strlen(message)+1;
-
- if (len > sizeof(buf)-8) {
- (showmsg->showWarning(("clif_ShowScript: Truncating too long message '%s' (len=%""z" "u"").\n"), message, len));
- len = sizeof(buf)-8;
- }
-
- WBUFW(buf,0)=0x8b3;
- WBUFW(buf,2)=len+8;
- WBUFL(buf,4)=bl->id;
- (strlib->safestrncpy_((WBUFP(buf,8)),(message),(len)));
- clif->send((unsigned char *) buf,WBUFW(buf,2),bl,ALL_CLIENT);
-}
-
-void clif_status_change_end(struct block_list *bl, int tid, enum send_target target, int type) {
- struct packet_status_change_end p;
-
- do { if (((void)(bl),
-# 17731 "../../../server-code/src/map/clif.c" 3 4
-0
-# 17731 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- if (bl->type == BL_PC && !((TBL_PC *)BL_UCAST_(bl))->state.active)
- return;
-
- p.PacketType = status_change_endType;
- p.index = type;
- p.AID = tid;
- p.state = 0;
-
- clif->send(&p,sizeof(p), bl, target);
-}
-
-void clif_bgqueue_ack(struct map_session_data *sd, enum BATTLEGROUNDS_QUEUE_ACK response, unsigned char arena_id) {
- switch (response) {
- case BGQA_FAIL_COOLDOWN:
- case BGQA_FAIL_DESERTER:
- case BGQA_FAIL_TEAM_COUNT:
- break;
- default: {
- struct packet_bgqueue_ack p;
-
- do { if (((void)(sd),
-# 17753 "../../../server-code/src/map/clif.c" 3 4
- 0
-# 17753 "../../../server-code/src/map/clif.c"
- )) return; } while(0);
- p.PacketType = bgqueue_ackType;
- p.type = response;
- (strlib->safestrncpy_((p.bg_name),(bg->arena[arena_id]->name),(sizeof(p.bg_name))));
-
- clif->send(&p,sizeof(p), &sd->bl, SELF);
- }
- break;
- }
-}
-
-void clif_bgqueue_notice_delete(struct map_session_data *sd, enum BATTLEGROUNDS_QUEUE_NOTICE_DELETED response, const char *name)
-{
- struct packet_bgqueue_notice_delete p;
-
- do { if (((void)(sd),
-# 17768 "../../../server-code/src/map/clif.c" 3 4
-0
-# 17768 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- p.PacketType = bgqueue_notice_deleteType;
- p.type = response;
- (strlib->safestrncpy_((p.bg_name),(name),(sizeof(p.bg_name))));
-
- clif->send(&p,sizeof(p), &sd->bl, SELF);
-}
-
-void clif_parse_bgqueue_register(int fd, struct map_session_data *sd) __attribute__((nonnull (2)));
-void clif_parse_bgqueue_register(int fd, struct map_session_data *sd)
-{
- const struct packet_bgqueue_register *p = RP2PTR(fd);
- struct bg_arena *arena =
-# 17780 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 17780 "../../../server-code/src/map/clif.c"
- ;
- if( !bg->queue_on ) return;
-
- if( !(arena = bg->name2arena(p->bg_name)) ) {
- clif->bgqueue_ack(sd,BGQA_FAIL_BGNAME_INVALID,0);
- return;
- }
-
- switch( (enum bg_queue_types)p->type ) {
- case BGQT_INDIVIDUAL:
- case BGQT_PARTY:
- case BGQT_GUILD:
- break;
- default:
- clif->bgqueue_ack(sd,BGQA_FAIL_TYPE_INVALID, arena->id);
- return;
- }
-
- bg->queue_add(sd, arena, (enum bg_queue_types)p->type);
-}
-
-void clif_bgqueue_update_info(struct map_session_data *sd, unsigned char arena_id, int position) {
- struct packet_bgqueue_update_info p;
-
- do { if (((void)(sd),
-# 17804 "../../../server-code/src/map/clif.c" 3 4
-0
-# 17804 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- do { if (( (arena_id < bg->arenas) ?
-# 17805 "../../../server-code/src/map/clif.c" 3 4
-0
-# 17805 "../../../server-code/src/map/clif.c"
-: (nullpo->assert_report("../../../server-code/src/map/clif.c", 17805, __func__, "arena_id < bg->arenas", "failed assertion"),
-# 17805 "../../../server-code/src/map/clif.c" 3 4
-1
-# 17805 "../../../server-code/src/map/clif.c"
-) )) return; } while(0);
- p.PacketType = bgqueue_updateinfoType;
- (strlib->safestrncpy_((p.bg_name),(bg->arena[arena_id]->name),(sizeof(p.bg_name))));
- p.position = position;
-
- sd->bg_queue.client_has_bg_data =
-# 17810 "../../../server-code/src/map/clif.c" 3 4
- 1
-# 17810 "../../../server-code/src/map/clif.c"
- ;
-
- clif->send(&p,sizeof(p), &sd->bl, SELF);
-}
-
-void clif_parse_bgqueue_checkstate(int fd, struct map_session_data *sd) __attribute__((nonnull (2)));
-void clif_parse_bgqueue_checkstate(int fd, struct map_session_data *sd)
-{
- const struct packet_bgqueue_checkstate *p = RP2PTR(fd);
-
- do { if (((void)(sd),
-# 17820 "../../../server-code/src/map/clif.c" 3 4
-0
-# 17820 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- if (sd->bg_queue.arena && sd->bg_queue.type) {
- clif->bgqueue_update_info(sd,sd->bg_queue.arena->id,bg->id2pos(sd->bg_queue.arena->queue_id,sd->status.account_id));
- } else {
- clif->bgqueue_notice_delete(sd, BGQND_FAIL_NOT_QUEUING,p->bg_name);
- }
-}
-
-void clif_parse_bgqueue_revoke_req(int fd, struct map_session_data *sd) __attribute__((nonnull (2)));
-void clif_parse_bgqueue_revoke_req(int fd, struct map_session_data *sd)
-{
- const struct packet_bgqueue_revoke_req *p = RP2PTR(fd);
-
- if( sd->bg_queue.arena )
- bg->queue_pc_cleanup(sd);
- else
- clif->bgqueue_notice_delete(sd, BGQND_FAIL_NOT_QUEUING,p->bg_name);
-}
-
-void clif_parse_bgqueue_battlebegin_ack(int fd, struct map_session_data *sd) __attribute__((nonnull (2)));
-void clif_parse_bgqueue_battlebegin_ack(int fd, struct map_session_data *sd)
-{
- const struct packet_bgqueue_battlebegin_ack *p = RP2PTR(fd);
- struct bg_arena *arena;
-
- if( !bg->queue_on ) return;
-
- if( ( arena = bg->name2arena(p->bg_name) ) ) {
- bg->queue_ready_ack(arena,sd, ( p->result == 1 ) ?
-# 17848 "../../../server-code/src/map/clif.c" 3 4
- 1
-# 17848 "../../../server-code/src/map/clif.c"
- :
-# 17848 "../../../server-code/src/map/clif.c" 3 4
- 0
-# 17848 "../../../server-code/src/map/clif.c"
- );
- } else {
- clif->bgqueue_ack(sd,BGQA_FAIL_BGNAME_INVALID, 0);
- }
-}
-
-void clif_bgqueue_joined(struct map_session_data *sd, int pos) {
- struct packet_bgqueue_notify_entry p;
-
- do { if (((void)(sd),
-# 17857 "../../../server-code/src/map/clif.c" 3 4
-0
-# 17857 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- p.PacketType = bgqueue_notify_entryType;
- (strlib->safestrncpy_((p.name),(sd->status.name),(sizeof(p.name))));
- p.position = pos;
-
- clif->send(&p,sizeof(p), &sd->bl, BG_QUEUE);
-}
-
-void clif_bgqueue_pcleft(struct map_session_data *sd) {
-
- return;
-}
-
-
-void clif_bgqueue_battlebegins(struct map_session_data *sd, unsigned char arena_id, enum send_target target) {
- struct packet_bgqueue_battlebegins p;
-
- do { if (((void)(sd),
-# 17874 "../../../server-code/src/map/clif.c" 3 4
-0
-# 17874 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- do { if (( (arena_id < bg->arenas) ?
-# 17875 "../../../server-code/src/map/clif.c" 3 4
-0
-# 17875 "../../../server-code/src/map/clif.c"
-: (nullpo->assert_report("../../../server-code/src/map/clif.c", 17875, __func__, "arena_id < bg->arenas", "failed assertion"),
-# 17875 "../../../server-code/src/map/clif.c" 3 4
-1
-# 17875 "../../../server-code/src/map/clif.c"
-) )) return; } while(0);
- p.PacketType = bgqueue_battlebeginsType;
- (strlib->safestrncpy_((p.bg_name),(bg->arena[arena_id]->name),(sizeof(p.bg_name))));
- (strlib->safestrncpy_((p.game_name),(bg->arena[arena_id]->name),(sizeof(p.game_name))));
-
- clif->send(&p,sizeof(p), &sd->bl, target);
-}
-
-void clif_scriptclear(struct map_session_data *sd, int npcid) {
- struct packet_script_clear p;
-
- do { if (((void)(sd),
-# 17886 "../../../server-code/src/map/clif.c" 3 4
-0
-# 17886 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- p.PacketType = script_clearType;
- p.NpcID = npcid;
-
- clif->send(&p,sizeof(p), &sd->bl, SELF);
-}
-
-
-void clif_package_item_announce(struct map_session_data *sd, unsigned short nameid, unsigned short containerid) {
- struct packet_package_item_announce p;
-
- do { if (((void)(sd),
-# 17897 "../../../server-code/src/map/clif.c" 3 4
-0
-# 17897 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- p.PacketType = package_item_announceType;
- p.PacketLength = 11+(23 + 1);
- p.type = 0x0;
- p.ItemID = nameid;
- p.len = (23 + 1);
- (strlib->safestrncpy_((p.Name),(sd->status.name),(sizeof(p.Name))));
- p.unknown = 0x2;
- p.BoxItemID = containerid;
-
- clif->send(&p,sizeof(p), &sd->bl, ALL_CLIENT);
-}
-
-
-void clif_item_drop_announce(struct map_session_data *sd, unsigned short nameid, char *monsterName) {
- struct packet_item_drop_announce p;
-
- do { if (((void)(sd),
-# 17914 "../../../server-code/src/map/clif.c" 3 4
-0
-# 17914 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- p.PacketType = item_drop_announceType;
- p.PacketLength = sizeof(p);
- p.type = 0x1;
- p.ItemID = nameid;
- p.len = (23 + 1);
- (strlib->safestrncpy_((p.Name),(sd->status.name),(sizeof(p.Name))));
- p.monsterNameLen = (23 + 1);
- (strlib->safestrncpy_((p.monsterName),(monsterName),(sizeof(p.monsterName))));
-
- clif->send(&p,sizeof(p), &sd->bl, ALL_CLIENT);
-}
-
-
-void clif_skill_cooldown_list(int fd, struct skill_cd* cd) {
-
- const int offset = 10;
-
-
-
- int i, count = 0;
-
- do { if (((void)(cd),
-# 17936 "../../../server-code/src/map/clif.c" 3 4
-0
-# 17936 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- WFIFOHEAD(fd,4+(offset*cd->cursor));
-
-
- WFIFOW(fd,0) = 0x985;
-
-
-
-
- for( i = 0; i < cd->cursor; i++ ) {
- if( cd->entry[i]->duration < 1 ) continue;
-
- WFIFOW(fd,4 + (count*offset)) = cd->entry[i]->skill_id;
-
- WFIFOL(fd, 6 + (count*offset)) = cd->entry[i]->total;
- WFIFOL(fd, 10 + (count*offset)) = cd->entry[i]->duration;
-
-
-
- count++;
- }
-
- WFIFOW(fd,2) = 4+(offset*count);
-
- WFIFOSET(fd,4+(offset*count));
-}
-
-
-
-
-
-void clif_cart_additem_ack(struct map_session_data *sd, int flag) {
- struct packet_cart_additem_ack p;
-
- do { if (((void)(sd),
-# 17971 "../../../server-code/src/map/clif.c" 3 4
-0
-# 17971 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- p.PacketType = cart_additem_ackType;
- p.result = (char)flag;
-
- clif->send(&p,sizeof(p), &sd->bl, SELF);
-}
-
-
-void clif_parse_BankDeposit(int fd, struct map_session_data *sd) __attribute__((nonnull (2)));
-void clif_parse_BankDeposit(int fd, struct map_session_data *sd)
-{
- const struct packet_banking_deposit_req *p = RP2PTR(fd);
- int money;
-
- if (!battle_config.feature_banking) {
- clif->messagecolor_self(fd, 0xff0000U, atcommand->msgfd((fd),(1483)));
- return;
- }
-
- money = (int)(((p->Money) >= (0x7fffffff)) ? (0x7fffffff) : ((p->Money) <= (0)) ? (0) : (p->Money));
-
- pc->bank_deposit(sd,money);
-}
-
-void clif_parse_BankWithdraw(int fd, struct map_session_data *sd) __attribute__((nonnull (2)));
-void clif_parse_BankWithdraw(int fd, struct map_session_data *sd)
-{
- const struct packet_banking_withdraw_req *p = RP2PTR(fd);
- int money;
-
- if (!battle_config.feature_banking) {
- clif->messagecolor_self(fd, 0xff0000U, atcommand->msgfd((fd),(1483)));
- return;
- }
-
- money = (int)(((p->Money) >= (0x7fffffff)) ? (0x7fffffff) : ((p->Money) <= (0)) ? (0) : (p->Money));
-
- pc->bank_withdraw(sd,money);
-}
-
-void clif_parse_BankCheck(int fd, struct map_session_data* sd) __attribute__((nonnull (2)));
-void clif_parse_BankCheck(int fd, struct map_session_data* sd) {
- struct packet_banking_check p;
-
- if (!battle_config.feature_banking) {
- clif->messagecolor_self(fd, 0xff0000U, atcommand->msgfd((fd),(1483)));
- return;
- }
-
- p.PacketType = banking_checkType;
- p.Money = (int)sd->status.bank_vault;
- p.Reason = (short)0;
-
- clif->send(&p,sizeof(p), &sd->bl, SELF);
-}
-
-void clif_parse_BankOpen(int fd, struct map_session_data* sd) __attribute__((nonnull (2)));
-void clif_parse_BankOpen(int fd, struct map_session_data* sd) {
- return;
-}
-
-void clif_parse_BankClose(int fd, struct map_session_data* sd) __attribute__((nonnull (2)));
-void clif_parse_BankClose(int fd, struct map_session_data* sd) {
- return;
-}
-
-void clif_bank_deposit(struct map_session_data *sd, enum e_BANKING_DEPOSIT_ACK reason) {
- struct packet_banking_deposit_ack p;
-
- do { if (((void)(sd),
-# 18040 "../../../server-code/src/map/clif.c" 3 4
-0
-# 18040 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- p.PacketType = banking_deposit_ackType;
- p.Balance = sd->status.zeny;
- p.Money = (int64)sd->status.bank_vault;
- p.Reason = (short)reason;
-
- clif->send(&p,sizeof(p), &sd->bl, SELF);
-}
-
-void clif_bank_withdraw(struct map_session_data *sd,enum e_BANKING_WITHDRAW_ACK reason) {
- struct packet_banking_withdraw_ack p;
-
- do { if (((void)(sd),
-# 18052 "../../../server-code/src/map/clif.c" 3 4
-0
-# 18052 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- p.PacketType = banking_withdraw_ackType;
- p.Balance = sd->status.zeny;
- p.Money = (int64)sd->status.bank_vault;
- p.Reason = (short)reason;
-
- clif->send(&p,sizeof(p), &sd->bl, SELF);
-}
-
-
-
-void clif_show_modifiers (struct map_session_data *sd) {
- do { if (((void)(sd),
-# 18064 "../../../server-code/src/map/clif.c" 3 4
-0
-# 18064 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- if( sd->status.mod_exp != 100 || sd->status.mod_drop != 100 || sd->status.mod_death != 100 ) {
- char output[128];
-
- snprintf(output,128,"Base EXP : %d%% | Base Drop: %d%% | Base Death Penalty: %d%%",
- sd->status.mod_exp,sd->status.mod_drop,sd->status.mod_death);
- clif->broadcast2(&sd->bl,output, strlen(output) + 1, 0xffbc90, 0x190, 12, 0, 0, SELF);
- }
-
-}
-
-void clif_notify_bounditem(struct map_session_data *sd, unsigned short index) {
- struct packet_notify_bounditem p;
-
- do { if (((void)(sd),
-# 18079 "../../../server-code/src/map/clif.c" 3 4
-0
-# 18079 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- p.PacketType = notify_bounditemType;
- p.index = index+2;
-
- clif->send(&p,sizeof(p), &sd->bl, SELF);
-}
-
-void clif_parse_GMFullStrip(int fd, struct map_session_data *sd) __attribute__((nonnull (2)));
-
-
-
-void clif_parse_GMFullStrip(int fd, struct map_session_data *sd) {
- struct map_session_data *tsd = map->id2sd(RFIFOL(fd,2));
- int i;
-
-
- if( !tsd || ( (tsd)->group->level ) >= ( (sd)->group->level ) )
- return;
-
- for( i = 0; i < EQI_MAX; i++ ) {
- if( tsd->equip_index[ i ] >= 0 )
- pc->unequipitem(tsd, tsd->equip_index[i], PCUNEQUIPITEM_FORCE);
- }
-}
-
-
-
-
-int clif_delay_damage_sub(int tid, int64 tick, int id, intptr_t data) {
- struct cdelayed_damage *dd = (struct cdelayed_damage *)data;
-
- clif->send(&dd->p,sizeof(struct packet_damage),&dd->bl,AREA_WOS);
-
- ((clif->delayed_damage_ers)->free((clif->delayed_damage_ers),(dd)));
-
- return 0;
-}
-# 18131 "../../../server-code/src/map/clif.c"
-int clif_delay_damage(int64 tick, struct block_list *src, struct block_list *dst, int sdelay, int ddelay, int64 in_damage, short div, unsigned char type) {
- struct cdelayed_damage *dd;
- struct status_change *sc;
-
-
-
- int damage;
-
-
- do { if (((void)(src),
-# 18140 "../../../server-code/src/map/clif.c" 3 4
-0
-# 18140 "../../../server-code/src/map/clif.c"
-)) return(0); } while(0);
- do { if (((void)(dst),
-# 18141 "../../../server-code/src/map/clif.c" 3 4
-0
-# 18141 "../../../server-code/src/map/clif.c"
-)) return(0); } while(0);
-
- sc = status->get_sc(dst);
-
- if(sc && sc->count && sc->data[SC_ILLUSION]) {
- if(in_damage) in_damage = in_damage*(sc->data[SC_ILLUSION]->val2) + rnd()%100;
- }
-
-
-
-
- damage = (int)(((in_damage) < (0x7fffffff)) ? (in_damage) : (0x7fffffff));
-
-
- type = clif_calc_delay(type,div,damage,ddelay);
-
- dd = ((struct cdelayed_damage *)(clif->delayed_damage_ers)->alloc(clif->delayed_damage_ers));
-
- dd->p.PacketType = damageType;
- dd->p.GID = src->id;
- dd->p.targetGID = dst->id;
- dd->p.startTime = (uint32)timer->gettick();
- dd->p.attackMT = sdelay;
- dd->p.attackedMT = ddelay;
- dd->p.count = div;
- dd->p.action = type;
- dd->p.leftDamage = 0;
-
- if( battle_config.hide_woe_damage && (map->list[src->m].flag.gvg || map->list[src->m].flag.gvg_castle) )
- dd->p.damage = damage?div:0;
- else
- dd->p.damage = damage;
-
- dd->bl.m = dst->m;
- dd->bl.x = dst->x;
- dd->bl.y = dst->y;
- dd->bl.type = BL_NUL;
-
- if( tick > timer->gettick() )
- timer->add(tick,clif->delay_damage_sub,0,(intptr_t)dd);
- else {
- clif->send(&dd->p,sizeof(struct packet_damage),&dd->bl,AREA_WOS);
-
- ((clif->delayed_damage_ers)->free((clif->delayed_damage_ers),(dd)));
- }
-
- return clif->calc_walkdelay(dst,ddelay,type,damage,div);
-}
-
-void clif_parse_NPCShopClosed(int fd, struct map_session_data *sd) __attribute__((nonnull (2)));
-
-void clif_parse_NPCShopClosed(int fd, struct map_session_data *sd) {
-
- sd->npc_shopid = 0;
-}
-
-
-void clif_npc_market_open(struct map_session_data *sd, struct npc_data *nd) {
-
- struct npc_item_list *shop;
- unsigned short shop_size, i, c;
-
- do { if (((void)(sd),
-# 18203 "../../../server-code/src/map/clif.c" 3 4
-0
-# 18203 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- do { if (((void)(nd),
-# 18204 "../../../server-code/src/map/clif.c" 3 4
-0
-# 18204 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- shop = nd->u.scr.shop->item;
- shop_size = nd->u.scr.shop->items;
- npcmarket_open.PacketType = npcmarketopenType;
-
- for(i = 0, c = 0; i < shop_size; i++) {
- struct item_data *id =
-# 18210 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 18210 "../../../server-code/src/map/clif.c"
- ;
- if (shop[i].nameid && (id = itemdb->exists(shop[i].nameid)) !=
-# 18211 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 18211 "../../../server-code/src/map/clif.c"
- ) {
- npcmarket_open.list[c].nameid = shop[i].nameid;
- npcmarket_open.list[c].price = shop[i].value;
- npcmarket_open.list[c].qty = shop[i].qty;
- npcmarket_open.list[c].type = itemtype(id->type);
- npcmarket_open.list[c].view = ( id->view_id > 0 ) ? id->view_id : id->nameid;
- c++;
- }
- }
-
- npcmarket_open.PacketLength = 4 + ( sizeof(npcmarket_open.list[0]) * c );
-
- clif->send(&npcmarket_open,npcmarket_open.PacketLength,&sd->bl,SELF);
-
-}
-
-void clif_parse_NPCMarketClosed(int fd, struct map_session_data *sd) __attribute__((nonnull (2)));
-void clif_parse_NPCMarketClosed(int fd, struct map_session_data *sd) {
-
- sd->npc_shopid = 0;
-}
-
-void clif_npc_market_purchase_ack(struct map_session_data *sd, const struct itemlist *item_list, unsigned char response)
-{
-
- unsigned short c = 0;
-
- do { if (((void)(sd),
-# 18238 "../../../server-code/src/map/clif.c" 3 4
-0
-# 18238 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- do { if (((void)(item_list),
-# 18239 "../../../server-code/src/map/clif.c" 3 4
-0
-# 18239 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- npcmarket_result.PacketType = npcmarketresultackType;
- npcmarket_result.result = response == 0 ? 1 : 0;
-
- if (npcmarket_result.result) {
- struct npc_data *nd = map->id2nd(sd->npc_shopid);
- struct npc_item_list *shop = nd->u.scr.shop->item;
- unsigned short shop_size = nd->u.scr.shop->items;
- int i;
-
- for (i = 0; i < ( (*item_list)._len_ ); i++) {
- const struct itemlist_entry *entry = &( ( (*item_list)._data_ )[i] );
- int j;
-
- npcmarket_result.list[i].ITID = entry->id;
- npcmarket_result.list[i].qty = entry->amount;
-
- do { for ((j) = (0); (j) < (shop_size); ++(j)) if (entry->id == shop[j].nameid) break; } while(
-# 18256 "../../../server-code/src/map/clif.c" 3 4
- 0
-# 18256 "../../../server-code/src/map/clif.c"
- );
-
- npcmarket_result.list[i].price = (j != shop_size) ? shop[j].value : 0;
-
- c++;
- }
- }
-
- npcmarket_result.PacketLength = 5 + ( sizeof(npcmarket_result.list[0]) * c );;
-
- clif->send(&npcmarket_result,npcmarket_result.PacketLength,&sd->bl,SELF);
-
-}
-
-void clif_parse_NPCMarketPurchase(int fd, struct map_session_data *sd) __attribute__((nonnull (2)));
-void clif_parse_NPCMarketPurchase(int fd, struct map_session_data *sd)
-{
-
- const struct packet_npc_market_purchase *p = RP2PTR(fd);
- int response = 0, i;
- int count = (p->PacketLength - 4) / sizeof p->list[0];
- struct itemlist item_list;
-
- do { if (( (count >= 0 && count <= 100) ?
-# 18279 "../../../server-code/src/map/clif.c" 3 4
-0
-# 18279 "../../../server-code/src/map/clif.c"
-: (nullpo->assert_report("../../../server-code/src/map/clif.c", 18279, __func__, "count >= 0 && count <= 100", "failed assertion"),
-# 18279 "../../../server-code/src/map/clif.c" 3 4
-1
-# 18279 "../../../server-code/src/map/clif.c"
-) )) return; } while(0);
-
- memset(&(item_list), 0, sizeof(item_list));
- do { int _empty_ = ( (item_list)._max_ )-( (item_list)._len_ ); if ((count) > _empty_) { while ((count) > _empty_) _empty_ += (1); do { if ((_empty_+( (item_list)._len_ )) > ( (item_list)._max_ )) { if (( (item_list)._max_ ) == 0) ( (item_list)._data_ ) = (iMalloc->malloc(((_empty_+( (item_list)._len_ ))*sizeof(( ( ( (item_list)._data_ )[0] ) ))),"../../../server-code/src/map/clif.c", 18282, __func__)); else ( (item_list)._data_ ) = (iMalloc->realloc((( (item_list)._data_ )),((_empty_+( (item_list)._len_ ))*sizeof(( ( ( (item_list)._data_ )[0] ) ))),"../../../server-code/src/map/clif.c", 18282, __func__)); memset(( (item_list)._data_ )+( (item_list)._len_ ), 0, (( (item_list)._max_ )-( (item_list)._len_ ))*sizeof(( ( ( (item_list)._data_ )[0] ) ))); ( (item_list)._max_ ) = (_empty_+( (item_list)._len_ )); } else if ((_empty_+( (item_list)._len_ )) == 0 && ( (item_list)._max_ ) > 0) { (iMalloc->free((( (item_list)._data_ )),"../../../server-code/src/map/clif.c", 18282, __func__)); ( (item_list)._data_ ) =
-# 18282 "../../../server-code/src/map/clif.c" 3 4
-((void *)0)
-# 18282 "../../../server-code/src/map/clif.c"
-; ( (item_list)._max_ ) = 0; ( (item_list)._len_ ) = 0; } else if ((_empty_+( (item_list)._len_ )) < ( (item_list)._max_ )) { ( (item_list)._data_ ) = (iMalloc->realloc((( (item_list)._data_ )),((_empty_+( (item_list)._len_ ))*sizeof(( ( ( (item_list)._data_ )[0] ) ))),"../../../server-code/src/map/clif.c", 18282, __func__)); ( (item_list)._max_ ) = (_empty_+( (item_list)._len_ )); if ((_empty_+( (item_list)._len_ )) - ( (item_list)._len_ ) > 0) ( (item_list)._len_ ) = (_empty_+( (item_list)._len_ )); } } while(
-# 18282 "../../../server-code/src/map/clif.c" 3 4
-0
-# 18282 "../../../server-code/src/map/clif.c"
-); } } while(
-# 18282 "../../../server-code/src/map/clif.c" 3 4
-0
-# 18282 "../../../server-code/src/map/clif.c"
-);
-
- for (i = 0; i < count; i++) {
- struct itemlist_entry entry = { 0 };
-
- entry.id = p->list[i].ITID;
- entry.amount = p->list[i].qty;
-
- do { ( ( (item_list)._data_ )[( (item_list)._len_ )] ) = (entry); ++( (item_list)._len_ ); }while(
-# 18290 "../../../server-code/src/map/clif.c" 3 4
- 0
-# 18290 "../../../server-code/src/map/clif.c"
- );
- }
-
- response = npc->market_buylist(sd, &item_list);
- clif->npc_market_purchase_ack(sd, &item_list, response);
-
- do { if (( (item_list)._max_ ) > 0) { (iMalloc->free((( (item_list)._data_ )),"../../../server-code/src/map/clif.c", 18296, __func__)); ( (item_list)._data_ ) =
-# 18296 "../../../server-code/src/map/clif.c" 3 4
-((void *)0)
-# 18296 "../../../server-code/src/map/clif.c"
-; ( (item_list)._max_ ) = 0; ( (item_list)._len_ ) = 0; } } while(
-# 18296 "../../../server-code/src/map/clif.c" 3 4
-0
-# 18296 "../../../server-code/src/map/clif.c"
-);
-
-}
-
-void clif_PartyLeaderChanged(struct map_session_data *sd, int prev_leader_aid, int new_leader_aid) {
- struct packet_party_leader_changed p;
-
- do { if (((void)(sd),
-# 18303 "../../../server-code/src/map/clif.c" 3 4
-0
-# 18303 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- p.PacketType = partyleaderchangedType;
-
- p.prev_leader_aid = prev_leader_aid;
- p.new_leader_aid = new_leader_aid;
-
- clif->send(&p,sizeof(p),&sd->bl,PARTY);
-}
-
-void clif_parse_RouletteOpen(int fd, struct map_session_data* sd) __attribute__((nonnull (2)));
-
-void clif_parse_RouletteOpen(int fd, struct map_session_data* sd) {
- struct packet_roulette_open_ack p;
-
- if( !battle_config.feature_roulette ) {
- clif->message(fd,"Roulette is disabled");
- return;
- }
-
- p.PacketType = 0xa1a;
- p.Result = 0;
- p.Serial = 0;
- p.Step = sd->roulette.stage - 1;
- p.Idx = (char)sd->roulette.prizeIdx;
- p.AdditionItemID = -1;
- p.BronzePoint = (pc->readregistry((sd),(script->add_str("TmpRouletteBronze"))));
- p.GoldPoint = (pc->readregistry((sd),(script->add_str("TmpRouletteGold"))));
- p.SilverPoint = (pc->readregistry((sd),(script->add_str("TmpRouletteSilver"))));
-
- clif->send(&p,sizeof(p), &sd->bl, SELF);
-}
-
-void clif_parse_RouletteInfo(int fd, struct map_session_data* sd) __attribute__((nonnull (2)));
-void clif_parse_RouletteInfo(int fd, struct map_session_data* sd) {
- struct packet_roulette_info_ack p;
- unsigned short i, j, count = 0;
-
- if( !battle_config.feature_roulette ) {
- clif->message(fd,"Roulette is disabled");
- return;
- }
-
- p.PacketType = rouletteinfoackType;
- p.PacketLength = 8 + (42 * 8);
- p.RouletteSerial = 1;
-
- for(i = 0; i < 7; i++) {
- for(j = 0; j < 9 -i; j++) {
- p.ItemInfo[count].Row = i;
- p.ItemInfo[count].Position = j;
- p.ItemInfo[count].ItemId = clif->rd.nameid[i][j];
- p.ItemInfo[count].Count = clif->rd.qty[i][j];
- count++;
- }
- }
- clif->send(&p,sizeof(p), &sd->bl, SELF);
- return;
-}
-
-void clif_parse_RouletteClose(int fd, struct map_session_data* sd) __attribute__((nonnull (2)));
-void clif_parse_RouletteClose(int fd, struct map_session_data* sd) {
- if( !battle_config.feature_roulette ) {
- clif->message(fd,"Roulette is disabled");
- return;
- }
-
-
-
-
- return;
-}
-
-void clif_parse_RouletteGenerate(int fd, struct map_session_data* sd) __attribute__((nonnull (2)));
-void clif_parse_RouletteGenerate(int fd, struct map_session_data* sd) {
- unsigned char result = GENERATE_ROULETTE_SUCCESS;
- short stage = sd->roulette.stage;
-
- if( !battle_config.feature_roulette ) {
- clif->message(fd,"Roulette is disabled");
- return;
- }
-
- if( sd->roulette.stage >= 7 )
- stage = sd->roulette.stage = 0;
-
- if( stage == 0 ) {
- if( (pc->readregistry((sd),(script->add_str("TmpRouletteBronze")))) <= 0 &&
- (pc->readregistry((sd),(script->add_str("TmpRouletteSilver")))) < 10 &&
- (pc->readregistry((sd),(script->add_str("TmpRouletteGold")))) < 10 )
- result = GENERATE_ROULETTE_NO_ENOUGH_POINT;
- }
-
- if( result == GENERATE_ROULETTE_SUCCESS ) {
- if( stage == 0 ) {
- if( (pc->readregistry((sd),(script->add_str("TmpRouletteBronze")))) > 0 ) {
- (pc->setregistry((sd),(script->add_str("TmpRouletteBronze")),((pc->readregistry((sd),(script->add_str("TmpRouletteBronze")))) - 1)));
- } else if( (pc->readregistry((sd),(script->add_str("TmpRouletteSilver")))) > 9 ) {
- (pc->setregistry((sd),(script->add_str("TmpRouletteSilver")),((pc->readregistry((sd),(script->add_str("TmpRouletteSilver")))) - 10)));
- stage = sd->roulette.stage = 2;
- } else if( (pc->readregistry((sd),(script->add_str("TmpRouletteGold")))) > 9 ) {
- (pc->setregistry((sd),(script->add_str("TmpRouletteGold")),((pc->readregistry((sd),(script->add_str("TmpRouletteGold")))) - 10)));
- stage = sd->roulette.stage = 4;
- }
- }
- sd->roulette.prizeStage = stage;
- sd->roulette.prizeIdx = rnd()%clif->rd.items[stage];
- if( sd->roulette.prizeIdx == 0 ) {
- struct item it;
- memset(&it, 0, sizeof(it));
-
- it.nameid = clif->rd.nameid[stage][0];
- it.identify = 1;
-
- pc->additem(sd, &it, clif->rd.qty[stage][0], LOG_TYPE_ROULETTE);
-
- sd->roulette.stage = 0;
- result = GENERATE_ROULETTE_LOSING;
- } else
- sd->roulette.claimPrize =
-# 18421 "../../../server-code/src/map/clif.c" 3 4
- 1
-# 18421 "../../../server-code/src/map/clif.c"
- ;
- }
-
- clif->roulette_generate_ack(sd,result,stage,sd->roulette.prizeIdx,0);
- if( result == GENERATE_ROULETTE_SUCCESS )
- sd->roulette.stage++;
-}
-
-void clif_parse_RouletteRecvItem(int fd, struct map_session_data* sd) __attribute__((nonnull (2)));
-
-
-
-void clif_parse_RouletteRecvItem(int fd, struct map_session_data* sd) {
- struct packet_roulette_itemrecv_ack p;
-
- if( !battle_config.feature_roulette ) {
- clif->message(fd,"Roulette is disabled");
- return;
- }
-
- p.PacketType = roulettercvitemackType;
- p.AdditionItemID = 0;
-
- if( sd->roulette.claimPrize ) {
- struct item it;
- memset(&it, 0, sizeof(it));
-
- it.nameid = clif->rd.nameid[sd->roulette.prizeStage][sd->roulette.prizeIdx];
- it.identify = 1;
-
- switch (pc->additem(sd, &it, clif->rd.qty[sd->roulette.prizeStage][sd->roulette.prizeIdx], LOG_TYPE_ROULETTE)) {
- case 0:
- p.Result = RECV_ITEM_SUCCESS;
- sd->roulette.claimPrize =
-# 18454 "../../../server-code/src/map/clif.c" 3 4
- 0
-# 18454 "../../../server-code/src/map/clif.c"
- ;
- sd->roulette.prizeStage = 0;
- sd->roulette.prizeIdx = 0;
- sd->roulette.stage = 0;
- break;
- case 1:
- case 4:
- case 5:
- p.Result = RECV_ITEM_OVERCOUNT;
- break;
- case 2:
- p.Result = RECV_ITEM_OVERWEIGHT;
- break;
- default:
- case 7:
- p.Result = RECV_ITEM_FAILED;
- break;
- }
- } else
- p.Result = RECV_ITEM_FAILED;
-
- clif->send(&p,sizeof(p), &sd->bl, SELF);
- return;
-}
-
-
-# 18479 "../../../server-code/src/map/clif.c" 3 4
-_Bool
-# 18479 "../../../server-code/src/map/clif.c"
- clif_parse_roulette_db(void) {
- struct config_t roulette_conf;
- struct config_setting_t *roulette =
-# 18481 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 18481 "../../../server-code/src/map/clif.c"
- , *levels =
-# 18481 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 18481 "../../../server-code/src/map/clif.c"
- ;
- const char *config_filename = "db/roulette_db.conf";
- int i, j, item_count_t = 0;
-
- for( i = 0; i < 7; i++ ) {
- clif->rd.items[i] = 0;
- }
-
- if (!libconfig->load_file(&roulette_conf, config_filename))
- return
-# 18490 "../../../server-code/src/map/clif.c" 3 4
- 0
-# 18490 "../../../server-code/src/map/clif.c"
- ;
- roulette = libconfig->lookup(&roulette_conf, "roulette");
-
- if( roulette !=
-# 18493 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 18493 "../../../server-code/src/map/clif.c"
- && (levels = libconfig->setting_get_elem(roulette, 0)) !=
-# 18493 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 18493 "../../../server-code/src/map/clif.c"
- ) {
- for(i = 0; i < 7; i++) {
- struct config_setting_t *level;
- char entry_name[10];
-
- sprintf(entry_name,"level_%d",i+1);
-
- if( (level = libconfig->setting_get_member(levels, entry_name)) !=
-# 18500 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 18500 "../../../server-code/src/map/clif.c"
- ) {
- int k, item_count = libconfig->setting_length(level);
-
- for(k = 0; k < item_count; k++) {
- struct config_setting_t *entry = libconfig->setting_get_elem(level,k);
- const char *name = ((entry)->name);
- int qty = libconfig->setting_get_int(entry);
- struct item_data * data =
-# 18507 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 18507 "../../../server-code/src/map/clif.c"
- ;
-
- if( qty < 1 ) {
- (showmsg->showWarning(("roulette_db: unsupported qty '%d' for entry named '%s' in category '%s'\n"), qty, name, entry_name));
- continue;
- }
-
- if( name[0] == 'I' && name[1] == 'D' && strlen(name) <= 7 ) {
- if( !( data = itemdb->exists(atoi(name+2))) ) {
- (showmsg->showWarning(("roulette_db: unknown item id '%s' in category '%s'\n"), name+2, entry_name));
- continue;
- }
- } else {
- if( !( data = itemdb->search_name(name) ) ) {
- (showmsg->showWarning(("roulette_db: unknown item name '%s' in category '%s'\n"), name, entry_name));
- continue;
- }
- }
-
- j = clif->rd.items[i];
- ((clif->rd.nameid[i]) = (int *) (iMalloc->reallocz(((clif->rd.nameid[i])),(sizeof(int) * (++clif->rd.items[i])),"../../../server-code/src/map/clif.c", 18527, __func__)));
- ((clif->rd.qty[i]) = (int *) (iMalloc->reallocz(((clif->rd.qty[i])),(sizeof(int) * (clif->rd.items[i])),"../../../server-code/src/map/clif.c", 18528, __func__)));
-
- clif->rd.nameid[i][j] = data->nameid;
- clif->rd.qty[i][j] = qty;
-
- item_count_t++;
- }
- }
- }
- }
- libconfig->destroy(&roulette_conf);
-
- for(i = 0; i < 7; i++) {
- int limit = 9 -i;
- if( clif->rd.items[i] == limit ) continue;
-
- if( clif->rd.items[i] > limit ) {
- (showmsg->showWarning(("roulette_db: level %d has %d items, only %d supported, capping...\n"),i+1,clif->rd.items[i],limit));
- clif->rd.items[i] = limit;
- continue;
- }
-
- (showmsg->showWarning(("roulette_db: level %d has %d items, %d are required. filling with apples\n"),i+1,clif->rd.items[i],limit));
-
- clif->rd.items[i] = limit;
- ((clif->rd.nameid[i]) = (int *) (iMalloc->reallocz(((clif->rd.nameid[i])),(sizeof(int) * (clif->rd.items[i])),"../../../server-code/src/map/clif.c", 18553, __func__)));
- ((clif->rd.qty[i]) = (int *) (iMalloc->reallocz(((clif->rd.qty[i])),(sizeof(int) * (clif->rd.items[i])),"../../../server-code/src/map/clif.c", 18554, __func__)));
-
- for(j = 0; j < 9 -i; j++) {
- if (clif->rd.qty[i][j])
- continue;
- clif->rd.nameid[i][j] = ITEMID_APPLE;
- clif->rd.qty[i][j] = 1;
- }
- }
- (showmsg->showStatus(("Done reading '""\033[1;37m""%d""\033[0m""' entries in '""\033[1;37m""%s""\033[0m""'.\n"), item_count_t, config_filename));
-
- return
-# 18565 "../../../server-code/src/map/clif.c" 3 4
- 1
-# 18565 "../../../server-code/src/map/clif.c"
- ;
-}
-
-
-
-
-void clif_roulette_generate_ack(struct map_session_data *sd, unsigned char result, short stage, short prizeIdx, short bonusItemID) {
- struct packet_roulette_generate_ack p;
-
- do { if (((void)(sd),
-# 18574 "../../../server-code/src/map/clif.c" 3 4
-0
-# 18574 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- p.PacketType = roulettgenerateackType;
- p.Result = result;
- p.Step = stage;
- p.Idx = prizeIdx;
- p.AdditionItemID = bonusItemID;
- p.RemainBronze = (pc->readregistry((sd),(script->add_str("TmpRouletteBronze"))));
- p.RemainGold = (pc->readregistry((sd),(script->add_str("TmpRouletteGold"))));
- p.RemainSilver = (pc->readregistry((sd),(script->add_str("TmpRouletteSilver"))));
-
- clif->send(&p,sizeof(p), &sd->bl, SELF);
-}
-
-
-
-
-void clif_openmergeitem(int fd, struct map_session_data *sd)
-{
- int i = 0, n = 0, j = 0;
- struct merge_item merge_items[100];
- struct merge_item *merge_items_[100] = {0};
-
- do { if (((void)(sd),
-# 18596 "../../../server-code/src/map/clif.c" 3 4
-0
-# 18596 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- memset(&merge_items,'\0',sizeof(merge_items));
-
- for (i = 0; i < 100; i++) {
- struct item *item_data = &sd->status.inventory[i];
-
- if (item_data->nameid == 0 || !itemdb->isstackable(item_data->nameid) || item_data->bound != IBT_NONE)
- continue;
-
- merge_items[n].nameid = item_data->nameid;
- merge_items[n].position = i + 2;
- n++;
- }
-
- qsort(merge_items,n,sizeof(struct merge_item),clif->comparemergeitem);
-
- for (i = 0, j = 0; i < n; i++) {
- if (i > 0 && merge_items[i].nameid == merge_items[i-1].nameid)
- {
- merge_items_[j] = &merge_items[i];
- j++;
- continue;
- }
-
- if (i < n - 1 && merge_items[i].nameid == merge_items[i+1].nameid)
- {
- merge_items_[j] = &merge_items[i];
- j++;
- continue;
- }
- }
-
- WFIFOHEAD(fd,2*j+4);
- WFIFOW(fd,0) = 0x96d;
- WFIFOW(fd,2) = 2*j+4;
- for ( i = 0; i < j; i++ )
- WFIFOW(fd,i*2+4) = merge_items_[i]->position;
- WFIFOSET(fd,2*j+4);
-}
-
-int clif_comparemergeitem(const void *a, const void *b)
-{
- const struct merge_item *a_ = a;
- const struct merge_item *b_ = b;
-
- do { if (((void)(a),
-# 18641 "../../../server-code/src/map/clif.c" 3 4
-0
-# 18641 "../../../server-code/src/map/clif.c"
-)) return(0); } while(0);
- do { if (((void)(b),
-# 18642 "../../../server-code/src/map/clif.c" 3 4
-0
-# 18642 "../../../server-code/src/map/clif.c"
-)) return(0); } while(0);
- if (a_->nameid == b_->nameid)
- return 0;
- return a_->nameid > b_->nameid ? -1 : 1;
-}
-
-void clif_ackmergeitems(int fd, struct map_session_data *sd)
-{
- int i = 0, n = 0, length = 0, count = 0;
- int16 nameid = 0, indexes[100] = {0}, amounts[100] = {0};
- struct item item_data;
-
- do { if (((void)(sd),
-# 18654 "../../../server-code/src/map/clif.c" 3 4
-0
-# 18654 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
- length = (RFIFOW(fd,2) - 4)/2;
-
- if (length >= 100 || length < 2) {
- WFIFOHEAD(fd,7);
- WFIFOW(fd,0) = 0x96f;
- WFIFOW(fd,2) = 0;
- WFIFOW(fd,4) = 0;
- WFIFOB(fd,6) = MERGEITEM_FAILD;
- WFIFOSET(fd,7);
- return;
- }
-
- for (i = 0, n = 0; i < length; i++) {
- int16 idx = RFIFOW(fd,i*2+4) - 2;
- struct item *it =
-# 18669 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 18669 "../../../server-code/src/map/clif.c"
- ;
-
- if (idx < 0 || idx >= 100)
- continue;
-
- it = &sd->status.inventory[idx];
-
- if (it->nameid == 0 || !itemdb->isstackable(it->nameid) || it->bound != IBT_NONE)
- continue;
-
- if (nameid == 0)
- nameid = it->nameid;
-
- if (nameid != it->nameid)
- continue;
-
- count += it->amount;
- indexes[n] = idx;
- amounts[n] = it->amount;
- n++;
- }
-
- if (n < 2 || count == 0) {
- WFIFOHEAD(fd,7);
- WFIFOW(fd,0) = 0x96f;
- WFIFOW(fd,2) = 0;
- WFIFOW(fd,4) = 0;
- WFIFOB(fd,6) = MERGEITEM_FAILD;
- WFIFOSET(fd,7);
- return;
- }
-
- if (count > 30000) {
- WFIFOHEAD(fd,7);
- WFIFOW(fd,0) = 0x96f;
- WFIFOW(fd,2) = 0;
- WFIFOW(fd,4) = 0;
- WFIFOB(fd,6) = MERGEITEM_MAXCOUNTFAILD;
- WFIFOSET(fd,7);
- return;
- }
-
- for (i = 0; i < n; i++)
- pc->delitem(sd,indexes[i],amounts[i],0,DELITEM_NORMAL,LOG_TYPE_NPC);
-
- memset(&item_data,'\0',sizeof(item_data));
-
- item_data.nameid = nameid;
- item_data.identify = 1;
- item_data.unique_id = itemdb->unique_id(sd);
- pc->additem(sd,&item_data,count,LOG_TYPE_NPC);
-
- do { for ((i) = (0); (i) < (100); ++(i)) if (item_data.unique_id == sd->status.inventory[i].unique_id) break; } while(
-# 18721 "../../../server-code/src/map/clif.c" 3 4
-0
-# 18721 "../../../server-code/src/map/clif.c"
-);
-
- WFIFOHEAD(fd,7);
- WFIFOW(fd,0) = 0x96f;
- WFIFOW(fd,2) = i+2;
- WFIFOW(fd,4) = count;
- WFIFOB(fd,6) = MERGEITEM_SUCCESS;
- WFIFOSET(fd,7);
-}
-
-void clif_cancelmergeitem (int fd, struct map_session_data *sd)
-{
-
- return;
-}
-
-void clif_dressroom_open(struct map_session_data *sd, int view)
-{
- int fd;
-
- do { if (((void)(sd),
-# 18741 "../../../server-code/src/map/clif.c" 3 4
-0
-# 18741 "../../../server-code/src/map/clif.c"
-)) return; } while(0);
-
- fd = sd->fd;
- WFIFOHEAD(fd,packet_db[0xa02].len);
- WFIFOW(fd,0)=0xa02;
- WFIFOW(fd,2)=view;
- WFIFOSET(fd,packet_db[0xa02].len);
-}
-
-
-
-void clif_selectcart(struct map_session_data *sd)
-{
-# 18770 "../../../server-code/src/map/clif.c"
-}
-
-
-
-
-
-
-
-const char *clif_get_bl_name(const struct block_list *bl)
-{
- const char *name = status->get_name(bl);
-
- if (name ==
-# 18782 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 18782 "../../../server-code/src/map/clif.c"
- )
- return "Unknown";
-
- return name;
-}
-
-
-unsigned short clif_decrypt_cmd( int cmd, struct map_session_data *sd ) {
- if( sd ) {
- return (cmd ^ ((sd->cryptKey >> 16) & 0x7FFF));
- }
- return (cmd ^ (((( clif->cryptKey[0] * clif->cryptKey[1] ) + clif->cryptKey[2]) >> 16) & 0x7FFF));
-}
-
-unsigned short clif_parse_cmd_normal( int fd, struct map_session_data *sd ) {
- unsigned short cmd = RFIFOW(fd,0);
-
- return cmd;
-}
-
-unsigned short clif_parse_cmd_decrypt( int fd, struct map_session_data *sd ) {
- unsigned short cmd = RFIFOW(fd,0);
-
- cmd = clif->decrypt_cmd(cmd, sd);
-
- return cmd;
-}
-
-unsigned short clif_parse_cmd_optional( int fd, struct map_session_data *sd ) {
- unsigned short cmd = RFIFOW(fd,0);
-
-
- if( cmd > 0x0F00 || cmd < 0x0064 || packet_db[cmd].len == 0 ) {
- if( sd )
- sd->parse_cmd_func = clif_parse_cmd_decrypt;
- return clif_parse_cmd_decrypt(fd, sd);
- } else if( sd ) {
- sd->parse_cmd_func = clif_parse_cmd_normal;
- }
-
- return cmd;
-}
-
-
-
-
-int clif_parse(int fd) {
- int cmd, packet_len;
- struct map_session_data *sd;
- int pnum;
-
-
-
-
- for( pnum = 0; pnum < 3; ++pnum ) {
- unsigned short (*parse_cmd_func)(int fd, struct map_session_data *sd);
-
-
- sd = sockt->session[fd]->session_data;
-
- if (sockt->session[fd]->flag.eof) {
- if (sd) {
- if (sd->state.autotrade) {
-
- sockt->session[fd]->session_data =
-# 18846 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 18846 "../../../server-code/src/map/clif.c"
- ;
- sd->fd = 0;
- (showmsg->showInfo(("Character '""\033[1;37m""%s""\033[0m""' logged off (using @autotrade).\n"), sd->status.name));
- } else
- if (sd->state.active) {
-
- (showmsg->showInfo(("Character '""\033[1;37m""%s""\033[0m""' logged off.\n"), sd->status.name));
- clif->quitsave(fd, sd);
- } else {
-
- (showmsg->showInfo(("Player AID:%d/CID:%d logged off.\n"), sd->status.account_id, sd->status.char_id));
- map->quit(sd);
- }
- } else {
- (showmsg->showInfo(("Closed connection from '""\033[1;37m""%s""\033[0m""'.\n"), sockt->ip2str(sockt->session[fd]->client_addr,
-# 18860 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 18860 "../../../server-code/src/map/clif.c"
- )));
- }
- sockt->close(fd);
- return 0;
- }
-
- if (RFIFOREST(fd) < 2)
- return 0;
-
- if (sd)
- parse_cmd_func = sd->parse_cmd_func;
- else
- parse_cmd_func = clif->parse_cmd;
-
- cmd = parse_cmd_func(fd,sd);
-
- if (( (HPM->packets[hpClif_Parse])._len_ ) > 0) {
- int result = HPM->parse_packets(fd,cmd,hpClif_Parse);
- if (result == 1)
- continue;
- if (result == 2)
- return 0;
- }
-
-
- if (cmd > 0x0F00 || cmd < 0x0064 || packet_db[cmd].len == 0) {
- (showmsg->showWarning(("clif_parse: Received unsupported packet (packet 0x%04x (0x%04x), %""z" "u"" bytes received), disconnecting session #%d.\n"), (unsigned int)cmd, RFIFOW(fd,0), RFIFOREST(fd), fd))
- ;
-
-
-
- sockt->eof(fd);
- return 0;
- }
-
-
- if ( ( packet_len = packet_db[cmd].len ) == -1) {
-
- if (RFIFOREST(fd) < 4)
- return 0;
-
- packet_len = RFIFOW(fd,2);
- if (packet_len < 4 || packet_len > 32768) {
- (showmsg->showWarning(("clif_parse: Received packet 0x%04x specifies invalid packet_len (%d), disconnecting session #%d.\n"), (unsigned int)cmd, packet_len, fd));
-
-
-
- sockt->eof(fd);
-
- return 0;
- }
- }
-
- if ((int)RFIFOREST(fd) < packet_len)
- return 0;
-
- if( battle_config.packet_obfuscation == 2 || cmd != RFIFOW(fd, 0) || (sd && sd->parse_cmd_func == clif_parse_cmd_decrypt) ) {
-
-
- int16 *packet_id = ((void *)(sockt->session[fd]->rdata + sockt->session[fd]->rdata_pos + (0)));
-
- *packet_id = cmd;
- if( sd ) {
- sd->cryptKey = (( sd->cryptKey * clif->cryptKey[1] ) + clif->cryptKey[2]) & 0xFFFFFFFF;
- }
- }
-
- if( packet_db[cmd].func == clif->pDebug )
- packet_db[cmd].func(fd, sd);
- else if( packet_db[cmd].func !=
-# 18929 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 18929 "../../../server-code/src/map/clif.c"
- ) {
- if( !sd && packet_db[cmd].func != clif->pWantToConnection )
- ;
- else
- if( sd && sd->bl.prev ==
-# 18933 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 18933 "../../../server-code/src/map/clif.c"
- && packet_db[cmd].func != clif->pLoadEndAck )
- ;
- else
- packet_db[cmd].func(fd, sd);
- }
-# 18968 "../../../server-code/src/map/clif.c"
- RFIFOSKIP(fd, packet_len);
-
- };
-
- return 0;
-}
-
-
-
-
-
-
-
-const struct s_packet_db *clif_packet(int packet_id)
-{
- if (packet_id < 0x0064 || packet_id > 0x0F00 || packet_db[packet_id].len == 0)
- return
-# 18984 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 18984 "../../../server-code/src/map/clif.c"
- ;
- return &packet_db[packet_id];
-}
-
-static void __attribute__ ((unused)) packetdb_addpacket(short cmd, int len, ...) {
- va_list va;
- int i;
- int pos;
- pFunc func;
-
- if (cmd > 0x0F00) {
- (showmsg->showError(("Packet Error: packet 0x%x is greater than the maximum allowed (0x%x), skipping...\n"), (unsigned int)cmd, (unsigned int)0x0F00));
- return;
- }
-
- if (cmd < 0x0064) {
- (showmsg->showError(("Packet Error: packet 0x%x is lower than the minimum allowed (0x%x), skipping...\n"), (unsigned int)cmd, (unsigned int)0x0064));
- return;
- }
-
- packet_db[cmd].len = len;
-
-
-# 19006 "../../../server-code/src/map/clif.c" 3 4
-__builtin_va_start(
-# 19006 "../../../server-code/src/map/clif.c"
-va
-# 19006 "../../../server-code/src/map/clif.c" 3 4
-,
-# 19006 "../../../server-code/src/map/clif.c"
-len
-# 19006 "../../../server-code/src/map/clif.c" 3 4
-)
-# 19006 "../../../server-code/src/map/clif.c"
- ;
-
- pos =
-# 19008 "../../../server-code/src/map/clif.c" 3 4
- __builtin_va_arg(
-# 19008 "../../../server-code/src/map/clif.c"
- va
-# 19008 "../../../server-code/src/map/clif.c" 3 4
- ,
-# 19008 "../../../server-code/src/map/clif.c"
- int
-# 19008 "../../../server-code/src/map/clif.c" 3 4
- )
-# 19008 "../../../server-code/src/map/clif.c"
- ;
-
-
-# 19010 "../../../server-code/src/map/clif.c" 3 4
-__builtin_va_end(
-# 19010 "../../../server-code/src/map/clif.c"
-va
-# 19010 "../../../server-code/src/map/clif.c" 3 4
-)
-# 19010 "../../../server-code/src/map/clif.c"
- ;
-
- if( pos == 0xFFFF ) {
- return;
- }
-
-
-# 19016 "../../../server-code/src/map/clif.c" 3 4
-__builtin_va_start(
-# 19016 "../../../server-code/src/map/clif.c"
-va
-# 19016 "../../../server-code/src/map/clif.c" 3 4
-,
-# 19016 "../../../server-code/src/map/clif.c"
-len
-# 19016 "../../../server-code/src/map/clif.c" 3 4
-)
-# 19016 "../../../server-code/src/map/clif.c"
- ;
-
- func =
-# 19018 "../../../server-code/src/map/clif.c" 3 4
- __builtin_va_arg(
-# 19018 "../../../server-code/src/map/clif.c"
- va
-# 19018 "../../../server-code/src/map/clif.c" 3 4
- ,
-# 19018 "../../../server-code/src/map/clif.c"
- pFunc
-# 19018 "../../../server-code/src/map/clif.c" 3 4
- )
-# 19018 "../../../server-code/src/map/clif.c"
- ;
-
- packet_db[cmd].func = func;
-
- for (i = 0; i < 20; i++) {
- pos =
-# 19023 "../../../server-code/src/map/clif.c" 3 4
- __builtin_va_arg(
-# 19023 "../../../server-code/src/map/clif.c"
- va
-# 19023 "../../../server-code/src/map/clif.c" 3 4
- ,
-# 19023 "../../../server-code/src/map/clif.c"
- int
-# 19023 "../../../server-code/src/map/clif.c" 3 4
- )
-# 19023 "../../../server-code/src/map/clif.c"
- ;
-
- if (pos == 0xFFFF)
- break;
-
- packet_db[cmd].pos[i] = pos;
- }
-
-# 19030 "../../../server-code/src/map/clif.c" 3 4
-__builtin_va_end(
-# 19030 "../../../server-code/src/map/clif.c"
-va
-# 19030 "../../../server-code/src/map/clif.c" 3 4
-)
-# 19030 "../../../server-code/src/map/clif.c"
- ;
-}
-void packetdb_loaddb(void) {
- memset(packet_db,0,sizeof(packet_db));
-
-
-
-# 1 "../../../server-code/src/map/packets.h" 1
-# 42 "../../../server-code/src/map/packets.h"
-packetdb_addpacket((0x0064), (55), 0xFFFF);
-packetdb_addpacket((0x0065), (17), 0xFFFF);
-packetdb_addpacket((0x0066), (6), 0xFFFF);
-packetdb_addpacket((0x0067), (37), 0xFFFF);
-packetdb_addpacket((0x0068), (46), 0xFFFF);
-packetdb_addpacket((0x0069), (-1), 0xFFFF);
-packetdb_addpacket((0x006a), (23), 0xFFFF);
-packetdb_addpacket((0x006b), (-1), 0xFFFF);
-packetdb_addpacket((0x006c), (3), 0xFFFF);
-packetdb_addpacket((0x006d), (108), 0xFFFF);
-packetdb_addpacket((0x006e), (3), 0xFFFF);
-packetdb_addpacket((0x006f), (2), 0xFFFF);
-packetdb_addpacket((0x0070), (6), 0xFFFF);
-packetdb_addpacket((0x0071), (28), 0xFFFF);
-packetdb_addpacket((0x0072), (19),clif->pWantToConnection,2,6,10,14,18, 0xFFFF);
-packetdb_addpacket((0x0073), (11), 0xFFFF);
-packetdb_addpacket((0x0074), (3), 0xFFFF);
-packetdb_addpacket((0x0075), (-1), 0xFFFF);
-packetdb_addpacket((0x0076), (9), 0xFFFF);
-packetdb_addpacket((0x0077), (5), 0xFFFF);
-packetdb_addpacket((0x0078), (54), 0xFFFF);
-packetdb_addpacket((0x0079), (53), 0xFFFF);
-packetdb_addpacket((0x007a), (58), 0xFFFF);
-packetdb_addpacket((0x007b), (60), 0xFFFF);
-packetdb_addpacket((0x007c), (41), 0xFFFF);
-packetdb_addpacket((0x007d), (2),clif->pLoadEndAck,0, 0xFFFF);
-packetdb_addpacket((0x007e), (6),clif->pTickSend,2, 0xFFFF);
-packetdb_addpacket((0x007f), (6), 0xFFFF);
-packetdb_addpacket((0x0080), (7), 0xFFFF);
-packetdb_addpacket((0x0081), (3), 0xFFFF);
-packetdb_addpacket((0x0082), (2), 0xFFFF);
-packetdb_addpacket((0x0083), (2), 0xFFFF);
-packetdb_addpacket((0x0084), (2), 0xFFFF);
-packetdb_addpacket((0x0085), (5),clif->pWalkToXY,2, 0xFFFF);
-packetdb_addpacket((0x0086), (16), 0xFFFF);
-packetdb_addpacket((0x0087), (12), 0xFFFF);
-packetdb_addpacket((0x0088), (10), 0xFFFF);
-packetdb_addpacket((0x0089), (7),clif->pActionRequest,2,6, 0xFFFF);
-packetdb_addpacket((0x008a), (29), 0xFFFF);
-packetdb_addpacket((0x008b), (2), 0xFFFF);
-packetdb_addpacket((0x008c), (-1),clif->pGlobalMessage,2,4, 0xFFFF);
-packetdb_addpacket((0x008d), (-1), 0xFFFF);
-packetdb_addpacket((0x008e), (-1), 0xFFFF);
-
-packetdb_addpacket((0x0090), (7),clif->pNpcClicked,2, 0xFFFF);
-packetdb_addpacket((0x0091), (22), 0xFFFF);
-packetdb_addpacket((0x0092), (28), 0xFFFF);
-packetdb_addpacket((0x0093), (2), 0xFFFF);
-packetdb_addpacket((0x0094), (6),clif->pGetCharNameRequest,2, 0xFFFF);
-packetdb_addpacket((0x0095), (30), 0xFFFF);
-packetdb_addpacket((0x0096), (-1),clif->pWisMessage,2,4,28, 0xFFFF);
-packetdb_addpacket((0x0097), (-1), 0xFFFF);
-packetdb_addpacket((0x0098), (3), 0xFFFF);
-packetdb_addpacket((0x0099), (-1),clif->pBroadcast,2,4, 0xFFFF);
-packetdb_addpacket((0x009a), (-1), 0xFFFF);
-packetdb_addpacket((0x009b), (5),clif->pChangeDir,2,4, 0xFFFF);
-packetdb_addpacket((0x009c), (9), 0xFFFF);
-packetdb_addpacket((0x009d), (17), 0xFFFF);
-packetdb_addpacket((0x009e), (17), 0xFFFF);
-packetdb_addpacket((0x009f), (6),clif->pTakeItem,2, 0xFFFF);
-packetdb_addpacket((0x00a0), (23), 0xFFFF);
-packetdb_addpacket((0x00a1), (6), 0xFFFF);
-packetdb_addpacket((0x00a2), (6),clif->pDropItem,2,4, 0xFFFF);
-packetdb_addpacket((0x00a3), (-1), 0xFFFF);
-packetdb_addpacket((0x00a4), (-1), 0xFFFF);
-packetdb_addpacket((0x00a5), (-1), 0xFFFF);
-packetdb_addpacket((0x00a6), (-1), 0xFFFF);
-packetdb_addpacket((0x00a7), (8),clif->pUseItem,2,4, 0xFFFF);
-packetdb_addpacket((0x00a8), (7), 0xFFFF);
-packetdb_addpacket((0x00a9), (6),clif->pEquipItem,2,4, 0xFFFF);
-packetdb_addpacket((0x00aa), (7), 0xFFFF);
-packetdb_addpacket((0x00ab), (4),clif->pUnequipItem,2, 0xFFFF);
-packetdb_addpacket((0x00ac), (7), 0xFFFF);
-
-packetdb_addpacket((0x00ae), (-1), 0xFFFF);
-packetdb_addpacket((0x00af), (6), 0xFFFF);
-packetdb_addpacket((0x00b0), (8), 0xFFFF);
-packetdb_addpacket((0x00b1), (8), 0xFFFF);
-packetdb_addpacket((0x00b2), (3),clif->pRestart,2, 0xFFFF);
-packetdb_addpacket((0x00b3), (3), 0xFFFF);
-packetdb_addpacket((0x00b4), (-1), 0xFFFF);
-packetdb_addpacket((0x00b5), (6), 0xFFFF);
-packetdb_addpacket((0x00b6), (6), 0xFFFF);
-packetdb_addpacket((0x00b7), (-1), 0xFFFF);
-packetdb_addpacket((0x00b8), (7),clif->pNpcSelectMenu,2,6, 0xFFFF);
-packetdb_addpacket((0x00b9), (6),clif->pNpcNextClicked,2, 0xFFFF);
-packetdb_addpacket((0x00ba), (2), 0xFFFF);
-packetdb_addpacket((0x00bb), (5),clif->pStatusUp,2,4, 0xFFFF);
-packetdb_addpacket((0x00bc), (6), 0xFFFF);
-packetdb_addpacket((0x00bd), (44), 0xFFFF);
-packetdb_addpacket((0x00be), (5), 0xFFFF);
-packetdb_addpacket((0x00bf), (3),clif->pEmotion,2, 0xFFFF);
-packetdb_addpacket((0x00c0), (7), 0xFFFF);
-packetdb_addpacket((0x00c1), (2),clif->pHowManyConnections,0, 0xFFFF);
-packetdb_addpacket((0x00c2), (6), 0xFFFF);
-packetdb_addpacket((0x00c3), (8), 0xFFFF);
-packetdb_addpacket((0x00c4), (6), 0xFFFF);
-packetdb_addpacket((0x00c5), (7),clif->pNpcBuySellSelected,2,6, 0xFFFF);
-packetdb_addpacket((0x00c6), (-1), 0xFFFF);
-packetdb_addpacket((0x00c7), (-1), 0xFFFF);
-packetdb_addpacket((0x00c8), (-1),clif->pNpcBuyListSend,2,4, 0xFFFF);
-packetdb_addpacket((0x00c9), (-1),clif->pNpcSellListSend,2,4, 0xFFFF);
-packetdb_addpacket((0x00ca), (3), 0xFFFF);
-packetdb_addpacket((0x00cb), (3), 0xFFFF);
-packetdb_addpacket((0x00cc), (6),clif->pGMKick,2, 0xFFFF);
-packetdb_addpacket((0x00cd), (3), 0xFFFF);
-packetdb_addpacket((0x00ce), (2),clif->pGMKickAll,0, 0xFFFF);
-packetdb_addpacket((0x00cf), (27),clif->pPMIgnore,2,26, 0xFFFF);
-packetdb_addpacket((0x00d0), (3),clif->pPMIgnoreAll,2, 0xFFFF);
-packetdb_addpacket((0x00d1), (4), 0xFFFF);
-packetdb_addpacket((0x00d2), (4), 0xFFFF);
-packetdb_addpacket((0x00d3), (2),clif->pPMIgnoreList,0, 0xFFFF);
-packetdb_addpacket((0x00d4), (-1), 0xFFFF);
-packetdb_addpacket((0x00d5), (-1),clif->pCreateChatRoom,2,4,6,7,15, 0xFFFF);
-packetdb_addpacket((0x00d6), (3), 0xFFFF);
-packetdb_addpacket((0x00d7), (-1), 0xFFFF);
-packetdb_addpacket((0x00d8), (6), 0xFFFF);
-packetdb_addpacket((0x00d9), (14),clif->pChatAddMember,2,6, 0xFFFF);
-packetdb_addpacket((0x00da), (3), 0xFFFF);
-packetdb_addpacket((0x00db), (-1), 0xFFFF);
-packetdb_addpacket((0x00dc), (28), 0xFFFF);
-packetdb_addpacket((0x00dd), (29), 0xFFFF);
-packetdb_addpacket((0x00de), (-1),clif->pChatRoomStatusChange,2,4,6,7,15, 0xFFFF);
-packetdb_addpacket((0x00df), (-1), 0xFFFF);
-packetdb_addpacket((0x00e0), (30),clif->pChangeChatOwner,2,6, 0xFFFF);
-packetdb_addpacket((0x00e1), (30), 0xFFFF);
-packetdb_addpacket((0x00e2), (26),clif->pKickFromChat,2, 0xFFFF);
-packetdb_addpacket((0x00e3), (2),clif->pChatLeave,0, 0xFFFF);
-packetdb_addpacket((0x00e4), (6),clif->pTradeRequest,2, 0xFFFF);
-packetdb_addpacket((0x00e5), (26), 0xFFFF);
-packetdb_addpacket((0x00e6), (3),clif->pTradeAck,2, 0xFFFF);
-packetdb_addpacket((0x00e7), (3), 0xFFFF);
-packetdb_addpacket((0x00e8), (8),clif->pTradeAddItem,2,4, 0xFFFF);
-packetdb_addpacket((0x00e9), (19), 0xFFFF);
-packetdb_addpacket((0x00ea), (5), 0xFFFF);
-packetdb_addpacket((0x00eb), (2),clif->pTradeOk,0, 0xFFFF);
-packetdb_addpacket((0x00ec), (3), 0xFFFF);
-packetdb_addpacket((0x00ed), (2),clif->pTradeCancel,0, 0xFFFF);
-packetdb_addpacket((0x00ee), (2), 0xFFFF);
-packetdb_addpacket((0x00ef), (2),clif->pTradeCommit,0, 0xFFFF);
-packetdb_addpacket((0x00f0), (3), 0xFFFF);
-packetdb_addpacket((0x00f1), (2), 0xFFFF);
-packetdb_addpacket((0x00f2), (6), 0xFFFF);
-packetdb_addpacket((0x00f3), (8),clif->pMoveToKafra,2,4, 0xFFFF);
-packetdb_addpacket((0x00f4), (21), 0xFFFF);
-packetdb_addpacket((0x00f5), (8),clif->pMoveFromKafra,2,4, 0xFFFF);
-packetdb_addpacket((0x00f6), (8), 0xFFFF);
-packetdb_addpacket((0x00f7), (2),clif->pCloseKafra,0, 0xFFFF);
-packetdb_addpacket((0x00f8), (2), 0xFFFF);
-packetdb_addpacket((0x00f9), (26),clif->pCreateParty,2, 0xFFFF);
-packetdb_addpacket((0x00fa), (3), 0xFFFF);
-packetdb_addpacket((0x00fb), (-1), 0xFFFF);
-packetdb_addpacket((0x00fc), (6),clif->pPartyInvite,2, 0xFFFF);
-packetdb_addpacket((0x00fd), (27), 0xFFFF);
-packetdb_addpacket((0x00fe), (30), 0xFFFF);
-packetdb_addpacket((0x00ff), (10),clif->pReplyPartyInvite,2,6, 0xFFFF);
-packetdb_addpacket((0x0100), (2),clif->pLeaveParty,0, 0xFFFF);
-packetdb_addpacket((0x0101), (6), 0xFFFF);
-packetdb_addpacket((0x0102), (6),clif->pPartyChangeOption,2, 0xFFFF);
-packetdb_addpacket((0x0103), (30),clif->pRemovePartyMember,2,6, 0xFFFF);
-packetdb_addpacket((0x0104), (79), 0xFFFF);
-packetdb_addpacket((0x0105), (31), 0xFFFF);
-packetdb_addpacket((0x0106), (10), 0xFFFF);
-packetdb_addpacket((0x0107), (10), 0xFFFF);
-packetdb_addpacket((0x0108), (-1),clif->pPartyMessage,2,4, 0xFFFF);
-packetdb_addpacket((0x0109), (-1), 0xFFFF);
-packetdb_addpacket((0x010a), (4), 0xFFFF);
-packetdb_addpacket((0x010b), (6), 0xFFFF);
-packetdb_addpacket((0x010c), (6), 0xFFFF);
-packetdb_addpacket((0x010d), (2), 0xFFFF);
-packetdb_addpacket((0x010e), (11), 0xFFFF);
-packetdb_addpacket((0x010f), (-1), 0xFFFF);
-packetdb_addpacket((0x0110), (10), 0xFFFF);
-packetdb_addpacket((0x0111), (39), 0xFFFF);
-packetdb_addpacket((0x0112), (4),clif->pSkillUp,2, 0xFFFF);
-packetdb_addpacket((0x0113), (10),clif->pUseSkillToId,2,4,6, 0xFFFF);
-packetdb_addpacket((0x0114), (31), 0xFFFF);
-packetdb_addpacket((0x0115), (35), 0xFFFF);
-packetdb_addpacket((0x0116), (10),clif->pUseSkillToPos,2,4,6,8, 0xFFFF);
-packetdb_addpacket((0x0117), (18), 0xFFFF);
-packetdb_addpacket((0x0118), (2),clif->pStopAttack,0, 0xFFFF);
-packetdb_addpacket((0x0119), (13), 0xFFFF);
-packetdb_addpacket((0x011a), (15), 0xFFFF);
-packetdb_addpacket((0x011b), (20),clif->pUseSkillMap,2,4, 0xFFFF);
-packetdb_addpacket((0x011c), (68), 0xFFFF);
-packetdb_addpacket((0x011d), (2),clif->pRequestMemo,0, 0xFFFF);
-packetdb_addpacket((0x011e), (3), 0xFFFF);
-packetdb_addpacket((0x011f), (16), 0xFFFF);
-packetdb_addpacket((0x0120), (6), 0xFFFF);
-packetdb_addpacket((0x0121), (14), 0xFFFF);
-packetdb_addpacket((0x0122), (-1), 0xFFFF);
-packetdb_addpacket((0x0123), (-1), 0xFFFF);
-packetdb_addpacket((0x0124), (21), 0xFFFF);
-packetdb_addpacket((0x0125), (8), 0xFFFF);
-packetdb_addpacket((0x0126), (8),clif->pPutItemToCart,2,4, 0xFFFF);
-packetdb_addpacket((0x0127), (8),clif->pGetItemFromCart,2,4, 0xFFFF);
-packetdb_addpacket((0x0128), (8),clif->pMoveFromKafraToCart,2,4, 0xFFFF);
-packetdb_addpacket((0x0129), (8),clif->pMoveToKafraFromCart,2,4, 0xFFFF);
-packetdb_addpacket((0x012a), (2),clif->pRemoveOption,0, 0xFFFF);
-packetdb_addpacket((0x012b), (2), 0xFFFF);
-packetdb_addpacket((0x012c), (3), 0xFFFF);
-packetdb_addpacket((0x012d), (4), 0xFFFF);
-packetdb_addpacket((0x012e), (2),clif->pCloseVending,0, 0xFFFF);
-packetdb_addpacket((0x012f), (-1), 0xFFFF);
-packetdb_addpacket((0x0130), (6),clif->pVendingListReq,2, 0xFFFF);
-packetdb_addpacket((0x0131), (86), 0xFFFF);
-packetdb_addpacket((0x0132), (6), 0xFFFF);
-packetdb_addpacket((0x0133), (-1), 0xFFFF);
-packetdb_addpacket((0x0134), (-1),clif->pPurchaseReq,2,4,8, 0xFFFF);
-packetdb_addpacket((0x0135), (7), 0xFFFF);
-packetdb_addpacket((0x0136), (-1), 0xFFFF);
-packetdb_addpacket((0x0137), (6), 0xFFFF);
-packetdb_addpacket((0x0138), (3), 0xFFFF);
-packetdb_addpacket((0x0139), (16), 0xFFFF);
-packetdb_addpacket((0x013a), (4), 0xFFFF);
-packetdb_addpacket((0x013b), (4), 0xFFFF);
-packetdb_addpacket((0x013c), (4), 0xFFFF);
-packetdb_addpacket((0x013d), (6), 0xFFFF);
-packetdb_addpacket((0x013e), (24), 0xFFFF);
-packetdb_addpacket((0x013f), (26),clif->pGM_Monster_Item,2, 0xFFFF);
-packetdb_addpacket((0x0140), (22),clif->pMapMove,2,18,20, 0xFFFF);
-packetdb_addpacket((0x0141), (14), 0xFFFF);
-packetdb_addpacket((0x0142), (6), 0xFFFF);
-packetdb_addpacket((0x0143), (10),clif->pNpcAmountInput,2,6, 0xFFFF);
-packetdb_addpacket((0x0144), (23), 0xFFFF);
-packetdb_addpacket((0x0145), (19), 0xFFFF);
-packetdb_addpacket((0x0146), (6),clif->pNpcCloseClicked,2, 0xFFFF);
-packetdb_addpacket((0x0147), (39), 0xFFFF);
-packetdb_addpacket((0x0148), (8), 0xFFFF);
-packetdb_addpacket((0x0149), (9),clif->pGMReqNoChat,2,6,7, 0xFFFF);
-packetdb_addpacket((0x014a), (6), 0xFFFF);
-packetdb_addpacket((0x014b), (27), 0xFFFF);
-packetdb_addpacket((0x014c), (-1), 0xFFFF);
-packetdb_addpacket((0x014d), (2),clif->pGuildCheckMaster,0, 0xFFFF);
-packetdb_addpacket((0x014e), (6), 0xFFFF);
-packetdb_addpacket((0x014f), (6),clif->pGuildRequestInfo,2, 0xFFFF);
-packetdb_addpacket((0x0150), (110), 0xFFFF);
-packetdb_addpacket((0x0151), (6),clif->pGuildRequestEmblem,2, 0xFFFF);
-packetdb_addpacket((0x0152), (-1), 0xFFFF);
-packetdb_addpacket((0x0153), (-1),clif->pGuildChangeEmblem,2,4, 0xFFFF);
-packetdb_addpacket((0x0154), (-1), 0xFFFF);
-packetdb_addpacket((0x0155), (-1),clif->pGuildChangeMemberPosition,2, 0xFFFF);
-packetdb_addpacket((0x0156), (-1), 0xFFFF);
-packetdb_addpacket((0x0157), (6), 0xFFFF);
-packetdb_addpacket((0x0158), (-1), 0xFFFF);
-packetdb_addpacket((0x0159), (54),clif->pGuildLeave,2,6,10,14, 0xFFFF);
-packetdb_addpacket((0x015a), (66), 0xFFFF);
-packetdb_addpacket((0x015b), (54),clif->pGuildExpulsion,2,6,10,14, 0xFFFF);
-packetdb_addpacket((0x015c), (90), 0xFFFF);
-packetdb_addpacket((0x015d), (42),clif->pGuildBreak,2, 0xFFFF);
-packetdb_addpacket((0x015e), (6), 0xFFFF);
-packetdb_addpacket((0x015f), (42), 0xFFFF);
-packetdb_addpacket((0x0160), (-1), 0xFFFF);
-packetdb_addpacket((0x0161), (-1),clif->pGuildChangePositionInfo,2, 0xFFFF);
-packetdb_addpacket((0x0162), (-1), 0xFFFF);
-packetdb_addpacket((0x0163), (-1), 0xFFFF);
-packetdb_addpacket((0x0164), (-1), 0xFFFF);
-packetdb_addpacket((0x0165), (30),clif->pCreateGuild,6, 0xFFFF);
-packetdb_addpacket((0x0166), (-1), 0xFFFF);
-packetdb_addpacket((0x0167), (3), 0xFFFF);
-packetdb_addpacket((0x0168), (14),clif->pGuildInvite,2, 0xFFFF);
-packetdb_addpacket((0x0169), (3), 0xFFFF);
-packetdb_addpacket((0x016a), (30), 0xFFFF);
-packetdb_addpacket((0x016b), (10),clif->pGuildReplyInvite,2,6, 0xFFFF);
-packetdb_addpacket((0x016c), (43), 0xFFFF);
-packetdb_addpacket((0x016d), (14), 0xFFFF);
-packetdb_addpacket((0x016e), (186),clif->pGuildChangeNotice,2,6,66, 0xFFFF);
-packetdb_addpacket((0x016f), (182), 0xFFFF);
-packetdb_addpacket((0x0170), (14),clif->pGuildRequestAlliance,2, 0xFFFF);
-packetdb_addpacket((0x0171), (30), 0xFFFF);
-packetdb_addpacket((0x0172), (10),clif->pGuildReplyAlliance,2,6, 0xFFFF);
-packetdb_addpacket((0x0173), (3), 0xFFFF);
-packetdb_addpacket((0x0174), (-1), 0xFFFF);
-packetdb_addpacket((0x0175), (6), 0xFFFF);
-packetdb_addpacket((0x0176), (106), 0xFFFF);
-packetdb_addpacket((0x0177), (-1), 0xFFFF);
-packetdb_addpacket((0x0178), (4),clif->pItemIdentify,2, 0xFFFF);
-packetdb_addpacket((0x0179), (5), 0xFFFF);
-packetdb_addpacket((0x017a), (4),clif->pUseCard,2, 0xFFFF);
-packetdb_addpacket((0x017b), (-1), 0xFFFF);
-packetdb_addpacket((0x017c), (6),clif->pInsertCard,2,4, 0xFFFF);
-packetdb_addpacket((0x017d), (7), 0xFFFF);
-packetdb_addpacket((0x017e), (-1),clif->pGuildMessage,2,4, 0xFFFF);
-packetdb_addpacket((0x017f), (-1), 0xFFFF);
-packetdb_addpacket((0x0180), (6),clif->pGuildOpposition,2, 0xFFFF);
-packetdb_addpacket((0x0181), (3), 0xFFFF);
-packetdb_addpacket((0x0182), (106), 0xFFFF);
-packetdb_addpacket((0x0183), (10),clif->pGuildDelAlliance,2,6, 0xFFFF);
-packetdb_addpacket((0x0184), (10), 0xFFFF);
-packetdb_addpacket((0x0185), (34), 0xFFFF);
-
-packetdb_addpacket((0x0187), (6), 0xFFFF);
-packetdb_addpacket((0x0188), (8), 0xFFFF);
-packetdb_addpacket((0x0189), (4), 0xFFFF);
-packetdb_addpacket((0x018a), (4),clif->pQuitGame,0, 0xFFFF);
-packetdb_addpacket((0x018b), (4), 0xFFFF);
-packetdb_addpacket((0x018c), (29), 0xFFFF);
-packetdb_addpacket((0x018d), (-1), 0xFFFF);
-packetdb_addpacket((0x018e), (10),clif->pProduceMix,2,4,6,8, 0xFFFF);
-packetdb_addpacket((0x018f), (6), 0xFFFF);
-packetdb_addpacket((0x0190), (90),clif->pUseSkillToPosMoreInfo,2,4,6,8,10, 0xFFFF);
-packetdb_addpacket((0x0191), (86), 0xFFFF);
-packetdb_addpacket((0x0192), (24), 0xFFFF);
-packetdb_addpacket((0x0193), (6),clif->pSolveCharName,2, 0xFFFF);
-packetdb_addpacket((0x0194), (30), 0xFFFF);
-packetdb_addpacket((0x0195), (102), 0xFFFF);
-packetdb_addpacket((0x0196), (9), 0xFFFF);
-packetdb_addpacket((0x0197), (4),clif->pResetChar,2, 0xFFFF);
-packetdb_addpacket((0x0198), (8),clif->pGMChangeMapType,2,4,6, 0xFFFF);
-packetdb_addpacket((0x0199), (4), 0xFFFF);
-packetdb_addpacket((0x019a), (14), 0xFFFF);
-packetdb_addpacket((0x019b), (10), 0xFFFF);
-packetdb_addpacket((0x019c), (-1),clif->pLocalBroadcast,2,4, 0xFFFF);
-packetdb_addpacket((0x019d), (6),clif->pGMHide,0, 0xFFFF);
-packetdb_addpacket((0x019e), (2), 0xFFFF);
-packetdb_addpacket((0x019f), (6),clif->pCatchPet,2, 0xFFFF);
-packetdb_addpacket((0x01a0), (3), 0xFFFF);
-packetdb_addpacket((0x01a1), (3),clif->pPetMenu,2, 0xFFFF);
-packetdb_addpacket((0x01a2), (35), 0xFFFF);
-packetdb_addpacket((0x01a3), (5), 0xFFFF);
-packetdb_addpacket((0x01a4), (11), 0xFFFF);
-packetdb_addpacket((0x01a5), (26),clif->pChangePetName,2, 0xFFFF);
-packetdb_addpacket((0x01a6), (-1), 0xFFFF);
-packetdb_addpacket((0x01a7), (4),clif->pSelectEgg,2, 0xFFFF);
-packetdb_addpacket((0x01a8), (4), 0xFFFF);
-packetdb_addpacket((0x01a9), (6),clif->pSendEmotion,2, 0xFFFF);
-packetdb_addpacket((0x01aa), (10), 0xFFFF);
-packetdb_addpacket((0x01ab), (12), 0xFFFF);
-packetdb_addpacket((0x01ac), (6), 0xFFFF);
-packetdb_addpacket((0x01ad), (-1), 0xFFFF);
-packetdb_addpacket((0x01ae), (4),clif->pSelectArrow,2, 0xFFFF);
-packetdb_addpacket((0x01af), (4),clif->pChangeCart,2, 0xFFFF);
-packetdb_addpacket((0x01b0), (11), 0xFFFF);
-packetdb_addpacket((0x01b1), (7), 0xFFFF);
-packetdb_addpacket((0x01b2), (-1),clif->pOpenVending,2,4,84,85, 0xFFFF);
-packetdb_addpacket((0x01b3), (67), 0xFFFF);
-packetdb_addpacket((0x01b4), (12), 0xFFFF);
-packetdb_addpacket((0x01b5), (18), 0xFFFF);
-packetdb_addpacket((0x01b6), (114), 0xFFFF);
-packetdb_addpacket((0x01b7), (6), 0xFFFF);
-packetdb_addpacket((0x01b8), (3), 0xFFFF);
-packetdb_addpacket((0x01b9), (6), 0xFFFF);
-packetdb_addpacket((0x01ba), (26),clif->pGMShift,2, 0xFFFF);
-packetdb_addpacket((0x01bb), (26),clif->pGMShift,2, 0xFFFF);
-packetdb_addpacket((0x01bc), (26),clif->pGMRecall,2, 0xFFFF);
-packetdb_addpacket((0x01bd), (26),clif->pGMRecall,2, 0xFFFF);
-packetdb_addpacket((0x01be), (2), 0xFFFF);
-packetdb_addpacket((0x01bf), (3), 0xFFFF);
-packetdb_addpacket((0x01c0), (2), 0xFFFF);
-packetdb_addpacket((0x01c1), (14), 0xFFFF);
-packetdb_addpacket((0x01c2), (10), 0xFFFF);
-packetdb_addpacket((0x01c3), (-1), 0xFFFF);
-packetdb_addpacket((0x01c4), (22), 0xFFFF);
-packetdb_addpacket((0x01c5), (22), 0xFFFF);
-packetdb_addpacket((0x01c6), (4), 0xFFFF);
-packetdb_addpacket((0x01c7), (2), 0xFFFF);
-packetdb_addpacket((0x01c8), (13), 0xFFFF);
-packetdb_addpacket((0x01c9), (97), 0xFFFF);
-
-packetdb_addpacket((0x01cb), (9), 0xFFFF);
-packetdb_addpacket((0x01cc), (9), 0xFFFF);
-packetdb_addpacket((0x01cd), (30), 0xFFFF);
-packetdb_addpacket((0x01ce), (6),clif->pAutoSpell,2, 0xFFFF);
-packetdb_addpacket((0x01cf), (28), 0xFFFF);
-packetdb_addpacket((0x01d0), (8), 0xFFFF);
-packetdb_addpacket((0x01d1), (14), 0xFFFF);
-packetdb_addpacket((0x01d2), (10), 0xFFFF);
-packetdb_addpacket((0x01d3), (35), 0xFFFF);
-packetdb_addpacket((0x01d4), (6), 0xFFFF);
-packetdb_addpacket((0x01d5), (-1),clif->pNpcStringInput,2,4,8, 0xFFFF);
-packetdb_addpacket((0x01d6), (4), 0xFFFF);
-packetdb_addpacket((0x01d7), (11), 0xFFFF);
-packetdb_addpacket((0x01d8), (54), 0xFFFF);
-packetdb_addpacket((0x01d9), (53), 0xFFFF);
-packetdb_addpacket((0x01da), (60), 0xFFFF);
-packetdb_addpacket((0x01db), (2), 0xFFFF);
-packetdb_addpacket((0x01dc), (-1), 0xFFFF);
-packetdb_addpacket((0x01dd), (47), 0xFFFF);
-packetdb_addpacket((0x01de), (33), 0xFFFF);
-packetdb_addpacket((0x01df), (6),clif->pGMReqAccountName,2, 0xFFFF);
-packetdb_addpacket((0x01e0), (30), 0xFFFF);
-packetdb_addpacket((0x01e1), (8), 0xFFFF);
-packetdb_addpacket((0x01e2), (34), 0xFFFF);
-packetdb_addpacket((0x01e3), (14), 0xFFFF);
-packetdb_addpacket((0x01e4), (2), 0xFFFF);
-packetdb_addpacket((0x01e5), (6), 0xFFFF);
-packetdb_addpacket((0x01e6), (26), 0xFFFF);
-packetdb_addpacket((0x01e7), (2),clif->pNoviceDoriDori,0, 0xFFFF);
-packetdb_addpacket((0x01e8), (28),clif->pCreateParty2,2, 0xFFFF);
-packetdb_addpacket((0x01e9), (81), 0xFFFF);
-packetdb_addpacket((0x01ea), (6), 0xFFFF);
-packetdb_addpacket((0x01eb), (10), 0xFFFF);
-packetdb_addpacket((0x01ec), (26), 0xFFFF);
-packetdb_addpacket((0x01ed), (2),clif->pNoviceExplosionSpirits,0, 0xFFFF);
-packetdb_addpacket((0x01ee), (-1), 0xFFFF);
-packetdb_addpacket((0x01ef), (-1), 0xFFFF);
-packetdb_addpacket((0x01f0), (-1), 0xFFFF);
-packetdb_addpacket((0x01f1), (-1), 0xFFFF);
-packetdb_addpacket((0x01f2), (20), 0xFFFF);
-packetdb_addpacket((0x01f3), (10), 0xFFFF);
-packetdb_addpacket((0x01f4), (32), 0xFFFF);
-packetdb_addpacket((0x01f5), (9), 0xFFFF);
-packetdb_addpacket((0x01f6), (34), 0xFFFF);
-packetdb_addpacket((0x01f7), (14),clif->pAdopt_reply,0, 0xFFFF);
-packetdb_addpacket((0x01f8), (2), 0xFFFF);
-packetdb_addpacket((0x01f9), (6),clif->pAdopt_request,0, 0xFFFF);
-packetdb_addpacket((0x01fa), (48), 0xFFFF);
-packetdb_addpacket((0x01fb), (56), 0xFFFF);
-packetdb_addpacket((0x01fc), (-1), 0xFFFF);
-packetdb_addpacket((0x01fd), (4),clif->pRepairItem,2, 0xFFFF);
-packetdb_addpacket((0x01fe), (5), 0xFFFF);
-packetdb_addpacket((0x01ff), (10), 0xFFFF);
-packetdb_addpacket((0x0200), (26), 0xFFFF);
-packetdb_addpacket((0x0201), (-1), 0xFFFF);
-packetdb_addpacket((0x0202), (26),clif->pFriendsListAdd,2, 0xFFFF);
-packetdb_addpacket((0x0203), (10),clif->pFriendsListRemove,2,6, 0xFFFF);
-packetdb_addpacket((0x0204), (18), 0xFFFF);
-packetdb_addpacket((0x0205), (26), 0xFFFF);
-packetdb_addpacket((0x0206), (11), 0xFFFF);
-packetdb_addpacket((0x0207), (34), 0xFFFF);
-packetdb_addpacket((0x0208), (11),clif->pFriendsListReply,2,6,10, 0xFFFF);
-packetdb_addpacket((0x0209), (36), 0xFFFF);
-packetdb_addpacket((0x020a), (10), 0xFFFF);
-
-
-packetdb_addpacket((0x020d), (-1), 0xFFFF);
-packetdb_addpacket((0x974), (2),clif->cancelmergeitem, 0xFFFF);
-packetdb_addpacket((0x96e), (-1),clif->ackmergeitems, 0xFFFF);
-
-
-
- packetdb_addpacket((0x0072), (22),clif->pWantToConnection,5,9,13,17,21, 0xFFFF);
- packetdb_addpacket((0x0085), (8),clif->pWalkToXY,5, 0xFFFF);
- packetdb_addpacket((0x00a7), (13),clif->pUseItem,5,9, 0xFFFF);
- packetdb_addpacket((0x0113), (15),clif->pUseSkillToId,4,9,11, 0xFFFF);
- packetdb_addpacket((0x0116), (15),clif->pUseSkillToPos,4,9,11,13, 0xFFFF);
- packetdb_addpacket((0x0190), (95),clif->pUseSkillToPosMoreInfo,4,9,11,13,15, 0xFFFF);
- packetdb_addpacket((0x0208), (14),clif->pFriendsListReply,2,6,10, 0xFFFF);
- packetdb_addpacket((0x020e), (24), 0xFFFF);
-
-
-
-
- packetdb_addpacket((0x0072), (39),clif->pWantToConnection,12,22,30,34,38, 0xFFFF);
- packetdb_addpacket((0x0085), (9),clif->pWalkToXY,6, 0xFFFF);
- packetdb_addpacket((0x009b), (13),clif->pChangeDir,5,12, 0xFFFF);
- packetdb_addpacket((0x009f), (10),clif->pTakeItem,6, 0xFFFF);
- packetdb_addpacket((0x00a7), (17),clif->pUseItem,6,13, 0xFFFF);
- packetdb_addpacket((0x0113), (19),clif->pUseSkillToId,7,9,15, 0xFFFF);
- packetdb_addpacket((0x0116), (19),clif->pUseSkillToPos,7,9,15,17, 0xFFFF);
- packetdb_addpacket((0x0190), (99),clif->pUseSkillToPosMoreInfo,7,9,15,17,19, 0xFFFF);
-
-
-
-
- packetdb_addpacket((0x0072), (14),clif->pDropItem,5,12, 0xFFFF);
- packetdb_addpacket((0x007e), (33),clif->pWantToConnection,12,18,24,28,32, 0xFFFF);
- packetdb_addpacket((0x0085), (20),clif->pUseSkillToId,7,12,16, 0xFFFF);
- packetdb_addpacket((0x0089), (15),clif->pGetCharNameRequest,11, 0xFFFF);
- packetdb_addpacket((0x008c), (23),clif->pUseSkillToPos,3,6,17,21, 0xFFFF);
- packetdb_addpacket((0x0094), (10),clif->pTakeItem,6, 0xFFFF);
- packetdb_addpacket((0x009b), (6),clif->pWalkToXY,3, 0xFFFF);
- packetdb_addpacket((0x009f), (13),clif->pChangeDir,5,12, 0xFFFF);
- packetdb_addpacket((0x00a2), (103),clif->pUseSkillToPosMoreInfo,3,6,17,21,23, 0xFFFF);
- packetdb_addpacket((0x00a7), (12),clif->pSolveCharName,8, 0xFFFF);
- packetdb_addpacket((0x00f3), (-1),clif->pGlobalMessage,2,4, 0xFFFF);
- packetdb_addpacket((0x00f5), (17),clif->pUseItem,6,12, 0xFFFF);
- packetdb_addpacket((0x00f7), (10),clif->pTickSend,6, 0xFFFF);
- packetdb_addpacket((0x0113), (16),clif->pMoveToKafra,5,12, 0xFFFF);
- packetdb_addpacket((0x0116), (2),clif->pCloseKafra,0, 0xFFFF);
- packetdb_addpacket((0x0190), (26),clif->pMoveFromKafra,10,22, 0xFFFF);
- packetdb_addpacket((0x0193), (9),clif->pActionRequest,3,8, 0xFFFF);
-
-
-
-
- packetdb_addpacket((0x0072), (17),clif->pDropItem,8,15, 0xFFFF);
- packetdb_addpacket((0x007e), (37),clif->pWantToConnection,9,21,28,32,36, 0xFFFF);
- packetdb_addpacket((0x0085), (26),clif->pUseSkillToId,11,18,22, 0xFFFF);
- packetdb_addpacket((0x0089), (12),clif->pGetCharNameRequest,8, 0xFFFF);
- packetdb_addpacket((0x008c), (40),clif->pUseSkillToPos,5,15,29,38, 0xFFFF);
- packetdb_addpacket((0x0094), (13),clif->pTakeItem,9, 0xFFFF);
- packetdb_addpacket((0x009b), (15),clif->pWalkToXY,12, 0xFFFF);
- packetdb_addpacket((0x009f), (12),clif->pChangeDir,7,11, 0xFFFF);
- packetdb_addpacket((0x00a2), (120),clif->pUseSkillToPosMoreInfo,5,15,29,38,40, 0xFFFF);
- packetdb_addpacket((0x00a7), (11),clif->pSolveCharName,7, 0xFFFF);
- packetdb_addpacket((0x00f5), (24),clif->pUseItem,9,20, 0xFFFF);
- packetdb_addpacket((0x00f7), (13),clif->pTickSend,9, 0xFFFF);
- packetdb_addpacket((0x0113), (23),clif->pMoveToKafra,5,19, 0xFFFF);
- packetdb_addpacket((0x0190), (26),clif->pMoveFromKafra,11,22, 0xFFFF);
- packetdb_addpacket((0x0193), (18),clif->pActionRequest,7,17, 0xFFFF);
-
-
-
-
- packetdb_addpacket((0x0212), (26),clif->pGMRc,2, 0xFFFF);
- packetdb_addpacket((0x0213), (26),clif->pCheck,2, 0xFFFF);
- packetdb_addpacket((0x0214), (42), 0xFFFF);
-
-
-
-
- packetdb_addpacket((0x020f), (10),clif->pPVPInfo,2,6, 0xFFFF);
- packetdb_addpacket((0x0210), (22), 0xFFFF);
-
-
-
-
- packetdb_addpacket((0x0072), (20),clif->pUseItem,9,20, 0xFFFF);
- packetdb_addpacket((0x007e), (19),clif->pMoveToKafra,3,15, 0xFFFF);
- packetdb_addpacket((0x0085), (23),clif->pActionRequest,9,22, 0xFFFF);
- packetdb_addpacket((0x0089), (9),clif->pWalkToXY,6, 0xFFFF);
- packetdb_addpacket((0x008c), (105),clif->pUseSkillToPosMoreInfo,10,14,18,23,25, 0xFFFF);
- packetdb_addpacket((0x0094), (17),clif->pDropItem,6,15, 0xFFFF);
- packetdb_addpacket((0x009b), (14),clif->pGetCharNameRequest,10, 0xFFFF);
- packetdb_addpacket((0x009f), (-1),clif->pGlobalMessage,2,4, 0xFFFF);
- packetdb_addpacket((0x00a2), (14),clif->pSolveCharName,10, 0xFFFF);
- packetdb_addpacket((0x00a7), (25),clif->pUseSkillToPos,10,14,18,23, 0xFFFF);
- packetdb_addpacket((0x00f3), (10),clif->pChangeDir,4,9, 0xFFFF);
- packetdb_addpacket((0x00f5), (34),clif->pWantToConnection,7,15,25,29,33, 0xFFFF);
- packetdb_addpacket((0x00f7), (2),clif->pCloseKafra,0, 0xFFFF);
- packetdb_addpacket((0x0113), (11),clif->pTakeItem,7, 0xFFFF);
- packetdb_addpacket((0x0116), (11),clif->pTickSend,7, 0xFFFF);
- packetdb_addpacket((0x0190), (22),clif->pUseSkillToId,9,15,18, 0xFFFF);
- packetdb_addpacket((0x0193), (17),clif->pMoveFromKafra,3,13, 0xFFFF);
-
-
-
-
- packetdb_addpacket((0x0072), (18),clif->pUseItem,10,14, 0xFFFF);
- packetdb_addpacket((0x007e), (25),clif->pMoveToKafra,6,21, 0xFFFF);
- packetdb_addpacket((0x0085), (9),clif->pActionRequest,3,8, 0xFFFF);
- packetdb_addpacket((0x0089), (14),clif->pWalkToXY,11, 0xFFFF);
- packetdb_addpacket((0x008c), (109),clif->pUseSkillToPosMoreInfo,16,20,23,27,29, 0xFFFF);
- packetdb_addpacket((0x0094), (19),clif->pDropItem,12,17, 0xFFFF);
- packetdb_addpacket((0x009b), (10),clif->pGetCharNameRequest,6, 0xFFFF);
- packetdb_addpacket((0x00a2), (10),clif->pSolveCharName,6, 0xFFFF);
- packetdb_addpacket((0x00a7), (29),clif->pUseSkillToPos,6,20,23,27, 0xFFFF);
- packetdb_addpacket((0x00f3), (18),clif->pChangeDir,8,17, 0xFFFF);
- packetdb_addpacket((0x00f5), (32),clif->pWantToConnection,10,17,23,27,31, 0xFFFF);
- packetdb_addpacket((0x0113), (14),clif->pTakeItem,10, 0xFFFF);
- packetdb_addpacket((0x0116), (14),clif->pTickSend,10, 0xFFFF);
- packetdb_addpacket((0x0190), (14),clif->pUseSkillToId,4,7,10, 0xFFFF);
- packetdb_addpacket((0x0193), (12),clif->pMoveFromKafra,4,8, 0xFFFF);
-
-
-
-
- packetdb_addpacket((0x0072), (17),clif->pUseItem,6,13, 0xFFFF);
- packetdb_addpacket((0x007e), (16),clif->pMoveToKafra,5,12, 0xFFFF);
- packetdb_addpacket((0x0089), (6),clif->pWalkToXY,3, 0xFFFF);
- packetdb_addpacket((0x008c), (103),clif->pUseSkillToPosMoreInfo,2,6,17,21,23, 0xFFFF);
- packetdb_addpacket((0x0094), (14),clif->pDropItem,5,12, 0xFFFF);
- packetdb_addpacket((0x009b), (15),clif->pGetCharNameRequest,11, 0xFFFF);
- packetdb_addpacket((0x00a2), (12),clif->pSolveCharName,8, 0xFFFF);
- packetdb_addpacket((0x00a7), (23),clif->pUseSkillToPos,3,6,17,21, 0xFFFF);
- packetdb_addpacket((0x00f3), (13),clif->pChangeDir,5,12, 0xFFFF);
- packetdb_addpacket((0x00f5), (33),clif->pWantToConnection,12,18,24,28,32, 0xFFFF);
- packetdb_addpacket((0x0113), (10),clif->pTakeItem,6, 0xFFFF);
- packetdb_addpacket((0x0116), (10),clif->pTickSend,6, 0xFFFF);
- packetdb_addpacket((0x0190), (20),clif->pUseSkillToId,7,12,16, 0xFFFF);
- packetdb_addpacket((0x0193), (26),clif->pMoveFromKafra,10,22, 0xFFFF);
-
-
-
-
- packetdb_addpacket((0x0072), (13),clif->pUseItem,5,9, 0xFFFF);
- packetdb_addpacket((0x007e), (13),clif->pMoveToKafra,6,9, 0xFFFF);
- packetdb_addpacket((0x0085), (15),clif->pActionRequest,4,14, 0xFFFF);
- packetdb_addpacket((0x008c), (108),clif->pUseSkillToPosMoreInfo,6,9,23,26,28, 0xFFFF);
- packetdb_addpacket((0x0094), (12),clif->pDropItem,6,10, 0xFFFF);
- packetdb_addpacket((0x009b), (10),clif->pGetCharNameRequest,6, 0xFFFF);
- packetdb_addpacket((0x00a2), (16),clif->pSolveCharName,12, 0xFFFF);
- packetdb_addpacket((0x00a7), (28),clif->pUseSkillToPos,6,9,23,26, 0xFFFF);
- packetdb_addpacket((0x00f3), (15),clif->pChangeDir,6,14, 0xFFFF);
- packetdb_addpacket((0x00f5), (29),clif->pWantToConnection,5,14,20,24,28, 0xFFFF);
- packetdb_addpacket((0x0113), (9),clif->pTakeItem,5, 0xFFFF);
- packetdb_addpacket((0x0116), (9),clif->pTickSend,5, 0xFFFF);
- packetdb_addpacket((0x0190), (26),clif->pUseSkillToId,4,10,22, 0xFFFF);
- packetdb_addpacket((0x0193), (22),clif->pMoveFromKafra,12,18, 0xFFFF);
-
-
-
-
- packetdb_addpacket((0x0084), (-1), 0xFFFF);
- packetdb_addpacket((0x0215), (6), 0xFFFF);
-
-
-
-
- packetdb_addpacket((0x0084), (2), 0xFFFF);
- packetdb_addpacket((0x0216), (6), 0xFFFF);
- packetdb_addpacket((0x0217), (2),clif->pBlacksmith,0, 0xFFFF);
- packetdb_addpacket((0x0218), (2),clif->pAlchemist,0, 0xFFFF);
- packetdb_addpacket((0x0219), (282), 0xFFFF);
- packetdb_addpacket((0x021a), (282), 0xFFFF);
- packetdb_addpacket((0x021b), (10), 0xFFFF);
- packetdb_addpacket((0x021c), (10), 0xFFFF);
-
-
-
-
- packetdb_addpacket((0x021d), (6),clif->pLessEffect,2, 0xFFFF);
-
-
-
-
- packetdb_addpacket((0x0072), (22),clif->pUseSkillToId,8,12,18, 0xFFFF);
- packetdb_addpacket((0x007e), (30),clif->pUseSkillToPos,4,9,22,28, 0xFFFF);
- packetdb_addpacket((0x0085), (-1),clif->pGlobalMessage,2,4, 0xFFFF);
- packetdb_addpacket((0x0089), (7),clif->pTickSend,3, 0xFFFF);
- packetdb_addpacket((0x008c), (13),clif->pGetCharNameRequest,9, 0xFFFF);
- packetdb_addpacket((0x0094), (14),clif->pMoveToKafra,4,10, 0xFFFF);
- packetdb_addpacket((0x009b), (2),clif->pCloseKafra,0, 0xFFFF);
- packetdb_addpacket((0x009f), (18),clif->pActionRequest,6,17, 0xFFFF);
- packetdb_addpacket((0x00a2), (7),clif->pTakeItem,3, 0xFFFF);
- packetdb_addpacket((0x00a7), (7),clif->pWalkToXY,4, 0xFFFF);
- packetdb_addpacket((0x00f3), (8),clif->pChangeDir,3,7, 0xFFFF);
- packetdb_addpacket((0x00f5), (29),clif->pWantToConnection,3,10,20,24,28, 0xFFFF);
- packetdb_addpacket((0x00f7), (14),clif->pSolveCharName,10, 0xFFFF);
- packetdb_addpacket((0x0113), (110),clif->pUseSkillToPosMoreInfo,4,9,22,28,30, 0xFFFF);
- packetdb_addpacket((0x0116), (12),clif->pDropItem,4,10, 0xFFFF);
- packetdb_addpacket((0x0190), (15),clif->pUseItem,3,11, 0xFFFF);
- packetdb_addpacket((0x0193), (21),clif->pMoveFromKafra,4,17, 0xFFFF);
- packetdb_addpacket((0x0221), (-1), 0xFFFF);
- packetdb_addpacket((0x0222), (6),clif->pWeaponRefine,2, 0xFFFF);
- packetdb_addpacket((0x0223), (8), 0xFFFF);
-
-
-
-
-
- packetdb_addpacket((0x0066), (3), 0xFFFF);
- packetdb_addpacket((0x0070), (3), 0xFFFF);
- packetdb_addpacket((0x01ca), (3), 0xFFFF);
- packetdb_addpacket((0x021e), (6), 0xFFFF);
- packetdb_addpacket((0x021f), (66), 0xFFFF);
- packetdb_addpacket((0x0220), (10), 0xFFFF);
-
-
-
-
- packetdb_addpacket((0x0072), (26),clif->pUseSkillToId,8,16,22, 0xFFFF);
- packetdb_addpacket((0x007e), (114),clif->pUseSkillToPosMoreInfo,10,18,22,32,34, 0xFFFF);
- packetdb_addpacket((0x0085), (23),clif->pChangeDir,12,22, 0xFFFF);
- packetdb_addpacket((0x0089), (9),clif->pTickSend,5, 0xFFFF);
- packetdb_addpacket((0x008c), (8),clif->pGetCharNameRequest,4, 0xFFFF);
- packetdb_addpacket((0x0094), (20),clif->pMoveToKafra,10,16, 0xFFFF);
- packetdb_addpacket((0x009b), (32),clif->pWantToConnection,3,12,23,27,31, 0xFFFF);
- packetdb_addpacket((0x009f), (17),clif->pUseItem,5,13, 0xFFFF);
- packetdb_addpacket((0x00a2), (11),clif->pSolveCharName,7, 0xFFFF);
- packetdb_addpacket((0x00a7), (13),clif->pWalkToXY,10, 0xFFFF);
- packetdb_addpacket((0x00f3), (-1),clif->pGlobalMessage,2,4, 0xFFFF);
- packetdb_addpacket((0x00f5), (9),clif->pTakeItem,5, 0xFFFF);
- packetdb_addpacket((0x00f7), (21),clif->pMoveFromKafra,11,17, 0xFFFF);
- packetdb_addpacket((0x0113), (34),clif->pUseSkillToPos,10,18,22,32, 0xFFFF);
- packetdb_addpacket((0x0116), (20),clif->pDropItem,15,18, 0xFFFF);
- packetdb_addpacket((0x0190), (20),clif->pActionRequest,9,19, 0xFFFF);
- packetdb_addpacket((0x0193), (2),clif->pCloseKafra,0, 0xFFFF);
-
-
-
-
- packetdb_addpacket((0x0224), (10), 0xFFFF);
- packetdb_addpacket((0x0225), (2),clif->pTaekwon,0, 0xFFFF);
- packetdb_addpacket((0x0226), (282), 0xFFFF);
-
-
-
-
- packetdb_addpacket((0x0227), (18), 0xFFFF);
- packetdb_addpacket((0x0228), (18), 0xFFFF);
-
-
-
-
- packetdb_addpacket((0x0229), (15), 0xFFFF);
- packetdb_addpacket((0x022a), (58), 0xFFFF);
- packetdb_addpacket((0x022b), (57), 0xFFFF);
- packetdb_addpacket((0x022c), (64), 0xFFFF);
-
-
-
-
- packetdb_addpacket((0x022d), (5),clif->pHomMenu,2,4, 0xFFFF);
- packetdb_addpacket((0x0232), (9),clif->pHomMoveTo,2,6, 0xFFFF);
- packetdb_addpacket((0x0233), (11),clif->pHomAttack,2,6,10, 0xFFFF);
- packetdb_addpacket((0x0234), (6),clif->pHomMoveToMaster,2, 0xFFFF);
-
-
-
-
- packetdb_addpacket((0x0072), (25),clif->pUseSkillToId,6,10,21, 0xFFFF);
- packetdb_addpacket((0x007e), (102),clif->pUseSkillToPosMoreInfo,5,9,12,20,22, 0xFFFF);
- packetdb_addpacket((0x0085), (11),clif->pChangeDir,7,10, 0xFFFF);
- packetdb_addpacket((0x0089), (8),clif->pTickSend,4, 0xFFFF);
- packetdb_addpacket((0x008c), (11),clif->pGetCharNameRequest,7, 0xFFFF);
- packetdb_addpacket((0x0094), (14),clif->pMoveToKafra,7,10, 0xFFFF);
- packetdb_addpacket((0x009b), (26),clif->pWantToConnection,4,9,17,21,25, 0xFFFF);
- packetdb_addpacket((0x009f), (14),clif->pUseItem,4,10, 0xFFFF);
- packetdb_addpacket((0x00a2), (15),clif->pSolveCharName,11, 0xFFFF);
- packetdb_addpacket((0x00a7), (8),clif->pWalkToXY,5, 0xFFFF);
- packetdb_addpacket((0x00f5), (8),clif->pTakeItem,4, 0xFFFF);
- packetdb_addpacket((0x00f7), (22),clif->pMoveFromKafra,14,18, 0xFFFF);
- packetdb_addpacket((0x0113), (22),clif->pUseSkillToPos,5,9,12,20, 0xFFFF);
- packetdb_addpacket((0x0116), (10),clif->pDropItem,5,8, 0xFFFF);
- packetdb_addpacket((0x0190), (19),clif->pActionRequest,5,18, 0xFFFF);
-
-
-
-
- packetdb_addpacket((0x022e), (69), 0xFFFF);
- packetdb_addpacket((0x0230), (12), 0xFFFF);
-
-
-
-
- packetdb_addpacket((0x022e), (71), 0xFFFF);
- packetdb_addpacket((0x0235), (-1), 0xFFFF);
- packetdb_addpacket((0x0236), (10), 0xFFFF);
- packetdb_addpacket((0x0237), (2),clif->pRankingPk,0, 0xFFFF);
- packetdb_addpacket((0x0238), (282), 0xFFFF);
-
-
-
-
- packetdb_addpacket((0x0216), (2), 0xFFFF);
- packetdb_addpacket((0x0239), (11), 0xFFFF);
-
-
-
-
- packetdb_addpacket((0x0216), (6), 0xFFFF);
- packetdb_addpacket((0x0217), (2),clif->pBlacksmith,0, 0xFFFF);
- packetdb_addpacket((0x022f), (5), 0xFFFF);
- packetdb_addpacket((0x0231), (26),clif->pChangeHomunculusName,0, 0xFFFF);
- packetdb_addpacket((0x023a), (4), 0xFFFF);
- packetdb_addpacket((0x023b), (36),clif->pStoragePassword,2,4,20, 0xFFFF);
- packetdb_addpacket((0x023c), (6), 0xFFFF);
-
-
-
-
- packetdb_addpacket((0x022e), (71), 0xFFFF);
-
-
-
-
-
- packetdb_addpacket((0x0072), (34),clif->pUseSkillToId,6,17,30, 0xFFFF);
- packetdb_addpacket((0x007e), (113),clif->pUseSkillToPosMoreInfo,12,15,18,31,33, 0xFFFF);
- packetdb_addpacket((0x0085), (17),clif->pChangeDir,8,16, 0xFFFF);
- packetdb_addpacket((0x0089), (13),clif->pTickSend,9, 0xFFFF);
- packetdb_addpacket((0x008c), (8),clif->pGetCharNameRequest,4, 0xFFFF);
- packetdb_addpacket((0x0094), (31),clif->pMoveToKafra,16,27, 0xFFFF);
- packetdb_addpacket((0x009b), (32),clif->pWantToConnection,9,15,23,27,31, 0xFFFF);
- packetdb_addpacket((0x009f), (19),clif->pUseItem,9,15, 0xFFFF);
- packetdb_addpacket((0x00a2), (9),clif->pSolveCharName,5, 0xFFFF);
- packetdb_addpacket((0x00a7), (11),clif->pWalkToXY,8, 0xFFFF);
- packetdb_addpacket((0x00f5), (13),clif->pTakeItem,9, 0xFFFF);
- packetdb_addpacket((0x00f7), (18),clif->pMoveFromKafra,11,14, 0xFFFF);
- packetdb_addpacket((0x0113), (33),clif->pUseSkillToPos,12,15,18,31, 0xFFFF);
- packetdb_addpacket((0x0116), (12),clif->pDropItem,3,10, 0xFFFF);
- packetdb_addpacket((0x0190), (24),clif->pActionRequest,11,23, 0xFFFF);
- packetdb_addpacket((0x0216), (-1), 0xFFFF);
- packetdb_addpacket((0x023d), (-1), 0xFFFF);
- packetdb_addpacket((0x023e), (4), 0xFFFF);
-
-
-
-
- packetdb_addpacket((0x0072), (19),clif->pUseSkillToId,5,11,15, 0xFFFF);
- packetdb_addpacket((0x007e), (110),clif->pUseSkillToPosMoreInfo,9,15,23,28,30, 0xFFFF);
- packetdb_addpacket((0x0085), (11),clif->pChangeDir,6,10, 0xFFFF);
- packetdb_addpacket((0x0089), (7),clif->pTickSend,3, 0xFFFF);
- packetdb_addpacket((0x008c), (11),clif->pGetCharNameRequest,7, 0xFFFF);
- packetdb_addpacket((0x0094), (21),clif->pMoveToKafra,12,17, 0xFFFF);
- packetdb_addpacket((0x009b), (31),clif->pWantToConnection,3,13,22,26,30, 0xFFFF);
- packetdb_addpacket((0x009f), (12),clif->pUseItem,3,8, 0xFFFF);
- packetdb_addpacket((0x00a2), (18),clif->pSolveCharName,14, 0xFFFF);
- packetdb_addpacket((0x00a7), (15),clif->pWalkToXY,12, 0xFFFF);
- packetdb_addpacket((0x00f5), (7),clif->pTakeItem,3, 0xFFFF);
- packetdb_addpacket((0x00f7), (13),clif->pMoveFromKafra,5,9, 0xFFFF);
- packetdb_addpacket((0x0113), (30),clif->pUseSkillToPos,9,15,23,28, 0xFFFF);
- packetdb_addpacket((0x0116), (12),clif->pDropItem,6,10, 0xFFFF);
- packetdb_addpacket((0x0190), (21),clif->pActionRequest,5,20, 0xFFFF);
- packetdb_addpacket((0x0216), (6), 0xFFFF);
- packetdb_addpacket((0x023f), (2),clif->pMail_refreshinbox,0, 0xFFFF);
- packetdb_addpacket((0x0240), (8), 0xFFFF);
- packetdb_addpacket((0x0241), (6),clif->pMail_read,2, 0xFFFF);
- packetdb_addpacket((0x0242), (-1), 0xFFFF);
- packetdb_addpacket((0x0243), (6),clif->pMail_delete,2, 0xFFFF);
- packetdb_addpacket((0x0244), (6),clif->pMail_getattach,2, 0xFFFF);
- packetdb_addpacket((0x0245), (7), 0xFFFF);
- packetdb_addpacket((0x0246), (4),clif->pMail_winopen,2, 0xFFFF);
- packetdb_addpacket((0x0247), (8),clif->pMail_setattach,2,4, 0xFFFF);
- packetdb_addpacket((0x0248), (68), 0xFFFF);
- packetdb_addpacket((0x0249), (3), 0xFFFF);
- packetdb_addpacket((0x024a), (70), 0xFFFF);
- packetdb_addpacket((0x024b), (4),clif->pAuction_cancelreg,0, 0xFFFF);
- packetdb_addpacket((0x024c), (8),clif->pAuction_setitem,0, 0xFFFF);
- packetdb_addpacket((0x024d), (14), 0xFFFF);
- packetdb_addpacket((0x024e), (6),clif->pAuction_cancel,0, 0xFFFF);
- packetdb_addpacket((0x024f), (10),clif->pAuction_bid,0, 0xFFFF);
- packetdb_addpacket((0x0250), (3), 0xFFFF);
- packetdb_addpacket((0x0251), (2), 0xFFFF);
- packetdb_addpacket((0x0252), (-1), 0xFFFF);
-
-
-
-
- packetdb_addpacket((0x0072), (34),clif->pUseSkillToId,6,17,30, 0xFFFF);
- packetdb_addpacket((0x007e), (113),clif->pUseSkillToPosMoreInfo,12,15,18,31,33, 0xFFFF);
- packetdb_addpacket((0x0085), (17),clif->pChangeDir,8,16, 0xFFFF);
- packetdb_addpacket((0x0089), (13),clif->pTickSend,9, 0xFFFF);
- packetdb_addpacket((0x008c), (8),clif->pGetCharNameRequest,4, 0xFFFF);
- packetdb_addpacket((0x0094), (31),clif->pMoveToKafra,16,27, 0xFFFF);
- packetdb_addpacket((0x009b), (32),clif->pWantToConnection,9,15,23,27,31, 0xFFFF);
- packetdb_addpacket((0x009f), (19),clif->pUseItem,9,15, 0xFFFF);
- packetdb_addpacket((0x00a2), (9),clif->pSolveCharName,5, 0xFFFF);
- packetdb_addpacket((0x00a7), (11),clif->pWalkToXY,8, 0xFFFF);
- packetdb_addpacket((0x00f5), (13),clif->pTakeItem,9, 0xFFFF);
- packetdb_addpacket((0x00f7), (18),clif->pMoveFromKafra,11,14, 0xFFFF);
- packetdb_addpacket((0x0113), (33),clif->pUseSkillToPos,12,15,18,31, 0xFFFF);
- packetdb_addpacket((0x0116), (12),clif->pDropItem,3,10, 0xFFFF);
- packetdb_addpacket((0x0190), (24),clif->pActionRequest,11,23, 0xFFFF);
-
-
-
-
- packetdb_addpacket((0x0245), (3), 0xFFFF);
- packetdb_addpacket((0x0251), (4), 0xFFFF);
-
-
-
-
- packetdb_addpacket((0x024d), (12),clif->pAuction_register,0, 0xFFFF);
- packetdb_addpacket((0x024e), (4), 0xFFFF);
-
-
-
-
- packetdb_addpacket((0x0253), (3), 0xFFFF);
- packetdb_addpacket((0x0254), (3),clif->pFeelSaveOk,0, 0xFFFF);
-
-
-
-
- packetdb_addpacket((0x0240), (-1), 0xFFFF);
- packetdb_addpacket((0x0248), (-1),clif->pMail_send,2,4,28,68, 0xFFFF);
- packetdb_addpacket((0x0255), (5), 0xFFFF);
- packetdb_addpacket((0x0256), (-1), 0xFFFF);
- packetdb_addpacket((0x0257), (8), 0xFFFF);
-
-
-
-
- packetdb_addpacket((0x0256), (5), 0xFFFF);
- packetdb_addpacket((0x0258), (2), 0xFFFF);
- packetdb_addpacket((0x0259), (3), 0xFFFF);
-
-
-
-
- packetdb_addpacket((0x020e), (32), 0xFFFF);
- packetdb_addpacket((0x025a), (-1), 0xFFFF);
- packetdb_addpacket((0x025b), (6),clif->pCooking,0, 0xFFFF);
-
-
-
-
- packetdb_addpacket((0x007a), (6), 0xFFFF);
- packetdb_addpacket((0x0251), (32), 0xFFFF);
- packetdb_addpacket((0x025c), (4),clif->pAuction_buysell,0, 0xFFFF);
-
-
-
-
- packetdb_addpacket((0x007a), (58), 0xFFFF);
- packetdb_addpacket((0x025d), (6),clif->pAuction_close,0, 0xFFFF);
- packetdb_addpacket((0x025e), (4), 0xFFFF);
-
-
-
-
- packetdb_addpacket((0x025f), (6), 0xFFFF);
- packetdb_addpacket((0x0260), (6), 0xFFFF);
-
-
-
-
- packetdb_addpacket((0x024e), (6),clif->pAuction_cancel,0, 0xFFFF);
- packetdb_addpacket((0x0251), (34),clif->pAuction_search,0, 0xFFFF);
-
-
-
-
- packetdb_addpacket((0x0261), (11), 0xFFFF);
- packetdb_addpacket((0x0262), (11), 0xFFFF);
- packetdb_addpacket((0x0263), (11), 0xFFFF);
- packetdb_addpacket((0x0264), (20), 0xFFFF);
- packetdb_addpacket((0x0265), (20), 0xFFFF);
- packetdb_addpacket((0x0266), (30), 0xFFFF);
- packetdb_addpacket((0x0267), (4), 0xFFFF);
- packetdb_addpacket((0x0268), (4), 0xFFFF);
- packetdb_addpacket((0x0269), (4), 0xFFFF);
- packetdb_addpacket((0x026a), (4), 0xFFFF);
- packetdb_addpacket((0x026b), (4), 0xFFFF);
- packetdb_addpacket((0x026c), (4), 0xFFFF);
- packetdb_addpacket((0x026d), (4), 0xFFFF);
- packetdb_addpacket((0x026f), (2), 0xFFFF);
- packetdb_addpacket((0x0270), (2), 0xFFFF);
- packetdb_addpacket((0x0271), (38), 0xFFFF);
- packetdb_addpacket((0x0272), (44), 0xFFFF);
-
-
-
-
- packetdb_addpacket((0x0271), (40), 0xFFFF);
-
-
-
-
-
- packetdb_addpacket((0x0273), (6), 0xFFFF);
- packetdb_addpacket((0x0274), (8), 0xFFFF);
-
-
-
-
- packetdb_addpacket((0x0273), (30),clif->pMail_return,2,6, 0xFFFF);
-
-
-
-
- packetdb_addpacket((0x0072), (26),clif->pUseSkillToId,11,18,22, 0xFFFF);
- packetdb_addpacket((0x007e), (120),clif->pUseSkillToPosMoreInfo,5,15,29,38,40, 0xFFFF);
- packetdb_addpacket((0x0085), (12),clif->pChangeDir,7,11, 0xFFFF);
-
- packetdb_addpacket((0x008c), (12),clif->pGetCharNameRequest,8, 0xFFFF);
- packetdb_addpacket((0x0094), (23),clif->pMoveToKafra,5,19, 0xFFFF);
- packetdb_addpacket((0x009b), (37),clif->pWantToConnection,9,21,28,32,36, 0xFFFF);
- packetdb_addpacket((0x009f), (24),clif->pUseItem,9,20, 0xFFFF);
- packetdb_addpacket((0x00a2), (11),clif->pSolveCharName,7, 0xFFFF);
- packetdb_addpacket((0x00a7), (15),clif->pWalkToXY,12, 0xFFFF);
- packetdb_addpacket((0x00f5), (13),clif->pTakeItem,9, 0xFFFF);
- packetdb_addpacket((0x00f7), (26),clif->pMoveFromKafra,11,22, 0xFFFF);
- packetdb_addpacket((0x0113), (40),clif->pUseSkillToPos,5,15,29,38, 0xFFFF);
- packetdb_addpacket((0x0116), (17),clif->pDropItem,8,15, 0xFFFF);
- packetdb_addpacket((0x0190), (18),clif->pActionRequest,7,17, 0xFFFF);
-
-
-
-
- packetdb_addpacket((0x006d), (110), 0xFFFF);
-
-
-
-
- packetdb_addpacket((0x023e), (8), 0xFFFF);
- packetdb_addpacket((0x0277), (84), 0xFFFF);
- packetdb_addpacket((0x0278), (2), 0xFFFF);
- packetdb_addpacket((0x0279), (2), 0xFFFF);
- packetdb_addpacket((0x027a), (-1), 0xFFFF);
- packetdb_addpacket((0x027b), (14), 0xFFFF);
- packetdb_addpacket((0x027c), (60), 0xFFFF);
- packetdb_addpacket((0x027d), (62), 0xFFFF);
- packetdb_addpacket((0x027e), (-1), 0xFFFF);
- packetdb_addpacket((0x027f), (8), 0xFFFF);
- packetdb_addpacket((0x0280), (12), 0xFFFF);
- packetdb_addpacket((0x0281), (4), 0xFFFF);
- packetdb_addpacket((0x0282), (284), 0xFFFF);
- packetdb_addpacket((0x0283), (6), 0xFFFF);
- packetdb_addpacket((0x0284), (14), 0xFFFF);
- packetdb_addpacket((0x0285), (6), 0xFFFF);
- packetdb_addpacket((0x0286), (4), 0xFFFF);
- packetdb_addpacket((0x0287), (-1), 0xFFFF);
- packetdb_addpacket((0x0288), (6), 0xFFFF);
- packetdb_addpacket((0x0289), (8), 0xFFFF);
- packetdb_addpacket((0x028a), (18), 0xFFFF);
- packetdb_addpacket((0x028b), (-1), 0xFFFF);
- packetdb_addpacket((0x028c), (46), 0xFFFF);
- packetdb_addpacket((0x028d), (34), 0xFFFF);
- packetdb_addpacket((0x028e), (4), 0xFFFF);
- packetdb_addpacket((0x028f), (6), 0xFFFF);
- packetdb_addpacket((0x0290), (4), 0xFFFF);
- packetdb_addpacket((0x0291), (4), 0xFFFF);
- packetdb_addpacket((0x0292), (2),clif->pAutoRevive,0, 0xFFFF);
- packetdb_addpacket((0x0293), (70), 0xFFFF);
- packetdb_addpacket((0x0294), (10), 0xFFFF);
- packetdb_addpacket((0x0295), (-1), 0xFFFF);
- packetdb_addpacket((0x0296), (-1), 0xFFFF);
- packetdb_addpacket((0x0297), (-1), 0xFFFF);
- packetdb_addpacket((0x0298), (8), 0xFFFF);
- packetdb_addpacket((0x0299), (6), 0xFFFF);
- packetdb_addpacket((0x029a), (27), 0xFFFF);
- packetdb_addpacket((0x029c), (66), 0xFFFF);
- packetdb_addpacket((0x029d), (-1), 0xFFFF);
- packetdb_addpacket((0x029e), (11), 0xFFFF);
- packetdb_addpacket((0x029f), (3),clif->pmercenary_action,0, 0xFFFF);
- packetdb_addpacket((0x02a0), (-1), 0xFFFF);
- packetdb_addpacket((0x02a1), (-1), 0xFFFF);
- packetdb_addpacket((0x02a2), (8), 0xFFFF);
-
-
-
-
- packetdb_addpacket((0x0072), (30),clif->pUseSkillToId,10,14,26, 0xFFFF);
- packetdb_addpacket((0x007e), (120),clif->pUseSkillToPosMoreInfo,10,19,23,38,40, 0xFFFF);
- packetdb_addpacket((0x0085), (14),clif->pChangeDir,10,13, 0xFFFF);
- packetdb_addpacket((0x0089), (11),clif->pTickSend,7, 0xFFFF);
- packetdb_addpacket((0x008c), (17),clif->pGetCharNameRequest,13, 0xFFFF);
- packetdb_addpacket((0x0094), (17),clif->pMoveToKafra,4,13, 0xFFFF);
- packetdb_addpacket((0x009b), (35),clif->pWantToConnection,7,21,26,30,34, 0xFFFF);
- packetdb_addpacket((0x009f), (21),clif->pUseItem,7,17, 0xFFFF);
- packetdb_addpacket((0x00a2), (10),clif->pSolveCharName,6, 0xFFFF);
- packetdb_addpacket((0x00a7), (8),clif->pWalkToXY,5, 0xFFFF);
- packetdb_addpacket((0x00f5), (11),clif->pTakeItem,7, 0xFFFF);
- packetdb_addpacket((0x00f7), (15),clif->pMoveFromKafra,3,11, 0xFFFF);
- packetdb_addpacket((0x0113), (40),clif->pUseSkillToPos,10,19,23,38, 0xFFFF);
- packetdb_addpacket((0x0116), (19),clif->pDropItem,11,17, 0xFFFF);
- packetdb_addpacket((0x0190), (10),clif->pActionRequest,4,9, 0xFFFF);
-
-
-
-
- packetdb_addpacket((0x02a3), (18), 0xFFFF);
- packetdb_addpacket((0x02a4), (2), 0xFFFF);
-
-
-
-
- packetdb_addpacket((0x029b), (72), 0xFFFF);
- packetdb_addpacket((0x02a3), (-1), 0xFFFF);
- packetdb_addpacket((0x02a4), (-1), 0xFFFF);
- packetdb_addpacket((0x02a5), (8), 0xFFFF);
-
-
-
-
-
- packetdb_addpacket((0x02aa), (4), 0xFFFF);
- packetdb_addpacket((0x02ab), (36), 0xFFFF);
- packetdb_addpacket((0x02ac), (6), 0xFFFF);
-
-
-
-
- packetdb_addpacket((0x0072), (25),clif->pUseSkillToId,6,10,21, 0xFFFF);
- packetdb_addpacket((0x007e), (102),clif->pUseSkillToPosMoreInfo,5,9,12,20,22, 0xFFFF);
- packetdb_addpacket((0x0085), (11),clif->pChangeDir,7,10, 0xFFFF);
- packetdb_addpacket((0x0089), (8),clif->pTickSend,4, 0xFFFF);
- packetdb_addpacket((0x008c), (11),clif->pGetCharNameRequest,7, 0xFFFF);
- packetdb_addpacket((0x0094), (14),clif->pMoveToKafra,7,10, 0xFFFF);
- packetdb_addpacket((0x009b), (26),clif->pWantToConnection,4,9,17,21,25, 0xFFFF);
- packetdb_addpacket((0x009f), (14),clif->pUseItem,4,10, 0xFFFF);
- packetdb_addpacket((0x00a2), (15),clif->pSolveCharName,11, 0xFFFF);
-
- packetdb_addpacket((0x00f5), (8),clif->pTakeItem,4, 0xFFFF);
- packetdb_addpacket((0x00f7), (22),clif->pMoveFromKafra,14,18, 0xFFFF);
- packetdb_addpacket((0x0113), (22),clif->pUseSkillToPos,5,9,12,20, 0xFFFF);
- packetdb_addpacket((0x0116), (10),clif->pDropItem,5,8, 0xFFFF);
- packetdb_addpacket((0x0190), (19),clif->pActionRequest,5,18, 0xFFFF);
-
-
-
-
- packetdb_addpacket((0x01fd), (15),clif->pRepairItem,2, 0xFFFF);
-
-
-
-
- packetdb_addpacket((0x0288), (10),clif->pcashshop_buy,2,4,6, 0xFFFF);
- packetdb_addpacket((0x0289), (12), 0xFFFF);
- packetdb_addpacket((0x02a6), (22), 0xFFFF);
- packetdb_addpacket((0x02a7), (22), 0xFFFF);
- packetdb_addpacket((0x02a8), (162), 0xFFFF);
- packetdb_addpacket((0x02a9), (58), 0xFFFF);
- packetdb_addpacket((0x02ad), (8), 0xFFFF);
- packetdb_addpacket((0x02b0), (85), 0xFFFF);
- packetdb_addpacket((0x02b1), (-1), 0xFFFF);
- packetdb_addpacket((0x02b2), (-1), 0xFFFF);
- packetdb_addpacket((0x02b3), (107), 0xFFFF);
- packetdb_addpacket((0x02b4), (6), 0xFFFF);
- packetdb_addpacket((0x02b5), (-1), 0xFFFF);
- packetdb_addpacket((0x02b6), (7),clif->pquestStateAck,2,6, 0xFFFF);
- packetdb_addpacket((0x02b7), (7), 0xFFFF);
- packetdb_addpacket((0x02b8), (22), 0xFFFF);
- packetdb_addpacket((0x02b9), (191), 0xFFFF);
- packetdb_addpacket((0x02ba), (11),clif->pHotkey,2,4,5,9, 0xFFFF);
- packetdb_addpacket((0x02bb), (8), 0xFFFF);
- packetdb_addpacket((0x02bc), (6), 0xFFFF);
- packetdb_addpacket((0x02bf), (10), 0xFFFF);
- packetdb_addpacket((0x02c0), (2), 0xFFFF);
- packetdb_addpacket((0x02c1), (-1), 0xFFFF);
- packetdb_addpacket((0x02c2), (-1), 0xFFFF);
- packetdb_addpacket((0x02c4), (26),clif->pPartyInvite2,2, 0xFFFF);
- packetdb_addpacket((0x02c5), (30), 0xFFFF);
- packetdb_addpacket((0x02c6), (30), 0xFFFF);
- packetdb_addpacket((0x02c7), (7),clif->pReplyPartyInvite2,2,6, 0xFFFF);
- packetdb_addpacket((0x02c8), (3),clif->pPartyTick,2, 0xFFFF);
- packetdb_addpacket((0x02c9), (3), 0xFFFF);
- packetdb_addpacket((0x02ca), (3), 0xFFFF);
- packetdb_addpacket((0x02cb), (20), 0xFFFF);
- packetdb_addpacket((0x02cc), (4), 0xFFFF);
- packetdb_addpacket((0x02cd), (26), 0xFFFF);
- packetdb_addpacket((0x02ce), (10), 0xFFFF);
- packetdb_addpacket((0x02cf), (6), 0xFFFF);
- packetdb_addpacket((0x02d0), (-1), 0xFFFF);
- packetdb_addpacket((0x02d1), (-1), 0xFFFF);
- packetdb_addpacket((0x02d2), (-1), 0xFFFF);
- packetdb_addpacket((0x02d3), (4), 0xFFFF);
- packetdb_addpacket((0x02d4), (29), 0xFFFF);
- packetdb_addpacket((0x02d5), (2), 0xFFFF);
- packetdb_addpacket((0x02d6), (6),clif->pViewPlayerEquip,2, 0xFFFF);
- packetdb_addpacket((0x02d7), (-1), 0xFFFF);
- packetdb_addpacket((0x02d8), (10),clif->pEquipTick,6, 0xFFFF);
- packetdb_addpacket((0x02d9), (10), 0xFFFF);
- packetdb_addpacket((0x02da), (3), 0xFFFF);
- packetdb_addpacket((0x02db), (-1),clif->pBattleChat,2,4, 0xFFFF);
- packetdb_addpacket((0x02dc), (-1), 0xFFFF);
- packetdb_addpacket((0x02dd), (32), 0xFFFF);
- packetdb_addpacket((0x02de), (6), 0xFFFF);
- packetdb_addpacket((0x02df), (36), 0xFFFF);
- packetdb_addpacket((0x02e0), (34), 0xFFFF);
-
-
-
-
- packetdb_addpacket((0x02cb), (65), 0xFFFF);
- packetdb_addpacket((0x02cd), (71), 0xFFFF);
-
-
-
-
- packetdb_addpacket((0x0078), (55), 0xFFFF);
- packetdb_addpacket((0x007c), (42), 0xFFFF);
- packetdb_addpacket((0x022c), (65), 0xFFFF);
- packetdb_addpacket((0x029b), (80), 0xFFFF);
-
-
-
-
- packetdb_addpacket((0x02e1), (33), 0xFFFF);
-
-
-
-
-
- packetdb_addpacket((0x02e2), (14), 0xFFFF);
- packetdb_addpacket((0x02e3), (25), 0xFFFF);
- packetdb_addpacket((0x02e4), (8), 0xFFFF);
- packetdb_addpacket((0x02e5), (8), 0xFFFF);
- packetdb_addpacket((0x02e6), (6), 0xFFFF);
-
-
-
-
- packetdb_addpacket((0x02e7), (-1), 0xFFFF);
-
-
-
-
- packetdb_addpacket((0x01df), (6),clif->pGMReqAccountName,2, 0xFFFF);
- packetdb_addpacket((0x02e8), (-1), 0xFFFF);
- packetdb_addpacket((0x02e9), (-1), 0xFFFF);
- packetdb_addpacket((0x02ea), (-1), 0xFFFF);
- packetdb_addpacket((0x02eb), (13), 0xFFFF);
- packetdb_addpacket((0x02ec), (67), 0xFFFF);
- packetdb_addpacket((0x02ed), (59), 0xFFFF);
- packetdb_addpacket((0x02ee), (60), 0xFFFF);
- packetdb_addpacket((0x02ef), (8), 0xFFFF);
-
-
-
-
- packetdb_addpacket((0x02bf), (-1), 0xFFFF);
- packetdb_addpacket((0x02c0), (-1), 0xFFFF);
- packetdb_addpacket((0x02f0), (10), 0xFFFF);
- packetdb_addpacket((0x02f1), (2),clif->pProgressbar,0, 0xFFFF);
- packetdb_addpacket((0x02f2), (2), 0xFFFF);
-
-
-
-
- packetdb_addpacket((0x02f3), (-1), 0xFFFF);
- packetdb_addpacket((0x02f4), (-1), 0xFFFF);
- packetdb_addpacket((0x02f5), (-1), 0xFFFF);
- packetdb_addpacket((0x02f6), (-1), 0xFFFF);
- packetdb_addpacket((0x02f7), (-1), 0xFFFF);
- packetdb_addpacket((0x02f8), (-1), 0xFFFF);
- packetdb_addpacket((0x02f9), (-1), 0xFFFF);
- packetdb_addpacket((0x02fa), (-1), 0xFFFF);
- packetdb_addpacket((0x02fb), (-1), 0xFFFF);
- packetdb_addpacket((0x02fc), (-1), 0xFFFF);
- packetdb_addpacket((0x02fd), (-1), 0xFFFF);
- packetdb_addpacket((0x02fe), (-1), 0xFFFF);
- packetdb_addpacket((0x02ff), (-1), 0xFFFF);
- packetdb_addpacket((0x0300), (-1), 0xFFFF);
-
-
-
-
- packetdb_addpacket((0x0301), (-1), 0xFFFF);
- packetdb_addpacket((0x0302), (-1), 0xFFFF);
- packetdb_addpacket((0x0303), (-1), 0xFFFF);
- packetdb_addpacket((0x0304), (-1), 0xFFFF);
- packetdb_addpacket((0x0305), (-1), 0xFFFF);
- packetdb_addpacket((0x0306), (-1), 0xFFFF);
- packetdb_addpacket((0x0307), (-1), 0xFFFF);
- packetdb_addpacket((0x0308), (-1), 0xFFFF);
- packetdb_addpacket((0x0309), (-1), 0xFFFF);
- packetdb_addpacket((0x030a), (-1), 0xFFFF);
- packetdb_addpacket((0x030b), (-1), 0xFFFF);
- packetdb_addpacket((0x030c), (-1), 0xFFFF);
- packetdb_addpacket((0x030d), (-1), 0xFFFF);
- packetdb_addpacket((0x030e), (-1), 0xFFFF);
- packetdb_addpacket((0x030f), (-1), 0xFFFF);
- packetdb_addpacket((0x0310), (-1), 0xFFFF);
- packetdb_addpacket((0x0311), (-1), 0xFFFF);
- packetdb_addpacket((0x0312), (-1), 0xFFFF);
- packetdb_addpacket((0x0313), (-1), 0xFFFF);
- packetdb_addpacket((0x0314), (-1), 0xFFFF);
- packetdb_addpacket((0x0315), (-1), 0xFFFF);
- packetdb_addpacket((0x0316), (-1), 0xFFFF);
- packetdb_addpacket((0x0317), (-1), 0xFFFF);
- packetdb_addpacket((0x0318), (-1), 0xFFFF);
- packetdb_addpacket((0x0319), (-1), 0xFFFF);
- packetdb_addpacket((0x031a), (-1), 0xFFFF);
- packetdb_addpacket((0x031b), (-1), 0xFFFF);
- packetdb_addpacket((0x031c), (-1), 0xFFFF);
- packetdb_addpacket((0x031d), (-1), 0xFFFF);
- packetdb_addpacket((0x031e), (-1), 0xFFFF);
- packetdb_addpacket((0x031f), (-1), 0xFFFF);
- packetdb_addpacket((0x0320), (-1), 0xFFFF);
- packetdb_addpacket((0x0321), (-1), 0xFFFF);
- packetdb_addpacket((0x0322), (-1), 0xFFFF);
- packetdb_addpacket((0x0323), (-1), 0xFFFF);
- packetdb_addpacket((0x0324), (-1), 0xFFFF);
- packetdb_addpacket((0x0325), (-1), 0xFFFF);
- packetdb_addpacket((0x0326), (-1), 0xFFFF);
- packetdb_addpacket((0x0327), (-1), 0xFFFF);
- packetdb_addpacket((0x0328), (-1), 0xFFFF);
- packetdb_addpacket((0x0329), (-1), 0xFFFF);
- packetdb_addpacket((0x032a), (-1), 0xFFFF);
- packetdb_addpacket((0x032b), (-1), 0xFFFF);
- packetdb_addpacket((0x032c), (-1), 0xFFFF);
- packetdb_addpacket((0x032d), (-1), 0xFFFF);
- packetdb_addpacket((0x032e), (-1), 0xFFFF);
- packetdb_addpacket((0x032f), (-1), 0xFFFF);
- packetdb_addpacket((0x0330), (-1), 0xFFFF);
- packetdb_addpacket((0x0331), (-1), 0xFFFF);
- packetdb_addpacket((0x0332), (-1), 0xFFFF);
- packetdb_addpacket((0x0333), (-1), 0xFFFF);
- packetdb_addpacket((0x0334), (-1), 0xFFFF);
- packetdb_addpacket((0x0335), (-1), 0xFFFF);
- packetdb_addpacket((0x0336), (-1), 0xFFFF);
- packetdb_addpacket((0x0337), (-1), 0xFFFF);
- packetdb_addpacket((0x0338), (-1), 0xFFFF);
- packetdb_addpacket((0x0339), (-1), 0xFFFF);
- packetdb_addpacket((0x033a), (-1), 0xFFFF);
- packetdb_addpacket((0x033b), (-1), 0xFFFF);
- packetdb_addpacket((0x033c), (-1), 0xFFFF);
- packetdb_addpacket((0x033d), (-1), 0xFFFF);
- packetdb_addpacket((0x033e), (-1), 0xFFFF);
- packetdb_addpacket((0x033f), (-1), 0xFFFF);
- packetdb_addpacket((0x0340), (-1), 0xFFFF);
- packetdb_addpacket((0x0341), (-1), 0xFFFF);
- packetdb_addpacket((0x0342), (-1), 0xFFFF);
- packetdb_addpacket((0x0343), (-1), 0xFFFF);
- packetdb_addpacket((0x0344), (-1), 0xFFFF);
- packetdb_addpacket((0x0345), (-1), 0xFFFF);
- packetdb_addpacket((0x0346), (-1), 0xFFFF);
- packetdb_addpacket((0x0347), (-1), 0xFFFF);
- packetdb_addpacket((0x0348), (-1), 0xFFFF);
- packetdb_addpacket((0x0349), (-1), 0xFFFF);
- packetdb_addpacket((0x034a), (-1), 0xFFFF);
- packetdb_addpacket((0x034b), (-1), 0xFFFF);
- packetdb_addpacket((0x034c), (-1), 0xFFFF);
- packetdb_addpacket((0x034d), (-1), 0xFFFF);
- packetdb_addpacket((0x034e), (-1), 0xFFFF);
- packetdb_addpacket((0x034f), (-1), 0xFFFF);
- packetdb_addpacket((0x0350), (-1), 0xFFFF);
- packetdb_addpacket((0x0351), (-1), 0xFFFF);
- packetdb_addpacket((0x0352), (-1), 0xFFFF);
- packetdb_addpacket((0x0353), (-1), 0xFFFF);
- packetdb_addpacket((0x0354), (-1), 0xFFFF);
- packetdb_addpacket((0x0355), (-1), 0xFFFF);
- packetdb_addpacket((0x0356), (-1), 0xFFFF);
- packetdb_addpacket((0x0357), (-1), 0xFFFF);
- packetdb_addpacket((0x0358), (-1), 0xFFFF);
- packetdb_addpacket((0x0359), (-1), 0xFFFF);
- packetdb_addpacket((0x035a), (-1), 0xFFFF);
-
-
-
-
- packetdb_addpacket((0x035b), (-1), 0xFFFF);
- packetdb_addpacket((0x035c), (2), 0xFFFF);
- packetdb_addpacket((0x035d), (-1), 0xFFFF);
- packetdb_addpacket((0x035e), (2), 0xFFFF);
- packetdb_addpacket((0x035f), (-1), 0xFFFF);
- packetdb_addpacket((0x0389), (-1), 0xFFFF);
-
-
-
-
- packetdb_addpacket((0x040c), (-1), 0xFFFF);
- packetdb_addpacket((0x040d), (-1), 0xFFFF);
- packetdb_addpacket((0x040e), (-1), 0xFFFF);
- packetdb_addpacket((0x040f), (-1), 0xFFFF);
- packetdb_addpacket((0x0410), (-1), 0xFFFF);
- packetdb_addpacket((0x0411), (-1), 0xFFFF);
- packetdb_addpacket((0x0412), (-1), 0xFFFF);
- packetdb_addpacket((0x0413), (-1), 0xFFFF);
- packetdb_addpacket((0x0414), (-1), 0xFFFF);
- packetdb_addpacket((0x0415), (-1), 0xFFFF);
- packetdb_addpacket((0x0416), (-1), 0xFFFF);
- packetdb_addpacket((0x0417), (-1), 0xFFFF);
- packetdb_addpacket((0x0418), (-1), 0xFFFF);
- packetdb_addpacket((0x0419), (-1), 0xFFFF);
- packetdb_addpacket((0x041a), (-1), 0xFFFF);
- packetdb_addpacket((0x041b), (-1), 0xFFFF);
- packetdb_addpacket((0x041c), (-1), 0xFFFF);
- packetdb_addpacket((0x041d), (-1), 0xFFFF);
- packetdb_addpacket((0x041e), (-1), 0xFFFF);
- packetdb_addpacket((0x041f), (-1), 0xFFFF);
- packetdb_addpacket((0x0420), (-1), 0xFFFF);
- packetdb_addpacket((0x0421), (-1), 0xFFFF);
- packetdb_addpacket((0x0422), (-1), 0xFFFF);
- packetdb_addpacket((0x0423), (-1), 0xFFFF);
- packetdb_addpacket((0x0424), (-1), 0xFFFF);
- packetdb_addpacket((0x0425), (-1), 0xFFFF);
- packetdb_addpacket((0x0426), (-1), 0xFFFF);
- packetdb_addpacket((0x0427), (-1), 0xFFFF);
- packetdb_addpacket((0x0428), (-1), 0xFFFF);
- packetdb_addpacket((0x0429), (-1), 0xFFFF);
- packetdb_addpacket((0x042a), (-1), 0xFFFF);
- packetdb_addpacket((0x042b), (-1), 0xFFFF);
- packetdb_addpacket((0x042c), (-1), 0xFFFF);
- packetdb_addpacket((0x042d), (-1), 0xFFFF);
- packetdb_addpacket((0x042e), (-1), 0xFFFF);
- packetdb_addpacket((0x042f), (-1), 0xFFFF);
- packetdb_addpacket((0x0430), (-1), 0xFFFF);
- packetdb_addpacket((0x0431), (-1), 0xFFFF);
- packetdb_addpacket((0x0432), (-1), 0xFFFF);
- packetdb_addpacket((0x0433), (-1), 0xFFFF);
- packetdb_addpacket((0x0434), (-1), 0xFFFF);
- packetdb_addpacket((0x0435), (-1), 0xFFFF);
-
-
-
-
- packetdb_addpacket((0x0436), (19),clif->pWantToConnection,2,6,10,14,18, 0xFFFF);
- packetdb_addpacket((0x0437), (7),clif->pActionRequest,2,6, 0xFFFF);
- packetdb_addpacket((0x0438), (10),clif->pUseSkillToId,2,4,6, 0xFFFF);
- packetdb_addpacket((0x0439), (8),clif->pUseItem,2,4, 0xFFFF);
-
-
-
-
- packetdb_addpacket((0x043d), (8), 0xFFFF);
- packetdb_addpacket((0x043e), (-1), 0xFFFF);
- packetdb_addpacket((0x043f), (8), 0xFFFF);
-
-
-
-
- packetdb_addpacket((0x01a2), (37), 0xFFFF);
- packetdb_addpacket((0x0440), (10), 0xFFFF);
- packetdb_addpacket((0x0441), (4), 0xFFFF);
-
-
-
-
- packetdb_addpacket((0x0442), (-1), 0xFFFF);
- packetdb_addpacket((0x0443), (8),clif->pSkillSelectMenu,2,6, 0xFFFF);
-
-
-
-
- packetdb_addpacket((0x043f), (25), 0xFFFF);
- packetdb_addpacket((0x0444), (-1), 0xFFFF);
- packetdb_addpacket((0x0445), (10), 0xFFFF);
-
-
-
-
- packetdb_addpacket((0x0446), (14), 0xFFFF);
-
-
-
-
- packetdb_addpacket((0x0448), (-1), 0xFFFF);
-
-
-
-
- packetdb_addpacket((0x0449), (4), 0xFFFF);
-
-
-
-
- packetdb_addpacket((0x02a6), (-1), 0xFFFF);
- packetdb_addpacket((0x02a7), (-1), 0xFFFF);
- packetdb_addpacket((0x044a), (6), 0xFFFF);
-
-
-
-
- packetdb_addpacket((0x0072), (22),clif->pUseSkillToId,9,15,18, 0xFFFF);
- packetdb_addpacket((0x007c), (44), 0xFFFF);
- packetdb_addpacket((0x007e), (105),clif->pUseSkillToPosMoreInfo,10,14,18,23,25, 0xFFFF);
- packetdb_addpacket((0x0085), (10),clif->pChangeDir,4,9, 0xFFFF);
- packetdb_addpacket((0x0089), (11),clif->pTickSend,7, 0xFFFF);
- packetdb_addpacket((0x008c), (14),clif->pGetCharNameRequest,10, 0xFFFF);
- packetdb_addpacket((0x0094), (19),clif->pMoveToKafra,3,15, 0xFFFF);
- packetdb_addpacket((0x009b), (34),clif->pWantToConnection,7,15,25,29,33, 0xFFFF);
- packetdb_addpacket((0x009f), (20),clif->pUseItem,7,20, 0xFFFF);
- packetdb_addpacket((0x00a2), (14),clif->pSolveCharName,10, 0xFFFF);
- packetdb_addpacket((0x00a7), (9),clif->pWalkToXY,6, 0xFFFF);
- packetdb_addpacket((0x00f5), (11),clif->pTakeItem,7, 0xFFFF);
- packetdb_addpacket((0x00f7), (17),clif->pMoveFromKafra,3,13, 0xFFFF);
- packetdb_addpacket((0x0113), (25),clif->pUseSkillToPos,10,14,18,23, 0xFFFF);
- packetdb_addpacket((0x0116), (17),clif->pDropItem,6,15, 0xFFFF);
- packetdb_addpacket((0x0190), (23),clif->pActionRequest,9,22, 0xFFFF);
- packetdb_addpacket((0x02e2), (20), 0xFFFF);
- packetdb_addpacket((0x02e3), (22), 0xFFFF);
- packetdb_addpacket((0x02e4), (11), 0xFFFF);
- packetdb_addpacket((0x02e5), (9), 0xFFFF);
-
-
-
-
- packetdb_addpacket((0x0436), (19),clif->pWantToConnection,2,6,10,14,18, 0xFFFF);
- packetdb_addpacket((0x0437), (7),clif->pActionRequest,2,6, 0xFFFF);
- packetdb_addpacket((0x0438), (10),clif->pUseSkillToId,2,4,6, 0xFFFF);
- packetdb_addpacket((0x0439), (8),clif->pUseItem,2,4, 0xFFFF);
-
-
-
-
-
- packetdb_addpacket((0x043d), (8), 0xFFFF);
-
- packetdb_addpacket((0x043f), (8), 0xFFFF);
-
-
-
-
- packetdb_addpacket((0x01a2), (37), 0xFFFF);
-# 1501 "../../../server-code/src/map/packets.h"
- packetdb_addpacket((0x006d), (114), 0xFFFF);
-
-
-
-
-
- packetdb_addpacket((0x043f), (25), 0xFFFF);
-# 1546 "../../../server-code/src/map/packets.h"
- packetdb_addpacket((0x07d7), (8),clif->pPartyChangeOption,2,6,7, 0xFFFF);
- packetdb_addpacket((0x07d8), (8), 0xFFFF);
- packetdb_addpacket((0x07d9), (254), 0xFFFF);
- packetdb_addpacket((0x07da), (6),clif->pPartyChangeLeader,2, 0xFFFF);
-# 1559 "../../../server-code/src/map/packets.h"
- packetdb_addpacket((0x07d9), (268), 0xFFFF);
-# 1579 "../../../server-code/src/map/packets.h"
- packetdb_addpacket((0x07e1), (15), 0xFFFF);
-
-
-
-
- packetdb_addpacket((0x07e2), (8), 0xFFFF);
-
-
-
-
- packetdb_addpacket((0x07e3), (6), 0xFFFF);
- packetdb_addpacket((0x07e4), (-1),clif->pItemListWindowSelected,2,4,8, 0xFFFF);
- packetdb_addpacket((0x07e6), (8), 0xFFFF);
-
-
-
-
-
- packetdb_addpacket((0x07e7), (5), 0xFFFF);
-
-
-
-
- packetdb_addpacket((0x07e5), (8), 0xFFFF);
- packetdb_addpacket((0x07e6), (8), 0xFFFF);
- packetdb_addpacket((0x07e7), (32), 0xFFFF);
- packetdb_addpacket((0x07e8), (-1), 0xFFFF);
- packetdb_addpacket((0x07e9), (5), 0xFFFF);
-# 1635 "../../../server-code/src/map/packets.h"
- packetdb_addpacket((0x07f5), (6),clif->pGMFullStrip,2, 0xFFFF);
- packetdb_addpacket((0x07f6), (14), 0xFFFF);
-
-
-
-
- packetdb_addpacket((0x07f7), (-1), 0xFFFF);
- packetdb_addpacket((0x07f8), (-1), 0xFFFF);
- packetdb_addpacket((0x07f9), (-1), 0xFFFF);
-
-
-
-
- packetdb_addpacket((0x07fa), (8), 0xFFFF);
-
-
-
-
-
- packetdb_addpacket((0x07fb), (25), 0xFFFF);
-
-
-
-
-
-
- packetdb_addpacket((0x07fe), (26), 0xFFFF);
-
-
-
-
-
- packetdb_addpacket((0x0800), (-1), 0xFFFF);
-
-
-
-
-
- packetdb_addpacket((0x0802), (18),clif->pPartyBookingRegisterReq,2,4,6, 0xFFFF);
- packetdb_addpacket((0x0803), (4), 0xFFFF);
- packetdb_addpacket((0x0804), (8), 0xFFFF);
- packetdb_addpacket((0x0805), (-1), 0xFFFF);
- packetdb_addpacket((0x0806), (4),clif->pPartyBookingDeleteReq,2, 0xFFFF);
-
- packetdb_addpacket((0x0808), (4), 0xFFFF);
-# 1688 "../../../server-code/src/map/packets.h"
- packetdb_addpacket((0x0804), (14),clif->pPartyBookingSearchReq,2,4,6,8,12, 0xFFFF);
- packetdb_addpacket((0x0806), (2),clif->pPartyBookingDeleteReq,0, 0xFFFF);
- packetdb_addpacket((0x0807), (4), 0xFFFF);
- packetdb_addpacket((0x0808), (14),clif->pPartyBookingUpdateReq,2, 0xFFFF);
- packetdb_addpacket((0x0809), (50), 0xFFFF);
- packetdb_addpacket((0x080A), (18), 0xFFFF);
- packetdb_addpacket((0x080B), (6), 0xFFFF);
-
-
-
-
- packetdb_addpacket((0x0801), (-1),clif->pPurchaseReq2,2,4,8,12, 0xFFFF);
-
-
-
-
-
-
- packetdb_addpacket((0x080E), (14), 0xFFFF);
-# 1716 "../../../server-code/src/map/packets.h"
- packetdb_addpacket((0x080F), (20), 0xFFFF);
-
-
-
-
- packetdb_addpacket((0x0810), (3), 0xFFFF);
- packetdb_addpacket((0x0811), (-1),clif->pReqOpenBuyingStore,2,4,8,9,89, 0xFFFF);
-# 1734 "../../../server-code/src/map/packets.h"
- packetdb_addpacket((0x0813), (-1), 0xFFFF);
-
-
- packetdb_addpacket((0x0816), (6), 0xFFFF);
- packetdb_addpacket((0x0818), (-1), 0xFFFF);
-
-
-
-
- packetdb_addpacket((0x081d), (22), 0xFFFF);
- packetdb_addpacket((0x081e), (8), 0xFFFF);
-# 1760 "../../../server-code/src/map/packets.h"
- packetdb_addpacket((0x0820), (11), 0xFFFF);
-# 1773 "../../../server-code/src/map/packets.h"
- packetdb_addpacket((0x0812), (8), 0xFFFF);
- packetdb_addpacket((0x0814), (86), 0xFFFF);
- packetdb_addpacket((0x0815), (2),clif->pReqCloseBuyingStore,0, 0xFFFF);
- packetdb_addpacket((0x0817), (6),clif->pReqClickBuyingStore,2, 0xFFFF);
- packetdb_addpacket((0x0819), (-1),clif->pReqTradeBuyingStore,2,4,8,12, 0xFFFF);
- packetdb_addpacket((0x081a), (4), 0xFFFF);
- packetdb_addpacket((0x081b), (10), 0xFFFF);
- packetdb_addpacket((0x081c), (10), 0xFFFF);
- packetdb_addpacket((0x0824), (6), 0xFFFF);
-
-
-
-
-
-
- packetdb_addpacket((0x0835), (-1),clif->pSearchStoreInfo,2,4,5,9,13,14,15, 0xFFFF);
- packetdb_addpacket((0x0836), (-1), 0xFFFF);
- packetdb_addpacket((0x0837), (3), 0xFFFF);
-
-
-
-
-
- packetdb_addpacket((0x0838), (2),clif->pSearchStoreInfoNextPage,0, 0xFFFF);
- packetdb_addpacket((0x083A), (4), 0xFFFF);
- packetdb_addpacket((0x083B), (2),clif->pCloseSearchStoreInfo,0, 0xFFFF);
- packetdb_addpacket((0x083C), (12),clif->pSearchStoreInfoListItemClick,2,6,10, 0xFFFF);
- packetdb_addpacket((0x083D), (6), 0xFFFF);
-# 1815 "../../../server-code/src/map/packets.h"
- packetdb_addpacket((0x00AA), (9), 0xFFFF);
-
-
-
-
-
-
-
- packetdb_addpacket((0x083A), (5), 0xFFFF);
-# 1845 "../../../server-code/src/map/packets.h"
- packetdb_addpacket((0x0839), (66), 0xFFFF);
- packetdb_addpacket((0x0842), (6),clif->pGMRecall2,2, 0xFFFF);
- packetdb_addpacket((0x0843), (6),clif->pGMRemove2,2, 0xFFFF);
-
-
-
-
- packetdb_addpacket((0x0288), (-1),clif->pcashshop_buy,4,8, 0xFFFF);
- packetdb_addpacket((0x0436), (19),clif->pWantToConnection,2,6,10,14,18, 0xFFFF);
- packetdb_addpacket((0x035f), (5),clif->pWalkToXY,2, 0xFFFF);
- packetdb_addpacket((0x0360), (6),clif->pTickSend,2, 0xFFFF);
- packetdb_addpacket((0x0361), (5),clif->pChangeDir,2,4, 0xFFFF);
- packetdb_addpacket((0x0362), (6),clif->pTakeItem,2, 0xFFFF);
- packetdb_addpacket((0x0363), (6),clif->pDropItem,2,4, 0xFFFF);
- packetdb_addpacket((0x0364), (8),clif->pMoveToKafra,2,4, 0xFFFF);
- packetdb_addpacket((0x0365), (8),clif->pMoveFromKafra,2,4, 0xFFFF);
- packetdb_addpacket((0x0366), (10),clif->pUseSkillToPos,2,4,6,8, 0xFFFF);
- packetdb_addpacket((0x0367), (90),clif->pUseSkillToPosMoreInfo,2,4,6,8,10, 0xFFFF);
- packetdb_addpacket((0x0368), (6),clif->pGetCharNameRequest,2, 0xFFFF);
- packetdb_addpacket((0x0369), (6),clif->pSolveCharName,2, 0xFFFF);
- packetdb_addpacket((0x0856), (-1), 0xFFFF);
- packetdb_addpacket((0x0857), (-1), 0xFFFF);
- packetdb_addpacket((0x0858), (-1), 0xFFFF);
- packetdb_addpacket((0x0859), (-1), 0xFFFF);
-
-
-
-
- packetdb_addpacket((0x0844), (2),clif->pCashShopOpen,2, 0xFFFF);
- packetdb_addpacket((0x084a), (2),clif->pCashShopClose,2, 0xFFFF);
- packetdb_addpacket((0x0846), (4),clif->pCashShopReqTab,2, 0xFFFF);
- packetdb_addpacket((0x08c9), (2),clif->pCashShopSchedule,0, 0xFFFF);
- packetdb_addpacket((0x0848), (-1),clif->pCashShopBuy,2, 0xFFFF);
-
-
-
-
- packetdb_addpacket((0x0364), (5),clif->pWalkToXY,2, 0xFFFF);
- packetdb_addpacket((0x0817), (6),clif->pTickSend,2, 0xFFFF);
- packetdb_addpacket((0x0366), (5),clif->pChangeDir,2,4, 0xFFFF);
- packetdb_addpacket((0x0815), (6),clif->pTakeItem,2, 0xFFFF);
- packetdb_addpacket((0x0885), (6),clif->pDropItem,2,4, 0xFFFF);
- packetdb_addpacket((0x0893), (8),clif->pMoveToKafra,2,4, 0xFFFF);
- packetdb_addpacket((0x0897), (8),clif->pMoveFromKafra,2,4, 0xFFFF);
- packetdb_addpacket((0x0369), (10),clif->pUseSkillToPos,2,4,6,8, 0xFFFF);
- packetdb_addpacket((0x08ad), (90),clif->pUseSkillToPosMoreInfo,2,4,6,8,10, 0xFFFF);
- packetdb_addpacket((0x088a), (6),clif->pGetCharNameRequest,2, 0xFFFF);
- packetdb_addpacket((0x0838), (6),clif->pSolveCharName,2, 0xFFFF);
- packetdb_addpacket((0x0439), (8),clif->pUseItem,2,4, 0xFFFF);
- packetdb_addpacket((0x08d2), (10), 0xFFFF);
- packetdb_addpacket((0x08d7), (28),clif->pBGQueueRegister,2, 0xFFFF);
- packetdb_addpacket((0x090a), (26),clif->pBGQueueCheckState,2, 0xFFFF);
- packetdb_addpacket((0x08da), (26),clif->pBGQueueRevokeReq,2, 0xFFFF);
- packetdb_addpacket((0x08e0), (51),clif->pBGQueueBattleBeginAck,2, 0xFFFF);
-
-
-
-
- packetdb_addpacket((0x0436), (26),clif->pFriendsListAdd,2, 0xFFFF);
- packetdb_addpacket((0x0898), (5),clif->pHomMenu,4, 0xFFFF);
- packetdb_addpacket((0x0281), (36),clif->pStoragePassword,0, 0xFFFF);
- packetdb_addpacket((0x088d), (26),clif->pPartyInvite2,2, 0xFFFF);
- packetdb_addpacket((0x083c), (19),clif->pWantToConnection,2,6,10,14,18, 0xFFFF);
- packetdb_addpacket((0x08aa), (7),clif->pActionRequest,2,6, 0xFFFF);
- packetdb_addpacket((0x02c4), (10),clif->pUseSkillToId,2,4,6, 0xFFFF);
- packetdb_addpacket((0x0811), (-1),clif->pItemListWindowSelected,2,4,8, 0xFFFF);
- packetdb_addpacket((0x890), (8), 0xFFFF);
- packetdb_addpacket((0x08a5), (18),clif->pPartyBookingRegisterReq,2,4,6, 0xFFFF);
- packetdb_addpacket((0x0835), (-1),clif->pReqOpenBuyingStore,2,4,8,9,89, 0xFFFF);
- packetdb_addpacket((0x089b), (2),clif->pReqCloseBuyingStore,0, 0xFFFF);
- packetdb_addpacket((0x08a1), (6),clif->pReqClickBuyingStore,2, 0xFFFF);
- packetdb_addpacket((0x089e), (-1),clif->pReqTradeBuyingStore,2,4,8,12, 0xFFFF);
- packetdb_addpacket((0x08ab), (-1),clif->pSearchStoreInfo,2,4,5,9,13,14,15, 0xFFFF);
- packetdb_addpacket((0x088b), (2),clif->pSearchStoreInfoNextPage,0, 0xFFFF);
- packetdb_addpacket((0x08a2), (12),clif->pSearchStoreInfoListItemClick,2,6,10, 0xFFFF);
-
- packetdb_addpacket((0x0835), (19),clif->pWantToConnection,2,6,10,14,18, 0xFFFF);
- packetdb_addpacket((0x0892), (5),clif->pWalkToXY,2, 0xFFFF);
- packetdb_addpacket((0x0899), (6),clif->pTickSend,2, 0xFFFF);
-
-
-
-
-
- packetdb_addpacket((0x086A), (19),clif->pWantToConnection,2,6,10,14,18, 0xFFFF);
- packetdb_addpacket((0x0437), (5),clif->pWalkToXY,2, 0xFFFF);
- packetdb_addpacket((0x0887), (6),clif->pTickSend,2, 0xFFFF);
- packetdb_addpacket((0x0890), (5),clif->pChangeDir,2,4, 0xFFFF);
- packetdb_addpacket((0x0865), (6),clif->pTakeItem,2, 0xFFFF);
- packetdb_addpacket((0x02C4), (6),clif->pDropItem,2,4, 0xFFFF);
- packetdb_addpacket((0x093B), (8),clif->pMoveToKafra,2,4, 0xFFFF);
- packetdb_addpacket((0x0963), (8),clif->pMoveFromKafra,2,4, 0xFFFF);
- packetdb_addpacket((0x0438), (10),clif->pUseSkillToPos,2,4,6,8, 0xFFFF);
- packetdb_addpacket((0x0366), (90),clif->pUseSkillToPosMoreInfo,2,4,6,8,10, 0xFFFF);
- packetdb_addpacket((0x096A), (6),clif->pGetCharNameRequest,2, 0xFFFF);
- packetdb_addpacket((0x0368), (6),clif->pSolveCharName,2, 0xFFFF);
- packetdb_addpacket((0x0369), (26),clif->pFriendsListAdd,2, 0xFFFF);
- packetdb_addpacket((0x0863), (5),clif->pHomMenu,4, 0xFFFF);
- packetdb_addpacket((0x0861), (36),clif->pStoragePassword,0, 0xFFFF);
- packetdb_addpacket((0x0929), (26),clif->pPartyInvite2,2, 0xFFFF);
- packetdb_addpacket((0x0885), (7),clif->pActionRequest,2,6, 0xFFFF);
- packetdb_addpacket((0x0889), (10),clif->pUseSkillToId,2,4,6, 0xFFFF);
- packetdb_addpacket((0x0870), (-1),clif->pItemListWindowSelected,2,4,8, 0xFFFF);
- packetdb_addpacket((0x0365), (18),clif->pPartyBookingRegisterReq,2,4,6, 0xFFFF);
- packetdb_addpacket((0x0815), (-1),clif->pReqOpenBuyingStore,2,4,8,9,89, 0xFFFF);
- packetdb_addpacket((0x0817), (2),clif->pReqCloseBuyingStore,0, 0xFFFF);
- packetdb_addpacket((0x0360), (6),clif->pReqClickBuyingStore,2, 0xFFFF);
- packetdb_addpacket((0x0811), (-1),clif->pReqTradeBuyingStore,2,4,8,12, 0xFFFF);
- packetdb_addpacket((0x0884), (-1),clif->pSearchStoreInfo,2,4,5,9,13,14,15, 0xFFFF);
- packetdb_addpacket((0x0835), (2),clif->pSearchStoreInfoNextPage,0, 0xFFFF);
- packetdb_addpacket((0x0838), (12),clif->pSearchStoreInfoListItemClick,2,6,10, 0xFFFF);
- packetdb_addpacket((0x0439), (8),clif->pUseItem,2,4, 0xFFFF);
-
-
-
-
- packetdb_addpacket((0x01FD), (15),clif->pRepairItem,2, 0xFFFF);
- packetdb_addpacket((0x089C), (26),clif->pFriendsListAdd,2, 0xFFFF);
- packetdb_addpacket((0x0885), (5),clif->pHomMenu,2,4, 0xFFFF);
- packetdb_addpacket((0x0961), (36),clif->pStoragePassword,0, 0xFFFF);
- packetdb_addpacket((0x0288), (-1),clif->pcashshop_buy,4,8, 0xFFFF);
- packetdb_addpacket((0x091C), (26),clif->pPartyInvite2,2, 0xFFFF);
- packetdb_addpacket((0x094B), (19),clif->pWantToConnection,2,6,10,14,18, 0xFFFF);
- packetdb_addpacket((0x0369), (7),clif->pActionRequest,2,6, 0xFFFF);
- packetdb_addpacket((0x083C), (10),clif->pUseSkillToId,2,4,6, 0xFFFF);
- packetdb_addpacket((0x0439), (8),clif->pUseItem,2,4, 0xFFFF);
- packetdb_addpacket((0x0945), (-1),clif->pItemListWindowSelected,2,4,8, 0xFFFF);
- packetdb_addpacket((0x0815), (-1),clif->pReqOpenBuyingStore,2,4,8,9,89, 0xFFFF);
- packetdb_addpacket((0x0817), (2),clif->pReqCloseBuyingStore,0, 0xFFFF);
- packetdb_addpacket((0x0360), (6),clif->pReqClickBuyingStore,2, 0xFFFF);
- packetdb_addpacket((0x0811), (-1),clif->pReqTradeBuyingStore,2,4,8,12, 0xFFFF);
- packetdb_addpacket((0x0819), (-1),clif->pSearchStoreInfo,2,4,5,9,13,14,15, 0xFFFF);
- packetdb_addpacket((0x0835), (2),clif->pSearchStoreInfoNextPage,0, 0xFFFF);
- packetdb_addpacket((0x0838), (12),clif->pSearchStoreInfoListItemClick,2,6,10, 0xFFFF);
- packetdb_addpacket((0x0437), (5),clif->pWalkToXY,2, 0xFFFF);
- packetdb_addpacket((0x0886), (6),clif->pTickSend,2, 0xFFFF);
- packetdb_addpacket((0x0871), (5),clif->pChangeDir,2,4, 0xFFFF);
- packetdb_addpacket((0x0938), (6),clif->pTakeItem,2, 0xFFFF);
- packetdb_addpacket((0x0891), (6),clif->pDropItem,2,4, 0xFFFF);
- packetdb_addpacket((0x086C), (8),clif->pMoveToKafra,2,4, 0xFFFF);
- packetdb_addpacket((0x08A6), (8),clif->pMoveFromKafra,2,4, 0xFFFF);
- packetdb_addpacket((0x0438), (10),clif->pUseSkillToPos,2,4,6,8, 0xFFFF);
- packetdb_addpacket((0x0366), (90),clif->pUseSkillToPosMoreInfo,2,4,6,8,10, 0xFFFF);
- packetdb_addpacket((0x0889), (6),clif->pGetCharNameRequest,2, 0xFFFF);
- packetdb_addpacket((0x0884), (6),clif->pSolveCharName,2, 0xFFFF);
-
- packetdb_addpacket((0x091D), (18),clif->pPartyBookingRegisterReq,2,4,6, 0xFFFF);
-
-
-
- packetdb_addpacket((0x08E6), (4), 0xFFFF);
- packetdb_addpacket((0x08E7), (10),clif->pPartyRecruitSearchReq,2, 0xFFFF);
- packetdb_addpacket((0x08E8), (-1), 0xFFFF);
- packetdb_addpacket((0x08E9), (2),clif->pPartyRecruitDeleteReq,2, 0xFFFF);
- packetdb_addpacket((0x08EA), (4), 0xFFFF);
- packetdb_addpacket((0x08EB), (39),clif->pPartyRecruitUpdateReq,2, 0xFFFF);
- packetdb_addpacket((0x08EC), (73), 0xFFFF);
- packetdb_addpacket((0x08ED), (43), 0xFFFF);
- packetdb_addpacket((0x08EE), (6), 0xFFFF);
-
-
-
-
-
- packetdb_addpacket((0x08F2), (36), 0xFFFF);
- packetdb_addpacket((0x08F3), (-1), 0xFFFF);
- packetdb_addpacket((0x08F4), (6), 0xFFFF);
- packetdb_addpacket((0x08F5), (-1),clif->pDull,2,4, 0xFFFF);
- packetdb_addpacket((0x08F6), (22), 0xFFFF);
- packetdb_addpacket((0x08F7), (3), 0xFFFF);
- packetdb_addpacket((0x08F8), (7), 0xFFFF);
- packetdb_addpacket((0x08F9), (6), 0xFFFF);
-
-
-
- packetdb_addpacket((0x08FA), (6), 0xFFFF);
- packetdb_addpacket((0x08FB), (6),clif->pDull,2, 0xFFFF);
- packetdb_addpacket((0x0907), (5),clif->pMoveItem,2,4, 0xFFFF);
- packetdb_addpacket((0x0908), (5), 0xFFFF);
- packetdb_addpacket((0x08CF), (10), 0xFFFF);
- packetdb_addpacket((0x0977), (14), 0xFFFF);
-
-
-
-
- packetdb_addpacket((0x023B), (26),clif->pFriendsListAdd,2, 0xFFFF);
- packetdb_addpacket((0x0361), (5),clif->pHomMenu,2,4, 0xFFFF);
- packetdb_addpacket((0x08A8), (36),clif->pStoragePassword,0, 0xFFFF);
- packetdb_addpacket((0x0802), (26),clif->pPartyInvite2,2, 0xFFFF);
- packetdb_addpacket((0x022D), (19),clif->pWantToConnection,2,6,10,14,18, 0xFFFF);
- packetdb_addpacket((0x0281), (-1),clif->pItemListWindowSelected,2,4,8, 0xFFFF);
- packetdb_addpacket((0x035F), (6),clif->pTickSend,2, 0xFFFF);
- packetdb_addpacket((0x0202), (5),clif->pChangeDir,2,4, 0xFFFF);
- packetdb_addpacket((0x07E4), (6),clif->pTakeItem,2, 0xFFFF);
- packetdb_addpacket((0x0362), (6),clif->pDropItem,2,4, 0xFFFF);
- packetdb_addpacket((0x07EC), (8),clif->pMoveToKafra,2,4, 0xFFFF);
- packetdb_addpacket((0x0364), (8),clif->pMoveFromKafra,2,4, 0xFFFF);
- packetdb_addpacket((0x096A), (6),clif->pGetCharNameRequest,2, 0xFFFF);
- packetdb_addpacket((0x0368), (6),clif->pSolveCharName,2, 0xFFFF);
- packetdb_addpacket((0x08E5), (41),clif->pPartyRecruitRegisterReq,2,4, 0xFFFF);
- packetdb_addpacket((0x08d2), (10), 0xFFFF);
- packetdb_addpacket((0x0916), (26),clif->pGuildInvite2,2, 0xFFFF);
-
-
-
-
- packetdb_addpacket((0x0861), (18),clif->pPartyRecruitRegisterReq,2,4,6, 0xFFFF);
-
-
-
-
-
- packetdb_addpacket((0x0983), (29), 0xFFFF);
-
-
-
-
-
-
- packetdb_addpacket((0x0363), (19),clif->pWantToConnection,2,6,10,14,18, 0xFFFF);
- packetdb_addpacket((0x0364), (6),clif->pTickSend,2, 0xFFFF);
- packetdb_addpacket((0x085a), (7),clif->pActionRequest,2,6, 0xFFFF);
- packetdb_addpacket((0x0861), (8),clif->pMoveFromKafra,2,4, 0xFFFF);
- packetdb_addpacket((0x0862), (10),clif->pUseSkillToId,2,4,6, 0xFFFF);
- packetdb_addpacket((0x0863), (10),clif->pUseSkillToPos,2,4,6,8, 0xFFFF);
- packetdb_addpacket((0x0886), (6),clif->pSolveCharName,2, 0xFFFF);
- packetdb_addpacket((0x0889), (90),clif->pUseSkillToPosMoreInfo,2,4,6,8,10, 0xFFFF);
- packetdb_addpacket((0x089e), (6),clif->pDropItem,2,4, 0xFFFF);
- packetdb_addpacket((0x089f), (6),clif->pTakeItem,2, 0xFFFF);
- packetdb_addpacket((0x08a0), (8),clif->pMoveToKafra,2,4, 0xFFFF);
- packetdb_addpacket((0x094a), (6),clif->pGetCharNameRequest,2, 0xFFFF);
- packetdb_addpacket((0x0953), (5),clif->pWalkToXY,2, 0xFFFF);
- packetdb_addpacket((0x0960), (5),clif->pChangeDir,2,4, 0xFFFF);
-
-
-
-
- packetdb_addpacket((0x0886), (2),clif->pReqCloseBuyingStore,0, 0xFFFF);
-
-
-
-
- packetdb_addpacket((0x0879), (18),clif->pPartyBookingRegisterReq,2,4,6, 0xFFFF);
- packetdb_addpacket((0x023B), (26),clif->pFriendsListAdd,2, 0xFFFF);
- packetdb_addpacket((0x0361), (5),clif->pHomMenu,2,4, 0xFFFF);
- packetdb_addpacket((0x0819), (36),clif->pStoragePassword,0, 0xFFFF);
- packetdb_addpacket((0x0802), (26),clif->pPartyInvite2,2, 0xFFFF);
- packetdb_addpacket((0x022D), (19),clif->pWantToConnection,2,6,10,14,18, 0xFFFF);
- packetdb_addpacket((0x0369), (7),clif->pActionRequest,2,6, 0xFFFF);
- packetdb_addpacket((0x083C), (10),clif->pUseSkillToId,2,4,6, 0xFFFF);
- packetdb_addpacket((0x0439), (8),clif->pUseItem,2,4, 0xFFFF);
- packetdb_addpacket((0x0281), (-1),clif->pItemListWindowSelected,2,4,8, 0xFFFF);
- packetdb_addpacket((0x0815), (-1),clif->pReqOpenBuyingStore,2,4,8,9,89, 0xFFFF);
- packetdb_addpacket((0x0817), (2),clif->pReqCloseBuyingStore,0, 0xFFFF);
- packetdb_addpacket((0x0360), (6),clif->pReqClickBuyingStore,2, 0xFFFF);
- packetdb_addpacket((0x0940), (-1),clif->pReqTradeBuyingStore,2,4,8,12, 0xFFFF);
- packetdb_addpacket((0x0811), (-1),clif->pSearchStoreInfo,2,4,5,9,13,14,15, 0xFFFF);
- packetdb_addpacket((0x0835), (2),clif->pSearchStoreInfoNextPage,0, 0xFFFF);
- packetdb_addpacket((0x0838), (12),clif->pSearchStoreInfoListItemClick,2,6,10, 0xFFFF);
- packetdb_addpacket((0x0437), (5),clif->pWalkToXY,2, 0xFFFF);
- packetdb_addpacket((0x035F), (6),clif->pTickSend,2, 0xFFFF);
- packetdb_addpacket((0x0202), (5),clif->pChangeDir,2,4, 0xFFFF);
- packetdb_addpacket((0x07E4), (6),clif->pTakeItem,2, 0xFFFF);
- packetdb_addpacket((0x0362), (6),clif->pDropItem,2,4, 0xFFFF);
- packetdb_addpacket((0x07EC), (8),clif->pMoveToKafra,2,4, 0xFFFF);
- packetdb_addpacket((0x0364), (8),clif->pMoveFromKafra,2,4, 0xFFFF);
- packetdb_addpacket((0x0438), (10),clif->pUseSkillToPos,2,4,6,8, 0xFFFF);
- packetdb_addpacket((0x0366), (90),clif->pUseSkillToPosMoreInfo,2,4,6,8,10, 0xFFFF);
- packetdb_addpacket((0x096A), (6),clif->pGetCharNameRequest,2, 0xFFFF);
- packetdb_addpacket((0x0368), (6),clif->pSolveCharName,2, 0xFFFF);
-
-
-
-
-
- packetdb_addpacket((0x088E), (7),clif->pActionRequest,2,6, 0xFFFF);
- packetdb_addpacket((0x089B), (10),clif->pUseSkillToId,2,4,6, 0xFFFF);
- packetdb_addpacket((0x0881), (5),clif->pWalkToXY,2, 0xFFFF);
- packetdb_addpacket((0x0363), (6),clif->pTickSend,2, 0xFFFF);
- packetdb_addpacket((0x0897), (5),clif->pChangeDir,2,4, 0xFFFF);
- packetdb_addpacket((0x0933), (6),clif->pTakeItem,2, 0xFFFF);
- packetdb_addpacket((0x0438), (6),clif->pDropItem,2,4, 0xFFFF);
- packetdb_addpacket((0x08AC), (8),clif->pMoveToKafra,2,4, 0xFFFF);
- packetdb_addpacket((0x0874), (8),clif->pMoveFromKafra,2,4, 0xFFFF);
- packetdb_addpacket((0x0959), (10),clif->pUseSkillToPos,2,4,6,8, 0xFFFF);
- packetdb_addpacket((0x085A), (90),clif->pUseSkillToPosMoreInfo,2,4,6,8,10, 0xFFFF);
- packetdb_addpacket((0x0898), (6),clif->pGetCharNameRequest,2, 0xFFFF);
- packetdb_addpacket((0x094C), (6),clif->pSolveCharName,2, 0xFFFF);
- packetdb_addpacket((0x0365), (12),clif->pSearchStoreInfoListItemClick,2,6,10, 0xFFFF);
- packetdb_addpacket((0x092E), (2),clif->pSearchStoreInfoNextPage,0, 0xFFFF);
- packetdb_addpacket((0x094E), (-1),clif->pSearchStoreInfo,2,4,5,9,13,14,15, 0xFFFF);
- packetdb_addpacket((0x0922), (-1),clif->pReqTradeBuyingStore,2,4,8,12, 0xFFFF);
- packetdb_addpacket((0x035F), (6),clif->pReqClickBuyingStore,2, 0xFFFF);
- packetdb_addpacket((0x0886), (2),clif->pReqCloseBuyingStore,0, 0xFFFF);
- packetdb_addpacket((0x0938), (-1),clif->pReqOpenBuyingStore,2,4,8,9,89, 0xFFFF);
-
-
-
- packetdb_addpacket((0x085D), (18),clif->pPartyBookingRegisterReq,2,4, 0xFFFF);
-
-
- packetdb_addpacket((0x0868), (-1),clif->pItemListWindowSelected,2,4,8, 0xFFFF);
- packetdb_addpacket((0x0888), (19),clif->pWantToConnection,2,6,10,14,18, 0xFFFF);
- packetdb_addpacket((0x086D), (26),clif->pPartyInvite2,2, 0xFFFF);
-
- packetdb_addpacket((0x086F), (26),clif->pFriendsListAdd,2, 0xFFFF);
- packetdb_addpacket((0x093F), (5),clif->pHomMenu,2,4, 0xFFFF);
- packetdb_addpacket((0x0947), (36),clif->pStoragePassword,0, 0xFFFF);
-
-
-
- packetdb_addpacket((0x0998), (8),clif->pEquipItem,2,4, 0xFFFF);
- packetdb_addpacket((0x0447), (2), 0xFFFF);
- packetdb_addpacket((0x099f), (24), 0xFFFF);
-
-
-
-
-
-
- packetdb_addpacket((0x0369), (7),clif->pActionRequest,2,6, 0xFFFF);
- packetdb_addpacket((0x083C), (10),clif->pUseSkillToId,2,4,6, 0xFFFF);
- packetdb_addpacket((0x0437), (5),clif->pWalkToXY,2, 0xFFFF);
- packetdb_addpacket((0x035F), (6),clif->pTickSend,2, 0xFFFF);
- packetdb_addpacket((0x0362), (5),clif->pChangeDir,2,4, 0xFFFF);
- packetdb_addpacket((0x08A1), (6),clif->pTakeItem,2, 0xFFFF);
- packetdb_addpacket((0x0944), (6),clif->pDropItem,2,4, 0xFFFF);
- packetdb_addpacket((0x0887), (8),clif->pMoveToKafra,2,4, 0xFFFF);
- packetdb_addpacket((0x08AC), (8),clif->pMoveFromKafra,2,4, 0xFFFF);
- packetdb_addpacket((0x0438), (10),clif->pUseSkillToPos,2,4,6,8, 0xFFFF);
- packetdb_addpacket((0x0366), (90),clif->pUseSkillToPosMoreInfo,2,4,6,8,10, 0xFFFF);
- packetdb_addpacket((0x096A), (6),clif->pGetCharNameRequest,2, 0xFFFF);
- packetdb_addpacket((0x0368), (6),clif->pSolveCharName,2, 0xFFFF);
- packetdb_addpacket((0x0838), (12),clif->pSearchStoreInfoListItemClick,2,6,10, 0xFFFF);
- packetdb_addpacket((0x0835), (2),clif->pSearchStoreInfoNextPage,0, 0xFFFF);
- packetdb_addpacket((0x0819), (-1),clif->pSearchStoreInfo,2,4,5,9,13,14,15, 0xFFFF);
- packetdb_addpacket((0x0811), (-1),clif->pReqTradeBuyingStore,2,4,8,12, 0xFFFF);
- packetdb_addpacket((0x0360), (6),clif->pReqClickBuyingStore,2, 0xFFFF);
- packetdb_addpacket((0x0817), (2),clif->pReqCloseBuyingStore,0, 0xFFFF);
- packetdb_addpacket((0x0815), (-1),clif->pReqOpenBuyingStore,2,4,8,9,89, 0xFFFF);
-
-
-
- packetdb_addpacket((0x092D), (18),clif->pPartyBookingRegisterReq,2,4, 0xFFFF);
-
-
- packetdb_addpacket((0x0963), (-1),clif->pItemListWindowSelected,2,4,8, 0xFFFF);
- packetdb_addpacket((0x0943), (19),clif->pWantToConnection,2,6,10,14,18, 0xFFFF);
- packetdb_addpacket((0x0947), (26),clif->pPartyInvite2,2, 0xFFFF);
-
- packetdb_addpacket((0x0962), (26),clif->pFriendsListAdd,2, 0xFFFF);
- packetdb_addpacket((0x0931), (5),clif->pHomMenu,2,4, 0xFFFF);
- packetdb_addpacket((0x093E), (36),clif->pStoragePassword,0, 0xFFFF);
-
-
-
-
-
-
- packetdb_addpacket((0x08A2), (7),clif->pActionRequest,2,6, 0xFFFF);
- packetdb_addpacket((0x095C), (10),clif->pUseSkillToId,2,4,6, 0xFFFF);
- packetdb_addpacket((0x0360), (5),clif->pWalkToXY,2, 0xFFFF);
- packetdb_addpacket((0x07EC), (6),clif->pTickSend,2, 0xFFFF);
- packetdb_addpacket((0x0925), (5),clif->pChangeDir,2,4, 0xFFFF);
- packetdb_addpacket((0x095E), (6),clif->pTakeItem,2, 0xFFFF);
- packetdb_addpacket((0x089C), (6),clif->pDropItem,2,4, 0xFFFF);
- packetdb_addpacket((0x08A3), (8),clif->pMoveToKafra,2,4, 0xFFFF);
- packetdb_addpacket((0x087E), (8),clif->pMoveFromKafra,2,4, 0xFFFF);
- packetdb_addpacket((0x0811), (10),clif->pUseSkillToPos,2,4,6,8, 0xFFFF);
- packetdb_addpacket((0x0964), (90),clif->pUseSkillToPosMoreInfo,2,4,6,8,10, 0xFFFF);
- packetdb_addpacket((0x08A6), (6),clif->pGetCharNameRequest,2, 0xFFFF);
- packetdb_addpacket((0x0369), (6),clif->pSolveCharName,2, 0xFFFF);
- packetdb_addpacket((0x093E), (12),clif->pSearchStoreInfoListItemClick,2,6,10, 0xFFFF);
- packetdb_addpacket((0x08AA), (2),clif->pSearchStoreInfoNextPage,0, 0xFFFF);
- packetdb_addpacket((0x095B), (-1),clif->pSearchStoreInfo,2,4,5,9,13,14,15, 0xFFFF);
- packetdb_addpacket((0x0952), (-1),clif->pReqTradeBuyingStore,2,4,8,12, 0xFFFF);
- packetdb_addpacket((0x0368), (6),clif->pReqClickBuyingStore,2, 0xFFFF);
- packetdb_addpacket((0x086E), (2),clif->pReqCloseBuyingStore,0, 0xFFFF);
- packetdb_addpacket((0x0874), (-1),clif->pReqOpenBuyingStore,2,4,8,9,89, 0xFFFF);
-
-
-
- packetdb_addpacket((0x089B), (18),clif->pPartyBookingRegisterReq,2,4, 0xFFFF);
-
-
- packetdb_addpacket((0x086A), (-1),clif->pItemListWindowSelected,2,4,8, 0xFFFF);
- packetdb_addpacket((0x08A9), (19),clif->pWantToConnection,2,6,10,14,18, 0xFFFF);
- packetdb_addpacket((0x0950), (26),clif->pPartyInvite2,2, 0xFFFF);
-
- packetdb_addpacket((0x0362), (26),clif->pFriendsListAdd,2, 0xFFFF);
- packetdb_addpacket((0x0926), (5),clif->pHomMenu,2,4, 0xFFFF);
- packetdb_addpacket((0x088E), (36),clif->pStoragePassword,0, 0xFFFF);
-
-
-
-
-
- packetdb_addpacket((0x0890), (7),clif->pActionRequest,2,6, 0xFFFF);
- packetdb_addpacket((0x0438), (10),clif->pUseSkillToId,2,4,6, 0xFFFF);
- packetdb_addpacket((0x0876), (5),clif->pWalkToXY,2, 0xFFFF);
- packetdb_addpacket((0x0897), (6),clif->pTickSend,2, 0xFFFF);
- packetdb_addpacket((0x0951), (5),clif->pChangeDir,2,4, 0xFFFF);
- packetdb_addpacket((0x0895), (6),clif->pTakeItem,2, 0xFFFF);
- packetdb_addpacket((0x08A7), (6),clif->pDropItem,2,4, 0xFFFF);
- packetdb_addpacket((0x0938), (8),clif->pMoveToKafra,2,4, 0xFFFF);
- packetdb_addpacket((0x0957), (8),clif->pMoveFromKafra,2,4, 0xFFFF);
- packetdb_addpacket((0x0917), (10),clif->pUseSkillToPos,2,4,6,8, 0xFFFF);
- packetdb_addpacket((0x085E), (90),clif->pUseSkillToPosMoreInfo,2,4,6,8,10, 0xFFFF);
- packetdb_addpacket((0x0863), (6),clif->pGetCharNameRequest,2, 0xFFFF);
- packetdb_addpacket((0x0937), (6),clif->pSolveCharName,2, 0xFFFF);
- packetdb_addpacket((0x085A), (12),clif->pSearchStoreInfoListItemClick,2,6,10, 0xFFFF);
- packetdb_addpacket((0x0941), (2),clif->pSearchStoreInfoNextPage,0, 0xFFFF);
- packetdb_addpacket((0x0918), (-1),clif->pSearchStoreInfo,2,4,5,9,13,14,15, 0xFFFF);
- packetdb_addpacket((0x0936), (-1),clif->pReqTradeBuyingStore,2,4,8,12, 0xFFFF);
- packetdb_addpacket((0x0892), (6),clif->pReqClickBuyingStore,2, 0xFFFF);
- packetdb_addpacket((0x0964), (2),clif->pReqCloseBuyingStore,0, 0xFFFF);
- packetdb_addpacket((0x0869), (-1),clif->pReqOpenBuyingStore,2,4,8,9,89, 0xFFFF);
-
-
-
- packetdb_addpacket((0x0874), (18),clif->pPartyBookingRegisterReq,2,4, 0xFFFF);
-
-
- packetdb_addpacket((0x0958), (-1),clif->pItemListWindowSelected,2,4,8, 0xFFFF);
- packetdb_addpacket((0x0919), (19),clif->pWantToConnection,2,6,10,14,18, 0xFFFF);
- packetdb_addpacket((0x08A8), (26),clif->pPartyInvite2,2, 0xFFFF);
-
- packetdb_addpacket((0x0877), (26),clif->pFriendsListAdd,2, 0xFFFF);
- packetdb_addpacket((0x023B), (5),clif->pHomMenu,2,4, 0xFFFF);
- packetdb_addpacket((0x0956), (36),clif->pStoragePassword,0, 0xFFFF);
-
-
-
-
- packetdb_addpacket((0x0369), (7),clif->pActionRequest,2,6, 0xFFFF);
- packetdb_addpacket((0x083C), (10),clif->pUseSkillToId,2,4,6, 0xFFFF);
- packetdb_addpacket((0x0437), (5),clif->pWalkToXY,2, 0xFFFF);
- packetdb_addpacket((0x035F), (6),clif->pTickSend,2, 0xFFFF);
- packetdb_addpacket((0x0202), (5),clif->pChangeDir,2,4, 0xFFFF);
- packetdb_addpacket((0x07E4), (6),clif->pTakeItem,2, 0xFFFF);
- packetdb_addpacket((0x0362), (6),clif->pDropItem,2,4, 0xFFFF);
- packetdb_addpacket((0x07EC), (8),clif->pMoveToKafra,2,4, 0xFFFF);
- packetdb_addpacket((0x0364), (8),clif->pMoveFromKafra,2,4, 0xFFFF);
- packetdb_addpacket((0x0438), (10),clif->pUseSkillToPos,2,4,6,8, 0xFFFF);
- packetdb_addpacket((0x0366), (90),clif->pUseSkillToPosMoreInfo,2,4,6,8,10, 0xFFFF);
- packetdb_addpacket((0x096A), (6),clif->pGetCharNameRequest,2, 0xFFFF);
- packetdb_addpacket((0x0368), (6),clif->pSolveCharName,2, 0xFFFF);
- packetdb_addpacket((0x0838), (12),clif->pSearchStoreInfoListItemClick,2,6,10, 0xFFFF);
- packetdb_addpacket((0x0835), (2),clif->pSearchStoreInfoNextPage,0, 0xFFFF);
- packetdb_addpacket((0x0819), (-1),clif->pSearchStoreInfo,2,4,5,9,13,14,15, 0xFFFF);
- packetdb_addpacket((0x0811), (-1),clif->pReqTradeBuyingStore,2,4,8,12, 0xFFFF);
- packetdb_addpacket((0x0360), (6),clif->pReqClickBuyingStore,2, 0xFFFF);
- packetdb_addpacket((0x0817), (2),clif->pReqCloseBuyingStore,0, 0xFFFF);
- packetdb_addpacket((0x0815), (-1),clif->pReqOpenBuyingStore,2,4,8,9,89, 0xFFFF);
-
-
-
- packetdb_addpacket((0x0365), (18),clif->pPartyBookingRegisterReq,2,4, 0xFFFF);
-
-
- packetdb_addpacket((0x0281), (-1),clif->pItemListWindowSelected,2,4,8, 0xFFFF);
- packetdb_addpacket((0x022D), (19),clif->pWantToConnection,2,6,10,14,18, 0xFFFF);
- packetdb_addpacket((0x0802), (26),clif->pPartyInvite2,2, 0xFFFF);
-
- packetdb_addpacket((0x023B), (26),clif->pFriendsListAdd,2, 0xFFFF);
- packetdb_addpacket((0x0361), (5),clif->pHomMenu,2,4, 0xFFFF);
- packetdb_addpacket((0x0883), (36),clif->pStoragePassword,0, 0xFFFF);
- packetdb_addpacket((0x097C), (4),clif->pRanklist, 0xFFFF);
-
-
-
-
- packetdb_addpacket((0x087E), (5),clif->pChangeDir,2,4, 0xFFFF);
- packetdb_addpacket((0x0919), (19),clif->pWantToConnection,2,6,10,14,18, 0xFFFF);
- packetdb_addpacket((0x0940), (26),clif->pFriendsListAdd,2, 0xFFFF);
- packetdb_addpacket((0x093A), (5),clif->pHomMenu,2,4, 0xFFFF);
- packetdb_addpacket((0x0964), (36),clif->pStoragePassword,0, 0xFFFF);
-
-
-
-
- packetdb_addpacket((0x0889), (7),clif->pActionRequest,2,6, 0xFFFF);
- packetdb_addpacket((0x0951), (10),clif->pUseSkillToId,2,4,6, 0xFFFF);
- packetdb_addpacket((0x088E), (5),clif->pWalkToXY,2, 0xFFFF);
- packetdb_addpacket((0x0930), (6),clif->pTickSend,2, 0xFFFF);
- packetdb_addpacket((0x08A6), (5),clif->pChangeDir,2,4, 0xFFFF);
- packetdb_addpacket((0x0962), (6),clif->pTakeItem,2, 0xFFFF);
- packetdb_addpacket((0x0917), (6),clif->pDropItem,2,4, 0xFFFF);
- packetdb_addpacket((0x0885), (8),clif->pMoveToKafra,2,4, 0xFFFF);
- packetdb_addpacket((0x0936), (8),clif->pMoveFromKafra,2,4, 0xFFFF);
- packetdb_addpacket((0x096A), (10),clif->pUseSkillToPos,2,4,6,8, 0xFFFF);
- packetdb_addpacket((0x094F), (90),clif->pUseSkillToPosMoreInfo,2,4,6,8,10, 0xFFFF);
- packetdb_addpacket((0x0944), (6),clif->pGetCharNameRequest,2, 0xFFFF);
- packetdb_addpacket((0x0945), (6),clif->pSolveCharName,2, 0xFFFF);
- packetdb_addpacket((0x0890), (12),clif->pSearchStoreInfoListItemClick,2,6,10, 0xFFFF);
- packetdb_addpacket((0x0363), (2),clif->pSearchStoreInfoNextPage,0, 0xFFFF);
- packetdb_addpacket((0x0281), (-1),clif->pSearchStoreInfo,2,4,5,9,13,14,15, 0xFFFF);
- packetdb_addpacket((0x0891), (-1),clif->pReqTradeBuyingStore,2,4,8,12, 0xFFFF);
- packetdb_addpacket((0x0862), (6),clif->pReqClickBuyingStore,2, 0xFFFF);
- packetdb_addpacket((0x085A), (2),clif->pReqCloseBuyingStore,0, 0xFFFF);
- packetdb_addpacket((0x0932), (-1),clif->pReqOpenBuyingStore,2,4,8,9,89, 0xFFFF);
-
-
-
- packetdb_addpacket((0x08A7), (18),clif->pPartyBookingRegisterReq,2,4, 0xFFFF);
-
-
- packetdb_addpacket((0x0942), (-1),clif->pItemListWindowSelected,2,4,8, 0xFFFF);
- packetdb_addpacket((0x095B), (19),clif->pWantToConnection,2,6,10,14,18, 0xFFFF);
- packetdb_addpacket((0x0887), (26),clif->pPartyInvite2,2, 0xFFFF);
-
- packetdb_addpacket((0x0953), (26),clif->pFriendsListAdd,2, 0xFFFF);
- packetdb_addpacket((0x02C4), (5),clif->pHomMenu,2,4, 0xFFFF);
- packetdb_addpacket((0x0864), (36),clif->pStoragePassword,0, 0xFFFF);
-
-
-
-
- packetdb_addpacket((0x0369), (7),clif->pActionRequest,2,6, 0xFFFF);
- packetdb_addpacket((0x083C), (10),clif->pUseSkillToId,2,4,6, 0xFFFF);
- packetdb_addpacket((0x0437), (5),clif->pWalkToXY,2, 0xFFFF);
- packetdb_addpacket((0x035F), (6),clif->pTickSend,2, 0xFFFF);
- packetdb_addpacket((0x094D), (5),clif->pChangeDir,2,4, 0xFFFF);
- packetdb_addpacket((0x088B), (6),clif->pTakeItem,2, 0xFFFF);
- packetdb_addpacket((0x0952), (6),clif->pDropItem,2,4, 0xFFFF);
- packetdb_addpacket((0x0921), (8),clif->pMoveToKafra,2,4, 0xFFFF);
- packetdb_addpacket((0x0817), (8),clif->pMoveFromKafra,2,4, 0xFFFF);
- packetdb_addpacket((0x0438), (10),clif->pUseSkillToPos,2,4,6,8, 0xFFFF);
- packetdb_addpacket((0x0366), (90),clif->pUseSkillToPosMoreInfo,2,4,6,8,10, 0xFFFF);
- packetdb_addpacket((0x096A), (6),clif->pGetCharNameRequest,2, 0xFFFF);
- packetdb_addpacket((0x0368), (6),clif->pSolveCharName,2, 0xFFFF);
- packetdb_addpacket((0x0838), (12),clif->pSearchStoreInfoListItemClick,2,6,10, 0xFFFF);
- packetdb_addpacket((0x0835), (2),clif->pSearchStoreInfoNextPage,0, 0xFFFF);
- packetdb_addpacket((0x0819), (-1),clif->pSearchStoreInfo,2,4,5,9,13,14,15, 0xFFFF);
- packetdb_addpacket((0x0811), (-1),clif->pReqTradeBuyingStore,2,4,8,12, 0xFFFF);
- packetdb_addpacket((0x0360), (6),clif->pReqClickBuyingStore,2, 0xFFFF);
- packetdb_addpacket((0x0365), (2),clif->pReqCloseBuyingStore,0, 0xFFFF);
- packetdb_addpacket((0x0815), (-1),clif->pReqOpenBuyingStore,2,4,8,9,89, 0xFFFF);
-
-
-
- packetdb_addpacket((0x0894), (18),clif->pPartyBookingRegisterReq,2,4, 0xFFFF);
-
-
- packetdb_addpacket((0x08A5), (-1),clif->pItemListWindowSelected,2,4,8, 0xFFFF);
- packetdb_addpacket((0x088C), (19),clif->pWantToConnection,2,6,10,14,18, 0xFFFF);
- packetdb_addpacket((0x0895), (26),clif->pPartyInvite2,2, 0xFFFF);
-
- packetdb_addpacket((0x08AB), (26),clif->pFriendsListAdd,2, 0xFFFF);
- packetdb_addpacket((0x0960), (5),clif->pHomMenu,2,4, 0xFFFF);
- packetdb_addpacket((0x0930), (36),clif->pStoragePassword,0, 0xFFFF);
-
-
-
-
- packetdb_addpacket((0x0930), (5),clif->pChangeDir,2,4, 0xFFFF);
- packetdb_addpacket((0x07E4), (6),clif->pTakeItem,2, 0xFFFF);
- packetdb_addpacket((0x0362), (6),clif->pDropItem,2,4, 0xFFFF);
- packetdb_addpacket((0x07EC), (8),clif->pMoveToKafra,2,4, 0xFFFF);
- packetdb_addpacket((0x0364), (8),clif->pMoveFromKafra,2,4, 0xFFFF);
- packetdb_addpacket((0x0202), (6),clif->pReqClickBuyingStore,2, 0xFFFF);
- packetdb_addpacket((0x0817), (2),clif->pReqCloseBuyingStore,0, 0xFFFF);
- packetdb_addpacket((0x0815), (-1),clif->pReqOpenBuyingStore,2,4,8,9,89, 0xFFFF);
-
-
-
- packetdb_addpacket((0x0365), (18),clif->pPartyBookingRegisterReq,2,4, 0xFFFF);
-
-
- packetdb_addpacket((0x0281), (-1),clif->pItemListWindowSelected,2,4,8, 0xFFFF);
- packetdb_addpacket((0x022D), (19),clif->pWantToConnection,2,6,10,14,18, 0xFFFF);
- packetdb_addpacket((0x0802), (26),clif->pPartyInvite2,2, 0xFFFF);
-
- packetdb_addpacket((0x0360), (26),clif->pFriendsListAdd,2, 0xFFFF);
- packetdb_addpacket((0x094A), (5),clif->pHomMenu,2,4, 0xFFFF);
- packetdb_addpacket((0x0873), (36),clif->pStoragePassword,0, 0xFFFF);
-
-
-
-
- packetdb_addpacket((0x09A6), (12), 0xFFFF);
- packetdb_addpacket((0x09A7), (10),clif->pBankDeposit,2,4,6, 0xFFFF);
- packetdb_addpacket((0x09A8), (16), 0xFFFF);
- packetdb_addpacket((0x09A9), (10),clif->pBankWithdraw,2,4,6, 0xFFFF);
- packetdb_addpacket((0x09AA), (16), 0xFFFF);
- packetdb_addpacket((0x09AB), (6),clif->pBankCheck,2,4, 0xFFFF);
-
- packetdb_addpacket((0x09B6), (6),clif->pBankOpen,2,4, 0xFFFF);
- packetdb_addpacket((0x09B7), (4), 0xFFFF);
- packetdb_addpacket((0x09B8), (6),clif->pBankClose,2,4, 0xFFFF);
- packetdb_addpacket((0x09B9), (4), 0xFFFF);
-
-
-
-
- packetdb_addpacket((0x0369), (7),clif->pActionRequest,2,6, 0xFFFF);
- packetdb_addpacket((0x083C), (10),clif->pUseSkillToId,2,4,6, 0xFFFF);
- packetdb_addpacket((0x0437), (5),clif->pWalkToXY,2, 0xFFFF);
- packetdb_addpacket((0x035F), (6),clif->pTickSend,2, 0xFFFF);
- packetdb_addpacket((0x0202), (5),clif->pChangeDir,2,4, 0xFFFF);
- packetdb_addpacket((0x07E4), (6),clif->pTakeItem,2, 0xFFFF);
- packetdb_addpacket((0x0362), (6),clif->pDropItem,2,4, 0xFFFF);
- packetdb_addpacket((0x07EC), (8),clif->pMoveToKafra,2,4, 0xFFFF);
- packetdb_addpacket((0x0364), (8),clif->pMoveFromKafra,2,4, 0xFFFF);
- packetdb_addpacket((0x0438), (10),clif->pUseSkillToPos,2,4,6,8, 0xFFFF);
- packetdb_addpacket((0x0366), (90),clif->pUseSkillToPosMoreInfo,2,4,6,8,10, 0xFFFF);
- packetdb_addpacket((0x096A), (6),clif->pGetCharNameRequest,2, 0xFFFF);
- packetdb_addpacket((0x0368), (6),clif->pSolveCharName,2, 0xFFFF);
- packetdb_addpacket((0x0838), (12),clif->pSearchStoreInfoListItemClick,2,6,10, 0xFFFF);
- packetdb_addpacket((0x0835), (2),clif->pSearchStoreInfoNextPage,0, 0xFFFF);
- packetdb_addpacket((0x0819), (-1),clif->pSearchStoreInfo,2,4,5,9,13,14,15, 0xFFFF);
- packetdb_addpacket((0x0811), (-1),clif->pReqTradeBuyingStore,2,4,8,12, 0xFFFF);
- packetdb_addpacket((0x0360), (6),clif->pReqClickBuyingStore,2, 0xFFFF);
- packetdb_addpacket((0x0817), (2),clif->pReqCloseBuyingStore,0, 0xFFFF);
- packetdb_addpacket((0x0815), (-1),clif->pReqOpenBuyingStore,2,4,8,9,89, 0xFFFF);
-
-
-
- packetdb_addpacket((0x0365), (18),clif->pPartyBookingRegisterReq,2,4, 0xFFFF);
-
-
- packetdb_addpacket((0x0281), (-1),clif->pItemListWindowSelected,2,4,8, 0xFFFF);
- packetdb_addpacket((0x022D), (19),clif->pWantToConnection,2,6,10,14,18, 0xFFFF);
- packetdb_addpacket((0x0802), (26),clif->pPartyInvite2,2, 0xFFFF);
-
- packetdb_addpacket((0x023B), (26),clif->pFriendsListAdd,2, 0xFFFF);
- packetdb_addpacket((0x0361), (5),clif->pHomMenu,2,4, 0xFFFF);
- packetdb_addpacket((0x0887), (36),clif->pStoragePassword,0, 0xFFFF);
-
-
-
-
- packetdb_addpacket((0x0874), (7),clif->pActionRequest,2,6, 0xFFFF);
- packetdb_addpacket((0x0947), (10),clif->pUseSkillToId,2,4,6, 0xFFFF);
- packetdb_addpacket((0x093A), (5),clif->pWalkToXY,2, 0xFFFF);
- packetdb_addpacket((0x088A), (6),clif->pTickSend,2, 0xFFFF);
- packetdb_addpacket((0x088C), (5),clif->pChangeDir,2,4, 0xFFFF);
- packetdb_addpacket((0x0926), (6),clif->pTakeItem,2, 0xFFFF);
- packetdb_addpacket((0x095F), (6),clif->pDropItem,2,4, 0xFFFF);
- packetdb_addpacket((0x0202), (8),clif->pMoveToKafra,2,4, 0xFFFF);
- packetdb_addpacket((0x0873), (8),clif->pMoveFromKafra,2,4, 0xFFFF);
- packetdb_addpacket((0x0887), (10),clif->pUseSkillToPos,2,4,6,8, 0xFFFF);
- packetdb_addpacket((0x0962), (90),clif->pUseSkillToPosMoreInfo,2,4,6,8,10, 0xFFFF);
- packetdb_addpacket((0x0937), (6),clif->pGetCharNameRequest,2, 0xFFFF);
- packetdb_addpacket((0x0923), (6),clif->pSolveCharName,2, 0xFFFF);
- packetdb_addpacket((0x0868), (12),clif->pSearchStoreInfoListItemClick,2,6,10, 0xFFFF);
- packetdb_addpacket((0x0941), (2),clif->pSearchStoreInfoNextPage,0, 0xFFFF);
- packetdb_addpacket((0x0889), (-1),clif->pSearchStoreInfo,2,4,5,9,13,14,15, 0xFFFF);
- packetdb_addpacket((0x0835), (-1),clif->pReqTradeBuyingStore,2,4,8,12, 0xFFFF);
- packetdb_addpacket((0x0895), (6),clif->pReqClickBuyingStore,2, 0xFFFF);
- packetdb_addpacket((0x094E), (2),clif->pReqCloseBuyingStore,0, 0xFFFF);
- packetdb_addpacket((0x0936), (-1),clif->pReqOpenBuyingStore,2,4,8,9,89, 0xFFFF);
-
-
-
- packetdb_addpacket((0x0959), (18),clif->pPartyBookingRegisterReq,2,4, 0xFFFF);
-
-
- packetdb_addpacket((0x08A4), (-1),clif->pItemListWindowSelected,2,4,8, 0xFFFF);
- packetdb_addpacket((0x0368), (19),clif->pWantToConnection,2,6,10,14,18, 0xFFFF);
- packetdb_addpacket((0x0927), (26),clif->pPartyInvite2,2, 0xFFFF);
-
- packetdb_addpacket((0x0281), (26),clif->pFriendsListAdd,2, 0xFFFF);
- packetdb_addpacket((0x0958), (5),clif->pHomMenu,2,4, 0xFFFF);
- packetdb_addpacket((0x0885), (36),clif->pStoragePassword,0, 0xFFFF);
-
-
-
-
- packetdb_addpacket((0x0369), (7),clif->pActionRequest,2,6, 0xFFFF);
- packetdb_addpacket((0x083C), (10),clif->pUseSkillToId,2,4,6, 0xFFFF);
- packetdb_addpacket((0x0437), (5),clif->pWalkToXY,2, 0xFFFF);
- packetdb_addpacket((0x035F), (6),clif->pTickSend,2, 0xFFFF);
- packetdb_addpacket((0x0947), (5),clif->pChangeDir,2,4, 0xFFFF);
- packetdb_addpacket((0x07E4), (6),clif->pTakeItem,2, 0xFFFF);
- packetdb_addpacket((0x0362), (6),clif->pDropItem,2,4, 0xFFFF);
- packetdb_addpacket((0x07EC), (8),clif->pMoveToKafra,2,4, 0xFFFF);
- packetdb_addpacket((0x0364), (8),clif->pMoveFromKafra,2,4, 0xFFFF);
- packetdb_addpacket((0x0438), (10),clif->pUseSkillToPos,2,4,6,8, 0xFFFF);
- packetdb_addpacket((0x0366), (90),clif->pUseSkillToPosMoreInfo,2,4,6,8,10, 0xFFFF);
- packetdb_addpacket((0x096A), (6),clif->pGetCharNameRequest,2, 0xFFFF);
- packetdb_addpacket((0x0368), (6),clif->pSolveCharName,2, 0xFFFF);
- packetdb_addpacket((0x0838), (12),clif->pSearchStoreInfoListItemClick,2,6,10, 0xFFFF);
- packetdb_addpacket((0x0835), (2),clif->pSearchStoreInfoNextPage,0, 0xFFFF);
- packetdb_addpacket((0x0819), (-1),clif->pSearchStoreInfo,2,4,5,9,13,14,15, 0xFFFF);
- packetdb_addpacket((0x022D), (-1),clif->pReqTradeBuyingStore,2,4,8,12, 0xFFFF);
- packetdb_addpacket((0x0360), (6),clif->pReqClickBuyingStore,2, 0xFFFF);
- packetdb_addpacket((0x0817), (2),clif->pReqCloseBuyingStore,0, 0xFFFF);
- packetdb_addpacket((0x0815), (-1),clif->pReqOpenBuyingStore,2,4,8,9,89, 0xFFFF);
- packetdb_addpacket((0x0365), (18),clif->pPartyBookingRegisterReq,2,4, 0xFFFF);
-
- packetdb_addpacket((0x0281), (-1),clif->pItemListWindowSelected,2,4,8, 0xFFFF);
- packetdb_addpacket((0x092F), (19),clif->pWantToConnection,2,6,10,14,18, 0xFFFF);
- packetdb_addpacket((0x0802), (26),clif->pPartyInvite2,2, 0xFFFF);
-
- packetdb_addpacket((0x08AB), (26),clif->pFriendsListAdd,2, 0xFFFF);
- packetdb_addpacket((0x0811), (5),clif->pHomMenu,2,4, 0xFFFF);
- packetdb_addpacket((0x085C), (36),clif->pStoragePassword,0, 0xFFFF);
-
- packetdb_addpacket((0x09d4), (2),clif->pNPCShopClosed, 0xFFFF);
- packetdb_addpacket((0x09ce), (102),clif->pGM_Monster_Item,2, 0xFFFF);
-
- packetdb_addpacket((0x09d8), (2),clif->pNPCMarketClosed, 0xFFFF);
- packetdb_addpacket((0x09d6), (-1),clif->pNPCMarketPurchase, 0xFFFF);
-
-
-
-
- packetdb_addpacket((0x0369), (7),clif->pActionRequest,2,6, 0xFFFF);
- packetdb_addpacket((0x083C), (10),clif->pUseSkillToId,2,4,6, 0xFFFF);
- packetdb_addpacket((0x0437), (5),clif->pWalkToXY,2, 0xFFFF);
- packetdb_addpacket((0x035F), (6),clif->pTickSend,2, 0xFFFF);
- packetdb_addpacket((0x0202), (5),clif->pChangeDir,2,4, 0xFFFF);
- packetdb_addpacket((0x07E4), (6),clif->pTakeItem,2, 0xFFFF);
- packetdb_addpacket((0x0362), (6),clif->pDropItem,2,4, 0xFFFF);
- packetdb_addpacket((0x07EC), (8),clif->pMoveToKafra,2,4, 0xFFFF);
- packetdb_addpacket((0x0364), (8),clif->pMoveFromKafra,2,4, 0xFFFF);
- packetdb_addpacket((0x0438), (10),clif->pUseSkillToPos,2,4,6,8, 0xFFFF);
- packetdb_addpacket((0x0366), (90),clif->pUseSkillToPosMoreInfo,2,4,6,8,10, 0xFFFF);
- packetdb_addpacket((0x096A), (6),clif->pGetCharNameRequest,2, 0xFFFF);
- packetdb_addpacket((0x0368), (6),clif->pSolveCharName,2, 0xFFFF);
- packetdb_addpacket((0x0838), (12),clif->pSearchStoreInfoListItemClick,2,6,10, 0xFFFF);
- packetdb_addpacket((0x0835), (2),clif->pSearchStoreInfoNextPage,0, 0xFFFF);
- packetdb_addpacket((0x0819), (-1),clif->pSearchStoreInfo,2,4,5,9,13,14,15, 0xFFFF);
- packetdb_addpacket((0x0811), (-1),clif->pReqTradeBuyingStore,2,4,8,12, 0xFFFF);
- packetdb_addpacket((0x0360), (6),clif->pReqClickBuyingStore,2, 0xFFFF);
- packetdb_addpacket((0x0817), (2),clif->pReqCloseBuyingStore,0, 0xFFFF);
- packetdb_addpacket((0x0815), (-1),clif->pReqOpenBuyingStore,2,4,8,9,89, 0xFFFF);
- packetdb_addpacket((0x0365), (18),clif->pPartyBookingRegisterReq,2,4, 0xFFFF);
-
- packetdb_addpacket((0x0281), (-1),clif->pItemListWindowSelected,2,4,8, 0xFFFF);
- packetdb_addpacket((0x022d), (19),clif->pWantToConnection,2,6,10,14,18, 0xFFFF);
- packetdb_addpacket((0x0802), (26),clif->pPartyInvite2,2, 0xFFFF);
-
- packetdb_addpacket((0x023B), (26),clif->pFriendsListAdd,2, 0xFFFF);
- packetdb_addpacket((0x0361), (5),clif->pHomMenu,2,4, 0xFFFF);
- packetdb_addpacket((0x08A4), (36),clif->pStoragePassword,0, 0xFFFF);
- packetdb_addpacket((0x09df), (7), 0xFFFF);
-
-
-
-
- packetdb_addpacket((0x0871), (7),clif->pActionRequest,2,6, 0xFFFF);
- packetdb_addpacket((0x02C4), (10),clif->pUseSkillToId,2,4,6, 0xFFFF);
- packetdb_addpacket((0x035F), (5),clif->pWalkToXY,2, 0xFFFF);
- packetdb_addpacket((0x0438), (6),clif->pTickSend,2, 0xFFFF);
- packetdb_addpacket((0x094A), (5),clif->pChangeDir,2,4, 0xFFFF);
- packetdb_addpacket((0x092A), (6),clif->pTakeItem,2, 0xFFFF);
- packetdb_addpacket((0x0860), (6),clif->pDropItem,2,4, 0xFFFF);
- packetdb_addpacket((0x0968), (8),clif->pMoveToKafra,2,4, 0xFFFF);
- packetdb_addpacket((0x0895), (8),clif->pMoveFromKafra,2,4, 0xFFFF);
- packetdb_addpacket((0x091E), (10),clif->pUseSkillToPos,2,4,6,8, 0xFFFF);
- packetdb_addpacket((0x096A), (90),clif->pUseSkillToPosMoreInfo,2,4,6,8,10, 0xFFFF);
- packetdb_addpacket((0x0926), (6),clif->pGetCharNameRequest,2, 0xFFFF);
- packetdb_addpacket((0x0898), (6),clif->pSolveCharName,2, 0xFFFF);
- packetdb_addpacket((0x087B), (12),clif->pSearchStoreInfoListItemClick,2,6,10, 0xFFFF);
- packetdb_addpacket((0x0369), (2),clif->pSearchStoreInfoNextPage,0, 0xFFFF);
- packetdb_addpacket((0x093D), (-1),clif->pSearchStoreInfo,2,4,5,9,13,14,15, 0xFFFF);
- packetdb_addpacket((0x087F), (-1),clif->pReqTradeBuyingStore,2,4,8,12, 0xFFFF);
- packetdb_addpacket((0x0969), (6),clif->pReqClickBuyingStore,2, 0xFFFF);
- packetdb_addpacket((0x094C), (2),clif->pReqCloseBuyingStore,0, 0xFFFF);
- packetdb_addpacket((0x0365), (-1),clif->pReqOpenBuyingStore,2,4,8,9,89, 0xFFFF);
- packetdb_addpacket((0x091F), (18),clif->pPartyBookingRegisterReq,2,4, 0xFFFF);
-
- packetdb_addpacket((0x022D), (-1),clif->pItemListWindowSelected,2,4,8, 0xFFFF);
- packetdb_addpacket((0x089C), (19),clif->pWantToConnection,2,6,10,14,18, 0xFFFF);
- packetdb_addpacket((0x08A9), (26),clif->pPartyInvite2,2, 0xFFFF);
-
- packetdb_addpacket((0x0943), (26),clif->pFriendsListAdd,2, 0xFFFF);
- packetdb_addpacket((0x0949), (5),clif->pHomMenu,2,4, 0xFFFF);
- packetdb_addpacket((0x091D), (36),clif->pStoragePassword,0, 0xFFFF);
-
-
-
-
-
-
- packetdb_addpacket((0x0369), (7),clif->pActionRequest,2,6, 0xFFFF);
- packetdb_addpacket((0x083C), (10),clif->pUseSkillToId,2,4,6, 0xFFFF);
- packetdb_addpacket((0x0437), (5),clif->pWalkToXY,2, 0xFFFF);
- packetdb_addpacket((0x035F), (6),clif->pTickSend,2, 0xFFFF);
- packetdb_addpacket((0x08A7), (5),clif->pChangeDir,2,4, 0xFFFF);
- packetdb_addpacket((0x0940), (6),clif->pTakeItem,2, 0xFFFF);
- packetdb_addpacket((0x0361), (6),clif->pDropItem,2,4, 0xFFFF);
- packetdb_addpacket((0x088E), (8),clif->pMoveToKafra,2,4, 0xFFFF);
- packetdb_addpacket((0x0367), (8),clif->pMoveFromKafra,2,4, 0xFFFF);
- packetdb_addpacket((0x0438), (10),clif->pUseSkillToPos,2,4,6,8, 0xFFFF);
- packetdb_addpacket((0x0366), (90),clif->pUseSkillToPosMoreInfo,2,4,6,8,10, 0xFFFF);
- packetdb_addpacket((0x0802), (6),clif->pGetCharNameRequest,2, 0xFFFF);
- packetdb_addpacket((0x0368), (6),clif->pSolveCharName,2, 0xFFFF);
- packetdb_addpacket((0x0360), (12),clif->pSearchStoreInfoListItemClick,2,6,10, 0xFFFF);
- packetdb_addpacket((0x0817), (2),clif->pSearchStoreInfoNextPage,0, 0xFFFF);
- packetdb_addpacket((0x0815), (-1),clif->pSearchStoreInfo,2,4,5,9,13,14,15, 0xFFFF);
- packetdb_addpacket((0x096A), (-1),clif->pReqTradeBuyingStore,2,4,8,12, 0xFFFF);
- packetdb_addpacket((0x088A), (6),clif->pReqClickBuyingStore,2, 0xFFFF);
- packetdb_addpacket((0x0965), (2),clif->pReqCloseBuyingStore,0, 0xFFFF);
- packetdb_addpacket((0x0815), (-1),clif->pReqOpenBuyingStore,2,4,8,9,89, 0xFFFF);
- packetdb_addpacket((0x096A), (18),clif->pPartyBookingRegisterReq,2,4, 0xFFFF);
-
- packetdb_addpacket((0x0965), (-1),clif->pItemListWindowSelected,2,4,8, 0xFFFF);
- packetdb_addpacket((0x0966), (19),clif->pWantToConnection,2,6,10,14,18, 0xFFFF);
- packetdb_addpacket((0x095D), (26),clif->pPartyInvite2,2, 0xFFFF);
-
- packetdb_addpacket((0x089B), (26),clif->pFriendsListAdd,2, 0xFFFF);
- packetdb_addpacket((0x092D), (5),clif->pHomMenu,2,4, 0xFFFF);
- packetdb_addpacket((0x0865), (36),clif->pStoragePassword,0, 0xFFFF);
-
-
-
-
- packetdb_addpacket((0x0369), (7),clif->pActionRequest,2,6, 0xFFFF);
- packetdb_addpacket((0x083C), (10),clif->pUseSkillToId,2,4,6, 0xFFFF);
- packetdb_addpacket((0x0437), (5),clif->pWalkToXY,2, 0xFFFF);
- packetdb_addpacket((0x035F), (6),clif->pTickSend,2, 0xFFFF);
- packetdb_addpacket((0x0202), (5),clif->pChangeDir,2,4, 0xFFFF);
- packetdb_addpacket((0x07E4), (6),clif->pTakeItem,2, 0xFFFF);
- packetdb_addpacket((0x0362), (6),clif->pDropItem,2,4, 0xFFFF);
- packetdb_addpacket((0x07EC), (8),clif->pMoveToKafra,2,4, 0xFFFF);
- packetdb_addpacket((0x0364), (8),clif->pMoveFromKafra,2,4, 0xFFFF);
- packetdb_addpacket((0x0438), (10),clif->pUseSkillToPos,2,4,6,8, 0xFFFF);
- packetdb_addpacket((0x0366), (90),clif->pUseSkillToPosMoreInfo,2,4,6,8,10, 0xFFFF);
- packetdb_addpacket((0x096A), (6),clif->pGetCharNameRequest,2, 0xFFFF);
- packetdb_addpacket((0x0368), (6),clif->pSolveCharName,2, 0xFFFF);
- packetdb_addpacket((0x0838), (12),clif->pSearchStoreInfoListItemClick,2,6,10, 0xFFFF);
- packetdb_addpacket((0x0835), (2),clif->pSearchStoreInfoNextPage,0, 0xFFFF);
- packetdb_addpacket((0x0819), (-1),clif->pSearchStoreInfo,2,4,5,9,13,14,15, 0xFFFF);
- packetdb_addpacket((0x0811), (-1),clif->pReqTradeBuyingStore,2,4,8,12, 0xFFFF);
- packetdb_addpacket((0x0360), (6),clif->pReqClickBuyingStore,2, 0xFFFF);
- packetdb_addpacket((0x0817), (2),clif->pReqCloseBuyingStore,0, 0xFFFF);
- packetdb_addpacket((0x0815), (-1),clif->pReqOpenBuyingStore,2,4,8,9,89, 0xFFFF);
- packetdb_addpacket((0x0365), (18),clif->pPartyBookingRegisterReq,2,4, 0xFFFF);
-
- packetdb_addpacket((0x0281), (-1),clif->pItemListWindowSelected,2,4,8, 0xFFFF);
- packetdb_addpacket((0x022D), (19),clif->pWantToConnection,2,6,10,14,18, 0xFFFF);
- packetdb_addpacket((0x0802), (26),clif->pPartyInvite2,2, 0xFFFF);
-
- packetdb_addpacket((0x023B), (26),clif->pFriendsListAdd,2, 0xFFFF);
- packetdb_addpacket((0x0361), (5),clif->pHomMenu,2,4, 0xFFFF);
- packetdb_addpacket((0x0938), (36),clif->pStoragePassword,0, 0xFFFF);
- packetdb_addpacket((0x09DF), (7), 0xFFFF);
-
-
-
-
- packetdb_addpacket((0x0369), (7),clif->pActionRequest,2,6, 0xFFFF);
- packetdb_addpacket((0x083C), (10),clif->pUseSkillToId,2,4,6, 0xFFFF);
- packetdb_addpacket((0x0437), (5),clif->pWalkToXY,2, 0xFFFF);
- packetdb_addpacket((0x035F), (6),clif->pTickSend,2, 0xFFFF);
- packetdb_addpacket((0x0815), (5),clif->pChangeDir,2,4, 0xFFFF);
- packetdb_addpacket((0x0202), (6),clif->pTakeItem,2, 0xFFFF);
- packetdb_addpacket((0x0362), (6),clif->pDropItem,2,4, 0xFFFF);
- packetdb_addpacket((0x07EC), (8),clif->pMoveToKafra,2,4, 0xFFFF);
- packetdb_addpacket((0x0364), (8),clif->pMoveFromKafra,2,4, 0xFFFF);
- packetdb_addpacket((0x0436), (10),clif->pUseSkillToPos,2,4,6,8, 0xFFFF);
- packetdb_addpacket((0x0366), (90),clif->pUseSkillToPosMoreInfo,2,4,6,8,10, 0xFFFF);
- packetdb_addpacket((0x096A), (6),clif->pGetCharNameRequest,2, 0xFFFF);
- packetdb_addpacket((0x0368), (6),clif->pSolveCharName,2, 0xFFFF);
- packetdb_addpacket((0x0838), (12),clif->pSearchStoreInfoListItemClick,2,6,10, 0xFFFF);
- packetdb_addpacket((0x0835), (2),clif->pSearchStoreInfoNextPage,0, 0xFFFF);
- packetdb_addpacket((0x0819), (-1),clif->pSearchStoreInfo,2,4,5,9,13,14,15, 0xFFFF);
- packetdb_addpacket((0x0811), (-1),clif->pReqTradeBuyingStore,2,4,8,12, 0xFFFF);
- packetdb_addpacket((0x0360), (6),clif->pReqClickBuyingStore,2, 0xFFFF);
- packetdb_addpacket((0x0817), (2),clif->pReqCloseBuyingStore,0, 0xFFFF);
- packetdb_addpacket((0x0361), (-1),clif->pReqOpenBuyingStore,2,4,8,9,89, 0xFFFF);
- packetdb_addpacket((0x0365), (18),clif->pPartyBookingRegisterReq,2,4, 0xFFFF);
-
- packetdb_addpacket((0x0281), (-1),clif->pItemListWindowSelected,2,4,8, 0xFFFF);
- packetdb_addpacket((0x0438), (19),clif->pWantToConnection,2,6,10,14,18, 0xFFFF);
- packetdb_addpacket((0x0802), (26),clif->pPartyInvite2,2, 0xFFFF);
-
- packetdb_addpacket((0x07E4), (26),clif->pFriendsListAdd,2, 0xFFFF);
- packetdb_addpacket((0x0934), (5),clif->pHomMenu,2,4, 0xFFFF);
- packetdb_addpacket((0x095e), (36),clif->pStoragePassword,0, 0xFFFF);
- packetdb_addpacket((0x09DF), (7), 0xFFFF);
-
-
-
-
- packetdb_addpacket((0x0946), (7),clif->pActionRequest,2,6, 0xFFFF);
- packetdb_addpacket((0x0868), (10),clif->pUseSkillToId,2,4,6, 0xFFFF);
- packetdb_addpacket((0x093F), (5),clif->pWalkToXY,2, 0xFFFF);
- packetdb_addpacket((0x0950), (6),clif->pTickSend,2, 0xFFFF);
- packetdb_addpacket((0x0360), (5),clif->pChangeDir,2,4, 0xFFFF);
- packetdb_addpacket((0x0958), (6),clif->pTakeItem,2, 0xFFFF);
- packetdb_addpacket((0x0882), (6),clif->pDropItem,2,4, 0xFFFF);
- packetdb_addpacket((0x095C), (8),clif->pMoveToKafra,2,4, 0xFFFF);
- packetdb_addpacket((0x085B), (8),clif->pMoveFromKafra,2,4, 0xFFFF);
- packetdb_addpacket((0x0364), (10),clif->pUseSkillToPos,2,4,6,8, 0xFFFF);
- packetdb_addpacket((0x092D), (90),clif->pUseSkillToPosMoreInfo,2,4,6,8,10, 0xFFFF);
- packetdb_addpacket((0x088A), (6),clif->pGetCharNameRequest,2, 0xFFFF);
- packetdb_addpacket((0x07EC), (6),clif->pSolveCharName,2, 0xFFFF);
- packetdb_addpacket((0x0965), (12),clif->pSearchStoreInfoListItemClick,2,6,10, 0xFFFF);
- packetdb_addpacket((0x085D), (2),clif->pSearchStoreInfoNextPage,0, 0xFFFF);
- packetdb_addpacket((0x0933), (-1),clif->pSearchStoreInfo,2,4,5,9,13,14,15, 0xFFFF);
- packetdb_addpacket((0x091F), (-1),clif->pReqTradeBuyingStore,2,4,8,12, 0xFFFF);
- packetdb_addpacket((0x023B), (6),clif->pReqClickBuyingStore,2, 0xFFFF);
- packetdb_addpacket((0x0867), (2),clif->pReqCloseBuyingStore,0, 0xFFFF);
- packetdb_addpacket((0x0944), (-1),clif->pReqOpenBuyingStore,2,4,8,9,89, 0xFFFF);
- packetdb_addpacket((0x08AC), (18),clif->pPartyBookingRegisterReq,2,4, 0xFFFF);
-
- packetdb_addpacket((0x0883), (-1),clif->pItemListWindowSelected,2,4,8, 0xFFFF);
- packetdb_addpacket((0x0920), (19),clif->pWantToConnection,2,6,10,14,18, 0xFFFF);
- packetdb_addpacket((0x0890), (26),clif->pPartyInvite2,2, 0xFFFF);
-
- packetdb_addpacket((0x089A), (26),clif->pFriendsListAdd,2, 0xFFFF);
- packetdb_addpacket((0x0896), (5),clif->pHomMenu,2,4, 0xFFFF);
- packetdb_addpacket((0x0926), (36),clif->pStoragePassword,0, 0xFFFF);
- packetdb_addpacket((0x09DF), (7), 0xFFFF);
-
-
-
-
- packetdb_addpacket((0x0369), (7),clif->pActionRequest,2,6, 0xFFFF);
- packetdb_addpacket((0x083C), (10),clif->pUseSkillToId,2,4,6, 0xFFFF);
- packetdb_addpacket((0x0437), (5),clif->pWalkToXY,2, 0xFFFF);
- packetdb_addpacket((0x035F), (6),clif->pTickSend,2, 0xFFFF);
- packetdb_addpacket((0x0202), (5),clif->pChangeDir,2,4, 0xFFFF);
- packetdb_addpacket((0x07E4), (6),clif->pTakeItem,2, 0xFFFF);
- packetdb_addpacket((0x0362), (6),clif->pDropItem,2,4, 0xFFFF);
- packetdb_addpacket((0x07EC), (8),clif->pMoveToKafra,2,4, 0xFFFF);
- packetdb_addpacket((0x0364), (8),clif->pMoveFromKafra,2,4, 0xFFFF);
- packetdb_addpacket((0x0438), (10),clif->pUseSkillToPos,2,4,6,8, 0xFFFF);
- packetdb_addpacket((0x0366), (90),clif->pUseSkillToPosMoreInfo,2,4,6,8,10, 0xFFFF);
- packetdb_addpacket((0x096A), (6),clif->pGetCharNameRequest,2, 0xFFFF);
- packetdb_addpacket((0x0368), (6),clif->pSolveCharName,2, 0xFFFF);
- packetdb_addpacket((0x0838), (12),clif->pSearchStoreInfoListItemClick,2,6,10, 0xFFFF);
- packetdb_addpacket((0x0835), (2),clif->pSearchStoreInfoNextPage,0, 0xFFFF);
- packetdb_addpacket((0x0819), (-1),clif->pSearchStoreInfo,2,4,5,9,13,14,15, 0xFFFF);
- packetdb_addpacket((0x0811), (-1),clif->pReqTradeBuyingStore,2,4,8,12, 0xFFFF);
- packetdb_addpacket((0x0360), (6),clif->pReqClickBuyingStore,2, 0xFFFF);
- packetdb_addpacket((0x0817), (2),clif->pReqCloseBuyingStore,0, 0xFFFF);
- packetdb_addpacket((0x0815), (-1),clif->pReqOpenBuyingStore,2,4,8,9,89, 0xFFFF);
- packetdb_addpacket((0x0365), (18),clif->pPartyBookingRegisterReq,2,4, 0xFFFF);
-
- packetdb_addpacket((0x0281), (-1),clif->pItemListWindowSelected,2,4,8, 0xFFFF);
- packetdb_addpacket((0x022D), (19),clif->pWantToConnection,2,6,10,14,18, 0xFFFF);
- packetdb_addpacket((0x0802), (26),clif->pPartyInvite2,2, 0xFFFF);
-
- packetdb_addpacket((0x023B), (26),clif->pFriendsListAdd,2, 0xFFFF);
- packetdb_addpacket((0x0361), (5),clif->pHomMenu,2,4, 0xFFFF);
- packetdb_addpacket((0x095C), (36),clif->pStoragePassword,0, 0xFFFF);
- packetdb_addpacket((0x09DF), (7), 0xFFFF);
-
-
-
-
- packetdb_addpacket((0x0369), (7),clif->pActionRequest,2,6, 0xFFFF);
- packetdb_addpacket((0x083C), (10),clif->pUseSkillToId,2,4,6, 0xFFFF);
- packetdb_addpacket((0x0437), (5),clif->pWalkToXY,2, 0xFFFF);
- packetdb_addpacket((0x035F), (6),clif->pTickSend,2, 0xFFFF);
- packetdb_addpacket((0x0967), (5),clif->pChangeDir,2,4, 0xFFFF);
- packetdb_addpacket((0x07E4), (6),clif->pTakeItem,2, 0xFFFF);
- packetdb_addpacket((0x0362), (6),clif->pDropItem,2,4, 0xFFFF);
- packetdb_addpacket((0x07EC), (8),clif->pMoveToKafra,2,4, 0xFFFF);
- packetdb_addpacket((0x022D), (8),clif->pMoveFromKafra,2,4, 0xFFFF);
- packetdb_addpacket((0x0438), (10),clif->pUseSkillToPos,2,4,6,8, 0xFFFF);
- packetdb_addpacket((0x0366), (90),clif->pUseSkillToPosMoreInfo,2,4,6,8,10, 0xFFFF);
- packetdb_addpacket((0x096A), (6),clif->pGetCharNameRequest,2, 0xFFFF);
- packetdb_addpacket((0x0368), (6),clif->pSolveCharName,2, 0xFFFF);
- packetdb_addpacket((0x0838), (12),clif->pSearchStoreInfoListItemClick,2,6,10, 0xFFFF);
- packetdb_addpacket((0x0835), (2),clif->pSearchStoreInfoNextPage,0, 0xFFFF);
- packetdb_addpacket((0x0819), (-1),clif->pSearchStoreInfo,2,4,5,9,13,14,15, 0xFFFF);
- packetdb_addpacket((0x0811), (-1),clif->pReqTradeBuyingStore,2,4,8,12, 0xFFFF);
- packetdb_addpacket((0x0360), (6),clif->pReqClickBuyingStore,2, 0xFFFF);
- packetdb_addpacket((0x0817), (2),clif->pReqCloseBuyingStore,0, 0xFFFF);
- packetdb_addpacket((0x0815), (-1),clif->pReqOpenBuyingStore,2,4,8,9,89, 0xFFFF);
- packetdb_addpacket((0x0365), (18),clif->pPartyBookingRegisterReq,2,4, 0xFFFF);
-
- packetdb_addpacket((0x0281), (-1),clif->pItemListWindowSelected,2,4,8, 0xFFFF);
- packetdb_addpacket((0x086E), (19),clif->pWantToConnection,2,6,10,14,18, 0xFFFF);
- packetdb_addpacket((0x0802), (26),clif->pPartyInvite2,2, 0xFFFF);
-
- packetdb_addpacket((0x094B), (26),clif->pFriendsListAdd,2, 0xFFFF);
- packetdb_addpacket((0x0364), (5),clif->pHomMenu,2,4, 0xFFFF);
- packetdb_addpacket((0x0936), (36),clif->pStoragePassword,0, 0xFFFF);
- packetdb_addpacket((0x09DF), (7), 0xFFFF);
- packetdb_addpacket((0x0a00), (269), 0xFFFF);
-
-
-
-
- packetdb_addpacket((0x0A19), (2),clif->pRouletteOpen,0, 0xFFFF);
- packetdb_addpacket((0x0A1A), (23), 0xFFFF);
- packetdb_addpacket((0x0A1B), (2),clif->pRouletteInfo,0, 0xFFFF);
- packetdb_addpacket((0x0A1C), (-1), 0xFFFF);
- packetdb_addpacket((0x0A1D), (2),clif->pRouletteClose,0, 0xFFFF);
- packetdb_addpacket((0x0A1E), (3), 0xFFFF);
- packetdb_addpacket((0x0A1F), (2),clif->pRouletteGenerate,0, 0xFFFF);
- packetdb_addpacket((0x0A20), (21), 0xFFFF);
- packetdb_addpacket((0x0A21), (3),clif->pRouletteRecvItem,2, 0xFFFF);
- packetdb_addpacket((0x0A22), (5), 0xFFFF);
-
-
-
-
- packetdb_addpacket((0x0369), (7),clif->pActionRequest,2,6, 0xFFFF);
- packetdb_addpacket((0x083C), (10),clif->pUseSkillToId,2,4,6, 0xFFFF);
- packetdb_addpacket((0x0437), (5),clif->pWalkToXY,2, 0xFFFF);
- packetdb_addpacket((0x035F), (6),clif->pTickSend,2, 0xFFFF);
- packetdb_addpacket((0x08AD), (5),clif->pChangeDir,2,4, 0xFFFF);
- packetdb_addpacket((0x094E), (6),clif->pTakeItem,2, 0xFFFF);
- packetdb_addpacket((0x087D), (6),clif->pDropItem,2,4, 0xFFFF);
- packetdb_addpacket((0x0878), (8),clif->pMoveToKafra,2,4, 0xFFFF);
- packetdb_addpacket((0x08AA), (8),clif->pMoveFromKafra,2,4, 0xFFFF);
- packetdb_addpacket((0x023B), (10),clif->pUseSkillToPos,2,4,6,8, 0xFFFF);
- packetdb_addpacket((0x0366), (90),clif->pUseSkillToPosMoreInfo,2,4,6,8,10, 0xFFFF);
- packetdb_addpacket((0x096A), (6),clif->pGetCharNameRequest,2, 0xFFFF);
- packetdb_addpacket((0x0368), (6),clif->pSolveCharName,2, 0xFFFF);
- packetdb_addpacket((0x0835), (12),clif->pSearchStoreInfoListItemClick,2,6,10, 0xFFFF);
- packetdb_addpacket((0x0940), (2),clif->pSearchStoreInfoNextPage,0, 0xFFFF);
- packetdb_addpacket((0x0819), (-1),clif->pSearchStoreInfo,2,4,5,9,13,14,15, 0xFFFF);
- packetdb_addpacket((0x0811), (-1),clif->pReqTradeBuyingStore,2,4,8,12, 0xFFFF);
- packetdb_addpacket((0x0360), (6),clif->pReqClickBuyingStore,2, 0xFFFF);
- packetdb_addpacket((0x0817), (2),clif->pReqCloseBuyingStore,0, 0xFFFF);
- packetdb_addpacket((0x0815), (-1),clif->pReqOpenBuyingStore,2,4,8,9,89, 0xFFFF);
- packetdb_addpacket((0x0955), (18),clif->pPartyBookingRegisterReq,2,4, 0xFFFF);
-
- packetdb_addpacket((0x0281), (-1),clif->pItemListWindowSelected,2,4,8, 0xFFFF);
- packetdb_addpacket((0x093B), (19),clif->pWantToConnection,2,6,10,14,18, 0xFFFF);
- packetdb_addpacket((0x0896), (26),clif->pPartyInvite2,2, 0xFFFF);
-
- packetdb_addpacket((0x091A), (26),clif->pFriendsListAdd,2, 0xFFFF);
- packetdb_addpacket((0x0899), (5),clif->pHomMenu,2,4, 0xFFFF);
- packetdb_addpacket((0x0438), (36),clif->pStoragePassword,0, 0xFFFF);
- packetdb_addpacket((0x0A01), (3),clif->pHotkeyRowShift,2, 0xFFFF);
-
-
-
- packetdb_addpacket((0x0A09), (45), 0xFFFF);
- packetdb_addpacket((0x0A0A), (47), 0xFFFF);
- packetdb_addpacket((0x0A0B), (47), 0xFFFF);
- packetdb_addpacket((0x0A0C), (56), 0xFFFF);
- packetdb_addpacket((0x0A0D), (-1), 0xFFFF);
- packetdb_addpacket((0x0A0F), (-1), 0xFFFF);
- packetdb_addpacket((0x0A10), (-1), 0xFFFF);
-# 2926 "../../../server-code/src/map/packets.h"
- do { clif->cryptKey[0] = (0x053D5CED); clif->cryptKey[1] = (0x3DED6DED); clif->cryptKey[2] = (0x6DED6DED); } while(0);
-
-
-
- do { clif->cryptKey[0] = (0x35C91401); clif->cryptKey[1] = (0x262A5556); clif->cryptKey[2] = (0x28FA03AA); } while(0);
-
-
-
- do { clif->cryptKey[0] = (0x3AD67ED0); clif->cryptKey[1] = (0x44703C69); clif->cryptKey[2] = (0x6F876809); } while(0);
-
-
-
- do { clif->cryptKey[0] = (0x3AD67ED0); clif->cryptKey[1] = (0x44703C69); clif->cryptKey[2] = (0x6F876809); } while(0);
-
-
-
- do { clif->cryptKey[0] = (0x291E6762); clif->cryptKey[1] = (0x77CD391A); clif->cryptKey[2] = (0x60AC2F16); } while(0);
-
-
-
- do { clif->cryptKey[0] = (0x7F3C2D29); clif->cryptKey[1] = (0x59B01DE6); clif->cryptKey[2] = (0x1DBB44CA); } while(0);
-
-
-
- do { clif->cryptKey[0] = (0x357D55DC); clif->cryptKey[1] = (0x5A8D759F); clif->cryptKey[2] = (0x245C30F5); } while(0);
-
-
-
- do { clif->cryptKey[0] = (0x50AE1A63); clif->cryptKey[1] = (0x3CE579B5); clif->cryptKey[2] = (0x29C10406); } while(0);
-
-
-
- do { clif->cryptKey[0] = (0x5324329D); clif->cryptKey[1] = (0x5D545D52); clif->cryptKey[2] = (0x06137269); } while(0);
-
-
-
- do { clif->cryptKey[0] = (0x0B642BDA); clif->cryptKey[1] = (0x6ECB1D1C); clif->cryptKey[2] = (0x61C7454B); } while(0);
-
-
-
- do { clif->cryptKey[0] = (0x3B550F07); clif->cryptKey[1] = (0x1F666C7C); clif->cryptKey[2] = (0x60304EF5); } while(0);
-
-
-
- do { clif->cryptKey[0] = (0x2A610886); clif->cryptKey[1] = (0x3E09165E); clif->cryptKey[2] = (0x57C11888); } while(0);
-
-
-
- do { clif->cryptKey[0] = (0x5151306B); clif->cryptKey[1] = (0x7AE32886); clif->cryptKey[2] = (0x53060628); } while(0);
-
-
-
- do { clif->cryptKey[0] = (0x05D53871); clif->cryptKey[1] = (0x7D0027B4); clif->cryptKey[2] = (0x29975333); } while(0);
-
-
-
- do { clif->cryptKey[0] = (0x0FF87E93); clif->cryptKey[1] = (0x6CFF7860); clif->cryptKey[2] = (0x3A3D1DEC); } while(0);
-
-
-
- do { clif->cryptKey[0] = (0x262034A1); clif->cryptKey[1] = (0x674542A5); clif->cryptKey[2] = (0x73A50BA5); } while(0);
-
-
-
- do { clif->cryptKey[0] = (0x2B412AFC); clif->cryptKey[1] = (0x4FF94487); clif->cryptKey[2] = (0x6705339D); } while(0);
-
-
-
- do { clif->cryptKey[0] = (0x504345D0); clif->cryptKey[1] = (0x3D427B1B); clif->cryptKey[2] = (0x794C2DCC); } while(0);
-
-
-
- do { clif->cryptKey[0] = (0x2CFC0A71); clif->cryptKey[1] = (0x2BA91D8D); clif->cryptKey[2] = (0x087E39E0); } while(0);
-
-
-
- do { clif->cryptKey[0] = (0x1D373F5D); clif->cryptKey[1] = (0x5ACD604D); clif->cryptKey[2] = (0x1C4D7C4D); } while(0);
-
-
-
- do { clif->cryptKey[0] = (0x7A255EFA); clif->cryptKey[1] = (0x30977276); clif->cryptKey[2] = (0x2D4A0448); } while(0);
-
-
-
- do { clif->cryptKey[0] = (0x520B4C64); clif->cryptKey[1] = (0x2800407D); clif->cryptKey[2] = (0x47651458); } while(0);
-
-
-
- do { clif->cryptKey[0] = (0x382A6DEF); clif->cryptKey[1] = (0x5CBE7202); clif->cryptKey[2] = (0x61F46637); } while(0);
-
-
-
- do { clif->cryptKey[0] = (0x689C1729); clif->cryptKey[1] = (0x11812639); clif->cryptKey[2] = (0x60F82967); } while(0);
-
-
-
- do { clif->cryptKey[0] = (0x21F9683F); clif->cryptKey[1] = (0x710C5CA5); clif->cryptKey[2] = (0x1FD910E9); } while(0);
-
-
-
- do { clif->cryptKey[0] = (0x75B8553B); clif->cryptKey[1] = (0x37F20B12); clif->cryptKey[2] = (0x385C2B40); } while(0);
-
-
-
- do { clif->cryptKey[0] = (0x0036310C); clif->cryptKey[1] = (0x2DCD0BED); clif->cryptKey[2] = (0x1EE62A78); } while(0);
-
-
-
- do { clif->cryptKey[0] = (0x01581359); clif->cryptKey[1] = (0x452D6FFA); clif->cryptKey[2] = (0x6AFB6E2E); } while(0);
-
-
-
- do { clif->cryptKey[0] = (0x01540E48); clif->cryptKey[1] = (0x13041224); clif->cryptKey[2] = (0x31247924); } while(0);
-
-
-
- do { clif->cryptKey[0] = (0x411D1DBB); clif->cryptKey[1] = (0x4CBA4848); clif->cryptKey[2] = (0x1A432FC4); } while(0);
-
-
-
- do { clif->cryptKey[0] = (0x16CF3301); clif->cryptKey[1] = (0x1F472B9B); clif->cryptKey[2] = (0x0B4A3CD2); } while(0);
-
-
-
- do { clif->cryptKey[0] = (0x4A715EF9); clif->cryptKey[1] = (0x79103E4F); clif->cryptKey[2] = (0x405C1238); } while(0);
-
-
-
- do { clif->cryptKey[0] = (0x70EB4CCB); clif->cryptKey[1] = (0x0487713C); clif->cryptKey[2] = (0x398D4B08); } while(0);
-
-
-
- do { clif->cryptKey[0] = (0x68CA3080); clif->cryptKey[1] = (0x31B74BDD); clif->cryptKey[2] = (0x505208F1); } while(0);
-
-
-
- do { clif->cryptKey[0] = (0x32E45D64); clif->cryptKey[1] = (0x35643564); clif->cryptKey[2] = (0x35643564); } while(0);
-
-
-
- do { clif->cryptKey[0] = (0x261F261F); clif->cryptKey[1] = (0x261F261F); clif->cryptKey[2] = (0x261F261F); } while(0);
-
-
-
- do { clif->cryptKey[0] = (0x25733B31); clif->cryptKey[1] = (0x53486CFD); clif->cryptKey[2] = (0x398649BD); } while(0);
-
-
-
- do { clif->cryptKey[0] = (0x76052205); clif->cryptKey[1] = (0x22052205); clif->cryptKey[2] = (0x22052205); } while(0);
-
-
-
- do { clif->cryptKey[0] = (0x3F094C49); clif->cryptKey[1] = (0x55F86C1E); clif->cryptKey[2] = (0x58AA359A); } while(0);
-
-
-
- do { clif->cryptKey[0] = (0x75794A38); clif->cryptKey[1] = (0x58A96BC1); clif->cryptKey[2] = (0x296E6FB8); } while(0);
-
-
-
- do { clif->cryptKey[0] = (0x6948050B); clif->cryptKey[1] = (0x06511D9D); clif->cryptKey[2] = (0x725D4DF1); } while(0);
-
-
-
- do { clif->cryptKey[0] = (0x023A6C87); clif->cryptKey[1] = (0x14BF1F1E); clif->cryptKey[2] = (0x5CC70CC9); } while(0);
-
-
-
- do { clif->cryptKey[0] = (0x646E08D9); clif->cryptKey[1] = (0x5F153AB5); clif->cryptKey[2] = (0x61B509B5); } while(0);
-
-
-
- do { clif->cryptKey[0] = (0x6D166F66); clif->cryptKey[1] = (0x3C000FCF); clif->cryptKey[2] = (0x295B0FCB); } while(0);
-
-
-
- do { clif->cryptKey[0] = (0x434115DE); clif->cryptKey[1] = (0x34A10FE9); clif->cryptKey[2] = (0x6791428E); } while(0);
-
-
-
- do { clif->cryptKey[0] = (0x38F453EF); clif->cryptKey[1] = (0x6A040FD8); clif->cryptKey[2] = (0X65BD6668); } while(0);
-
-
-
- do { clif->cryptKey[0] = (0x4FF90E23); clif->cryptKey[1] = (0x0F1432F2); clif->cryptKey[2] = (0x4CFA1EDA); } while(0);
-
-
-
- do { clif->cryptKey[0] = (0x7E241DE0); clif->cryptKey[1] = (0x5E805580); clif->cryptKey[2] = (0x3D807D80); } while(0);
-
-
-
- do { clif->cryptKey[0] = (0x23A23148); clif->cryptKey[1] = (0x0C41420E); clif->cryptKey[2] = (0x53785AD7); } while(0);
-
-
-
- do { clif->cryptKey[0] = (0x6A596301); clif->cryptKey[1] = (0x76866D0E); clif->cryptKey[2] = (0x32294A45); } while(0);
-
-
-
- do { clif->cryptKey[0] = (0x631C511C); clif->cryptKey[1] = (0x111C111C); clif->cryptKey[2] = (0x111C111C); } while(0);
-
-
-
- do { clif->cryptKey[0] = (0x611B7097); clif->cryptKey[1] = (0x01F957A1); clif->cryptKey[2] = (0x768A0FCB); } while(0);
-
-
-
-
-
- do { clif->cryptKey[0] = (0x63224335); clif->cryptKey[1] = (0x0F3A1F27); clif->cryptKey[2] = (0x6D217B24); } while(0);
-
-
-
- do { clif->cryptKey[0] = (0x63DC7BDC); clif->cryptKey[1] = (0x7BDC7BDC); clif->cryptKey[2] = (0x7BDC7BDC); } while(0);
-
-
-
- do { clif->cryptKey[0] = (0x116763F2); clif->cryptKey[1] = (0x41117DAC); clif->cryptKey[2] = (0x7FD13C45); } while(0);
-
-
-
- do { clif->cryptKey[0] = (0x15D3271C); clif->cryptKey[1] = (0x004D725B); clif->cryptKey[2] = (0x111A3A37); } while(0);
-
-
-
- do { clif->cryptKey[0] = (0x04810281); clif->cryptKey[1] = (0x42814281); clif->cryptKey[2] = (0x42814281); } while(0);
-
-
-
- do { clif->cryptKey[0] = (0x2DFF467C); clif->cryptKey[1] = (0x444B37EE); clif->cryptKey[2] = (0x2C1B634F); } while(0);
-
-
-
- do { clif->cryptKey[0] = (0x290551EA); clif->cryptKey[1] = (0x2B952C75); clif->cryptKey[2] = (0x2D67669B); } while(0);
-# 19038 "../../../server-code/src/map/clif.c" 2
-
-
-}
-void clif_bc_ready(void) {
- if( battle_config.display_status_timers )
- clif->status_change = clif_status_change;
- else
- clif->status_change = clif_status_change_notick;
-
- switch( battle_config.packet_obfuscation ) {
- case 0:
- clif->parse_cmd = clif_parse_cmd_normal;
- break;
- default:
- case 1:
- clif->parse_cmd = clif_parse_cmd_optional;
- break;
- case 2:
- clif->parse_cmd = clif_parse_cmd_decrypt;
- break;
- }
-}
-
-
-
-int do_init_clif(
-# 19063 "../../../server-code/src/map/clif.c" 3 4
- _Bool
-# 19063 "../../../server-code/src/map/clif.c"
- minimal)
-{
- if (minimal)
- return 0;
-
- packetdb_loaddb();
-
- sockt->set_defaultparse(clif->parse);
- if (sockt->make_listen_bind(clif->bind_ip,clif->map_port) == -1) {
- (showmsg->showFatalError(("Failed to bind to port '""\033[1;37m""%d""\033[0m""'\n"),clif->map_port));
- exit(
-# 19073 "../../../server-code/src/map/clif.c" 3 4
- 1
-# 19073 "../../../server-code/src/map/clif.c"
- );
- }
-
- timer->add_func_list(clif->clearunit_delayed_sub, "clif_clearunit_delayed_sub");
- timer->add_func_list(clif->delayquit, "clif_delayquit");
-
- clif->delay_clearunit_ers = ers_new(sizeof(struct block_list),"clif.c::delay_clearunit_ers",ERS_OPT_CLEAR);
- clif->delayed_damage_ers = ers_new(sizeof(struct cdelayed_damage),"clif.c::delayed_damage_ers",ERS_OPT_CLEAR);
-
- return 0;
-}
-
-void do_final_clif(void)
-{
- unsigned char i;
-
- ((clif->delay_clearunit_ers)->destroy(clif->delay_clearunit_ers));
- ((clif->delayed_damage_ers)->destroy(clif->delayed_damage_ers));
-
- for(i = 0; i < CASHSHOP_TAB_MAX; i++) {
- int k;
- for( k = 0; k < clif->cs.item_count[i]; k++ ) {
- (iMalloc->free((clif->cs.data[i][k]),"../../../server-code/src/map/clif.c", 19095, __func__));
- }
- (iMalloc->free((clif->cs.data[i]),"../../../server-code/src/map/clif.c", 19097, __func__));
- }
-
- for(i = 0; i < 7; i++) {
- if( clif->rd.nameid[i] )
- (iMalloc->free((clif->rd.nameid[i]),"../../../server-code/src/map/clif.c", 19102, __func__));
- if( clif->rd.qty[i] )
- (iMalloc->free((clif->rd.qty[i]),"../../../server-code/src/map/clif.c", 19104, __func__));
- }
-
-}
-void clif_defaults(void) {
- clif = &clif_s;
-
- clif->bind_ip = INADDR_ANY;
- clif->map_port = 5121;
- clif->ally_only =
-# 19113 "../../../server-code/src/map/clif.c" 3 4
- 0
-# 19113 "../../../server-code/src/map/clif.c"
- ;
- clif->delayed_damage_ers =
-# 19114 "../../../server-code/src/map/clif.c" 3 4
- ((void *)0)
-# 19114 "../../../server-code/src/map/clif.c"
- ;
-
- clif->init = do_init_clif;
- clif->final = do_final_clif;
- clif->setip = clif_setip;
- clif->setbindip = clif_setbindip;
- clif->setport = clif_setport;
- clif->refresh_ip = clif_refresh_ip;
- clif->send = clif_send;
- clif->send_sub = clif_send_sub;
- clif->send_actual = clif_send_actual;
- clif->parse = clif_parse;
- clif->parse_cmd = clif_parse_cmd_optional;
- clif->decrypt_cmd = clif_decrypt_cmd;
- clif->packet = clif_packet;
-
- clif->authok = clif_authok;
- clif->authrefuse = clif_authrefuse;
- clif->authfail_fd = clif_authfail_fd;
- clif->charselectok = clif_charselectok;
-
- clif->dropflooritem = clif_dropflooritem;
- clif->clearflooritem = clif_clearflooritem;
- clif->additem = clif_additem;
- clif->dropitem = clif_dropitem;
- clif->delitem = clif_delitem;
- clif->takeitem = clif_takeitem;
- clif->item_equip = clif_item_equip;
- clif->item_normal = clif_item_normal;
- clif->arrowequip = clif_arrowequip;
- clif->arrow_fail = clif_arrow_fail;
- clif->use_card = clif_use_card;
- clif->cart_additem = clif_cart_additem;
- clif->cart_delitem = clif_cart_delitem;
- clif->equipitemack = clif_equipitemack;
- clif->unequipitemack = clif_unequipitemack;
- clif->useitemack = clif_useitemack;
- clif->addcards = clif_addcards;
- clif->addcards2 = clif_addcards2;
- clif->item_sub = clif_item_sub;
- clif->getareachar_item = clif_getareachar_item;
- clif->cart_additem_ack = clif_cart_additem_ack;
- clif->cashshop_load = clif_cashshop_db;
- clif->package_announce = clif_package_item_announce;
- clif->item_drop_announce = clif_item_drop_announce;
-
- clif->clearunit_single = clif_clearunit_single;
- clif->clearunit_area = clif_clearunit_area;
- clif->clearunit_delayed = clif_clearunit_delayed;
- clif->walkok = clif_walkok;
- clif->move = clif_move;
- clif->move2 = clif_move2;
- clif->blown = clif_blown;
- clif->slide = clif_slide;
- clif->fixpos = clif_fixpos;
- clif->changelook = clif_changelook;
- clif->changetraplook = clif_changetraplook;
- clif->refreshlook = clif_refreshlook;
- clif->sendlook = clif_sendlook;
- clif->class_change = clif_class_change;
- clif->skill_delunit = clif_skill_delunit;
- clif->skillunit_update = clif_skillunit_update;
- clif->clearunit_delayed_sub = clif_clearunit_delayed_sub;
- clif->set_unit_idle = clif_set_unit_idle;
- clif->spawn_unit = clif_spawn_unit;
- clif->spawn_unit2 = clif_spawn_unit2;
- clif->set_unit_idle2 = clif_set_unit_idle2;
- clif->set_unit_walking = clif_set_unit_walking;
- clif->calc_walkdelay = clif_calc_walkdelay;
- clif->getareachar_skillunit = clif_getareachar_skillunit;
- clif->getareachar_unit = clif_getareachar_unit;
- clif->clearchar_skillunit = clif_clearchar_skillunit;
- clif->getareachar = clif_getareachar;
- clif->graffiti_entry = clif_graffiti_entry;
-
- clif->spawn = clif_spawn;
-
- clif->changemap = clif_changemap;
- clif->changemapcell = clif_changemapcell;
- clif->map_property = clif_map_property;
- clif->pvpset = clif_pvpset;
- clif->map_property_mapall = clif_map_property_mapall;
- clif->bossmapinfo = clif_bossmapinfo;
- clif->map_type = clif_map_type;
- clif->maptypeproperty2 = clif_maptypeproperty2;
-
- clif->changemapserver = clif_changemapserver;
-
- clif->npcbuysell = clif_npcbuysell;
- clif->buylist = clif_buylist;
- clif->selllist = clif_selllist;
- clif->cashshop_show = clif_cashshop_show;
- clif->npc_buy_result = clif_npc_buy_result;
- clif->npc_sell_result = clif_npc_sell_result;
- clif->cashshop_ack = clif_cashshop_ack;
-
- clif->scriptmes = clif_scriptmes;
- clif->scriptnext = clif_scriptnext;
- clif->scriptclose = clif_scriptclose;
- clif->scriptmenu = clif_scriptmenu;
- clif->scriptinput = clif_scriptinput;
- clif->scriptinputstr = clif_scriptinputstr;
- clif->cutin = clif_cutin;
- clif->sendfakenpc = clif_sendfakenpc;
- clif->scriptclear = clif_scriptclear;
-
- clif->viewpoint = clif_viewpoint;
- clif->damage = clif_damage;
- clif->sitting = clif_sitting;
- clif->standing = clif_standing;
- clif->arrow_create_list = clif_arrow_create_list;
- clif->refresh_storagewindow = clif_refresh_storagewindow;
- clif->refresh = clif_refresh;
- clif->fame_blacksmith = clif_fame_blacksmith;
- clif->fame_alchemist = clif_fame_alchemist;
- clif->fame_taekwon = clif_fame_taekwon;
- clif->ranklist = clif_ranklist;
- clif->pRanklist = clif_parse_ranklist;
- clif->update_rankingpoint = clif_update_rankingpoint;
- clif->hotkeys = clif_hotkeys_send;
- clif->insight = clif_insight;
- clif->outsight = clif_outsight;
- clif->skillcastcancel = clif_skillcastcancel;
- clif->skill_fail = clif_skill_fail;
- clif->skill_cooldown = clif_skill_cooldown;
- clif->skill_memomessage = clif_skill_memomessage;
- clif->skill_mapinfomessage = clif_skill_mapinfomessage;
- clif->skill_produce_mix_list = clif_skill_produce_mix_list;
- clif->cooking_list = clif_cooking_list;
- clif->autospell = clif_autospell;
- clif->combo_delay = clif_combo_delay;
- clif->status_change = clif_status_change;
- clif->insert_card = clif_insert_card;
- clif->inventorylist = clif_inventorylist;
- clif->equiplist = clif_equiplist;
- clif->cartlist = clif_cartlist;
- clif->favorite_item = clif_favorite_item;
- clif->clearcart = clif_clearcart;
- clif->item_identify_list = clif_item_identify_list;
- clif->item_identified = clif_item_identified;
- clif->item_repair_list = clif_item_repair_list;
- clif->item_repaireffect = clif_item_repaireffect;
- clif->item_damaged = clif_item_damaged;
- clif->item_refine_list = clif_item_refine_list;
- clif->item_skill = clif_item_skill;
- clif->mvp_item = clif_mvp_item;
- clif->mvp_exp = clif_mvp_exp;
- clif->mvp_noitem = clif_mvp_noitem;
- clif->changed_dir = clif_changed_dir;
- clif->charnameack = clif_charnameack;
- clif->monster_hp_bar = clif_monster_hp_bar;
- clif->hpmeter = clif_hpmeter;
- clif->hpmeter_single = clif_hpmeter_single;
- clif->hpmeter_sub = clif_hpmeter_sub;
- clif->upgrademessage = clif_upgrademessage;
- clif->get_weapon_view = clif_get_weapon_view;
- clif->gospel_info = clif_gospel_info;
- clif->feel_req = clif_feel_req;
- clif->starskill = clif_starskill;
- clif->feel_info = clif_feel_info;
- clif->hate_info = clif_hate_info;
- clif->mission_info = clif_mission_info;
- clif->feel_hate_reset = clif_feel_hate_reset;
- clif->partytickack = clif_partytickack;
- clif->equiptickack = clif_equiptickack;
- clif->viewequip_ack = clif_viewequip_ack;
- clif->equpcheckbox = clif_equpcheckbox;
- clif->displayexp = clif_displayexp;
- clif->font = clif_font;
- clif->progressbar = clif_progressbar;
- clif->progressbar_abort = clif_progressbar_abort;
- clif->showdigit = clif_showdigit;
- clif->elementalconverter_list = clif_elementalconverter_list;
- clif->spellbook_list = clif_spellbook_list;
- clif->magicdecoy_list = clif_magicdecoy_list;
- clif->poison_list = clif_poison_list;
- clif->autoshadowspell_list = clif_autoshadowspell_list;
- clif->skill_itemlistwindow = clif_skill_itemlistwindow;
- clif->sc_load = clif_status_change2;
- clif->sc_end = clif_status_change_end;
- clif->initialstatus = clif_initialstatus;
- clif->cooldown_list = clif_skill_cooldown_list;
-
- clif->updatestatus = clif_updatestatus;
- clif->changestatus = clif_changestatus;
- clif->statusupack = clif_statusupack;
- clif->movetoattack = clif_movetoattack;
- clif->solved_charname = clif_solved_charname;
- clif->charnameupdate = clif_charnameupdate;
- clif->delayquit = clif_delayquit;
- clif->getareachar_pc = clif_getareachar_pc;
- clif->disconnect_ack = clif_disconnect_ack;
- clif->PVPInfo = clif_PVPInfo;
- clif->blacksmith = clif_blacksmith;
- clif->alchemist = clif_alchemist;
- clif->taekwon = clif_taekwon;
- clif->ranking_pk = clif_ranking_pk;
- clif->quitsave = clif_quitsave;
-
- clif->misceffect = clif_misceffect;
- clif->changeoption = clif_changeoption;
- clif->changeoption2 = clif_changeoption2;
- clif->emotion = clif_emotion;
- clif->talkiebox = clif_talkiebox;
- clif->wedding_effect = clif_wedding_effect;
- clif->divorced = clif_divorced;
- clif->callpartner = clif_callpartner;
- clif->skill_damage = clif_skill_damage;
- clif->skill_nodamage = clif_skill_nodamage;
- clif->skill_poseffect = clif_skill_poseffect;
- clif->skill_estimation = clif_skill_estimation;
- clif->skill_warppoint = clif_skill_warppoint;
- clif->skillcasting = clif_skillcasting;
- clif->produce_effect = clif_produceeffect;
- clif->devotion = clif_devotion;
- clif->spiritball = clif_spiritball;
- clif->spiritball_single = clif_spiritball_single;
- clif->bladestop = clif_bladestop;
- clif->mvp_effect = clif_mvp_effect;
- clif->heal = clif_heal;
- clif->resurrection = clif_resurrection;
- clif->refine = clif_refine;
- clif->weather = clif_weather;
- clif->specialeffect = clif_specialeffect;
- clif->specialeffect_single = clif_specialeffect_single;
- clif->specialeffect_value = clif_specialeffect_value;
- clif->millenniumshield = clif_millenniumshield;
- clif->spiritcharm = clif_charm;
- clif->charm_single = clif_charm_single;
- clif->snap = clif_snap;
- clif->weather_check = clif_weather_check;
-
- clif->playBGM = clif_playBGM;
- clif->soundeffect = clif_soundeffect;
- clif->soundeffectall = clif_soundeffectall;
-
- clif->GlobalMessage = clif_GlobalMessage;
- clif->createchat = clif_createchat;
- clif->dispchat = clif_dispchat;
- clif->joinchatfail = clif_joinchatfail;
- clif->joinchatok = clif_joinchatok;
- clif->addchat = clif_addchat;
- clif->changechatowner = clif_changechatowner;
- clif->clearchat = clif_clearchat;
- clif->leavechat = clif_leavechat;
- clif->changechatstatus = clif_changechatstatus;
- clif->wis_message = clif_wis_message;
- clif->wis_end = clif_wis_end;
- clif->disp_message = clif_disp_message;
- clif->broadcast = clif_broadcast;
- clif->broadcast2 = clif_broadcast2;
- clif->messagecolor_self = clif_messagecolor_self;
- clif->messagecolor = clif_messagecolor;
- clif->disp_overhead = clif_disp_overhead;
- clif->msgtable_skill = clif_msgtable_skill;
- clif->msgtable = clif_msgtable;
- clif->msgtable_num = clif_msgtable_num;
- clif->message = clif_displaymessage;
- clif->messageln = clif_displaymessage2;
- clif->messages = clif_displaymessage_sprintf;
- clif->process_message = clif_process_message;
- clif->wisexin = clif_wisexin;
- clif->wisall = clif_wisall;
- clif->PMIgnoreList = clif_PMIgnoreList;
- clif->ShowScript = clif_ShowScript;
-
- clif->traderequest = clif_traderequest;
- clif->tradestart = clif_tradestart;
- clif->tradeadditem = clif_tradeadditem;
- clif->tradeitemok = clif_tradeitemok;
- clif->tradedeal_lock = clif_tradedeal_lock;
- clif->tradecancelled = clif_tradecancelled;
- clif->tradecompleted = clif_tradecompleted;
- clif->tradeundo = clif_tradeundo;
-
- clif->openvendingreq = clif_openvendingreq;
- clif->showvendingboard = clif_showvendingboard;
- clif->closevendingboard = clif_closevendingboard;
- clif->vendinglist = clif_vendinglist;
- clif->buyvending = clif_buyvending;
- clif->openvending = clif_openvending;
- clif->vendingreport = clif_vendingreport;
-
- clif->storagelist = clif_storagelist;
- clif->updatestorageamount = clif_updatestorageamount;
- clif->storageitemadded = clif_storageitemadded;
- clif->storageitemremoved = clif_storageitemremoved;
- clif->storageclose = clif_storageclose;
-
- clif->skillinfoblock = clif_skillinfoblock;
- clif->skillup = clif_skillup;
- clif->skillinfo = clif_skillinfo;
- clif->addskill = clif_addskill;
- clif->deleteskill = clif_deleteskill;
-
- clif->party_created = clif_party_created;
- clif->party_member_info = clif_party_member_info;
- clif->party_info = clif_party_info;
- clif->party_invite = clif_party_invite;
- clif->party_inviteack = clif_party_inviteack;
- clif->party_option = clif_party_option;
- clif->party_withdraw = clif_party_withdraw;
- clif->party_message = clif_party_message;
- clif->party_xy = clif_party_xy;
- clif->party_xy_single = clif_party_xy_single;
- clif->party_hp = clif_party_hp;
- clif->party_xy_remove = clif_party_xy_remove;
- clif->party_show_picker = clif_party_show_picker;
- clif->partyinvitationstate = clif_partyinvitationstate;
- clif->PartyLeaderChanged = clif_PartyLeaderChanged;
-
- clif->guild_created = clif_guild_created;
- clif->guild_belonginfo = clif_guild_belonginfo;
- clif->guild_masterormember = clif_guild_masterormember;
- clif->guild_basicinfo = clif_guild_basicinfo;
- clif->guild_allianceinfo = clif_guild_allianceinfo;
- clif->guild_memberlist = clif_guild_memberlist;
- clif->guild_skillinfo = clif_guild_skillinfo;
- clif->guild_send_onlineinfo = clif_guild_send_onlineinfo;
- clif->guild_memberlogin_notice = clif_guild_memberlogin_notice;
- clif->guild_invite = clif_guild_invite;
- clif->guild_inviteack = clif_guild_inviteack;
- clif->guild_leave = clif_guild_leave;
- clif->guild_expulsion = clif_guild_expulsion;
- clif->guild_positionchanged = clif_guild_positionchanged;
- clif->guild_memberpositionchanged = clif_guild_memberpositionchanged;
- clif->guild_emblem = clif_guild_emblem;
- clif->guild_emblem_area = clif_guild_emblem_area;
- clif->guild_notice = clif_guild_notice;
- clif->guild_message = clif_guild_message;
- clif->guild_reqalliance = clif_guild_reqalliance;
- clif->guild_allianceack = clif_guild_allianceack;
- clif->guild_delalliance = clif_guild_delalliance;
- clif->guild_oppositionack = clif_guild_oppositionack;
- clif->guild_broken = clif_guild_broken;
- clif->guild_xy = clif_guild_xy;
- clif->guild_xy_single = clif_guild_xy_single;
- clif->guild_xy_remove = clif_guild_xy_remove;
- clif->guild_positionnamelist = clif_guild_positionnamelist;
- clif->guild_positioninfolist = clif_guild_positioninfolist;
- clif->guild_expulsionlist = clif_guild_expulsionlist;
- clif->validate_emblem = clif_validate_emblem;
-
- clif->bg_hp = clif_bg_hp;
- clif->bg_xy = clif_bg_xy;
- clif->bg_xy_remove = clif_bg_xy_remove;
- clif->bg_message = clif_bg_message;
- clif->bg_updatescore = clif_bg_updatescore;
- clif->bg_updatescore_single = clif_bg_updatescore_single;
- clif->sendbgemblem_area = clif_sendbgemblem_area;
- clif->sendbgemblem_single = clif_sendbgemblem_single;
-
- clif->instance = clif_instance;
- clif->instance_join = clif_instance_join;
- clif->instance_leave = clif_instance_leave;
-
- clif->catch_process = clif_catch_process;
- clif->pet_roulette = clif_pet_roulette;
- clif->sendegg = clif_sendegg;
- clif->send_petstatus = clif_send_petstatus;
- clif->send_petdata = clif_send_petdata;
- clif->pet_emotion = clif_pet_emotion;
- clif->pet_food = clif_pet_food;
-
- clif->friendslist_toggle_sub = clif_friendslist_toggle_sub;
- clif->friendslist_send = clif_friendslist_send;
- clif->friendslist_reqack = clif_friendslist_reqack;
- clif->friendslist_toggle = clif_friendslist_toggle;
- clif->friendlist_req = clif_friendlist_req;
-
- clif->GM_kickack = clif_GM_kickack;
- clif->GM_kick = clif_GM_kick;
- clif->manner_message = clif_manner_message;
- clif->GM_silence = clif_GM_silence;
- clif->account_name = clif_account_name;
- clif->check = clif_check;
-
- clif->hominfo = clif_hominfo;
- clif->homskillinfoblock = clif_homskillinfoblock;
- clif->homskillup = clif_homskillup;
- clif->hom_food = clif_hom_food;
- clif->send_homdata = clif_send_homdata;
-
- clif->quest_send_list = clif_quest_send_list;
- clif->quest_send_mission = clif_quest_send_mission;
- clif->quest_add = clif_quest_add;
- clif->quest_delete = clif_quest_delete;
- clif->quest_update_status = clif_quest_update_status;
- clif->quest_update_objective = clif_quest_update_objective;
- clif->quest_show_event = clif_quest_show_event;
-
- clif->mail_window = clif_Mail_window;
- clif->mail_read = clif_Mail_read;
- clif->mail_delete = clif_Mail_delete;
- clif->mail_return = clif_Mail_return;
- clif->mail_send = clif_Mail_send;
- clif->mail_new = clif_Mail_new;
- clif->mail_refreshinbox = clif_Mail_refreshinbox;
- clif->mail_getattachment = clif_Mail_getattachment;
- clif->mail_setattachment = clif_Mail_setattachment;
-
- clif->auction_openwindow = clif_Auction_openwindow;
- clif->auction_results = clif_Auction_results;
- clif->auction_message = clif_Auction_message;
- clif->auction_close = clif_Auction_close;
- clif->auction_setitem = clif_Auction_setitem;
-
- clif->mercenary_info = clif_mercenary_info;
- clif->mercenary_skillblock = clif_mercenary_skillblock;
- clif->mercenary_message = clif_mercenary_message;
- clif->mercenary_updatestatus = clif_mercenary_updatestatus;
-
- clif->rental_time = clif_rental_time;
- clif->rental_expired = clif_rental_expired;
-
- clif->PartyBookingRegisterAck = clif_PartyBookingRegisterAck;
- clif->PartyBookingDeleteAck = clif_PartyBookingDeleteAck;
- clif->PartyBookingSearchAck = clif_PartyBookingSearchAck;
- clif->PartyBookingUpdateNotify = clif_PartyBookingUpdateNotify;
- clif->PartyBookingDeleteNotify = clif_PartyBookingDeleteNotify;
- clif->PartyBookingInsertNotify = clif_PartyBookingInsertNotify;
- clif->PartyRecruitRegisterAck = clif_PartyRecruitRegisterAck;
- clif->PartyRecruitDeleteAck = clif_PartyRecruitDeleteAck;
- clif->PartyRecruitSearchAck = clif_PartyRecruitSearchAck;
- clif->PartyRecruitUpdateNotify = clif_PartyRecruitUpdateNotify;
- clif->PartyRecruitDeleteNotify = clif_PartyRecruitDeleteNotify;
- clif->PartyRecruitInsertNotify = clif_PartyRecruitInsertNotify;
-
- clif->PartyBookingVolunteerInfo = clif_PartyBookingVolunteerInfo;
- clif->PartyBookingRefuseVolunteer = clif_PartyBookingRefuseVolunteer;
- clif->PartyBookingCancelVolunteer = clif_PartyBookingCancelVolunteer;
- clif->PartyBookingAddFilteringList = clif_PartyBookingAddFilteringList;
- clif->PartyBookingSubFilteringList = clif_PartyBookingSubFilteringList;
-
- clif->buyingstore_open = clif_buyingstore_open;
- clif->buyingstore_open_failed = clif_buyingstore_open_failed;
- clif->buyingstore_myitemlist = clif_buyingstore_myitemlist;
- clif->buyingstore_entry = clif_buyingstore_entry;
- clif->buyingstore_entry_single = clif_buyingstore_entry_single;
- clif->buyingstore_disappear_entry = clif_buyingstore_disappear_entry;
- clif->buyingstore_disappear_entry_single = clif_buyingstore_disappear_entry_single;
- clif->buyingstore_itemlist = clif_buyingstore_itemlist;
- clif->buyingstore_trade_failed_buyer = clif_buyingstore_trade_failed_buyer;
- clif->buyingstore_update_item = clif_buyingstore_update_item;
- clif->buyingstore_delete_item = clif_buyingstore_delete_item;
- clif->buyingstore_trade_failed_seller = clif_buyingstore_trade_failed_seller;
-
- clif->search_store_info_ack = clif_search_store_info_ack;
- clif->search_store_info_failed = clif_search_store_info_failed;
- clif->open_search_store_info = clif_open_search_store_info;
- clif->search_store_info_click_ack = clif_search_store_info_click_ack;
-
- clif->elemental_info = clif_elemental_info;
- clif->elemental_updatestatus = clif_elemental_updatestatus;
-
- clif->bgqueue_ack = clif_bgqueue_ack;
- clif->bgqueue_notice_delete = clif_bgqueue_notice_delete;
- clif->bgqueue_update_info = clif_bgqueue_update_info;
- clif->bgqueue_joined = clif_bgqueue_joined;
- clif->bgqueue_pcleft = clif_bgqueue_pcleft;
- clif->bgqueue_battlebegins = clif_bgqueue_battlebegins;
-
- clif->adopt_reply = clif_Adopt_reply;
- clif->adopt_request = clif_Adopt_request;
- clif->readbook = clif_readbook;
- clif->notify_time = clif_notify_time;
- clif->user_count = clif_user_count;
- clif->noask_sub = clif_noask_sub;
- clif->bc_ready = clif_bc_ready;
-
- clif->channel_msg = clif_channel_msg;
- clif->channel_msg2 = clif_channel_msg2;
-
- clif->undisguise_timer = clif_undisguise_timer;
-
- clif->bank_deposit = clif_bank_deposit;
- clif->bank_withdraw = clif_bank_withdraw;
-
- clif->show_modifiers = clif_show_modifiers;
-
- clif->notify_bounditem = clif_notify_bounditem;
-
- clif->delay_damage = clif_delay_damage;
- clif->delay_damage_sub = clif_delay_damage_sub;
-
- clif->npc_market_open = clif_npc_market_open;
- clif->npc_market_purchase_ack = clif_npc_market_purchase_ack;
-
- clif->parse_roulette_db = clif_parse_roulette_db;
- clif->roulette_generate_ack = clif_roulette_generate_ack;
-
- clif->openmergeitem = clif_openmergeitem;
- clif->cancelmergeitem = clif_cancelmergeitem;
- clif->comparemergeitem = clif_comparemergeitem;
- clif->ackmergeitems = clif_ackmergeitems;
-
- clif->selectcart = clif_selectcart;
-
-
-
-
- clif->pWantToConnection = clif_parse_WantToConnection;
- clif->pLoadEndAck = clif_parse_LoadEndAck;
- clif->pTickSend = clif_parse_TickSend;
- clif->pHotkey = clif_parse_Hotkey;
- clif->pProgressbar = clif_parse_progressbar;
- clif->pWalkToXY = clif_parse_WalkToXY;
- clif->pQuitGame = clif_parse_QuitGame;
- clif->pGetCharNameRequest = clif_parse_GetCharNameRequest;
- clif->pGlobalMessage = clif_parse_GlobalMessage;
- clif->pMapMove = clif_parse_MapMove;
- clif->pChangeDir = clif_parse_ChangeDir;
- clif->pEmotion = clif_parse_Emotion;
- clif->pHowManyConnections = clif_parse_HowManyConnections;
- clif->pActionRequest = clif_parse_ActionRequest;
- clif->pActionRequest_sub = clif_parse_ActionRequest_sub;
- clif->pRestart = clif_parse_Restart;
- clif->pWisMessage = clif_parse_WisMessage;
- clif->pBroadcast = clif_parse_Broadcast;
- clif->pTakeItem = clif_parse_TakeItem;
- clif->pDropItem = clif_parse_DropItem;
- clif->pUseItem = clif_parse_UseItem;
- clif->pEquipItem = clif_parse_EquipItem;
- clif->pUnequipItem = clif_parse_UnequipItem;
- clif->pNpcClicked = clif_parse_NpcClicked;
- clif->pNpcBuySellSelected = clif_parse_NpcBuySellSelected;
- clif->pNpcBuyListSend = clif_parse_NpcBuyListSend;
- clif->pNpcSellListSend = clif_parse_NpcSellListSend;
- clif->pCreateChatRoom = clif_parse_CreateChatRoom;
- clif->pChatAddMember = clif_parse_ChatAddMember;
- clif->pChatRoomStatusChange = clif_parse_ChatRoomStatusChange;
- clif->pChangeChatOwner = clif_parse_ChangeChatOwner;
- clif->pKickFromChat = clif_parse_KickFromChat;
- clif->pChatLeave = clif_parse_ChatLeave;
- clif->pTradeRequest = clif_parse_TradeRequest;
- clif->pTradeAck = clif_parse_TradeAck;
- clif->pTradeAddItem = clif_parse_TradeAddItem;
- clif->pTradeOk = clif_parse_TradeOk;
- clif->pTradeCancel = clif_parse_TradeCancel;
- clif->pTradeCommit = clif_parse_TradeCommit;
- clif->pStopAttack = clif_parse_StopAttack;
- clif->pPutItemToCart = clif_parse_PutItemToCart;
- clif->pGetItemFromCart = clif_parse_GetItemFromCart;
- clif->pRemoveOption = clif_parse_RemoveOption;
- clif->pChangeCart = clif_parse_ChangeCart;
- clif->pSelectCart = clif_parse_SelectCart;
- clif->pStatusUp = clif_parse_StatusUp;
- clif->pSkillUp = clif_parse_SkillUp;
- clif->pUseSkillToId = clif_parse_UseSkillToId;
- clif->pUseSkillToId_homun = clif_parse_UseSkillToId_homun;
- clif->pUseSkillToId_mercenary = clif_parse_UseSkillToId_mercenary;
- clif->pUseSkillToPos = clif_parse_UseSkillToPos;
- clif->pUseSkillToPosSub = clif_parse_UseSkillToPosSub;
- clif->pUseSkillToPos_homun = clif_parse_UseSkillToPos_homun;
- clif->pUseSkillToPos_mercenary = clif_parse_UseSkillToPos_mercenary;
- clif->pUseSkillToPosMoreInfo = clif_parse_UseSkillToPosMoreInfo;
- clif->pUseSkillMap = clif_parse_UseSkillMap;
- clif->pRequestMemo = clif_parse_RequestMemo;
- clif->pProduceMix = clif_parse_ProduceMix;
- clif->pCooking = clif_parse_Cooking;
- clif->pRepairItem = clif_parse_RepairItem;
- clif->pWeaponRefine = clif_parse_WeaponRefine;
- clif->pNpcSelectMenu = clif_parse_NpcSelectMenu;
- clif->pNpcNextClicked = clif_parse_NpcNextClicked;
- clif->pNpcAmountInput = clif_parse_NpcAmountInput;
- clif->pNpcStringInput = clif_parse_NpcStringInput;
- clif->pNpcCloseClicked = clif_parse_NpcCloseClicked;
- clif->pItemIdentify = clif_parse_ItemIdentify;
- clif->pSelectArrow = clif_parse_SelectArrow;
- clif->pAutoSpell = clif_parse_AutoSpell;
- clif->pUseCard = clif_parse_UseCard;
- clif->pInsertCard = clif_parse_InsertCard;
- clif->pSolveCharName = clif_parse_SolveCharName;
- clif->pResetChar = clif_parse_ResetChar;
- clif->pLocalBroadcast = clif_parse_LocalBroadcast;
- clif->pMoveToKafra = clif_parse_MoveToKafra;
- clif->pMoveFromKafra = clif_parse_MoveFromKafra;
- clif->pMoveToKafraFromCart = clif_parse_MoveToKafraFromCart;
- clif->pMoveFromKafraToCart = clif_parse_MoveFromKafraToCart;
- clif->pCloseKafra = clif_parse_CloseKafra;
- clif->pStoragePassword = clif_parse_StoragePassword;
- clif->pCreateParty = clif_parse_CreateParty;
- clif->pCreateParty2 = clif_parse_CreateParty2;
- clif->pPartyInvite = clif_parse_PartyInvite;
- clif->pPartyInvite2 = clif_parse_PartyInvite2;
- clif->pReplyPartyInvite = clif_parse_ReplyPartyInvite;
- clif->pReplyPartyInvite2 = clif_parse_ReplyPartyInvite2;
- clif->pLeaveParty = clif_parse_LeaveParty;
- clif->pRemovePartyMember = clif_parse_RemovePartyMember;
- clif->pPartyChangeOption = clif_parse_PartyChangeOption;
- clif->pPartyMessage = clif_parse_PartyMessage;
- clif->pPartyChangeLeader = clif_parse_PartyChangeLeader;
- clif->pPartyBookingRegisterReq = clif_parse_PartyBookingRegisterReq;
- clif->pPartyBookingSearchReq = clif_parse_PartyBookingSearchReq;
- clif->pPartyBookingDeleteReq = clif_parse_PartyBookingDeleteReq;
- clif->pPartyBookingUpdateReq = clif_parse_PartyBookingUpdateReq;
- clif->pPartyRecruitRegisterReq = clif_parse_PartyRecruitRegisterReq;
- clif->pPartyRecruitSearchReq = clif_parse_PartyRecruitSearchReq;
- clif->pPartyRecruitDeleteReq = clif_parse_PartyRecruitDeleteReq;
- clif->pPartyRecruitUpdateReq = clif_parse_PartyRecruitUpdateReq;
- clif->pCloseVending = clif_parse_CloseVending;
- clif->pVendingListReq = clif_parse_VendingListReq;
- clif->pPurchaseReq = clif_parse_PurchaseReq;
- clif->pPurchaseReq2 = clif_parse_PurchaseReq2;
- clif->pOpenVending = clif_parse_OpenVending;
- clif->pCreateGuild = clif_parse_CreateGuild;
- clif->pGuildCheckMaster = clif_parse_GuildCheckMaster;
- clif->pGuildRequestInfo = clif_parse_GuildRequestInfo;
- clif->pGuildChangePositionInfo = clif_parse_GuildChangePositionInfo;
- clif->pGuildChangeMemberPosition = clif_parse_GuildChangeMemberPosition;
- clif->pGuildRequestEmblem = clif_parse_GuildRequestEmblem;
- clif->pGuildChangeEmblem = clif_parse_GuildChangeEmblem;
- clif->pGuildChangeNotice = clif_parse_GuildChangeNotice;
- clif->pGuildInvite = clif_parse_GuildInvite;
- clif->pGuildReplyInvite = clif_parse_GuildReplyInvite;
- clif->pGuildLeave = clif_parse_GuildLeave;
- clif->pGuildExpulsion = clif_parse_GuildExpulsion;
- clif->pGuildMessage = clif_parse_GuildMessage;
- clif->pGuildRequestAlliance = clif_parse_GuildRequestAlliance;
- clif->pGuildReplyAlliance = clif_parse_GuildReplyAlliance;
- clif->pGuildDelAlliance = clif_parse_GuildDelAlliance;
- clif->pGuildOpposition = clif_parse_GuildOpposition;
- clif->pGuildBreak = clif_parse_GuildBreak;
- clif->pPetMenu = clif_parse_PetMenu;
- clif->pCatchPet = clif_parse_CatchPet;
- clif->pSelectEgg = clif_parse_SelectEgg;
- clif->pSendEmotion = clif_parse_SendEmotion;
- clif->pChangePetName = clif_parse_ChangePetName;
- clif->pGMKick = clif_parse_GMKick;
- clif->pGMKickAll = clif_parse_GMKickAll;
- clif->pGMShift = clif_parse_GMShift;
- clif->pGMRemove2 = clif_parse_GMRemove2;
- clif->pGMRecall = clif_parse_GMRecall;
- clif->pGMRecall2 = clif_parse_GMRecall2;
- clif->pGM_Monster_Item = clif_parse_GM_Monster_Item;
- clif->pGMHide = clif_parse_GMHide;
- clif->pGMReqNoChat = clif_parse_GMReqNoChat;
- clif->pGMRc = clif_parse_GMRc;
- clif->pGMReqAccountName = clif_parse_GMReqAccountName;
- clif->pGMChangeMapType = clif_parse_GMChangeMapType;
- clif->pGMFullStrip = clif_parse_GMFullStrip;
- clif->pPMIgnore = clif_parse_PMIgnore;
- clif->pPMIgnoreAll = clif_parse_PMIgnoreAll;
- clif->pPMIgnoreList = clif_parse_PMIgnoreList;
- clif->pNoviceDoriDori = clif_parse_NoviceDoriDori;
- clif->pNoviceExplosionSpirits = clif_parse_NoviceExplosionSpirits;
- clif->pFriendsListAdd = clif_parse_FriendsListAdd;
- clif->pFriendsListReply = clif_parse_FriendsListReply;
- clif->pFriendsListRemove = clif_parse_FriendsListRemove;
- clif->pPVPInfo = clif_parse_PVPInfo;
- clif->pBlacksmith = clif_parse_Blacksmith;
- clif->pAlchemist = clif_parse_Alchemist;
- clif->pTaekwon = clif_parse_Taekwon;
- clif->pRankingPk = clif_parse_RankingPk;
- clif->pFeelSaveOk = clif_parse_FeelSaveOk;
- clif->pChangeHomunculusName = clif_parse_ChangeHomunculusName;
- clif->pHomMoveToMaster = clif_parse_HomMoveToMaster;
- clif->pHomMoveTo = clif_parse_HomMoveTo;
- clif->pHomAttack = clif_parse_HomAttack;
- clif->pHomMenu = clif_parse_HomMenu;
- clif->pAutoRevive = clif_parse_AutoRevive;
- clif->pCheck = clif_parse_Check;
- clif->pMail_refreshinbox = clif_parse_Mail_refreshinbox;
- clif->pMail_read = clif_parse_Mail_read;
- clif->pMail_getattach = clif_parse_Mail_getattach;
- clif->pMail_delete = clif_parse_Mail_delete;
- clif->pMail_return = clif_parse_Mail_return;
- clif->pMail_setattach = clif_parse_Mail_setattach;
- clif->pMail_winopen = clif_parse_Mail_winopen;
- clif->pMail_send = clif_parse_Mail_send;
- clif->pAuction_cancelreg = clif_parse_Auction_cancelreg;
- clif->pAuction_setitem = clif_parse_Auction_setitem;
- clif->pAuction_register = clif_parse_Auction_register;
- clif->pAuction_cancel = clif_parse_Auction_cancel;
- clif->pAuction_close = clif_parse_Auction_close;
- clif->pAuction_bid = clif_parse_Auction_bid;
- clif->pAuction_search = clif_parse_Auction_search;
- clif->pAuction_buysell = clif_parse_Auction_buysell;
- clif->pcashshop_buy = clif_parse_cashshop_buy;
- clif->pAdopt_request = clif_parse_Adopt_request;
- clif->pAdopt_reply = clif_parse_Adopt_reply;
- clif->pViewPlayerEquip = clif_parse_ViewPlayerEquip;
- clif->pEquipTick = clif_parse_EquipTick;
- clif->pquestStateAck = clif_parse_questStateAck;
- clif->pmercenary_action = clif_parse_mercenary_action;
- clif->pBattleChat = clif_parse_BattleChat;
- clif->pLessEffect = clif_parse_LessEffect;
- clif->pItemListWindowSelected = clif_parse_ItemListWindowSelected;
- clif->pReqOpenBuyingStore = clif_parse_ReqOpenBuyingStore;
- clif->pReqCloseBuyingStore = clif_parse_ReqCloseBuyingStore;
- clif->pReqClickBuyingStore = clif_parse_ReqClickBuyingStore;
- clif->pReqTradeBuyingStore = clif_parse_ReqTradeBuyingStore;
- clif->pSearchStoreInfo = clif_parse_SearchStoreInfo;
- clif->pSearchStoreInfoNextPage = clif_parse_SearchStoreInfoNextPage;
- clif->pCloseSearchStoreInfo = clif_parse_CloseSearchStoreInfo;
- clif->pSearchStoreInfoListItemClick = clif_parse_SearchStoreInfoListItemClick;
- clif->pDebug = clif_parse_debug;
- clif->pSkillSelectMenu = clif_parse_SkillSelectMenu;
- clif->pMoveItem = clif_parse_MoveItem;
-
- clif->pDull = clif_parse_dull;
-
- clif->pBGQueueRegister = clif_parse_bgqueue_register;
- clif->pBGQueueCheckState = clif_parse_bgqueue_checkstate;
- clif->pBGQueueRevokeReq = clif_parse_bgqueue_revoke_req;
- clif->pBGQueueBattleBeginAck = clif_parse_bgqueue_battlebegin_ack;
-
- clif->pCashShopOpen = clif_parse_CashShopOpen;
- clif->pCashShopClose = clif_parse_CashShopClose;
- clif->pCashShopReqTab = clif_parse_CashShopReqTab;
- clif->pCashShopSchedule = clif_parse_CashShopSchedule;
- clif->pCashShopBuy = clif_parse_CashShopBuy;
-
- clif->pPartyTick = clif_parse_PartyTick;
- clif->pGuildInvite2 = clif_parse_GuildInvite2;
-
- clif->pPartyBookingAddFilter = clif_parse_PartyBookingAddFilteringList;
- clif->pPartyBookingSubFilter = clif_parse_PartyBookingSubFilteringList;
- clif->pPartyBookingReqVolunteer = clif_parse_PartyBookingReqVolunteer;
- clif->pPartyBookingRefuseVolunteer = clif_parse_PartyBookingRefuseVolunteer;
- clif->pPartyBookingCancelVolunteer = clif_parse_PartyBookingCancelVolunteer;
-
- clif->pBankDeposit = clif_parse_BankDeposit;
- clif->pBankWithdraw = clif_parse_BankWithdraw;
- clif->pBankCheck = clif_parse_BankCheck;
- clif->pBankOpen = clif_parse_BankOpen;
- clif->pBankClose = clif_parse_BankClose;
-
- clif->pRouletteOpen = clif_parse_RouletteOpen;
- clif->pRouletteInfo = clif_parse_RouletteInfo;
- clif->pRouletteClose = clif_parse_RouletteClose;
- clif->pRouletteGenerate = clif_parse_RouletteGenerate;
- clif->pRouletteRecvItem = clif_parse_RouletteRecvItem;
-
- clif->pNPCShopClosed = clif_parse_NPCShopClosed;
-
- clif->pNPCMarketClosed = clif_parse_NPCMarketClosed;
- clif->pNPCMarketPurchase = clif_parse_NPCMarketPurchase;
-
- clif->add_random_options = clif_add_random_options;
- clif->pHotkeyRowShift = clif_parse_HotkeyRowShift;
- clif->dressroom_open = clif_dressroom_open;
- clif->pOneClick_ItemIdentify = clif_parse_OneClick_ItemIdentify;
- clif->get_bl_name = clif_get_bl_name;
-}
diff --git a/servergreps/hercules/20150226/src/login.c b/servergreps/hercules/20150226/src/login.c
deleted file mode 100644
index 330a6e0..0000000
--- a/servergreps/hercules/20150226/src/login.c
+++ /dev/null
@@ -1,9118 +0,0 @@
-# 1 "../../../server-code/src/login/login.c"
-# 1 "<built-in>"
-# 1 "<command-line>"
-# 1 "/usr/include/stdc-predef.h" 1 3 4
-# 1 "<command-line>" 2
-# 1 "../../../server-code/src/login/login.c"
-# 23 "../../../server-code/src/login/login.c"
-# 1 "../../../server-code/src/login/login.h" 1
-# 24 "../../../server-code/src/login/login.h"
-# 1 "../../../server-code/src/common/hercules.h" 1
-# 23 "../../../server-code/src/common/hercules.h"
-# 1 "../../../server-code/src/config/core.h" 1
-# 90 "../../../server-code/src/config/core.h"
-# 1 "../../../server-code/src/config/./renewal.h" 1
-# 91 "../../../server-code/src/config/core.h" 2
-# 1 "../../../server-code/src/config/./secure.h" 1
-# 92 "../../../server-code/src/config/core.h" 2
-# 1 "../../../server-code/src/config/./classes/general.h" 1
-# 93 "../../../server-code/src/config/core.h" 2
-
-
-
-
-# 1 "../../../server-code/src/config/./const.h" 1
-# 62 "../../../server-code/src/config/./const.h"
- typedef short defType;
-# 98 "../../../server-code/src/config/core.h" 2
-# 24 "../../../server-code/src/common/hercules.h" 2
-# 1 "../../../server-code/src/common/cbasetypes.h" 1
-# 116 "../../../server-code/src/common/cbasetypes.h"
-# 1 "/usr/include/inttypes.h" 1 3 4
-# 25 "/usr/include/inttypes.h" 3 4
-# 1 "/usr/include/features.h" 1 3 4
-# 361 "/usr/include/features.h" 3 4
-# 1 "/usr/include/x86_64-linux-gnu/sys/cdefs.h" 1 3 4
-# 410 "/usr/include/x86_64-linux-gnu/sys/cdefs.h" 3 4
-# 1 "/usr/include/x86_64-linux-gnu/bits/wordsize.h" 1 3 4
-# 411 "/usr/include/x86_64-linux-gnu/sys/cdefs.h" 2 3 4
-# 362 "/usr/include/features.h" 2 3 4
-# 385 "/usr/include/features.h" 3 4
-# 1 "/usr/include/x86_64-linux-gnu/gnu/stubs.h" 1 3 4
-# 10 "/usr/include/x86_64-linux-gnu/gnu/stubs.h" 3 4
-# 1 "/usr/include/x86_64-linux-gnu/gnu/stubs-64.h" 1 3 4
-# 11 "/usr/include/x86_64-linux-gnu/gnu/stubs.h" 2 3 4
-# 386 "/usr/include/features.h" 2 3 4
-# 26 "/usr/include/inttypes.h" 2 3 4
-
-# 1 "/usr/lib/gcc/x86_64-linux-gnu/5/include/stdint.h" 1 3 4
-# 9 "/usr/lib/gcc/x86_64-linux-gnu/5/include/stdint.h" 3 4
-# 1 "/usr/include/stdint.h" 1 3 4
-# 26 "/usr/include/stdint.h" 3 4
-# 1 "/usr/include/x86_64-linux-gnu/bits/wchar.h" 1 3 4
-# 27 "/usr/include/stdint.h" 2 3 4
-# 1 "/usr/include/x86_64-linux-gnu/bits/wordsize.h" 1 3 4
-# 28 "/usr/include/stdint.h" 2 3 4
-# 36 "/usr/include/stdint.h" 3 4
-
-# 36 "/usr/include/stdint.h" 3 4
-typedef signed char int8_t;
-typedef short int int16_t;
-typedef int int32_t;
-
-typedef long int int64_t;
-
-
-
-
-
-
-
-typedef unsigned char uint8_t;
-typedef unsigned short int uint16_t;
-
-typedef unsigned int uint32_t;
-
-
-
-typedef unsigned long int uint64_t;
-# 65 "/usr/include/stdint.h" 3 4
-typedef signed char int_least8_t;
-typedef short int int_least16_t;
-typedef int int_least32_t;
-
-typedef long int int_least64_t;
-
-
-
-
-
-
-typedef unsigned char uint_least8_t;
-typedef unsigned short int uint_least16_t;
-typedef unsigned int uint_least32_t;
-
-typedef unsigned long int uint_least64_t;
-# 90 "/usr/include/stdint.h" 3 4
-typedef signed char int_fast8_t;
-
-typedef long int int_fast16_t;
-typedef long int int_fast32_t;
-typedef long int int_fast64_t;
-# 103 "/usr/include/stdint.h" 3 4
-typedef unsigned char uint_fast8_t;
-
-typedef unsigned long int uint_fast16_t;
-typedef unsigned long int uint_fast32_t;
-typedef unsigned long int uint_fast64_t;
-# 119 "/usr/include/stdint.h" 3 4
-typedef long int intptr_t;
-
-
-typedef unsigned long int uintptr_t;
-# 134 "/usr/include/stdint.h" 3 4
-typedef long int intmax_t;
-typedef unsigned long int uintmax_t;
-# 10 "/usr/lib/gcc/x86_64-linux-gnu/5/include/stdint.h" 2 3 4
-# 28 "/usr/include/inttypes.h" 2 3 4
-
-
-
-
-
-
-typedef int __gwchar_t;
-# 266 "/usr/include/inttypes.h" 3 4
-
-
-
-
-
-typedef struct
- {
- long int quot;
- long int rem;
- } imaxdiv_t;
-# 290 "/usr/include/inttypes.h" 3 4
-extern intmax_t imaxabs (intmax_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__));
-
-
-extern imaxdiv_t imaxdiv (intmax_t __numer, intmax_t __denom)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__));
-
-
-extern intmax_t strtoimax (const char *__restrict __nptr,
- char **__restrict __endptr, int __base) __attribute__ ((__nothrow__ , __leaf__));
-
-
-extern uintmax_t strtoumax (const char *__restrict __nptr,
- char ** __restrict __endptr, int __base) __attribute__ ((__nothrow__ , __leaf__));
-
-
-extern intmax_t wcstoimax (const __gwchar_t *__restrict __nptr,
- __gwchar_t **__restrict __endptr, int __base)
- __attribute__ ((__nothrow__ , __leaf__));
-
-
-extern uintmax_t wcstoumax (const __gwchar_t *__restrict __nptr,
- __gwchar_t ** __restrict __endptr, int __base)
- __attribute__ ((__nothrow__ , __leaf__));
-# 432 "/usr/include/inttypes.h" 3 4
-
-# 117 "../../../server-code/src/common/cbasetypes.h" 2
-
-# 1 "/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/limits.h" 1 3 4
-# 34 "/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/limits.h" 3 4
-# 1 "/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/syslimits.h" 1 3 4
-
-
-
-
-
-
-# 1 "/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/limits.h" 1 3 4
-# 168 "/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/limits.h" 3 4
-# 1 "/usr/include/limits.h" 1 3 4
-# 143 "/usr/include/limits.h" 3 4
-# 1 "/usr/include/x86_64-linux-gnu/bits/posix1_lim.h" 1 3 4
-# 160 "/usr/include/x86_64-linux-gnu/bits/posix1_lim.h" 3 4
-# 1 "/usr/include/x86_64-linux-gnu/bits/local_lim.h" 1 3 4
-# 38 "/usr/include/x86_64-linux-gnu/bits/local_lim.h" 3 4
-# 1 "/usr/include/linux/limits.h" 1 3 4
-# 39 "/usr/include/x86_64-linux-gnu/bits/local_lim.h" 2 3 4
-# 161 "/usr/include/x86_64-linux-gnu/bits/posix1_lim.h" 2 3 4
-# 144 "/usr/include/limits.h" 2 3 4
-
-
-
-# 1 "/usr/include/x86_64-linux-gnu/bits/posix2_lim.h" 1 3 4
-# 148 "/usr/include/limits.h" 2 3 4
-# 169 "/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/limits.h" 2 3 4
-# 8 "/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/syslimits.h" 2 3 4
-# 35 "/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/limits.h" 2 3 4
-# 119 "../../../server-code/src/common/cbasetypes.h" 2
-# 1 "/usr/include/time.h" 1 3 4
-# 29 "/usr/include/time.h" 3 4
-
-
-
-
-
-
-
-
-# 1 "/usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h" 1 3 4
-# 216 "/usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h" 3 4
-typedef long unsigned int size_t;
-# 38 "/usr/include/time.h" 2 3 4
-
-
-
-# 1 "/usr/include/x86_64-linux-gnu/bits/time.h" 1 3 4
-# 42 "/usr/include/time.h" 2 3 4
-# 55 "/usr/include/time.h" 3 4
-# 1 "/usr/include/x86_64-linux-gnu/bits/types.h" 1 3 4
-# 27 "/usr/include/x86_64-linux-gnu/bits/types.h" 3 4
-# 1 "/usr/include/x86_64-linux-gnu/bits/wordsize.h" 1 3 4
-# 28 "/usr/include/x86_64-linux-gnu/bits/types.h" 2 3 4
-
-
-typedef unsigned char __u_char;
-typedef unsigned short int __u_short;
-typedef unsigned int __u_int;
-typedef unsigned long int __u_long;
-
-
-typedef signed char __int8_t;
-typedef unsigned char __uint8_t;
-typedef signed short int __int16_t;
-typedef unsigned short int __uint16_t;
-typedef signed int __int32_t;
-typedef unsigned int __uint32_t;
-
-typedef signed long int __int64_t;
-typedef unsigned long int __uint64_t;
-
-
-
-
-
-
-
-typedef long int __quad_t;
-typedef unsigned long int __u_quad_t;
-# 121 "/usr/include/x86_64-linux-gnu/bits/types.h" 3 4
-# 1 "/usr/include/x86_64-linux-gnu/bits/typesizes.h" 1 3 4
-# 122 "/usr/include/x86_64-linux-gnu/bits/types.h" 2 3 4
-
-
-typedef unsigned long int __dev_t;
-typedef unsigned int __uid_t;
-typedef unsigned int __gid_t;
-typedef unsigned long int __ino_t;
-typedef unsigned long int __ino64_t;
-typedef unsigned int __mode_t;
-typedef unsigned long int __nlink_t;
-typedef long int __off_t;
-typedef long int __off64_t;
-typedef int __pid_t;
-typedef struct { int __val[2]; } __fsid_t;
-typedef long int __clock_t;
-typedef unsigned long int __rlim_t;
-typedef unsigned long int __rlim64_t;
-typedef unsigned int __id_t;
-typedef long int __time_t;
-typedef unsigned int __useconds_t;
-typedef long int __suseconds_t;
-
-typedef int __daddr_t;
-typedef int __key_t;
-
-
-typedef int __clockid_t;
-
-
-typedef void * __timer_t;
-
-
-typedef long int __blksize_t;
-
-
-
-
-typedef long int __blkcnt_t;
-typedef long int __blkcnt64_t;
-
-
-typedef unsigned long int __fsblkcnt_t;
-typedef unsigned long int __fsblkcnt64_t;
-
-
-typedef unsigned long int __fsfilcnt_t;
-typedef unsigned long int __fsfilcnt64_t;
-
-
-typedef long int __fsword_t;
-
-typedef long int __ssize_t;
-
-
-typedef long int __syscall_slong_t;
-
-typedef unsigned long int __syscall_ulong_t;
-
-
-
-typedef __off64_t __loff_t;
-typedef __quad_t *__qaddr_t;
-typedef char *__caddr_t;
-
-
-typedef long int __intptr_t;
-
-
-typedef unsigned int __socklen_t;
-# 56 "/usr/include/time.h" 2 3 4
-
-
-
-typedef __clock_t clock_t;
-
-
-
-# 73 "/usr/include/time.h" 3 4
-
-
-typedef __time_t time_t;
-
-
-
-# 91 "/usr/include/time.h" 3 4
-typedef __clockid_t clockid_t;
-# 103 "/usr/include/time.h" 3 4
-typedef __timer_t timer_t;
-# 120 "/usr/include/time.h" 3 4
-struct timespec
- {
- __time_t tv_sec;
- __syscall_slong_t tv_nsec;
- };
-
-
-
-
-
-
-
-
-struct tm
-{
- int tm_sec;
- int tm_min;
- int tm_hour;
- int tm_mday;
- int tm_mon;
- int tm_year;
- int tm_wday;
- int tm_yday;
- int tm_isdst;
-
-
- long int tm_gmtoff;
- const char *tm_zone;
-
-
-
-
-};
-
-
-
-
-
-
-
-
-struct itimerspec
- {
- struct timespec it_interval;
- struct timespec it_value;
- };
-
-
-struct sigevent;
-
-
-
-
-
-typedef __pid_t pid_t;
-# 186 "/usr/include/time.h" 3 4
-
-
-
-extern clock_t clock (void) __attribute__ ((__nothrow__ , __leaf__));
-
-
-extern time_t time (time_t *__timer) __attribute__ ((__nothrow__ , __leaf__));
-
-
-extern double difftime (time_t __time1, time_t __time0)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__));
-
-
-extern time_t mktime (struct tm *__tp) __attribute__ ((__nothrow__ , __leaf__));
-
-
-
-
-
-extern size_t strftime (char *__restrict __s, size_t __maxsize,
- const char *__restrict __format,
- const struct tm *__restrict __tp) __attribute__ ((__nothrow__ , __leaf__));
-
-# 221 "/usr/include/time.h" 3 4
-# 1 "/usr/include/xlocale.h" 1 3 4
-# 27 "/usr/include/xlocale.h" 3 4
-typedef struct __locale_struct
-{
-
- struct __locale_data *__locales[13];
-
-
- const unsigned short int *__ctype_b;
- const int *__ctype_tolower;
- const int *__ctype_toupper;
-
-
- const char *__names[13];
-} *__locale_t;
-
-
-typedef __locale_t locale_t;
-# 222 "/usr/include/time.h" 2 3 4
-
-extern size_t strftime_l (char *__restrict __s, size_t __maxsize,
- const char *__restrict __format,
- const struct tm *__restrict __tp,
- __locale_t __loc) __attribute__ ((__nothrow__ , __leaf__));
-# 236 "/usr/include/time.h" 3 4
-
-
-
-extern struct tm *gmtime (const time_t *__timer) __attribute__ ((__nothrow__ , __leaf__));
-
-
-
-extern struct tm *localtime (const time_t *__timer) __attribute__ ((__nothrow__ , __leaf__));
-
-
-
-
-
-extern struct tm *gmtime_r (const time_t *__restrict __timer,
- struct tm *__restrict __tp) __attribute__ ((__nothrow__ , __leaf__));
-
-
-
-extern struct tm *localtime_r (const time_t *__restrict __timer,
- struct tm *__restrict __tp) __attribute__ ((__nothrow__ , __leaf__));
-
-
-
-
-
-extern char *asctime (const struct tm *__tp) __attribute__ ((__nothrow__ , __leaf__));
-
-
-extern char *ctime (const time_t *__timer) __attribute__ ((__nothrow__ , __leaf__));
-
-
-
-
-
-
-
-extern char *asctime_r (const struct tm *__restrict __tp,
- char *__restrict __buf) __attribute__ ((__nothrow__ , __leaf__));
-
-
-extern char *ctime_r (const time_t *__restrict __timer,
- char *__restrict __buf) __attribute__ ((__nothrow__ , __leaf__));
-
-
-
-
-extern char *__tzname[2];
-extern int __daylight;
-extern long int __timezone;
-
-
-
-
-extern char *tzname[2];
-
-
-
-extern void tzset (void) __attribute__ ((__nothrow__ , __leaf__));
-
-
-
-extern int daylight;
-extern long int timezone;
-
-
-
-
-
-extern int stime (const time_t *__when) __attribute__ ((__nothrow__ , __leaf__));
-# 319 "/usr/include/time.h" 3 4
-extern time_t timegm (struct tm *__tp) __attribute__ ((__nothrow__ , __leaf__));
-
-
-extern time_t timelocal (struct tm *__tp) __attribute__ ((__nothrow__ , __leaf__));
-
-
-extern int dysize (int __year) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__));
-# 334 "/usr/include/time.h" 3 4
-extern int nanosleep (const struct timespec *__requested_time,
- struct timespec *__remaining);
-
-
-
-extern int clock_getres (clockid_t __clock_id, struct timespec *__res) __attribute__ ((__nothrow__ , __leaf__));
-
-
-extern int clock_gettime (clockid_t __clock_id, struct timespec *__tp) __attribute__ ((__nothrow__ , __leaf__));
-
-
-extern int clock_settime (clockid_t __clock_id, const struct timespec *__tp)
- __attribute__ ((__nothrow__ , __leaf__));
-
-
-
-
-
-
-extern int clock_nanosleep (clockid_t __clock_id, int __flags,
- const struct timespec *__req,
- struct timespec *__rem);
-
-
-extern int clock_getcpuclockid (pid_t __pid, clockid_t *__clock_id) __attribute__ ((__nothrow__ , __leaf__));
-
-
-
-
-extern int timer_create (clockid_t __clock_id,
- struct sigevent *__restrict __evp,
- timer_t *__restrict __timerid) __attribute__ ((__nothrow__ , __leaf__));
-
-
-extern int timer_delete (timer_t __timerid) __attribute__ ((__nothrow__ , __leaf__));
-
-
-extern int timer_settime (timer_t __timerid, int __flags,
- const struct itimerspec *__restrict __value,
- struct itimerspec *__restrict __ovalue) __attribute__ ((__nothrow__ , __leaf__));
-
-
-extern int timer_gettime (timer_t __timerid, struct itimerspec *__value)
- __attribute__ ((__nothrow__ , __leaf__));
-
-
-extern int timer_getoverrun (timer_t __timerid) __attribute__ ((__nothrow__ , __leaf__));
-
-
-
-
-
-extern int timespec_get (struct timespec *__ts, int __base)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
-# 430 "/usr/include/time.h" 3 4
-
-# 120 "../../../server-code/src/common/cbasetypes.h" 2
-# 140 "../../../server-code/src/common/cbasetypes.h"
-
-# 140 "../../../server-code/src/common/cbasetypes.h"
-typedef int8_t int8;
-typedef int16_t int16;
-typedef int32_t int32;
-typedef int64_t int64;
-
-typedef int8_t sint8;
-typedef int16_t sint16;
-typedef int32_t sint32;
-typedef int64_t sint64;
-
-typedef uint8_t uint8;
-typedef uint16_t uint16;
-typedef uint32_t uint32;
-typedef uint64_t uint64;
-# 196 "../../../server-code/src/common/cbasetypes.h"
-typedef long int ppint;
-typedef long int ppint8;
-typedef long int ppint16;
-typedef long int ppint32;
-
-typedef unsigned long int ppuint;
-typedef unsigned long int ppuint8;
-typedef unsigned long int ppuint16;
-typedef unsigned long int ppuint32;
-
-
-
-
-
-# 1 "/usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h" 1 3 4
-# 149 "/usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h" 3 4
-
-# 149 "/usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h" 3 4
-typedef long int ptrdiff_t;
-# 328 "/usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h" 3 4
-typedef int wchar_t;
-# 426 "/usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h" 3 4
-typedef struct {
- long long __max_align_ll __attribute__((__aligned__(__alignof__(long long))));
- long double __max_align_ld __attribute__((__aligned__(__alignof__(long double))));
-} max_align_t;
-# 211 "../../../server-code/src/common/cbasetypes.h" 2
-# 227 "../../../server-code/src/common/cbasetypes.h"
-
-# 227 "../../../server-code/src/common/cbasetypes.h"
-typedef intptr_t intptr;
-typedef uintptr_t uintptr;
-
-
-
-
-
-
-
- typedef int64 sysint;
- typedef uint64 usysint;
-# 305 "../../../server-code/src/common/cbasetypes.h"
-# 1 "/usr/lib/gcc/x86_64-linux-gnu/5/include/stdbool.h" 1 3 4
-# 306 "../../../server-code/src/common/cbasetypes.h" 2
-# 395 "../../../server-code/src/common/cbasetypes.h"
-# 1 "/usr/include/ctype.h" 1 3 4
-# 28 "/usr/include/ctype.h" 3 4
-
-# 39 "/usr/include/ctype.h" 3 4
-# 1 "/usr/include/endian.h" 1 3 4
-# 36 "/usr/include/endian.h" 3 4
-# 1 "/usr/include/x86_64-linux-gnu/bits/endian.h" 1 3 4
-# 37 "/usr/include/endian.h" 2 3 4
-# 60 "/usr/include/endian.h" 3 4
-# 1 "/usr/include/x86_64-linux-gnu/bits/byteswap.h" 1 3 4
-# 28 "/usr/include/x86_64-linux-gnu/bits/byteswap.h" 3 4
-# 1 "/usr/include/x86_64-linux-gnu/bits/wordsize.h" 1 3 4
-# 29 "/usr/include/x86_64-linux-gnu/bits/byteswap.h" 2 3 4
-
-
-
-
-
-
-# 1 "/usr/include/x86_64-linux-gnu/bits/byteswap-16.h" 1 3 4
-# 36 "/usr/include/x86_64-linux-gnu/bits/byteswap.h" 2 3 4
-# 44 "/usr/include/x86_64-linux-gnu/bits/byteswap.h" 3 4
-
-# 44 "/usr/include/x86_64-linux-gnu/bits/byteswap.h" 3 4
-static __inline unsigned int
-__bswap_32 (unsigned int __bsx)
-{
- return __builtin_bswap32 (__bsx);
-}
-# 108 "/usr/include/x86_64-linux-gnu/bits/byteswap.h" 3 4
-static __inline __uint64_t
-__bswap_64 (__uint64_t __bsx)
-{
- return __builtin_bswap64 (__bsx);
-}
-# 61 "/usr/include/endian.h" 2 3 4
-# 40 "/usr/include/ctype.h" 2 3 4
-
-
-
-
-
-
-enum
-{
- _ISupper = ((0) < 8 ? ((1 << (0)) << 8) : ((1 << (0)) >> 8)),
- _ISlower = ((1) < 8 ? ((1 << (1)) << 8) : ((1 << (1)) >> 8)),
- _ISalpha = ((2) < 8 ? ((1 << (2)) << 8) : ((1 << (2)) >> 8)),
- _ISdigit = ((3) < 8 ? ((1 << (3)) << 8) : ((1 << (3)) >> 8)),
- _ISxdigit = ((4) < 8 ? ((1 << (4)) << 8) : ((1 << (4)) >> 8)),
- _ISspace = ((5) < 8 ? ((1 << (5)) << 8) : ((1 << (5)) >> 8)),
- _ISprint = ((6) < 8 ? ((1 << (6)) << 8) : ((1 << (6)) >> 8)),
- _ISgraph = ((7) < 8 ? ((1 << (7)) << 8) : ((1 << (7)) >> 8)),
- _ISblank = ((8) < 8 ? ((1 << (8)) << 8) : ((1 << (8)) >> 8)),
- _IScntrl = ((9) < 8 ? ((1 << (9)) << 8) : ((1 << (9)) >> 8)),
- _ISpunct = ((10) < 8 ? ((1 << (10)) << 8) : ((1 << (10)) >> 8)),
- _ISalnum = ((11) < 8 ? ((1 << (11)) << 8) : ((1 << (11)) >> 8))
-};
-# 79 "/usr/include/ctype.h" 3 4
-extern const unsigned short int **__ctype_b_loc (void)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__));
-extern const __int32_t **__ctype_tolower_loc (void)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__));
-extern const __int32_t **__ctype_toupper_loc (void)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__));
-# 104 "/usr/include/ctype.h" 3 4
-
-
-
-
-
-
-extern int isalnum (int) __attribute__ ((__nothrow__ , __leaf__));
-extern int isalpha (int) __attribute__ ((__nothrow__ , __leaf__));
-extern int iscntrl (int) __attribute__ ((__nothrow__ , __leaf__));
-extern int isdigit (int) __attribute__ ((__nothrow__ , __leaf__));
-extern int islower (int) __attribute__ ((__nothrow__ , __leaf__));
-extern int isgraph (int) __attribute__ ((__nothrow__ , __leaf__));
-extern int isprint (int) __attribute__ ((__nothrow__ , __leaf__));
-extern int ispunct (int) __attribute__ ((__nothrow__ , __leaf__));
-extern int isspace (int) __attribute__ ((__nothrow__ , __leaf__));
-extern int isupper (int) __attribute__ ((__nothrow__ , __leaf__));
-extern int isxdigit (int) __attribute__ ((__nothrow__ , __leaf__));
-
-
-
-extern int tolower (int __c) __attribute__ ((__nothrow__ , __leaf__));
-
-
-extern int toupper (int __c) __attribute__ ((__nothrow__ , __leaf__));
-
-
-
-
-
-
-
-
-extern int isblank (int) __attribute__ ((__nothrow__ , __leaf__));
-
-
-# 150 "/usr/include/ctype.h" 3 4
-extern int isascii (int __c) __attribute__ ((__nothrow__ , __leaf__));
-
-
-
-extern int toascii (int __c) __attribute__ ((__nothrow__ , __leaf__));
-
-
-
-extern int _toupper (int) __attribute__ ((__nothrow__ , __leaf__));
-extern int _tolower (int) __attribute__ ((__nothrow__ , __leaf__));
-# 271 "/usr/include/ctype.h" 3 4
-extern int isalnum_l (int, __locale_t) __attribute__ ((__nothrow__ , __leaf__));
-extern int isalpha_l (int, __locale_t) __attribute__ ((__nothrow__ , __leaf__));
-extern int iscntrl_l (int, __locale_t) __attribute__ ((__nothrow__ , __leaf__));
-extern int isdigit_l (int, __locale_t) __attribute__ ((__nothrow__ , __leaf__));
-extern int islower_l (int, __locale_t) __attribute__ ((__nothrow__ , __leaf__));
-extern int isgraph_l (int, __locale_t) __attribute__ ((__nothrow__ , __leaf__));
-extern int isprint_l (int, __locale_t) __attribute__ ((__nothrow__ , __leaf__));
-extern int ispunct_l (int, __locale_t) __attribute__ ((__nothrow__ , __leaf__));
-extern int isspace_l (int, __locale_t) __attribute__ ((__nothrow__ , __leaf__));
-extern int isupper_l (int, __locale_t) __attribute__ ((__nothrow__ , __leaf__));
-extern int isxdigit_l (int, __locale_t) __attribute__ ((__nothrow__ , __leaf__));
-
-extern int isblank_l (int, __locale_t) __attribute__ ((__nothrow__ , __leaf__));
-
-
-
-extern int __tolower_l (int __c, __locale_t __l) __attribute__ ((__nothrow__ , __leaf__));
-extern int tolower_l (int __c, __locale_t __l) __attribute__ ((__nothrow__ , __leaf__));
-
-
-extern int __toupper_l (int __c, __locale_t __l) __attribute__ ((__nothrow__ , __leaf__));
-extern int toupper_l (int __c, __locale_t __l) __attribute__ ((__nothrow__ , __leaf__));
-# 347 "/usr/include/ctype.h" 3 4
-
-# 396 "../../../server-code/src/common/cbasetypes.h" 2
-# 417 "../../../server-code/src/common/cbasetypes.h"
-# 1 "/usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h" 1 3 4
-# 40 "/usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h" 3 4
-typedef __builtin_va_list __gnuc_va_list;
-# 98 "/usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h" 3 4
-typedef __gnuc_va_list va_list;
-# 418 "../../../server-code/src/common/cbasetypes.h" 2
-# 25 "../../../server-code/src/common/hercules.h" 2
-# 25 "../../../server-code/src/login/login.h" 2
-# 1 "../../../server-code/src/common/core.h" 1
-# 25 "../../../server-code/src/common/core.h"
-# 1 "../../../server-code/src/common/db.h" 1
-# 90 "../../../server-code/src/common/db.h"
-
-# 90 "../../../server-code/src/common/db.h"
-enum DBReleaseOption {
- DB_RELEASE_NOTHING = 0x0,
- DB_RELEASE_KEY = 0x1,
- DB_RELEASE_DATA = 0x2,
- DB_RELEASE_BOTH = DB_RELEASE_KEY|DB_RELEASE_DATA,
-};
-# 117 "../../../server-code/src/common/db.h"
-enum DBType {
- DB_INT,
- DB_UINT,
- DB_STRING,
- DB_ISTRING,
- DB_INT64,
- DB_UINT64,
-};
-# 148 "../../../server-code/src/common/db.h"
-enum DBOptions {
- DB_OPT_BASE = 0x00,
- DB_OPT_DUP_KEY = 0x01,
- DB_OPT_RELEASE_KEY = 0x02,
- DB_OPT_RELEASE_DATA = 0x04,
- DB_OPT_RELEASE_BOTH = DB_OPT_RELEASE_KEY|DB_OPT_RELEASE_DATA,
- DB_OPT_ALLOW_NULL_KEY = 0x08,
- DB_OPT_ALLOW_NULL_DATA = 0x10,
-};
-# 169 "../../../server-code/src/common/db.h"
-union DBKey {
- int i;
- unsigned int ui;
- const char *str;
- char *mutstr;
- int64 i64;
- uint64 ui64;
-};
-# 186 "../../../server-code/src/common/db.h"
-enum DBDataType {
- DB_DATA_INT,
- DB_DATA_UINT,
- DB_DATA_PTR,
-};
-# 201 "../../../server-code/src/common/db.h"
-struct DBData {
- enum DBDataType type;
- union {
- int i;
- unsigned int ui;
- void *ptr;
- } u;
-};
-# 220 "../../../server-code/src/common/db.h"
-typedef struct DBData (*DBCreateData)(union DBKey key, va_list args);
-# 237 "../../../server-code/src/common/db.h"
-typedef int (*DBApply)(union DBKey key, struct DBData *data, va_list args);
-# 250 "../../../server-code/src/common/db.h"
-typedef int (*DBMatcher)(union DBKey key, struct DBData data, va_list args);
-# 264 "../../../server-code/src/common/db.h"
-typedef int (*DBComparator)(union DBKey key1, union DBKey key2, unsigned short maxlen);
-# 276 "../../../server-code/src/common/db.h"
-typedef uint64 (*DBHasher)(union DBKey key, unsigned short maxlen);
-# 290 "../../../server-code/src/common/db.h"
-typedef void (*DBReleaser)(union DBKey key, struct DBData data, enum DBReleaseOption which);
-# 304 "../../../server-code/src/common/db.h"
-struct DBIterator {
-# 314 "../../../server-code/src/common/db.h"
- struct DBData *(*first)(struct DBIterator *self, union DBKey *out_key);
-# 325 "../../../server-code/src/common/db.h"
- struct DBData *(*last)(struct DBIterator *self, union DBKey *out_key);
-# 336 "../../../server-code/src/common/db.h"
- struct DBData *(*next)(struct DBIterator *self, union DBKey *out_key);
-# 347 "../../../server-code/src/common/db.h"
- struct DBData *(*prev)(struct DBIterator *self, union DBKey *out_key);
-# 357 "../../../server-code/src/common/db.h"
-
-# 357 "../../../server-code/src/common/db.h" 3 4
-_Bool
-# 357 "../../../server-code/src/common/db.h"
- (*exists)(struct DBIterator *self);
-# 372 "../../../server-code/src/common/db.h"
- int (*remove)(struct DBIterator *self, struct DBData *out_data);
-
-
-
-
-
-
- void (*destroy)(struct DBIterator *self);
-
-};
-
-
-
-
-
-
-
-struct DBMap {
-# 400 "../../../server-code/src/common/db.h"
- struct DBIterator *(*iterator)(struct DBMap *self);
-# 409 "../../../server-code/src/common/db.h"
-
-# 409 "../../../server-code/src/common/db.h" 3 4
-_Bool
-# 409 "../../../server-code/src/common/db.h"
- (*exists)(struct DBMap *self, union DBKey key);
-# 418 "../../../server-code/src/common/db.h"
- struct DBData *(*get)(struct DBMap *self, union DBKey key);
-# 438 "../../../server-code/src/common/db.h"
- unsigned int (*getall)(struct DBMap *self, struct DBData **buf, unsigned int max, DBMatcher match, ...);
-# 456 "../../../server-code/src/common/db.h"
- unsigned int (*vgetall)(struct DBMap *self, struct DBData **buf, unsigned int max, DBMatcher match, va_list args);
-# 472 "../../../server-code/src/common/db.h"
- struct DBData *(*ensure)(struct DBMap *self, union DBKey key, DBCreateData create, ...);
-# 486 "../../../server-code/src/common/db.h"
- struct DBData *(*vensure)(struct DBMap *self, union DBKey key, DBCreateData create, va_list args);
-# 499 "../../../server-code/src/common/db.h"
- int (*put)(struct DBMap *self, union DBKey key, struct DBData data, struct DBData *out_data);
-# 511 "../../../server-code/src/common/db.h"
- int (*remove)(struct DBMap *self, union DBKey key, struct DBData *out_data);
-# 525 "../../../server-code/src/common/db.h"
- int (*foreach)(struct DBMap *self, DBApply func, ...);
-# 537 "../../../server-code/src/common/db.h"
- int (*vforeach)(struct DBMap *self, DBApply func, va_list args);
-# 553 "../../../server-code/src/common/db.h"
- int (*clear)(struct DBMap *self, DBApply func, ...);
-# 567 "../../../server-code/src/common/db.h"
- int (*vclear)(struct DBMap *self, DBApply func, va_list args);
-# 584 "../../../server-code/src/common/db.h"
- int (*destroy)(struct DBMap *self, DBApply func, ...);
-# 599 "../../../server-code/src/common/db.h"
- int (*vdestroy)(struct DBMap *self, DBApply func, va_list args);
-
-
-
-
-
-
-
- unsigned int (*size)(struct DBMap *self);
-
-
-
-
-
-
-
- enum DBType (*type)(struct DBMap *self);
-
-
-
-
-
-
-
- enum DBOptions (*options)(struct DBMap *self);
-
-};
-# 745 "../../../server-code/src/common/db.h"
-struct db_interface {
-# 758 "../../../server-code/src/common/db.h"
-enum DBOptions (*fix_options) (enum DBType type, enum DBOptions options);
-# 768 "../../../server-code/src/common/db.h"
-DBComparator (*default_cmp) (enum DBType type);
-# 778 "../../../server-code/src/common/db.h"
-DBHasher (*default_hash) (enum DBType type);
-# 797 "../../../server-code/src/common/db.h"
-DBReleaser (*default_release) (enum DBType type, enum DBOptions options);
-# 808 "../../../server-code/src/common/db.h"
-DBReleaser (*custom_release) (enum DBReleaseOption which);
-# 834 "../../../server-code/src/common/db.h"
-struct DBMap *(*alloc) (const char *file, const char *func, int line, enum DBType type, enum DBOptions options, unsigned short maxlen);
-
-
-
-
-
-
-
-union DBKey (*i2key) (int key);
-
-
-
-
-
-
-
-union DBKey (*ui2key) (unsigned int key);
-
-
-
-
-
-
-
-union DBKey (*str2key) (const char *key);
-
-
-
-
-
-
-
-union DBKey (*i642key) (int64 key);
-
-
-
-
-
-
-
-union DBKey (*ui642key) (uint64 key);
-
-
-
-
-
-
-
-struct DBData (*i2data) (int data);
-
-
-
-
-
-
-
-struct DBData (*ui2data) (unsigned int data);
-
-
-
-
-
-
-
-struct DBData (*ptr2data) (void *data);
-# 907 "../../../server-code/src/common/db.h"
-int (*data2i) (struct DBData *data);
-# 916 "../../../server-code/src/common/db.h"
-unsigned int (*data2ui) (struct DBData *data);
-# 925 "../../../server-code/src/common/db.h"
-void* (*data2ptr) (struct DBData *data);
-
-
-
-
-
-
-void (*init) (void);
-
-
-
-
-
-
-
-void (*final) (void);
-};
-
-
-struct linkdb_node {
- struct linkdb_node *next;
- struct linkdb_node *prev;
- void *key;
- void *data;
-};
-
-typedef void (*LinkDBFunc)(void* key, void* data, va_list args);
-
-
-void linkdb_insert (struct linkdb_node** head, void *key, void* data);
-void linkdb_replace (struct linkdb_node** head, void *key, void* data);
-void* linkdb_search (struct linkdb_node** head, void *key);
-void* linkdb_erase (struct linkdb_node** head, void *key);
-void linkdb_final (struct linkdb_node** head);
-void linkdb_vforeach(struct linkdb_node** head, LinkDBFunc func, va_list ap);
-void linkdb_foreach (struct linkdb_node** head, LinkDBFunc func, ...);
-
-void db_defaults(void);
-
-
-extern struct db_interface *DB;
-# 26 "../../../server-code/src/common/core.h" 2
-# 34 "../../../server-code/src/common/core.h"
-enum server_types {
- SERVER_TYPE_UNKNOWN = 0x0,
- SERVER_TYPE_LOGIN = 0x1,
- SERVER_TYPE_CHAR = 0x2,
- SERVER_TYPE_MAP = 0x4,
-};
-
-
-enum E_CORE_ST {
- CORE_ST_STOP = 0,
- CORE_ST_RUN,
- CORE_ST_LAST
-};
-
-
-enum cmdline_options {
- CMDLINE_OPT_NORMAL = 0x0,
- CMDLINE_OPT_PARAM = 0x1,
- CMDLINE_OPT_SILENT = 0x2,
- CMDLINE_OPT_PREINIT = 0x4,
-};
-typedef
-# 55 "../../../server-code/src/common/core.h" 3 4
- _Bool
-# 55 "../../../server-code/src/common/core.h"
- (*CmdlineExecFunc)(const char *name, const char *params);
-struct CmdlineArgData {
- unsigned int pluginID;
- unsigned int options;
- char *name;
- char shortname;
- CmdlineExecFunc func;
- char *help;
-};
-
-struct cmdline_interface {
- struct { int _max_; int _len_; struct CmdlineArgData *_data_; } args_data;
-
- void (*init) (void);
- void (*final) (void);
-
-# 70 "../../../server-code/src/common/core.h" 3 4
-_Bool
-# 70 "../../../server-code/src/common/core.h"
- (*arg_add) (unsigned int pluginID, const char *name, char shortname, CmdlineExecFunc func, const char *help, unsigned int options);
- int (*exec) (int argc, char **argv, unsigned int options);
-
-# 72 "../../../server-code/src/common/core.h" 3 4
-_Bool
-# 72 "../../../server-code/src/common/core.h"
- (*arg_next_value) (const char *name, int current_arg, int argc);
- const char *(*arg_source) (struct CmdlineArgData *arg);
-};
-
-struct core_interface {
- int arg_c;
- char **arg_v;
-
- int runflag;
- char *server_name;
- enum server_types server_type;
-
-
-
- void (*shutdown_callback)(void);
-};
-
-
-
-
-
-
-extern void cmdline_args_init_local(void);
-extern int do_init(int,char**);
-extern void set_server_type(void);
-extern void do_abort(void);
-extern int do_final(void);
-
-
-
-
-
-
-
-void cmdline_defaults(void);
-
-
-extern struct core_interface *core;
-extern struct cmdline_interface *cmdline;
-# 26 "../../../server-code/src/login/login.h" 2
-
-# 1 "../../../server-code/src/common/mmo.h" 1
-# 225 "../../../server-code/src/common/mmo.h"
-struct hplugin_data_store;
-
-enum item_types {
- IT_HEALING = 0,
- IT_UNKNOWN,
- IT_USABLE,
- IT_ETC,
- IT_WEAPON,
- IT_ARMOR,
- IT_CARD,
- IT_PETEGG,
- IT_PETARMOR,
- IT_UNKNOWN2,
- IT_AMMO,
- IT_DELAYCONSUME,
- IT_CASH = 18,
- IT_MAX
-};
-
-
-
-
-enum quest_state {
- Q_INACTIVE,
- Q_ACTIVE,
- Q_COMPLETE,
-};
-
-
-struct quest {
- int quest_id;
- unsigned int time;
- int count[3];
- enum quest_state state;
-};
-
-struct item {
- int id;
- short nameid;
- short amount;
- unsigned int equip;
- char identify;
- char refine;
- char attribute;
- short card[4];
- unsigned int expire_time;
- char favorite;
- unsigned char bound;
- uint64 unique_id;
-};
-
-
-enum equip_pos {
- EQP_NONE = 0x000000,
- EQP_HEAD_LOW = 0x000001,
- EQP_HEAD_MID = 0x000200,
- EQP_HEAD_TOP = 0x000100,
- EQP_HAND_R = 0x000002,
- EQP_HAND_L = 0x000020,
- EQP_ARMOR = 0x000010,
- EQP_SHOES = 0x000040,
- EQP_GARMENT = 0x000004,
- EQP_ACC_L = 0x000008,
- EQP_ACC_R = 0x000080,
- EQP_COSTUME_HEAD_TOP = 0x000400,
- EQP_COSTUME_HEAD_MID = 0x000800,
- EQP_COSTUME_HEAD_LOW = 0x001000,
- EQP_COSTUME_GARMENT = 0x002000,
-
- EQP_AMMO = 0x008000,
- EQP_SHADOW_ARMOR = 0x010000,
- EQP_SHADOW_WEAPON = 0x020000,
- EQP_SHADOW_SHIELD = 0x040000,
- EQP_SHADOW_SHOES = 0x080000,
- EQP_SHADOW_ACC_R = 0x100000,
- EQP_SHADOW_ACC_L = 0x200000,
-};
-
-struct point {
- unsigned short map;
- short x,y;
-};
-
-enum e_skill_flag
-{
- SKILL_FLAG_PERMANENT,
- SKILL_FLAG_TEMPORARY,
- SKILL_FLAG_PLAGIARIZED,
- SKILL_FLAG_UNUSED,
- SKILL_FLAG_PERM_GRANTED,
-
-
- SKILL_FLAG_REPLACED_LV_0,
-};
-
-enum e_mmo_charstatus_opt {
- OPT_NONE = 0x0,
- OPT_SHOW_EQUIP = 0x1,
- OPT_ALLOW_PARTY = 0x2,
-};
-
-enum e_item_bound_type {
- IBT_NONE = 0x0,
- IBT_MIN = 0x1,
- IBT_ACCOUNT = 0x1,
- IBT_GUILD = 0x2,
- IBT_PARTY = 0x3,
- IBT_CHARACTER = 0x4,
- IBT_MAX = 0x4,
-};
-
-enum {
- OPTION_NOTHING = 0x00000000,
- OPTION_SIGHT = 0x00000001,
- OPTION_HIDE = 0x00000002,
- OPTION_CLOAK = 0x00000004,
- OPTION_FALCON = 0x00000010,
- OPTION_RIDING = 0x00000020,
- OPTION_INVISIBLE = 0x00000040,
- OPTION_ORCISH = 0x00000800,
- OPTION_WEDDING = 0x00001000,
- OPTION_RUWACH = 0x00002000,
- OPTION_CHASEWALK = 0x00004000,
- OPTION_FLYING = 0x00008000,
- OPTION_XMAS = 0x00010000,
- OPTION_TRANSFORM = 0x00020000,
- OPTION_SUMMER = 0x00040000,
- OPTION_DRAGON1 = 0x00080000,
- OPTION_WUG = 0x00100000,
- OPTION_WUGRIDER = 0x00200000,
- OPTION_MADOGEAR = 0x00400000,
- OPTION_DRAGON2 = 0x00800000,
- OPTION_DRAGON3 = 0x01000000,
- OPTION_DRAGON4 = 0x02000000,
- OPTION_DRAGON5 = 0x04000000,
- OPTION_HANBOK = 0x08000000,
- OPTION_OKTOBERFEST = 0x10000000,
-# 372 "../../../server-code/src/common/mmo.h"
- OPTION_DRAGON = OPTION_DRAGON1|OPTION_DRAGON2|OPTION_DRAGON3|OPTION_DRAGON4|OPTION_DRAGON5,
- OPTION_COSTUME = OPTION_WEDDING|OPTION_XMAS|OPTION_SUMMER|OPTION_HANBOK|OPTION_OKTOBERFEST,
-};
-
-struct s_skill {
- unsigned short id;
- unsigned char lv;
- unsigned char flag;
-};
-
-struct script_reg_state {
- unsigned int type : 1;
- unsigned int update : 1;
-};
-
-struct script_reg_num {
- struct script_reg_state flag;
- int value;
-};
-
-struct script_reg_str {
- struct script_reg_state flag;
- char *value;
-};
-
-
-struct status_change_data {
- unsigned short type;
- int val1, val2, val3, val4;
- int tick;
-};
-
-struct storage_data {
- int storage_amount;
- struct item items[600];
-};
-
-struct guild_storage {
- int dirty;
- int guild_id;
- short storage_status;
- short storage_amount;
- struct item items[600];
- unsigned short lock;
-};
-
-struct s_pet {
- int account_id;
- int char_id;
- int pet_id;
- short class_;
- short level;
- short egg_id;
- short equip;
- short intimate;
- short hungry;
- char name[(23 + 1)];
- char rename_flag;
- char incubate;
-};
-
-struct s_homunculus {
- char name[(23 + 1)];
- int hom_id;
- int char_id;
- short class_;
- short prev_class;
- int hp,max_hp,sp,max_sp;
- unsigned int intimacy;
- short hunger;
- struct s_skill hskill[43];
- short skillpts;
- short level;
- unsigned int exp;
- short rename_flag;
- short vaporize;
- int str;
- int agi;
- int vit;
- int int_;
- int dex;
- int luk;
-
- int str_value;
- int agi_value;
- int vit_value;
- int int_value;
- int dex_value;
- int luk_value;
-
- int8 spiritball;
-};
-
-struct s_mercenary {
- int mercenary_id;
- int char_id;
- short class_;
- int hp, sp;
- unsigned int kill_count;
- unsigned int life_time;
-};
-
-struct s_elemental {
- int elemental_id;
- int char_id;
- short class_;
- uint32 mode;
- int hp, sp, max_hp, max_sp, matk, atk, atk2;
- short hit, flee, amotion, def, mdef;
- int life_time;
-};
-
-struct s_friend {
- int account_id;
- int char_id;
- char name[(23 + 1)];
-};
-
-struct hotkey {
-
- unsigned int id;
- unsigned short lv;
- unsigned char type;
-
-
-
-};
-
-struct mmo_charstatus {
- int char_id;
- int account_id;
- int partner_id;
- int father;
- int mother;
- int child;
-
- unsigned int base_exp,job_exp;
- int zeny;
- int bank_vault;
-
- short class_;
- unsigned int status_point,skill_point;
- int hp,max_hp,sp,max_sp;
- unsigned int option;
- short manner;
- unsigned char karma;
- short hair,hair_color,clothes_color,body;
- int party_id,guild_id,pet_id,hom_id,mer_id,ele_id;
- int fame;
-
-
- int arch_faith, arch_calls;
- int spear_faith, spear_calls;
- int sword_faith, sword_calls;
-
- short weapon;
- short shield;
- short head_top,head_mid,head_bottom;
- short robe;
-
- char name[(23 + 1)];
- unsigned int base_level,job_level;
- short str,agi,vit,int_,dex,luk;
- unsigned char slot,sex;
-
- uint32 mapip;
- uint16 mapport;
-
- struct point last_point,save_point,memo_point[3];
- struct item inventory[100],cart[100];
- struct storage_data storage;
- struct s_skill skill[1478];
-
- struct s_friend friends[40];
-
- struct hotkey hotkeys[38];
-
-
-# 549 "../../../server-code/src/common/mmo.h" 3 4
-_Bool
-# 549 "../../../server-code/src/common/mmo.h"
- show_equip, allow_party;
- unsigned short rename;
- unsigned short slotchange;
-
- time_t delete_date;
-
-
- unsigned short mod_exp,mod_drop,mod_death;
-
- unsigned char font;
-
- uint32 uniqueitem_counter;
-
- unsigned char hotkey_rowshift;
-};
-
-typedef enum mail_status {
- MAIL_NEW,
- MAIL_UNREAD,
- MAIL_READ,
-} mail_status;
-
-struct mail_message {
- int id;
- int send_id;
- char send_name[(23 + 1)];
- int dest_id;
- char dest_name[(23 + 1)];
- char title[40];
- char body[200];
-
- mail_status status;
- time_t timestamp;
-
- int zeny;
- struct item item;
-};
-
-struct mail_data {
- short amount;
-
-# 589 "../../../server-code/src/common/mmo.h" 3 4
-_Bool
-# 589 "../../../server-code/src/common/mmo.h"
- full;
- short unchecked, unread;
- struct mail_message msg[30];
-};
-
-struct auction_data {
- unsigned int auction_id;
- int seller_id;
- char seller_name[(23 + 1)];
- int buyer_id;
- char buyer_name[(23 + 1)];
-
- struct item item;
-
- char item_name[50];
- short type;
-
- unsigned short hours;
- int price, buynow;
- time_t timestamp;
- int auction_end_timer;
-};
-
-struct party_member {
- int account_id;
- int char_id;
- char name[(23 + 1)];
- unsigned short class_;
- unsigned short map;
- unsigned short lv;
- unsigned leader : 1,
- online : 1;
-};
-
-struct party {
- int party_id;
- char name[(23 + 1)];
- unsigned char count;
- unsigned exp : 1,
- item : 2;
- struct party_member member[12];
-};
-
-struct map_session_data;
-struct guild_member {
- int account_id, char_id;
- short hair,hair_color,gender,class_,lv;
- uint64 exp;
- int exp_payper;
- short online,position;
- char name[(23 + 1)];
- struct map_session_data *sd;
- unsigned char modified;
-};
-
-struct guild_position {
- char name[(23 + 1)];
- int mode;
- int exp_mode;
- unsigned char modified;
-};
-
-struct guild_alliance {
- int opposition;
- int guild_id;
- char name[(23 + 1)];
-};
-
-struct guild_expulsion {
- char name[(23 + 1)];
- char mes[40];
- int account_id;
-};
-
-struct guild_skill {
- int id,lv;
-};
-
-struct channel_data;
-struct guild {
- int guild_id;
- short guild_lv, connect_member, max_member, average_lv;
- uint64 exp;
- unsigned int next_exp;
- int skill_point;
- char name[(23 + 1)],master[(23 + 1)];
- struct guild_member member[(16 +10*6)];
- struct guild_position position[20];
- char mes1[60],mes2[120];
- int emblem_len,emblem_id;
- char emblem_data[2048];
- struct guild_alliance alliance[16];
- struct guild_expulsion expulsion[32];
- struct guild_skill skill[15];
-
-
- unsigned short save_flag;
-
- short *instance;
- unsigned short instances;
-
- struct channel_data *channel;
- struct hplugin_data_store *hdata;
-};
-
-struct guild_castle {
- int castle_id;
- int mapindex;
- char castle_name[(23 + 1)];
- char castle_event[(23 + 1)];
- int guild_id;
- int economy;
- int defense;
- int triggerE;
- int triggerD;
- int nextTime;
- int payTime;
- int createTime;
- int visibleC;
- struct {
- unsigned visible : 1;
- int id;
- } guardian[8];
- int* temp_guardians;
- int temp_guardians_max;
-};
-
-struct fame_list {
- int id;
- int fame;
- char name[(23 + 1)];
-};
-
-enum fame_list_type {
- RANKTYPE_BLACKSMITH = 0,
- RANKTYPE_ALCHEMIST = 1,
- RANKTYPE_TAEKWON = 2,
- RANKTYPE_PK = 3,
-};
-
-
-
-
-
-
-enum guild_basic_info {
- GBI_EXP = 1,
- GBI_GUILDLV,
- GBI_SKILLPOINT,
-
-
-
-
-
- GBI_SKILLLV,
-};
-
-enum {
- GMI_POSITION = 0,
- GMI_EXP,
- GMI_HAIR,
- GMI_HAIR_COLOR,
- GMI_GENDER,
- GMI_CLASS,
- GMI_LEVEL,
-};
-
-enum guild_permission {
- GPERM_INVITE = 0x01,
- GPERM_EXPEL = 0x10,
- GPERM_ALL = GPERM_INVITE|GPERM_EXPEL,
- GPERM_MASK = GPERM_ALL,
-};
-
-enum {
- GD_SKILLBASE=10000,
- GD_APPROVAL=10000,
- GD_KAFRACONTRACT=10001,
- GD_GUARDRESEARCH=10002,
- GD_GUARDUP=10003,
- GD_EXTENSION=10004,
- GD_GLORYGUILD=10005,
- GD_LEADERSHIP=10006,
- GD_GLORYWOUNDS=10007,
- GD_SOULCOLD=10008,
- GD_HAWKEYES=10009,
- GD_BATTLEORDER=10010,
- GD_REGENERATION=10011,
- GD_RESTORE=10012,
- GD_EMERGENCYCALL=10013,
- GD_DEVELOPMENT=10014,
- GD_MAX,
-};
-
-
-enum {
- JOB_NOVICE,
- JOB_SWORDMAN,
- JOB_MAGE,
- JOB_ARCHER,
- JOB_ACOLYTE,
- JOB_MERCHANT,
- JOB_THIEF,
- JOB_KNIGHT,
- JOB_PRIEST,
- JOB_WIZARD,
- JOB_BLACKSMITH,
- JOB_HUNTER,
- JOB_ASSASSIN,
- JOB_KNIGHT2,
- JOB_CRUSADER,
- JOB_MONK,
- JOB_SAGE,
- JOB_ROGUE,
- JOB_ALCHEMIST,
- JOB_BARD,
- JOB_DANCER,
- JOB_CRUSADER2,
- JOB_WEDDING,
- JOB_SUPER_NOVICE,
- JOB_GUNSLINGER,
- JOB_NINJA,
- JOB_XMAS,
- JOB_SUMMER,
- JOB_MAX_BASIC,
-
- JOB_NOVICE_HIGH = 4001,
- JOB_SWORDMAN_HIGH,
- JOB_MAGE_HIGH,
- JOB_ARCHER_HIGH,
- JOB_ACOLYTE_HIGH,
- JOB_MERCHANT_HIGH,
- JOB_THIEF_HIGH,
- JOB_LORD_KNIGHT,
- JOB_HIGH_PRIEST,
- JOB_HIGH_WIZARD,
- JOB_WHITESMITH,
- JOB_SNIPER,
- JOB_ASSASSIN_CROSS,
- JOB_LORD_KNIGHT2,
- JOB_PALADIN,
- JOB_CHAMPION,
- JOB_PROFESSOR,
- JOB_STALKER,
- JOB_CREATOR,
- JOB_CLOWN,
- JOB_GYPSY,
- JOB_PALADIN2,
-
- JOB_BABY,
- JOB_BABY_SWORDMAN,
- JOB_BABY_MAGE,
- JOB_BABY_ARCHER,
- JOB_BABY_ACOLYTE,
- JOB_BABY_MERCHANT,
- JOB_BABY_THIEF,
- JOB_BABY_KNIGHT,
- JOB_BABY_PRIEST,
- JOB_BABY_WIZARD,
- JOB_BABY_BLACKSMITH,
- JOB_BABY_HUNTER,
- JOB_BABY_ASSASSIN,
- JOB_BABY_KNIGHT2,
- JOB_BABY_CRUSADER,
- JOB_BABY_MONK,
- JOB_BABY_SAGE,
- JOB_BABY_ROGUE,
- JOB_BABY_ALCHEMIST,
- JOB_BABY_BARD,
- JOB_BABY_DANCER,
- JOB_BABY_CRUSADER2,
- JOB_SUPER_BABY,
-
- JOB_TAEKWON,
- JOB_STAR_GLADIATOR,
- JOB_STAR_GLADIATOR2,
- JOB_SOUL_LINKER,
-
- JOB_GANGSI,
- JOB_DEATH_KNIGHT,
- JOB_DARK_COLLECTOR,
-
- JOB_RUNE_KNIGHT = 4054,
- JOB_WARLOCK,
- JOB_RANGER,
- JOB_ARCH_BISHOP,
- JOB_MECHANIC,
- JOB_GUILLOTINE_CROSS,
-
- JOB_RUNE_KNIGHT_T,
- JOB_WARLOCK_T,
- JOB_RANGER_T,
- JOB_ARCH_BISHOP_T,
- JOB_MECHANIC_T,
- JOB_GUILLOTINE_CROSS_T,
-
- JOB_ROYAL_GUARD,
- JOB_SORCERER,
- JOB_MINSTREL,
- JOB_WANDERER,
- JOB_SURA,
- JOB_GENETIC,
- JOB_SHADOW_CHASER,
-
- JOB_ROYAL_GUARD_T,
- JOB_SORCERER_T,
- JOB_MINSTREL_T,
- JOB_WANDERER_T,
- JOB_SURA_T,
- JOB_GENETIC_T,
- JOB_SHADOW_CHASER_T,
-
- JOB_RUNE_KNIGHT2,
- JOB_RUNE_KNIGHT_T2,
- JOB_ROYAL_GUARD2,
- JOB_ROYAL_GUARD_T2,
- JOB_RANGER2,
- JOB_RANGER_T2,
- JOB_MECHANIC2,
- JOB_MECHANIC_T2,
-
- JOB_BABY_RUNE = 4096,
- JOB_BABY_WARLOCK,
- JOB_BABY_RANGER,
- JOB_BABY_BISHOP,
- JOB_BABY_MECHANIC,
- JOB_BABY_CROSS,
-
- JOB_BABY_GUARD,
- JOB_BABY_SORCERER,
- JOB_BABY_MINSTREL,
- JOB_BABY_WANDERER,
- JOB_BABY_SURA,
- JOB_BABY_GENETIC,
- JOB_BABY_CHASER,
-
- JOB_BABY_RUNE2,
- JOB_BABY_GUARD2,
- JOB_BABY_RANGER2,
- JOB_BABY_MECHANIC2,
-
- JOB_SUPER_NOVICE_E = 4190,
- JOB_SUPER_BABY_E,
-
- JOB_KAGEROU = 4211,
- JOB_OBORO,
- JOB_REBELLION = 4215,
-
- JOB_MAX,
-};
-
-
-
-
-enum {
- SEX_FEMALE = 0,
- SEX_MALE,
- SEX_SERVER
-};
-
-enum weapon_type {
- W_FIST,
- W_DAGGER,
- W_1HSWORD,
- W_2HSWORD,
- W_1HSPEAR,
- W_2HSPEAR,
- W_1HAXE,
- W_2HAXE,
- W_MACE,
- W_2HMACE,
- W_STAFF,
- W_BOW,
- W_KNUCKLE,
- W_MUSICAL,
- W_WHIP,
- W_BOOK,
- W_KATAR,
- W_REVOLVER,
- W_RIFLE,
- W_GATLING,
- W_SHOTGUN,
- W_GRENADE,
- W_HUUMA,
- W_2HSTAFF,
- MAX_SINGLE_WEAPON_TYPE,
-
- W_DOUBLE_DD,
- W_DOUBLE_SS,
- W_DOUBLE_AA,
- W_DOUBLE_DS,
- W_DOUBLE_DA,
- W_DOUBLE_SA,
- MAX_WEAPON_TYPE,
-};
-
-enum ammo_type {
- A_ARROW = 1,
- A_DAGGER,
- A_BULLET,
- A_SHELL,
- A_GRENADE,
- A_SHURIKEN,
- A_KUNAI,
- A_CANNONBALL,
- A_THROWWEAPON,
-};
-
-enum e_char_server_type {
- CST_NORMAL = 0,
- CST_MAINTENANCE = 1,
- CST_OVER18 = 2,
- CST_PAYING = 3,
- CST_F2P = 4,
-};
-
-enum e_pc_reg_loading {
- PRL_NONE = 0x0,
- PRL_CHAR = 0x1,
- PRL_ACCL = 0x2,
- PRL_ACCG = 0x4,
- PRL_ALL = 0xFF,
-};
-
-
-
-
-enum zh_char_ask_name_type {
- CHAR_ASK_NAME_BLOCK = 1,
- CHAR_ASK_NAME_BAN = 2,
- CHAR_ASK_NAME_UNBLOCK = 3,
- CHAR_ASK_NAME_UNBAN = 4,
- CHAR_ASK_NAME_CHANGESEX = 5,
- CHAR_ASK_NAME_CHARBAN = 6,
- CHAR_ASK_NAME_CHARUNBAN = 7,
- CHAR_ASK_NAME_CHANGECHARSEX = 8,
-};
-
-
-
-
-enum hz_char_ask_name_answer {
- CHAR_ASK_NAME_ANS_DONE = 0,
- CHAR_ASK_NAME_ANS_NOTFOUND = 1,
- CHAR_ASK_NAME_ANS_GMLOW = 2,
- CHAR_ASK_NAME_ANS_OFFLINE = 3,
-};
-# 28 "../../../server-code/src/login/login.h" 2
-
-struct mmo_account;
-struct AccountDB;
-
-enum E_LOGINSERVER_ST
-{
- LOGINSERVER_ST_RUNNING = CORE_ST_LAST,
- LOGINSERVER_ST_SHUTDOWN,
- LOGINSERVER_ST_LAST
-};
-
-enum password_enc {
- PWENC_NONE = 0x0,
- PWENC_ENCRYPT = 0x1,
- PWENC_ENCRYPT2 = 0x2,
- PWENC_BOTH = PWENC_ENCRYPT|PWENC_ENCRYPT2,
-};
-
-
-
-
-
-struct login_session_data {
- int account_id;
- int login_id1;
- int login_id2;
- char sex;
-
- char userid[(23 + 1)];
- char passwd[(32+1)];
- int passwdenc;
- char md5key[20];
- uint16 md5keylen;
-
- char lastlogin[24];
- uint8 group_id;
- uint8 clienttype;
- uint32 version;
-
- uint8 client_hash[16];
- int has_client_hash;
-
- int fd;
-
- time_t expiration_time;
-};
-
-struct mmo_char_server {
-
- char name[20];
- int fd;
- uint32 ip;
- uint16 port;
- uint16 users;
- uint16 type;
- uint16 new_;
-};
-
-struct client_hash_node {
- int group_id;
- uint8 hash[16];
- struct client_hash_node *next;
-};
-
-struct Login_Config {
-
- uint32 login_ip;
- uint16 login_port;
- unsigned int ipban_cleanup_interval;
- unsigned int ip_sync_interval;
-
-# 98 "../../../server-code/src/login/login.h" 3 4
-_Bool
-# 98 "../../../server-code/src/login/login.h"
- log_login;
- char date_format[32];
-
-# 100 "../../../server-code/src/login/login.h" 3 4
-_Bool
-# 100 "../../../server-code/src/login/login.h"
- new_account_flag,new_acc_length_limit;
- int start_limited_time;
-
-# 102 "../../../server-code/src/login/login.h" 3 4
-_Bool
-# 102 "../../../server-code/src/login/login.h"
- use_md5_passwds;
- int group_id_to_connect;
- int min_group_id_to_connect;
-
-# 105 "../../../server-code/src/login/login.h" 3 4
-_Bool
-# 105 "../../../server-code/src/login/login.h"
- check_client_version;
- uint32 client_version_to_connect;
- int allowed_regs;
- int time_allowed;
-
-
-# 110 "../../../server-code/src/login/login.h" 3 4
-_Bool
-# 110 "../../../server-code/src/login/login.h"
- ipban;
-
-# 111 "../../../server-code/src/login/login.h" 3 4
-_Bool
-# 111 "../../../server-code/src/login/login.h"
- dynamic_pass_failure_ban;
- unsigned int dynamic_pass_failure_ban_interval;
- unsigned int dynamic_pass_failure_ban_limit;
- unsigned int dynamic_pass_failure_ban_duration;
-
-# 115 "../../../server-code/src/login/login.h" 3 4
-_Bool
-# 115 "../../../server-code/src/login/login.h"
- use_dnsbl;
- char dnsbl_servs[1024];
-
- int client_hash_check;
- struct client_hash_node *client_hash_nodes;
-};
-
-struct login_auth_node {
- int account_id;
- uint32 login_id1;
- uint32 login_id2;
- uint32 ip;
- char sex;
- uint32 version;
- uint8 clienttype;
- int group_id;
- time_t expiration_time;
-};
-
-
-
-
-struct online_login_data {
- int account_id;
- int waiting_disconnect;
- int char_server;
-};
-# 151 "../../../server-code/src/login/login.h"
-struct login_interface {
- struct DBMap *auth_db;
- struct DBMap *online_db;
- int fd;
- struct Login_Config *config;
- struct AccountDB* accounts;
-
- int (*mmo_auth) (struct login_session_data* sd,
-# 158 "../../../server-code/src/login/login.h" 3 4
- _Bool
-# 158 "../../../server-code/src/login/login.h"
- isServer);
- int (*mmo_auth_new) (const char* userid, const char* pass, const char sex, const char* last_ip);
- int (*waiting_disconnect_timer) (int tid, int64 tick, int id, intptr_t data);
- struct DBData (*create_online_user) (union DBKey key, va_list args);
- struct online_login_data* (*add_online_user) (int char_server, int account_id);
- void (*remove_online_user) (int account_id);
- int (*online_db_setoffline) (union DBKey key, struct DBData *data, va_list ap);
- int (*online_data_cleanup_sub) (union DBKey key, struct DBData *data, va_list ap);
- int (*online_data_cleanup) (int tid, int64 tick, int id, intptr_t data);
- int (*sync_ip_addresses) (int tid, int64 tick, int id, intptr_t data);
-
-# 168 "../../../server-code/src/login/login.h" 3 4
-_Bool
-# 168 "../../../server-code/src/login/login.h"
- (*check_encrypted) (const char* str1, const char* str2, const char* passwd);
-
-# 169 "../../../server-code/src/login/login.h" 3 4
-_Bool
-# 169 "../../../server-code/src/login/login.h"
- (*check_password) (const char* md5key, int passwdenc, const char* passwd, const char* refpass);
- uint32 (*lan_subnet_check) (uint32 ip);
- void (*fromchar_accinfo) (int fd, int account_id, int u_fd, int u_aid, int u_group, int map_fd, struct mmo_account *acc);
- void (*fromchar_account) (int fd, int account_id, struct mmo_account *acc);
- void (*fromchar_account_update_other) (int account_id, unsigned int state);
- void (*fromchar_auth_ack) (int fd, int account_id, uint32 login_id1, uint32 login_id2, uint8 sex, int request_id, struct login_auth_node* node);
- void (*fromchar_ban) (int account_id, time_t timestamp);
- void (*fromchar_change_sex_other) (int account_id, char sex);
- void (*fromchar_pong) (int fd);
- void (*fromchar_parse_auth) (int fd, int id, const char *ip);
- void (*fromchar_parse_update_users) (int fd, int id);
- void (*fromchar_parse_request_change_email) (int fd, int id, const char *ip);
- void (*fromchar_parse_account_data) (int fd, int id, const char *ip);
- void (*fromchar_parse_ping) (int fd);
- void (*fromchar_parse_change_email) (int fd, int id, const char *ip);
- void (*fromchar_parse_account_update) (int fd, int id, const char *ip);
- void (*fromchar_parse_ban) (int fd, int id, const char *ip);
- void (*fromchar_parse_change_sex) (int fd, int id, const char *ip);
- void (*fromchar_parse_account_reg2) (int fd, int id, const char *ip);
- void (*fromchar_parse_unban) (int fd, int id, const char *ip);
- void (*fromchar_parse_account_online) (int fd, int id);
- void (*fromchar_parse_account_offline) (int fd);
- void (*fromchar_parse_online_accounts) (int fd, int id);
- void (*fromchar_parse_request_account_reg2) (int fd);
- void (*fromchar_parse_update_wan_ip) (int fd, int id);
- void (*fromchar_parse_all_offline) (int fd, int id);
- void (*fromchar_parse_change_pincode) (int fd);
-
-# 196 "../../../server-code/src/login/login.h" 3 4
-_Bool
-# 196 "../../../server-code/src/login/login.h"
- (*fromchar_parse_wrong_pincode) (int fd);
- void (*fromchar_parse_accinfo) (int fd);
- int (*parse_fromchar) (int fd);
- void (*connection_problem) (int fd, uint8 status);
- void (*kick) (struct login_session_data* sd);
- void (*auth_ok) (struct login_session_data* sd);
- void (*auth_failed) (struct login_session_data* sd, int result);
- void (*login_error) (int fd, uint8 status);
- void (*parse_ping) (int fd, struct login_session_data* sd);
- void (*parse_client_md5) (int fd, struct login_session_data* sd);
-
-# 206 "../../../server-code/src/login/login.h" 3 4
-_Bool
-# 206 "../../../server-code/src/login/login.h"
- (*parse_client_login) (int fd, struct login_session_data* sd, const char *ip);
- void (*send_coding_key) (int fd, struct login_session_data* sd);
- void (*parse_request_coding_key) (int fd, struct login_session_data* sd);
- void (*char_server_connection_status) (int fd, struct login_session_data* sd, uint8 status);
- void (*parse_request_connection) (int fd, struct login_session_data* sd, const char *ip, uint32 ipl);
- int (*parse_login) (int fd);
- void (*config_set_defaults) (void);
- int (*config_read) (const char *cfgName);
- char *LOGIN_CONF_NAME;
- char *NET_CONF_NAME;
-};
-
-
-extern struct mmo_char_server server[30];
-
-void login_defaults(void);
-
-
-extern struct login_interface *login;
-# 24 "../../../server-code/src/login/login.c" 2
-
-# 1 "../../../server-code/src/login/HPMlogin.h" 1
-# 28 "../../../server-code/src/login/HPMlogin.h"
-# 1 "../../../server-code/src/common/HPM.h" 1
-# 29 "../../../server-code/src/common/HPM.h"
-# 1 "../../../server-code/src/common/HPMi.h" 1
-# 24 "../../../server-code/src/common/HPMi.h"
-# 1 "../../../server-code/src/common/console.h" 1
-# 25 "../../../server-code/src/common/console.h"
-# 1 "../../../server-code/src/common/mutex.h" 1
-# 26 "../../../server-code/src/common/mutex.h"
-typedef struct ramutex ramutex;
-typedef struct racond racond;
-
-
-
-
-
-
-
-ramutex *ramutex_create(void);
-
-
-
-
-
-
-void ramutex_destroy(ramutex *m);
-
-
-
-
-
-
-void ramutex_lock(ramutex *m);
-# 58 "../../../server-code/src/common/mutex.h"
-
-# 58 "../../../server-code/src/common/mutex.h" 3 4
-_Bool
-# 58 "../../../server-code/src/common/mutex.h"
- ramutex_trylock(ramutex *m);
-
-
-
-
-
-
-void ramutex_unlock(ramutex *m);
-
-
-
-
-
-
-
-racond *racond_create(void);
-
-
-
-
-
-
-void racond_destroy(racond *c);
-# 89 "../../../server-code/src/common/mutex.h"
-void racond_wait(racond *c, ramutex *m, sysint timeout_ticks);
-# 99 "../../../server-code/src/common/mutex.h"
-void racond_signal(racond *c);
-# 108 "../../../server-code/src/common/mutex.h"
-void racond_broadcast(racond *c);
-# 26 "../../../server-code/src/common/console.h" 2
-# 1 "../../../server-code/src/common/spinlock.h" 1
-# 31 "../../../server-code/src/common/spinlock.h"
-# 1 "../../../server-code/src/common/atomic.h" 1
-# 110 "../../../server-code/src/common/atomic.h"
-static __attribute__((always_inline)) inline int64 InterlockedExchangeAdd64(volatile int64 *addend, int64 increment){
- return __sync_fetch_and_add(addend, increment);
-}
-
-static __attribute__((always_inline)) inline int32 InterlockedExchangeAdd(volatile int32 *addend, int32 increment){
- return __sync_fetch_and_add(addend, increment);
-}
-
-static __attribute__((always_inline)) inline int64 InterlockedIncrement64(volatile int64 *addend){
- return __sync_add_and_fetch(addend, 1);
-}
-
-static __attribute__((always_inline)) inline int32 InterlockedIncrement(volatile int32 *addend){
- return __sync_add_and_fetch(addend, 1);
-}
-
-static __attribute__((always_inline)) inline int64 InterlockedDecrement64(volatile int64 *addend){
- return __sync_sub_and_fetch(addend, 1);
-}
-
-static __attribute__((always_inline)) inline int32 InterlockedDecrement(volatile int32 *addend){
- return __sync_sub_and_fetch(addend, 1);
-}
-
-static __attribute__((always_inline)) inline int64 InterlockedCompareExchange64(volatile int64 *dest, int64 exch, int64 cmp){
- return __sync_val_compare_and_swap(dest, cmp, exch);
-}
-
-static __attribute__((always_inline)) inline int32 InterlockedCompareExchange(volatile int32 *dest, int32 exch, int32 cmp){
- return __sync_val_compare_and_swap(dest, cmp, exch);
-}
-
-static __attribute__((always_inline)) inline int64 InterlockedExchange64(volatile int64 *target, int64 val){
- return __sync_lock_test_and_set(target, val);
-}
-
-static __attribute__((always_inline)) inline int32 InterlockedExchange(volatile int32 *target, int32 val){
- return __sync_lock_test_and_set(target, val);
-}
-# 32 "../../../server-code/src/common/spinlock.h" 2
-
-# 1 "../../../server-code/src/common/thread.h" 1
-# 26 "../../../server-code/src/common/thread.h"
-typedef struct rAthread rAthread;
-typedef void* (*rAthreadProc)(void*);
-
-typedef enum RATHREAD_PRIO {
- RAT_PRIO_LOW = 0,
- RAT_PRIO_NORMAL,
- RAT_PRIO_HIGH
-} RATHREAD_PRIO;
-# 45 "../../../server-code/src/common/thread.h"
-rAthread *rathread_create(rAthreadProc entryPoint, void *param);
-# 58 "../../../server-code/src/common/thread.h"
-rAthread *rathread_createEx(rAthreadProc entryPoint, void *param, size_t szStack, RATHREAD_PRIO prio);
-# 68 "../../../server-code/src/common/thread.h"
-void rathread_destroy(rAthread *handle);
-# 79 "../../../server-code/src/common/thread.h"
-rAthread *rathread_self(void);
-# 90 "../../../server-code/src/common/thread.h"
-int rathread_get_tid(void);
-# 101 "../../../server-code/src/common/thread.h"
-
-# 101 "../../../server-code/src/common/thread.h" 3 4
-_Bool
-# 101 "../../../server-code/src/common/thread.h"
- rathread_wait(rAthread *handle, void **out_exitCode);
-# 110 "../../../server-code/src/common/thread.h"
-void rathread_prio_set(rAthread *handle, RATHREAD_PRIO prio);
-
-
-
-
-
-
-
-RATHREAD_PRIO rathread_prio_get(rAthread *handle);
-# 128 "../../../server-code/src/common/thread.h"
-void rathread_yield(void);
-
-void rathread_init(void);
-void rathread_final(void);
-# 34 "../../../server-code/src/common/spinlock.h" 2
-# 47 "../../../server-code/src/common/spinlock.h"
-typedef struct SPIN_LOCK{
- volatile int32 lock;
- volatile int32 nest;
-
- volatile int32 sync_lock;
-} __attribute__((aligned(64))) SPIN_LOCK;
-
-
-
-
-static __attribute__((always_inline)) inline void InitializeSpinLock(SPIN_LOCK *lck){
- lck->lock = 0;
- lck->nest = 0;
- lck->sync_lock = 0;
-}
-
-static __attribute__((always_inline)) inline void FinalizeSpinLock(SPIN_LOCK *lck){
- return;
-}
-
-
-
-
-
-static __attribute__((always_inline)) inline void EnterSpinLock(SPIN_LOCK *lck){
- int tid = rathread_get_tid();
-
-
-
- do { if(InterlockedCompareExchange((&lck->sync_lock), 1, 0) == 0) break; rathread_yield(); } while( 1);
- if(InterlockedCompareExchange(&lck->lock, tid, tid) == tid){
- InterlockedIncrement(&lck->nest);
- do { InterlockedExchange((&lck->sync_lock), 0); } while(0);
- return;
- }
-
- do { InterlockedExchange((&lck->sync_lock), 0); } while(0);
-
-
- while(1){
- if(InterlockedCompareExchange(&lck->lock, tid, 0) == 0){
- InterlockedIncrement(&lck->nest);
- return;
- }
- rathread_yield();
- }
-
-}
-
-
-static __attribute__((always_inline)) inline void LeaveSpinLock(SPIN_LOCK *lck){
- int tid = rathread_get_tid();
-
- do { if(InterlockedCompareExchange((&lck->sync_lock), 1, 0) == 0) break; rathread_yield(); } while( 1);
-
- if(InterlockedCompareExchange(&lck->lock, tid, tid) == tid){
- if(InterlockedDecrement(&lck->nest) == 0)
- InterlockedExchange(&lck->lock, 0);
- }
-
- do { InterlockedExchange((&lck->sync_lock), 0); } while(0);
-}
-# 27 "../../../server-code/src/common/console.h" 2
-
-
-
-struct Sql;
-# 41 "../../../server-code/src/common/console.h"
-typedef void (*CParseFunc)(char *line);
-# 56 "../../../server-code/src/common/console.h"
-enum CONSOLE_PARSE_ENTRY_TYPE {
- CPET_UNKNOWN,
- CPET_FUNCTION,
- CPET_CATEGORY,
-};
-
-struct CParseEntry {
- char cmd[20];
- int type;
- union {
- CParseFunc func;
- struct { int _max_; int _len_; struct CParseEntry * *_data_; } children;
- } u;
-};
-
-struct console_input_interface {
-
-
- SPIN_LOCK ptlock;
- rAthread *pthread;
- volatile int32 ptstate;
- ramutex *ptmutex;
- racond *ptcond;
-
- struct { int _max_; int _len_; struct CParseEntry * *_data_; } command_list;
- struct { int _max_; int _len_; struct CParseEntry * *_data_; } commands;
-
- struct Sql *SQL;
-
- void (*parse_init) (void);
- void (*parse_final) (void);
- int (*parse_timer) (int tid, int64 tick, int id, intptr_t data);
- void *(*pthread_main) (void *x);
- void (*parse) (char* line);
- void (*parse_sub) (char* line);
- int (*key_pressed) (void);
- void (*load_defaults) (void);
- void (*parse_list_subs) (struct CParseEntry *cmd, unsigned char depth);
- void (*addCommand) (char *name, CParseFunc func);
- void (*setSQL) (struct Sql *SQL_handle);
-
-
-
-};
-
-struct console_interface {
- void (*init) (void);
- void (*final) (void);
- void (*display_title) (void);
- void (*display_gplnotice) (void);
-
- struct console_input_interface *input;
-};
-
-
-void console_defaults(void);
-
-
-extern struct console_interface *console;
-# 25 "../../../server-code/src/common/HPMi.h" 2
-
-# 1 "../../../server-code/src/common/showmsg.h" 1
-# 29 "../../../server-code/src/common/showmsg.h"
-struct config_setting_t;
-# 89 "../../../server-code/src/common/showmsg.h"
-enum msg_type {
- MSG_NONE,
- MSG_STATUS,
- MSG_SQL,
- MSG_INFORMATION,
- MSG_NOTICE,
- MSG_WARNING,
- MSG_DEBUG,
- MSG_ERROR,
- MSG_FATALERROR
-};
-
-struct showmsg_interface {
-
-# 102 "../../../server-code/src/common/showmsg.h" 3 4
-_Bool
-# 102 "../../../server-code/src/common/showmsg.h"
- stdout_with_ansisequence;
- int silent;
- int console_log;
- char timestamp_format[20];
-
- void (*init) (void);
- void (*final) (void);
-
- void (*clearScreen) (void);
- int (*showMessageV) (const char *string, va_list ap);
-
- void (*showMessage) (const char *, ...) __attribute__((format(printf, 1, 2)));
- void (*showStatus) (const char *, ...) __attribute__((format(printf, 1, 2)));
- void (*showSQL) (const char *, ...) __attribute__((format(printf, 1, 2)));
- void (*showInfo) (const char *, ...) __attribute__((format(printf, 1, 2)));
- void (*showNotice) (const char *, ...) __attribute__((format(printf, 1, 2)));
- void (*showWarning) (const char *, ...) __attribute__((format(printf, 1, 2)));
- void (*showDebug) (const char *, ...) __attribute__((format(printf, 1, 2)));
- void (*showError) (const char *, ...) __attribute__((format(printf, 1, 2)));
- void (*showFatalError) (const char *, ...) __attribute__((format(printf, 1, 2)));
- void (*showConfigWarning) (struct config_setting_t *config, const char *string, ...) __attribute__((format(printf, 2, 3)));
-};
-# 140 "../../../server-code/src/common/showmsg.h"
-void showmsg_defaults(void);
-
-
-extern struct showmsg_interface *showmsg;
-# 27 "../../../server-code/src/common/HPMi.h" 2
-
-struct Sql;
-struct script_state;
-struct AtCommandInfo;
-struct socket_data;
-struct map_session_data;
-struct hplugin_data_store;
-
-
-
-
-struct hplugin_info {
- char* name;
- enum server_types type;
- char* version;
- char* req_version;
-};
-
-struct s_HPMDataCheck {
- char *name;
- unsigned int size;
- int type;
-};
-
-
-
-enum hp_event_types {
- HPET_INIT,
- HPET_FINAL,
- HPET_READY,
- HPET_POST_FINAL,
- HPET_PRE_INIT,
- HPET_MAX,
-};
-
-enum HPluginPacketHookingPoints {
- hpClif_Parse,
- hpChrif_Parse,
- hpParse_FromMap,
- hpParse_FromLogin,
- hpParse_Char,
- hpParse_FromChar,
- hpParse_Login,
-
- hpPHP_MAX,
-};
-
-enum HPluginHookType {
- HOOK_TYPE_PRE,
- HOOK_TYPE_POST,
-};
-
-
-
-
-enum HPluginDataTypes {
- HPDT_UNKNOWN,
- HPDT_SESSION,
- HPDT_MSD,
- HPDT_NPCD,
- HPDT_MAP,
- HPDT_INSTANCE,
- HPDT_GUILD,
- HPDT_PARTY,
- HPDT_MOBDB,
- HPDT_MOBDATA,
- HPDT_ITEMDATA,
- HPDT_BGDATA,
- HPDT_AUTOTRADE_VEND,
-};
-
-
-enum HPluginConfType {
- HPCT_BATTLE,
- HPCT_LOGIN,
- HPCT_CHAR,
- HPCT_CHAR_INTER,
- HPCT_MAP_INTER,
- HPCT_LOG,
- HPCT_SCRIPT,
- HPCT_MAX,
-};
-# 220 "../../../server-code/src/common/HPMi.h"
-struct HPMi_interface {
-
- unsigned int pid;
-
- void (*event[HPET_MAX]) (void);
-
-# 225 "../../../server-code/src/common/HPMi.h" 3 4
-_Bool
-# 225 "../../../server-code/src/common/HPMi.h"
- (*addCommand) (char *name,
-# 225 "../../../server-code/src/common/HPMi.h" 3 4
- _Bool
-# 225 "../../../server-code/src/common/HPMi.h"
- (*func)(const int fd, struct map_session_data* sd, const char* command, const char* message,struct AtCommandInfo *info));
-
-# 226 "../../../server-code/src/common/HPMi.h" 3 4
-_Bool
-# 226 "../../../server-code/src/common/HPMi.h"
- (*addScript) (char *name, char *args,
-# 226 "../../../server-code/src/common/HPMi.h" 3 4
- _Bool
-# 226 "../../../server-code/src/common/HPMi.h"
- (*func)(struct script_state *st),
-# 226 "../../../server-code/src/common/HPMi.h" 3 4
- _Bool
-# 226 "../../../server-code/src/common/HPMi.h"
- isDeprecated);
- void (*addCPCommand) (char *name, CParseFunc func);
-
- void (*addToHPData) (enum HPluginDataTypes type, uint32 pluginID, struct hplugin_data_store **storeptr, void *data, uint32 classid,
-# 229 "../../../server-code/src/common/HPMi.h" 3 4
- _Bool
-# 229 "../../../server-code/src/common/HPMi.h"
- autofree);
- void *(*getFromHPData) (enum HPluginDataTypes type, uint32 pluginID, struct hplugin_data_store *store, uint32 classid);
- void (*removeFromHPData) (enum HPluginDataTypes type, uint32 pluginID, struct hplugin_data_store *store, uint32 classid);
-
-
-# 233 "../../../server-code/src/common/HPMi.h" 3 4
-_Bool
-# 233 "../../../server-code/src/common/HPMi.h"
- (*addPacket) (unsigned short cmd, unsigned short length, void (*receive)(int fd), unsigned int point, unsigned int pluginID);
-
-
-# 235 "../../../server-code/src/common/HPMi.h" 3 4
-_Bool
-# 235 "../../../server-code/src/common/HPMi.h"
- (*AddHook) (enum HPluginHookType type, const char *target, void *hook, unsigned int pID);
- void (*HookStop) (const char *func, unsigned int pID);
-
-# 237 "../../../server-code/src/common/HPMi.h" 3 4
-_Bool
-# 237 "../../../server-code/src/common/HPMi.h"
- (*HookStopped) (void);
-
-
-# 239 "../../../server-code/src/common/HPMi.h" 3 4
-_Bool
-# 239 "../../../server-code/src/common/HPMi.h"
- (*addArg) (unsigned int pluginID, char *name,
-# 239 "../../../server-code/src/common/HPMi.h" 3 4
- _Bool
-# 239 "../../../server-code/src/common/HPMi.h"
- has_param, CmdlineExecFunc func, const char *help);
-
-
-# 241 "../../../server-code/src/common/HPMi.h" 3 4
-_Bool
-# 241 "../../../server-code/src/common/HPMi.h"
- (*addConf) (unsigned int pluginID, enum HPluginConfType type, char *name, void (*parse_func) (const char *key, const char *val), int (*return_func) (const char *key));
-
- void (*addPCGPermission) (unsigned int pluginID, char *name, unsigned int *mask);
-
- struct Sql *sql_handle;
-};
-# 30 "../../../server-code/src/common/HPM.h" 2
-# 44 "../../../server-code/src/common/HPM.h"
-# 1 "/usr/include/dlfcn.h" 1 3 4
-# 24 "/usr/include/dlfcn.h" 3 4
-# 1 "/usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h" 1 3 4
-# 25 "/usr/include/dlfcn.h" 2 3 4
-
-
-# 1 "/usr/include/x86_64-linux-gnu/bits/dlfcn.h" 1 3 4
-# 28 "/usr/include/dlfcn.h" 2 3 4
-# 52 "/usr/include/dlfcn.h" 3 4
-
-
-
-
-
-# 56 "/usr/include/dlfcn.h" 3 4
-extern void *dlopen (const char *__file, int __mode) __attribute__ ((__nothrow__));
-
-
-
-extern int dlclose (void *__handle) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
-
-
-
-extern void *dlsym (void *__restrict __handle,
- const char *__restrict __name) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2)));
-# 82 "/usr/include/dlfcn.h" 3 4
-extern char *dlerror (void) __attribute__ ((__nothrow__ , __leaf__));
-# 188 "/usr/include/dlfcn.h" 3 4
-
-# 45 "../../../server-code/src/common/HPM.h" 2
-# 64 "../../../server-code/src/common/HPM.h"
-# 1 "/usr/include/string.h" 1 3 4
-# 27 "/usr/include/string.h" 3 4
-
-
-
-
-
-# 1 "/usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h" 1 3 4
-# 33 "/usr/include/string.h" 2 3 4
-
-
-
-
-
-
-
-
-
-extern void *memcpy (void *__restrict __dest, const void *__restrict __src,
- size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
-
-
-extern void *memmove (void *__dest, const void *__src, size_t __n)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
-
-
-
-
-
-
-extern void *memccpy (void *__restrict __dest, const void *__restrict __src,
- int __c, size_t __n)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
-
-
-
-
-
-extern void *memset (void *__s, int __c, size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
-
-
-extern int memcmp (const void *__s1, const void *__s2, size_t __n)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
-# 92 "/usr/include/string.h" 3 4
-extern void *memchr (const void *__s, int __c, size_t __n)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
-
-
-# 123 "/usr/include/string.h" 3 4
-
-
-extern char *strcpy (char *__restrict __dest, const char *__restrict __src)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
-
-extern char *strncpy (char *__restrict __dest,
- const char *__restrict __src, size_t __n)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
-
-
-extern char *strcat (char *__restrict __dest, const char *__restrict __src)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
-
-extern char *strncat (char *__restrict __dest, const char *__restrict __src,
- size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
-
-
-extern int strcmp (const char *__s1, const char *__s2)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
-
-extern int strncmp (const char *__s1, const char *__s2, size_t __n)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
-
-
-extern int strcoll (const char *__s1, const char *__s2)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
-
-extern size_t strxfrm (char *__restrict __dest,
- const char *__restrict __src, size_t __n)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2)));
-
-# 162 "/usr/include/string.h" 3 4
-extern int strcoll_l (const char *__s1, const char *__s2, __locale_t __l)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 3)));
-
-extern size_t strxfrm_l (char *__dest, const char *__src, size_t __n,
- __locale_t __l) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 4)));
-
-
-
-
-extern char *strdup (const char *__s)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1)));
-
-
-
-
-
-
-extern char *strndup (const char *__string, size_t __n)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1)));
-# 206 "/usr/include/string.h" 3 4
-
-# 231 "/usr/include/string.h" 3 4
-extern char *strchr (const char *__s, int __c)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
-# 258 "/usr/include/string.h" 3 4
-extern char *strrchr (const char *__s, int __c)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
-
-
-# 277 "/usr/include/string.h" 3 4
-
-
-
-extern size_t strcspn (const char *__s, const char *__reject)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
-
-
-extern size_t strspn (const char *__s, const char *__accept)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
-# 310 "/usr/include/string.h" 3 4
-extern char *strpbrk (const char *__s, const char *__accept)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
-# 337 "/usr/include/string.h" 3 4
-extern char *strstr (const char *__haystack, const char *__needle)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
-
-
-
-
-extern char *strtok (char *__restrict __s, const char *__restrict __delim)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2)));
-
-
-
-
-extern char *__strtok_r (char *__restrict __s,
- const char *__restrict __delim,
- char **__restrict __save_ptr)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 3)));
-
-extern char *strtok_r (char *__restrict __s, const char *__restrict __delim,
- char **__restrict __save_ptr)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 3)));
-# 392 "/usr/include/string.h" 3 4
-
-
-extern size_t strlen (const char *__s)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
-
-
-
-
-
-extern size_t strnlen (const char *__string, size_t __maxlen)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
-
-
-
-
-
-extern char *strerror (int __errnum) __attribute__ ((__nothrow__ , __leaf__));
-
-# 422 "/usr/include/string.h" 3 4
-extern int strerror_r (int __errnum, char *__buf, size_t __buflen) __asm__ ("" "__xpg_strerror_r") __attribute__ ((__nothrow__ , __leaf__))
-
- __attribute__ ((__nonnull__ (2)));
-# 440 "/usr/include/string.h" 3 4
-extern char *strerror_l (int __errnum, __locale_t __l) __attribute__ ((__nothrow__ , __leaf__));
-
-
-
-
-
-extern void __bzero (void *__s, size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
-
-
-
-extern void bcopy (const void *__src, void *__dest, size_t __n)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
-
-
-extern void bzero (void *__s, size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
-
-
-extern int bcmp (const void *__s1, const void *__s2, size_t __n)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
-# 484 "/usr/include/string.h" 3 4
-extern char *index (const char *__s, int __c)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
-# 512 "/usr/include/string.h" 3 4
-extern char *rindex (const char *__s, int __c)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
-
-
-
-
-extern int ffs (int __i) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__));
-# 529 "/usr/include/string.h" 3 4
-extern int strcasecmp (const char *__s1, const char *__s2)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
-
-
-extern int strncasecmp (const char *__s1, const char *__s2, size_t __n)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
-# 552 "/usr/include/string.h" 3 4
-extern char *strsep (char **__restrict __stringp,
- const char *__restrict __delim)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
-
-
-
-
-extern char *strsignal (int __sig) __attribute__ ((__nothrow__ , __leaf__));
-
-
-extern char *__stpcpy (char *__restrict __dest, const char *__restrict __src)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
-extern char *stpcpy (char *__restrict __dest, const char *__restrict __src)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
-
-
-
-extern char *__stpncpy (char *__restrict __dest,
- const char *__restrict __src, size_t __n)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
-extern char *stpncpy (char *__restrict __dest,
- const char *__restrict __src, size_t __n)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
-# 639 "/usr/include/string.h" 3 4
-
-# 65 "../../../server-code/src/common/HPM.h" 2
-
-
-
-
-# 68 "../../../server-code/src/common/HPM.h"
-struct hplugin {
- void * dll;
- unsigned int idx;
- char *filename;
- struct hplugin_info *info;
- struct HPMi_interface *hpi;
-};
-
-
-
-
-struct hpm_symbol {
- const char *name;
- void *ptr;
-};
-
-
-
-
-struct hplugin_data_entry {
- uint32 pluginID;
- uint32 classid;
- struct {
- unsigned int free : 1;
- } flag;
- void *data;
-};
-
-
-
-
-struct hplugin_data_store {
- enum HPluginDataTypes type;
- struct { int _max_; int _len_; struct hplugin_data_entry * *_data_; } entries;
-};
-
-struct HPluginPacket {
- unsigned int pluginID;
- unsigned short cmd;
- short len;
- void (*receive) (int fd);
-};
-
-struct HPMFileNameCache {
- const char *addr;
- char *name;
-};
-
-
-struct HPConfListenStorage {
- unsigned int pluginID;
- char key[40];
- void (*parse_func) (const char *key, const char *val);
- int (*return_func) (const char *key);
-};
-
-
-struct HPM_interface {
-
- unsigned int version[2];
-
-# 128 "../../../server-code/src/common/HPM.h" 3 4
-_Bool
-# 128 "../../../server-code/src/common/HPM.h"
- off;
-
-# 129 "../../../server-code/src/common/HPM.h" 3 4
-_Bool
-# 129 "../../../server-code/src/common/HPM.h"
- hooking;
-
-
-# 131 "../../../server-code/src/common/HPM.h" 3 4
-_Bool
-# 131 "../../../server-code/src/common/HPM.h"
- force_return;
-
- struct { int _max_; int _len_; struct hplugin * *_data_; } plugins;
- struct { int _max_; int _len_; struct hpm_symbol * *_data_; } symbols;
-
- struct { int _max_; int _len_; struct HPluginPacket *_data_; } packets[hpPHP_MAX];
-
- struct {
-
- int count;
- struct HPMFileNameCache *data;
- } filenames;
-
- struct { int _max_; int _len_; struct HPConfListenStorage *_data_; } config_listeners[HPCT_MAX];
-
- struct { int _max_; int _len_; char * *_data_; } cmdline_load_plugins;
-
- void (*init) (void);
- void (*final) (void);
- struct hplugin * (*create) (void);
- struct hplugin * (*load) (const char* filename);
- void (*unload) (struct hplugin* plugin);
-
-# 153 "../../../server-code/src/common/HPM.h" 3 4
-_Bool
-# 153 "../../../server-code/src/common/HPM.h"
- (*exists) (const char *filename);
-
-# 154 "../../../server-code/src/common/HPM.h" 3 4
-_Bool
-# 154 "../../../server-code/src/common/HPM.h"
- (*iscompatible) (char* version);
- void (*event) (enum hp_event_types type);
- void *(*import_symbol) (char *name, unsigned int pID);
- void (*share) (void *value, const char *name);
- void (*config_read) (void);
- char *(*pid2name) (unsigned int pid);
- unsigned char (*parse_packets) (int fd, int packet_id, enum HPluginPacketHookingPoints point);
- void (*load_sub) (struct hplugin *plugin);
-
-# 162 "../../../server-code/src/common/HPM.h" 3 4
-_Bool
-# 162 "../../../server-code/src/common/HPM.h"
- (*addhook_sub) (enum HPluginHookType type, const char *target, void *hook, unsigned int pID);
-
-
-# 164 "../../../server-code/src/common/HPM.h" 3 4
-_Bool
-# 164 "../../../server-code/src/common/HPM.h"
- (*parseConf) (const char *w1, const char *w2, enum HPluginConfType point);
-
-# 165 "../../../server-code/src/common/HPM.h" 3 4
-_Bool
-# 165 "../../../server-code/src/common/HPM.h"
- (*getBattleConf) (const char* w1, int *value);
-
-
-# 167 "../../../server-code/src/common/HPM.h" 3 4
-_Bool
-# 167 "../../../server-code/src/common/HPM.h"
- (*DataCheck) (struct s_HPMDataCheck *src, unsigned int size, int version, char *name);
- void (*datacheck_init) (const struct s_HPMDataCheck *src, unsigned int length, int version);
- void (*datacheck_final) (void);
-
- void (*data_store_create) (struct hplugin_data_store **storeptr, enum HPluginDataTypes type);
- void (*data_store_destroy) (struct hplugin_data_store **storeptr);
-
-# 173 "../../../server-code/src/common/HPM.h" 3 4
-_Bool
-# 173 "../../../server-code/src/common/HPM.h"
- (*data_store_validate) (enum HPluginDataTypes type, struct hplugin_data_store **storeptr,
-# 173 "../../../server-code/src/common/HPM.h" 3 4
- _Bool
-# 173 "../../../server-code/src/common/HPM.h"
- initialize);
-
-
-# 175 "../../../server-code/src/common/HPM.h" 3 4
-_Bool
-# 175 "../../../server-code/src/common/HPM.h"
- (*data_store_validate_sub) (enum HPluginDataTypes type, struct hplugin_data_store **storeptr,
-# 175 "../../../server-code/src/common/HPM.h" 3 4
- _Bool
-# 175 "../../../server-code/src/common/HPM.h"
- initialize);
-};
-
-
-# 178 "../../../server-code/src/common/HPM.h" 3 4
-_Bool
-# 178 "../../../server-code/src/common/HPM.h"
-cmdline_arg_loadplugin (const char *name, const char *params);
-
-extern struct HPM_interface *HPM;
-
-void hpm_defaults(void);
-# 29 "../../../server-code/src/login/HPMlogin.h" 2
-
-struct hplugin;
-
-
-# 32 "../../../server-code/src/login/HPMlogin.h" 3 4
-_Bool
-# 32 "../../../server-code/src/login/HPMlogin.h"
- HPM_login_data_store_validate(enum HPluginDataTypes type, struct hplugin_data_store **storeptr,
-# 32 "../../../server-code/src/login/HPMlogin.h" 3 4
- _Bool
-# 32 "../../../server-code/src/login/HPMlogin.h"
- initialize);
-
-void HPM_login_plugin_load_sub(struct hplugin *plugin);
-
-void HPM_login_do_final(void);
-
-void HPM_login_do_init(void);
-# 26 "../../../server-code/src/login/login.c" 2
-# 1 "../../../server-code/src/login/account.h" 1
-# 28 "../../../server-code/src/login/account.h"
-struct Sql;
-
-typedef struct AccountDB AccountDB;
-typedef struct AccountDBIterator AccountDBIterator;
-
-
-
-
-AccountDB* account_db_sql(void);
-
-
-struct mmo_account
-{
- int account_id;
- char userid[(23 + 1)];
- char pass[32+1];
- char sex;
- char email[40];
- int group_id;
- uint8 char_slots;
- unsigned int state;
- time_t unban_time;
- time_t expiration_time;
- unsigned int logincount;
- unsigned int pincode_change;
- char pincode[4+1];
- char lastlogin[24];
- char last_ip[16];
- char birthdate[10+1];
-};
-
-
-struct AccountDBIterator
-{
-
-
-
- void (*destroy)(AccountDBIterator* self);
-
-
-
-
-
-
-
-# 72 "../../../server-code/src/login/account.h" 3 4
-_Bool
-# 72 "../../../server-code/src/login/account.h"
- (*next)(AccountDBIterator* self, struct mmo_account* acc);
-};
-
-struct Account_engine {
- AccountDB* (*constructor)(void);
- AccountDB* db;
-};
-
-struct AccountDB
-{
-
-
-
-
-
-
-# 87 "../../../server-code/src/login/account.h" 3 4
-_Bool
-# 87 "../../../server-code/src/login/account.h"
- (*init)(AccountDB* self);
-
-
-
-
- void (*destroy)(AccountDB* self);
-# 105 "../../../server-code/src/login/account.h"
-
-# 105 "../../../server-code/src/login/account.h" 3 4
-_Bool
-# 105 "../../../server-code/src/login/account.h"
- (*get_property)(AccountDB* self, const char* key, char* buf, size_t buflen);
-
-
-
-
-
-
-
-
-# 113 "../../../server-code/src/login/account.h" 3 4
-_Bool
-# 113 "../../../server-code/src/login/account.h"
- (*set_property)(AccountDB* self, const char* key, const char* value);
-# 122 "../../../server-code/src/login/account.h"
-
-# 122 "../../../server-code/src/login/account.h" 3 4
-_Bool
-# 122 "../../../server-code/src/login/account.h"
- (*create)(AccountDB* self, struct mmo_account* acc);
-
-
-
-
-
-
-
-# 129 "../../../server-code/src/login/account.h" 3 4
-_Bool
-# 129 "../../../server-code/src/login/account.h"
- (*remove)(AccountDB* self, const int account_id);
-
-
-
-
-
-
-
-
-# 137 "../../../server-code/src/login/account.h" 3 4
-_Bool
-# 137 "../../../server-code/src/login/account.h"
- (*save)(AccountDB* self, const struct mmo_account* acc);
-
-
-
-
-
-
-
-
-# 145 "../../../server-code/src/login/account.h" 3 4
-_Bool
-# 145 "../../../server-code/src/login/account.h"
- (*load_num)(AccountDB* self, struct mmo_account* acc, const int account_id);
-
-
-
-
-
-
-
-
-# 153 "../../../server-code/src/login/account.h" 3 4
-_Bool
-# 153 "../../../server-code/src/login/account.h"
- (*load_str)(AccountDB* self, struct mmo_account* acc, const char* userid);
-
-
-
-
-
- AccountDBIterator* (*iterator)(AccountDB* self);
-};
-
-
-struct Sql *account_db_sql_up(AccountDB* self);
-
-void mmo_send_accreg2(AccountDB* self, int fd, int account_id, int char_id);
-void mmo_save_accreg2(AccountDB* self, int fd, int account_id, int char_id);
-# 27 "../../../server-code/src/login/login.c" 2
-# 1 "../../../server-code/src/login/ipban.h" 1
-# 29 "../../../server-code/src/login/ipban.h"
-void ipban_init(void);
-
-
-void ipban_final(void);
-
-
-
-# 35 "../../../server-code/src/login/ipban.h" 3 4
-_Bool
-# 35 "../../../server-code/src/login/ipban.h"
- ipban_check(uint32 ip);
-
-
-void ipban_log(uint32 ip);
-
-
-
-# 41 "../../../server-code/src/login/ipban.h" 3 4
-_Bool
-# 41 "../../../server-code/src/login/ipban.h"
- ipban_config_read(const char *key, const char* value);
-# 28 "../../../server-code/src/login/login.c" 2
-# 1 "../../../server-code/src/login/loginlog.h" 1
-# 28 "../../../server-code/src/login/loginlog.h"
-unsigned long loginlog_failedattempts(uint32 ip, unsigned int minutes);
-void login_log(uint32 ip, const char* username, int rcode, const char* message);
-
-# 30 "../../../server-code/src/login/loginlog.h" 3 4
-_Bool
-# 30 "../../../server-code/src/login/loginlog.h"
- loginlog_init(void);
-
-# 31 "../../../server-code/src/login/loginlog.h" 3 4
-_Bool
-# 31 "../../../server-code/src/login/loginlog.h"
- loginlog_final(void);
-
-# 32 "../../../server-code/src/login/loginlog.h" 3 4
-_Bool
-# 32 "../../../server-code/src/login/loginlog.h"
- loginlog_config_read(const char* w1, const char* w2);
-# 29 "../../../server-code/src/login/login.c" 2
-
-
-
-
-# 1 "../../../server-code/src/common/memmgr.h" 1
-# 80 "../../../server-code/src/common/memmgr.h"
-struct malloc_interface {
- void (*init) (void);
- void (*final) (void);
-
- void* (*malloc)(size_t size, const char *file, int line, const char *func);
- void* (*calloc)(size_t num, size_t size, const char *file, int line, const char *func);
- void* (*realloc)(void *p, size_t size, const char *file, int line, const char *func);
- void* (*reallocz)(void *p, size_t size, const char *file, int line, const char *func);
- char* (*astrdup)(const char *p, const char *file, int line, const char *func);
- char *(*astrndup)(const char *p, size_t size, const char *file, int line, const char *func);
- void (*free)(void *p, const char *file, int line, const char *func);
-
- void (*memory_check)(void);
-
-# 93 "../../../server-code/src/common/memmgr.h" 3 4
-_Bool
-# 93 "../../../server-code/src/common/memmgr.h"
- (*verify_ptr)(void* ptr);
- size_t (*usage) (void);
-
- void (*post_shutdown) (void);
- void (*init_messages) (void);
-};
-
-
-void malloc_defaults(void);
-
-void memmgr_report(int extra);
-
-
-extern struct malloc_interface *iMalloc;
-# 34 "../../../server-code/src/login/login.c" 2
-# 1 "../../../server-code/src/common/md5calc.h" 1
-# 25 "../../../server-code/src/common/md5calc.h"
-void MD5_String(const char * string, char * output);
-void MD5_Binary(const char * string, unsigned char * output);
-void MD5_Salt(unsigned int len, char * output);
-# 35 "../../../server-code/src/login/login.c" 2
-# 1 "../../../server-code/src/common/nullpo.h" 1
-# 40 "../../../server-code/src/common/nullpo.h"
-# 1 "/usr/include/assert.h" 1 3 4
-# 66 "/usr/include/assert.h" 3 4
-
-
-
-
-# 69 "/usr/include/assert.h" 3 4
-extern void __assert_fail (const char *__assertion, const char *__file,
- unsigned int __line, const char *__function)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__noreturn__));
-
-
-extern void __assert_perror_fail (int __errnum, const char *__file,
- unsigned int __line, const char *__function)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__noreturn__));
-
-
-
-
-extern void __assert (const char *__assertion, const char *__file, int __line)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__noreturn__));
-
-
-
-# 41 "../../../server-code/src/common/nullpo.h" 2
-# 155 "../../../server-code/src/common/nullpo.h"
-
-# 155 "../../../server-code/src/common/nullpo.h"
-struct nullpo_interface {
- void (*assert_report) (const char *file, int line, const char *func, const char *targetname, const char *title);
-};
-
-
-void nullpo_defaults(void);
-
-
-extern struct nullpo_interface *nullpo;
-# 36 "../../../server-code/src/login/login.c" 2
-# 1 "../../../server-code/src/common/random.h" 1
-# 27 "../../../server-code/src/common/random.h"
-void rnd_init(void);
-void rnd_seed(uint32);
-
-int32 rnd(void);
-uint32 rnd_roll(uint32 dice_faces);
-int32 rnd_value(int32 min, int32 max);
-double rnd_uniform(void);
-double rnd_uniform53(void);
-# 37 "../../../server-code/src/login/login.c" 2
-
-# 1 "../../../server-code/src/common/socket.h" 1
-# 39 "../../../server-code/src/login/login.c" 2
-# 1 "../../../server-code/src/common/strlib.h" 1
-# 54 "../../../server-code/src/common/strlib.h"
-typedef enum e_svopt {
-
- SV_NOESCAPE_NOTERMINATE = 0,
-
- SV_ESCAPE_C = 1,
-
- SV_TERMINATE_LF = 2,
- SV_TERMINATE_CRLF = 4,
- SV_TERMINATE_CR = 8,
-
- SV_KEEP_TERMINATOR = 16
-} e_svopt;
-
-
-
-
-
-
-struct s_svstate {
- const char* str;
- int len;
- int off;
- int start;
- int end;
- enum e_svopt opt;
- char delim;
-
-# 80 "../../../server-code/src/common/strlib.h" 3 4
-_Bool
-# 80 "../../../server-code/src/common/strlib.h"
- done;
-};
-
-
-
-struct StringBuf {
- char *buf_;
- char *ptr_;
- unsigned int max_;
-};
-typedef struct StringBuf StringBuf;
-
-struct strlib_interface {
- char *(*jstrescape) (char* pt);
- char *(*jstrescapecpy) (char* pt, const char* spt);
- int (*jmemescapecpy) (char* pt, const char* spt, int size);
- int (*remove_control_chars_) (char* str);
- char *(*trim_) (char* str);
- char *(*normalize_name_) (char* str,const char* delims);
- const char *(*stristr_) (const char *haystack, const char *needle);
-
-
- size_t (*strnlen_) (const char* string, size_t maxlen);
-
-
- char * (*strtok_r_) (char *s1, const char *s2, char **lasts);
-
- int (*e_mail_check_) (char* email);
- int (*config_switch_) (const char* str);
-
-
- char *(*safestrncpy_) (char* dst, const char* src, size_t n);
-
-
- size_t (*safestrnlen_) (const char* string, size_t maxlen);
-
-
-
-
- int (*safesnprintf_) (char *buf, size_t sz, const char *fmt, ...) __attribute__((format(printf, 3, 4)));
-
-
-
- int (*strline_) (const char* str, size_t pos);
-
-
-
-
-
-# 128 "../../../server-code/src/common/strlib.h" 3 4
-_Bool
-# 128 "../../../server-code/src/common/strlib.h"
- (*bin2hex_) (char* output, unsigned char* input, size_t count);
-};
-
-struct stringbuf_interface {
- StringBuf* (*Malloc) (void);
- void (*Init) (StringBuf* self);
- int (*Printf) (StringBuf *self, const char *fmt, ...) __attribute__((format(printf, 2, 3)));
- int (*Vprintf) (StringBuf* self, const char* fmt, va_list args);
- int (*Append) (StringBuf* self, const StringBuf *sbuf);
- int (*AppendStr) (StringBuf* self, const char* str);
- int (*Length) (StringBuf* self);
- char* (*Value) (StringBuf* self);
- void (*Clear) (StringBuf* self);
- void (*Destroy) (StringBuf* self);
- void (*Free) (StringBuf* self);
-};
-
-struct sv_interface {
-
-
-
-
-
- int (*parse_next) (struct s_svstate* svstate);
-
-
-
-
-
-
- int (*parse) (const char* str, int len, int startoff, char delim, int* out_pos, int npos, enum e_svopt opt);
-
-
-
-
-
-
-
- int (*split) (char* str, int len, int startoff, char delim, char** out_fields, int nfields, enum e_svopt opt);
-
-
-
-
- size_t (*escape_c) (char* out_dest, const char* src, size_t len, const char* escapes);
-
-
-
-
- size_t (*unescape_c) (char* out_dest, const char* src, size_t len);
-
-
- const char* (*skip_escaped_c) (const char* p);
-
-
-
-
-
-# 184 "../../../server-code/src/common/strlib.h" 3 4
-_Bool
-# 184 "../../../server-code/src/common/strlib.h"
- (*readdb) (const char* directory, const char* filename, char delim, int mincols, int maxcols, int maxrows,
-# 184 "../../../server-code/src/common/strlib.h" 3 4
- _Bool
-# 184 "../../../server-code/src/common/strlib.h"
- (*parseproc)(char* fields[], int columns, int current));
-};
-
-
-void strlib_defaults(void);
-
-
-extern struct strlib_interface *strlib;
-extern struct stringbuf_interface *StrBuf;
-extern struct sv_interface *sv;
-# 40 "../../../server-code/src/login/login.c" 2
-# 1 "../../../server-code/src/common/timer.h" 1
-# 32 "../../../server-code/src/common/timer.h"
-enum {
- TIMER_ONCE_AUTODEL = 0x01,
- TIMER_INTERVAL = 0x02,
- TIMER_REMOVE_HEAP = 0x10,
-};
-
-
-
-typedef int (*TimerFunc)(int tid, int64 tick, int id, intptr_t data);
-
-struct TimerData {
- int64 tick;
- TimerFunc func;
- unsigned char type;
- int interval;
-
-
- int id;
- intptr_t data;
-};
-
-
-
-
-
-
-
-struct timer_interface {
-
-
- int64 (*gettick) (void);
- int64 (*gettick_nocache) (void);
-
- int (*add) (int64 tick, TimerFunc func, int id, intptr_t data);
- int (*add_interval) (int64 tick, TimerFunc func, int id, intptr_t data, int interval);
- const struct TimerData *(*get) (int tid);
- int (*delete) (int tid, TimerFunc func);
-
- int64 (*addtick) (int tid, int64 tick);
- int64 (*settick) (int tid, int64 tick);
-
- int (*add_func_list) (TimerFunc func, char* name);
-
- unsigned long (*get_uptime) (void);
-
- int (*perform) (int64 tick);
- void (*init) (void);
- void (*final) (void);
-};
-
-
-void timer_defaults(void);
-
-
-extern struct timer_interface *timer;
-# 41 "../../../server-code/src/login/login.c" 2
-# 1 "../../../server-code/src/common/utils.h" 1
-# 26 "../../../server-code/src/common/utils.h"
-# 1 "/usr/include/stdio.h" 1 3 4
-# 29 "/usr/include/stdio.h" 3 4
-
-
-
-
-# 1 "/usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h" 1 3 4
-# 34 "/usr/include/stdio.h" 2 3 4
-# 44 "/usr/include/stdio.h" 3 4
-
-# 44 "/usr/include/stdio.h" 3 4
-struct _IO_FILE;
-
-
-
-typedef struct _IO_FILE FILE;
-
-
-
-
-
-# 64 "/usr/include/stdio.h" 3 4
-typedef struct _IO_FILE __FILE;
-# 74 "/usr/include/stdio.h" 3 4
-# 1 "/usr/include/libio.h" 1 3 4
-# 31 "/usr/include/libio.h" 3 4
-# 1 "/usr/include/_G_config.h" 1 3 4
-# 15 "/usr/include/_G_config.h" 3 4
-# 1 "/usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h" 1 3 4
-# 16 "/usr/include/_G_config.h" 2 3 4
-
-
-
-
-# 1 "/usr/include/wchar.h" 1 3 4
-# 82 "/usr/include/wchar.h" 3 4
-typedef struct
-{
- int __count;
- union
- {
-
- unsigned int __wch;
-
-
-
- char __wchb[4];
- } __value;
-} __mbstate_t;
-# 21 "/usr/include/_G_config.h" 2 3 4
-typedef struct
-{
- __off_t __pos;
- __mbstate_t __state;
-} _G_fpos_t;
-typedef struct
-{
- __off64_t __pos;
- __mbstate_t __state;
-} _G_fpos64_t;
-# 32 "/usr/include/libio.h" 2 3 4
-# 144 "/usr/include/libio.h" 3 4
-struct _IO_jump_t; struct _IO_FILE;
-
-
-
-
-
-typedef void _IO_lock_t;
-
-
-
-
-
-struct _IO_marker {
- struct _IO_marker *_next;
- struct _IO_FILE *_sbuf;
-
-
-
- int _pos;
-# 173 "/usr/include/libio.h" 3 4
-};
-
-
-enum __codecvt_result
-{
- __codecvt_ok,
- __codecvt_partial,
- __codecvt_error,
- __codecvt_noconv
-};
-# 241 "/usr/include/libio.h" 3 4
-struct _IO_FILE {
- int _flags;
-
-
-
-
- char* _IO_read_ptr;
- char* _IO_read_end;
- char* _IO_read_base;
- char* _IO_write_base;
- char* _IO_write_ptr;
- char* _IO_write_end;
- char* _IO_buf_base;
- char* _IO_buf_end;
-
- char *_IO_save_base;
- char *_IO_backup_base;
- char *_IO_save_end;
-
- struct _IO_marker *_markers;
-
- struct _IO_FILE *_chain;
-
- int _fileno;
-
-
-
- int _flags2;
-
- __off_t _old_offset;
-
-
-
- unsigned short _cur_column;
- signed char _vtable_offset;
- char _shortbuf[1];
-
-
-
- _IO_lock_t *_lock;
-# 289 "/usr/include/libio.h" 3 4
- __off64_t _offset;
-# 298 "/usr/include/libio.h" 3 4
- void *__pad1;
- void *__pad2;
- void *__pad3;
- void *__pad4;
- size_t __pad5;
-
- int _mode;
-
- char _unused2[15 * sizeof (int) - 4 * sizeof (void *) - sizeof (size_t)];
-
-};
-
-
-typedef struct _IO_FILE _IO_FILE;
-
-
-struct _IO_FILE_plus;
-
-extern struct _IO_FILE_plus _IO_2_1_stdin_;
-extern struct _IO_FILE_plus _IO_2_1_stdout_;
-extern struct _IO_FILE_plus _IO_2_1_stderr_;
-# 334 "/usr/include/libio.h" 3 4
-typedef __ssize_t __io_read_fn (void *__cookie, char *__buf, size_t __nbytes);
-
-
-
-
-
-
-
-typedef __ssize_t __io_write_fn (void *__cookie, const char *__buf,
- size_t __n);
-
-
-
-
-
-
-
-typedef int __io_seek_fn (void *__cookie, __off64_t *__pos, int __w);
-
-
-typedef int __io_close_fn (void *__cookie);
-# 386 "/usr/include/libio.h" 3 4
-extern int __underflow (_IO_FILE *);
-extern int __uflow (_IO_FILE *);
-extern int __overflow (_IO_FILE *, int);
-# 430 "/usr/include/libio.h" 3 4
-extern int _IO_getc (_IO_FILE *__fp);
-extern int _IO_putc (int __c, _IO_FILE *__fp);
-extern int _IO_feof (_IO_FILE *__fp) __attribute__ ((__nothrow__ , __leaf__));
-extern int _IO_ferror (_IO_FILE *__fp) __attribute__ ((__nothrow__ , __leaf__));
-
-extern int _IO_peekc_locked (_IO_FILE *__fp);
-
-
-
-
-
-extern void _IO_flockfile (_IO_FILE *) __attribute__ ((__nothrow__ , __leaf__));
-extern void _IO_funlockfile (_IO_FILE *) __attribute__ ((__nothrow__ , __leaf__));
-extern int _IO_ftrylockfile (_IO_FILE *) __attribute__ ((__nothrow__ , __leaf__));
-# 460 "/usr/include/libio.h" 3 4
-extern int _IO_vfscanf (_IO_FILE * __restrict, const char * __restrict,
- __gnuc_va_list, int *__restrict);
-extern int _IO_vfprintf (_IO_FILE *__restrict, const char *__restrict,
- __gnuc_va_list);
-extern __ssize_t _IO_padn (_IO_FILE *, int, __ssize_t);
-extern size_t _IO_sgetn (_IO_FILE *, void *, size_t);
-
-extern __off64_t _IO_seekoff (_IO_FILE *, __off64_t, int, int);
-extern __off64_t _IO_seekpos (_IO_FILE *, __off64_t, int);
-
-extern void _IO_free_backup_area (_IO_FILE *) __attribute__ ((__nothrow__ , __leaf__));
-# 75 "/usr/include/stdio.h" 2 3 4
-# 90 "/usr/include/stdio.h" 3 4
-typedef __off_t off_t;
-# 102 "/usr/include/stdio.h" 3 4
-typedef __ssize_t ssize_t;
-
-
-
-
-
-
-
-typedef _G_fpos_t fpos_t;
-
-
-
-
-# 164 "/usr/include/stdio.h" 3 4
-# 1 "/usr/include/x86_64-linux-gnu/bits/stdio_lim.h" 1 3 4
-# 165 "/usr/include/stdio.h" 2 3 4
-
-
-
-extern struct _IO_FILE *stdin;
-extern struct _IO_FILE *stdout;
-extern struct _IO_FILE *stderr;
-
-
-
-
-
-
-
-extern int remove (const char *__filename) __attribute__ ((__nothrow__ , __leaf__));
-
-extern int rename (const char *__old, const char *__new) __attribute__ ((__nothrow__ , __leaf__));
-
-
-
-
-extern int renameat (int __oldfd, const char *__old, int __newfd,
- const char *__new) __attribute__ ((__nothrow__ , __leaf__));
-
-
-
-
-
-
-
-
-extern FILE *tmpfile (void) ;
-# 209 "/usr/include/stdio.h" 3 4
-extern char *tmpnam (char *__s) __attribute__ ((__nothrow__ , __leaf__)) ;
-
-
-
-
-
-extern char *tmpnam_r (char *__s) __attribute__ ((__nothrow__ , __leaf__)) ;
-# 227 "/usr/include/stdio.h" 3 4
-extern char *tempnam (const char *__dir, const char *__pfx)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)) ;
-
-
-
-
-
-
-
-
-extern int fclose (FILE *__stream);
-
-
-
-
-extern int fflush (FILE *__stream);
-
-# 252 "/usr/include/stdio.h" 3 4
-extern int fflush_unlocked (FILE *__stream);
-# 266 "/usr/include/stdio.h" 3 4
-
-
-
-
-
-
-extern FILE *fopen (const char *__restrict __filename,
- const char *__restrict __modes) ;
-
-
-
-
-extern FILE *freopen (const char *__restrict __filename,
- const char *__restrict __modes,
- FILE *__restrict __stream) ;
-# 295 "/usr/include/stdio.h" 3 4
-
-# 306 "/usr/include/stdio.h" 3 4
-extern FILE *fdopen (int __fd, const char *__modes) __attribute__ ((__nothrow__ , __leaf__)) ;
-# 319 "/usr/include/stdio.h" 3 4
-extern FILE *fmemopen (void *__s, size_t __len, const char *__modes)
- __attribute__ ((__nothrow__ , __leaf__)) ;
-
-
-
-
-extern FILE *open_memstream (char **__bufloc, size_t *__sizeloc) __attribute__ ((__nothrow__ , __leaf__)) ;
-
-
-
-
-
-
-extern void setbuf (FILE *__restrict __stream, char *__restrict __buf) __attribute__ ((__nothrow__ , __leaf__));
-
-
-
-extern int setvbuf (FILE *__restrict __stream, char *__restrict __buf,
- int __modes, size_t __n) __attribute__ ((__nothrow__ , __leaf__));
-
-
-
-
-
-extern void setbuffer (FILE *__restrict __stream, char *__restrict __buf,
- size_t __size) __attribute__ ((__nothrow__ , __leaf__));
-
-
-extern void setlinebuf (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__));
-
-
-
-
-
-
-
-
-extern int fprintf (FILE *__restrict __stream,
- const char *__restrict __format, ...);
-
-
-
-
-extern int printf (const char *__restrict __format, ...);
-
-extern int sprintf (char *__restrict __s,
- const char *__restrict __format, ...) __attribute__ ((__nothrow__));
-
-
-
-
-
-extern int vfprintf (FILE *__restrict __s, const char *__restrict __format,
- __gnuc_va_list __arg);
-
-
-
-
-extern int vprintf (const char *__restrict __format, __gnuc_va_list __arg);
-
-extern int vsprintf (char *__restrict __s, const char *__restrict __format,
- __gnuc_va_list __arg) __attribute__ ((__nothrow__));
-
-
-
-
-
-extern int snprintf (char *__restrict __s, size_t __maxlen,
- const char *__restrict __format, ...)
- __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 3, 4)));
-
-extern int vsnprintf (char *__restrict __s, size_t __maxlen,
- const char *__restrict __format, __gnuc_va_list __arg)
- __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 3, 0)));
-
-# 412 "/usr/include/stdio.h" 3 4
-extern int vdprintf (int __fd, const char *__restrict __fmt,
- __gnuc_va_list __arg)
- __attribute__ ((__format__ (__printf__, 2, 0)));
-extern int dprintf (int __fd, const char *__restrict __fmt, ...)
- __attribute__ ((__format__ (__printf__, 2, 3)));
-
-
-
-
-
-
-
-
-extern int fscanf (FILE *__restrict __stream,
- const char *__restrict __format, ...) ;
-
-
-
-
-extern int scanf (const char *__restrict __format, ...) ;
-
-extern int sscanf (const char *__restrict __s,
- const char *__restrict __format, ...) __attribute__ ((__nothrow__ , __leaf__));
-# 443 "/usr/include/stdio.h" 3 4
-extern int fscanf (FILE *__restrict __stream, const char *__restrict __format, ...) __asm__ ("" "__isoc99_fscanf")
-
- ;
-extern int scanf (const char *__restrict __format, ...) __asm__ ("" "__isoc99_scanf")
- ;
-extern int sscanf (const char *__restrict __s, const char *__restrict __format, ...) __asm__ ("" "__isoc99_sscanf") __attribute__ ((__nothrow__ , __leaf__))
-
- ;
-# 463 "/usr/include/stdio.h" 3 4
-
-
-
-
-
-
-
-
-extern int vfscanf (FILE *__restrict __s, const char *__restrict __format,
- __gnuc_va_list __arg)
- __attribute__ ((__format__ (__scanf__, 2, 0))) ;
-
-
-
-
-
-extern int vscanf (const char *__restrict __format, __gnuc_va_list __arg)
- __attribute__ ((__format__ (__scanf__, 1, 0))) ;
-
-
-extern int vsscanf (const char *__restrict __s,
- const char *__restrict __format, __gnuc_va_list __arg)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__format__ (__scanf__, 2, 0)));
-# 494 "/usr/include/stdio.h" 3 4
-extern int vfscanf (FILE *__restrict __s, const char *__restrict __format, __gnuc_va_list __arg) __asm__ ("" "__isoc99_vfscanf")
-
-
-
- __attribute__ ((__format__ (__scanf__, 2, 0))) ;
-extern int vscanf (const char *__restrict __format, __gnuc_va_list __arg) __asm__ ("" "__isoc99_vscanf")
-
- __attribute__ ((__format__ (__scanf__, 1, 0))) ;
-extern int vsscanf (const char *__restrict __s, const char *__restrict __format, __gnuc_va_list __arg) __asm__ ("" "__isoc99_vsscanf") __attribute__ ((__nothrow__ , __leaf__))
-
-
-
- __attribute__ ((__format__ (__scanf__, 2, 0)));
-# 522 "/usr/include/stdio.h" 3 4
-
-
-
-
-
-
-
-
-
-extern int fgetc (FILE *__stream);
-extern int getc (FILE *__stream);
-
-
-
-
-
-extern int getchar (void);
-
-# 550 "/usr/include/stdio.h" 3 4
-extern int getc_unlocked (FILE *__stream);
-extern int getchar_unlocked (void);
-# 561 "/usr/include/stdio.h" 3 4
-extern int fgetc_unlocked (FILE *__stream);
-
-
-
-
-
-
-
-
-
-
-
-extern int fputc (int __c, FILE *__stream);
-extern int putc (int __c, FILE *__stream);
-
-
-
-
-
-extern int putchar (int __c);
-
-# 594 "/usr/include/stdio.h" 3 4
-extern int fputc_unlocked (int __c, FILE *__stream);
-
-
-
-
-
-
-
-extern int putc_unlocked (int __c, FILE *__stream);
-extern int putchar_unlocked (int __c);
-
-
-
-
-
-
-extern int getw (FILE *__stream);
-
-
-extern int putw (int __w, FILE *__stream);
-
-
-
-
-
-
-
-
-extern char *fgets (char *__restrict __s, int __n, FILE *__restrict __stream)
- ;
-# 640 "/usr/include/stdio.h" 3 4
-
-# 665 "/usr/include/stdio.h" 3 4
-extern __ssize_t __getdelim (char **__restrict __lineptr,
- size_t *__restrict __n, int __delimiter,
- FILE *__restrict __stream) ;
-extern __ssize_t getdelim (char **__restrict __lineptr,
- size_t *__restrict __n, int __delimiter,
- FILE *__restrict __stream) ;
-
-
-
-
-
-
-
-extern __ssize_t getline (char **__restrict __lineptr,
- size_t *__restrict __n,
- FILE *__restrict __stream) ;
-
-
-
-
-
-
-
-
-extern int fputs (const char *__restrict __s, FILE *__restrict __stream);
-
-
-
-
-
-extern int puts (const char *__s);
-
-
-
-
-
-
-extern int ungetc (int __c, FILE *__stream);
-
-
-
-
-
-
-extern size_t fread (void *__restrict __ptr, size_t __size,
- size_t __n, FILE *__restrict __stream) ;
-
-
-
-
-extern size_t fwrite (const void *__restrict __ptr, size_t __size,
- size_t __n, FILE *__restrict __s);
-
-# 737 "/usr/include/stdio.h" 3 4
-extern size_t fread_unlocked (void *__restrict __ptr, size_t __size,
- size_t __n, FILE *__restrict __stream) ;
-extern size_t fwrite_unlocked (const void *__restrict __ptr, size_t __size,
- size_t __n, FILE *__restrict __stream);
-
-
-
-
-
-
-
-
-extern int fseek (FILE *__stream, long int __off, int __whence);
-
-
-
-
-extern long int ftell (FILE *__stream) ;
-
-
-
-
-extern void rewind (FILE *__stream);
-
-# 773 "/usr/include/stdio.h" 3 4
-extern int fseeko (FILE *__stream, __off_t __off, int __whence);
-
-
-
-
-extern __off_t ftello (FILE *__stream) ;
-# 792 "/usr/include/stdio.h" 3 4
-
-
-
-
-
-
-extern int fgetpos (FILE *__restrict __stream, fpos_t *__restrict __pos);
-
-
-
-
-extern int fsetpos (FILE *__stream, const fpos_t *__pos);
-# 815 "/usr/include/stdio.h" 3 4
-
-# 824 "/usr/include/stdio.h" 3 4
-
-
-extern void clearerr (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__));
-
-extern int feof (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) ;
-
-extern int ferror (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) ;
-
-
-
-
-extern void clearerr_unlocked (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__));
-extern int feof_unlocked (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) ;
-extern int ferror_unlocked (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) ;
-
-
-
-
-
-
-
-
-extern void perror (const char *__s);
-
-
-
-
-
-
-# 1 "/usr/include/x86_64-linux-gnu/bits/sys_errlist.h" 1 3 4
-# 26 "/usr/include/x86_64-linux-gnu/bits/sys_errlist.h" 3 4
-extern int sys_nerr;
-extern const char *const sys_errlist[];
-# 854 "/usr/include/stdio.h" 2 3 4
-
-
-
-
-extern int fileno (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) ;
-
-
-
-
-extern int fileno_unlocked (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) ;
-# 872 "/usr/include/stdio.h" 3 4
-extern FILE *popen (const char *__command, const char *__modes) ;
-
-
-
-
-
-extern int pclose (FILE *__stream);
-
-
-
-
-
-extern char *ctermid (char *__s) __attribute__ ((__nothrow__ , __leaf__));
-# 912 "/usr/include/stdio.h" 3 4
-extern void flockfile (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__));
-
-
-
-extern int ftrylockfile (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) ;
-
-
-extern void funlockfile (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__));
-# 942 "/usr/include/stdio.h" 3 4
-
-# 27 "../../../server-code/src/common/utils.h" 2
-
-# 1 "/usr/include/unistd.h" 1 3 4
-# 27 "/usr/include/unistd.h" 3 4
-
-# 205 "/usr/include/unistd.h" 3 4
-# 1 "/usr/include/x86_64-linux-gnu/bits/posix_opt.h" 1 3 4
-# 206 "/usr/include/unistd.h" 2 3 4
-
-
-
-# 1 "/usr/include/x86_64-linux-gnu/bits/environments.h" 1 3 4
-# 22 "/usr/include/x86_64-linux-gnu/bits/environments.h" 3 4
-# 1 "/usr/include/x86_64-linux-gnu/bits/wordsize.h" 1 3 4
-# 23 "/usr/include/x86_64-linux-gnu/bits/environments.h" 2 3 4
-# 210 "/usr/include/unistd.h" 2 3 4
-# 229 "/usr/include/unistd.h" 3 4
-# 1 "/usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h" 1 3 4
-# 230 "/usr/include/unistd.h" 2 3 4
-
-
-
-
-
-typedef __gid_t gid_t;
-
-
-
-
-typedef __uid_t uid_t;
-# 258 "/usr/include/unistd.h" 3 4
-typedef __useconds_t useconds_t;
-# 277 "/usr/include/unistd.h" 3 4
-typedef __socklen_t socklen_t;
-# 290 "/usr/include/unistd.h" 3 4
-extern int access (const char *__name, int __type) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
-# 307 "/usr/include/unistd.h" 3 4
-extern int faccessat (int __fd, const char *__file, int __type, int __flag)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2))) ;
-# 337 "/usr/include/unistd.h" 3 4
-extern __off_t lseek (int __fd, __off_t __offset, int __whence) __attribute__ ((__nothrow__ , __leaf__));
-# 356 "/usr/include/unistd.h" 3 4
-extern int close (int __fd);
-
-
-
-
-
-
-extern ssize_t read (int __fd, void *__buf, size_t __nbytes) ;
-
-
-
-
-
-extern ssize_t write (int __fd, const void *__buf, size_t __n) ;
-# 379 "/usr/include/unistd.h" 3 4
-extern ssize_t pread (int __fd, void *__buf, size_t __nbytes,
- __off_t __offset) ;
-
-
-
-
-
-
-extern ssize_t pwrite (int __fd, const void *__buf, size_t __n,
- __off_t __offset) ;
-# 420 "/usr/include/unistd.h" 3 4
-extern int pipe (int __pipedes[2]) __attribute__ ((__nothrow__ , __leaf__)) ;
-# 435 "/usr/include/unistd.h" 3 4
-extern unsigned int alarm (unsigned int __seconds) __attribute__ ((__nothrow__ , __leaf__));
-# 447 "/usr/include/unistd.h" 3 4
-extern unsigned int sleep (unsigned int __seconds);
-
-
-
-
-
-
-
-extern __useconds_t ualarm (__useconds_t __value, __useconds_t __interval)
- __attribute__ ((__nothrow__ , __leaf__));
-
-
-
-
-
-
-extern int usleep (__useconds_t __useconds);
-# 472 "/usr/include/unistd.h" 3 4
-extern int pause (void);
-
-
-
-extern int chown (const char *__file, __uid_t __owner, __gid_t __group)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ;
-
-
-
-extern int fchown (int __fd, __uid_t __owner, __gid_t __group) __attribute__ ((__nothrow__ , __leaf__)) ;
-
-
-
-
-extern int lchown (const char *__file, __uid_t __owner, __gid_t __group)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ;
-
-
-
-
-
-
-extern int fchownat (int __fd, const char *__file, __uid_t __owner,
- __gid_t __group, int __flag)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2))) ;
-
-
-
-extern int chdir (const char *__path) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ;
-
-
-
-extern int fchdir (int __fd) __attribute__ ((__nothrow__ , __leaf__)) ;
-# 514 "/usr/include/unistd.h" 3 4
-extern char *getcwd (char *__buf, size_t __size) __attribute__ ((__nothrow__ , __leaf__)) ;
-# 528 "/usr/include/unistd.h" 3 4
-extern char *getwd (char *__buf)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__deprecated__)) ;
-
-
-
-
-extern int dup (int __fd) __attribute__ ((__nothrow__ , __leaf__)) ;
-
-
-extern int dup2 (int __fd, int __fd2) __attribute__ ((__nothrow__ , __leaf__));
-# 546 "/usr/include/unistd.h" 3 4
-extern char **__environ;
-
-
-
-
-
-
-
-extern int execve (const char *__path, char *const __argv[],
- char *const __envp[]) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
-
-
-
-
-extern int fexecve (int __fd, char *const __argv[], char *const __envp[])
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2)));
-
-
-
-
-extern int execv (const char *__path, char *const __argv[])
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
-
-
-
-extern int execle (const char *__path, const char *__arg, ...)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
-
-
-
-extern int execl (const char *__path, const char *__arg, ...)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
-
-
-
-extern int execvp (const char *__file, char *const __argv[])
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
-
-
-
-
-extern int execlp (const char *__file, const char *__arg, ...)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
-# 601 "/usr/include/unistd.h" 3 4
-extern int nice (int __inc) __attribute__ ((__nothrow__ , __leaf__)) ;
-
-
-
-
-extern void _exit (int __status) __attribute__ ((__noreturn__));
-
-
-
-
-
-# 1 "/usr/include/x86_64-linux-gnu/bits/confname.h" 1 3 4
-# 24 "/usr/include/x86_64-linux-gnu/bits/confname.h" 3 4
-enum
- {
- _PC_LINK_MAX,
-
- _PC_MAX_CANON,
-
- _PC_MAX_INPUT,
-
- _PC_NAME_MAX,
-
- _PC_PATH_MAX,
-
- _PC_PIPE_BUF,
-
- _PC_CHOWN_RESTRICTED,
-
- _PC_NO_TRUNC,
-
- _PC_VDISABLE,
-
- _PC_SYNC_IO,
-
- _PC_ASYNC_IO,
-
- _PC_PRIO_IO,
-
- _PC_SOCK_MAXBUF,
-
- _PC_FILESIZEBITS,
-
- _PC_REC_INCR_XFER_SIZE,
-
- _PC_REC_MAX_XFER_SIZE,
-
- _PC_REC_MIN_XFER_SIZE,
-
- _PC_REC_XFER_ALIGN,
-
- _PC_ALLOC_SIZE_MIN,
-
- _PC_SYMLINK_MAX,
-
- _PC_2_SYMLINKS
-
- };
-
-
-enum
- {
- _SC_ARG_MAX,
-
- _SC_CHILD_MAX,
-
- _SC_CLK_TCK,
-
- _SC_NGROUPS_MAX,
-
- _SC_OPEN_MAX,
-
- _SC_STREAM_MAX,
-
- _SC_TZNAME_MAX,
-
- _SC_JOB_CONTROL,
-
- _SC_SAVED_IDS,
-
- _SC_REALTIME_SIGNALS,
-
- _SC_PRIORITY_SCHEDULING,
-
- _SC_TIMERS,
-
- _SC_ASYNCHRONOUS_IO,
-
- _SC_PRIORITIZED_IO,
-
- _SC_SYNCHRONIZED_IO,
-
- _SC_FSYNC,
-
- _SC_MAPPED_FILES,
-
- _SC_MEMLOCK,
-
- _SC_MEMLOCK_RANGE,
-
- _SC_MEMORY_PROTECTION,
-
- _SC_MESSAGE_PASSING,
-
- _SC_SEMAPHORES,
-
- _SC_SHARED_MEMORY_OBJECTS,
-
- _SC_AIO_LISTIO_MAX,
-
- _SC_AIO_MAX,
-
- _SC_AIO_PRIO_DELTA_MAX,
-
- _SC_DELAYTIMER_MAX,
-
- _SC_MQ_OPEN_MAX,
-
- _SC_MQ_PRIO_MAX,
-
- _SC_VERSION,
-
- _SC_PAGESIZE,
-
-
- _SC_RTSIG_MAX,
-
- _SC_SEM_NSEMS_MAX,
-
- _SC_SEM_VALUE_MAX,
-
- _SC_SIGQUEUE_MAX,
-
- _SC_TIMER_MAX,
-
-
-
-
- _SC_BC_BASE_MAX,
-
- _SC_BC_DIM_MAX,
-
- _SC_BC_SCALE_MAX,
-
- _SC_BC_STRING_MAX,
-
- _SC_COLL_WEIGHTS_MAX,
-
- _SC_EQUIV_CLASS_MAX,
-
- _SC_EXPR_NEST_MAX,
-
- _SC_LINE_MAX,
-
- _SC_RE_DUP_MAX,
-
- _SC_CHARCLASS_NAME_MAX,
-
-
- _SC_2_VERSION,
-
- _SC_2_C_BIND,
-
- _SC_2_C_DEV,
-
- _SC_2_FORT_DEV,
-
- _SC_2_FORT_RUN,
-
- _SC_2_SW_DEV,
-
- _SC_2_LOCALEDEF,
-
-
- _SC_PII,
-
- _SC_PII_XTI,
-
- _SC_PII_SOCKET,
-
- _SC_PII_INTERNET,
-
- _SC_PII_OSI,
-
- _SC_POLL,
-
- _SC_SELECT,
-
- _SC_UIO_MAXIOV,
-
- _SC_IOV_MAX = _SC_UIO_MAXIOV,
-
- _SC_PII_INTERNET_STREAM,
-
- _SC_PII_INTERNET_DGRAM,
-
- _SC_PII_OSI_COTS,
-
- _SC_PII_OSI_CLTS,
-
- _SC_PII_OSI_M,
-
- _SC_T_IOV_MAX,
-
-
-
- _SC_THREADS,
-
- _SC_THREAD_SAFE_FUNCTIONS,
-
- _SC_GETGR_R_SIZE_MAX,
-
- _SC_GETPW_R_SIZE_MAX,
-
- _SC_LOGIN_NAME_MAX,
-
- _SC_TTY_NAME_MAX,
-
- _SC_THREAD_DESTRUCTOR_ITERATIONS,
-
- _SC_THREAD_KEYS_MAX,
-
- _SC_THREAD_STACK_MIN,
-
- _SC_THREAD_THREADS_MAX,
-
- _SC_THREAD_ATTR_STACKADDR,
-
- _SC_THREAD_ATTR_STACKSIZE,
-
- _SC_THREAD_PRIORITY_SCHEDULING,
-
- _SC_THREAD_PRIO_INHERIT,
-
- _SC_THREAD_PRIO_PROTECT,
-
- _SC_THREAD_PROCESS_SHARED,
-
-
- _SC_NPROCESSORS_CONF,
-
- _SC_NPROCESSORS_ONLN,
-
- _SC_PHYS_PAGES,
-
- _SC_AVPHYS_PAGES,
-
- _SC_ATEXIT_MAX,
-
- _SC_PASS_MAX,
-
-
- _SC_XOPEN_VERSION,
-
- _SC_XOPEN_XCU_VERSION,
-
- _SC_XOPEN_UNIX,
-
- _SC_XOPEN_CRYPT,
-
- _SC_XOPEN_ENH_I18N,
-
- _SC_XOPEN_SHM,
-
-
- _SC_2_CHAR_TERM,
-
- _SC_2_C_VERSION,
-
- _SC_2_UPE,
-
-
- _SC_XOPEN_XPG2,
-
- _SC_XOPEN_XPG3,
-
- _SC_XOPEN_XPG4,
-
-
- _SC_CHAR_BIT,
-
- _SC_CHAR_MAX,
-
- _SC_CHAR_MIN,
-
- _SC_INT_MAX,
-
- _SC_INT_MIN,
-
- _SC_LONG_BIT,
-
- _SC_WORD_BIT,
-
- _SC_MB_LEN_MAX,
-
- _SC_NZERO,
-
- _SC_SSIZE_MAX,
-
- _SC_SCHAR_MAX,
-
- _SC_SCHAR_MIN,
-
- _SC_SHRT_MAX,
-
- _SC_SHRT_MIN,
-
- _SC_UCHAR_MAX,
-
- _SC_UINT_MAX,
-
- _SC_ULONG_MAX,
-
- _SC_USHRT_MAX,
-
-
- _SC_NL_ARGMAX,
-
- _SC_NL_LANGMAX,
-
- _SC_NL_MSGMAX,
-
- _SC_NL_NMAX,
-
- _SC_NL_SETMAX,
-
- _SC_NL_TEXTMAX,
-
-
- _SC_XBS5_ILP32_OFF32,
-
- _SC_XBS5_ILP32_OFFBIG,
-
- _SC_XBS5_LP64_OFF64,
-
- _SC_XBS5_LPBIG_OFFBIG,
-
-
- _SC_XOPEN_LEGACY,
-
- _SC_XOPEN_REALTIME,
-
- _SC_XOPEN_REALTIME_THREADS,
-
-
- _SC_ADVISORY_INFO,
-
- _SC_BARRIERS,
-
- _SC_BASE,
-
- _SC_C_LANG_SUPPORT,
-
- _SC_C_LANG_SUPPORT_R,
-
- _SC_CLOCK_SELECTION,
-
- _SC_CPUTIME,
-
- _SC_THREAD_CPUTIME,
-
- _SC_DEVICE_IO,
-
- _SC_DEVICE_SPECIFIC,
-
- _SC_DEVICE_SPECIFIC_R,
-
- _SC_FD_MGMT,
-
- _SC_FIFO,
-
- _SC_PIPE,
-
- _SC_FILE_ATTRIBUTES,
-
- _SC_FILE_LOCKING,
-
- _SC_FILE_SYSTEM,
-
- _SC_MONOTONIC_CLOCK,
-
- _SC_MULTI_PROCESS,
-
- _SC_SINGLE_PROCESS,
-
- _SC_NETWORKING,
-
- _SC_READER_WRITER_LOCKS,
-
- _SC_SPIN_LOCKS,
-
- _SC_REGEXP,
-
- _SC_REGEX_VERSION,
-
- _SC_SHELL,
-
- _SC_SIGNALS,
-
- _SC_SPAWN,
-
- _SC_SPORADIC_SERVER,
-
- _SC_THREAD_SPORADIC_SERVER,
-
- _SC_SYSTEM_DATABASE,
-
- _SC_SYSTEM_DATABASE_R,
-
- _SC_TIMEOUTS,
-
- _SC_TYPED_MEMORY_OBJECTS,
-
- _SC_USER_GROUPS,
-
- _SC_USER_GROUPS_R,
-
- _SC_2_PBS,
-
- _SC_2_PBS_ACCOUNTING,
-
- _SC_2_PBS_LOCATE,
-
- _SC_2_PBS_MESSAGE,
-
- _SC_2_PBS_TRACK,
-
- _SC_SYMLOOP_MAX,
-
- _SC_STREAMS,
-
- _SC_2_PBS_CHECKPOINT,
-
-
- _SC_V6_ILP32_OFF32,
-
- _SC_V6_ILP32_OFFBIG,
-
- _SC_V6_LP64_OFF64,
-
- _SC_V6_LPBIG_OFFBIG,
-
-
- _SC_HOST_NAME_MAX,
-
- _SC_TRACE,
-
- _SC_TRACE_EVENT_FILTER,
-
- _SC_TRACE_INHERIT,
-
- _SC_TRACE_LOG,
-
-
- _SC_LEVEL1_ICACHE_SIZE,
-
- _SC_LEVEL1_ICACHE_ASSOC,
-
- _SC_LEVEL1_ICACHE_LINESIZE,
-
- _SC_LEVEL1_DCACHE_SIZE,
-
- _SC_LEVEL1_DCACHE_ASSOC,
-
- _SC_LEVEL1_DCACHE_LINESIZE,
-
- _SC_LEVEL2_CACHE_SIZE,
-
- _SC_LEVEL2_CACHE_ASSOC,
-
- _SC_LEVEL2_CACHE_LINESIZE,
-
- _SC_LEVEL3_CACHE_SIZE,
-
- _SC_LEVEL3_CACHE_ASSOC,
-
- _SC_LEVEL3_CACHE_LINESIZE,
-
- _SC_LEVEL4_CACHE_SIZE,
-
- _SC_LEVEL4_CACHE_ASSOC,
-
- _SC_LEVEL4_CACHE_LINESIZE,
-
-
-
- _SC_IPV6 = _SC_LEVEL1_ICACHE_SIZE + 50,
-
- _SC_RAW_SOCKETS,
-
-
- _SC_V7_ILP32_OFF32,
-
- _SC_V7_ILP32_OFFBIG,
-
- _SC_V7_LP64_OFF64,
-
- _SC_V7_LPBIG_OFFBIG,
-
-
- _SC_SS_REPL_MAX,
-
-
- _SC_TRACE_EVENT_NAME_MAX,
-
- _SC_TRACE_NAME_MAX,
-
- _SC_TRACE_SYS_MAX,
-
- _SC_TRACE_USER_EVENT_MAX,
-
-
- _SC_XOPEN_STREAMS,
-
-
- _SC_THREAD_ROBUST_PRIO_INHERIT,
-
- _SC_THREAD_ROBUST_PRIO_PROTECT
-
- };
-
-
-enum
- {
- _CS_PATH,
-
-
- _CS_V6_WIDTH_RESTRICTED_ENVS,
-
-
-
- _CS_GNU_LIBC_VERSION,
-
- _CS_GNU_LIBPTHREAD_VERSION,
-
-
- _CS_V5_WIDTH_RESTRICTED_ENVS,
-
-
-
- _CS_V7_WIDTH_RESTRICTED_ENVS,
-
-
-
- _CS_LFS_CFLAGS = 1000,
-
- _CS_LFS_LDFLAGS,
-
- _CS_LFS_LIBS,
-
- _CS_LFS_LINTFLAGS,
-
- _CS_LFS64_CFLAGS,
-
- _CS_LFS64_LDFLAGS,
-
- _CS_LFS64_LIBS,
-
- _CS_LFS64_LINTFLAGS,
-
-
- _CS_XBS5_ILP32_OFF32_CFLAGS = 1100,
-
- _CS_XBS5_ILP32_OFF32_LDFLAGS,
-
- _CS_XBS5_ILP32_OFF32_LIBS,
-
- _CS_XBS5_ILP32_OFF32_LINTFLAGS,
-
- _CS_XBS5_ILP32_OFFBIG_CFLAGS,
-
- _CS_XBS5_ILP32_OFFBIG_LDFLAGS,
-
- _CS_XBS5_ILP32_OFFBIG_LIBS,
-
- _CS_XBS5_ILP32_OFFBIG_LINTFLAGS,
-
- _CS_XBS5_LP64_OFF64_CFLAGS,
-
- _CS_XBS5_LP64_OFF64_LDFLAGS,
-
- _CS_XBS5_LP64_OFF64_LIBS,
-
- _CS_XBS5_LP64_OFF64_LINTFLAGS,
-
- _CS_XBS5_LPBIG_OFFBIG_CFLAGS,
-
- _CS_XBS5_LPBIG_OFFBIG_LDFLAGS,
-
- _CS_XBS5_LPBIG_OFFBIG_LIBS,
-
- _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS,
-
-
- _CS_POSIX_V6_ILP32_OFF32_CFLAGS,
-
- _CS_POSIX_V6_ILP32_OFF32_LDFLAGS,
-
- _CS_POSIX_V6_ILP32_OFF32_LIBS,
-
- _CS_POSIX_V6_ILP32_OFF32_LINTFLAGS,
-
- _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS,
-
- _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS,
-
- _CS_POSIX_V6_ILP32_OFFBIG_LIBS,
-
- _CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS,
-
- _CS_POSIX_V6_LP64_OFF64_CFLAGS,
-
- _CS_POSIX_V6_LP64_OFF64_LDFLAGS,
-
- _CS_POSIX_V6_LP64_OFF64_LIBS,
-
- _CS_POSIX_V6_LP64_OFF64_LINTFLAGS,
-
- _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS,
-
- _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS,
-
- _CS_POSIX_V6_LPBIG_OFFBIG_LIBS,
-
- _CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS,
-
-
- _CS_POSIX_V7_ILP32_OFF32_CFLAGS,
-
- _CS_POSIX_V7_ILP32_OFF32_LDFLAGS,
-
- _CS_POSIX_V7_ILP32_OFF32_LIBS,
-
- _CS_POSIX_V7_ILP32_OFF32_LINTFLAGS,
-
- _CS_POSIX_V7_ILP32_OFFBIG_CFLAGS,
-
- _CS_POSIX_V7_ILP32_OFFBIG_LDFLAGS,
-
- _CS_POSIX_V7_ILP32_OFFBIG_LIBS,
-
- _CS_POSIX_V7_ILP32_OFFBIG_LINTFLAGS,
-
- _CS_POSIX_V7_LP64_OFF64_CFLAGS,
-
- _CS_POSIX_V7_LP64_OFF64_LDFLAGS,
-
- _CS_POSIX_V7_LP64_OFF64_LIBS,
-
- _CS_POSIX_V7_LP64_OFF64_LINTFLAGS,
-
- _CS_POSIX_V7_LPBIG_OFFBIG_CFLAGS,
-
- _CS_POSIX_V7_LPBIG_OFFBIG_LDFLAGS,
-
- _CS_POSIX_V7_LPBIG_OFFBIG_LIBS,
-
- _CS_POSIX_V7_LPBIG_OFFBIG_LINTFLAGS,
-
-
- _CS_V6_ENV,
-
- _CS_V7_ENV
-
- };
-# 613 "/usr/include/unistd.h" 2 3 4
-
-
-extern long int pathconf (const char *__path, int __name)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
-
-
-extern long int fpathconf (int __fd, int __name) __attribute__ ((__nothrow__ , __leaf__));
-
-
-extern long int sysconf (int __name) __attribute__ ((__nothrow__ , __leaf__));
-
-
-
-extern size_t confstr (int __name, char *__buf, size_t __len) __attribute__ ((__nothrow__ , __leaf__));
-
-
-
-
-extern __pid_t getpid (void) __attribute__ ((__nothrow__ , __leaf__));
-
-
-extern __pid_t getppid (void) __attribute__ ((__nothrow__ , __leaf__));
-
-
-extern __pid_t getpgrp (void) __attribute__ ((__nothrow__ , __leaf__));
-
-
-extern __pid_t __getpgid (__pid_t __pid) __attribute__ ((__nothrow__ , __leaf__));
-
-extern __pid_t getpgid (__pid_t __pid) __attribute__ ((__nothrow__ , __leaf__));
-
-
-
-
-
-
-extern int setpgid (__pid_t __pid, __pid_t __pgid) __attribute__ ((__nothrow__ , __leaf__));
-# 663 "/usr/include/unistd.h" 3 4
-extern int setpgrp (void) __attribute__ ((__nothrow__ , __leaf__));
-
-
-
-
-
-
-extern __pid_t setsid (void) __attribute__ ((__nothrow__ , __leaf__));
-
-
-
-extern __pid_t getsid (__pid_t __pid) __attribute__ ((__nothrow__ , __leaf__));
-
-
-
-extern __uid_t getuid (void) __attribute__ ((__nothrow__ , __leaf__));
-
-
-extern __uid_t geteuid (void) __attribute__ ((__nothrow__ , __leaf__));
-
-
-extern __gid_t getgid (void) __attribute__ ((__nothrow__ , __leaf__));
-
-
-extern __gid_t getegid (void) __attribute__ ((__nothrow__ , __leaf__));
-
-
-
-
-extern int getgroups (int __size, __gid_t __list[]) __attribute__ ((__nothrow__ , __leaf__)) ;
-# 703 "/usr/include/unistd.h" 3 4
-extern int setuid (__uid_t __uid) __attribute__ ((__nothrow__ , __leaf__)) ;
-
-
-
-
-extern int setreuid (__uid_t __ruid, __uid_t __euid) __attribute__ ((__nothrow__ , __leaf__)) ;
-
-
-
-
-extern int seteuid (__uid_t __uid) __attribute__ ((__nothrow__ , __leaf__)) ;
-
-
-
-
-
-
-extern int setgid (__gid_t __gid) __attribute__ ((__nothrow__ , __leaf__)) ;
-
-
-
-
-extern int setregid (__gid_t __rgid, __gid_t __egid) __attribute__ ((__nothrow__ , __leaf__)) ;
-
-
-
-
-extern int setegid (__gid_t __gid) __attribute__ ((__nothrow__ , __leaf__)) ;
-# 759 "/usr/include/unistd.h" 3 4
-extern __pid_t fork (void) __attribute__ ((__nothrow__));
-
-
-
-
-
-
-
-extern __pid_t vfork (void) __attribute__ ((__nothrow__ , __leaf__));
-
-
-
-
-
-extern char *ttyname (int __fd) __attribute__ ((__nothrow__ , __leaf__));
-
-
-
-extern int ttyname_r (int __fd, char *__buf, size_t __buflen)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2))) ;
-
-
-
-extern int isatty (int __fd) __attribute__ ((__nothrow__ , __leaf__));
-
-
-
-
-
-extern int ttyslot (void) __attribute__ ((__nothrow__ , __leaf__));
-
-
-
-
-extern int link (const char *__from, const char *__to)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))) ;
-
-
-
-
-extern int linkat (int __fromfd, const char *__from, int __tofd,
- const char *__to, int __flags)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 4))) ;
-
-
-
-
-extern int symlink (const char *__from, const char *__to)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))) ;
-
-
-
-
-extern ssize_t readlink (const char *__restrict __path,
- char *__restrict __buf, size_t __len)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))) ;
-
-
-
-
-extern int symlinkat (const char *__from, int __tofd,
- const char *__to) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 3))) ;
-
-
-extern ssize_t readlinkat (int __fd, const char *__restrict __path,
- char *__restrict __buf, size_t __len)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 3))) ;
-
-
-
-extern int unlink (const char *__name) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
-
-
-
-extern int unlinkat (int __fd, const char *__name, int __flag)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2)));
-
-
-
-extern int rmdir (const char *__path) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
-
-
-
-extern __pid_t tcgetpgrp (int __fd) __attribute__ ((__nothrow__ , __leaf__));
-
-
-extern int tcsetpgrp (int __fd, __pid_t __pgrp_id) __attribute__ ((__nothrow__ , __leaf__));
-
-
-
-
-
-
-extern char *getlogin (void);
-
-
-
-
-
-
-
-extern int getlogin_r (char *__name, size_t __name_len) __attribute__ ((__nonnull__ (1)));
-
-
-
-
-extern int setlogin (const char *__name) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
-# 874 "/usr/include/unistd.h" 3 4
-# 1 "/usr/include/getopt.h" 1 3 4
-# 57 "/usr/include/getopt.h" 3 4
-extern char *optarg;
-# 71 "/usr/include/getopt.h" 3 4
-extern int optind;
-
-
-
-
-extern int opterr;
-
-
-
-extern int optopt;
-# 150 "/usr/include/getopt.h" 3 4
-extern int getopt (int ___argc, char *const *___argv, const char *__shortopts)
- __attribute__ ((__nothrow__ , __leaf__));
-# 875 "/usr/include/unistd.h" 2 3 4
-
-
-
-
-
-
-
-extern int gethostname (char *__name, size_t __len) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
-
-
-
-
-
-
-extern int sethostname (const char *__name, size_t __len)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ;
-
-
-
-extern int sethostid (long int __id) __attribute__ ((__nothrow__ , __leaf__)) ;
-
-
-
-
-
-extern int getdomainname (char *__name, size_t __len)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ;
-extern int setdomainname (const char *__name, size_t __len)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ;
-
-
-
-
-
-extern int vhangup (void) __attribute__ ((__nothrow__ , __leaf__));
-
-
-extern int revoke (const char *__file) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ;
-
-
-
-
-
-
-
-extern int profil (unsigned short int *__sample_buffer, size_t __size,
- size_t __offset, unsigned int __scale)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
-
-
-
-
-
-extern int acct (const char *__name) __attribute__ ((__nothrow__ , __leaf__));
-
-
-
-extern char *getusershell (void) __attribute__ ((__nothrow__ , __leaf__));
-extern void endusershell (void) __attribute__ ((__nothrow__ , __leaf__));
-extern void setusershell (void) __attribute__ ((__nothrow__ , __leaf__));
-
-
-
-
-
-extern int daemon (int __nochdir, int __noclose) __attribute__ ((__nothrow__ , __leaf__)) ;
-
-
-
-
-
-
-extern int chroot (const char *__path) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ;
-
-
-
-extern char *getpass (const char *__prompt) __attribute__ ((__nonnull__ (1)));
-
-
-
-
-
-
-
-extern int fsync (int __fd);
-# 972 "/usr/include/unistd.h" 3 4
-extern long int gethostid (void);
-
-
-extern void sync (void) __attribute__ ((__nothrow__ , __leaf__));
-
-
-
-
-
-extern int getpagesize (void) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__));
-
-
-
-
-extern int getdtablesize (void) __attribute__ ((__nothrow__ , __leaf__));
-# 996 "/usr/include/unistd.h" 3 4
-extern int truncate (const char *__file, __off_t __length)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ;
-# 1019 "/usr/include/unistd.h" 3 4
-extern int ftruncate (int __fd, __off_t __length) __attribute__ ((__nothrow__ , __leaf__)) ;
-# 1040 "/usr/include/unistd.h" 3 4
-extern int brk (void *__addr) __attribute__ ((__nothrow__ , __leaf__)) ;
-
-
-
-
-
-extern void *sbrk (intptr_t __delta) __attribute__ ((__nothrow__ , __leaf__));
-# 1061 "/usr/include/unistd.h" 3 4
-extern long int syscall (long int __sysno, ...) __attribute__ ((__nothrow__ , __leaf__));
-# 1084 "/usr/include/unistd.h" 3 4
-extern int lockf (int __fd, int __cmd, __off_t __len) ;
-# 1115 "/usr/include/unistd.h" 3 4
-extern int fdatasync (int __fildes);
-# 1154 "/usr/include/unistd.h" 3 4
-
-# 29 "../../../server-code/src/common/utils.h" 2
-# 39 "../../../server-code/src/common/utils.h"
-
-# 39 "../../../server-code/src/common/utils.h"
-void WriteDump(FILE* fp, const void* buffer, size_t length);
-void ShowDump(const void* buffer, size_t length);
-
-void findfile(const char *p, const char *pat, void (func)(const char*));
-
-# 43 "../../../server-code/src/common/utils.h" 3 4
-_Bool
-# 43 "../../../server-code/src/common/utils.h"
- exists(const char* filename);
-
-
-unsigned int get_percentage(const unsigned int A, const unsigned int B);
-
-int64 apply_percentrate64(int64 value, int rate, int maxrate);
-int apply_percentrate(int value, int rate, int maxrate);
-
-const char* timestamp2string(char* str, size_t size, time_t timestamp, const char* format);
-
-
-
-
-
-extern uint8 GetByte(uint32 val, int idx);
-extern uint16 GetWord(uint32 val, int idx);
-extern uint16 MakeWord(uint8 byte0, uint8 byte1);
-extern uint32 MakeDWord(uint16 word0, uint16 word1);
-
-
-
-
-extern int16 MakeShortLE(int16 val);
-extern int32 MakeLongLE(int32 val);
-extern uint16 GetUShort(const unsigned char* buf);
-extern uint32 GetULong(const unsigned char* buf);
-extern int32 GetLong(const unsigned char* buf);
-extern float GetFloat(const unsigned char* buf);
-
-size_t hread(void * ptr, size_t size, size_t count, FILE * stream);
-size_t hwrite(const void * ptr, size_t size, size_t count, FILE * stream);
-# 83 "../../../server-code/src/common/utils.h"
-struct HCache_interface {
- void (*init) (void);
-
-
-# 86 "../../../server-code/src/common/utils.h" 3 4
-_Bool
-# 86 "../../../server-code/src/common/utils.h"
- (*check) (const char *file);
- FILE *(*open) (const char *file, const char *opt);
-
- time_t recompile_time;
-
-# 90 "../../../server-code/src/common/utils.h" 3 4
-_Bool
-# 90 "../../../server-code/src/common/utils.h"
- enabled;
-};
-
-
-void HCache_defaults(void);
-
-
-extern struct HCache_interface *HCache;
-# 42 "../../../server-code/src/login/login.c" 2
-
-
-# 1 "/usr/include/stdlib.h" 1 3 4
-# 32 "/usr/include/stdlib.h" 3 4
-# 1 "/usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h" 1 3 4
-# 33 "/usr/include/stdlib.h" 2 3 4
-
-
-
-
-
-
-
-
-# 1 "/usr/include/x86_64-linux-gnu/bits/waitflags.h" 1 3 4
-# 50 "/usr/include/x86_64-linux-gnu/bits/waitflags.h" 3 4
-
-# 50 "/usr/include/x86_64-linux-gnu/bits/waitflags.h" 3 4
-typedef enum
-{
- P_ALL,
- P_PID,
- P_PGID
-} idtype_t;
-# 42 "/usr/include/stdlib.h" 2 3 4
-# 1 "/usr/include/x86_64-linux-gnu/bits/waitstatus.h" 1 3 4
-# 66 "/usr/include/x86_64-linux-gnu/bits/waitstatus.h" 3 4
-union wait
- {
- int w_status;
- struct
- {
-
- unsigned int __w_termsig:7;
- unsigned int __w_coredump:1;
- unsigned int __w_retcode:8;
- unsigned int:16;
-
-
-
-
-
-
-
- } __wait_terminated;
- struct
- {
-
- unsigned int __w_stopval:8;
- unsigned int __w_stopsig:8;
- unsigned int:16;
-
-
-
-
-
-
- } __wait_stopped;
- };
-# 43 "/usr/include/stdlib.h" 2 3 4
-# 67 "/usr/include/stdlib.h" 3 4
-typedef union
- {
- union wait *__uptr;
- int *__iptr;
- } __WAIT_STATUS __attribute__ ((__transparent_union__));
-# 95 "/usr/include/stdlib.h" 3 4
-
-
-typedef struct
- {
- int quot;
- int rem;
- } div_t;
-
-
-
-typedef struct
- {
- long int quot;
- long int rem;
- } ldiv_t;
-
-
-
-
-
-
-
-__extension__ typedef struct
- {
- long long int quot;
- long long int rem;
- } lldiv_t;
-
-
-# 139 "/usr/include/stdlib.h" 3 4
-extern size_t __ctype_get_mb_cur_max (void) __attribute__ ((__nothrow__ , __leaf__)) ;
-
-
-
-
-extern double atof (const char *__nptr)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
-
-extern int atoi (const char *__nptr)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
-
-extern long int atol (const char *__nptr)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
-
-
-
-
-
-__extension__ extern long long int atoll (const char *__nptr)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
-
-
-
-
-
-extern double strtod (const char *__restrict __nptr,
- char **__restrict __endptr)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
-
-
-
-
-
-extern float strtof (const char *__restrict __nptr,
- char **__restrict __endptr) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
-
-extern long double strtold (const char *__restrict __nptr,
- char **__restrict __endptr)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
-
-
-
-
-
-extern long int strtol (const char *__restrict __nptr,
- char **__restrict __endptr, int __base)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
-
-extern unsigned long int strtoul (const char *__restrict __nptr,
- char **__restrict __endptr, int __base)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
-
-
-
-
-__extension__
-extern long long int strtoq (const char *__restrict __nptr,
- char **__restrict __endptr, int __base)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
-
-__extension__
-extern unsigned long long int strtouq (const char *__restrict __nptr,
- char **__restrict __endptr, int __base)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
-
-
-
-
-
-__extension__
-extern long long int strtoll (const char *__restrict __nptr,
- char **__restrict __endptr, int __base)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
-
-__extension__
-extern unsigned long long int strtoull (const char *__restrict __nptr,
- char **__restrict __endptr, int __base)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
-
-# 305 "/usr/include/stdlib.h" 3 4
-extern char *l64a (long int __n) __attribute__ ((__nothrow__ , __leaf__)) ;
-
-
-extern long int a64l (const char *__s)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
-
-
-
-
-# 1 "/usr/include/x86_64-linux-gnu/sys/types.h" 1 3 4
-# 27 "/usr/include/x86_64-linux-gnu/sys/types.h" 3 4
-
-
-
-
-
-
-typedef __u_char u_char;
-typedef __u_short u_short;
-typedef __u_int u_int;
-typedef __u_long u_long;
-typedef __quad_t quad_t;
-typedef __u_quad_t u_quad_t;
-typedef __fsid_t fsid_t;
-
-
-
-
-typedef __loff_t loff_t;
-
-
-
-typedef __ino_t ino_t;
-# 60 "/usr/include/x86_64-linux-gnu/sys/types.h" 3 4
-typedef __dev_t dev_t;
-# 70 "/usr/include/x86_64-linux-gnu/sys/types.h" 3 4
-typedef __mode_t mode_t;
-
-
-
-
-typedef __nlink_t nlink_t;
-# 104 "/usr/include/x86_64-linux-gnu/sys/types.h" 3 4
-typedef __id_t id_t;
-# 115 "/usr/include/x86_64-linux-gnu/sys/types.h" 3 4
-typedef __daddr_t daddr_t;
-typedef __caddr_t caddr_t;
-
-
-
-
-
-typedef __key_t key_t;
-# 146 "/usr/include/x86_64-linux-gnu/sys/types.h" 3 4
-# 1 "/usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h" 1 3 4
-# 147 "/usr/include/x86_64-linux-gnu/sys/types.h" 2 3 4
-
-
-
-typedef unsigned long int ulong;
-typedef unsigned short int ushort;
-typedef unsigned int uint;
-# 200 "/usr/include/x86_64-linux-gnu/sys/types.h" 3 4
-typedef unsigned int u_int8_t __attribute__ ((__mode__ (__QI__)));
-typedef unsigned int u_int16_t __attribute__ ((__mode__ (__HI__)));
-typedef unsigned int u_int32_t __attribute__ ((__mode__ (__SI__)));
-typedef unsigned int u_int64_t __attribute__ ((__mode__ (__DI__)));
-
-typedef int register_t __attribute__ ((__mode__ (__word__)));
-# 219 "/usr/include/x86_64-linux-gnu/sys/types.h" 3 4
-# 1 "/usr/include/x86_64-linux-gnu/sys/select.h" 1 3 4
-# 30 "/usr/include/x86_64-linux-gnu/sys/select.h" 3 4
-# 1 "/usr/include/x86_64-linux-gnu/bits/select.h" 1 3 4
-# 22 "/usr/include/x86_64-linux-gnu/bits/select.h" 3 4
-# 1 "/usr/include/x86_64-linux-gnu/bits/wordsize.h" 1 3 4
-# 23 "/usr/include/x86_64-linux-gnu/bits/select.h" 2 3 4
-# 31 "/usr/include/x86_64-linux-gnu/sys/select.h" 2 3 4
-
-
-# 1 "/usr/include/x86_64-linux-gnu/bits/sigset.h" 1 3 4
-# 22 "/usr/include/x86_64-linux-gnu/bits/sigset.h" 3 4
-typedef int __sig_atomic_t;
-
-
-
-
-typedef struct
- {
- unsigned long int __val[(1024 / (8 * sizeof (unsigned long int)))];
- } __sigset_t;
-# 34 "/usr/include/x86_64-linux-gnu/sys/select.h" 2 3 4
-
-
-
-typedef __sigset_t sigset_t;
-
-
-
-
-
-
-
-# 1 "/usr/include/x86_64-linux-gnu/bits/time.h" 1 3 4
-# 30 "/usr/include/x86_64-linux-gnu/bits/time.h" 3 4
-struct timeval
- {
- __time_t tv_sec;
- __suseconds_t tv_usec;
- };
-# 46 "/usr/include/x86_64-linux-gnu/sys/select.h" 2 3 4
-
-
-typedef __suseconds_t suseconds_t;
-
-
-
-
-
-typedef long int __fd_mask;
-# 64 "/usr/include/x86_64-linux-gnu/sys/select.h" 3 4
-typedef struct
- {
-
-
-
-
-
-
- __fd_mask __fds_bits[1024 / (8 * (int) sizeof (__fd_mask))];
-
-
- } fd_set;
-
-
-
-
-
-
-typedef __fd_mask fd_mask;
-# 96 "/usr/include/x86_64-linux-gnu/sys/select.h" 3 4
-
-# 106 "/usr/include/x86_64-linux-gnu/sys/select.h" 3 4
-extern int select (int __nfds, fd_set *__restrict __readfds,
- fd_set *__restrict __writefds,
- fd_set *__restrict __exceptfds,
- struct timeval *__restrict __timeout);
-# 118 "/usr/include/x86_64-linux-gnu/sys/select.h" 3 4
-extern int pselect (int __nfds, fd_set *__restrict __readfds,
- fd_set *__restrict __writefds,
- fd_set *__restrict __exceptfds,
- const struct timespec *__restrict __timeout,
- const __sigset_t *__restrict __sigmask);
-# 131 "/usr/include/x86_64-linux-gnu/sys/select.h" 3 4
-
-# 220 "/usr/include/x86_64-linux-gnu/sys/types.h" 2 3 4
-
-
-# 1 "/usr/include/x86_64-linux-gnu/sys/sysmacros.h" 1 3 4
-# 24 "/usr/include/x86_64-linux-gnu/sys/sysmacros.h" 3 4
-
-
-__extension__
-extern unsigned int gnu_dev_major (unsigned long long int __dev)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__));
-__extension__
-extern unsigned int gnu_dev_minor (unsigned long long int __dev)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__));
-__extension__
-extern unsigned long long int gnu_dev_makedev (unsigned int __major,
- unsigned int __minor)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__));
-# 58 "/usr/include/x86_64-linux-gnu/sys/sysmacros.h" 3 4
-
-# 223 "/usr/include/x86_64-linux-gnu/sys/types.h" 2 3 4
-
-
-
-
-
-typedef __blksize_t blksize_t;
-
-
-
-
-
-
-typedef __blkcnt_t blkcnt_t;
-
-
-
-typedef __fsblkcnt_t fsblkcnt_t;
-
-
-
-typedef __fsfilcnt_t fsfilcnt_t;
-# 270 "/usr/include/x86_64-linux-gnu/sys/types.h" 3 4
-# 1 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h" 1 3 4
-# 21 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h" 3 4
-# 1 "/usr/include/x86_64-linux-gnu/bits/wordsize.h" 1 3 4
-# 22 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h" 2 3 4
-# 60 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h" 3 4
-typedef unsigned long int pthread_t;
-
-
-union pthread_attr_t
-{
- char __size[56];
- long int __align;
-};
-
-typedef union pthread_attr_t pthread_attr_t;
-
-
-
-
-
-typedef struct __pthread_internal_list
-{
- struct __pthread_internal_list *__prev;
- struct __pthread_internal_list *__next;
-} __pthread_list_t;
-# 90 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h" 3 4
-typedef union
-{
- struct __pthread_mutex_s
- {
- int __lock;
- unsigned int __count;
- int __owner;
-
- unsigned int __nusers;
-
-
-
- int __kind;
-
- short __spins;
- short __elision;
- __pthread_list_t __list;
-# 125 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h" 3 4
- } __data;
- char __size[40];
- long int __align;
-} pthread_mutex_t;
-
-typedef union
-{
- char __size[4];
- int __align;
-} pthread_mutexattr_t;
-
-
-
-
-typedef union
-{
- struct
- {
- int __lock;
- unsigned int __futex;
- __extension__ unsigned long long int __total_seq;
- __extension__ unsigned long long int __wakeup_seq;
- __extension__ unsigned long long int __woken_seq;
- void *__mutex;
- unsigned int __nwaiters;
- unsigned int __broadcast_seq;
- } __data;
- char __size[48];
- __extension__ long long int __align;
-} pthread_cond_t;
-
-typedef union
-{
- char __size[4];
- int __align;
-} pthread_condattr_t;
-
-
-
-typedef unsigned int pthread_key_t;
-
-
-
-typedef int pthread_once_t;
-
-
-
-
-
-typedef union
-{
-
- struct
- {
- int __lock;
- unsigned int __nr_readers;
- unsigned int __readers_wakeup;
- unsigned int __writer_wakeup;
- unsigned int __nr_readers_queued;
- unsigned int __nr_writers_queued;
- int __writer;
- int __shared;
- signed char __rwelision;
-
-
-
-
- unsigned char __pad1[7];
-
-
- unsigned long int __pad2;
-
-
- unsigned int __flags;
-
- } __data;
-# 220 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h" 3 4
- char __size[56];
- long int __align;
-} pthread_rwlock_t;
-
-typedef union
-{
- char __size[8];
- long int __align;
-} pthread_rwlockattr_t;
-
-
-
-
-
-typedef volatile int pthread_spinlock_t;
-
-
-
-
-typedef union
-{
- char __size[32];
- long int __align;
-} pthread_barrier_t;
-
-typedef union
-{
- char __size[4];
- int __align;
-} pthread_barrierattr_t;
-# 271 "/usr/include/x86_64-linux-gnu/sys/types.h" 2 3 4
-
-
-
-# 315 "/usr/include/stdlib.h" 2 3 4
-
-
-
-
-
-
-extern long int random (void) __attribute__ ((__nothrow__ , __leaf__));
-
-
-extern void srandom (unsigned int __seed) __attribute__ ((__nothrow__ , __leaf__));
-
-
-
-
-
-extern char *initstate (unsigned int __seed, char *__statebuf,
- size_t __statelen) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2)));
-
-
-
-extern char *setstate (char *__statebuf) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
-
-
-
-
-
-
-
-struct random_data
- {
- int32_t *fptr;
- int32_t *rptr;
- int32_t *state;
- int rand_type;
- int rand_deg;
- int rand_sep;
- int32_t *end_ptr;
- };
-
-extern int random_r (struct random_data *__restrict __buf,
- int32_t *__restrict __result) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
-
-extern int srandom_r (unsigned int __seed, struct random_data *__buf)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2)));
-
-extern int initstate_r (unsigned int __seed, char *__restrict __statebuf,
- size_t __statelen,
- struct random_data *__restrict __buf)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 4)));
-
-extern int setstate_r (char *__restrict __statebuf,
- struct random_data *__restrict __buf)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
-
-
-
-
-
-
-extern int rand (void) __attribute__ ((__nothrow__ , __leaf__));
-
-extern void srand (unsigned int __seed) __attribute__ ((__nothrow__ , __leaf__));
-
-
-
-
-extern int rand_r (unsigned int *__seed) __attribute__ ((__nothrow__ , __leaf__));
-
-
-
-
-
-
-
-extern double drand48 (void) __attribute__ ((__nothrow__ , __leaf__));
-extern double erand48 (unsigned short int __xsubi[3]) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
-
-
-extern long int lrand48 (void) __attribute__ ((__nothrow__ , __leaf__));
-extern long int nrand48 (unsigned short int __xsubi[3])
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
-
-
-extern long int mrand48 (void) __attribute__ ((__nothrow__ , __leaf__));
-extern long int jrand48 (unsigned short int __xsubi[3])
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
-
-
-extern void srand48 (long int __seedval) __attribute__ ((__nothrow__ , __leaf__));
-extern unsigned short int *seed48 (unsigned short int __seed16v[3])
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
-extern void lcong48 (unsigned short int __param[7]) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
-
-
-
-
-
-struct drand48_data
- {
- unsigned short int __x[3];
- unsigned short int __old_x[3];
- unsigned short int __c;
- unsigned short int __init;
- __extension__ unsigned long long int __a;
-
- };
-
-
-extern int drand48_r (struct drand48_data *__restrict __buffer,
- double *__restrict __result) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
-extern int erand48_r (unsigned short int __xsubi[3],
- struct drand48_data *__restrict __buffer,
- double *__restrict __result) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
-
-
-extern int lrand48_r (struct drand48_data *__restrict __buffer,
- long int *__restrict __result)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
-extern int nrand48_r (unsigned short int __xsubi[3],
- struct drand48_data *__restrict __buffer,
- long int *__restrict __result)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
-
-
-extern int mrand48_r (struct drand48_data *__restrict __buffer,
- long int *__restrict __result)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
-extern int jrand48_r (unsigned short int __xsubi[3],
- struct drand48_data *__restrict __buffer,
- long int *__restrict __result)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
-
-
-extern int srand48_r (long int __seedval, struct drand48_data *__buffer)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2)));
-
-extern int seed48_r (unsigned short int __seed16v[3],
- struct drand48_data *__buffer) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
-
-extern int lcong48_r (unsigned short int __param[7],
- struct drand48_data *__buffer)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
-
-
-
-
-
-
-
-
-
-extern void *malloc (size_t __size) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)) ;
-
-extern void *calloc (size_t __nmemb, size_t __size)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)) ;
-
-
-
-
-
-
-
-
-
-
-extern void *realloc (void *__ptr, size_t __size)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__));
-
-extern void free (void *__ptr) __attribute__ ((__nothrow__ , __leaf__));
-
-
-
-
-extern void cfree (void *__ptr) __attribute__ ((__nothrow__ , __leaf__));
-
-
-
-# 1 "/usr/include/alloca.h" 1 3 4
-# 24 "/usr/include/alloca.h" 3 4
-# 1 "/usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h" 1 3 4
-# 25 "/usr/include/alloca.h" 2 3 4
-
-
-
-
-
-
-
-extern void *alloca (size_t __size) __attribute__ ((__nothrow__ , __leaf__));
-
-
-
-
-
-
-# 493 "/usr/include/stdlib.h" 2 3 4
-
-
-
-
-
-extern void *valloc (size_t __size) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)) ;
-
-
-
-
-extern int posix_memalign (void **__memptr, size_t __alignment, size_t __size)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ;
-
-
-
-
-extern void *aligned_alloc (size_t __alignment, size_t __size)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)) __attribute__ ((__alloc_size__ (2))) ;
-
-
-
-
-extern void abort (void) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__noreturn__));
-
-
-
-extern int atexit (void (*__func) (void)) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
-
-
-
-
-
-
-
-extern int at_quick_exit (void (*__func) (void)) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
-
-
-
-
-
-
-
-extern int on_exit (void (*__func) (int __status, void *__arg), void *__arg)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
-
-
-
-
-
-
-extern void exit (int __status) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__noreturn__));
-
-
-
-
-
-extern void quick_exit (int __status) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__noreturn__));
-
-
-
-
-
-
-
-extern void _Exit (int __status) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__noreturn__));
-
-
-
-
-
-
-extern char *getenv (const char *__name) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ;
-
-# 578 "/usr/include/stdlib.h" 3 4
-extern int putenv (char *__string) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
-
-
-
-
-
-extern int setenv (const char *__name, const char *__value, int __replace)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2)));
-
-
-extern int unsetenv (const char *__name) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
-
-
-
-
-
-
-extern int clearenv (void) __attribute__ ((__nothrow__ , __leaf__));
-# 606 "/usr/include/stdlib.h" 3 4
-extern char *mktemp (char *__template) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
-# 619 "/usr/include/stdlib.h" 3 4
-extern int mkstemp (char *__template) __attribute__ ((__nonnull__ (1))) ;
-# 641 "/usr/include/stdlib.h" 3 4
-extern int mkstemps (char *__template, int __suffixlen) __attribute__ ((__nonnull__ (1))) ;
-# 662 "/usr/include/stdlib.h" 3 4
-extern char *mkdtemp (char *__template) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ;
-# 711 "/usr/include/stdlib.h" 3 4
-
-
-
-
-
-extern int system (const char *__command) ;
-
-# 733 "/usr/include/stdlib.h" 3 4
-extern char *realpath (const char *__restrict __name,
- char *__restrict __resolved) __attribute__ ((__nothrow__ , __leaf__)) ;
-
-
-
-
-
-
-typedef int (*__compar_fn_t) (const void *, const void *);
-# 751 "/usr/include/stdlib.h" 3 4
-
-
-
-extern void *bsearch (const void *__key, const void *__base,
- size_t __nmemb, size_t __size, __compar_fn_t __compar)
- __attribute__ ((__nonnull__ (1, 2, 5))) ;
-
-
-
-
-
-
-
-extern void qsort (void *__base, size_t __nmemb, size_t __size,
- __compar_fn_t __compar) __attribute__ ((__nonnull__ (1, 4)));
-# 774 "/usr/include/stdlib.h" 3 4
-extern int abs (int __x) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)) ;
-extern long int labs (long int __x) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)) ;
-
-
-
-__extension__ extern long long int llabs (long long int __x)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)) ;
-
-
-
-
-
-
-
-extern div_t div (int __numer, int __denom)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)) ;
-extern ldiv_t ldiv (long int __numer, long int __denom)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)) ;
-
-
-
-
-__extension__ extern lldiv_t lldiv (long long int __numer,
- long long int __denom)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)) ;
-
-# 811 "/usr/include/stdlib.h" 3 4
-extern char *ecvt (double __value, int __ndigit, int *__restrict __decpt,
- int *__restrict __sign) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4))) ;
-
-
-
-
-extern char *fcvt (double __value, int __ndigit, int *__restrict __decpt,
- int *__restrict __sign) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4))) ;
-
-
-
-
-extern char *gcvt (double __value, int __ndigit, char *__buf)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3))) ;
-
-
-
-
-extern char *qecvt (long double __value, int __ndigit,
- int *__restrict __decpt, int *__restrict __sign)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4))) ;
-extern char *qfcvt (long double __value, int __ndigit,
- int *__restrict __decpt, int *__restrict __sign)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4))) ;
-extern char *qgcvt (long double __value, int __ndigit, char *__buf)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3))) ;
-
-
-
-
-extern int ecvt_r (double __value, int __ndigit, int *__restrict __decpt,
- int *__restrict __sign, char *__restrict __buf,
- size_t __len) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4, 5)));
-extern int fcvt_r (double __value, int __ndigit, int *__restrict __decpt,
- int *__restrict __sign, char *__restrict __buf,
- size_t __len) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4, 5)));
-
-extern int qecvt_r (long double __value, int __ndigit,
- int *__restrict __decpt, int *__restrict __sign,
- char *__restrict __buf, size_t __len)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4, 5)));
-extern int qfcvt_r (long double __value, int __ndigit,
- int *__restrict __decpt, int *__restrict __sign,
- char *__restrict __buf, size_t __len)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4, 5)));
-
-
-
-
-
-
-extern int mblen (const char *__s, size_t __n) __attribute__ ((__nothrow__ , __leaf__));
-
-
-extern int mbtowc (wchar_t *__restrict __pwc,
- const char *__restrict __s, size_t __n) __attribute__ ((__nothrow__ , __leaf__));
-
-
-extern int wctomb (char *__s, wchar_t __wchar) __attribute__ ((__nothrow__ , __leaf__));
-
-
-
-extern size_t mbstowcs (wchar_t *__restrict __pwcs,
- const char *__restrict __s, size_t __n) __attribute__ ((__nothrow__ , __leaf__));
-
-extern size_t wcstombs (char *__restrict __s,
- const wchar_t *__restrict __pwcs, size_t __n)
- __attribute__ ((__nothrow__ , __leaf__));
-
-
-
-
-
-
-
-
-extern int rpmatch (const char *__response) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ;
-# 898 "/usr/include/stdlib.h" 3 4
-extern int getsubopt (char **__restrict __optionp,
- char *const *__restrict __tokens,
- char **__restrict __valuep)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2, 3))) ;
-# 950 "/usr/include/stdlib.h" 3 4
-extern int getloadavg (double __loadavg[], int __nelem)
- __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
-
-
-# 1 "/usr/include/x86_64-linux-gnu/bits/stdlib-float.h" 1 3 4
-# 955 "/usr/include/stdlib.h" 2 3 4
-# 967 "/usr/include/stdlib.h" 3 4
-
-# 45 "../../../server-code/src/login/login.c" 2
-
-
-# 46 "../../../server-code/src/login/login.c"
-struct login_interface login_s;
-struct login_interface *login;
-struct Login_Config login_config_;
-struct mmo_char_server server[30];
-
-struct Account_engine account_engine[] = {
- {account_db_sql,
-# 52 "../../../server-code/src/login/login.c" 3 4
- ((void *)0)
-# 52 "../../../server-code/src/login/login.c"
- }
-};
-
-
-AccountDB* accounts =
-# 56 "../../../server-code/src/login/login.c" 3 4
- ((void *)0)
-# 56 "../../../server-code/src/login/login.c"
- ;
-# 66 "../../../server-code/src/login/login.c"
-static struct DBData login_create_online_user(union DBKey key, va_list args)
-{
- struct online_login_data* p;
- ((p) = (struct online_login_data *) (iMalloc->calloc(((1)),(sizeof(struct online_login_data)),"../../../server-code/src/login/login.c", 69, __func__)));
- p->account_id = key.i;
- p->char_server = -1;
- p->waiting_disconnect = (-1);
- return DB->ptr2data(p);
-}
-
-struct online_login_data* login_add_online_user(int char_server, int account_id)
-{
- struct online_login_data* p;
- p = ( DB->data2ptr((login->online_db)->ensure((login->online_db),DB->i2key(account_id),(login->create_online_user))) );
- p->char_server = char_server;
- if( p->waiting_disconnect != (-1) )
- {
- timer->delete(p->waiting_disconnect, login->waiting_disconnect_timer);
- p->waiting_disconnect = (-1);
- }
- return p;
-}
-
-void login_remove_online_user(int account_id)
-{
- struct online_login_data* p;
- p = (struct online_login_data*)( DB->data2ptr((login->online_db)->get((login->online_db),DB->i2key(account_id))) );
- if( p ==
-# 93 "../../../server-code/src/login/login.c" 3 4
- ((void *)0)
-# 93 "../../../server-code/src/login/login.c"
- )
- return;
- if( p->waiting_disconnect != (-1) )
- timer->delete(p->waiting_disconnect, login->waiting_disconnect_timer);
-
- ( (login->online_db)->remove((login->online_db),DB->i2key(account_id),
-# 98 "../../../server-code/src/login/login.c" 3 4
-((void *)0)
-# 98 "../../../server-code/src/login/login.c"
-) );
-}
-
-static int login_waiting_disconnect_timer(int tid, int64 tick, int id, intptr_t data) {
- struct online_login_data* p = (struct online_login_data*)( DB->data2ptr((login->online_db)->get((login->online_db),DB->i2key(id))) );
- if( p !=
-# 103 "../../../server-code/src/login/login.c" 3 4
- ((void *)0)
-# 103 "../../../server-code/src/login/login.c"
- && p->waiting_disconnect == tid && p->account_id == id )
- {
- p->waiting_disconnect = (-1);
- login->remove_online_user(id);
- ( (login->auth_db)->remove((login->auth_db),DB->i2key(id),
-# 107 "../../../server-code/src/login/login.c" 3 4
- ((void *)0)
-# 107 "../../../server-code/src/login/login.c"
- ) );
- }
- return 0;
-}
-
-
-
-
-static int login_online_db_setoffline(union DBKey key, struct DBData *data, va_list ap)
-{
- struct online_login_data* p = DB->data2ptr(data);
- int server_id =
-# 118 "../../../server-code/src/login/login.c" 3 4
- __builtin_va_arg(
-# 118 "../../../server-code/src/login/login.c"
- ap
-# 118 "../../../server-code/src/login/login.c" 3 4
- ,
-# 118 "../../../server-code/src/login/login.c"
- int
-# 118 "../../../server-code/src/login/login.c" 3 4
- )
-# 118 "../../../server-code/src/login/login.c"
- ;
- do { if (((void)(p),
-# 119 "../../../server-code/src/login/login.c" 3 4
-0
-# 119 "../../../server-code/src/login/login.c"
-)) return(0); } while(0);
- if( server_id == -1 )
- {
- p->char_server = -1;
- if( p->waiting_disconnect != (-1) )
- {
- timer->delete(p->waiting_disconnect, login->waiting_disconnect_timer);
- p->waiting_disconnect = (-1);
- }
- }
- else if( p->char_server == server_id )
- p->char_server = -2;
- return 0;
-}
-
-
-
-
-static int login_online_data_cleanup_sub(union DBKey key, struct DBData *data, va_list ap)
-{
- struct online_login_data *character= DB->data2ptr(data);
- do { if (((void)(character),
-# 140 "../../../server-code/src/login/login.c" 3 4
-0
-# 140 "../../../server-code/src/login/login.c"
-)) return(0); } while(0);
- if (character->char_server == -2)
- login->remove_online_user(character->account_id);
- return 0;
-}
-
-static int login_online_data_cleanup(int tid, int64 tick, int id, intptr_t data) {
- login->online_db->foreach(login->online_db, login->online_data_cleanup_sub);
- return 0;
-}
-
-
-
-
-
-int charif_sendallwos(int sfd, uint8* buf, size_t len)
-{
- int i, c;
-
- do { if (((void)(buf),
-# 159 "../../../server-code/src/login/login.c" 3 4
-0
-# 159 "../../../server-code/src/login/login.c"
-)) return(0); } while(0);
- for( i = 0, c = 0; i < ( (int)(sizeof(server)/sizeof((server)[0])) ); ++i )
- {
- int fd = server[i].fd;
- if (sockt->session_is_valid(fd) && fd != sfd) {
- WFIFOHEAD(fd,len);
- memcpy(WFIFOP(fd,0), buf, len);
- WFIFOSET(fd,len);
- ++c;
- }
- }
-
- return c;
-}
-
-
-
-void chrif_server_init(int id)
-{
- do { if (( (id >= 0 && id < 30) ?
-# 178 "../../../server-code/src/login/login.c" 3 4
-0
-# 178 "../../../server-code/src/login/login.c"
-: (nullpo->assert_report("../../../server-code/src/login/login.c", 178, __func__, "id >= 0 && id < 30", "failed assertion"),
-# 178 "../../../server-code/src/login/login.c" 3 4
-1
-# 178 "../../../server-code/src/login/login.c"
-) )) return; } while(0);
- memset(&server[id], 0, sizeof(server[id]));
- server[id].fd = -1;
-}
-
-
-
-void chrif_server_destroy(int id)
-{
- do { if (( (id >= 0 && id < 30) ?
-# 187 "../../../server-code/src/login/login.c" 3 4
-0
-# 187 "../../../server-code/src/login/login.c"
-: (nullpo->assert_report("../../../server-code/src/login/login.c", 187, __func__, "id >= 0 && id < 30", "failed assertion"),
-# 187 "../../../server-code/src/login/login.c" 3 4
-1
-# 187 "../../../server-code/src/login/login.c"
-) )) return; } while(0);
- if (server[id].fd != -1)
- {
- sockt->close(server[id].fd);
- server[id].fd = -1;
- }
-}
-
-
-
-void chrif_server_reset(int id)
-{
- login->online_db->foreach(login->online_db, login->online_db_setoffline, id);
- chrif_server_destroy(id);
- chrif_server_init(id);
-}
-
-
-
-void chrif_on_disconnect(int id)
-{
- do { if (( (id >= 0 && id < 30) ?
-# 208 "../../../server-code/src/login/login.c" 3 4
-0
-# 208 "../../../server-code/src/login/login.c"
-: (nullpo->assert_report("../../../server-code/src/login/login.c", 208, __func__, "id >= 0 && id < 30", "failed assertion"),
-# 208 "../../../server-code/src/login/login.c" 3 4
-1
-# 208 "../../../server-code/src/login/login.c"
-) )) return; } while(0);
- (showmsg->showStatus(("Char-server '%s' has disconnected.\n"), server[id].name));
- chrif_server_reset(id);
-}
-
-
-
-
-
-static int login_sync_ip_addresses(int tid, int64 tick, int id, intptr_t data) {
- uint8 buf[2];
- (showmsg->showInfo(("IP Sync in progress...\n")));
- WBUFW(buf,0) = 0x2735;
- charif_sendallwos(-1, buf, 2);
- return 0;
-}
-
-
-
-
-
-
-# 229 "../../../server-code/src/login/login.c" 3 4
-_Bool
-# 229 "../../../server-code/src/login/login.c"
- login_check_encrypted(const char* str1, const char* str2, const char* passwd)
-{
- char tmpstr[64+1], md5str[32+1];
-
- do { if (((void)(str1),
-# 233 "../../../server-code/src/login/login.c" 3 4
-0
-# 233 "../../../server-code/src/login/login.c"
-)) return(0); } while(0);
- do { if (((void)(str2),
-# 234 "../../../server-code/src/login/login.c" 3 4
-0
-# 234 "../../../server-code/src/login/login.c"
-)) return(0); } while(0);
- do { if (((void)(passwd),
-# 235 "../../../server-code/src/login/login.c" 3 4
-0
-# 235 "../../../server-code/src/login/login.c"
-)) return(0); } while(0);
- (strlib->safesnprintf_((tmpstr),(sizeof(tmpstr)),("%s%s"), str1, str2));
- MD5_String(tmpstr, md5str);
-
- return (0==strcmp(passwd, md5str));
-}
-
-
-# 242 "../../../server-code/src/login/login.c" 3 4
-_Bool
-# 242 "../../../server-code/src/login/login.c"
- login_check_password(const char* md5key, int passwdenc, const char* passwd, const char* refpass)
-{
- do { if (((void)(passwd),
-# 244 "../../../server-code/src/login/login.c" 3 4
-0
-# 244 "../../../server-code/src/login/login.c"
-)) return(0); } while(0);
- do { if (((void)(refpass),
-# 245 "../../../server-code/src/login/login.c" 3 4
-0
-# 245 "../../../server-code/src/login/login.c"
-)) return(0); } while(0);
- if(passwdenc == PWENC_NONE) {
- return (0==strcmp(passwd, refpass));
- } else {
-
-
-
- return ((passwdenc&PWENC_ENCRYPT) && login->check_encrypted(md5key, refpass, passwd)) ||
- ((passwdenc&PWENC_ENCRYPT2) && login->check_encrypted(refpass, md5key, passwd));
- }
-}
-# 265 "../../../server-code/src/login/login.c"
-uint32 login_lan_subnet_check(uint32 ip)
-{
- return sockt->lan_subnet_check(ip,
-# 267 "../../../server-code/src/login/login.c" 3 4
- ((void *)0)
-# 267 "../../../server-code/src/login/login.c"
- );
-}
-
-void login_fromchar_auth_ack(int fd, int account_id, uint32 login_id1, uint32 login_id2, uint8 sex, int request_id, struct login_auth_node* node)
-{
- WFIFOHEAD(fd,33);
- WFIFOW(fd,0) = 0x2713;
- WFIFOL(fd,2) = account_id;
- WFIFOL(fd,6) = login_id1;
- WFIFOL(fd,10) = login_id2;
- WFIFOB(fd,14) = sex;
- if (node)
- {
- WFIFOB(fd,15) = 0;
- WFIFOL(fd,16) = request_id;
- WFIFOL(fd,20) = node->version;
- WFIFOB(fd,24) = node->clienttype;
- WFIFOL(fd,25) = node->group_id;
- WFIFOL(fd,29) = (unsigned int)node->expiration_time;
- }
- else
- {
- WFIFOB(fd,15) = 1;
- WFIFOL(fd,16) = request_id;
- WFIFOL(fd,20) = 0;
- WFIFOB(fd,24) = 0;
- WFIFOL(fd,25) = 0;
- WFIFOL(fd,29) = 0;
- }
- WFIFOSET(fd,33);
-}
-
-void login_fromchar_parse_auth(int fd, int id, const char *const ip)
-{
- struct login_auth_node* node;
-
- int account_id = RFIFOL(fd,2);
- uint32 login_id1 = RFIFOL(fd,6);
- uint32 login_id2 = RFIFOL(fd,10);
- uint8 sex = RFIFOB(fd,14);
-
- int request_id = RFIFOL(fd,19);
- RFIFOSKIP(fd,23);
-
- node = (struct login_auth_node*)( DB->data2ptr((login->auth_db)->get((login->auth_db),DB->i2key(account_id))) );
- if( core->runflag == LOGINSERVER_ST_RUNNING &&
- node !=
-# 313 "../../../server-code/src/login/login.c" 3 4
- ((void *)0)
-# 313 "../../../server-code/src/login/login.c"
- &&
- node->account_id == account_id &&
- node->login_id1 == login_id1 &&
- node->login_id2 == login_id2 &&
- node->sex == ( ((sex) == SEX_FEMALE) ? 'F' : ((sex) == SEX_MALE) ? 'M' : 'S' )
- )
- {
-
-
-
- login->fromchar_auth_ack(fd, account_id, login_id1, login_id2, sex, request_id, node);
-
- ( (login->auth_db)->remove((login->auth_db),DB->i2key(account_id),
-# 325 "../../../server-code/src/login/login.c" 3 4
- ((void *)0)
-# 325 "../../../server-code/src/login/login.c"
- ) );
- }
- else
- {
- do { if (((void)(ip),
-# 329 "../../../server-code/src/login/login.c" 3 4
- 0
-# 329 "../../../server-code/src/login/login.c"
- )) return; } while(0);
- (showmsg->showStatus(("Char-server '%s': authentication of the account %d REFUSED (ip: %s).\n"), server[id].name, account_id, ip));
- login->fromchar_auth_ack(fd, account_id, login_id1, login_id2, sex, request_id,
-# 331 "../../../server-code/src/login/login.c" 3 4
- ((void *)0)
-# 331 "../../../server-code/src/login/login.c"
- );
- }
-}
-
-void login_fromchar_parse_update_users(int fd, int id)
-{
- int users = RFIFOL(fd,2);
- RFIFOSKIP(fd,6);
-
-
- if( server[id].users != users )
- {
- (showmsg->showStatus(("set users %s : %d\n"), server[id].name, users));
-
- server[id].users = (uint16)users;
- }
-}
-
-void login_fromchar_parse_request_change_email(int fd, int id, const char *const ip)
-{
- struct mmo_account acc;
- char email[40];
-
- int account_id = RFIFOL(fd,2);
- (strlib->safestrncpy_((email),(RFIFOP(fd,6)),(40))); (strlib->remove_control_chars_(email));
- RFIFOSKIP(fd,46);
-
- if( (strlib->e_mail_check_(email)) == 0 )
- (showmsg->showNotice(("Char-server '%s': Attempt to create an e-mail on an account with a default e-mail REFUSED - e-mail is invalid (account: %d, ip: %s)\n"), server[id].name, account_id, ip));
- else
- if( !accounts->load_num(accounts, &acc, account_id) || strcmp(acc.email, "a@a.com") == 0 || acc.email[0] == '\0' )
- (showmsg->showNotice(("Char-server '%s': Attempt to create an e-mail on an account with a default e-mail REFUSED - account doesn't exist or e-mail of account isn't default e-mail (account: %d, ip: %s).\n"), server[id].name, account_id, ip));
- else {
- memcpy(acc.email, email, sizeof(acc.email));
- (showmsg->showNotice(("Char-server '%s': Create an e-mail on an account with a default e-mail (account: %d, new e-mail: %s, ip: %s).\n"), server[id].name, account_id, email, ip));
-
- accounts->save(accounts, &acc);
- }
-}
-
-void login_fromchar_account(int fd, int account_id, struct mmo_account *acc)
-{
- WFIFOHEAD(fd,72);
- WFIFOW(fd,0) = 0x2717;
- WFIFOL(fd,2) = account_id;
- if (acc)
- {
- time_t expiration_time = 0;
- char email[40] = "";
- int group_id = 0;
- uint8 char_slots = 0;
- char birthdate[10+1] = "";
- char pincode[4+1] = "\0\0\0\0";
-
- (strlib->safestrncpy_((email),(acc->email),(sizeof(email))));
- expiration_time = acc->expiration_time;
- group_id = acc->group_id;
- char_slots = acc->char_slots;
- (strlib->safestrncpy_((pincode),(acc->pincode),(sizeof(pincode))));
- (strlib->safestrncpy_((birthdate),(acc->birthdate),(sizeof(birthdate))));
- if (pincode[0] == '\0')
- memset(pincode,'\0',sizeof(pincode));
-
- (strlib->safestrncpy_((WFIFOP(fd,6)),(email),(40)));
- WFIFOL(fd,46) = (uint32)expiration_time;
- WFIFOB(fd,50) = (unsigned char)group_id;
- WFIFOB(fd,51) = char_slots;
- (strlib->safestrncpy_((WFIFOP(fd,52)),(birthdate),(10+1)));
- (strlib->safestrncpy_((WFIFOP(fd,63)),(pincode),(4+1)));
- WFIFOL(fd,68) = acc->pincode_change;
- }
- else
- {
- (strlib->safestrncpy_((WFIFOP(fd,6)),(""),(40)));
- WFIFOL(fd,46) = 0;
- WFIFOB(fd,50) = 0;
- WFIFOB(fd,51) = 0;
- (strlib->safestrncpy_((WFIFOP(fd,52)),(""),(10+1)));
- (strlib->safestrncpy_((WFIFOP(fd,63)),("\0\0\0\0"),(4+1)));
- WFIFOL(fd,68) = 0;
- }
- WFIFOSET(fd,72);
-}
-
-void login_fromchar_parse_account_data(int fd, int id, const char *const ip)
-{
- struct mmo_account acc;
-
- int account_id = RFIFOL(fd,2);
- RFIFOSKIP(fd,6);
-
- if( !accounts->load_num(accounts, &acc, account_id) )
- {
- (showmsg->showNotice(("Char-server '%s': account %d NOT found (ip: %s).\n"), server[id].name, account_id, ip));
- login->fromchar_account(fd, account_id,
-# 425 "../../../server-code/src/login/login.c" 3 4
- ((void *)0)
-# 425 "../../../server-code/src/login/login.c"
- );
- }
- else {
- login->fromchar_account(fd, account_id, &acc);
- }
-}
-
-void login_fromchar_pong(int fd)
-{
- WFIFOHEAD(fd,2);
- WFIFOW(fd,0) = 0x2718;
- WFIFOSET(fd,2);
-}
-
-void login_fromchar_parse_ping(int fd)
-{
- RFIFOSKIP(fd,2);
- login->fromchar_pong(fd);
-}
-
-void login_fromchar_parse_change_email(int fd, int id, const char *const ip)
-{
- struct mmo_account acc;
- char actual_email[40];
- char new_email[40];
-
- int account_id = RFIFOL(fd,2);
- (strlib->safestrncpy_((actual_email),(RFIFOP(fd,6)),(40)));
- (strlib->safestrncpy_((new_email),(RFIFOP(fd,46)),(40)));
- RFIFOSKIP(fd, 86);
-
- if( (strlib->e_mail_check_(actual_email)) == 0 )
- (showmsg->showNotice(("Char-server '%s': Attempt to modify an e-mail on an account (@email GM command), but actual email is invalid (account: %d, ip: %s)\n"), server[id].name, account_id, ip));
- else
- if( (strlib->e_mail_check_(new_email)) == 0 )
- (showmsg->showNotice(("Char-server '%s': Attempt to modify an e-mail on an account (@email GM command) with a invalid new e-mail (account: %d, ip: %s)\n"), server[id].name, account_id, ip));
- else
- if( strcasecmp(new_email, "a@a.com") == 0 )
- (showmsg->showNotice(("Char-server '%s': Attempt to modify an e-mail on an account (@email GM command) with a default e-mail (account: %d, ip: %s)\n"), server[id].name, account_id, ip));
- else
- if( !accounts->load_num(accounts, &acc, account_id) )
- (showmsg->showNotice(("Char-server '%s': Attempt to modify an e-mail on an account (@email GM command), but account doesn't exist (account: %d, ip: %s).\n"), server[id].name, account_id, ip));
- else
- if( strcasecmp(acc.email, actual_email) != 0 )
- (showmsg->showNotice(("Char-server '%s': Attempt to modify an e-mail on an account (@email GM command), but actual e-mail is incorrect (account: %d (%s), actual e-mail: %s, proposed e-mail: %s, ip: %s).\n"), server[id].name, account_id, acc.userid, acc.email, actual_email, ip));
- else {
- (strlib->safestrncpy_((acc.email),(new_email),(sizeof(acc.email))));
- (showmsg->showNotice(("Char-server '%s': Modify an e-mail on an account (@email GM command) (account: %d (%s), new e-mail: %s, ip: %s).\n"), server[id].name, account_id, acc.userid, new_email, ip));
-
- accounts->save(accounts, &acc);
- }
-}
-
-void login_fromchar_account_update_other(int account_id, unsigned int state)
-{
- uint8 buf[11];
- WBUFW(buf,0) = 0x2731;
- WBUFL(buf,2) = account_id;
- WBUFB(buf,6) = 0;
- WBUFL(buf,7) = state;
- charif_sendallwos(-1, buf, 11);
-}
-
-void login_fromchar_parse_account_update(int fd, int id, const char *const ip)
-{
- struct mmo_account acc;
-
- int account_id = RFIFOL(fd,2);
- unsigned int state = RFIFOL(fd,6);
- RFIFOSKIP(fd,10);
-
- if( !accounts->load_num(accounts, &acc, account_id) )
- (showmsg->showNotice(("Char-server '%s': Error of Status change (account: %d not found, suggested status %u, ip: %s).\n"), server[id].name, account_id, state, ip));
- else
- if( acc.state == state )
- (showmsg->showNotice(("Char-server '%s': Error of Status change - actual status is already the good status (account: %d, status %u, ip: %s).\n"), server[id].name, account_id, state, ip));
- else {
- (showmsg->showNotice(("Char-server '%s': Status change (account: %d, new status %u, ip: %s).\n"), server[id].name, account_id, state, ip));
-
- acc.state = state;
-
- accounts->save(accounts, &acc);
-
-
- if (state != 0) {
- login->fromchar_account_update_other(account_id, state);
- }
- }
-}
-
-void login_fromchar_ban(int account_id, time_t timestamp)
-{
- uint8 buf[11];
- WBUFW(buf,0) = 0x2731;
- WBUFL(buf,2) = account_id;
- WBUFB(buf,6) = 1;
- WBUFL(buf,7) = (uint32)timestamp;
- charif_sendallwos(-1, buf, 11);
-}
-
-void login_fromchar_parse_ban(int fd, int id, const char *const ip)
-{
- struct mmo_account acc;
-
- int account_id = RFIFOL(fd,2);
- int year = RFIFOW(fd,6);
- int month = RFIFOW(fd,8);
- int mday = RFIFOW(fd,10);
- int hour = RFIFOW(fd,12);
- int min = RFIFOW(fd,14);
- int sec = RFIFOW(fd,16);
- RFIFOSKIP(fd,18);
-
- if (!accounts->load_num(accounts, &acc, account_id)) {
- (showmsg->showNotice(("Char-server '%s': Error of ban request (account: %d not found, ip: %s).\n"), server[id].name, account_id, ip));
- } else {
- time_t timestamp;
- struct tm *tmtime;
- if (acc.unban_time == 0 || acc.unban_time < time(
-# 543 "../../../server-code/src/login/login.c" 3 4
- ((void *)0)
-# 543 "../../../server-code/src/login/login.c"
- ))
- timestamp = time(
-# 544 "../../../server-code/src/login/login.c" 3 4
- ((void *)0)
-# 544 "../../../server-code/src/login/login.c"
- );
- else
- timestamp = acc.unban_time;
- tmtime = localtime(&timestamp);
- tmtime->tm_year += year;
- tmtime->tm_mon += month;
- tmtime->tm_mday += mday;
- tmtime->tm_hour += hour;
- tmtime->tm_min += min;
- tmtime->tm_sec += sec;
- timestamp = mktime(tmtime);
- if (timestamp == -1) {
- (showmsg->showNotice(("Char-server '%s': Error of ban request (account: %d, invalid date, ip: %s).\n"), server[id].name, account_id, ip));
- } else if( timestamp <= time(
-# 557 "../../../server-code/src/login/login.c" 3 4
- ((void *)0)
-# 557 "../../../server-code/src/login/login.c"
- ) || timestamp == 0 ) {
- (showmsg->showNotice(("Char-server '%s': Error of ban request (account: %d, new date unbans the account, ip: %s).\n"), server[id].name, account_id, ip));
- } else {
- char tmpstr[24];
- timestamp2string(tmpstr, sizeof(tmpstr), timestamp, login->config->date_format);
- (showmsg->showNotice(("Char-server '%s': Ban request (account: %d, new final date of banishment: %ld (%s), ip: %s).\n"), server[id].name, account_id, (long)timestamp, tmpstr, ip))
- ;
-
- acc.unban_time = timestamp;
-
-
- accounts->save(accounts, &acc);
-
- login->fromchar_ban(account_id, timestamp);
- }
- }
-}
-
-void login_fromchar_change_sex_other(int account_id, char sex)
-{
- unsigned char buf[7];
- WBUFW(buf,0) = 0x2723;
- WBUFL(buf,2) = account_id;
- WBUFB(buf,6) = ( ((sex) == 'F') ? SEX_FEMALE : ((sex) == 'M') ? SEX_MALE : SEX_SERVER );
- charif_sendallwos(-1, buf, 7);
-}
-
-void login_fromchar_parse_change_sex(int fd, int id, const char *const ip)
-{
- struct mmo_account acc;
-
- int account_id = RFIFOL(fd,2);
- RFIFOSKIP(fd,6);
-
- if( !accounts->load_num(accounts, &acc, account_id) )
- (showmsg->showNotice(("Char-server '%s': Error of sex change (account: %d not found, ip: %s).\n"), server[id].name, account_id, ip));
- else
- if( acc.sex == 'S' )
- (showmsg->showNotice(("Char-server '%s': Error of sex change - account to change is a Server account (account: %d, ip: %s).\n"), server[id].name, account_id, ip));
- else
- {
- char sex = ( acc.sex == 'M' ) ? 'F' : 'M';
-
- (showmsg->showNotice(("Char-server '%s': Sex change (account: %d, new sex %c, ip: %s).\n"), server[id].name, account_id, sex, ip));
-
- acc.sex = sex;
-
- accounts->save(accounts, &acc);
-
-
- login->fromchar_change_sex_other(account_id, sex);
- }
-}
-
-void login_fromchar_parse_account_reg2(int fd, int id, const char *const ip)
-{
- struct mmo_account acc;
-
- int account_id = RFIFOL(fd,4);
-
- if( !accounts->load_num(accounts, &acc, account_id) )
- (showmsg->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));
- else {
- mmo_save_accreg2(accounts,fd,account_id,RFIFOL(fd, 8));
- }
- RFIFOSKIP(fd,RFIFOW(fd,2));
-}
-
-void login_fromchar_parse_unban(int fd, int id, const char *const ip)
-{
- struct mmo_account acc;
-
- int account_id = RFIFOL(fd,2);
- RFIFOSKIP(fd,6);
-
- if( !accounts->load_num(accounts, &acc, account_id) )
- (showmsg->showNotice(("Char-server '%s': Error of Unban request (account: %d not found, ip: %s).\n"), server[id].name, account_id, ip));
- else
- if( acc.unban_time == 0 )
- (showmsg->showNotice(("Char-server '%s': Error of Unban request (account: %d, no change for unban date, ip: %s).\n"), server[id].name, account_id, ip));
- else
- {
- (showmsg->showNotice(("Char-server '%s': Unban request (account: %d, ip: %s).\n"), server[id].name, account_id, ip));
- acc.unban_time = 0;
- accounts->save(accounts, &acc);
- }
-}
-
-void login_fromchar_parse_account_online(int fd, int id)
-{
- login->add_online_user(id, RFIFOL(fd,2));
- RFIFOSKIP(fd,6);
-}
-
-void login_fromchar_parse_account_offline(int fd)
-{
- login->remove_online_user(RFIFOL(fd,2));
- RFIFOSKIP(fd,6);
-}
-
-void login_fromchar_parse_online_accounts(int fd, int id)
-{
- uint32 i, users;
- login->online_db->foreach(login->online_db, login->online_db_setoffline, id);
- users = RFIFOW(fd,4);
- for (i = 0; i < users; i++) {
- int aid = RFIFOL(fd,6+i*4);
- struct online_login_data *p = ( DB->data2ptr((login->online_db)->ensure((login->online_db),DB->i2key(aid),(login->create_online_user))) );
- p->char_server = id;
- if (p->waiting_disconnect != (-1))
- {
- timer->delete(p->waiting_disconnect, login->waiting_disconnect_timer);
- p->waiting_disconnect = (-1);
- }
- }
-}
-
-void login_fromchar_parse_request_account_reg2(int fd)
-{
- int account_id = RFIFOL(fd,2);
- int char_id = RFIFOL(fd,6);
- RFIFOSKIP(fd,10);
-
- mmo_send_accreg2(accounts,fd,account_id,char_id);
-}
-
-void login_fromchar_parse_update_wan_ip(int fd, int id)
-{
- server[id].ip = ntohl(RFIFOL(fd,2));
- (showmsg->showInfo(("Updated IP of Server #%d to %u.%u.%u.%u.\n"),id, CONVIP(server[id].ip)));
- RFIFOSKIP(fd,6);
-}
-
-void login_fromchar_parse_all_offline(int fd, int id)
-{
- (showmsg->showInfo(("Setting accounts from char-server %d offline.\n"), id));
- login->online_db->foreach(login->online_db, login->online_db_setoffline, id);
- RFIFOSKIP(fd,2);
-}
-
-void login_fromchar_parse_change_pincode(int fd)
-{
- struct mmo_account acc;
-
- if (accounts->load_num(accounts, &acc, RFIFOL(fd,2))) {
- (strlib->safestrncpy_((acc.pincode),(RFIFOP(fd,6)),(sizeof(acc.pincode))));
- acc.pincode_change = ((unsigned int)time(
-# 703 "../../../server-code/src/login/login.c" 3 4
- ((void *)0)
-# 703 "../../../server-code/src/login/login.c"
- ));
- accounts->save(accounts, &acc);
- }
- RFIFOSKIP(fd,11);
-}
-
-
-# 709 "../../../server-code/src/login/login.c" 3 4
-_Bool
-# 709 "../../../server-code/src/login/login.c"
- login_fromchar_parse_wrong_pincode(int fd)
-{
- struct mmo_account acc;
-
- if( accounts->load_num(accounts, &acc, RFIFOL(fd,2) ) ) {
- struct online_login_data* ld = (struct online_login_data*)( DB->data2ptr((login->online_db)->get((login->online_db),DB->i2key(acc.account_id))) );
-
- if (ld ==
-# 716 "../../../server-code/src/login/login.c" 3 4
- ((void *)0)
-# 716 "../../../server-code/src/login/login.c"
- ) {
- RFIFOSKIP(fd,6);
- return
-# 718 "../../../server-code/src/login/login.c" 3 4
- 1
-# 718 "../../../server-code/src/login/login.c"
- ;
- }
-
- login_log(sockt->host2ip(acc.last_ip), acc.userid, 100, "PIN Code check failed");
- }
-
- login->remove_online_user(acc.account_id);
- RFIFOSKIP(fd,6);
- return
-# 726 "../../../server-code/src/login/login.c" 3 4
- 0
-# 726 "../../../server-code/src/login/login.c"
- ;
-}
-
-void login_fromchar_accinfo(int fd, int account_id, int u_fd, int u_aid, int u_group, int map_fd, struct mmo_account *acc)
-{
- if (acc)
- {
- WFIFOHEAD(fd,183);
- WFIFOW(fd,0) = 0x2737;
- (strlib->safestrncpy_((WFIFOP(fd,2)),(acc->userid),((23 + 1))));
- if (u_group >= acc->group_id)
- (strlib->safestrncpy_((WFIFOP(fd,26)),(acc->pass),(33)));
- else
- memset(WFIFOP(fd,26), '\0', 33);
- (strlib->safestrncpy_((WFIFOP(fd,59)),(acc->email),(40)));
- (strlib->safestrncpy_((WFIFOP(fd,99)),(acc->last_ip),(16)));
- WFIFOL(fd,115) = acc->group_id;
- (strlib->safestrncpy_((WFIFOP(fd,119)),(acc->lastlogin),(24)));
- WFIFOL(fd,143) = acc->logincount;
- WFIFOL(fd,147) = acc->state;
- if (u_group >= acc->group_id)
- (strlib->safestrncpy_((WFIFOP(fd,151)),(acc->pincode),(5)));
- else
- memset(WFIFOP(fd,151), '\0', 5);
- (strlib->safestrncpy_((WFIFOP(fd,156)),(acc->birthdate),(11)));
- WFIFOL(fd,167) = map_fd;
- WFIFOL(fd,171) = u_fd;
- WFIFOL(fd,175) = u_aid;
- WFIFOL(fd,179) = account_id;
- WFIFOSET(fd,183);
- }
- else
- {
- WFIFOHEAD(fd,18);
- WFIFOW(fd,0) = 0x2736;
- WFIFOL(fd,2) = map_fd;
- WFIFOL(fd,6) = u_fd;
- WFIFOL(fd,10) = u_aid;
- WFIFOL(fd,14) = account_id;
- WFIFOSET(fd,18);
- }
-}
-
-void login_fromchar_parse_accinfo(int fd)
-{
- struct mmo_account acc;
- int account_id = RFIFOL(fd, 2), u_fd = RFIFOL(fd, 6), u_aid = RFIFOL(fd, 10), u_group = RFIFOL(fd, 14), map_fd = RFIFOL(fd, 18);
- if (accounts->load_num(accounts, &acc, account_id)) {
- login->fromchar_accinfo(fd, account_id, u_fd, u_aid, u_group, map_fd, &acc);
- } else {
- login->fromchar_accinfo(fd, account_id, u_fd, u_aid, u_group, map_fd,
-# 776 "../../../server-code/src/login/login.c" 3 4
- ((void *)0)
-# 776 "../../../server-code/src/login/login.c"
- );
- }
- RFIFOSKIP(fd,22);
-}
-
-
-
-
-int login_parse_fromchar(int fd)
-{
- int id;
- uint32 ipl;
- char ip[16];
-
- do { for ((id) = (0); (id) < (( (int)(sizeof(server)/sizeof((server)[0])) )); ++(id)) if (server[id].fd == fd) break; } while(
-# 790 "../../../server-code/src/login/login.c" 3 4
-0
-# 790 "../../../server-code/src/login/login.c"
-);
- if( id == ( (int)(sizeof(server)/sizeof((server)[0])) ) )
- {
- (showmsg->showDebug(("login_parse_fromchar: Disconnecting invalid session #%d (is not a char-server)\n"), fd));
- sockt->eof(fd);
- sockt->close(fd);
- return 0;
- }
-
- if( sockt->session[fd]->flag.eof )
- {
- sockt->close(fd);
- server[id].fd = -1;
- chrif_on_disconnect(id);
- return 0;
- }
-
- ipl = server[id].ip;
- sockt->ip2str(ipl, ip);
-
- while (RFIFOREST(fd) >= 2) {
- uint16 command = RFIFOW(fd,0);
-
- if (( (HPM->packets[hpParse_FromChar])._len_ ) > 0) {
- int result = HPM->parse_packets(fd,command,hpParse_FromChar);
- if (result == 1)
- continue;
- if (result == 2)
- return 0;
- }
-
- switch (command) {
-
- case 0x2712:
- if( RFIFOREST(fd) < 23 )
- return 0;
- {
- login->fromchar_parse_auth(fd, id, ip);
- }
- break;
-
- case 0x2714:
- if( RFIFOREST(fd) < 6 )
- return 0;
- {
- login->fromchar_parse_update_users(fd, id);
- }
- break;
-
- case 0x2715:
- if (RFIFOREST(fd) < 46)
- return 0;
- {
- login->fromchar_parse_request_change_email(fd, id, ip);
- }
- break;
-
- case 0x2716:
- if( RFIFOREST(fd) < 6 )
- return 0;
- {
- login->fromchar_parse_account_data(fd, id, ip);
- }
- break;
-
- case 0x2719:
- login->fromchar_parse_ping(fd);
- break;
-
-
- case 0x2722:
- if (RFIFOREST(fd) < 86)
- return 0;
- {
- login->fromchar_parse_change_email(fd, id, ip);
- }
- break;
-
- case 0x2724:
- if (RFIFOREST(fd) < 10)
- return 0;
- {
- login->fromchar_parse_account_update(fd, id, ip);
- }
- break;
-
- case 0x2725:
- if (RFIFOREST(fd) < 18)
- return 0;
- {
- login->fromchar_parse_ban(fd, id, ip);
- }
- break;
-
- case 0x2727:
- if( RFIFOREST(fd) < 6 )
- return 0;
- {
- login->fromchar_parse_change_sex(fd, id, ip);
- }
- break;
-
- case 0x2728:
- if( RFIFOREST(fd) < 4 || RFIFOREST(fd) < RFIFOW(fd,2) )
- return 0;
- {
- login->fromchar_parse_account_reg2(fd, id, ip);
- }
- break;
-
- case 0x272a:
- if( RFIFOREST(fd) < 6 )
- return 0;
- {
- login->fromchar_parse_unban(fd, id, ip);
- }
- break;
-
- case 0x272b:
- if( RFIFOREST(fd) < 6 )
- return 0;
- login->fromchar_parse_account_online(fd, id);
- break;
-
- case 0x272c:
- if( RFIFOREST(fd) < 6 )
- return 0;
- login->fromchar_parse_account_offline(fd);
- break;
-
- case 0x272d:
- if (RFIFOREST(fd) < 4 || RFIFOREST(fd) < RFIFOW(fd,2))
- return 0;
- {
- login->fromchar_parse_online_accounts(fd, id);
- }
- RFIFOSKIP(fd,RFIFOW(fd,2));
- break;
-
- case 0x272e:
- if (RFIFOREST(fd) < 10)
- return 0;
- {
- login->fromchar_parse_request_account_reg2(fd);
- }
- break;
-
- case 0x2736:
- if( RFIFOREST(fd) < 6 )
- return 0;
- login->fromchar_parse_update_wan_ip(fd, id);
- break;
-
- case 0x2737:
- login->fromchar_parse_all_offline(fd, id);
- break;
-
- case 0x2738:
- if( RFIFOREST(fd) < 11 )
- return 0;
- else {
- login->fromchar_parse_change_pincode(fd);
- }
- break;
-
- case 0x2739:
- if( RFIFOREST(fd) < 6 )
- return 0;
- else {
- if (login->fromchar_parse_wrong_pincode(fd))
- return 0;
- }
- break;
-
- case 0x2740:
- if( RFIFOREST(fd) < 22 )
- return 0;
- else {
- login->fromchar_parse_accinfo(fd);
- }
- break;
- default:
- (showmsg->showError(("login_parse_fromchar: Unknown packet 0x%x from a char-server! Disconnecting!\n"), command));
- sockt->eof(fd);
- return 0;
- }
- }
-
- return 0;
-}
-
-
-
-
-
-int login_mmo_auth_new(const char* userid, const char* pass, const char sex, const char* last_ip) {
- static int num_regs = 0;
- static int64 new_reg_tick = 0;
- int64 tick = timer->gettick();
- struct mmo_account acc;
-
- do { if (((void)(userid),
-# 991 "../../../server-code/src/login/login.c" 3 4
-0
-# 991 "../../../server-code/src/login/login.c"
-)) return(3); } while(0);
- do { if (((void)(pass),
-# 992 "../../../server-code/src/login/login.c" 3 4
-0
-# 992 "../../../server-code/src/login/login.c"
-)) return(3); } while(0);
- do { if (((void)(last_ip),
-# 993 "../../../server-code/src/login/login.c" 3 4
-0
-# 993 "../../../server-code/src/login/login.c"
-)) return(3); } while(0);
-
- if( new_reg_tick == 0 )
- new_reg_tick = timer->gettick();
- if (((tick)-(new_reg_tick)) < 0 && num_regs >= login->config->allowed_regs) {
- (showmsg->showNotice(("Account registration denied (registration limit exceeded)\n")));
- return 3;
- }
-
- if (login->config->new_acc_length_limit && (strlen(userid) < 4 || strlen(pass) < 4))
- return 1;
-
-
- if( sex != 'M' && sex != 'F' )
- return 0;
-
-
- if( accounts->load_str(accounts, &acc, userid) ) {
- (showmsg->showNotice(("Attempt of creation of an already existing account (account: %s_%c, pass: %s, received pass: %s)\n"), userid, sex, acc.pass, pass));
- return 1;
- }
-
- memset(&acc, '\0', sizeof(acc));
- acc.account_id = -1;
- (strlib->safestrncpy_((acc.userid),(userid),(sizeof(acc.userid))));
- (strlib->safestrncpy_((acc.pass),(pass),(sizeof(acc.pass))));
- acc.sex = sex;
- (strlib->safestrncpy_((acc.email),("a@a.com"),(sizeof(acc.email))));
- acc.expiration_time = (login->config->start_limited_time != -1) ? time(
-# 1021 "../../../server-code/src/login/login.c" 3 4
- ((void *)0)
-# 1021 "../../../server-code/src/login/login.c"
- ) + login->config->start_limited_time : 0;
- (strlib->safestrncpy_((acc.lastlogin),("0000-00-00 00:00:00"),(sizeof(acc.lastlogin))));
- (strlib->safestrncpy_((acc.last_ip),(last_ip),(sizeof(acc.last_ip))));
- (strlib->safestrncpy_((acc.birthdate),("0000-00-00"),(sizeof(acc.birthdate))));
- (strlib->safestrncpy_((acc.pincode),("\0"),(sizeof(acc.pincode))));
- acc.pincode_change = 0;
- acc.char_slots = 0;
-
- if( !accounts->create(accounts, &acc) )
- return 0;
-
- (showmsg->showNotice(("Account creation (account %s, id: %d, pass: %s, sex: %c)\n"), acc.userid, acc.account_id, acc.pass, acc.sex));
-
- if( ((tick)-(new_reg_tick)) > 0 ) {
- num_regs = 0;
- new_reg_tick = tick + login->config->time_allowed*1000;
- }
- ++num_regs;
-
- return -1;
-}
-
-
-
-
-
-int login_mmo_auth(struct login_session_data* sd,
-# 1047 "../../../server-code/src/login/login.c" 3 4
- _Bool
-# 1047 "../../../server-code/src/login/login.c"
- isServer) {
- struct mmo_account acc;
- size_t len;
-
- char ip[16];
- do { if (((void)(sd),
-# 1052 "../../../server-code/src/login/login.c" 3 4
-0
-# 1052 "../../../server-code/src/login/login.c"
-)) return(0); } while(0);
- sockt->ip2str(sockt->session[sd->fd]->client_addr, ip);
-
-
- if (login->config->use_dnsbl) {
- char r_ip[16];
- char ip_dnsbl[256];
- char* dnsbl_serv;
- uint8* sin_addr = (uint8*)&sockt->session[sd->fd]->client_addr;
-
- sprintf(r_ip, "%u.%u.%u.%u", sin_addr[0], sin_addr[1], sin_addr[2], sin_addr[3]);
-
- for (dnsbl_serv = strtok(login->config->dnsbl_servs,","); dnsbl_serv !=
-# 1064 "../../../server-code/src/login/login.c" 3 4
- ((void *)0)
-# 1064 "../../../server-code/src/login/login.c"
- ; dnsbl_serv = strtok(
-# 1064 "../../../server-code/src/login/login.c" 3 4
- ((void *)0)
-# 1064 "../../../server-code/src/login/login.c"
- ,",")) {
- sprintf(ip_dnsbl, "%s.%s", r_ip, (strlib->trim_(dnsbl_serv)));
- if (sockt->host2ip(ip_dnsbl)) {
- (showmsg->showInfo(("DNSBL: (%s) Blacklisted. User Kicked.\n"), r_ip));
- return 3;
- }
- }
-
- }
-
-
- if (login->config->check_client_version && sd->version != login->config->client_version_to_connect)
- return 5;
-
- len = (strlib->strnlen_((sd->userid),((23 + 1))));
-
-
- if (login->config->new_account_flag) {
- if (len > 2 && sd->passwd[0] != '\0' &&
- sd->passwdenc == PWENC_NONE &&
- sd->userid[len-2] == '_' && memchr("FfMm", sd->userid[len-1], 4))
- {
- int result;
-
-
- len -= 2;
- sd->userid[len] = '\0';
-
- result = login->mmo_auth_new(sd->userid, sd->passwd, (toupper((unsigned char)(sd->userid[len+1]))), ip);
- if( result != -1 )
- return result;
- }
- }
-
- if( len <= 0 ) {
- (showmsg->showNotice(("Empty userid (received pass: '%s', ip: %s)\n"), sd->passwd, ip));
- return 0;
- }
-
- if( !accounts->load_str(accounts, &acc, sd->userid) ) {
- (showmsg->showNotice(("Unknown account (account: %s, received pass: %s, ip: %s)\n"), sd->userid, sd->passwd, ip));
- return 0;
- }
-
- if( !login->check_password(sd->md5key, sd->passwdenc, sd->passwd, acc.pass) ) {
- (showmsg->showNotice(("Invalid password (account: '%s', pass: '%s', received pass: '%s', ip: %s)\n"), sd->userid, acc.pass, sd->passwd, ip));
- return 1;
- }
-
- if( acc.unban_time != 0 && acc.unban_time > time(
-# 1113 "../../../server-code/src/login/login.c" 3 4
- ((void *)0)
-# 1113 "../../../server-code/src/login/login.c"
- ) ) {
- char tmpstr[24];
- timestamp2string(tmpstr, sizeof(tmpstr), acc.unban_time, login->config->date_format);
- (showmsg->showNotice(("Connection refused (account: %s, pass: %s, banned until %s, ip: %s)\n"), sd->userid, sd->passwd, tmpstr, ip));
- return 6;
- }
-
- if( acc.state != 0 ) {
- (showmsg->showNotice(("Connection refused (account: %s, pass: %s, state: %u, ip: %s)\n"), sd->userid, sd->passwd, acc.state, ip));
- return acc.state - 1;
- }
-
- if (login->config->client_hash_check && !isServer) {
- struct client_hash_node *node =
-# 1126 "../../../server-code/src/login/login.c" 3 4
- ((void *)0)
-# 1126 "../../../server-code/src/login/login.c"
- ;
-
-# 1127 "../../../server-code/src/login/login.c" 3 4
- _Bool
-# 1127 "../../../server-code/src/login/login.c"
- match =
-# 1127 "../../../server-code/src/login/login.c" 3 4
- 0
-# 1127 "../../../server-code/src/login/login.c"
- ;
-
- for (node = login->config->client_hash_nodes; node; node = node->next) {
- if( acc.group_id < node->group_id )
- continue;
- if( *node->hash == '\0'
- || (sd->has_client_hash && memcmp(node->hash, sd->client_hash, 16) == 0 )
- ) {
- match =
-# 1135 "../../../server-code/src/login/login.c" 3 4
- 1
-# 1135 "../../../server-code/src/login/login.c"
- ;
- break;
- }
- }
-
- if( !match ) {
- char smd5[33];
- int i;
-
- if( !sd->has_client_hash ) {
- (showmsg->showNotice(("Client didn't send client hash (account: %s, pass: %s, ip: %s)\n"), sd->userid, sd->passwd, ip));
- return 5;
- }
-
- for( i = 0; i < 16; i++ )
- sprintf(&smd5[i * 2], "%02x", sd->client_hash[i]);
- smd5[32] = '\0';
-
- (showmsg->showNotice(("Invalid client hash (account: %s, pass: %s, sent md5: %s, ip: %s)\n"), sd->userid, sd->passwd, smd5, ip));
- return 5;
- }
- }
-
- (showmsg->showNotice(("Authentication accepted (account: %s, id: %d, ip: %s)\n"), sd->userid, acc.account_id, ip));
-
-
- sd->account_id = acc.account_id;
- sd->login_id1 = rnd() + 1;
- sd->login_id2 = rnd() + 1;
- (strlib->safestrncpy_((sd->lastlogin),(acc.lastlogin),(sizeof(sd->lastlogin))));
- sd->sex = acc.sex;
- sd->group_id = (uint8)acc.group_id;
- sd->expiration_time = acc.expiration_time;
-
-
- timestamp2string(acc.lastlogin, sizeof(acc.lastlogin), time(
-# 1170 "../../../server-code/src/login/login.c" 3 4
- ((void *)0)
-# 1170 "../../../server-code/src/login/login.c"
- ), "%Y-%m-%d %H:%M:%S");
- (strlib->safestrncpy_((acc.last_ip),(ip),(sizeof(acc.last_ip))));
- acc.unban_time = 0;
- acc.logincount++;
-
- accounts->save(accounts, &acc);
-
- if( sd->sex != 'S' && sd->account_id < 2000000 )
- (showmsg->showWarning(("Account %s has account id %d! Account IDs must be over %d to work properly!\n"), sd->userid, sd->account_id, 2000000));
-
- return -1;
-}
-
-void login_connection_problem(int fd, uint8 status)
-{
- WFIFOHEAD(fd,3);
- WFIFOW(fd,0) = 0x81;
- WFIFOB(fd,2) = status;
- WFIFOSET(fd,3);
-}
-
-void login_kick(struct login_session_data* sd)
-{
- uint8 buf[6];
- do { if (((void)(sd),
-# 1194 "../../../server-code/src/login/login.c" 3 4
-0
-# 1194 "../../../server-code/src/login/login.c"
-)) return; } while(0);
- WBUFW(buf,0) = 0x2734;
- WBUFL(buf,2) = sd->account_id;
- charif_sendallwos(-1, buf, 6);
-}
-
-void login_auth_ok(struct login_session_data* sd)
-{
- int fd = 0;
- uint32 ip;
- uint8 server_num, n;
- struct login_auth_node* node;
- int i;
-
- do { if (((void)(sd),
-# 1208 "../../../server-code/src/login/login.c" 3 4
-0
-# 1208 "../../../server-code/src/login/login.c"
-)) return; } while(0);
- fd = sd->fd;
- ip = sockt->session[fd]->client_addr;
- if( core->runflag != LOGINSERVER_ST_RUNNING )
- {
-
- login->connection_problem(fd, 1);
- return;
- }
-
- if (login->config->group_id_to_connect >= 0 && sd->group_id != login->config->group_id_to_connect) {
- (showmsg->showStatus(("Connection refused: the required group id for connection is %d (account: %s, group: %d).\n"), login->config->group_id_to_connect, sd->userid, sd->group_id));
- login->connection_problem(fd, 1);
- return;
- } else if (login->config->min_group_id_to_connect >= 0 && login->config->group_id_to_connect == -1 && sd->group_id < login->config->min_group_id_to_connect) {
- (showmsg->showStatus(("Connection refused: the minimum group id required for connection is %d (account: %s, group: %d).\n"), login->config->min_group_id_to_connect, sd->userid, sd->group_id));
- login->connection_problem(fd, 1);
- return;
- }
-
- server_num = 0;
- for( i = 0; i < ( (int)(sizeof(server)/sizeof((server)[0])) ); ++i )
- if (sockt->session_is_active(server[i].fd))
- server_num++;
-
- if( server_num == 0 )
- {
- (showmsg->showStatus(("Connection refused: there is no char-server online (account: %s).\n"), sd->userid));
- login->connection_problem(fd, 1);
- return;
- }
-
- {
- struct online_login_data* data = (struct online_login_data*)( DB->data2ptr((login->online_db)->get((login->online_db),DB->i2key(sd->account_id))) );
- if( data )
- {
- if( data->char_server > -1 )
- {
- (showmsg->showNotice(("User '%s' is already online - Rejected.\n"), sd->userid));
- login->kick(sd);
- if( data->waiting_disconnect == (-1) )
- data->waiting_disconnect = timer->add(timer->gettick()+30000, login->waiting_disconnect_timer, sd->account_id, 0);
-
- login->connection_problem(fd, 8);
- return;
- }
- else
- if( data->char_server == -1 )
- {
-
- ( (login->auth_db)->remove((login->auth_db),DB->i2key(sd->account_id),
-# 1258 "../../../server-code/src/login/login.c" 3 4
- ((void *)0)
-# 1258 "../../../server-code/src/login/login.c"
- ) );
- login->remove_online_user(sd->account_id);
- data =
-# 1260 "../../../server-code/src/login/login.c" 3 4
- ((void *)0)
-# 1260 "../../../server-code/src/login/login.c"
- ;
- }
- }
- }
-
- login_log(ip, sd->userid, 100, "login ok");
- (showmsg->showStatus(("Connection of the account '%s' accepted.\n"), sd->userid));
-
- WFIFOHEAD(fd,47+32*server_num);
- WFIFOW(fd,0) = 0x69;
- WFIFOW(fd,2) = 47+32*server_num;
- WFIFOL(fd,4) = sd->login_id1;
- WFIFOL(fd,8) = sd->account_id;
- WFIFOL(fd,12) = sd->login_id2;
- WFIFOL(fd,16) = 0;
-
- memset(WFIFOP(fd,20), 0, 24);
- WFIFOW(fd,44) = 0;
- WFIFOB(fd,46) = ( ((sd->sex) == 'F') ? SEX_FEMALE : ((sd->sex) == 'M') ? SEX_MALE : SEX_SERVER );
- for (i = 0, n = 0; i < ( (int)(sizeof(server)/sizeof((server)[0])) ); ++i) {
- uint32 subnet_char_ip;
-
- if (!sockt->session_is_valid(server[i].fd))
- continue;
-
- subnet_char_ip = login->lan_subnet_check(ip);
- WFIFOL(fd,47+n*32) = htonl((subnet_char_ip) ? subnet_char_ip : server[i].ip);
- WFIFOW(fd,47+n*32+4) = sockt->ntows(htons(server[i].port));
- memcpy(WFIFOP(fd,47+n*32+6), server[i].name, 20);
- WFIFOW(fd,47+n*32+26) = server[i].users;
-
- if( server[i].type == CST_PAYING && sd->expiration_time > time(
-# 1291 "../../../server-code/src/login/login.c" 3 4
- ((void *)0)
-# 1291 "../../../server-code/src/login/login.c"
- ) )
- WFIFOW(fd,47+n*32+28) = CST_NORMAL;
- else
- WFIFOW(fd,47+n*32+28) = server[i].type;
-
- WFIFOW(fd,47+n*32+30) = server[i].new_;
- n++;
- }
- WFIFOSET(fd,47+32*server_num);
-
-
- ((node) = (struct login_auth_node *) (iMalloc->calloc(((1)),(sizeof(struct login_auth_node)),"../../../server-code/src/login/login.c", 1302, __func__)));
- node->account_id = sd->account_id;
- node->login_id1 = sd->login_id1;
- node->login_id2 = sd->login_id2;
- node->sex = sd->sex;
- node->ip = ip;
- node->version = sd->version;
- node->clienttype = sd->clienttype;
- node->group_id = sd->group_id;
- node->expiration_time = sd->expiration_time;
- ( (login->auth_db)->put((login->auth_db),DB->i2key(sd->account_id),DB->ptr2data(node),
-# 1312 "../../../server-code/src/login/login.c" 3 4
-((void *)0)
-# 1312 "../../../server-code/src/login/login.c"
-) );
-
- {
- struct online_login_data* data;
-
-
- data = login->add_online_user(-1, sd->account_id);
-
-
- data->waiting_disconnect = timer->add(timer->gettick()+30000, login->waiting_disconnect_timer, sd->account_id, 0);
- }
-}
-
-void login_auth_failed(struct login_session_data* sd, int result)
-{
- int fd;
- uint32 ip;
- do { if (((void)(sd),
-# 1329 "../../../server-code/src/login/login.c" 3 4
-0
-# 1329 "../../../server-code/src/login/login.c"
-)) return; } while(0);
-
- fd = sd->fd;
- ip = sockt->session[fd]->client_addr;
- if (login->config->log_login) {
- const char* error;
- switch( result ) {
- case 0: error = "Unregistered ID."; break;
- case 1: error = "Incorrect Password."; break;
- case 2: error = "Account Expired."; break;
- case 3: error = "Rejected from server."; break;
- case 4: error = "Blocked by GM."; break;
- case 5: error = "Not latest game EXE."; break;
- case 6: error = "Banned."; break;
- case 7: error = "Server Over-population."; break;
- case 8: error = "Account limit from company"; break;
- case 9: error = "Ban by DBA"; break;
- case 10: error = "Email not confirmed"; break;
- case 11: error = "Ban by GM"; break;
- case 12: error = "Working in DB"; break;
- case 13: error = "Self Lock"; break;
- case 14: error = "Not Permitted Group"; break;
- case 15: error = "Not Permitted Group"; break;
- case 99: error = "Account gone."; break;
- case 100: error = "Login info remains."; break;
- case 101: error = "Hacking investigation."; break;
- case 102: error = "Bug investigation."; break;
- case 103: error = "Deleting char."; break;
- case 104: error = "Deleting spouse char."; break;
- default : error = "Unknown Error."; break;
- }
-
- login_log(ip, sd->userid, result, error);
- }
-
- if (result == 1 && login->config->dynamic_pass_failure_ban && !sockt->trusted_ip_check(ip))
- ipban_log(ip);
-
-
- WFIFOHEAD(fd,26);
- WFIFOW(fd,0) = 0x83e;
- WFIFOL(fd,2) = result;
- if( result != 6 )
- memset(WFIFOP(fd,6), '\0', 20);
- else {
- struct mmo_account acc;
- time_t unban_time = ( accounts->load_str(accounts, &acc, sd->userid) ) ? acc.unban_time : 0;
- timestamp2string(WFIFOP(fd,6), 20, unban_time, login->config->date_format);
- }
- WFIFOSET(fd,26);
-# 1392 "../../../server-code/src/login/login.c"
-}
-
-void login_login_error(int fd, uint8 status)
-{
- WFIFOHEAD(fd,23);
- WFIFOW(fd,0) = 0x6a;
- WFIFOB(fd,2) = status;
- WFIFOSET(fd,23);
-}
-
-void login_parse_ping(int fd, struct login_session_data* sd) __attribute__((nonnull (2)));
-void login_parse_ping(int fd, struct login_session_data* sd)
-{
- RFIFOSKIP(fd,26);
-}
-
-void login_parse_client_md5(int fd, struct login_session_data* sd) __attribute__((nonnull (2)));
-void login_parse_client_md5(int fd, struct login_session_data* sd)
-{
- sd->has_client_hash = 1;
- memcpy(sd->client_hash, RFIFOP(fd, 2), 16);
-
- RFIFOSKIP(fd,18);
-}
-
-
-# 1417 "../../../server-code/src/login/login.c" 3 4
-_Bool
-# 1417 "../../../server-code/src/login/login.c"
- login_parse_client_login(int fd, struct login_session_data* sd, const char *const ip) __attribute__((nonnull (2)));
-
-# 1418 "../../../server-code/src/login/login.c" 3 4
-_Bool
-# 1418 "../../../server-code/src/login/login.c"
- login_parse_client_login(int fd, struct login_session_data* sd, const char *const ip)
-{
- uint32 version;
- char username[(23 + 1)];
- char password[(32+1)];
- unsigned char passhash[16];
- uint8 clienttype;
- int result;
- uint16 command = RFIFOW(fd,0);
-
-# 1427 "../../../server-code/src/login/login.c" 3 4
-_Bool
-# 1427 "../../../server-code/src/login/login.c"
- israwpass = (command==0x0064 || command==0x0277 || command==0x02b0 || command == 0x0825);
-
-
- if(command == 0x0825)
- {
- const char *accname = RFIFOP(fd, 9);
- const char *token = RFIFOP(fd, 0x5C);
- size_t uAccLen = strlen(accname);
- size_t uTokenLen = RFIFOREST(fd) - 0x5C;
-
- version = RFIFOL(fd,4);
-
- if(uAccLen <= 0 || uTokenLen <= 0) {
- login->auth_failed(sd, 3);
- return
-# 1441 "../../../server-code/src/login/login.c" 3 4
- 1
-# 1441 "../../../server-code/src/login/login.c"
- ;
- }
-
- (strlib->safestrncpy_((username),(accname),((23 + 1))));
- (strlib->safestrncpy_((password),(token),((((uTokenLen+1) < ((32+1))) ? (uTokenLen+1) : ((32+1))))));
- clienttype = RFIFOB(fd, 8);
- }
- else
- {
- version = RFIFOL(fd,2);
- (strlib->safestrncpy_((username),(RFIFOP(fd,6)),((23 + 1))));
- if( israwpass )
- {
- (strlib->safestrncpy_((password),(RFIFOP(fd,30)),((23 + 1))));
- clienttype = RFIFOB(fd,54);
- }
- else
- {
- memcpy(passhash, RFIFOP(fd,30), 16);
- clienttype = RFIFOB(fd,46);
- }
- }
- RFIFOSKIP(fd,RFIFOREST(fd));
-
- sd->clienttype = clienttype;
- sd->version = version;
- (strlib->safestrncpy_((sd->userid),(username),((23 + 1))));
- if( israwpass )
- {
- (showmsg->showStatus(("Request for connection of %s (ip: %s).\n"), sd->userid, ip));
- (strlib->safestrncpy_((sd->passwd),(password),((32+1))));
- if (login->config->use_md5_passwds)
- MD5_String(sd->passwd, sd->passwd);
- sd->passwdenc = PWENC_NONE;
- }
- else
- {
- (showmsg->showStatus(("Request for connection (passwdenc mode) of %s (ip: %s).\n"), sd->userid, ip));
- (strlib->bin2hex_((sd->passwd),(passhash),(16)));
- sd->passwdenc = PWENC_BOTH;
- }
-
- if (sd->passwdenc != PWENC_NONE && login->config->use_md5_passwds) {
- login->auth_failed(sd, 3);
- return
-# 1485 "../../../server-code/src/login/login.c" 3 4
- 1
-# 1485 "../../../server-code/src/login/login.c"
- ;
- }
-
- result = login->mmo_auth(sd,
-# 1488 "../../../server-code/src/login/login.c" 3 4
- 0
-# 1488 "../../../server-code/src/login/login.c"
- );
-
- if( result == -1 )
- login->auth_ok(sd);
- else
- login->auth_failed(sd, result);
- return
-# 1494 "../../../server-code/src/login/login.c" 3 4
- 0
-# 1494 "../../../server-code/src/login/login.c"
- ;
-}
-
-void login_send_coding_key(int fd, struct login_session_data* sd) __attribute__((nonnull (2)));
-void login_send_coding_key(int fd, struct login_session_data* sd)
-{
- WFIFOHEAD(fd,4 + sd->md5keylen);
- WFIFOW(fd,0) = 0x01dc;
- WFIFOW(fd,2) = 4 + sd->md5keylen;
- memcpy(WFIFOP(fd,4), sd->md5key, sd->md5keylen);
- WFIFOSET(fd,WFIFOW(fd,2));
-}
-
-void login_parse_request_coding_key(int fd, struct login_session_data* sd) __attribute__((nonnull (2)));
-void login_parse_request_coding_key(int fd, struct login_session_data* sd)
-{
- memset(sd->md5key, '\0', sizeof(sd->md5key));
- sd->md5keylen = (uint16)(12 + rnd() % 4);
- MD5_Salt(sd->md5keylen, sd->md5key);
-
- login->send_coding_key(fd, sd);
-}
-
-void login_char_server_connection_status(int fd, struct login_session_data* sd, uint8 status) __attribute__((nonnull (2)));
-void login_char_server_connection_status(int fd, struct login_session_data* sd, uint8 status)
-{
- WFIFOHEAD(fd,3);
- WFIFOW(fd,0) = 0x2711;
- WFIFOB(fd,2) = status;
- WFIFOSET(fd,3);
-}
-
-void login_parse_request_connection(int fd, struct login_session_data* sd, const char *const ip, uint32 ipl) __attribute__((nonnull (2, 3)));
-void login_parse_request_connection(int fd, struct login_session_data* sd, const char *const ip, uint32 ipl)
-{
- char server_name[20];
- char message[256];
- uint32 server_ip;
- uint16 server_port;
- uint16 type;
- uint16 new_;
- int result;
-
- (strlib->safestrncpy_((sd->userid),(RFIFOP(fd,2)),((23 + 1))));
- (strlib->safestrncpy_((sd->passwd),(RFIFOP(fd,26)),((23 + 1))));
- if (login->config->use_md5_passwds)
- MD5_String(sd->passwd, sd->passwd);
- sd->passwdenc = PWENC_NONE;
- sd->version = login->config->client_version_to_connect;
- server_ip = ntohl(RFIFOL(fd,54));
- server_port = ntohs(RFIFOW(fd,58));
- (strlib->safestrncpy_((server_name),(RFIFOP(fd,60)),(20)));
- type = RFIFOW(fd,82);
- new_ = RFIFOW(fd,84);
- RFIFOSKIP(fd,86);
-
- (showmsg->showInfo(("Connection request of the char-server '%s' @ %u.%u.%u.%u:%u (account: '%s', pass: '%s', ip: '%s')\n"), server_name, CONVIP(server_ip), server_port, sd->userid, sd->passwd, ip));
- sprintf(message, "charserver - %s@%u.%u.%u.%u:%u", server_name, CONVIP(server_ip), server_port);
- login_log(sockt->session[fd]->client_addr, sd->userid, 100, message);
-
- result = login->mmo_auth(sd,
-# 1554 "../../../server-code/src/login/login.c" 3 4
- 1
-# 1554 "../../../server-code/src/login/login.c"
- );
- if (core->runflag == LOGINSERVER_ST_RUNNING &&
- result == -1 &&
- sd->sex == 'S' &&
- sd->account_id >= 0 &&
- sd->account_id < ( (int)(sizeof(server)/sizeof((server)[0])) ) &&
- !sockt->session_is_valid(server[sd->account_id].fd) &&
- sockt->allowed_ip_check(ipl))
- {
- (showmsg->showStatus(("Connection of the char-server '%s' accepted.\n"), server_name));
- (strlib->safestrncpy_((server[sd->account_id].name),(server_name),(sizeof(server[sd->account_id].name))));
- server[sd->account_id].fd = fd;
- server[sd->account_id].ip = server_ip;
- server[sd->account_id].port = server_port;
- server[sd->account_id].users = 0;
- server[sd->account_id].type = type;
- server[sd->account_id].new_ = new_;
-
- sockt->session[fd]->func_parse = login->parse_fromchar;
- sockt->session[fd]->flag.server = 1;
- sockt->realloc_fifo(fd, FIFOSIZE_SERVERLINK, FIFOSIZE_SERVERLINK);
-
-
- login->char_server_connection_status(fd, sd, 0);
- }
- else
- {
- (showmsg->showNotice(("Connection of the char-server '%s' REFUSED.\n"), server_name));
- login->char_server_connection_status(fd, sd, 3);
- }
-}
-
-
-
-
-int login_parse_login(int fd)
-{
- struct login_session_data* sd = (struct login_session_data*)sockt->session[fd]->session_data;
-
- char ip[16];
- uint32 ipl = sockt->session[fd]->client_addr;
- sockt->ip2str(ipl, ip);
-
- if( sockt->session[fd]->flag.eof )
- {
- (showmsg->showInfo(("Closed connection from '""\033[1;37m""%s""\033[0m""'.\n"), ip));
- sockt->close(fd);
- return 0;
- }
-
- if( sd ==
-# 1604 "../../../server-code/src/login/login.c" 3 4
- ((void *)0)
-# 1604 "../../../server-code/src/login/login.c"
- )
- {
-
- if (login->config->ipban && !sockt->trusted_ip_check(ipl) && ipban_check(ipl)) {
- (showmsg->showStatus(("Connection refused: IP isn't authorized (deny/allow, ip: %s).\n"), ip));
- login_log(ipl, "unknown", -3, "ip banned");
- login->login_error(fd, 3);
- sockt->eof(fd);
- return 0;
- }
-
-
- ((sockt->session[fd]->session_data) = (struct login_session_data *) (iMalloc->calloc(((1)),(sizeof(struct login_session_data)),"../../../server-code/src/login/login.c", 1616, __func__)));
- sd = (struct login_session_data*)sockt->session[fd]->session_data;
- sd->fd = fd;
- }
-
- while (RFIFOREST(fd) >= 2) {
- uint16 command = RFIFOW(fd,0);
-
- if (( (HPM->packets[hpParse_Login])._len_ ) > 0) {
- int result = HPM->parse_packets(fd,command,hpParse_Login);
- if (result == 1)
- continue;
- if (result == 2)
- return 0;
- }
-
- switch (command) {
-
- case 0x0200:
- if (RFIFOREST(fd) < 26)
- return 0;
- login->parse_ping(fd, sd);
- break;
-
-
- case 0x0204:
- if (RFIFOREST(fd) < 18)
- return 0;
-
- login->parse_client_md5(fd, sd);
- break;
-
-
- case 0x0064:
- case 0x0277:
- case 0x02b0:
-
- case 0x01dd:
- case 0x01fa:
- case 0x027c:
- case 0x0825:
- {
- size_t packet_len = RFIFOREST(fd);
-
- if( (command == 0x0064 && packet_len < 55)
- || (command == 0x0277 && packet_len < 84)
- || (command == 0x02b0 && packet_len < 85)
- || (command == 0x01dd && packet_len < 47)
- || (command == 0x01fa && packet_len < 48)
- || (command == 0x027c && packet_len < 60)
- || (command == 0x0825 && (packet_len < 4 || packet_len < RFIFOW(fd, 2))) )
- return 0;
- }
- {
- if (login->parse_client_login(fd, sd, ip))
- return 0;
- }
- break;
-
- case 0x01db:
- RFIFOSKIP(fd,2);
- {
- login->parse_request_coding_key(fd, sd);
- }
- break;
-
- case 0x2710:
- if (RFIFOREST(fd) < 86)
- return 0;
- {
- login->parse_request_connection(fd, sd, ip, ipl);
- }
- return 0;
-
- default:
- (showmsg->showNotice(("Abnormal end of connection (ip: %s): Unknown packet 0x%x\n"), ip, command));
- sockt->eof(fd);
- return 0;
- }
- }
-
- return 0;
-}
-
-
-void login_config_set_defaults(void)
-{
- login->config->login_ip = INADDR_ANY;
- login->config->login_port = 6900;
- login->config->ipban_cleanup_interval = 60;
- login->config->ip_sync_interval = 0;
- login->config->log_login =
-# 1707 "../../../server-code/src/login/login.c" 3 4
- 1
-# 1707 "../../../server-code/src/login/login.c"
- ;
- (strlib->safestrncpy_((login->config->date_format),("%Y-%m-%d %H:%M:%S"),(sizeof(login->config->date_format))));
- login->config->new_account_flag =
-# 1709 "../../../server-code/src/login/login.c" 3 4
- 1
-# 1709 "../../../server-code/src/login/login.c"
- ;
- login->config->new_acc_length_limit =
-# 1710 "../../../server-code/src/login/login.c" 3 4
- 1
-# 1710 "../../../server-code/src/login/login.c"
- ;
- login->config->use_md5_passwds =
-# 1711 "../../../server-code/src/login/login.c" 3 4
- 0
-# 1711 "../../../server-code/src/login/login.c"
- ;
- login->config->group_id_to_connect = -1;
- login->config->min_group_id_to_connect = -1;
- login->config->check_client_version =
-# 1714 "../../../server-code/src/login/login.c" 3 4
- 0
-# 1714 "../../../server-code/src/login/login.c"
- ;
- login->config->client_version_to_connect = 20;
- login->config->allowed_regs = 1;
- login->config->time_allowed = 10;
-
- login->config->ipban =
-# 1719 "../../../server-code/src/login/login.c" 3 4
- 1
-# 1719 "../../../server-code/src/login/login.c"
- ;
- login->config->dynamic_pass_failure_ban =
-# 1720 "../../../server-code/src/login/login.c" 3 4
- 1
-# 1720 "../../../server-code/src/login/login.c"
- ;
- login->config->dynamic_pass_failure_ban_interval = 5;
- login->config->dynamic_pass_failure_ban_limit = 7;
- login->config->dynamic_pass_failure_ban_duration = 5;
- login->config->use_dnsbl =
-# 1724 "../../../server-code/src/login/login.c" 3 4
- 0
-# 1724 "../../../server-code/src/login/login.c"
- ;
- (strlib->safestrncpy_((login->config->dnsbl_servs),(""),(sizeof(login->config->dnsbl_servs))));
-
- login->config->client_hash_check = 0;
- login->config->client_hash_nodes =
-# 1728 "../../../server-code/src/login/login.c" 3 4
- ((void *)0)
-# 1728 "../../../server-code/src/login/login.c"
- ;
-}
-
-
-
-
-int login_config_read(const char *cfgName)
-{
- char line[1024], w1[1024], w2[1024];
- FILE* fp;
- do { if (((void)(cfgName),
-# 1738 "../../../server-code/src/login/login.c" 3 4
-0
-# 1738 "../../../server-code/src/login/login.c"
-)) return(1); } while(0);
- fp = fopen(cfgName, "r");
- if (fp ==
-# 1740 "../../../server-code/src/login/login.c" 3 4
- ((void *)0)
-# 1740 "../../../server-code/src/login/login.c"
- ) {
- (showmsg->showError(("Configuration file (%s) not found.\n"), cfgName));
- return 1;
- }
- while(fgets(line, sizeof(line), fp)) {
- if (line[0] == '/' && line[1] == '/')
- continue;
-
- if (sscanf(line, "%1023[^:]: %1023[^\r\n]", w1, w2) < 2)
- continue;
-
- if(!strcasecmp(w1,"timestamp_format"))
- (strlib->safestrncpy_((showmsg->timestamp_format),(w2),(20)));
- else if(!strcasecmp(w1,"stdout_with_ansisequence"))
- showmsg->stdout_with_ansisequence = (strlib->config_switch_(w2)) ?
-# 1754 "../../../server-code/src/login/login.c" 3 4
- 1
-# 1754 "../../../server-code/src/login/login.c"
- :
-# 1754 "../../../server-code/src/login/login.c" 3 4
- 0
-# 1754 "../../../server-code/src/login/login.c"
- ;
- else if(!strcasecmp(w1,"console_silent")) {
- showmsg->silent = atoi(w2);
- if (showmsg->silent)
- (showmsg->showInfo(("Console Silent Setting: %d\n"), atoi(w2)));
- }
- else if( !strcasecmp(w1, "bind_ip") ) {
- login->config->login_ip = sockt->host2ip(w2);
- if (login->config->login_ip) {
- char ip_str[16];
- (showmsg->showStatus(("Login server binding IP address : %s -> %s\n"), w2, sockt->ip2str(login->config->login_ip, ip_str)));
- }
- }
- else if( !strcasecmp(w1, "login_port") ) {
- login->config->login_port = (uint16)atoi(w2);
- }
- else if(!strcasecmp(w1, "log_login"))
- login->config->log_login = (
-# 1771 "../../../server-code/src/login/login.c" 3 4
- _Bool
-# 1771 "../../../server-code/src/login/login.c"
- )(strlib->config_switch_(w2));
-
- else if(!strcasecmp(w1, "new_account"))
- login->config->new_account_flag = (
-# 1774 "../../../server-code/src/login/login.c" 3 4
- _Bool
-# 1774 "../../../server-code/src/login/login.c"
- )(strlib->config_switch_(w2));
- else if(!strcasecmp(w1, "new_acc_length_limit"))
- login->config->new_acc_length_limit = (
-# 1776 "../../../server-code/src/login/login.c" 3 4
- _Bool
-# 1776 "../../../server-code/src/login/login.c"
- )(strlib->config_switch_(w2));
- else if(!strcasecmp(w1, "start_limited_time"))
- login->config->start_limited_time = atoi(w2);
- else if(!strcasecmp(w1, "check_client_version"))
- login->config->check_client_version = (
-# 1780 "../../../server-code/src/login/login.c" 3 4
- _Bool
-# 1780 "../../../server-code/src/login/login.c"
- )(strlib->config_switch_(w2));
- else if(!strcasecmp(w1, "client_version_to_connect"))
- login->config->client_version_to_connect = (unsigned int)strtoul(w2,
-# 1782 "../../../server-code/src/login/login.c" 3 4
- ((void *)0)
-# 1782 "../../../server-code/src/login/login.c"
- , 10);
- else if(!strcasecmp(w1, "use_MD5_passwords"))
- login->config->use_md5_passwds = (
-# 1784 "../../../server-code/src/login/login.c" 3 4
- _Bool
-# 1784 "../../../server-code/src/login/login.c"
- )(strlib->config_switch_(w2));
- else if(!strcasecmp(w1, "group_id_to_connect"))
- login->config->group_id_to_connect = atoi(w2);
- else if(!strcasecmp(w1, "min_group_id_to_connect"))
- login->config->min_group_id_to_connect = atoi(w2);
- else if(!strcasecmp(w1, "date_format"))
- (strlib->safestrncpy_((login->config->date_format),(w2),(sizeof(login->config->date_format))));
- else if(!strcasecmp(w1, "allowed_regs"))
- login->config->allowed_regs = atoi(w2);
- else if(!strcasecmp(w1, "time_allowed"))
- login->config->time_allowed = atoi(w2);
- else if(!strcasecmp(w1, "use_dnsbl"))
- login->config->use_dnsbl = (
-# 1796 "../../../server-code/src/login/login.c" 3 4
- _Bool
-# 1796 "../../../server-code/src/login/login.c"
- )(strlib->config_switch_(w2));
- else if(!strcasecmp(w1, "dnsbl_servers"))
- (strlib->safestrncpy_((login->config->dnsbl_servs),(w2),(sizeof(login->config->dnsbl_servs))));
- else if(!strcasecmp(w1, "ipban_cleanup_interval"))
- login->config->ipban_cleanup_interval = (unsigned int)atoi(w2);
- else if(!strcasecmp(w1, "ip_sync_interval"))
- login->config->ip_sync_interval = (unsigned int)1000*60*atoi(w2);
- else if(!strcasecmp(w1, "client_hash_check"))
- login->config->client_hash_check = (strlib->config_switch_(w2));
- else if(!strcasecmp(w1, "client_hash")) {
- int group = 0;
- char md5[33];
- memset(md5, '\0', 33);
-
- if (sscanf(w2, "%d, %32s", &group, md5) == 2) {
- struct client_hash_node *nnode;
- ((nnode) = (struct client_hash_node *) (iMalloc->calloc(((1)),(sizeof(struct client_hash_node)),"../../../server-code/src/login/login.c", 1812, __func__)));
-
- if (strcasecmp(md5, "disabled") == 0) {
- nnode->hash[0] = '\0';
- } else {
- int i;
- for (i = 0; i < 32; i += 2) {
- char buf[3];
- unsigned int byte;
-
- memcpy(buf, &md5[i], 2);
- buf[2] = 0;
-
- sscanf(buf, "%x", &byte);
- nnode->hash[i / 2] = (uint8)(byte & 0xFF);
- }
- }
-
- nnode->group_id = group;
- nnode->next = login->config->client_hash_nodes;
-
- login->config->client_hash_nodes = nnode;
- }
- }
- else if(!strcasecmp(w1, "import"))
- login_config_read(w2);
- else
- {
- AccountDB* db = account_engine[0].db;
- if (db)
- db->set_property(db, w1, w2);
- ipban_config_read(w1, w2);
- loginlog_config_read(w1, w2);
- HPM->parseConf(w1, w2, HPCT_LOGIN);
- }
- }
- fclose(fp);
- (showmsg->showInfo(("Finished reading %s.\n"), cfgName));
- return 0;
-}
-
-
-
-
-int do_final(void) {
- int i;
- struct client_hash_node *hn = login->config->client_hash_nodes;
-
- (showmsg->showStatus(("Terminating...\n")));
-
- HPM->event(HPET_FINAL);
-
- while (hn) {
- struct client_hash_node *tmp = hn;
- hn = hn->next;
- (iMalloc->free((tmp),"../../../server-code/src/login/login.c", 1867, __func__));
- }
-
- login_log(0, "login server", 100, "login server shutdown");
-
- if (login->config->log_login)
- loginlog_final();
-
- ipban_final();
-
- if( account_engine[0].db )
- {
- account_engine[0].db->destroy(account_engine[0].db);
- account_engine[0].db =
-# 1880 "../../../server-code/src/login/login.c" 3 4
- ((void *)0)
-# 1880 "../../../server-code/src/login/login.c"
- ;
- }
- accounts =
-# 1882 "../../../server-code/src/login/login.c" 3 4
- ((void *)0)
-# 1882 "../../../server-code/src/login/login.c"
- ;
- login->online_db->destroy(login->online_db,
-# 1883 "../../../server-code/src/login/login.c" 3 4
- ((void *)0)
-# 1883 "../../../server-code/src/login/login.c"
- );
- login->auth_db->destroy(login->auth_db,
-# 1884 "../../../server-code/src/login/login.c" 3 4
- ((void *)0)
-# 1884 "../../../server-code/src/login/login.c"
- );
-
- for( i = 0; i < ( (int)(sizeof(server)/sizeof((server)[0])) ); ++i )
- chrif_server_destroy(i);
-
- if( login->fd != -1 )
- {
- sockt->close(login->fd);
- login->fd = -1;
- }
-
- HPM_login_do_final();
-
- (iMalloc->free((login->LOGIN_CONF_NAME),"../../../server-code/src/login/login.c", 1897, __func__));
- (iMalloc->free((login->NET_CONF_NAME),"../../../server-code/src/login/login.c", 1898, __func__));
-
- HPM->event(HPET_POST_FINAL);
-
- (showmsg->showStatus(("Finished.\n")));
- return
-# 1903 "../../../server-code/src/login/login.c" 3 4
- 0
-# 1903 "../../../server-code/src/login/login.c"
- ;
-}
-
-
-
-
-
-void do_abort(void)
-{
-}
-
-void set_server_type(void) {
- (core->server_type) = SERVER_TYPE_LOGIN;
-}
-
-
-
-void do_shutdown_login(void)
-{
- if( core->runflag != LOGINSERVER_ST_SHUTDOWN )
- {
- int id;
- core->runflag = LOGINSERVER_ST_SHUTDOWN;
- (showmsg->showStatus(("Shutting down...\n")));
-
- for( id = 0; id < ( (int)(sizeof(server)/sizeof((server)[0])) ); ++id )
- chrif_server_reset(id);
- sockt->flush_fifos();
- core->runflag = CORE_ST_STOP;
- }
-}
-
-
-
-
-
-
-
-static
-# 1941 "../../../server-code/src/login/login.c" 3 4
- _Bool
-# 1941 "../../../server-code/src/login/login.c"
- cmdline_arg_loginconfig (const char *name, const char *params)
-{
- (iMalloc->free((login->LOGIN_CONF_NAME),"../../../server-code/src/login/login.c", 1943, __func__));
- login->LOGIN_CONF_NAME = (iMalloc->astrdup((params),"../../../server-code/src/login/login.c", 1944, __func__));
- return
-# 1945 "../../../server-code/src/login/login.c" 3 4
- 1
-# 1945 "../../../server-code/src/login/login.c"
- ;
-}
-
-
-
-
-
-
-static
-# 1953 "../../../server-code/src/login/login.c" 3 4
- _Bool
-# 1953 "../../../server-code/src/login/login.c"
- cmdline_arg_netconfig (const char *name, const char *params)
-{
- (iMalloc->free((login->NET_CONF_NAME),"../../../server-code/src/login/login.c", 1955, __func__));
- login->NET_CONF_NAME = (iMalloc->astrdup((params),"../../../server-code/src/login/login.c", 1956, __func__));
- return
-# 1957 "../../../server-code/src/login/login.c" 3 4
- 1
-# 1957 "../../../server-code/src/login/login.c"
- ;
-}
-
-
-
-void cmdline_args_init_local(void)
-{
- cmdline->arg_add(((unsigned int)-1), "--" "login-config", '\0', cmdline_arg_loginconfig, "Alternative login-server configuration.", CMDLINE_OPT_PARAM);
- cmdline->arg_add(((unsigned int)-1), "--" "net-config", '\0', cmdline_arg_netconfig, "Alternative subnet configuration.", CMDLINE_OPT_PARAM);
-}
-
-
-
-
-int do_init(int argc, char** argv)
-{
- int i;
-
-
- account_engine[0].db = account_engine[0].constructor();
- accounts = account_engine[0].db;
- if( accounts ==
-# 1978 "../../../server-code/src/login/login.c" 3 4
- ((void *)0)
-# 1978 "../../../server-code/src/login/login.c"
- ) {
- (showmsg->showFatalError(("do_init: account engine 'sql' not found.\n")));
- exit(
-# 1980 "../../../server-code/src/login/login.c" 3 4
- 1
-# 1980 "../../../server-code/src/login/login.c"
- );
- }
-
- login_defaults();
-
-
- login->config_set_defaults();
-
- login->LOGIN_CONF_NAME = (iMalloc->astrdup(("conf/login-server.conf"),"../../../server-code/src/login/login.c", 1988, __func__));
- login->NET_CONF_NAME = (iMalloc->astrdup(("conf/network.conf"),"../../../server-code/src/login/login.c", 1989, __func__));
-
- HPM_login_do_init();
- cmdline->exec(argc, argv, CMDLINE_OPT_PREINIT);
- HPM->config_read();
- HPM->event(HPET_PRE_INIT);
-
- cmdline->exec(argc, argv, CMDLINE_OPT_NORMAL);
- login_config_read(login->LOGIN_CONF_NAME);
- sockt->net_config_read(login->NET_CONF_NAME);
-
- for( i = 0; i < ( (int)(sizeof(server)/sizeof((server)[0])) ); ++i )
- chrif_server_init(i);
-
-
- if (login->config->log_login)
- loginlog_init();
-
-
- ipban_init();
-
-
- login->online_db = DB->alloc("../../../server-code/src/login/login.c",__func__,2011,DB_INT,(DB_OPT_RELEASE_DATA),sizeof(int));
- timer->add_func_list(login->waiting_disconnect_timer, "login->waiting_disconnect_timer");
-
-
- login->auth_db = DB->alloc("../../../server-code/src/login/login.c",__func__,2015,DB_INT,(DB_OPT_RELEASE_DATA),sizeof(int));
-
-
- sockt->set_defaultparse(login->parse_login);
-
-
- timer->add_func_list(login->online_data_cleanup, "login->online_data_cleanup");
- timer->add_interval(timer->gettick() + 600*1000, login->online_data_cleanup, 0, 0, 600*1000);
-
-
- if (login->config->ip_sync_interval) {
- timer->add_func_list(login->sync_ip_addresses, "login->sync_ip_addresses");
- timer->add_interval(timer->gettick() + login->config->ip_sync_interval, login->sync_ip_addresses, 0, 0, login->config->ip_sync_interval);
- }
-
-
- if(!accounts->init(accounts)) {
- (showmsg->showFatalError(("do_init: Failed to initialize account engine 'sql'.\n")));
- exit(
-# 2033 "../../../server-code/src/login/login.c" 3 4
- 1
-# 2033 "../../../server-code/src/login/login.c"
- );
- }
-
- HPM->event(HPET_INIT);
-
-
- if ((login->fd = sockt->make_listen_bind(login->config->login_ip,login->config->login_port)) == -1) {
- (showmsg->showFatalError(("Failed to bind to port '""\033[1;37m""%d""\033[0m""'\n"),login->config->login_port));
- exit(
-# 2041 "../../../server-code/src/login/login.c" 3 4
- 1
-# 2041 "../../../server-code/src/login/login.c"
- );
- }
-
- if( core->runflag != CORE_ST_STOP ) {
- core->shutdown_callback = do_shutdown_login;
- core->runflag = LOGINSERVER_ST_RUNNING;
- }
-
-
- console->display_gplnotice();
-
-
- (showmsg->showStatus(("The login-server is ""\033[1;32m""ready""\033[0m"" (Server is listening on the port %u).\n\n"), login->config->login_port));
- login_log(0, "login server", 100, "login server started");
-
- HPM->event(HPET_READY);
-
- return 0;
-}
-
-void login_defaults(void) {
- login = &login_s;
-
- login->config = &login_config_;
- login->accounts = accounts;
-
- login->mmo_auth = login_mmo_auth;
- login->mmo_auth_new = login_mmo_auth_new;
- login->waiting_disconnect_timer = login_waiting_disconnect_timer;
- login->create_online_user = login_create_online_user;
- login->add_online_user = login_add_online_user;
- login->remove_online_user = login_remove_online_user;
- login->online_db_setoffline = login_online_db_setoffline;
- login->online_data_cleanup_sub = login_online_data_cleanup_sub;
- login->online_data_cleanup = login_online_data_cleanup;
- login->sync_ip_addresses = login_sync_ip_addresses;
- login->check_encrypted = login_check_encrypted;
- login->check_password = login_check_password;
- login->lan_subnet_check = login_lan_subnet_check;
-
- login->fromchar_auth_ack = login_fromchar_auth_ack;
- login->fromchar_accinfo = login_fromchar_accinfo;
- login->fromchar_account = login_fromchar_account;
- login->fromchar_account_update_other = login_fromchar_account_update_other;
- login->fromchar_ban = login_fromchar_ban;
- login->fromchar_change_sex_other = login_fromchar_change_sex_other;
- login->fromchar_pong = login_fromchar_pong;
- login->fromchar_parse_auth = login_fromchar_parse_auth;
- login->fromchar_parse_update_users = login_fromchar_parse_update_users;
- login->fromchar_parse_request_change_email = login_fromchar_parse_request_change_email;
- login->fromchar_parse_account_data = login_fromchar_parse_account_data;
- login->fromchar_parse_ping = login_fromchar_parse_ping;
- login->fromchar_parse_change_email = login_fromchar_parse_change_email;
- login->fromchar_parse_account_update = login_fromchar_parse_account_update;
- login->fromchar_parse_ban = login_fromchar_parse_ban;
- login->fromchar_parse_change_sex = login_fromchar_parse_change_sex;
- login->fromchar_parse_account_reg2 = login_fromchar_parse_account_reg2;
- login->fromchar_parse_unban = login_fromchar_parse_unban;
- login->fromchar_parse_account_online = login_fromchar_parse_account_online;
- login->fromchar_parse_account_offline = login_fromchar_parse_account_offline;
- login->fromchar_parse_online_accounts = login_fromchar_parse_online_accounts;
- login->fromchar_parse_request_account_reg2 = login_fromchar_parse_request_account_reg2;
- login->fromchar_parse_update_wan_ip = login_fromchar_parse_update_wan_ip;
- login->fromchar_parse_all_offline = login_fromchar_parse_all_offline;
- login->fromchar_parse_change_pincode = login_fromchar_parse_change_pincode;
- login->fromchar_parse_wrong_pincode = login_fromchar_parse_wrong_pincode;
- login->fromchar_parse_accinfo = login_fromchar_parse_accinfo;
-
- login->parse_fromchar = login_parse_fromchar;
- login->parse_login = login_parse_login;
- login->parse_ping = login_parse_ping;
- login->parse_client_md5 = login_parse_client_md5;
- login->parse_client_login = login_parse_client_login;
- login->parse_request_coding_key = login_parse_request_coding_key;
- login->parse_request_connection = login_parse_request_connection;
- login->auth_ok = login_auth_ok;
- login->auth_failed = login_auth_failed;
- login->char_server_connection_status = login_char_server_connection_status;
- login->connection_problem = login_connection_problem;
- login->kick = login_kick;
- login->login_error = login_login_error;
- login->send_coding_key = login_send_coding_key;
-
- login->config_set_defaults = login_config_set_defaults;
- login->config_read = login_config_read;
- login->LOGIN_CONF_NAME =
-# 2126 "../../../server-code/src/login/login.c" 3 4
- ((void *)0)
-# 2126 "../../../server-code/src/login/login.c"
- ;
- login->NET_CONF_NAME =
-# 2127 "../../../server-code/src/login/login.c" 3 4
- ((void *)0)
-# 2127 "../../../server-code/src/login/login.c"
- ;
-}