* Readded Chemical Protection
* Removed some old eA code that was causing Frost Nova to do an extra hit * Corrected Vulcan Arrow's hits in skill_db * Readded zlib and zconf .h files to under /lib * Fixed some compile errors in Windows * Changed remove_control_characters back to supporting korean chars * Moved some other code around git-svn-id: https://svn.code.sf.net/p/rathena/svn/branches/stable@1125 54d463be-8e91-2dee-dedb-b68131a5f0ec
This commit is contained in:
parent
3a2e00b268
commit
e9a7ccf3f2
@ -1,6 +1,18 @@
|
||||
Date Added
|
||||
|
||||
02/17
|
||||
* Readded Chemical Protection -- i forgot to check for it when changing some
|
||||
jA stuff earlier, sorry ^^; [celest]
|
||||
* Removed some old eA code that was causing Frost Nova to do an extra hit
|
||||
[celest]
|
||||
* Corrected Vulcan Arrow's hits in skill_db -- the bug appeared when the
|
||||
correct numbers hardcoded were removed [celest]
|
||||
* Readded zlib and zconf .h files to under /lib for compiling in Windows,
|
||||
thanks to Ser [celest]
|
||||
* Fixed some compile errors in Windows, thanks to Ser [celest]
|
||||
* Changed remove_control_characters back to supporting korean chars [celest]
|
||||
* Moved some other code around [celest]
|
||||
|
||||
* Added Shinomori's changes to Dissonance -- don't increment the timer again
|
||||
if the target has died [celest]
|
||||
* Changed some nullpo checks back to normal null checks -- in some situations
|
||||
|
@ -451,7 +451,7 @@
|
||||
//391,0,0,4,0,1,1,1,yes,0,0,0,magic,0 //ST_STEALBACKPACK#スティ?ルバックパック#
|
||||
392,0,0,4,0,1,1,1,yes,0,0,0,magic,0 //CR_ALCHEMY#アルケ??#
|
||||
393,0,0,4,0,1,1,1,yes,0,0,0,magic,0 //CR_SYNTHESISPOTION#??ションシンセシス#
|
||||
394,8,8,1,0,0,10,2,no,0,0,0,weapon,0 //CG_ARROWVULCAN#アロ?バルカン#
|
||||
394,8,8,1,0,0,10,9,no,0,0,0,weapon,0 //CG_ARROWVULCAN#アロ?バルカン#
|
||||
395,0,0,4,0,1,1,1,yes,0,0,0,magic,0 //CG_MOONLIT#月明りの泉に落ちる花びら#
|
||||
396,0,6,16,0,1,1,1,yes,0,0,0,magic,1 //CG_MARIONETTE#?リオネットコントロ?ル#
|
||||
397,4,8,1,0,0,5,1,no,0,0,0,weapon,0 //LK_SPIRALPIERCE#スパイラルピア?ス#
|
||||
|
@ -17,6 +17,7 @@
|
||||
#include <netdb.h>
|
||||
#include <stdarg.h>
|
||||
|
||||
#include "../common/strlib.h"
|
||||
#include "core.h"
|
||||
#include "socket.h"
|
||||
#include "timer.h"
|
||||
@ -166,23 +167,6 @@ int char_log(char *fmt, ...) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
//-----------------------------------------------------
|
||||
// Function to suppress control characters in a string.
|
||||
//-----------------------------------------------------
|
||||
int remove_control_chars(char *str) {
|
||||
int i;
|
||||
int change = 0;
|
||||
|
||||
for(i = 0; str[i]; i++) {
|
||||
if (str[i] < 32) {
|
||||
str[i] = '_';
|
||||
change = 1;
|
||||
}
|
||||
}
|
||||
|
||||
return change;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
// Determine if an account (id) is a GM account
|
||||
// and returns its level (or 0 if it isn't a GM account or if not found)
|
||||
|
@ -18,7 +18,6 @@
|
||||
#include <netdb.h>
|
||||
#endif
|
||||
|
||||
#include "../common/utils.h"
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <netinet/in.h>
|
||||
@ -34,6 +33,7 @@
|
||||
#include <stdarg.h>
|
||||
|
||||
#include "char.h"
|
||||
#include "../common/utils.h"
|
||||
#include "../common/strlib.h"
|
||||
#include "itemdb.h"
|
||||
#include "inter.h"
|
||||
@ -232,23 +232,6 @@ void set_char_offline(int char_id, int account_id) {
|
||||
WFIFOSET(login_fd,6);
|
||||
}
|
||||
|
||||
//-----------------------------------------------------
|
||||
// Function to suppress control characters in a string.
|
||||
//-----------------------------------------------------
|
||||
int remove_control_chars(char *str) {
|
||||
int i;
|
||||
int change = 0;
|
||||
|
||||
for(i = 0; i < strlen(str); i++) {
|
||||
if (str[i] < 32) {
|
||||
str[i] = '_';
|
||||
change = 1;
|
||||
}
|
||||
}
|
||||
|
||||
return change;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
// Determine if an account (id) is a GM account
|
||||
// and returns its level (or 0 if it isn't a GM account or if not found)
|
||||
|
@ -33,7 +33,7 @@
|
||||
|
||||
#ifdef _WIN32
|
||||
#include <windows.h>
|
||||
#include "zlib_win32.h"
|
||||
#include "../lib/zlib_win32.h"
|
||||
HINSTANCE zlib_dll;
|
||||
#define zlib_inflateInit(strm) zlib_inflateInit_((strm),ZLIB_VERSION, sizeof(z_stream))
|
||||
#define zlib_deflateInit(strm, level) zlib_deflateInit_((strm),(level),ZLIB_VERSION,sizeof(z_stream))
|
||||
|
@ -10,6 +10,7 @@
|
||||
#include <windows.h>
|
||||
#include <winsock2.h>
|
||||
#include <io.h>
|
||||
typedef int socklen_t;
|
||||
#else
|
||||
#include <sys/socket.h>
|
||||
#include <netinet/in.h>
|
||||
|
@ -78,3 +78,21 @@ int jmemescapecpy (char* pt,char* spt, int size) {
|
||||
// copy size is 0 ~ (j-1)
|
||||
return j;
|
||||
}
|
||||
|
||||
//-----------------------------------------------------
|
||||
// Function to suppress control characters in a string.
|
||||
//-----------------------------------------------------
|
||||
//int remove_control_chars(char *str) {
|
||||
int remove_control_chars(unsigned char *str) {
|
||||
int i;
|
||||
int change = 0;
|
||||
|
||||
for(i = 0; str[i]; i++) {
|
||||
if (str[i] < 32) {
|
||||
str[i] = '_';
|
||||
change = 1;
|
||||
}
|
||||
}
|
||||
|
||||
return change;
|
||||
}
|
||||
|
@ -7,4 +7,7 @@
|
||||
char* jstrescape (char* pt);
|
||||
char* jstrescapecpy (char* pt,char* spt);
|
||||
int jmemescapecpy (char* pt,char* spt, int size);
|
||||
|
||||
// custom functions
|
||||
int remove_control_chars(unsigned char *);
|
||||
#endif
|
||||
|
@ -36,6 +36,7 @@ void Gettimeofday(struct timeval *timenow)
|
||||
#include <stdarg.h> // valist
|
||||
#include <ctype.h> // tolower
|
||||
|
||||
#include "../common/strlib.h"
|
||||
#include "../common/core.h"
|
||||
#include "../common/socket.h"
|
||||
#include "ladmin.h"
|
||||
@ -291,23 +292,6 @@ int ladmin_log(char *fmt, ...) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
//-----------------------------------------------------
|
||||
// Function to suppress control characters in a string.
|
||||
//-----------------------------------------------------
|
||||
int remove_control_chars(char *str) {
|
||||
int i;
|
||||
int change = 0;
|
||||
|
||||
for(i = 0; str[i]; i++) {
|
||||
if (str[i] < 32) {
|
||||
str[i] = '_';
|
||||
change = 1;
|
||||
}
|
||||
}
|
||||
|
||||
return change;
|
||||
}
|
||||
|
||||
//---------------------------------------------
|
||||
// Function to return ordonal text of a number.
|
||||
//---------------------------------------------
|
||||
|
279
src/lib/zconf_win32.h
Normal file
279
src/lib/zconf_win32.h
Normal file
@ -0,0 +1,279 @@
|
||||
/* zconf.h -- configuration of the zlib compression library
|
||||
* Copyright (C) 1995-1998 Jean-loup Gailly.
|
||||
* For conditions of distribution and use, see copyright notice in zlib.h
|
||||
*/
|
||||
|
||||
/* @(#) $Id$ */
|
||||
|
||||
#ifndef _ZCONF_H
|
||||
#define _ZCONF_H
|
||||
|
||||
/*
|
||||
* If you *really* need a unique prefix for all types and library functions,
|
||||
* compile with -DZ_PREFIX. The "standard" zlib should be compiled without it.
|
||||
*/
|
||||
#ifdef Z_PREFIX
|
||||
# define deflateInit_ z_deflateInit_
|
||||
# define deflate z_deflate
|
||||
# define deflateEnd z_deflateEnd
|
||||
# define inflateInit_ z_inflateInit_
|
||||
# define inflate z_inflate
|
||||
# define inflateEnd z_inflateEnd
|
||||
# define deflateInit2_ z_deflateInit2_
|
||||
# define deflateSetDictionary z_deflateSetDictionary
|
||||
# define deflateCopy z_deflateCopy
|
||||
# define deflateReset z_deflateReset
|
||||
# define deflateParams z_deflateParams
|
||||
# define inflateInit2_ z_inflateInit2_
|
||||
# define inflateSetDictionary z_inflateSetDictionary
|
||||
# define inflateSync z_inflateSync
|
||||
# define inflateSyncPoint z_inflateSyncPoint
|
||||
# define inflateReset z_inflateReset
|
||||
# define compress z_compress
|
||||
# define compress2 z_compress2
|
||||
# define uncompress z_uncompress
|
||||
# define adler32 z_adler32
|
||||
# define crc32 z_crc32
|
||||
# define get_crc_table z_get_crc_table
|
||||
|
||||
# define Byte z_Byte
|
||||
# define uInt z_uInt
|
||||
# define uLong z_uLong
|
||||
# define Bytef z_Bytef
|
||||
# define charf z_charf
|
||||
# define intf z_intf
|
||||
# define uIntf z_uIntf
|
||||
# define uLongf z_uLongf
|
||||
# define voidpf z_voidpf
|
||||
# define voidp z_voidp
|
||||
#endif
|
||||
|
||||
#if (defined(_WIN32) || defined(__WIN32__)) && !defined(WIN32)
|
||||
# define WIN32
|
||||
#endif
|
||||
#if defined(__GNUC__) || defined(WIN32) || defined(__386__) || defined(i386)
|
||||
# ifndef __32BIT__
|
||||
# define __32BIT__
|
||||
# endif
|
||||
#endif
|
||||
#if defined(__MSDOS__) && !defined(MSDOS)
|
||||
# define MSDOS
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Compile with -DMAXSEG_64K if the alloc function cannot allocate more
|
||||
* than 64k bytes at a time (needed on systems with 16-bit int).
|
||||
*/
|
||||
#if defined(MSDOS) && !defined(__32BIT__)
|
||||
# define MAXSEG_64K
|
||||
#endif
|
||||
#ifdef MSDOS
|
||||
# define UNALIGNED_OK
|
||||
#endif
|
||||
|
||||
#if (defined(MSDOS) || defined(_WINDOWS) || defined(WIN32)) && !defined(STDC)
|
||||
# define STDC
|
||||
#endif
|
||||
#if defined(__STDC__) || defined(__cplusplus) || defined(__OS2__)
|
||||
# ifndef STDC
|
||||
# define STDC
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#ifndef STDC
|
||||
# ifndef const /* cannot use !defined(STDC) && !defined(const) on Mac */
|
||||
# define const
|
||||
# endif
|
||||
#endif
|
||||
|
||||
/* Some Mac compilers merge all .h files incorrectly: */
|
||||
#if defined(__MWERKS__) || defined(applec) ||defined(THINK_C) ||defined(__SC__)
|
||||
# define NO_DUMMY_DECL
|
||||
#endif
|
||||
|
||||
/* Old Borland C incorrectly complains about missing returns: */
|
||||
#if defined(__BORLANDC__) && (__BORLANDC__ < 0x500)
|
||||
# define NEED_DUMMY_RETURN
|
||||
#endif
|
||||
|
||||
|
||||
/* Maximum value for memLevel in deflateInit2 */
|
||||
#ifndef MAX_MEM_LEVEL
|
||||
# ifdef MAXSEG_64K
|
||||
# define MAX_MEM_LEVEL 8
|
||||
# else
|
||||
# define MAX_MEM_LEVEL 9
|
||||
# endif
|
||||
#endif
|
||||
|
||||
/* Maximum value for windowBits in deflateInit2 and inflateInit2.
|
||||
* WARNING: reducing MAX_WBITS makes minigzip unable to extract .gz files
|
||||
* created by gzip. (Files created by minigzip can still be extracted by
|
||||
* gzip.)
|
||||
*/
|
||||
#ifndef MAX_WBITS
|
||||
# define MAX_WBITS 15 /* 32K LZ77 window */
|
||||
#endif
|
||||
|
||||
/* The memory requirements for deflate are (in bytes):
|
||||
(1 << (windowBits+2)) + (1 << (memLevel+9))
|
||||
that is: 128K for windowBits=15 + 128K for memLevel = 8 (default values)
|
||||
plus a few kilobytes for small objects. For example, if you want to reduce
|
||||
the default memory requirements from 256K to 128K, compile with
|
||||
make CFLAGS="-O -DMAX_WBITS=14 -DMAX_MEM_LEVEL=7"
|
||||
Of course this will generally degrade compression (there's no free lunch).
|
||||
|
||||
The memory requirements for inflate are (in bytes) 1 << windowBits
|
||||
that is, 32K for windowBits=15 (default value) plus a few kilobytes
|
||||
for small objects.
|
||||
*/
|
||||
|
||||
/* Type declarations */
|
||||
|
||||
#ifndef OF /* function prototypes */
|
||||
# ifdef STDC
|
||||
# define OF(args) args
|
||||
# else
|
||||
# define OF(args) ()
|
||||
# endif
|
||||
#endif
|
||||
|
||||
/* The following definitions for FAR are needed only for MSDOS mixed
|
||||
* model programming (small or medium model with some far allocations).
|
||||
* This was tested only with MSC; for other MSDOS compilers you may have
|
||||
* to define NO_MEMCPY in zutil.h. If you don't need the mixed model,
|
||||
* just define FAR to be empty.
|
||||
*/
|
||||
#if (defined(M_I86SM) || defined(M_I86MM)) && !defined(__32BIT__)
|
||||
/* MSC small or medium model */
|
||||
# define SMALL_MEDIUM
|
||||
# ifdef _MSC_VER
|
||||
# define FAR _far
|
||||
# else
|
||||
# define FAR far
|
||||
# endif
|
||||
#endif
|
||||
#if defined(__BORLANDC__) && (defined(__SMALL__) || defined(__MEDIUM__))
|
||||
# ifndef __32BIT__
|
||||
# define SMALL_MEDIUM
|
||||
# define FAR _far
|
||||
# endif
|
||||
#endif
|
||||
|
||||
/* Compile with -DZLIB_DLL for Windows DLL support */
|
||||
#if defined(ZLIB_DLL)
|
||||
# if defined(_WINDOWS) || defined(WINDOWS)
|
||||
# ifdef FAR
|
||||
# undef FAR
|
||||
# endif
|
||||
# include <windows.h>
|
||||
# define ZEXPORT WINAPI
|
||||
# ifdef WIN32
|
||||
# define ZEXPORTVA WINAPIV
|
||||
# else
|
||||
# define ZEXPORTVA FAR _cdecl _export
|
||||
# endif
|
||||
# endif
|
||||
# if defined (__BORLANDC__)
|
||||
# if (__BORLANDC__ >= 0x0500) && defined (WIN32)
|
||||
# include <windows.h>
|
||||
# define ZEXPORT __declspec(dllexport) WINAPI
|
||||
# define ZEXPORTRVA __declspec(dllexport) WINAPIV
|
||||
# else
|
||||
# if defined (_Windows) && defined (__DLL__)
|
||||
# define ZEXPORT _export
|
||||
# define ZEXPORTVA _export
|
||||
# endif
|
||||
# endif
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#if defined (__BEOS__)
|
||||
# if defined (ZLIB_DLL)
|
||||
# define ZEXTERN extern __declspec(dllexport)
|
||||
# else
|
||||
# define ZEXTERN extern __declspec(dllimport)
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#ifndef ZEXPORT
|
||||
# define ZEXPORT
|
||||
#endif
|
||||
#ifndef ZEXPORTVA
|
||||
# define ZEXPORTVA
|
||||
#endif
|
||||
#ifndef ZEXTERN
|
||||
# define ZEXTERN extern
|
||||
#endif
|
||||
|
||||
#ifndef FAR
|
||||
# define FAR
|
||||
#endif
|
||||
|
||||
#if !defined(MACOS) && !defined(TARGET_OS_MAC)
|
||||
typedef unsigned char Byte; /* 8 bits */
|
||||
#endif
|
||||
typedef unsigned int uInt; /* 16 bits or more */
|
||||
typedef unsigned long uLong; /* 32 bits or more */
|
||||
|
||||
#ifdef SMALL_MEDIUM
|
||||
/* Borland C/C++ and some old MSC versions ignore FAR inside typedef */
|
||||
# define Bytef Byte FAR
|
||||
#else
|
||||
typedef Byte FAR Bytef;
|
||||
#endif
|
||||
typedef char FAR charf;
|
||||
typedef int FAR intf;
|
||||
typedef uInt FAR uIntf;
|
||||
typedef uLong FAR uLongf;
|
||||
|
||||
#ifdef STDC
|
||||
typedef void FAR *voidpf;
|
||||
typedef void *voidp;
|
||||
#else
|
||||
typedef Byte FAR *voidpf;
|
||||
typedef Byte *voidp;
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_UNISTD_H
|
||||
# include <sys/types.h> /* for off_t */
|
||||
# include <unistd.h> /* for SEEK_* and off_t */
|
||||
# define z_off_t off_t
|
||||
#endif
|
||||
#ifndef SEEK_SET
|
||||
# define SEEK_SET 0 /* Seek from beginning of file. */
|
||||
# define SEEK_CUR 1 /* Seek from current position. */
|
||||
# define SEEK_END 2 /* Set file pointer to EOF plus "offset" */
|
||||
#endif
|
||||
#ifndef z_off_t
|
||||
# define z_off_t long
|
||||
#endif
|
||||
|
||||
/* MVS linker does not support external names larger than 8 bytes */
|
||||
#if defined(__MVS__)
|
||||
# pragma map(deflateInit_,"DEIN")
|
||||
# pragma map(deflateInit2_,"DEIN2")
|
||||
# pragma map(deflateEnd,"DEEND")
|
||||
# pragma map(inflateInit_,"ININ")
|
||||
# pragma map(inflateInit2_,"ININ2")
|
||||
# pragma map(inflateEnd,"INEND")
|
||||
# pragma map(inflateSync,"INSY")
|
||||
# pragma map(inflateSetDictionary,"INSEDI")
|
||||
# pragma map(inflate_blocks,"INBL")
|
||||
# pragma map(inflate_blocks_new,"INBLNE")
|
||||
# pragma map(inflate_blocks_free,"INBLFR")
|
||||
# pragma map(inflate_blocks_reset,"INBLRE")
|
||||
# pragma map(inflate_codes_free,"INCOFR")
|
||||
# pragma map(inflate_codes,"INCO")
|
||||
# pragma map(inflate_fast,"INFA")
|
||||
# pragma map(inflate_flush,"INFLU")
|
||||
# pragma map(inflate_mask,"INMA")
|
||||
# pragma map(inflate_set_dictionary,"INSEDI2")
|
||||
# pragma map(inflate_copyright,"INCOPY")
|
||||
# pragma map(inflate_trees_bits,"INTRBI")
|
||||
# pragma map(inflate_trees_dynamic,"INTRDY")
|
||||
# pragma map(inflate_trees_fixed,"INTRFI")
|
||||
# pragma map(inflate_trees_free,"INTRFR")
|
||||
#endif
|
||||
|
||||
#endif /* _ZCONF_H */
|
893
src/lib/zlib_win32.h
Normal file
893
src/lib/zlib_win32.h
Normal file
@ -0,0 +1,893 @@
|
||||
/* zlib.h -- interface of the 'zlib' general purpose compression library
|
||||
version 1.1.3, July 9th, 1998
|
||||
|
||||
Copyright (C) 1995-1998 Jean-loup Gailly and Mark Adler
|
||||
|
||||
This software is provided 'as-is', without any express or implied
|
||||
warranty. In no event will the authors be held liable for any damages
|
||||
arising from the use of this software.
|
||||
|
||||
Permission is granted to anyone to use this software for any purpose,
|
||||
including commercial applications, and to alter it and redistribute it
|
||||
freely, subject to the following restrictions:
|
||||
|
||||
1. The origin of this software must not be misrepresented; you must not
|
||||
claim that you wrote the original software. If you use this software
|
||||
in a product, an acknowledgment in the product documentation would be
|
||||
appreciated but is not required.
|
||||
2. Altered source versions must be plainly marked as such, and must not be
|
||||
misrepresented as being the original software.
|
||||
3. This notice may not be removed or altered from any source distribution.
|
||||
|
||||
Jean-loup Gailly Mark Adler
|
||||
jloup@gzip.org madler@alumni.caltech.edu
|
||||
|
||||
|
||||
The data format used by the zlib library is described by RFCs (Request for
|
||||
Comments) 1950 to 1952 in the files ftp://ds.internic.net/rfc/rfc1950.txt
|
||||
(zlib format), rfc1951.txt (deflate format) and rfc1952.txt (gzip format).
|
||||
*/
|
||||
|
||||
#ifndef _ZLIB_H
|
||||
#define _ZLIB_H
|
||||
|
||||
#include "zconf_win32.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#define ZLIB_VERSION "1.1.3"
|
||||
|
||||
/*
|
||||
The 'zlib' compression library provides in-memory compression and
|
||||
decompression functions, including integrity checks of the uncompressed
|
||||
data. This version of the library supports only one compression method
|
||||
(deflation) but other algorithms will be added later and will have the same
|
||||
stream interface.
|
||||
|
||||
Compression can be done in a single step if the buffers are large
|
||||
enough (for example if an input file is mmap'ed), or can be done by
|
||||
repeated calls of the compression function. In the latter case, the
|
||||
application must provide more input and/or consume the output
|
||||
(providing more output space) before each call.
|
||||
|
||||
The library also supports reading and writing files in gzip (.gz) format
|
||||
with an interface similar to that of stdio.
|
||||
|
||||
The library does not install any signal handler. The decoder checks
|
||||
the consistency of the compressed data, so the library should never
|
||||
crash even in case of corrupted input.
|
||||
*/
|
||||
|
||||
typedef voidpf (*alloc_func) OF((voidpf opaque, uInt items, uInt size));
|
||||
typedef void (*free_func) OF((voidpf opaque, voidpf address));
|
||||
|
||||
struct internal_state;
|
||||
|
||||
typedef struct z_stream_s {
|
||||
Bytef *next_in; /* next input byte */
|
||||
uInt avail_in; /* number of bytes available at next_in */
|
||||
uLong total_in; /* total nb of input bytes read so far */
|
||||
|
||||
Bytef *next_out; /* next output byte should be put there */
|
||||
uInt avail_out; /* remaining free space at next_out */
|
||||
uLong total_out; /* total nb of bytes output so far */
|
||||
|
||||
char *msg; /* last error message, NULL if no error */
|
||||
struct internal_state FAR *state; /* not visible by applications */
|
||||
|
||||
alloc_func zalloc; /* used to allocate the internal state */
|
||||
free_func zfree; /* used to free the internal state */
|
||||
voidpf opaque; /* private data object passed to zalloc and zfree */
|
||||
|
||||
int data_type; /* best guess about the data type: ascii or binary */
|
||||
uLong adler; /* adler32 value of the uncompressed data */
|
||||
uLong reserved; /* reserved for future use */
|
||||
} z_stream;
|
||||
|
||||
typedef z_stream FAR *z_streamp;
|
||||
|
||||
/*
|
||||
The application must update next_in and avail_in when avail_in has
|
||||
dropped to zero. It must update next_out and avail_out when avail_out
|
||||
has dropped to zero. The application must initialize zalloc, zfree and
|
||||
opaque before calling the init function. All other fields are set by the
|
||||
compression library and must not be updated by the application.
|
||||
|
||||
The opaque value provided by the application will be passed as the first
|
||||
parameter for calls of zalloc and zfree. This can be useful for custom
|
||||
memory management. The compression library attaches no meaning to the
|
||||
opaque value.
|
||||
|
||||
zalloc must return Z_NULL if there is not enough memory for the object.
|
||||
If zlib is used in a multi-threaded application, zalloc and zfree must be
|
||||
thread safe.
|
||||
|
||||
On 16-bit systems, the functions zalloc and zfree must be able to allocate
|
||||
exactly 65536 bytes, but will not be required to allocate more than this
|
||||
if the symbol MAXSEG_64K is defined (see zconf.h). WARNING: On MSDOS,
|
||||
pointers returned by zalloc for objects of exactly 65536 bytes *must*
|
||||
have their offset normalized to zero. The default allocation function
|
||||
provided by this library ensures this (see zutil.c). To reduce memory
|
||||
requirements and avoid any allocation of 64K objects, at the expense of
|
||||
compression ratio, compile the library with -DMAX_WBITS=14 (see zconf.h).
|
||||
|
||||
The fields total_in and total_out can be used for statistics or
|
||||
progress reports. After compression, total_in holds the total size of
|
||||
the uncompressed data and may be saved for use in the decompressor
|
||||
(particularly if the decompressor wants to decompress everything in
|
||||
a single step).
|
||||
*/
|
||||
|
||||
/* constants */
|
||||
|
||||
#define Z_NO_FLUSH 0
|
||||
#define Z_PARTIAL_FLUSH 1 /* will be removed, use Z_SYNC_FLUSH instead */
|
||||
#define Z_SYNC_FLUSH 2
|
||||
#define Z_FULL_FLUSH 3
|
||||
#define Z_FINISH 4
|
||||
/* Allowed flush values; see deflate() below for details */
|
||||
|
||||
#define Z_OK 0
|
||||
#define Z_STREAM_END 1
|
||||
#define Z_NEED_DICT 2
|
||||
#define Z_ERRNO (-1)
|
||||
#define Z_STREAM_ERROR (-2)
|
||||
#define Z_DATA_ERROR (-3)
|
||||
#define Z_MEM_ERROR (-4)
|
||||
#define Z_BUF_ERROR (-5)
|
||||
#define Z_VERSION_ERROR (-6)
|
||||
/* Return codes for the compression/decompression functions. Negative
|
||||
* values are errors, positive values are used for special but normal events.
|
||||
*/
|
||||
|
||||
#define Z_NO_COMPRESSION 0
|
||||
#define Z_BEST_SPEED 1
|
||||
#define Z_BEST_COMPRESSION 9
|
||||
#define Z_DEFAULT_COMPRESSION (-1)
|
||||
/* compression levels */
|
||||
|
||||
#define Z_FILTERED 1
|
||||
#define Z_HUFFMAN_ONLY 2
|
||||
#define Z_DEFAULT_STRATEGY 0
|
||||
/* compression strategy; see deflateInit2() below for details */
|
||||
|
||||
#define Z_BINARY 0
|
||||
#define Z_ASCII 1
|
||||
#define Z_UNKNOWN 2
|
||||
/* Possible values of the data_type field */
|
||||
|
||||
#define Z_DEFLATED 8
|
||||
/* The deflate compression method (the only one supported in this version) */
|
||||
|
||||
#define Z_NULL 0 /* for initializing zalloc, zfree, opaque */
|
||||
|
||||
#define zlib_version zlibVersion()
|
||||
/* for compatibility with versions < 1.0.2 */
|
||||
|
||||
/* basic functions */
|
||||
|
||||
ZEXTERN const char * ZEXPORT zlibVersion OF((void));
|
||||
/* The application can compare zlibVersion and ZLIB_VERSION for consistency.
|
||||
If the first character differs, the library code actually used is
|
||||
not compatible with the zlib.h header file used by the application.
|
||||
This check is automatically made by deflateInit and inflateInit.
|
||||
*/
|
||||
|
||||
/*
|
||||
ZEXTERN int ZEXPORT deflateInit OF((z_streamp strm, int level));
|
||||
|
||||
Initializes the internal stream state for compression. The fields
|
||||
zalloc, zfree and opaque must be initialized before by the caller.
|
||||
If zalloc and zfree are set to Z_NULL, deflateInit updates them to
|
||||
use default allocation functions.
|
||||
|
||||
The compression level must be Z_DEFAULT_COMPRESSION, or between 0 and 9:
|
||||
1 gives best speed, 9 gives best compression, 0 gives no compression at
|
||||
all (the input data is simply copied a block at a time).
|
||||
Z_DEFAULT_COMPRESSION requests a default compromise between speed and
|
||||
compression (currently equivalent to level 6).
|
||||
|
||||
deflateInit returns Z_OK if success, Z_MEM_ERROR if there was not
|
||||
enough memory, Z_STREAM_ERROR if level is not a valid compression level,
|
||||
Z_VERSION_ERROR if the zlib library version (zlib_version) is incompatible
|
||||
with the version assumed by the caller (ZLIB_VERSION).
|
||||
msg is set to null if there is no error message. deflateInit does not
|
||||
perform any compression: this will be done by deflate().
|
||||
*/
|
||||
|
||||
|
||||
ZEXTERN int ZEXPORT deflate OF((z_streamp strm, int flush));
|
||||
/*
|
||||
deflate compresses as much data as possible, and stops when the input
|
||||
buffer becomes empty or the output buffer becomes full. It may introduce some
|
||||
output latency (reading input without producing any output) except when
|
||||
forced to flush.
|
||||
|
||||
The detailed semantics are as follows. deflate performs one or both of the
|
||||
following actions:
|
||||
|
||||
- Compress more input starting at next_in and update next_in and avail_in
|
||||
accordingly. If not all input can be processed (because there is not
|
||||
enough room in the output buffer), next_in and avail_in are updated and
|
||||
processing will resume at this point for the next call of deflate().
|
||||
|
||||
- Provide more output starting at next_out and update next_out and avail_out
|
||||
accordingly. This action is forced if the parameter flush is non zero.
|
||||
Forcing flush frequently degrades the compression ratio, so this parameter
|
||||
should be set only when necessary (in interactive applications).
|
||||
Some output may be provided even if flush is not set.
|
||||
|
||||
Before the call of deflate(), the application should ensure that at least
|
||||
one of the actions is possible, by providing more input and/or consuming
|
||||
more output, and updating avail_in or avail_out accordingly; avail_out
|
||||
should never be zero before the call. The application can consume the
|
||||
compressed output when it wants, for example when the output buffer is full
|
||||
(avail_out == 0), or after each call of deflate(). If deflate returns Z_OK
|
||||
and with zero avail_out, it must be called again after making room in the
|
||||
output buffer because there might be more output pending.
|
||||
|
||||
If the parameter flush is set to Z_SYNC_FLUSH, all pending output is
|
||||
flushed to the output buffer and the output is aligned on a byte boundary, so
|
||||
that the decompressor can get all input data available so far. (In particular
|
||||
avail_in is zero after the call if enough output space has been provided
|
||||
before the call.) Flushing may degrade compression for some compression
|
||||
algorithms and so it should be used only when necessary.
|
||||
|
||||
If flush is set to Z_FULL_FLUSH, all output is flushed as with
|
||||
Z_SYNC_FLUSH, and the compression state is reset so that decompression can
|
||||
restart from this point if previous compressed data has been damaged or if
|
||||
random access is desired. Using Z_FULL_FLUSH too often can seriously degrade
|
||||
the compression.
|
||||
|
||||
If deflate returns with avail_out == 0, this function must be called again
|
||||
with the same value of the flush parameter and more output space (updated
|
||||
avail_out), until the flush is complete (deflate returns with non-zero
|
||||
avail_out).
|
||||
|
||||
If the parameter flush is set to Z_FINISH, pending input is processed,
|
||||
pending output is flushed and deflate returns with Z_STREAM_END if there
|
||||
was enough output space; if deflate returns with Z_OK, this function must be
|
||||
called again with Z_FINISH and more output space (updated avail_out) but no
|
||||
more input data, until it returns with Z_STREAM_END or an error. After
|
||||
deflate has returned Z_STREAM_END, the only possible operations on the
|
||||
stream are deflateReset or deflateEnd.
|
||||
|
||||
Z_FINISH can be used immediately after deflateInit if all the compression
|
||||
is to be done in a single step. In this case, avail_out must be at least
|
||||
0.1% larger than avail_in plus 12 bytes. If deflate does not return
|
||||
Z_STREAM_END, then it must be called again as described above.
|
||||
|
||||
deflate() sets strm->adler to the adler32 checksum of all input read
|
||||
so far (that is, total_in bytes).
|
||||
|
||||
deflate() may update data_type if it can make a good guess about
|
||||
the input data type (Z_ASCII or Z_BINARY). In doubt, the data is considered
|
||||
binary. This field is only for information purposes and does not affect
|
||||
the compression algorithm in any manner.
|
||||
|
||||
deflate() returns Z_OK if some progress has been made (more input
|
||||
processed or more output produced), Z_STREAM_END if all input has been
|
||||
consumed and all output has been produced (only when flush is set to
|
||||
Z_FINISH), Z_STREAM_ERROR if the stream state was inconsistent (for example
|
||||
if next_in or next_out was NULL), Z_BUF_ERROR if no progress is possible
|
||||
(for example avail_in or avail_out was zero).
|
||||
*/
|
||||
|
||||
|
||||
ZEXTERN int ZEXPORT deflateEnd OF((z_streamp strm));
|
||||
/*
|
||||
All dynamically allocated data structures for this stream are freed.
|
||||
This function discards any unprocessed input and does not flush any
|
||||
pending output.
|
||||
|
||||
deflateEnd returns Z_OK if success, Z_STREAM_ERROR if the
|
||||
stream state was inconsistent, Z_DATA_ERROR if the stream was freed
|
||||
prematurely (some input or output was discarded). In the error case,
|
||||
msg may be set but then points to a static string (which must not be
|
||||
deallocated).
|
||||
*/
|
||||
|
||||
|
||||
/*
|
||||
ZEXTERN int ZEXPORT inflateInit OF((z_streamp strm));
|
||||
|
||||
Initializes the internal stream state for decompression. The fields
|
||||
next_in, avail_in, zalloc, zfree and opaque must be initialized before by
|
||||
the caller. If next_in is not Z_NULL and avail_in is large enough (the exact
|
||||
value depends on the compression method), inflateInit determines the
|
||||
compression method from the zlib header and allocates all data structures
|
||||
accordingly; otherwise the allocation will be deferred to the first call of
|
||||
inflate. If zalloc and zfree are set to Z_NULL, inflateInit updates them to
|
||||
use default allocation functions.
|
||||
|
||||
inflateInit returns Z_OK if success, Z_MEM_ERROR if there was not enough
|
||||
memory, Z_VERSION_ERROR if the zlib library version is incompatible with the
|
||||
version assumed by the caller. msg is set to null if there is no error
|
||||
message. inflateInit does not perform any decompression apart from reading
|
||||
the zlib header if present: this will be done by inflate(). (So next_in and
|
||||
avail_in may be modified, but next_out and avail_out are unchanged.)
|
||||
*/
|
||||
|
||||
|
||||
ZEXTERN int ZEXPORT inflate OF((z_streamp strm, int flush));
|
||||
/*
|
||||
inflate decompresses as much data as possible, and stops when the input
|
||||
buffer becomes empty or the output buffer becomes full. It may some
|
||||
introduce some output latency (reading input without producing any output)
|
||||
except when forced to flush.
|
||||
|
||||
The detailed semantics are as follows. inflate performs one or both of the
|
||||
following actions:
|
||||
|
||||
- Decompress more input starting at next_in and update next_in and avail_in
|
||||
accordingly. If not all input can be processed (because there is not
|
||||
enough room in the output buffer), next_in is updated and processing
|
||||
will resume at this point for the next call of inflate().
|
||||
|
||||
- Provide more output starting at next_out and update next_out and avail_out
|
||||
accordingly. inflate() provides as much output as possible, until there
|
||||
is no more input data or no more space in the output buffer (see below
|
||||
about the flush parameter).
|
||||
|
||||
Before the call of inflate(), the application should ensure that at least
|
||||
one of the actions is possible, by providing more input and/or consuming
|
||||
more output, and updating the next_* and avail_* values accordingly.
|
||||
The application can consume the uncompressed output when it wants, for
|
||||
example when the output buffer is full (avail_out == 0), or after each
|
||||
call of inflate(). If inflate returns Z_OK and with zero avail_out, it
|
||||
must be called again after making room in the output buffer because there
|
||||
might be more output pending.
|
||||
|
||||
If the parameter flush is set to Z_SYNC_FLUSH, inflate flushes as much
|
||||
output as possible to the output buffer. The flushing behavior of inflate is
|
||||
not specified for values of the flush parameter other than Z_SYNC_FLUSH
|
||||
and Z_FINISH, but the current implementation actually flushes as much output
|
||||
as possible anyway.
|
||||
|
||||
inflate() should normally be called until it returns Z_STREAM_END or an
|
||||
error. However if all decompression is to be performed in a single step
|
||||
(a single call of inflate), the parameter flush should be set to
|
||||
Z_FINISH. In this case all pending input is processed and all pending
|
||||
output is flushed; avail_out must be large enough to hold all the
|
||||
uncompressed data. (The size of the uncompressed data may have been saved
|
||||
by the compressor for this purpose.) The next operation on this stream must
|
||||
be inflateEnd to deallocate the decompression state. The use of Z_FINISH
|
||||
is never required, but can be used to inform inflate that a faster routine
|
||||
may be used for the single inflate() call.
|
||||
|
||||
If a preset dictionary is needed at this point (see inflateSetDictionary
|
||||
below), inflate sets strm-adler to the adler32 checksum of the
|
||||
dictionary chosen by the compressor and returns Z_NEED_DICT; otherwise
|
||||
it sets strm->adler to the adler32 checksum of all output produced
|
||||
so far (that is, total_out bytes) and returns Z_OK, Z_STREAM_END or
|
||||
an error code as described below. At the end of the stream, inflate()
|
||||
checks that its computed adler32 checksum is equal to that saved by the
|
||||
compressor and returns Z_STREAM_END only if the checksum is correct.
|
||||
|
||||
inflate() returns Z_OK if some progress has been made (more input processed
|
||||
or more output produced), Z_STREAM_END if the end of the compressed data has
|
||||
been reached and all uncompressed output has been produced, Z_NEED_DICT if a
|
||||
preset dictionary is needed at this point, Z_DATA_ERROR if the input data was
|
||||
corrupted (input stream not conforming to the zlib format or incorrect
|
||||
adler32 checksum), Z_STREAM_ERROR if the stream structure was inconsistent
|
||||
(for example if next_in or next_out was NULL), Z_MEM_ERROR if there was not
|
||||
enough memory, Z_BUF_ERROR if no progress is possible or if there was not
|
||||
enough room in the output buffer when Z_FINISH is used. In the Z_DATA_ERROR
|
||||
case, the application may then call inflateSync to look for a good
|
||||
compression block.
|
||||
*/
|
||||
|
||||
|
||||
ZEXTERN int ZEXPORT inflateEnd OF((z_streamp strm));
|
||||
/*
|
||||
All dynamically allocated data structures for this stream are freed.
|
||||
This function discards any unprocessed input and does not flush any
|
||||
pending output.
|
||||
|
||||
inflateEnd returns Z_OK if success, Z_STREAM_ERROR if the stream state
|
||||
was inconsistent. In the error case, msg may be set but then points to a
|
||||
static string (which must not be deallocated).
|
||||
*/
|
||||
|
||||
/* Advanced functions */
|
||||
|
||||
/*
|
||||
The following functions are needed only in some special applications.
|
||||
*/
|
||||
|
||||
/*
|
||||
ZEXTERN int ZEXPORT deflateInit2 OF((z_streamp strm,
|
||||
int level,
|
||||
int method,
|
||||
int windowBits,
|
||||
int memLevel,
|
||||
int strategy));
|
||||
|
||||
This is another version of deflateInit with more compression options. The
|
||||
fields next_in, zalloc, zfree and opaque must be initialized before by
|
||||
the caller.
|
||||
|
||||
The method parameter is the compression method. It must be Z_DEFLATED in
|
||||
this version of the library.
|
||||
|
||||
The windowBits parameter is the base two logarithm of the window size
|
||||
(the size of the history buffer). It should be in the range 8..15 for this
|
||||
version of the library. Larger values of this parameter result in better
|
||||
compression at the expense of memory usage. The default value is 15 if
|
||||
deflateInit is used instead.
|
||||
|
||||
The memLevel parameter specifies how much memory should be allocated
|
||||
for the internal compression state. memLevel=1 uses minimum memory but
|
||||
is slow and reduces compression ratio; memLevel=9 uses maximum memory
|
||||
for optimal speed. The default value is 8. See zconf.h for total memory
|
||||
usage as a function of windowBits and memLevel.
|
||||
|
||||
The strategy parameter is used to tune the compression algorithm. Use the
|
||||
value Z_DEFAULT_STRATEGY for normal data, Z_FILTERED for data produced by a
|
||||
filter (or predictor), or Z_HUFFMAN_ONLY to force Huffman encoding only (no
|
||||
string match). Filtered data consists mostly of small values with a
|
||||
somewhat random distribution. In this case, the compression algorithm is
|
||||
tuned to compress them better. The effect of Z_FILTERED is to force more
|
||||
Huffman coding and less string matching; it is somewhat intermediate
|
||||
between Z_DEFAULT and Z_HUFFMAN_ONLY. The strategy parameter only affects
|
||||
the compression ratio but not the correctness of the compressed output even
|
||||
if it is not set appropriately.
|
||||
|
||||
deflateInit2 returns Z_OK if success, Z_MEM_ERROR if there was not enough
|
||||
memory, Z_STREAM_ERROR if a parameter is invalid (such as an invalid
|
||||
method). msg is set to null if there is no error message. deflateInit2 does
|
||||
not perform any compression: this will be done by deflate().
|
||||
*/
|
||||
|
||||
ZEXTERN int ZEXPORT deflateSetDictionary OF((z_streamp strm,
|
||||
const Bytef *dictionary,
|
||||
uInt dictLength));
|
||||
/*
|
||||
Initializes the compression dictionary from the given byte sequence
|
||||
without producing any compressed output. This function must be called
|
||||
immediately after deflateInit, deflateInit2 or deflateReset, before any
|
||||
call of deflate. The compressor and decompressor must use exactly the same
|
||||
dictionary (see inflateSetDictionary).
|
||||
|
||||
The dictionary should consist of strings (byte sequences) that are likely
|
||||
to be encountered later in the data to be compressed, with the most commonly
|
||||
used strings preferably put towards the end of the dictionary. Using a
|
||||
dictionary is most useful when the data to be compressed is short and can be
|
||||
predicted with good accuracy; the data can then be compressed better than
|
||||
with the default empty dictionary.
|
||||
|
||||
Depending on the size of the compression data structures selected by
|
||||
deflateInit or deflateInit2, a part of the dictionary may in effect be
|
||||
discarded, for example if the dictionary is larger than the window size in
|
||||
deflate or deflate2. Thus the strings most likely to be useful should be
|
||||
put at the end of the dictionary, not at the front.
|
||||
|
||||
Upon return of this function, strm->adler is set to the Adler32 value
|
||||
of the dictionary; the decompressor may later use this value to determine
|
||||
which dictionary has been used by the compressor. (The Adler32 value
|
||||
applies to the whole dictionary even if only a subset of the dictionary is
|
||||
actually used by the compressor.)
|
||||
|
||||
deflateSetDictionary returns Z_OK if success, or Z_STREAM_ERROR if a
|
||||
parameter is invalid (such as NULL dictionary) or the stream state is
|
||||
inconsistent (for example if deflate has already been called for this stream
|
||||
or if the compression method is bsort). deflateSetDictionary does not
|
||||
perform any compression: this will be done by deflate().
|
||||
*/
|
||||
|
||||
ZEXTERN int ZEXPORT deflateCopy OF((z_streamp dest,
|
||||
z_streamp source));
|
||||
/*
|
||||
Sets the destination stream as a complete copy of the source stream.
|
||||
|
||||
This function can be useful when several compression strategies will be
|
||||
tried, for example when there are several ways of pre-processing the input
|
||||
data with a filter. The streams that will be discarded should then be freed
|
||||
by calling deflateEnd. Note that deflateCopy duplicates the internal
|
||||
compression state which can be quite large, so this strategy is slow and
|
||||
can consume lots of memory.
|
||||
|
||||
deflateCopy returns Z_OK if success, Z_MEM_ERROR if there was not
|
||||
enough memory, Z_STREAM_ERROR if the source stream state was inconsistent
|
||||
(such as zalloc being NULL). msg is left unchanged in both source and
|
||||
destination.
|
||||
*/
|
||||
|
||||
ZEXTERN int ZEXPORT deflateReset OF((z_streamp strm));
|
||||
/*
|
||||
This function is equivalent to deflateEnd followed by deflateInit,
|
||||
but does not free and reallocate all the internal compression state.
|
||||
The stream will keep the same compression level and any other attributes
|
||||
that may have been set by deflateInit2.
|
||||
|
||||
deflateReset returns Z_OK if success, or Z_STREAM_ERROR if the source
|
||||
stream state was inconsistent (such as zalloc or state being NULL).
|
||||
*/
|
||||
|
||||
ZEXTERN int ZEXPORT deflateParams OF((z_streamp strm,
|
||||
int level,
|
||||
int strategy));
|
||||
/*
|
||||
Dynamically update the compression level and compression strategy. The
|
||||
interpretation of level and strategy is as in deflateInit2. This can be
|
||||
used to switch between compression and straight copy of the input data, or
|
||||
to switch to a different kind of input data requiring a different
|
||||
strategy. If the compression level is changed, the input available so far
|
||||
is compressed with the old level (and may be flushed); the new level will
|
||||
take effect only at the next call of deflate().
|
||||
|
||||
Before the call of deflateParams, the stream state must be set as for
|
||||
a call of deflate(), since the currently available input may have to
|
||||
be compressed and flushed. In particular, strm->avail_out must be non-zero.
|
||||
|
||||
deflateParams returns Z_OK if success, Z_STREAM_ERROR if the source
|
||||
stream state was inconsistent or if a parameter was invalid, Z_BUF_ERROR
|
||||
if strm->avail_out was zero.
|
||||
*/
|
||||
|
||||
/*
|
||||
ZEXTERN int ZEXPORT inflateInit2 OF((z_streamp strm,
|
||||
int windowBits));
|
||||
|
||||
This is another version of inflateInit with an extra parameter. The
|
||||
fields next_in, avail_in, zalloc, zfree and opaque must be initialized
|
||||
before by the caller.
|
||||
|
||||
The windowBits parameter is the base two logarithm of the maximum window
|
||||
size (the size of the history buffer). It should be in the range 8..15 for
|
||||
this version of the library. The default value is 15 if inflateInit is used
|
||||
instead. If a compressed stream with a larger window size is given as
|
||||
input, inflate() will return with the error code Z_DATA_ERROR instead of
|
||||
trying to allocate a larger window.
|
||||
|
||||
inflateInit2 returns Z_OK if success, Z_MEM_ERROR if there was not enough
|
||||
memory, Z_STREAM_ERROR if a parameter is invalid (such as a negative
|
||||
memLevel). msg is set to null if there is no error message. inflateInit2
|
||||
does not perform any decompression apart from reading the zlib header if
|
||||
present: this will be done by inflate(). (So next_in and avail_in may be
|
||||
modified, but next_out and avail_out are unchanged.)
|
||||
*/
|
||||
|
||||
ZEXTERN int ZEXPORT inflateSetDictionary OF((z_streamp strm,
|
||||
const Bytef *dictionary,
|
||||
uInt dictLength));
|
||||
/*
|
||||
Initializes the decompression dictionary from the given uncompressed byte
|
||||
sequence. This function must be called immediately after a call of inflate
|
||||
if this call returned Z_NEED_DICT. The dictionary chosen by the compressor
|
||||
can be determined from the Adler32 value returned by this call of
|
||||
inflate. The compressor and decompressor must use exactly the same
|
||||
dictionary (see deflateSetDictionary).
|
||||
|
||||
inflateSetDictionary returns Z_OK if success, Z_STREAM_ERROR if a
|
||||
parameter is invalid (such as NULL dictionary) or the stream state is
|
||||
inconsistent, Z_DATA_ERROR if the given dictionary doesn't match the
|
||||
expected one (incorrect Adler32 value). inflateSetDictionary does not
|
||||
perform any decompression: this will be done by subsequent calls of
|
||||
inflate().
|
||||
*/
|
||||
|
||||
ZEXTERN int ZEXPORT inflateSync OF((z_streamp strm));
|
||||
/*
|
||||
Skips invalid compressed data until a full flush point (see above the
|
||||
description of deflate with Z_FULL_FLUSH) can be found, or until all
|
||||
available input is skipped. No output is provided.
|
||||
|
||||
inflateSync returns Z_OK if a full flush point has been found, Z_BUF_ERROR
|
||||
if no more input was provided, Z_DATA_ERROR if no flush point has been found,
|
||||
or Z_STREAM_ERROR if the stream structure was inconsistent. In the success
|
||||
case, the application may save the current current value of total_in which
|
||||
indicates where valid compressed data was found. In the error case, the
|
||||
application may repeatedly call inflateSync, providing more input each time,
|
||||
until success or end of the input data.
|
||||
*/
|
||||
|
||||
ZEXTERN int ZEXPORT inflateReset OF((z_streamp strm));
|
||||
/*
|
||||
This function is equivalent to inflateEnd followed by inflateInit,
|
||||
but does not free and reallocate all the internal decompression state.
|
||||
The stream will keep attributes that may have been set by inflateInit2.
|
||||
|
||||
inflateReset returns Z_OK if success, or Z_STREAM_ERROR if the source
|
||||
stream state was inconsistent (such as zalloc or state being NULL).
|
||||
*/
|
||||
|
||||
|
||||
/* utility functions */
|
||||
|
||||
/*
|
||||
The following utility functions are implemented on top of the
|
||||
basic stream-oriented functions. To simplify the interface, some
|
||||
default options are assumed (compression level and memory usage,
|
||||
standard memory allocation functions). The source code of these
|
||||
utility functions can easily be modified if you need special options.
|
||||
*/
|
||||
|
||||
ZEXTERN int ZEXPORT compress OF((Bytef *dest, uLongf *destLen,
|
||||
const Bytef *source, uLong sourceLen));
|
||||
/*
|
||||
Compresses the source buffer into the destination buffer. sourceLen is
|
||||
the byte length of the source buffer. Upon entry, destLen is the total
|
||||
size of the destination buffer, which must be at least 0.1% larger than
|
||||
sourceLen plus 12 bytes. Upon exit, destLen is the actual size of the
|
||||
compressed buffer.
|
||||
This function can be used to compress a whole file at once if the
|
||||
input file is mmap'ed.
|
||||
compress returns Z_OK if success, Z_MEM_ERROR if there was not
|
||||
enough memory, Z_BUF_ERROR if there was not enough room in the output
|
||||
buffer.
|
||||
*/
|
||||
|
||||
ZEXTERN int ZEXPORT compress2 OF((Bytef *dest, uLongf *destLen,
|
||||
const Bytef *source, uLong sourceLen,
|
||||
int level));
|
||||
/*
|
||||
Compresses the source buffer into the destination buffer. The level
|
||||
parameter has the same meaning as in deflateInit. sourceLen is the byte
|
||||
length of the source buffer. Upon entry, destLen is the total size of the
|
||||
destination buffer, which must be at least 0.1% larger than sourceLen plus
|
||||
12 bytes. Upon exit, destLen is the actual size of the compressed buffer.
|
||||
|
||||
compress2 returns Z_OK if success, Z_MEM_ERROR if there was not enough
|
||||
memory, Z_BUF_ERROR if there was not enough room in the output buffer,
|
||||
Z_STREAM_ERROR if the level parameter is invalid.
|
||||
*/
|
||||
|
||||
ZEXTERN int ZEXPORT uncompress OF((Bytef *dest, uLongf *destLen,
|
||||
const Bytef *source, uLong sourceLen));
|
||||
/*
|
||||
Decompresses the source buffer into the destination buffer. sourceLen is
|
||||
the byte length of the source buffer. Upon entry, destLen is the total
|
||||
size of the destination buffer, which must be large enough to hold the
|
||||
entire uncompressed data. (The size of the uncompressed data must have
|
||||
been saved previously by the compressor and transmitted to the decompressor
|
||||
by some mechanism outside the scope of this compression library.)
|
||||
Upon exit, destLen is the actual size of the compressed buffer.
|
||||
This function can be used to decompress a whole file at once if the
|
||||
input file is mmap'ed.
|
||||
|
||||
uncompress returns Z_OK if success, Z_MEM_ERROR if there was not
|
||||
enough memory, Z_BUF_ERROR if there was not enough room in the output
|
||||
buffer, or Z_DATA_ERROR if the input data was corrupted.
|
||||
*/
|
||||
|
||||
|
||||
typedef voidp gzFile;
|
||||
|
||||
ZEXTERN gzFile ZEXPORT gzopen OF((const char *path, const char *mode));
|
||||
/*
|
||||
Opens a gzip (.gz) file for reading or writing. The mode parameter
|
||||
is as in fopen ("rb" or "wb") but can also include a compression level
|
||||
("wb9") or a strategy: 'f' for filtered data as in "wb6f", 'h' for
|
||||
Huffman only compression as in "wb1h". (See the description
|
||||
of deflateInit2 for more information about the strategy parameter.)
|
||||
|
||||
gzopen can be used to read a file which is not in gzip format; in this
|
||||
case gzread will directly read from the file without decompression.
|
||||
|
||||
gzopen returns NULL if the file could not be opened or if there was
|
||||
insufficient memory to allocate the (de)compression state; errno
|
||||
can be checked to distinguish the two cases (if errno is zero, the
|
||||
zlib error is Z_MEM_ERROR). */
|
||||
|
||||
ZEXTERN gzFile ZEXPORT gzdopen OF((int fd, const char *mode));
|
||||
/*
|
||||
gzdopen() associates a gzFile with the file descriptor fd. File
|
||||
descriptors are obtained from calls like open, dup, creat, pipe or
|
||||
fileno (in the file has been previously opened with fopen).
|
||||
The mode parameter is as in gzopen.
|
||||
The next call of gzclose on the returned gzFile will also close the
|
||||
file descriptor fd, just like fclose(fdopen(fd), mode) closes the file
|
||||
descriptor fd. If you want to keep fd open, use gzdopen(dup(fd), mode).
|
||||
gzdopen returns NULL if there was insufficient memory to allocate
|
||||
the (de)compression state.
|
||||
*/
|
||||
|
||||
ZEXTERN int ZEXPORT gzsetparams OF((gzFile file, int level, int strategy));
|
||||
/*
|
||||
Dynamically update the compression level or strategy. See the description
|
||||
of deflateInit2 for the meaning of these parameters.
|
||||
gzsetparams returns Z_OK if success, or Z_STREAM_ERROR if the file was not
|
||||
opened for writing.
|
||||
*/
|
||||
|
||||
ZEXTERN int ZEXPORT gzread OF((gzFile file, voidp buf, unsigned len));
|
||||
/*
|
||||
Reads the given number of uncompressed bytes from the compressed file.
|
||||
If the input file was not in gzip format, gzread copies the given number
|
||||
of bytes into the buffer.
|
||||
gzread returns the number of uncompressed bytes actually read (0 for
|
||||
end of file, -1 for error). */
|
||||
|
||||
ZEXTERN int ZEXPORT gzwrite OF((gzFile file,
|
||||
const voidp buf, unsigned len));
|
||||
/*
|
||||
Writes the given number of uncompressed bytes into the compressed file.
|
||||
gzwrite returns the number of uncompressed bytes actually written
|
||||
(0 in case of error).
|
||||
*/
|
||||
|
||||
ZEXTERN int ZEXPORTVA gzprintf OF((gzFile file, const char *format, ...));
|
||||
/*
|
||||
Converts, formats, and writes the args to the compressed file under
|
||||
control of the format string, as in fprintf. gzprintf returns the number of
|
||||
uncompressed bytes actually written (0 in case of error).
|
||||
*/
|
||||
|
||||
ZEXTERN int ZEXPORT gzputs OF((gzFile file, const char *s));
|
||||
/*
|
||||
Writes the given null-terminated string to the compressed file, excluding
|
||||
the terminating null character.
|
||||
gzputs returns the number of characters written, or -1 in case of error.
|
||||
*/
|
||||
|
||||
ZEXTERN char * ZEXPORT gzgets OF((gzFile file, char *buf, int len));
|
||||
/*
|
||||
Reads bytes from the compressed file until len-1 characters are read, or
|
||||
a newline character is read and transferred to buf, or an end-of-file
|
||||
condition is encountered. The string is then terminated with a null
|
||||
character.
|
||||
gzgets returns buf, or Z_NULL in case of error.
|
||||
*/
|
||||
|
||||
ZEXTERN int ZEXPORT gzputc OF((gzFile file, int c));
|
||||
/*
|
||||
Writes c, converted to an unsigned char, into the compressed file.
|
||||
gzputc returns the value that was written, or -1 in case of error.
|
||||
*/
|
||||
|
||||
ZEXTERN int ZEXPORT gzgetc OF((gzFile file));
|
||||
/*
|
||||
Reads one byte from the compressed file. gzgetc returns this byte
|
||||
or -1 in case of end of file or error.
|
||||
*/
|
||||
|
||||
ZEXTERN int ZEXPORT gzflush OF((gzFile file, int flush));
|
||||
/*
|
||||
Flushes all pending output into the compressed file. The parameter
|
||||
flush is as in the deflate() function. The return value is the zlib
|
||||
error number (see function gzerror below). gzflush returns Z_OK if
|
||||
the flush parameter is Z_FINISH and all output could be flushed.
|
||||
gzflush should be called only when strictly necessary because it can
|
||||
degrade compression.
|
||||
*/
|
||||
|
||||
ZEXTERN z_off_t ZEXPORT gzseek OF((gzFile file,
|
||||
z_off_t offset, int whence));
|
||||
/*
|
||||
Sets the starting position for the next gzread or gzwrite on the
|
||||
given compressed file. The offset represents a number of bytes in the
|
||||
uncompressed data stream. The whence parameter is defined as in lseek(2);
|
||||
the value SEEK_END is not supported.
|
||||
If the file is opened for reading, this function is emulated but can be
|
||||
extremely slow. If the file is opened for writing, only forward seeks are
|
||||
supported; gzseek then compresses a sequence of zeroes up to the new
|
||||
starting position.
|
||||
|
||||
gzseek returns the resulting offset location as measured in bytes from
|
||||
the beginning of the uncompressed stream, or -1 in case of error, in
|
||||
particular if the file is opened for writing and the new starting position
|
||||
would be before the current position.
|
||||
*/
|
||||
|
||||
ZEXTERN int ZEXPORT gzrewind OF((gzFile file));
|
||||
/*
|
||||
Rewinds the given file. This function is supported only for reading.
|
||||
|
||||
gzrewind(file) is equivalent to (int)gzseek(file, 0L, SEEK_SET)
|
||||
*/
|
||||
|
||||
ZEXTERN z_off_t ZEXPORT gztell OF((gzFile file));
|
||||
/*
|
||||
Returns the starting position for the next gzread or gzwrite on the
|
||||
given compressed file. This position represents a number of bytes in the
|
||||
uncompressed data stream.
|
||||
|
||||
gztell(file) is equivalent to gzseek(file, 0L, SEEK_CUR)
|
||||
*/
|
||||
|
||||
ZEXTERN int ZEXPORT gzeof OF((gzFile file));
|
||||
/*
|
||||
Returns 1 when EOF has previously been detected reading the given
|
||||
input stream, otherwise zero.
|
||||
*/
|
||||
|
||||
ZEXTERN int ZEXPORT gzclose OF((gzFile file));
|
||||
/*
|
||||
Flushes all pending output if necessary, closes the compressed file
|
||||
and deallocates all the (de)compression state. The return value is the zlib
|
||||
error number (see function gzerror below).
|
||||
*/
|
||||
|
||||
ZEXTERN const char * ZEXPORT gzerror OF((gzFile file, int *errnum));
|
||||
/*
|
||||
Returns the error message for the last error which occurred on the
|
||||
given compressed file. errnum is set to zlib error number. If an
|
||||
error occurred in the file system and not in the compression library,
|
||||
errnum is set to Z_ERRNO and the application may consult errno
|
||||
to get the exact error code.
|
||||
*/
|
||||
|
||||
/* checksum functions */
|
||||
|
||||
/*
|
||||
These functions are not related to compression but are exported
|
||||
anyway because they might be useful in applications using the
|
||||
compression library.
|
||||
*/
|
||||
|
||||
ZEXTERN uLong ZEXPORT adler32 OF((uLong adler, const Bytef *buf, uInt len));
|
||||
|
||||
/*
|
||||
Update a running Adler-32 checksum with the bytes buf[0..len-1] and
|
||||
return the updated checksum. If buf is NULL, this function returns
|
||||
the required initial value for the checksum.
|
||||
An Adler-32 checksum is almost as reliable as a CRC32 but can be computed
|
||||
much faster. Usage example:
|
||||
|
||||
uLong adler = adler32(0L, Z_NULL, 0);
|
||||
|
||||
while (read_buffer(buffer, length) != EOF) {
|
||||
adler = adler32(adler, buffer, length);
|
||||
}
|
||||
if (adler != original_adler) error();
|
||||
*/
|
||||
|
||||
ZEXTERN uLong ZEXPORT crc32 OF((uLong crc, const Bytef *buf, uInt len));
|
||||
/*
|
||||
Update a running crc with the bytes buf[0..len-1] and return the updated
|
||||
crc. If buf is NULL, this function returns the required initial value
|
||||
for the crc. Pre- and post-conditioning (one's complement) is performed
|
||||
within this function so it shouldn't be done by the application.
|
||||
Usage example:
|
||||
|
||||
uLong crc = crc32(0L, Z_NULL, 0);
|
||||
|
||||
while (read_buffer(buffer, length) != EOF) {
|
||||
crc = crc32(crc, buffer, length);
|
||||
}
|
||||
if (crc != original_crc) error();
|
||||
*/
|
||||
|
||||
|
||||
/* various hacks, don't look :) */
|
||||
|
||||
/* deflateInit and inflateInit are macros to allow checking the zlib version
|
||||
* and the compiler's view of z_stream:
|
||||
*/
|
||||
ZEXTERN int ZEXPORT deflateInit_ OF((z_streamp strm, int level,
|
||||
const char *version, int stream_size));
|
||||
ZEXTERN int ZEXPORT inflateInit_ OF((z_streamp strm,
|
||||
const char *version, int stream_size));
|
||||
ZEXTERN int ZEXPORT deflateInit2_ OF((z_streamp strm, int level, int method,
|
||||
int windowBits, int memLevel,
|
||||
int strategy, const char *version,
|
||||
int stream_size));
|
||||
ZEXTERN int ZEXPORT inflateInit2_ OF((z_streamp strm, int windowBits,
|
||||
const char *version, int stream_size));
|
||||
#define deflateInit(strm, level) \
|
||||
deflateInit_((strm), (level), ZLIB_VERSION, sizeof(z_stream))
|
||||
#define inflateInit(strm) \
|
||||
inflateInit_((strm), ZLIB_VERSION, sizeof(z_stream))
|
||||
#define deflateInit2(strm, level, method, windowBits, memLevel, strategy) \
|
||||
deflateInit2_((strm),(level),(method),(windowBits),(memLevel),\
|
||||
(strategy), ZLIB_VERSION, sizeof(z_stream))
|
||||
#define inflateInit2(strm, windowBits) \
|
||||
inflateInit2_((strm), (windowBits), ZLIB_VERSION, sizeof(z_stream))
|
||||
|
||||
|
||||
#if !defined(_Z_UTIL_H) && !defined(NO_DUMMY_DECL)
|
||||
struct internal_state {int dummy;}; /* hack for buggy compilers */
|
||||
#endif
|
||||
|
||||
ZEXTERN const char * ZEXPORT zError OF((int err));
|
||||
ZEXTERN int ZEXPORT inflateSyncPoint OF((z_streamp z));
|
||||
ZEXTERN const uLongf * ZEXPORT get_crc_table OF((void));
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* _ZLIB_H */
|
@ -15,6 +15,7 @@ void Gettimeofday(struct timeval *timenow)
|
||||
return;
|
||||
}
|
||||
#define gettimeofday(timenow, dummy) Gettimeofday(timenow)
|
||||
#define in_addr_t unsigned long
|
||||
#else
|
||||
#include <sys/socket.h>
|
||||
#include <netinet/in.h>
|
||||
@ -43,6 +44,7 @@ void Gettimeofday(struct timeval *timenow)
|
||||
#include "../common/lock.h"
|
||||
#include "../common/malloc.h"
|
||||
#include "../common/buffer.h"
|
||||
#include "../common/strlib.h"
|
||||
|
||||
#ifdef PASSWORDENC
|
||||
#include "md5calc.h"
|
||||
@ -436,23 +438,6 @@ int check_ladminip(unsigned int ip) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
//-----------------------------------------------------
|
||||
// Function to suppress control characters in a string.
|
||||
//-----------------------------------------------------
|
||||
int remove_control_chars(char *str) {
|
||||
int i;
|
||||
int change = 0;
|
||||
|
||||
for(i = 0; str[i]; i++) {
|
||||
if (str[i] < 32) {
|
||||
str[i] = '_';
|
||||
change = 1;
|
||||
}
|
||||
}
|
||||
|
||||
return change;
|
||||
}
|
||||
|
||||
//---------------------------------------------------
|
||||
// E-mail check: return 0 (not correct) or 1 (valid).
|
||||
//---------------------------------------------------
|
||||
|
@ -223,23 +223,6 @@ int isGM(int account_id) {
|
||||
return level;
|
||||
}
|
||||
|
||||
//-----------------------------------------------------
|
||||
// Function to suppress control characters in a string.
|
||||
//-----------------------------------------------------
|
||||
int remove_control_chars(unsigned char *str) {
|
||||
int i;
|
||||
int change = 0;
|
||||
|
||||
for(i = 0; str[i]; i++) {
|
||||
if (str[i] < 32) {
|
||||
str[i] = '_';
|
||||
change = 1;
|
||||
}
|
||||
}
|
||||
|
||||
return change;
|
||||
}
|
||||
|
||||
//---------------------------------------------------
|
||||
// E-mail check: return 0 (not correct) or 1 (valid).
|
||||
//---------------------------------------------------
|
||||
|
253
src/map/skill.c
253
src/map/skill.c
@ -36,237 +36,6 @@
|
||||
#define STATE_BLIND 0x10
|
||||
#define swap(x,y) { int t; t = x; x = y; y = t; }
|
||||
|
||||
/* スキル番?=>ステ?タス異常番??換テ?ブル */
|
||||
int SkillStatusChangeTable[]={ /* skill.hのenumのSC_***とあわせること */
|
||||
/* 0- */
|
||||
-1,-1,-1,-1,-1,-1,
|
||||
SC_PROVOKE, /* プロボック */
|
||||
-1, 1,-1,
|
||||
/* 10- */
|
||||
SC_SIGHT, /* サイト */
|
||||
-1,-1,-1,-1,
|
||||
SC_FREEZE, /* フロストダイバ? */
|
||||
SC_STONE, /* スト?ンカ?ス */
|
||||
-1,-1,-1,
|
||||
/* 20- */
|
||||
-1,-1,-1,-1,
|
||||
SC_RUWACH, /* ルアフ */
|
||||
-1,-1,-1,-1,
|
||||
SC_INCREASEAGI, /* 速度?加 */
|
||||
/* 30- */
|
||||
SC_DECREASEAGI, /* 速度減少 */
|
||||
-1,
|
||||
SC_SIGNUMCRUCIS, /* シグナムクルシス */
|
||||
SC_ANGELUS, /* エンジェラス */
|
||||
SC_BLESSING, /* ブレッシング */
|
||||
-1,-1,-1,-1,-1,
|
||||
/* 40- */
|
||||
-1,-1,-1,-1,-1,
|
||||
SC_CONCENTRATE, /* 集中力向上 */
|
||||
-1,-1,-1,-1,
|
||||
/* 50- */
|
||||
-1,
|
||||
SC_HIDING, /* ハイディング */
|
||||
-1,-1,-1,-1,-1,-1,-1,-1,
|
||||
/* 60- */
|
||||
SC_TWOHANDQUICKEN, /* 2HQ */
|
||||
SC_AUTOCOUNTER,
|
||||
-1,-1,-1,-1,
|
||||
SC_IMPOSITIO, /* インポシティオマヌス */
|
||||
SC_SUFFRAGIUM, /* サフラギウム */
|
||||
SC_ASPERSIO, /* アスペルシオ */
|
||||
SC_BENEDICTIO, /* 聖?降福 */
|
||||
/* 70- */
|
||||
-1,
|
||||
SC_SLOWPOISON,
|
||||
-1,
|
||||
SC_KYRIE, /* キリエエレイソン */
|
||||
SC_MAGNIFICAT, /* マグニフィカ?ト */
|
||||
SC_GLORIA, /* グロリア */
|
||||
SC_DIVINA, /* レックスディビ?ナ */
|
||||
-1,
|
||||
SC_AETERNA, /* レックスエ?テルナ */
|
||||
-1,
|
||||
/* 80- */
|
||||
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
|
||||
/* 90- */
|
||||
-1,-1,
|
||||
SC_QUAGMIRE, /* クァグマイア */
|
||||
-1,-1,-1,-1,-1,-1,-1,
|
||||
/* 100- */
|
||||
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
|
||||
/* 110- */
|
||||
-1,
|
||||
SC_ADRENALINE, /* アドレナリンラッシュ */
|
||||
SC_WEAPONPERFECTION,/* ウェポンパ?フェクション */
|
||||
SC_OVERTHRUST, /* オ?バ?トラスト */
|
||||
SC_MAXIMIZEPOWER, /* マキシマイズパワ? */
|
||||
-1,-1,-1,-1,-1,
|
||||
/* 120- */
|
||||
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
|
||||
/* 130- */
|
||||
-1,-1,-1,-1,-1,
|
||||
SC_CLOAKING, /* クロ?キング */
|
||||
SC_STAN, /* ソニックブロ? */
|
||||
-1,
|
||||
SC_ENCPOISON, /* エンチャントポイズン */
|
||||
SC_POISONREACT, /* ポイズンリアクト */
|
||||
/* 140- */
|
||||
SC_POISON, /* ベノムダスト */
|
||||
SC_SPLASHER, /* ベナムスプラッシャ? */
|
||||
-1,
|
||||
SC_TRICKDEAD, /* 死んだふり */
|
||||
-1,-1,SC_AUTOBERSERK,-1,-1,-1,
|
||||
/* 150- */
|
||||
-1,-1,-1,-1,-1,
|
||||
SC_LOUD, /* ラウドボイス */
|
||||
-1,
|
||||
SC_ENERGYCOAT, /* エナジ?コ?ト */
|
||||
-1,-1,
|
||||
/* 160- */
|
||||
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
|
||||
-1,-1,-1,
|
||||
SC_SELFDESTRUCTION,
|
||||
-1,-1,-1,-1,-1,-1,
|
||||
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
|
||||
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
|
||||
-1,
|
||||
SC_KEEPING,
|
||||
-1,-1,
|
||||
SC_BARRIER,
|
||||
-1,-1,
|
||||
SC_HALLUCINATION,
|
||||
-1,-1,
|
||||
/* 210- */
|
||||
-1,-1,-1,-1,-1,
|
||||
SC_STRIPWEAPON,
|
||||
SC_STRIPSHIELD,
|
||||
SC_STRIPARMOR,
|
||||
SC_STRIPHELM,
|
||||
-1,
|
||||
/* 220- */
|
||||
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
|
||||
/* 230- */
|
||||
-1,-1,-1,-1,
|
||||
SC_CP_WEAPON,
|
||||
SC_CP_SHIELD,
|
||||
SC_CP_ARMOR,
|
||||
SC_CP_HELM,
|
||||
-1,-1,
|
||||
/* 240- */
|
||||
-1,-1,-1,-1,-1,-1,-1,-1,-1,
|
||||
SC_AUTOGUARD,
|
||||
/* 250- */
|
||||
-1,-1,
|
||||
SC_REFLECTSHIELD,
|
||||
-1,-1,
|
||||
SC_DEVOTION,
|
||||
SC_PROVIDENCE,
|
||||
SC_DEFENDER,
|
||||
SC_SPEARSQUICKEN,
|
||||
-1,
|
||||
/* 260- */
|
||||
-1,-1,-1,-1,-1,-1,-1,-1,
|
||||
SC_STEELBODY,
|
||||
SC_BLADESTOP_WAIT,
|
||||
/* 270- */
|
||||
SC_EXPLOSIONSPIRITS,
|
||||
SC_EXTREMITYFIST,
|
||||
-1,-1,-1,-1,
|
||||
SC_MAGICROD,
|
||||
-1,-1,-1,
|
||||
/* 280- */
|
||||
SC_FLAMELAUNCHER,
|
||||
SC_FROSTWEAPON,
|
||||
SC_LIGHTNINGLOADER,
|
||||
SC_SEISMICWEAPON,
|
||||
-1,
|
||||
SC_VOLCANO,
|
||||
SC_DELUGE,
|
||||
SC_VIOLENTGALE,
|
||||
SC_LANDPROTECTOR,
|
||||
-1,
|
||||
/* 290- */
|
||||
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
|
||||
/* 300- */
|
||||
-1,-1,-1,-1,-1,-1,
|
||||
SC_LULLABY,
|
||||
SC_RICHMANKIM,
|
||||
SC_ETERNALCHAOS,
|
||||
SC_DRUMBATTLE,
|
||||
/* 310- */
|
||||
SC_NIBELUNGEN,
|
||||
SC_ROKISWEIL,
|
||||
SC_INTOABYSS,
|
||||
SC_SIEGFRIED,
|
||||
-1,-1,-1,
|
||||
SC_DISSONANCE,
|
||||
-1,
|
||||
SC_WHISTLE,
|
||||
/* 320- */
|
||||
SC_ASSNCROS,
|
||||
SC_POEMBRAGI,
|
||||
SC_APPLEIDUN,
|
||||
-1,-1,
|
||||
SC_UGLYDANCE,
|
||||
-1,
|
||||
SC_HUMMING,
|
||||
SC_DONTFORGETME,
|
||||
SC_FORTUNE,
|
||||
/* 330- */
|
||||
SC_SERVICE4U,
|
||||
SC_SELFDESTRUCTION,
|
||||
-1,-1,-1,-1,-1,-1,-1,-1,
|
||||
/* 340- */
|
||||
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
|
||||
/* 350- */
|
||||
-1,-1,-1,-1,-1,
|
||||
SC_AURABLADE,
|
||||
SC_PARRYING,
|
||||
SC_CONCENTRATION,
|
||||
SC_TENSIONRELAX,
|
||||
SC_BERSERK,
|
||||
/* 360- */
|
||||
SC_BERSERK,
|
||||
SC_ASSUMPTIO,
|
||||
SC_BASILICA,
|
||||
-1,-1,-1,
|
||||
SC_MAGICPOWER,
|
||||
-1,
|
||||
SC_SACRIFICE,
|
||||
SC_GOSPEL,
|
||||
/* 370- */
|
||||
-1,-1,-1,-1,-1,-1,-1,-1,
|
||||
SC_EDP,
|
||||
-1,
|
||||
/* 380- */
|
||||
SC_TRUESIGHT,
|
||||
-1,-1,
|
||||
SC_WINDWALK,
|
||||
SC_MELTDOWN,
|
||||
-1,-1,
|
||||
SC_CARTBOOST,
|
||||
-1,
|
||||
SC_CHASEWALK,
|
||||
/* 390- */
|
||||
SC_REJECTSWORD,
|
||||
-1,-1,-1,-1,
|
||||
SC_MOONLIT,
|
||||
SC_MARIONETTE,
|
||||
-1,
|
||||
SC_HEADCRUSH,
|
||||
SC_JOINTBEAT,
|
||||
/* 400 */
|
||||
-1,-1,
|
||||
SC_MINDBREAKER,
|
||||
SC_MEMORIZE,
|
||||
SC_FOGWALL,
|
||||
SC_SPIDERWEB,
|
||||
-1,-1,-1,-1,
|
||||
/* 410- */
|
||||
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
|
||||
};
|
||||
|
||||
const struct skill_name_db skill_names[] = {
|
||||
{ AC_CHARGEARROW, "CHARGEARROW", "Charge_Arrow" } ,
|
||||
{ AC_CONCENTRATION, "CONCENTRATION", "Improve_Concentration" } ,
|
||||
@ -883,7 +652,7 @@ int skill_get_unit_id(int id,int flag)
|
||||
case WZ_SIGHTRASHER: return 0x86; /* サイトラッシャ? */
|
||||
case WZ_METEOR: return 0x86; /* メテオスト?ム */
|
||||
case WZ_VERMILION: return 0x86; /* ロ?ドオブヴァ?ミリオン */
|
||||
case WZ_FROSTNOVA: return 0x86; /* フロストノヴァ */
|
||||
//case WZ_FROSTNOVA: return 0x86; /* フロストノヴァ */
|
||||
case WZ_STORMGUST: return 0x86; /* スト?ムガスト(とりあえずLoVと同じで?理) */
|
||||
case CR_GRANDCROSS: return 0x86; /* グランドクロス */
|
||||
case NPC_DARKGRANDCROSS: return 0x86; /*闇グランドクロス*/
|
||||
@ -2751,7 +2520,7 @@ int skill_castend_damage_id( struct block_list* src, struct block_list *bl,int s
|
||||
break;
|
||||
|
||||
case WZ_FROSTNOVA: /* フロストノヴァ */
|
||||
skill_castend_pos2(src,bl->x,bl->y,skillid,skilllv,tick,0);
|
||||
//skill_castend_pos2(src,bl->x,bl->y,skillid,skilllv,tick,0);
|
||||
//skill_attack(BF_MAGIC,src,src,bl,skillid,skilllv,tick,flag);
|
||||
map_foreachinarea(skill_attack_area,src->m,src->x-5,bl->y-5,bl->x+5,bl->y+5,0,BF_MAGIC,src,src,skillid,skilllv,tick,flag,BCT_ENEMY);
|
||||
break;
|
||||
@ -3982,8 +3751,12 @@ int skill_castend_nodamage_id( struct block_list *src, struct block_list *bl,int
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (tsc_data && tsc_data[scid].timer != -1)
|
||||
break;
|
||||
if (tsc_data) {
|
||||
if (tsc_data[scid].timer != -1)
|
||||
break;
|
||||
if (tsc_data[skillid - RG_STRIPWEAPON + SC_CP_WEAPON].timer != -1)
|
||||
break;
|
||||
}
|
||||
if (dstsd && dstsd->unstripable_equip & equip)
|
||||
break;
|
||||
|
||||
@ -4956,7 +4729,7 @@ int skill_castend_pos2( struct block_list *src, int x,int y,int skillid,int skil
|
||||
case WZ_SIGHTRASHER:
|
||||
case WZ_QUAGMIRE: /* クァグマイア */
|
||||
case WZ_VERMILION: /* ロ?ドオブヴァ?ミリオン */
|
||||
case WZ_FROSTNOVA: /* フロストノヴァ */
|
||||
//case WZ_FROSTNOVA: /* フロストノヴァ */
|
||||
case WZ_STORMGUST: /* スト?ムガスト */
|
||||
case WZ_HEAVENDRIVE: /* ヘヴンズドライブ */
|
||||
case PR_SANCTUARY: /* サンクチュアリ */
|
||||
@ -5306,10 +5079,10 @@ struct skill_unit_group *skill_unitsetting( struct block_list *src, int skillid,
|
||||
range=1;
|
||||
break;
|
||||
|
||||
case WZ_FROSTNOVA: /* フロストノヴァ */
|
||||
limit=500;
|
||||
range=5;
|
||||
break;
|
||||
//case WZ_FROSTNOVA: /* フロストノヴァ */
|
||||
// limit=500;
|
||||
// range=5;
|
||||
// break;
|
||||
|
||||
case WZ_HEAVENDRIVE: /* ヘヴンズドライブ */
|
||||
limit=500;
|
||||
|
201
src/map/skill.h
201
src/map/skill.h
@ -180,207 +180,6 @@ enum {
|
||||
ST_RECOV_WEIGHT_RATE,ST_MOVE_ENABLE,ST_WATER,
|
||||
};
|
||||
|
||||
enum { // struct map_session_data の status_changeの番?テ?ブル
|
||||
// SC_SENDMAX未?はクライアントへの通知あり。
|
||||
// 2-2次職の値はなんかめちゃくちゃっぽいので暫定。たぶん?更されます。
|
||||
SC_SENDMAX = 128, // note: max is now 182, but we'll need to do alot of moving around
|
||||
SC_PROVOKE = 0,
|
||||
SC_ENDURE = 1,
|
||||
SC_TWOHANDQUICKEN = 2,
|
||||
SC_CONCENTRATE = 3,
|
||||
SC_HIDING = 4,
|
||||
SC_CLOAKING = 5,
|
||||
SC_ENCPOISON = 6,
|
||||
SC_POISONREACT = 7,
|
||||
SC_QUAGMIRE = 8,
|
||||
SC_ANGELUS = 9,
|
||||
SC_BLESSING = 10,
|
||||
SC_SIGNUMCRUCIS = 11,
|
||||
SC_INCREASEAGI = 12,
|
||||
SC_DECREASEAGI = 13,
|
||||
SC_SLOWPOISON = 14,
|
||||
SC_IMPOSITIO = 15,
|
||||
SC_SUFFRAGIUM = 16,
|
||||
SC_ASPERSIO = 17,
|
||||
SC_BENEDICTIO = 18,
|
||||
SC_KYRIE = 19,
|
||||
SC_MAGNIFICAT = 20,
|
||||
SC_GLORIA = 21,
|
||||
SC_AETERNA = 22,
|
||||
SC_ADRENALINE = 23,
|
||||
SC_WEAPONPERFECTION = 24,
|
||||
SC_OVERTHRUST = 25,
|
||||
SC_MAXIMIZEPOWER = 26,
|
||||
SC_RIDING = 27,
|
||||
SC_FALCON = 28,
|
||||
SC_TRICKDEAD = 29,
|
||||
SC_LOUD = 30,
|
||||
SC_ENERGYCOAT = 31,
|
||||
SC_HALLUCINATION = 34,
|
||||
SC_WEIGHT50 = 35,
|
||||
SC_WEIGHT90 = 36,
|
||||
SC_SPEEDPOTION0 = 37,
|
||||
SC_SPEEDPOTION1 = 38,
|
||||
SC_SPEEDPOTION2 = 39,
|
||||
SC_SPEEDPOTION3 = 40,
|
||||
//-- 40-50
|
||||
SC_STRIPWEAPON = 50,
|
||||
SC_STRIPSHIELD = 51,
|
||||
SC_STRIPARMOR = 52,
|
||||
SC_STRIPHELM = 53,
|
||||
SC_CP_WEAPON = 54,
|
||||
SC_CP_SHIELD = 55,
|
||||
SC_CP_ARMOR = 56,
|
||||
SC_CP_HELM = 57,
|
||||
SC_AUTOGUARD = 58,
|
||||
SC_REFLECTSHIELD = 59,
|
||||
SC_DEVOTION = 60,
|
||||
SC_PROVIDENCE = 61,
|
||||
SC_DEFENDER = 62,
|
||||
SC_AUTOSPELL = 65,
|
||||
SC_SPEARSQUICKEN = 68,
|
||||
//-- 69-85
|
||||
SC_EXPLOSIONSPIRITS = 86,
|
||||
SC_STEELBODY = 87,
|
||||
SC_COMBO = 89,
|
||||
SC_FLAMELAUNCHER = 90,
|
||||
SC_FROSTWEAPON = 91,
|
||||
SC_LIGHTNINGLOADER = 92,
|
||||
SC_SEISMICWEAPON = 93,
|
||||
//-- 94-102
|
||||
SC_AURABLADE = 103, /* オ?ラブレ?ド */
|
||||
SC_PARRYING = 104, /* パリイング */
|
||||
SC_CONCENTRATION = 105, /* コンセントレ?ション */
|
||||
SC_TENSIONRELAX = 106, /* テンションリラックス */
|
||||
SC_BERSERK = 107, /* バ?サ?ク */
|
||||
//-- 108, 109
|
||||
SC_ASSUMPTIO = 110, /* アシャンプティオ */
|
||||
//-- 111, 112
|
||||
SC_MAGICPOWER = 113, /* 魔法力?幅 */
|
||||
//-- 114
|
||||
SC_TRUESIGHT = 115, /* トゥル?サイト */
|
||||
SC_WINDWALK = 116, /* ウインドウォ?ク */
|
||||
SC_MELTDOWN = 117, /* メルトダウン */
|
||||
SC_CARTBOOST = 118, /* カ?トブ?スト */
|
||||
//-- 119
|
||||
SC_REJECTSWORD = 120, /* リジェクトソ?ド */
|
||||
SC_MARIONETTE = 121, /* マリオネットコントロ?ル */
|
||||
//-- 122, 123
|
||||
SC_HEADCRUSH = 124, /* ヘッドクラッシュ */
|
||||
SC_JOINTBEAT = 125, /* ジョイントビ?ト */
|
||||
//-- 126, 127
|
||||
|
||||
SC_STONE = 128,
|
||||
SC_FREEZE = 129,
|
||||
// <-- 130 = a baby skill status?
|
||||
SC_STAN = 130,
|
||||
SC_SLEEP = 131,
|
||||
// <-- 132 = another baby skill?
|
||||
SC_POISON = 132,
|
||||
SC_CURSE = 133,
|
||||
SC_SILENCE = 134,
|
||||
SC_CONFUSION = 135,
|
||||
SC_BLIND = 136,
|
||||
SC_DIVINA = SC_SILENCE,
|
||||
|
||||
SC_SAFETYWALL = 140,
|
||||
SC_PNEUMA = 141,
|
||||
SC_WATERBALL = 142,
|
||||
SC_ANKLE = 143,
|
||||
SC_DANCING = 144,
|
||||
SC_KEEPING = 145,
|
||||
SC_BARRIER = 146,
|
||||
|
||||
SC_MAGICROD = 149,
|
||||
SC_SIGHT = 150,
|
||||
SC_RUWACH = 151,
|
||||
SC_AUTOCOUNTER = 152,
|
||||
SC_VOLCANO = 153,
|
||||
SC_DELUGE = 154,
|
||||
SC_VIOLENTGALE = 155,
|
||||
SC_BLADESTOP_WAIT = 156,
|
||||
SC_BLADESTOP = 157,
|
||||
SC_EXTREMITYFIST = 158,
|
||||
SC_GRAFFITI = 159,
|
||||
|
||||
SC_LULLABY =160,
|
||||
SC_RICHMANKIM =161,
|
||||
SC_ETERNALCHAOS =162,
|
||||
SC_DRUMBATTLE =163,
|
||||
SC_NIBELUNGEN =164,
|
||||
SC_ROKISWEIL =165,
|
||||
SC_INTOABYSS =166,
|
||||
SC_SIEGFRIED =167,
|
||||
SC_DISSONANCE =168,
|
||||
SC_WHISTLE =169,
|
||||
SC_ASSNCROS =170,
|
||||
SC_POEMBRAGI =171,
|
||||
SC_APPLEIDUN =172,
|
||||
SC_UGLYDANCE =173,
|
||||
SC_HUMMING =174,
|
||||
SC_DONTFORGETME =175,
|
||||
SC_FORTUNE =176,
|
||||
SC_SERVICE4U =177,
|
||||
SC_SPIDERWEB =180, /* スパイダ?ウェッブ */
|
||||
// SC_EDP // moved
|
||||
SC_SACRIFICE =184, /* サクリファイス */
|
||||
SC_WEDDING =187, //結婚用(結婚衣裳になって?くのが?いとか)
|
||||
SC_NOCHAT =188, //赤エモ?態
|
||||
SC_SPLASHER =189, /* ベナムスプラッシャ? */
|
||||
SC_SELFDESTRUCTION =190, /* 自爆 */
|
||||
SC_MEMORIZE =197, /* メモライズ */ // changed from 181 to 192
|
||||
SC_DPOISON =198, /* 猛毒 */
|
||||
|
||||
// Used by English Team
|
||||
SC_BROKNARMOR =32,
|
||||
SC_BROKNWEAPON =33,
|
||||
SC_SPEEDUP0 =41, // for skill speedup
|
||||
SC_SPEEDUP1 =42, // for skill speedup
|
||||
SC_SLOWDOWN =45, // for skill slowdown
|
||||
SC_AUTOBERSERK =46,
|
||||
SC_SIGHTTRASHER =73,
|
||||
SC_BASILICA =102, // temporarily use this before an actual id is found [celest]
|
||||
SC_EDP =114, /* エフェクトが判明したら移動 */
|
||||
SC_MARIONETTE2 =122, // Marionette target
|
||||
SC_ENSEMBLE =159,
|
||||
SC_FOGWALL =178,
|
||||
SC_GOSPEL =179,
|
||||
SC_PRESERVE =181,
|
||||
SC_BATTLEORDERS =182,
|
||||
SC_MOONLIT =183,
|
||||
SC_ATKPOT =185, // [Valaris]
|
||||
SC_MATKPOT =186, // [Valaris]
|
||||
SC_MINDBREAKER =191,
|
||||
SC_SPELLBREAKER =192,
|
||||
SC_LANDPROTECTOR =193,
|
||||
SC_ADAPTATION =194,
|
||||
SC_CHASEWALK =195,
|
||||
SC_REGENERATION =196,
|
||||
|
||||
|
||||
// [Celest]
|
||||
SC_BLEEDING = 124, // Temporarily same id as headcrush
|
||||
|
||||
// -- testing various SC effects
|
||||
// SC_AURABLADE =81,
|
||||
// SC_CONCENTRATION =83,
|
||||
// SC_TENSIONRELAX =84,
|
||||
// SC_BERSERK =85,
|
||||
// SC_CALLSPIRITS =100,
|
||||
// SC_PARRYING =100,
|
||||
// SC_FREECAST =101,
|
||||
// SC_ABSORBSPIRIT =102,
|
||||
// SC_ASSUMPTIO =114,
|
||||
// SC_SHARPSHOOT =127,
|
||||
// SC_GANGSTER =184,
|
||||
// SC_CANNIBALIZE =186,
|
||||
// SC_SPHEREMINE =187,
|
||||
// SC_METEOSTORM =189,
|
||||
// SC_CASTCANCEL =190,
|
||||
// SC_SPIDERWEB =191,
|
||||
};
|
||||
extern int SkillStatusChangeTable[];
|
||||
|
||||
enum {
|
||||
NV_BASIC = 1,
|
||||
|
||||
|
231
src/map/status.c
231
src/map/status.c
@ -23,6 +23,237 @@
|
||||
#include "script.h"
|
||||
#include "showmsg.h"
|
||||
|
||||
/* スキル番?=>ステ?タス異常番??換テ?ブル */
|
||||
int SkillStatusChangeTable[]={ /* status.hのenumのSC_***とあわせること */
|
||||
/* 0- */
|
||||
-1,-1,-1,-1,-1,-1,
|
||||
SC_PROVOKE, /* プロボック */
|
||||
-1, 1,-1,
|
||||
/* 10- */
|
||||
SC_SIGHT, /* サイト */
|
||||
-1,-1,-1,-1,
|
||||
SC_FREEZE, /* フロストダイバ? */
|
||||
SC_STONE, /* スト?ンカ?ス */
|
||||
-1,-1,-1,
|
||||
/* 20- */
|
||||
-1,-1,-1,-1,
|
||||
SC_RUWACH, /* ルアフ */
|
||||
-1,-1,-1,-1,
|
||||
SC_INCREASEAGI, /* 速度?加 */
|
||||
/* 30- */
|
||||
SC_DECREASEAGI, /* 速度減少 */
|
||||
-1,
|
||||
SC_SIGNUMCRUCIS, /* シグナムクルシス */
|
||||
SC_ANGELUS, /* エンジェラス */
|
||||
SC_BLESSING, /* ブレッシング */
|
||||
-1,-1,-1,-1,-1,
|
||||
/* 40- */
|
||||
-1,-1,-1,-1,-1,
|
||||
SC_CONCENTRATE, /* 集中力向上 */
|
||||
-1,-1,-1,-1,
|
||||
/* 50- */
|
||||
-1,
|
||||
SC_HIDING, /* ハイディング */
|
||||
-1,-1,-1,-1,-1,-1,-1,-1,
|
||||
/* 60- */
|
||||
SC_TWOHANDQUICKEN, /* 2HQ */
|
||||
SC_AUTOCOUNTER,
|
||||
-1,-1,-1,-1,
|
||||
SC_IMPOSITIO, /* インポシティオマヌス */
|
||||
SC_SUFFRAGIUM, /* サフラギウム */
|
||||
SC_ASPERSIO, /* アスペルシオ */
|
||||
SC_BENEDICTIO, /* 聖?降福 */
|
||||
/* 70- */
|
||||
-1,
|
||||
SC_SLOWPOISON,
|
||||
-1,
|
||||
SC_KYRIE, /* キリエエレイソン */
|
||||
SC_MAGNIFICAT, /* マグニフィカ?ト */
|
||||
SC_GLORIA, /* グロリア */
|
||||
SC_DIVINA, /* レックスディビ?ナ */
|
||||
-1,
|
||||
SC_AETERNA, /* レックスエ?テルナ */
|
||||
-1,
|
||||
/* 80- */
|
||||
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
|
||||
/* 90- */
|
||||
-1,-1,
|
||||
SC_QUAGMIRE, /* クァグマイア */
|
||||
-1,-1,-1,-1,-1,-1,-1,
|
||||
/* 100- */
|
||||
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
|
||||
/* 110- */
|
||||
-1,
|
||||
SC_ADRENALINE, /* アドレナリンラッシュ */
|
||||
SC_WEAPONPERFECTION,/* ウェポンパ?フェクション */
|
||||
SC_OVERTHRUST, /* オ?バ?トラスト */
|
||||
SC_MAXIMIZEPOWER, /* マキシマイズパワ? */
|
||||
-1,-1,-1,-1,-1,
|
||||
/* 120- */
|
||||
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
|
||||
/* 130- */
|
||||
-1,-1,-1,-1,-1,
|
||||
SC_CLOAKING, /* クロ?キング */
|
||||
SC_STAN, /* ソニックブロ? */
|
||||
-1,
|
||||
SC_ENCPOISON, /* エンチャントポイズン */
|
||||
SC_POISONREACT, /* ポイズンリアクト */
|
||||
/* 140- */
|
||||
SC_POISON, /* ベノムダスト */
|
||||
SC_SPLASHER, /* ベナムスプラッシャ? */
|
||||
-1,
|
||||
SC_TRICKDEAD, /* 死んだふり */
|
||||
-1,-1,SC_AUTOBERSERK,-1,-1,-1,
|
||||
/* 150- */
|
||||
-1,-1,-1,-1,-1,
|
||||
SC_LOUD, /* ラウドボイス */
|
||||
-1,
|
||||
SC_ENERGYCOAT, /* エナジ?コ?ト */
|
||||
-1,-1,
|
||||
/* 160- */
|
||||
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
|
||||
-1,-1,-1,
|
||||
SC_SELFDESTRUCTION,
|
||||
-1,-1,-1,-1,-1,-1,
|
||||
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
|
||||
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
|
||||
-1,
|
||||
SC_KEEPING,
|
||||
-1,-1,
|
||||
SC_BARRIER,
|
||||
-1,-1,
|
||||
SC_HALLUCINATION,
|
||||
-1,-1,
|
||||
/* 210- */
|
||||
-1,-1,-1,-1,-1,
|
||||
SC_STRIPWEAPON,
|
||||
SC_STRIPSHIELD,
|
||||
SC_STRIPARMOR,
|
||||
SC_STRIPHELM,
|
||||
-1,
|
||||
/* 220- */
|
||||
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
|
||||
/* 230- */
|
||||
-1,-1,-1,-1,
|
||||
SC_CP_WEAPON,
|
||||
SC_CP_SHIELD,
|
||||
SC_CP_ARMOR,
|
||||
SC_CP_HELM,
|
||||
-1,-1,
|
||||
/* 240- */
|
||||
-1,-1,-1,-1,-1,-1,-1,-1,-1,
|
||||
SC_AUTOGUARD,
|
||||
/* 250- */
|
||||
-1,-1,
|
||||
SC_REFLECTSHIELD,
|
||||
-1,-1,
|
||||
SC_DEVOTION,
|
||||
SC_PROVIDENCE,
|
||||
SC_DEFENDER,
|
||||
SC_SPEARSQUICKEN,
|
||||
-1,
|
||||
/* 260- */
|
||||
-1,-1,-1,-1,-1,-1,-1,-1,
|
||||
SC_STEELBODY,
|
||||
SC_BLADESTOP_WAIT,
|
||||
/* 270- */
|
||||
SC_EXPLOSIONSPIRITS,
|
||||
SC_EXTREMITYFIST,
|
||||
-1,-1,-1,-1,
|
||||
SC_MAGICROD,
|
||||
-1,-1,-1,
|
||||
/* 280- */
|
||||
SC_FLAMELAUNCHER,
|
||||
SC_FROSTWEAPON,
|
||||
SC_LIGHTNINGLOADER,
|
||||
SC_SEISMICWEAPON,
|
||||
-1,
|
||||
SC_VOLCANO,
|
||||
SC_DELUGE,
|
||||
SC_VIOLENTGALE,
|
||||
SC_LANDPROTECTOR,
|
||||
-1,
|
||||
/* 290- */
|
||||
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
|
||||
/* 300- */
|
||||
-1,-1,-1,-1,-1,-1,
|
||||
SC_LULLABY,
|
||||
SC_RICHMANKIM,
|
||||
SC_ETERNALCHAOS,
|
||||
SC_DRUMBATTLE,
|
||||
/* 310- */
|
||||
SC_NIBELUNGEN,
|
||||
SC_ROKISWEIL,
|
||||
SC_INTOABYSS,
|
||||
SC_SIEGFRIED,
|
||||
-1,-1,-1,
|
||||
SC_DISSONANCE,
|
||||
-1,
|
||||
SC_WHISTLE,
|
||||
/* 320- */
|
||||
SC_ASSNCROS,
|
||||
SC_POEMBRAGI,
|
||||
SC_APPLEIDUN,
|
||||
-1,-1,
|
||||
SC_UGLYDANCE,
|
||||
-1,
|
||||
SC_HUMMING,
|
||||
SC_DONTFORGETME,
|
||||
SC_FORTUNE,
|
||||
/* 330- */
|
||||
SC_SERVICE4U,
|
||||
SC_SELFDESTRUCTION,
|
||||
-1,-1,-1,-1,-1,-1,-1,-1,
|
||||
/* 340- */
|
||||
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
|
||||
/* 350- */
|
||||
-1,-1,-1,-1,-1,
|
||||
SC_AURABLADE,
|
||||
SC_PARRYING,
|
||||
SC_CONCENTRATION,
|
||||
SC_TENSIONRELAX,
|
||||
SC_BERSERK,
|
||||
/* 360- */
|
||||
SC_BERSERK,
|
||||
SC_ASSUMPTIO,
|
||||
SC_BASILICA,
|
||||
-1,-1,-1,
|
||||
SC_MAGICPOWER,
|
||||
-1,
|
||||
SC_SACRIFICE,
|
||||
SC_GOSPEL,
|
||||
/* 370- */
|
||||
-1,-1,-1,-1,-1,-1,-1,-1,
|
||||
SC_EDP,
|
||||
-1,
|
||||
/* 380- */
|
||||
SC_TRUESIGHT,
|
||||
-1,-1,
|
||||
SC_WINDWALK,
|
||||
SC_MELTDOWN,
|
||||
-1,-1,
|
||||
SC_CARTBOOST,
|
||||
-1,
|
||||
SC_CHASEWALK,
|
||||
/* 390- */
|
||||
SC_REJECTSWORD,
|
||||
-1,-1,-1,-1,
|
||||
SC_MOONLIT,
|
||||
SC_MARIONETTE,
|
||||
-1,
|
||||
SC_HEADCRUSH,
|
||||
SC_JOINTBEAT,
|
||||
/* 400 */
|
||||
-1,-1,
|
||||
SC_MINDBREAKER,
|
||||
SC_MEMORIZE,
|
||||
SC_FOGWALL,
|
||||
SC_SPIDERWEB,
|
||||
-1,-1,-1,-1,
|
||||
/* 410- */
|
||||
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
|
||||
};
|
||||
|
||||
static int max_weight_base[MAX_PC_CLASS];
|
||||
static int hp_coefficient[MAX_PC_CLASS];
|
||||
static int hp_coefficient2[MAX_PC_CLASS];
|
||||
|
201
src/map/status.h
201
src/map/status.h
@ -1,6 +1,207 @@
|
||||
#ifndef _STATUS_H_
|
||||
#define _STATUS_H_
|
||||
|
||||
enum { // struct map_session_data の status_changeの番?テ?ブル
|
||||
// SC_SENDMAX未?はクライアントへの通知あり。
|
||||
// 2-2次職の値はなんかめちゃくちゃっぽいので暫定。たぶん?更されます。
|
||||
SC_SENDMAX = 128, // note: max is now 182, but we'll need to do alot of moving around
|
||||
SC_PROVOKE = 0,
|
||||
SC_ENDURE = 1,
|
||||
SC_TWOHANDQUICKEN = 2,
|
||||
SC_CONCENTRATE = 3,
|
||||
SC_HIDING = 4,
|
||||
SC_CLOAKING = 5,
|
||||
SC_ENCPOISON = 6,
|
||||
SC_POISONREACT = 7,
|
||||
SC_QUAGMIRE = 8,
|
||||
SC_ANGELUS = 9,
|
||||
SC_BLESSING = 10,
|
||||
SC_SIGNUMCRUCIS = 11,
|
||||
SC_INCREASEAGI = 12,
|
||||
SC_DECREASEAGI = 13,
|
||||
SC_SLOWPOISON = 14,
|
||||
SC_IMPOSITIO = 15,
|
||||
SC_SUFFRAGIUM = 16,
|
||||
SC_ASPERSIO = 17,
|
||||
SC_BENEDICTIO = 18,
|
||||
SC_KYRIE = 19,
|
||||
SC_MAGNIFICAT = 20,
|
||||
SC_GLORIA = 21,
|
||||
SC_AETERNA = 22,
|
||||
SC_ADRENALINE = 23,
|
||||
SC_WEAPONPERFECTION = 24,
|
||||
SC_OVERTHRUST = 25,
|
||||
SC_MAXIMIZEPOWER = 26,
|
||||
SC_RIDING = 27,
|
||||
SC_FALCON = 28,
|
||||
SC_TRICKDEAD = 29,
|
||||
SC_LOUD = 30,
|
||||
SC_ENERGYCOAT = 31,
|
||||
SC_HALLUCINATION = 34,
|
||||
SC_WEIGHT50 = 35,
|
||||
SC_WEIGHT90 = 36,
|
||||
SC_SPEEDPOTION0 = 37,
|
||||
SC_SPEEDPOTION1 = 38,
|
||||
SC_SPEEDPOTION2 = 39,
|
||||
SC_SPEEDPOTION3 = 40,
|
||||
//-- 40-50
|
||||
SC_STRIPWEAPON = 50,
|
||||
SC_STRIPSHIELD = 51,
|
||||
SC_STRIPARMOR = 52,
|
||||
SC_STRIPHELM = 53,
|
||||
SC_CP_WEAPON = 54,
|
||||
SC_CP_SHIELD = 55,
|
||||
SC_CP_ARMOR = 56,
|
||||
SC_CP_HELM = 57,
|
||||
SC_AUTOGUARD = 58,
|
||||
SC_REFLECTSHIELD = 59,
|
||||
SC_DEVOTION = 60,
|
||||
SC_PROVIDENCE = 61,
|
||||
SC_DEFENDER = 62,
|
||||
SC_AUTOSPELL = 65,
|
||||
SC_SPEARSQUICKEN = 68,
|
||||
//-- 69-85
|
||||
SC_EXPLOSIONSPIRITS = 86,
|
||||
SC_STEELBODY = 87,
|
||||
SC_COMBO = 89,
|
||||
SC_FLAMELAUNCHER = 90,
|
||||
SC_FROSTWEAPON = 91,
|
||||
SC_LIGHTNINGLOADER = 92,
|
||||
SC_SEISMICWEAPON = 93,
|
||||
//-- 94-102
|
||||
SC_AURABLADE = 103, /* オ?ラブレ?ド */
|
||||
SC_PARRYING = 104, /* パリイング */
|
||||
SC_CONCENTRATION = 105, /* コンセントレ?ション */
|
||||
SC_TENSIONRELAX = 106, /* テンションリラックス */
|
||||
SC_BERSERK = 107, /* バ?サ?ク */
|
||||
//-- 108, 109
|
||||
SC_ASSUMPTIO = 110, /* アシャンプティオ */
|
||||
//-- 111, 112
|
||||
SC_MAGICPOWER = 113, /* 魔法力?幅 */
|
||||
//-- 114
|
||||
SC_TRUESIGHT = 115, /* トゥル?サイト */
|
||||
SC_WINDWALK = 116, /* ウインドウォ?ク */
|
||||
SC_MELTDOWN = 117, /* メルトダウン */
|
||||
SC_CARTBOOST = 118, /* カ?トブ?スト */
|
||||
//-- 119
|
||||
SC_REJECTSWORD = 120, /* リジェクトソ?ド */
|
||||
SC_MARIONETTE = 121, /* マリオネットコントロ?ル */
|
||||
//-- 122, 123
|
||||
SC_HEADCRUSH = 124, /* ヘッドクラッシュ */
|
||||
SC_JOINTBEAT = 125, /* ジョイントビ?ト */
|
||||
//-- 126, 127
|
||||
|
||||
SC_STONE = 128,
|
||||
SC_FREEZE = 129,
|
||||
// <-- 130 = a baby skill status?
|
||||
SC_STAN = 130,
|
||||
SC_SLEEP = 131,
|
||||
// <-- 132 = another baby skill?
|
||||
SC_POISON = 132,
|
||||
SC_CURSE = 133,
|
||||
SC_SILENCE = 134,
|
||||
SC_CONFUSION = 135,
|
||||
SC_BLIND = 136,
|
||||
SC_DIVINA = SC_SILENCE,
|
||||
|
||||
SC_SAFETYWALL = 140,
|
||||
SC_PNEUMA = 141,
|
||||
SC_WATERBALL = 142,
|
||||
SC_ANKLE = 143,
|
||||
SC_DANCING = 144,
|
||||
SC_KEEPING = 145,
|
||||
SC_BARRIER = 146,
|
||||
|
||||
SC_MAGICROD = 149,
|
||||
SC_SIGHT = 150,
|
||||
SC_RUWACH = 151,
|
||||
SC_AUTOCOUNTER = 152,
|
||||
SC_VOLCANO = 153,
|
||||
SC_DELUGE = 154,
|
||||
SC_VIOLENTGALE = 155,
|
||||
SC_BLADESTOP_WAIT = 156,
|
||||
SC_BLADESTOP = 157,
|
||||
SC_EXTREMITYFIST = 158,
|
||||
SC_GRAFFITI = 159,
|
||||
|
||||
SC_LULLABY =160,
|
||||
SC_RICHMANKIM =161,
|
||||
SC_ETERNALCHAOS =162,
|
||||
SC_DRUMBATTLE =163,
|
||||
SC_NIBELUNGEN =164,
|
||||
SC_ROKISWEIL =165,
|
||||
SC_INTOABYSS =166,
|
||||
SC_SIEGFRIED =167,
|
||||
SC_DISSONANCE =168,
|
||||
SC_WHISTLE =169,
|
||||
SC_ASSNCROS =170,
|
||||
SC_POEMBRAGI =171,
|
||||
SC_APPLEIDUN =172,
|
||||
SC_UGLYDANCE =173,
|
||||
SC_HUMMING =174,
|
||||
SC_DONTFORGETME =175,
|
||||
SC_FORTUNE =176,
|
||||
SC_SERVICE4U =177,
|
||||
SC_SPIDERWEB =180, /* スパイダ?ウェッブ */
|
||||
// SC_EDP // moved
|
||||
SC_SACRIFICE =184, /* サクリファイス */
|
||||
SC_WEDDING =187, //結婚用(結婚衣裳になって?くのが?いとか)
|
||||
SC_NOCHAT =188, //赤エモ?態
|
||||
SC_SPLASHER =189, /* ベナムスプラッシャ? */
|
||||
SC_SELFDESTRUCTION =190, /* 自爆 */
|
||||
SC_MEMORIZE =197, /* メモライズ */ // changed from 181 to 192
|
||||
SC_DPOISON =198, /* 猛毒 */
|
||||
|
||||
// Used by English Team
|
||||
SC_BROKNARMOR =32,
|
||||
SC_BROKNWEAPON =33,
|
||||
SC_SPEEDUP0 =41, // for skill speedup
|
||||
SC_SPEEDUP1 =42, // for skill speedup
|
||||
SC_SLOWDOWN =45, // for skill slowdown
|
||||
SC_AUTOBERSERK =46,
|
||||
SC_SIGHTTRASHER =73,
|
||||
SC_BASILICA =102, // temporarily use this before an actual id is found [celest]
|
||||
SC_EDP =114, /* エフェクトが判明したら移動 */
|
||||
SC_MARIONETTE2 =122, // Marionette target
|
||||
SC_ENSEMBLE =159,
|
||||
SC_FOGWALL =178,
|
||||
SC_GOSPEL =179,
|
||||
SC_PRESERVE =181,
|
||||
SC_BATTLEORDERS =182,
|
||||
SC_MOONLIT =183,
|
||||
SC_ATKPOT =185, // [Valaris]
|
||||
SC_MATKPOT =186, // [Valaris]
|
||||
SC_MINDBREAKER =191,
|
||||
SC_SPELLBREAKER =192,
|
||||
SC_LANDPROTECTOR =193,
|
||||
SC_ADAPTATION =194,
|
||||
SC_CHASEWALK =195,
|
||||
SC_REGENERATION =196,
|
||||
|
||||
|
||||
// [Celest]
|
||||
SC_BLEEDING = 124, // Temporarily same id as headcrush
|
||||
|
||||
// -- testing various SC effects
|
||||
// SC_AURABLADE =81,
|
||||
// SC_CONCENTRATION =83,
|
||||
// SC_TENSIONRELAX =84,
|
||||
// SC_BERSERK =85,
|
||||
// SC_CALLSPIRITS =100,
|
||||
// SC_PARRYING =100,
|
||||
// SC_FREECAST =101,
|
||||
// SC_ABSORBSPIRIT =102,
|
||||
// SC_ASSUMPTIO =114,
|
||||
// SC_SHARPSHOOT =127,
|
||||
// SC_GANGSTER =184,
|
||||
// SC_CANNIBALIZE =186,
|
||||
// SC_SPHEREMINE =187,
|
||||
// SC_METEOSTORM =189,
|
||||
// SC_CASTCANCEL =190,
|
||||
// SC_SPIDERWEB =191,
|
||||
};
|
||||
extern int SkillStatusChangeTable[];
|
||||
|
||||
// パラメータ所得系 battle.c より移動
|
||||
int status_get_class(struct block_list *bl);
|
||||
int status_get_dir(struct block_list *bl);
|
||||
|
Loading…
x
Reference in New Issue
Block a user