StoneAge/saac/saacproto_serv.c
2018-08-07 00:51:35 -07:00

2349 lines
104 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/* output by ../../bin/lsgen.perl 0.41 ( 1998 May)
* made Thu Feb 17 17:30:27 2000
* user ringo
* host indy
* file /opt/ringo/chsa/src/saac/./saacproto_serv.c
* util ./saacproto_util.c , ./saacproto_util.h
* src /opt/ringo/chsa/src/saac/../../doc/saacproto.html
*/
#define _SAACPROTOSERV_C_
#include "version.h"
#include "saacproto_serv.h"
#include "main.h"
#ifdef _RECAL_BACKUP_PLAYER // WON »ØËݹ¦ÄÜ
#include "recv.h"
#endif
#ifdef _DEATH_FAMILY_GM_COMMAND // WON ADD ¼Ò×åÕ½GMÖ¸Áî
#include "acfamily.h"
#endif
// Nuke : This 'fd' is not a socket, it's the index of structure connect
int saacproto_ServerDispatchMessage( int fd , char *encoded, char *debugfun)
{
unsigned int msgid;
char funcname[1024];
saacproto_splitString( encoded );
saacproto_GetMessageInfo(&msgid , funcname ,sizeof(funcname), saacproto.token_list );
if( strcmp( funcname , "ACServerLogin" ) == 0 ){
char* servername;
char* serverpas;
servername = saacproto_wrapStringAddr( saacproto_stringwrapper[1] , saacproto.workbufsize , saacproto_demkstr_string( saacproto.token_list[2] ));
serverpas = saacproto_wrapStringAddr( saacproto_stringwrapper[2] , saacproto.workbufsize , saacproto_demkstr_string( saacproto.token_list[3] ));
saacproto_ACServerLogin_recv( fd,servername,serverpas);
return 0;
}
if( strcmp( funcname , "ACServerLogout" ) == 0 ){
saacproto_ACServerLogout_recv( fd);
return 0;
}
if( strcmp( funcname , "ACCharList" ) == 0 ){
char* id;
char* pas;
int mesgid;
id = saacproto_wrapStringAddr( saacproto_stringwrapper[1] , saacproto.workbufsize , saacproto_demkstr_string( saacproto.token_list[2] ));
pas = saacproto_wrapStringAddr( saacproto_stringwrapper[2] , saacproto.workbufsize , saacproto_demkstr_string( saacproto.token_list[3] ));
mesgid = saacproto_demkstr_int( saacproto.token_list[4] );
saacproto_ACCharList_recv( fd,id,pas,mesgid);
return 0;
}
if( strcmp( funcname , "ACCharLoad" ) == 0 ){
char* id;
char* pas;
char* charname;
int lock;
char* opt;
int mesgid;
id = saacproto_wrapStringAddr( saacproto_stringwrapper[1] , saacproto.workbufsize , saacproto_demkstr_string( saacproto.token_list[2] ));
pas = saacproto_wrapStringAddr( saacproto_stringwrapper[2] , saacproto.workbufsize , saacproto_demkstr_string( saacproto.token_list[3] ));
charname = saacproto_wrapStringAddr( saacproto_stringwrapper[3] , saacproto.workbufsize , saacproto_demkstr_string( saacproto.token_list[4] ));
lock = saacproto_demkstr_int( saacproto.token_list[5] );
opt = saacproto_wrapStringAddr( saacproto_stringwrapper[5] , saacproto.workbufsize , saacproto_demkstr_string( saacproto.token_list[6] ));
mesgid = saacproto_demkstr_int( saacproto.token_list[7] );
saacproto_ACCharLoad_recv( fd,id,pas,charname,lock,opt,mesgid);
return 0;
}
#ifdef _RELOGIN
if( strcmp( funcname , "ACCharLoadII" ) == 0 ){
char* id;
char* pas;
char* charname;
int lock;
char* opt;
int mesgid;
int gs1;
int gs2;
id = saacproto_wrapStringAddr( saacproto_stringwrapper[1] , saacproto.workbufsize , saacproto_demkstr_string( saacproto.token_list[2] ));
pas = saacproto_wrapStringAddr( saacproto_stringwrapper[2] , saacproto.workbufsize , saacproto_demkstr_string( saacproto.token_list[3] ));
charname = saacproto_wrapStringAddr( saacproto_stringwrapper[3] , saacproto.workbufsize , saacproto_demkstr_string( saacproto.token_list[4] ));
lock = saacproto_demkstr_int( saacproto.token_list[5] );
opt = saacproto_wrapStringAddr( saacproto_stringwrapper[5] , saacproto.workbufsize , saacproto_demkstr_string( saacproto.token_list[6] ));
mesgid = saacproto_demkstr_int( saacproto.token_list[7] );
gs1 = saacproto_demkstr_int( saacproto.token_list[8] );
gs2 = saacproto_demkstr_int( saacproto.token_list[9] );
saacproto_ACCharLoadII_recv( fd,id,pas,charname,lock,opt,mesgid,gs1,gs2);
return 0;
}
#endif
if( strcmp( funcname , "ACCharSave" ) == 0 ){
char* id;
char* charname;
char* opt;
char* charinfo;
int unlock;
int mesgid;
#ifdef _NewSave
int charindex;
#endif
id = saacproto_wrapStringAddr( saacproto_stringwrapper[1] , saacproto.workbufsize , saacproto_demkstr_string( saacproto.token_list[2] ));
charname = saacproto_wrapStringAddr( saacproto_stringwrapper[2] , saacproto.workbufsize , saacproto_demkstr_string( saacproto.token_list[3] ));
opt = saacproto_wrapStringAddr( saacproto_stringwrapper[3] , saacproto.workbufsize , saacproto_demkstr_string( saacproto.token_list[4] ));
charinfo = saacproto_wrapStringAddr( saacproto_stringwrapper[4] , saacproto.workbufsize , saacproto_demkstr_string( saacproto.token_list[5] ));
unlock = saacproto_demkstr_int( saacproto.token_list[6] );
mesgid = saacproto_demkstr_int( saacproto.token_list[7] );
#ifdef _NewSave
charindex = saacproto_demkstr_int( saacproto.token_list[8] );
saacproto_ACCharSave_recv( fd,id,charname,opt,charinfo,unlock,mesgid,charindex);
#else
saacproto_ACCharSave_recv( fd,id,charname,opt,charinfo,unlock,mesgid);
#endif
return 0;
}
#ifdef _RELOGIN
if( strcmp( funcname , "ACCharSaveII" ) == 0 ){
char* id;
char* charname;
char* opt;
char* charinfo;
int unlock;
int mesgid;
int charindex;
int gs1;
int gs2;
id = saacproto_wrapStringAddr( saacproto_stringwrapper[1] , saacproto.workbufsize , saacproto_demkstr_string( saacproto.token_list[2] ));
charname = saacproto_wrapStringAddr( saacproto_stringwrapper[2] , saacproto.workbufsize , saacproto_demkstr_string( saacproto.token_list[3] ));
opt = saacproto_wrapStringAddr( saacproto_stringwrapper[3] , saacproto.workbufsize , saacproto_demkstr_string( saacproto.token_list[4] ));
charinfo = saacproto_wrapStringAddr( saacproto_stringwrapper[4] , saacproto.workbufsize , saacproto_demkstr_string( saacproto.token_list[5] ));
unlock = saacproto_demkstr_int( saacproto.token_list[6] );
mesgid = saacproto_demkstr_int( saacproto.token_list[7] );
charindex = saacproto_demkstr_int( saacproto.token_list[8] );
charindex = saacproto_demkstr_int( saacproto.token_list[9] );
charindex = saacproto_demkstr_int( saacproto.token_list[10] );
// saacproto_ACCharSaveII_recv( fd,id,charname,opt,charinfo,unlock,mesgid,charindex,gs1,gs2);
saacproto_ACCharSaveII_recv( fd,id,charname,opt,charinfo,unlock,mesgid,charindex);
return 0;
}
#endif
if( strcmp( funcname , "ACCharDelete" ) == 0 ){
char* id;
char* passwd;
char* charname;
char* option;
int mesgid;
id = saacproto_wrapStringAddr( saacproto_stringwrapper[1] , saacproto.workbufsize , saacproto_demkstr_string( saacproto.token_list[2] ));
passwd = saacproto_wrapStringAddr( saacproto_stringwrapper[2] , saacproto.workbufsize , saacproto_demkstr_string( saacproto.token_list[3] ));
charname = saacproto_wrapStringAddr( saacproto_stringwrapper[3] , saacproto.workbufsize , saacproto_demkstr_string( saacproto.token_list[4] ));
option = saacproto_wrapStringAddr( saacproto_stringwrapper[4] , saacproto.workbufsize , saacproto_demkstr_string( saacproto.token_list[5] ));
mesgid = saacproto_demkstr_int( saacproto.token_list[6] );
saacproto_ACCharDelete_recv( fd,id,passwd,charname,option,mesgid);
return 0;
}
if( strcmp( funcname , "ACLock" ) == 0 ){
char* id;
int lock;
int mesgid;
id = saacproto_wrapStringAddr( saacproto_stringwrapper[1] , saacproto.workbufsize , saacproto_demkstr_string( saacproto.token_list[2] ));
lock = saacproto_demkstr_int( saacproto.token_list[3] );
mesgid = saacproto_demkstr_int( saacproto.token_list[4] );
saacproto_ACLock_recv( fd,id,lock,mesgid);
return 0;
}
#ifdef _WAEI_KICK
if( strcmp( funcname , "ACKick" ) == 0 ){
char* id; //ÓûÌßµÄÕʺÅ
int flg; //ʼþflg
int clifd; //GM
id = saacproto_wrapStringAddr( saacproto_stringwrapper[1] , saacproto.workbufsize , saacproto_demkstr_string( saacproto.token_list[2] ));
clifd = saacproto_demkstr_int( saacproto.token_list[3] );
flg = saacproto_demkstr_int( saacproto.token_list[4] );
saacproto_ACKick_recv( fd, id, flg, clifd);
return 0;
}
#endif
#ifdef _NEW_PLAYERGOLD
if( strcmp( funcname , "LoadNEWPlayer" ) == 0 ){
char* filename; //ÓûÌßµÄÕʺÅ
int charaindex;
charaindex = saacproto_demkstr_int( saacproto.token_list[2] );
filename = saacproto_wrapStringAddr( saacproto_stringwrapper[2] , saacproto.workbufsize , saacproto_demkstr_string( saacproto.token_list[3] ));
saacproto_LoadNEWPlayer_recv( fd, charaindex, filename);
return 0;
}
#endif
#ifdef _DEATH_CONTEND
if( strcmp( funcname , "PKLISTGETDATA" ) == 0 ){
int start=-1, count;
start = saacproto_demkstr_int( saacproto.token_list[2] );
count = saacproto_demkstr_int( saacproto.token_list[3] );
saacproto_PKLISTGETDATA_recv( fd, start, count);
return 0;
}
if( strcmp( funcname , "PKLISTUPDATE" ) == 0 ){
char *mecdkey, *tocdkey;
int menum, tonum, winer, flg;
mecdkey = saacproto_wrapStringAddr( saacproto_stringwrapper[1] , saacproto.workbufsize , saacproto_demkstr_string( saacproto.token_list[2] ));
tocdkey = saacproto_wrapStringAddr( saacproto_stringwrapper[2] , saacproto.workbufsize , saacproto_demkstr_string( saacproto.token_list[3] ));
menum = saacproto_demkstr_int( saacproto.token_list[4] );
tonum = saacproto_demkstr_int( saacproto.token_list[5] );
winer = saacproto_demkstr_int( saacproto.token_list[6] );
flg = saacproto_demkstr_int( saacproto.token_list[7] );
saacproto_PKLISTUPDATE_recv( fd, menum, mecdkey, tonum, tocdkey, winer, flg);
return 0;
}
if( strcmp( funcname , "PKLISTCHARTS" ) == 0 ){
int type, flg; //ÒªÇó×ÊѶ
type = saacproto_demkstr_int( saacproto.token_list[2] );
flg = saacproto_demkstr_int( saacproto.token_list[3] );
saacproto_PKLISTCHARTS_recv( fd, type, flg);
return 0;
}
#endif
#ifdef _PAUCTION_MAN
if( strcmp( funcname , "AUCTIONADDITEM" ) == 0 ){
int ItemId=-1;
char *name;
char *data;
int flg, ret;
name = saacproto_wrapStringAddr( saacproto_stringwrapper[1] , saacproto.workbufsize , saacproto_demkstr_string( saacproto.token_list[2] ));
data = saacproto_wrapStringAddr( saacproto_stringwrapper[2] , saacproto.workbufsize , saacproto_demkstr_string( saacproto.token_list[3] ));
ItemId = saacproto_demkstr_int( saacproto.token_list[4] );
ret = saacproto_demkstr_int( saacproto.token_list[5] );
flg = saacproto_demkstr_int( saacproto.token_list[6] );
saacproto_ACItemAuction_recv( fd, name, data, ItemId, ret, flg);
return 0;
}
#endif
if( strcmp( funcname , "ACUCheck" ) == 0 ){
char* mem_id;
int status;
mem_id = saacproto_wrapStringAddr( saacproto_stringwrapper[1] , saacproto.workbufsize , saacproto_demkstr_string( saacproto.token_list[2] ));
status = saacproto_demkstr_int( saacproto.token_list[3] );
saacproto_ACUCheck_recv( fd,mem_id,status);
return 0;
}
if( strcmp( funcname , "DBUpdateEntryString" ) == 0 ){
char* table;
char* key;
char* value;
int msgid;
int msgid2;
table = saacproto_wrapStringAddr( saacproto_stringwrapper[1] , saacproto.workbufsize , saacproto_demkstr_string( saacproto.token_list[2] ));
key = saacproto_wrapStringAddr( saacproto_stringwrapper[2] , saacproto.workbufsize , saacproto_demkstr_string( saacproto.token_list[3] ));
value = saacproto_wrapStringAddr( saacproto_stringwrapper[3] , saacproto.workbufsize , saacproto_demkstr_string( saacproto.token_list[4] ));
msgid = saacproto_demkstr_int( saacproto.token_list[5] );
msgid2 = saacproto_demkstr_int( saacproto.token_list[6] );
saacproto_DBUpdateEntryString_recv( fd,table,key,value,msgid,msgid2);
return 0;
}
if( strcmp( funcname , "DBDeleteEntryString" ) == 0 ){
char* table;
char* key;
int msgid;
int msgid2;
table = saacproto_wrapStringAddr( saacproto_stringwrapper[1] , saacproto.workbufsize , saacproto_demkstr_string( saacproto.token_list[2] ));
key = saacproto_wrapStringAddr( saacproto_stringwrapper[2] , saacproto.workbufsize , saacproto_demkstr_string( saacproto.token_list[3] ));
msgid = saacproto_demkstr_int( saacproto.token_list[4] );
msgid2 = saacproto_demkstr_int( saacproto.token_list[5] );
saacproto_DBDeleteEntryString_recv( fd,table,key,msgid,msgid2);
return 0;
}
if( strcmp( funcname , "DBGetEntryString" ) == 0 ){
char* table;
char* key;
int msgid;
int msgid2;
table = saacproto_wrapStringAddr( saacproto_stringwrapper[1] , saacproto.workbufsize , saacproto_demkstr_string( saacproto.token_list[2] ));
key = saacproto_wrapStringAddr( saacproto_stringwrapper[2] , saacproto.workbufsize , saacproto_demkstr_string( saacproto.token_list[3] ));
msgid = saacproto_demkstr_int( saacproto.token_list[4] );
msgid2 = saacproto_demkstr_int( saacproto.token_list[5] );
saacproto_DBGetEntryString_recv( fd,table,key,msgid,msgid2);
return 0;
}
if( strcmp( funcname , "DBUpdateEntryInt" ) == 0 ){
char* table;
char* key;
int value;
char* info;
int msgid;
int msgid2;
table = saacproto_wrapStringAddr( saacproto_stringwrapper[1] , saacproto.workbufsize , saacproto_demkstr_string( saacproto.token_list[2] ));
key = saacproto_wrapStringAddr( saacproto_stringwrapper[2] , saacproto.workbufsize , saacproto_demkstr_string( saacproto.token_list[3] ));
value = saacproto_demkstr_int( saacproto.token_list[4] );
info = saacproto_wrapStringAddr( saacproto_stringwrapper[4] , saacproto.workbufsize , saacproto_demkstr_string( saacproto.token_list[5] ));
msgid = saacproto_demkstr_int( saacproto.token_list[6] );
msgid2 = saacproto_demkstr_int( saacproto.token_list[7] );
saacproto_DBUpdateEntryInt_recv( fd,table,key,value,info,msgid,msgid2);
return 0;
}
if( strcmp( funcname , "DBGetEntryRank" ) == 0 ){
char* table;
char* key;
int msgid;
int msgid2;
table = saacproto_wrapStringAddr( saacproto_stringwrapper[1] , saacproto.workbufsize , saacproto_demkstr_string( saacproto.token_list[2] ));
key = saacproto_wrapStringAddr( saacproto_stringwrapper[2] , saacproto.workbufsize , saacproto_demkstr_string( saacproto.token_list[3] ));
msgid = saacproto_demkstr_int( saacproto.token_list[4] );
msgid2 = saacproto_demkstr_int( saacproto.token_list[5] );
saacproto_DBGetEntryRank_recv( fd,table,key,msgid,msgid2);
return 0;
}
#ifdef _ALLDOMAN // Syu ADD ÅÅÐаñNPC
if ( strcmp( funcname , "UpdataStele" ) == 0 ) {
char *cdkey;
char *name;
char *title;
int level;
int trns;
int time;
int floor;
cdkey = saacproto_wrapStringAddr( saacproto_stringwrapper[1] , saacproto.workbufsize , saacproto_demkstr_string( saacproto.token_list[2] ));
name = saacproto_wrapStringAddr( saacproto_stringwrapper[2] , saacproto.workbufsize , saacproto_demkstr_string( saacproto.token_list[3] ));
title = saacproto_wrapStringAddr( saacproto_stringwrapper[3] , saacproto.workbufsize , saacproto_demkstr_string( saacproto.token_list[4] ));
level = saacproto_demkstr_int( saacproto.token_list[5] );
trns = saacproto_demkstr_int( saacproto.token_list[6] );
time = saacproto_demkstr_int( saacproto.token_list[7] );
floor = saacproto_demkstr_int( saacproto.token_list[8] );
saacproto_UpdataStele_recv ( fd , cdkey , name , title , level , trns , time , floor) ;
return 0;
}
#endif
if( strcmp( funcname , "DBDeleteEntryInt" ) == 0 ){
char* table;
char* key;
int msgid;
int msgid2;
table = saacproto_wrapStringAddr( saacproto_stringwrapper[1] , saacproto.workbufsize , saacproto_demkstr_string( saacproto.token_list[2] ));
key = saacproto_wrapStringAddr( saacproto_stringwrapper[2] , saacproto.workbufsize , saacproto_demkstr_string( saacproto.token_list[3] ));
msgid = saacproto_demkstr_int( saacproto.token_list[4] );
msgid2 = saacproto_demkstr_int( saacproto.token_list[5] );
saacproto_DBDeleteEntryInt_recv( fd,table,key,msgid,msgid2);
return 0;
}
if( strcmp( funcname , "DBGetEntryInt" ) == 0 ){
char* table;
char* key;
int msgid;
int msgid2;
table = saacproto_wrapStringAddr( saacproto_stringwrapper[1] , saacproto.workbufsize , saacproto_demkstr_string( saacproto.token_list[2] ));
key = saacproto_wrapStringAddr( saacproto_stringwrapper[2] , saacproto.workbufsize , saacproto_demkstr_string( saacproto.token_list[3] ));
msgid = saacproto_demkstr_int( saacproto.token_list[4] );
msgid2 = saacproto_demkstr_int( saacproto.token_list[5] );
saacproto_DBGetEntryInt_recv( fd,table,key,msgid,msgid2);
return 0;
}
if( strcmp( funcname , "DBGetEntryByRank" ) == 0 ){
char* table;
int rank_start;
int rank_end;
int msgid;
int msgid2;
table = saacproto_wrapStringAddr( saacproto_stringwrapper[1] , saacproto.workbufsize , saacproto_demkstr_string( saacproto.token_list[2] ));
rank_start = saacproto_demkstr_int( saacproto.token_list[3] );
rank_end = saacproto_demkstr_int( saacproto.token_list[4] );
msgid = saacproto_demkstr_int( saacproto.token_list[5] );
msgid2 = saacproto_demkstr_int( saacproto.token_list[6] );
saacproto_DBGetEntryByRank_recv( fd,table,rank_start,rank_end,msgid,msgid2);
return 0;
}
if( strcmp( funcname , "DBGetEntryByCount" ) == 0 ){
char* table;
int count_start;
int num;
int msgid;
int msgid2;
table = saacproto_wrapStringAddr( saacproto_stringwrapper[1] , saacproto.workbufsize , saacproto_demkstr_string( saacproto.token_list[2] ));
count_start = saacproto_demkstr_int( saacproto.token_list[3] );
num = saacproto_demkstr_int( saacproto.token_list[4] );
msgid = saacproto_demkstr_int( saacproto.token_list[5] );
msgid2 = saacproto_demkstr_int( saacproto.token_list[6] );
saacproto_DBGetEntryByCount_recv( fd,table,count_start,num,msgid,msgid2);
return 0;
}
if( strcmp( funcname , "Broadcast" ) == 0 ){
char* id;
char* charname;
char* message;
int flag;
id = saacproto_wrapStringAddr( saacproto_stringwrapper[1] , saacproto.workbufsize , saacproto_demkstr_string( saacproto.token_list[2] ));
charname = saacproto_wrapStringAddr( saacproto_stringwrapper[2] , saacproto.workbufsize , saacproto_demkstr_string( saacproto.token_list[3] ));
message = saacproto_wrapStringAddr( saacproto_stringwrapper[3] , saacproto.workbufsize , saacproto_demkstr_string( saacproto.token_list[4] ));
flag = saacproto_demkstr_int( saacproto.token_list[5] );
saacproto_Broadcast_recv( fd,id,charname,message,flag);
return 0;
}
if( strcmp( funcname , "Message" ) == 0 ){
char* id_from;
char* charname_from;
char* id_to;
char* charname_to;
char* message;
int option;
id_from = saacproto_wrapStringAddr( saacproto_stringwrapper[1] , saacproto.workbufsize , saacproto_demkstr_string( saacproto.token_list[2] ));
charname_from = saacproto_wrapStringAddr( saacproto_stringwrapper[2] , saacproto.workbufsize , saacproto_demkstr_string( saacproto.token_list[3] ));
id_to = saacproto_wrapStringAddr( saacproto_stringwrapper[3] , saacproto.workbufsize , saacproto_demkstr_string( saacproto.token_list[4] ));
charname_to = saacproto_wrapStringAddr( saacproto_stringwrapper[4] , saacproto.workbufsize , saacproto_demkstr_string( saacproto.token_list[5] ));
message = saacproto_wrapStringAddr( saacproto_stringwrapper[5] , saacproto.workbufsize , saacproto_demkstr_string( saacproto.token_list[6] ));
option = saacproto_demkstr_int( saacproto.token_list[7] );
saacproto_Message_recv( fd,id_from,charname_from,id_to,charname_to,message,option);
return 0;
}
if( strcmp( funcname , "MessageAck" ) == 0 ){
char* id;
char* charname;
char* result;
int mesgid;
id = saacproto_wrapStringAddr( saacproto_stringwrapper[1] , saacproto.workbufsize , saacproto_demkstr_string( saacproto.token_list[2] ));
charname = saacproto_wrapStringAddr( saacproto_stringwrapper[2] , saacproto.workbufsize , saacproto_demkstr_string( saacproto.token_list[3] ));
result = saacproto_wrapStringAddr( saacproto_stringwrapper[3] , saacproto.workbufsize , saacproto_demkstr_string( saacproto.token_list[4] ));
mesgid = saacproto_demkstr_int( saacproto.token_list[5] );
saacproto_MessageAck_recv( fd,id,charname,result,mesgid);
return 0;
}
if( strcmp( funcname , "MessageFlush" ) == 0 ){
char* id;
char* charname;
id = saacproto_wrapStringAddr( saacproto_stringwrapper[1] , saacproto.workbufsize , saacproto_demkstr_string( saacproto.token_list[2] ));
charname = saacproto_wrapStringAddr( saacproto_stringwrapper[2] , saacproto.workbufsize , saacproto_demkstr_string( saacproto.token_list[3] ));
saacproto_MessageFlush_recv( fd,id,charname);
return 0;
}
// ³ÉÁ¢¼Ò×å
if ( strcmp( funcname, "ACAddFM") == 0){
int fmleaderlv, fmsprite, charfdid, fmleadergrano;
char *fmname, *fmleadername, *fmleaderid, *petname, *petattr, *fmrule;
#ifdef _PERSONAL_FAME
int fame;
#endif
fmname = saacproto_wrapStringAddr(saacproto_stringwrapper[1], saacproto.workbufsize, saacproto_demkstr_string(saacproto.token_list[2]));
fmleadername = saacproto_wrapStringAddr(saacproto_stringwrapper[2], saacproto.workbufsize, saacproto_demkstr_string(saacproto.token_list[3]));
fmleaderid = saacproto_wrapStringAddr(saacproto_stringwrapper[3], saacproto.workbufsize, saacproto_demkstr_string(saacproto.token_list[4]));
fmleaderlv = saacproto_demkstr_int(saacproto.token_list[5]);
petname = saacproto_wrapStringAddr(saacproto_stringwrapper[5], saacproto.workbufsize, saacproto_demkstr_string(saacproto.token_list[6]));
petattr = saacproto_wrapStringAddr(saacproto_stringwrapper[6], saacproto.workbufsize, saacproto_demkstr_string(saacproto.token_list[7]));
fmrule = saacproto_wrapStringAddr(saacproto_stringwrapper[7], saacproto.workbufsize, saacproto_demkstr_string(saacproto.token_list[8]));
fmsprite = saacproto_demkstr_int(saacproto.token_list[9]);
fmleadergrano = saacproto_demkstr_int(saacproto.token_list[10]);
#ifdef _PERSONAL_FAME
fame = saacproto_demkstr_int(saacproto.token_list[11]);
charfdid = saacproto_demkstr_int(saacproto.token_list[12]);
saacproto_ACAddFM_recv(fd, fmname, fmleadername, fmleaderid,
fmleaderlv, petname, petattr, fmrule, fmsprite,
fmleadergrano, fame, charfdid);
#else
charfdid = saacproto_demkstr_int(saacproto.token_list[11]);
saacproto_ACAddFM_recv(fd, fmname, fmleadername, fmleaderid,
fmleaderlv, petname, petattr, fmrule, fmsprite,
fmleadergrano, charfdid);
#endif
return 0;
}
// ¼ÓÈë¼Ò×å
if ( strcmp( funcname, "ACJoinFM") == 0){
#ifdef _PERSONAL_FAME // Arminius: ¼Ò×å¸öÈËÉùÍû
int fmindex, charlv, charfdid, index, fame;
#else
int fmindex, charlv, charfdid, index;
#endif
char *fmname, *charname, *charid;
fmname = saacproto_wrapStringAddr(saacproto_stringwrapper[1], saacproto.workbufsize, saacproto_demkstr_string(saacproto.token_list[2]));
fmindex = saacproto_demkstr_int(saacproto.token_list[3]);
charname = saacproto_wrapStringAddr(saacproto_stringwrapper[3], saacproto.workbufsize, saacproto_demkstr_string(saacproto.token_list[4]));
charid = saacproto_wrapStringAddr(saacproto_stringwrapper[4], saacproto.workbufsize, saacproto_demkstr_string(saacproto.token_list[5]));
charlv = saacproto_demkstr_int(saacproto.token_list[6]);
index = saacproto_demkstr_int(saacproto.token_list[7]);
#ifdef _PERSONAL_FAME // Arminius: ¼Ò×å¸öÈËÉùÍû
fame = saacproto_demkstr_int(saacproto.token_list[8]);
charfdid = saacproto_demkstr_int(saacproto.token_list[9]);
saacproto_ACJoinFM_recv(fd, fmname, fmindex, charname,
charid, charlv, index, fame, charfdid);
#else
charfdid = saacproto_demkstr_int(saacproto.token_list[8]);
saacproto_ACJoinFM_recv(fd, fmname, fmindex, charname,
charid, charlv, index, charfdid);
#endif
return 0;
}
// Í˳ö¼Ò×å
if ( strcmp( funcname, "ACLeaveFM") == 0){
int fmindex, charfdid, index;
char *fmname, *charname, *charid;
fmname = saacproto_wrapStringAddr(saacproto_stringwrapper[1], saacproto.workbufsize, saacproto_demkstr_string(saacproto.token_list[2]));
fmindex = saacproto_demkstr_int(saacproto.token_list[3]);
charname = saacproto_wrapStringAddr(saacproto_stringwrapper[3], saacproto.workbufsize, saacproto_demkstr_string(saacproto.token_list[4]));
charid = saacproto_wrapStringAddr(saacproto_stringwrapper[4], saacproto.workbufsize, saacproto_demkstr_string(saacproto.token_list[5]));
index = saacproto_demkstr_int(saacproto.token_list[6]);
charfdid = saacproto_demkstr_int(saacproto.token_list[7]);
saacproto_ACLeaveFM_recv(fd, fmname, fmindex, charname,
charid, index, charfdid);
return 0;
}
// ½âÉ¢¼Ò×å
#ifdef _LEADERFUNCHECK
if ( strcmp( funcname, "ACDelFM") == 0){
int fmindex, charfdid, index;
char *fmname, *charname, *charid;
fmname = saacproto_wrapStringAddr(saacproto_stringwrapper[1], saacproto.workbufsize, saacproto_demkstr_string(saacproto.token_list[2]));
fmindex = saacproto_demkstr_int(saacproto.token_list[3]);
index = saacproto_demkstr_int(saacproto.token_list[4]);
charname = saacproto_wrapStringAddr(saacproto_stringwrapper[4], saacproto.workbufsize, saacproto_demkstr_string(saacproto.token_list[5]));
charid = saacproto_wrapStringAddr(saacproto_stringwrapper[5], saacproto.workbufsize, saacproto_demkstr_string(saacproto.token_list[6]));
charfdid = saacproto_demkstr_int(saacproto.token_list[7]);
saacproto_ACDelFM_recv(fd, fmname, fmindex, index, charname, charid, charfdid);
return 0;
}
#else
if ( strcmp( funcname, "ACDelFM") == 0){
int fmindex, charfdid, index;
char *fmname;
fmname = saacproto_wrapStringAddr(saacproto_stringwrapper[1], saacproto.workbufsize, saacproto_demkstr_string(saacproto.token_list[2]));
fmindex = saacproto_demkstr_int(saacproto.token_list[3]);
index = saacproto_demkstr_int(saacproto.token_list[4]);
charfdid = saacproto_demkstr_int(saacproto.token_list[5]);
saacproto_ACDelFM_recv(fd, fmname, fmindex, index, charfdid);
return 0;
}
#endif
// Áгö¼Ò×åÁбí
if ( strcmp( funcname, "ACShowFMList") == 0){
saacproto_ACShowFMList_recv(fd);
return 0;
}
// Áгö³ÉÔ±Áбí
if ( strcmp( funcname, "ACShowMemberList") == 0){
int index;
char *tmpbuf;
tmpbuf = saacproto_wrapStringAddr(saacproto_stringwrapper[1], saacproto.workbufsize, saacproto_demkstr_string(saacproto.token_list[2]));
index = saacproto_demkstr_int(saacproto.token_list[3]);
saacproto_ACShowMemberList_recv(fd, index);
return 0;
}
// Áгö¼Ò×åÏêϸ×ÊÁÏ
if ( strcmp( funcname, "ACFMDetail") == 0){
int fmindex, charfdid, index;
char *fmname;
fmname = saacproto_wrapStringAddr(saacproto_stringwrapper[1], saacproto.workbufsize, saacproto_demkstr_string(saacproto.token_list[2]));
fmindex = saacproto_demkstr_int(saacproto.token_list[3]);
index = saacproto_demkstr_int(saacproto.token_list[4]);
charfdid = saacproto_demkstr_int(saacproto.token_list[5]);
saacproto_ACFMDetail_recv(fd, fmname, fmindex, index, charfdid);
return 0;
}
// Áгö¼Ò×åÁôÑÔ
if (strcmp( funcname, "ACFMReadMemo") == 0){
int index;
char *tmpbuf;
tmpbuf = saacproto_wrapStringAddr(saacproto_stringwrapper[1], saacproto.workbufsize, saacproto_demkstr_string(saacproto.token_list[2]));
index = saacproto_demkstr_int(saacproto.token_list[3]);
saacproto_ACFMReadMemo_recv(fd, index);
return 0;
}
// дÈë¼Ò×åÁôÑÔ
if (strcmp( funcname, "ACFMWriteMemo") == 0){
int index, fmindex;
char *fmname, *data;
fmname = saacproto_wrapStringAddr(saacproto_stringwrapper[1], saacproto.workbufsize, saacproto_demkstr_string(saacproto.token_list[2]));
fmindex = saacproto_demkstr_int(saacproto.token_list[3]);
data = saacproto_wrapStringAddr(saacproto_stringwrapper[3], saacproto.workbufsize, saacproto_demkstr_string(saacproto.token_list[4]));
index = saacproto_demkstr_int(saacproto.token_list[5]);
saacproto_ACFMWriteMemo_recv(fd, fmname, fmindex, data, index);
return 0;
}
#ifdef _DEATH_FAMILY_GM_COMMAND // WON ADD ¼Ò×åÕ½GMÖ¸Áî
// reload ¼Ò×å×ÊÁÏ
if ( strcmp( funcname, "ACRELOADFM") == 0){
int charindex = -1;
charindex = saacproto_demkstr_int(saacproto.token_list[2]);
log("\n won test 40 ==> charindex(%d)", charindex );
saacproto_ACRELOADFM_recv( fd, charindex );
return 0;
}
if ( strcmp( funcname, "ACShowMemberList2") == 0){
int fm1 = -1, fm2 = -1, charindex = -1, time = -1, id = -1;
charindex = saacproto_demkstr_int(saacproto.token_list[2]);
fm1 = saacproto_demkstr_int(saacproto.token_list[3]);
fm2 = saacproto_demkstr_int(saacproto.token_list[4]);
time = saacproto_demkstr_int(saacproto.token_list[5]);
id = saacproto_demkstr_int(saacproto.token_list[6]);
log("\n won test 40 ==> charindex(%d) fm1(%d) fm2(%d) time(%d) id(%d)", charindex, fm1, fm2, time, id );
saacproto_ACShowMemberList_2_recv(fd, charindex, fm1, fm2, time, id );
return 0;
}
#endif
#ifdef _DEATH_FAMILY_LOGIN_CHECK // WON ADD ¼Ò×åÕ½µÇÈë¼ì²é
// Íæ¼Òlogin2
if ( strcmp( funcname, "ACFMCharLogin2") == 0){
int charindex = -1;
char *char_id, *char_name;
char_id = saacproto_wrapStringAddr(saacproto_stringwrapper[1], saacproto.workbufsize, saacproto_demkstr_string(saacproto.token_list[2]));
char_name = saacproto_wrapStringAddr(saacproto_stringwrapper[2], saacproto.workbufsize, saacproto_demkstr_string(saacproto.token_list[3]));
charindex = saacproto_demkstr_int(saacproto.token_list[4]);
log("\n won test 4 ==> char_id(%s) char_name(%s) charindex(%d)", char_id, char_name, charindex );
saacproto_ACFMCharLogin2_recv(fd, char_id, char_name, charindex );
return 0;
}
#endif
// Íæ¼Òlogin
if ( strcmp( funcname, "ACFMCharLogin") == 0){
int fmindex, charlv, charfdid;
#ifdef _FM_MODIFY
int gsnum;
#endif
char *fmname, *charname, *charid;
#ifdef _FMVER21
int eventflag;
#endif
fmname = saacproto_wrapStringAddr(saacproto_stringwrapper[1], saacproto.workbufsize, saacproto_demkstr_string(saacproto.token_list[2]));
fmindex = saacproto_demkstr_int(saacproto.token_list[3]);
charname = saacproto_wrapStringAddr(saacproto_stringwrapper[3], saacproto.workbufsize, saacproto_demkstr_string(saacproto.token_list[4]));
charid = saacproto_wrapStringAddr(saacproto_stringwrapper[4], saacproto.workbufsize, saacproto_demkstr_string(saacproto.token_list[5]));
charlv = saacproto_demkstr_int(saacproto.token_list[6]);
#ifdef _FMVER21
eventflag = saacproto_demkstr_int(saacproto.token_list[7]);
charfdid = saacproto_demkstr_int(saacproto.token_list[8]);
#ifdef _FM_MODIFY
gsnum = saacproto_demkstr_int(saacproto.token_list[9]);
saacproto_ACFMCharLogin_recv(fd, fmname, fmindex, charname,charid, charlv, eventflag, charfdid,gsnum);
#else
saacproto_ACFMCharLogin_recv(fd, fmname, fmindex, charname,charid, charlv, eventflag, charfdid);
#endif
#else
charfdid = saacproto_demkstr_int(saacproto.token_list[7]);
saacproto_ACFMCharLogin_recv(fd, fmname, fmindex, charname,charid, charlv, charfdid);
#endif
return 0;
}
// Íæ¼Òlogout
if ( strcmp( funcname, "ACFMCharLogout") == 0){
int fmindex, charfdid, charlv, index;
char *fmname, *charname, *charid;
fmname = saacproto_wrapStringAddr(saacproto_stringwrapper[1], saacproto.workbufsize, saacproto_demkstr_string(saacproto.token_list[2]));
fmindex = saacproto_demkstr_int(saacproto.token_list[3]);
charname = saacproto_wrapStringAddr(saacproto_stringwrapper[3], saacproto.workbufsize, saacproto_demkstr_string(saacproto.token_list[4]));
charid = saacproto_wrapStringAddr(saacproto_stringwrapper[4], saacproto.workbufsize, saacproto_demkstr_string(saacproto.token_list[5]));
charlv = saacproto_demkstr_int(saacproto.token_list[6]);
index = saacproto_demkstr_int(saacproto.token_list[7]);
charfdid = saacproto_demkstr_int(saacproto.token_list[8]);
saacproto_ACFMCharLogout_recv(fd, fmname, fmindex, charname,
charid, charlv, index, charfdid);
return 0;
}
// ×峤ÉóºË³ÉÔ±¼ÓÈë¼Ò×å¡¢Ð޸ļÒ×å³ÉԱְλ
if (strcmp( funcname, "ACMemberJoinFM") == 0){
int fmindex, charfdid, index, charindex, result;
char *fmname, *charname;
#ifdef _FMVER21
int meindex;
#endif
fmname = saacproto_wrapStringAddr(saacproto_stringwrapper[1], saacproto.workbufsize, saacproto_demkstr_string(saacproto.token_list[2]));
fmindex = saacproto_demkstr_int(saacproto.token_list[3]);
charname = saacproto_wrapStringAddr(saacproto_stringwrapper[3], saacproto.workbufsize, saacproto_demkstr_string(saacproto.token_list[4]));
charindex = saacproto_demkstr_int(saacproto.token_list[5]);
index = saacproto_demkstr_int(saacproto.token_list[6]);
result = saacproto_demkstr_int(saacproto.token_list[7]);
#ifdef _FMVER21
meindex = saacproto_demkstr_int(saacproto.token_list[8]);
charfdid = saacproto_demkstr_int(saacproto.token_list[9]);
saacproto_ACMemberJoinFM_recv(fd, fmname, fmindex, charname,
charindex, index, result, meindex, charfdid);
#else
charfdid = saacproto_demkstr_int(saacproto.token_list[8]);
saacproto_ACMemberJoinFM_recv(fd, fmname, fmindex, charname,
charindex, index, result, charfdid);
#endif
return 0;
}
// ×峤ÉóºË³ÉÔ±À뿪¼Ò×å
if (strcmp( funcname, "ACMemberLeaveFM") == 0){
int fmindex, charfdid, index, charindex;
char *fmname, *charname;
#ifdef _FMVER21
int meindex;
#endif
fmname = saacproto_wrapStringAddr(saacproto_stringwrapper[1], saacproto.workbufsize, saacproto_demkstr_string(saacproto.token_list[2]));
fmindex = saacproto_demkstr_int(saacproto.token_list[3]);
charname = saacproto_wrapStringAddr(saacproto_stringwrapper[3], saacproto.workbufsize, saacproto_demkstr_string(saacproto.token_list[4]));
charindex = saacproto_demkstr_int(saacproto.token_list[5]);
index = saacproto_demkstr_int(saacproto.token_list[6]);
#ifdef _FMVER21
meindex = saacproto_demkstr_int(saacproto.token_list[7]);
charfdid = saacproto_demkstr_int(saacproto.token_list[8]);
saacproto_ACMemberLeaveFM_recv(fd, fmname, fmindex, charname,
charindex, index, meindex, charfdid);
#else
charfdid = saacproto_demkstr_int(saacproto.token_list[7]);
saacproto_ACMemberLeaveFM_recv(fd, fmname, fmindex, charname,
charindex, index, charfdid);
#endif
return 0;
}
// Áгö¼Ò×å¾Ýµã
if ( strcmp( funcname, "ACFMPointList") == 0){
saacproto_ACFMPointList_recv(fd);
return 0;
}
#ifdef _CK_ONLINE_PLAYER_COUNT // WON ADD ¼ÆËãÏßÉÏÈËÊý
if ( strcmp( funcname, "ACGSPCOUNT") == 0){
int playcount = 0;
playcount = saacproto_demkstr_int(saacproto.token_list[2]);
saacproto_GS_ACK_PLAYER_COUNT_recv( fd, playcount );
return 0;
}
#endif
// ÉêÇë¼Ò×å¾Ýµã
if (strcmp( funcname, "ACSetFMPoint") == 0){
int fl, x, y, fmindex, index, fmpointindex, charfdid;
char *fmname;
fmname = saacproto_wrapStringAddr(saacproto_stringwrapper[1], saacproto.workbufsize, saacproto_demkstr_string(saacproto.token_list[2]));
fmindex = saacproto_demkstr_int(saacproto.token_list[3]);
index = saacproto_demkstr_int(saacproto.token_list[4]);
fmpointindex = saacproto_demkstr_int(saacproto.token_list[5]);
fl = saacproto_demkstr_int(saacproto.token_list[6]);
x = saacproto_demkstr_int(saacproto.token_list[7]);
y = saacproto_demkstr_int(saacproto.token_list[8]);
charfdid = saacproto_demkstr_int(saacproto.token_list[9]);
saacproto_ACSetFMPoint_recv(fd, fmname, fmindex, index,
fmpointindex, fl, x, y, charfdid);
return 0;
}
// É趨¼Ò×å¾Ýµã
if (strcmp( funcname, "ACFixFMPoint") == 0){
int winindex, winfmindex, loseindex, losefmindex, village;
char *winfmname, *losefmname;
winfmname = saacproto_wrapStringAddr(saacproto_stringwrapper[1], saacproto.workbufsize, saacproto_demkstr_string(saacproto.token_list[2]));
winfmindex = saacproto_demkstr_int(saacproto.token_list[3]);
winindex = saacproto_demkstr_int(saacproto.token_list[4]);
losefmname = saacproto_wrapStringAddr(saacproto_stringwrapper[4], saacproto.workbufsize, saacproto_demkstr_string(saacproto.token_list[5]));
losefmindex = saacproto_demkstr_int(saacproto.token_list[6]);
loseindex = saacproto_demkstr_int(saacproto.token_list[7]);
village= saacproto_demkstr_int(saacproto.token_list[8]);
saacproto_ACFixFMPoint_recv(fd, winfmname, winfmindex, winindex,
losefmname, losefmindex, loseindex, village);
return 0;
}
// ×峤¶ÔÈ«Ô±¹ã²¥
if (strcmp( funcname, "ACFMAnnounce") == 0){
int index, fmindex, color;
char *fmname, *data;
fmname = saacproto_wrapStringAddr(saacproto_stringwrapper[1], saacproto.workbufsize, saacproto_demkstr_string(saacproto.token_list[2]));
fmindex = saacproto_demkstr_int(saacproto.token_list[3]);
index = saacproto_demkstr_int(saacproto.token_list[4]);
data = saacproto_wrapStringAddr(saacproto_stringwrapper[4], saacproto.workbufsize, saacproto_demkstr_string(saacproto.token_list[5]));
color = saacproto_demkstr_int(saacproto.token_list[6]);
saacproto_ACFMAnnounce_recv(fd, fmname, fmindex, index, data, color);
return 0;
}
// Áгö¼Ò×åÅÅÐаñ
if ( strcmp( funcname, "ACShowTopFMList") == 0){
int kindflag;
char *tmpbuf;
tmpbuf = saacproto_wrapStringAddr(saacproto_stringwrapper[1], saacproto.workbufsize, saacproto_demkstr_string(saacproto.token_list[2]));
kindflag = saacproto_demkstr_int(saacproto.token_list[3]);
saacproto_ACShowTopFMList_recv(fd, kindflag);
return 0;
}
// ÐÞÕý¼Ò×å×ÊÁÏ
if (strcmp( funcname, "ACFixFMData") == 0){
int fmindex, charfdid, index, kindflag, charindex;
char *fmname, *data1, *data2;
fmname = saacproto_wrapStringAddr(saacproto_stringwrapper[1], saacproto.workbufsize, saacproto_demkstr_string(saacproto.token_list[2]));
fmindex = saacproto_demkstr_int(saacproto.token_list[3]);
index = saacproto_demkstr_int(saacproto.token_list[4]);
kindflag = saacproto_demkstr_int(saacproto.token_list[5]);
data1 = saacproto_wrapStringAddr(saacproto_stringwrapper[5], saacproto.workbufsize, saacproto_demkstr_string(saacproto.token_list[6]));
data2 = saacproto_wrapStringAddr(saacproto_stringwrapper[6], saacproto.workbufsize, saacproto_demkstr_string(saacproto.token_list[7]));
charindex = saacproto_demkstr_int(saacproto.token_list[8]);
charfdid = saacproto_demkstr_int(saacproto.token_list[9]);
saacproto_ACFixFMData_recv(fd, fmname, fmindex, index, kindflag,
data1, data2, charindex, charfdid);
return 0;
}
#ifdef _FAMILYBANKSTONELOG
if (strcmp( funcname, "ACgetFMBankgold") ==0){
int fmindex, charfdid, index, charindex;
char *fmname;
fmname = saacproto_wrapStringAddr(saacproto_stringwrapper[1], saacproto.workbufsize, saacproto_demkstr_string(saacproto.token_list[2]));
fmindex = saacproto_demkstr_int(saacproto.token_list[3]);
index = saacproto_demkstr_int(saacproto.token_list[4]);
charindex = saacproto_demkstr_int(saacproto.token_list[5]);
charfdid = saacproto_demkstr_int(saacproto.token_list[6]);
saacproto_ACgetFMBankgold_recv(fd, fmname, fmindex, index, charindex, charfdid);
return 0;
}
#endif
#ifdef _DEATH_FAMILY_STRUCT // WON ADD ¼Ò×åÕ½´æ·Åʤ¸º×ÊÁÏ
if (strcmp( funcname, "FMINITPKSTRUCT") == 0){
log("\n won test 300 ==>" );
set_fm_pk_score( "" );
// save_fm_pk_score();
return 0;
}
if (strcmp( funcname, "FMPKSTRUCT") == 0){
char *msg;
msg = saacproto_wrapStringAddr(saacproto_stringwrapper[1], saacproto.workbufsize, saacproto_demkstr_string(saacproto.token_list[2]));
log("\n won test 54 ==> msg(%s)", msg );
set_fm_pk_score( msg );
// save_fm_pk_score();
return 0;
}
#endif
// ¼Ò×å£Ð£ËááÐÞÕýÉùÍû
if (strcmp( funcname, "ACFixFMPK") == 0){
int winindex, winfmindex, loseindex, losefmindex;
char *winfmname, *losefmname;
winfmname = saacproto_wrapStringAddr(saacproto_stringwrapper[1], saacproto.workbufsize, saacproto_demkstr_string(saacproto.token_list[2]));
winfmindex = saacproto_demkstr_int(saacproto.token_list[3]);
winindex = saacproto_demkstr_int(saacproto.token_list[4]);
losefmname = saacproto_wrapStringAddr(saacproto_stringwrapper[4], saacproto.workbufsize, saacproto_demkstr_string(saacproto.token_list[5]));
losefmindex = saacproto_demkstr_int(saacproto.token_list[6]);
loseindex = saacproto_demkstr_int(saacproto.token_list[7]);
saacproto_ACFixFMPK_recv(fd, winfmname, winfmindex, winindex,
losefmname, losefmindex, loseindex);
return 0;
}
// GMÐÞÕý¼Ò×å×ÊÁÏ
if (strcmp( funcname, "ACGMFixFMData") == 0){
int index, charfdid;
char *cmd, *data, *tmpbuf,*charid;
tmpbuf = saacproto_wrapStringAddr(saacproto_stringwrapper[1], saacproto.workbufsize, saacproto_demkstr_string(saacproto.token_list[2]));
index = saacproto_demkstr_int(saacproto.token_list[3]);
charid = saacproto_wrapStringAddr(saacproto_stringwrapper[3], saacproto.workbufsize, saacproto_demkstr_string(saacproto.token_list[4]));
cmd = saacproto_wrapStringAddr(saacproto_stringwrapper[4], saacproto.workbufsize, saacproto_demkstr_string(saacproto.token_list[5]));
data = saacproto_wrapStringAddr(saacproto_stringwrapper[5], saacproto.workbufsize, saacproto_demkstr_string(saacproto.token_list[6]));
charfdid = saacproto_demkstr_int(saacproto.token_list[7]);
saacproto_ACGMFixFMData_recv(fd, index, charid, cmd, data, charfdid);
return 0;
}
// È¡µÃ¼Ò×å×ÊÁÏ
if (strcmp( funcname, "ACGetFMData") == 0){
int fmindex, charfdid, index, kindflag;
char *fmname;
fmname = saacproto_wrapStringAddr(saacproto_stringwrapper[1], saacproto.workbufsize, saacproto_demkstr_string(saacproto.token_list[2]));
fmindex = saacproto_demkstr_int(saacproto.token_list[3]);
index = saacproto_demkstr_int(saacproto.token_list[4]);
kindflag = saacproto_demkstr_int(saacproto.token_list[5]);
charfdid = saacproto_demkstr_int(saacproto.token_list[6]);
saacproto_ACGetFMData_recv(fd, fmname, fmindex, index, kindflag,
charfdid);
return 0;
}
// ¹ã²¥Ìß¹ÝÈ˵Ä×ÊÁÏ
if (strcmp( funcname,"ACManorPKAck") == 0){
char *data;
data = saacproto_wrapStringAddr(saacproto_stringwrapper[1], saacproto.workbufsize, saacproto_demkstr_string(saacproto.token_list[2]));
saacproto_ACManorPKAck_recv(fd, data);
return 0;
}
#ifdef _CHECKFMSCHEDULE // Syu ADD ͸¹ýACÈ·ÈϼÒ×åÌôÕ½ÅųÌ
if (strcmp( funcname,"ACCheckSchedule") ==0)
{
char *data;
data = saacproto_wrapStringAddr(saacproto_stringwrapper[1], saacproto.workbufsize, saacproto_demkstr_string(saacproto.token_list[2]));
saacproto_ACCheckSchedule_recv(fd,data);
return 0;
}
#endif
if (strcmp( funcname,"ACreLoadFmData") ==0){
int type, data;
type = saacproto_demkstr_int(saacproto.token_list[2]);
data = saacproto_demkstr_int(saacproto.token_list[3]);
saacproto_ACreLoadFmData_recv( fd, type, data);
return 0;
}
#ifdef _AC_SEND_FM_PK
if (strcmp( funcname,"ACLoadFmPk") ==0)
{
int fmpks_pos;
fmpks_pos = saacproto_demkstr_int(saacproto.token_list[2]);
saacproto_ACLoadFmPk_recv(fd, fmpks_pos);
return 0;
}
#ifdef _ACFMPK_LIST
if (strcmp( funcname,"ACSendFmPk") ==0){
int fmpks_pos, userindex, flg;
char *data;
fmpks_pos = saacproto_demkstr_int(saacproto.token_list[2]);
userindex = saacproto_demkstr_int(saacproto.token_list[3]);
flg = saacproto_demkstr_int(saacproto.token_list[4]);
data = saacproto_wrapStringAddr( saacproto_stringwrapper[4] , saacproto.workbufsize , saacproto_demkstr_string( saacproto.token_list[5] ));
saacproto_ACSendFmPk_recv( fd, fmpks_pos, userindex, flg, data);
return 0;
}
#else
if (strcmp( funcname,"ACSendFmPk") ==0){
int fmpks_pos;
char *data;
fmpks_pos = saacproto_demkstr_int(saacproto.token_list[2]);
data = saacproto_wrapStringAddr( saacproto_stringwrapper[2] , saacproto.workbufsize , saacproto_demkstr_string( saacproto.token_list[3] ));
saacproto_ACSendFmPk_recv(fd, fmpks_pos, data);
return 0;
}
#endif
#endif
#ifdef _RECAL_BACKUP_PLAYER // WON »ØËݹ¦ÄÜ
if (strcmp( funcname,"ACSendRecalPlayer") ==0)
{
char *uid, *id;
int userfdid, char_num, date, GmCliId, backup_flag;
uid = saacproto_wrapStringAddr( saacproto_stringwrapper[1] , saacproto.workbufsize , saacproto_demkstr_string( saacproto.token_list[2] ));
userfdid = saacproto_demkstr_int(saacproto.token_list[3]);
GmCliId = saacproto_demkstr_int(saacproto.token_list[4]);
id = saacproto_wrapStringAddr( saacproto_stringwrapper[4] , saacproto.workbufsize , saacproto_demkstr_string( saacproto.token_list[5] ));
char_num = saacproto_demkstr_int(saacproto.token_list[6]);
date = saacproto_demkstr_int(saacproto.token_list[7]);
backup_flag = saacproto_demkstr_int(saacproto.token_list[8]);
saacproto_ACRecalPlayer_recv(fd, uid, userfdid, GmCliId, id, char_num, date, backup_flag);
return 0;
}
if (strcmp( funcname,"ACSendRecalBackup") ==0)
{
char *uid, *id, *char_data;
int userfdid, char_num, date, GmCliId, backup_flag;
uid = saacproto_wrapStringAddr( saacproto_stringwrapper[1] , saacproto.workbufsize , saacproto_demkstr_string( saacproto.token_list[2] ));
userfdid = saacproto_demkstr_int(saacproto.token_list[3]);
GmCliId = saacproto_demkstr_int(saacproto.token_list[4]);
id = saacproto_wrapStringAddr( saacproto_stringwrapper[4] , saacproto.workbufsize , saacproto_demkstr_string( saacproto.token_list[5] ));
char_num = saacproto_demkstr_int(saacproto.token_list[6]);
date = saacproto_demkstr_int(saacproto.token_list[7]);
char_data = saacproto_wrapStringAddr( saacproto_stringwrapper[7] , saacproto.workbufsize , saacproto_demkstr_string( saacproto.token_list[8] ));
backup_flag = saacproto_demkstr_int(saacproto.token_list[9]);
saacproto_ACRecalBackup_recv(fd, uid, userfdid, GmCliId, id, char_num, date, char_data, backup_flag);
return 0;
}
#endif // end RECAL_ASK_PLAYER
#ifdef _AUCTIONEER
if (strcmp( funcname,"ACAuctionSold") == 0){
char *data;
data = saacproto_wrapStringAddr(saacproto_stringwrapper[1], saacproto.workbufsize, saacproto_demkstr_string(saacproto.token_list[2]));
saacproto_ACAuctionSold_recv(fd, data);
return 0;
}
#endif
#ifdef _NEW_PLAYERGOLD
if (strcmp( funcname,"ACNewPlayerList") == 0){
int RunType=-1, userIndex=-1;
char *CdKey, *UserName;
CdKey = saacproto_wrapStringAddr(saacproto_stringwrapper[1], saacproto.workbufsize,
saacproto_demkstr_string(saacproto.token_list[2]));
UserName = saacproto_wrapStringAddr(saacproto_stringwrapper[2], saacproto.workbufsize,
saacproto_demkstr_string(saacproto.token_list[3]));
userIndex = saacproto_demkstr_int(saacproto.token_list[4]);
RunType = saacproto_demkstr_int(saacproto.token_list[5]);
saacproto_ACNewPlayerList_recv( fd, CdKey, UserName, userIndex, RunType);
return 0;
}
#endif
#ifdef _DEFEND_NEWUSERS
if( strcmp( funcname , "DEFENDLISTS" ) == 0 ){
char* data;
int type;
type = saacproto_demkstr_int(saacproto.token_list[2]);
data = saacproto_wrapStringAddr( saacproto_stringwrapper[2] , saacproto.workbufsize , saacproto_demkstr_string( saacproto.token_list[3] ));
saacproto_DefendList_recv( fd, type, data);
return 0;
}
if( strcmp( funcname , "CHECKDEFENDSCORE" ) == 0 ){
char *cdkey, *name;
int userindex;
cdkey = saacproto_wrapStringAddr( saacproto_stringwrapper[1] , saacproto.workbufsize , saacproto_demkstr_string( saacproto.token_list[2] ));
name = saacproto_wrapStringAddr( saacproto_stringwrapper[2] , saacproto.workbufsize , saacproto_demkstr_string( saacproto.token_list[3] ));
userindex = saacproto_demkstr_int(saacproto.token_list[4]);
saacproto_CheckDefendScore_recv( fd, userindex, cdkey, name);
return 0;
}
#endif
#ifdef _CHAR_POOLITEM
if( strcmp( funcname , "ACInsertPoolItem" ) == 0 ){
char *cdkey, *Pooldataarg;
int clifdid, userindex;
cdkey = saacproto_wrapStringAddr( saacproto_stringwrapper[1] , saacproto.workbufsize , saacproto_demkstr_string( saacproto.token_list[2] ));
Pooldataarg = saacproto_wrapStringAddr( saacproto_stringwrapper[2] , saacproto.workbufsize , saacproto_demkstr_string( saacproto.token_list[3] ));
userindex = saacproto_demkstr_int( saacproto.token_list[4] );
clifdid = saacproto_demkstr_int( saacproto.token_list[5] );
saacproto_ACCharInsertPoolItem_recv( fd, cdkey, userindex, clifdid, Pooldataarg);
return 0;
}
if( strcmp( funcname , "ACSavePoolItem" ) == 0 ){
char *cdkey, *Pooldataarg;
int clifdid, userindex;
cdkey = saacproto_wrapStringAddr( saacproto_stringwrapper[1] , saacproto.workbufsize , saacproto_demkstr_string( saacproto.token_list[2] ));
Pooldataarg = saacproto_wrapStringAddr( saacproto_stringwrapper[2] , saacproto.workbufsize , saacproto_demkstr_string( saacproto.token_list[3] ));
userindex = saacproto_demkstr_int( saacproto.token_list[4] );
clifdid = saacproto_demkstr_int( saacproto.token_list[5] );
saacproto_ACCharSavePoolItem_recv( fd, cdkey, userindex, clifdid, Pooldataarg);
return 0;
}
if( strcmp( funcname , "ACGetPoolItem" ) == 0 ){
char *cdkey;
int clifdid, userindex, npcid;
cdkey = saacproto_wrapStringAddr( saacproto_stringwrapper[1] , saacproto.workbufsize , saacproto_demkstr_string( saacproto.token_list[2] ));
userindex = saacproto_demkstr_int( saacproto.token_list[3] );
clifdid = saacproto_demkstr_int( saacproto.token_list[4] );
npcid = saacproto_demkstr_int( saacproto.token_list[5] );
saacproto_ACCharGetPoolItem_recv( fd, cdkey, userindex, clifdid, npcid);
return 0;
}
#endif
#ifdef _CHAR_POOLPET
if( strcmp( funcname , "ACInsertPoolPet" ) == 0 ){
char *cdkey, *Pooldataarg;
int clifdid, userindex;
cdkey = saacproto_wrapStringAddr( saacproto_stringwrapper[1] , saacproto.workbufsize , saacproto_demkstr_string( saacproto.token_list[2] ));
Pooldataarg = saacproto_wrapStringAddr( saacproto_stringwrapper[2] , saacproto.workbufsize , saacproto_demkstr_string( saacproto.token_list[3] ));
userindex = saacproto_demkstr_int( saacproto.token_list[4] );
clifdid = saacproto_demkstr_int( saacproto.token_list[5] );
saacproto_ACCharInsertPoolPet_recv( fd, cdkey, userindex, clifdid, Pooldataarg);
return 0;
}
if( strcmp( funcname , "ACSavePoolPet" ) == 0 ){
char *cdkey, *Pooldataarg;
int clifdid, userindex;
cdkey = saacproto_wrapStringAddr( saacproto_stringwrapper[1] , saacproto.workbufsize , saacproto_demkstr_string( saacproto.token_list[2] ));
Pooldataarg = saacproto_wrapStringAddr( saacproto_stringwrapper[2] , saacproto.workbufsize , saacproto_demkstr_string( saacproto.token_list[3] ));
userindex = saacproto_demkstr_int( saacproto.token_list[4] );
clifdid = saacproto_demkstr_int( saacproto.token_list[5] );
saacproto_ACCharSavePoolPet_recv( fd, cdkey, userindex, clifdid, Pooldataarg);
return 0;
}
if( strcmp( funcname , "ACGetPoolPet" ) == 0 ){
char *cdkey;
int clifdid, userindex, npcid;
cdkey = saacproto_wrapStringAddr( saacproto_stringwrapper[1] , saacproto.workbufsize , saacproto_demkstr_string( saacproto.token_list[2] ));
userindex = saacproto_demkstr_int( saacproto.token_list[3] );
clifdid = saacproto_demkstr_int( saacproto.token_list[4] );
npcid = saacproto_demkstr_int( saacproto.token_list[5] );
saacproto_ACCharGetPoolPet_recv( fd, cdkey, userindex, clifdid, npcid);
return 0;
}
#endif
#ifdef _UNIVERSE_CHATROOM
if( strcmp( funcname , "ACUniChatroom" ) == 0 ){
char *cdkey, *data;
int clifdid, userindex;
cdkey = saacproto_wrapStringAddr( saacproto_stringwrapper[1] , saacproto.workbufsize , saacproto_demkstr_string( saacproto.token_list[2] ));
data = saacproto_wrapStringAddr( saacproto_stringwrapper[2] , saacproto.workbufsize , saacproto_demkstr_string( saacproto.token_list[3] ));
userindex = saacproto_demkstr_int( saacproto.token_list[4] );
clifdid = saacproto_demkstr_int( saacproto.token_list[5] );
saacproto_ACUniChatroom_recv( fd, cdkey, data, userindex, clifdid );
return 0;
}
#endif
#ifdef _ANGEL_SUMMON
if( strcmp( funcname , "ACMissionTable" ) == 0 ){
int num;
int type;
char* data;
//int charaindex;
char* angelinfo;
num = saacproto_demkstr_int( saacproto.token_list[2] );
type = saacproto_demkstr_int( saacproto.token_list[3] );
data = saacproto_wrapStringAddr( saacproto_stringwrapper[3] , saacproto.workbufsize , saacproto_demkstr_string( saacproto.token_list[4] ));
//charaindex = saacproto_demkstr_int( saacproto.token_list[5] );
angelinfo = saacproto_wrapStringAddr( saacproto_stringwrapper[4] , saacproto.workbufsize , saacproto_demkstr_string( saacproto.token_list[5] ));
saacproto_ACMissionTable_recv( fd, num, type, data, angelinfo);
return 0;
}
#endif
#ifdef _TEACHER_SYSTEM
if( strcmp( funcname , "ACCheckCharacterOnLine" ) == 0 ){
int charaindex,flag;
char *id;
char *name;
charaindex = saacproto_demkstr_int( saacproto.token_list[2] );
id = saacproto_wrapStringAddr( saacproto_stringwrapper[2] , saacproto.workbufsize , saacproto_demkstr_string( saacproto.token_list[3] ));
name = saacproto_wrapStringAddr( saacproto_stringwrapper[3] , saacproto.workbufsize , saacproto_demkstr_string( saacproto.token_list[4] ));
flag = saacproto_demkstr_int( saacproto.token_list[5] );
saacproto_ACCheckCharacterOnLine_recv(fd,charaindex,id,name,flag);
return 0;
}
#endif
#ifdef _RACEMAN
if( strcmp( funcname , "ACRaceRecordandSort" ) == 0 ){
int charaindex,racetype,catchcnt,ranknum;
char *id;
char *name;
char *code;
charaindex = saacproto_demkstr_int( saacproto.token_list[2] );
code = saacproto_wrapStringAddr( saacproto_stringwrapper[2] , saacproto.workbufsize , saacproto_demkstr_string( saacproto.token_list[3] ));
id = saacproto_wrapStringAddr( saacproto_stringwrapper[3] , saacproto.workbufsize , saacproto_demkstr_string( saacproto.token_list[4] ));
name = saacproto_wrapStringAddr( saacproto_stringwrapper[4] , saacproto.workbufsize , saacproto_demkstr_string( saacproto.token_list[5] ));
racetype = saacproto_demkstr_int( saacproto.token_list[6] );
catchcnt = saacproto_demkstr_int( saacproto.token_list[7] ); //Íæ¼ÒÄ¿Ç°×¥¶àÉÙÖ»
ranknum = saacproto_demkstr_int( saacproto.token_list[8] ); //serverÒªÅÅÃûµ½¼¸¸ö
saacproto_ACRaceRecordandSort_recv( fd , charaindex , code , id , name , racetype , catchcnt ,ranknum );
return 0;
}
if( strcmp( funcname , "ACRaceRecordfmdo" ) == 0 ){
int charaindex;
int fmid , bbi;
char *unicode , *petname;
charaindex = saacproto_demkstr_int( saacproto.token_list[2] );
fmid = saacproto_demkstr_int( saacproto.token_list[3] );
bbi = saacproto_demkstr_int( saacproto.token_list[4] );
unicode = saacproto_wrapStringAddr( saacproto_stringwrapper[4] , saacproto.workbufsize , saacproto_demkstr_string( saacproto.token_list[5] ));
petname = saacproto_wrapStringAddr( saacproto_stringwrapper[5] , saacproto.workbufsize , saacproto_demkstr_string( saacproto.token_list[6] ));
saacproto_ACRaceRecordfmdo_recv( fd , charaindex , fmid , bbi , unicode , petname );
return 0;
}
#endif
sprintf( debugfun, "%s", funcname);
return -1;
}
void saacproto_ACServerLogin_send( int fd,char* result,char* data )
{
saacproto_CreateHeader( saacproto.work , "ACServerLogin" );
saacproto_strcatsafe( saacproto.work , saacproto_mkstr_string( result ) ,saacproto.workbufsize );
saacproto_strcatsafe( saacproto.work , saacproto_mkstr_string( data ) ,saacproto.workbufsize );
saacproto_Send( fd , saacproto.work );
}
void saacproto_ACCharList_send( int fd,char* result,char* output,int id )
{
saacproto_CreateHeader( saacproto.work , "ACCharList" );
saacproto_strcatsafe( saacproto.work , saacproto_mkstr_string( result ) ,saacproto.workbufsize );
saacproto_strcatsafe( saacproto.work , saacproto_mkstr_string( output ) ,saacproto.workbufsize );
saacproto_strcatsafe( saacproto.work , saacproto_mkstr_int( id ) ,saacproto.workbufsize );
saacproto_Send( fd , saacproto.work );
}
static int CharDataLens = 0;
#ifdef _NewSave
void saacproto_ACCharLoad_send( int fd,char* result,char* data,int id,int charindex )
#else
void saacproto_ACCharLoad_send( int fd,char* result,char* data,int id )
#endif
{
if( strstr( result, "successful") != NULL && strlen( data) > CharDataLens ){
CharDataLens = strlen( data);
//andy_log
log("×î´óÊý¾Ý³¤¶È:%d\n", CharDataLens );
}
saacproto_CreateHeader( saacproto.work , "ACCharLoad" );
saacproto_strcatsafe( saacproto.work , saacproto_mkstr_string( result ) ,saacproto.workbufsize );
saacproto_strcatsafe( saacproto.work , saacproto_mkstr_string( data ) ,saacproto.workbufsize );
saacproto_strcatsafe( saacproto.work , saacproto_mkstr_int( id ) ,saacproto.workbufsize );
#ifdef _NewSave
saacproto_strcatsafe( saacproto.work , saacproto_mkstr_int( charindex ) ,saacproto.workbufsize );
#endif
saacproto_Send( fd , saacproto.work );
}
#ifdef _RELOGIN
void saacproto_ACCharLoadII_send( int fd,char* result,char* data,int id,int charindex,int gs1,int gs2 )
{
saacproto_CreateHeader( saacproto.work , "ACCharLoadII" );
saacproto_strcatsafe( saacproto.work , saacproto_mkstr_string( result ) ,saacproto.workbufsize );
saacproto_strcatsafe( saacproto.work , saacproto_mkstr_string( data ) ,saacproto.workbufsize );
saacproto_strcatsafe( saacproto.work , saacproto_mkstr_int( id ) ,saacproto.workbufsize );
saacproto_strcatsafe( saacproto.work , saacproto_mkstr_int( charindex ) ,saacproto.workbufsize );
saacproto_strcatsafe( saacproto.work , saacproto_mkstr_int( gs1 ) ,saacproto.workbufsize );
saacproto_strcatsafe( saacproto.work , saacproto_mkstr_int( gs2 ) ,saacproto.workbufsize );
saacproto_Send( fd , saacproto.work );
}
#endif
/*
214 : <li><a name="ACCharSaveS"><font color=blue>servertoclient ACCharSave( string result , string data,int id);<br></font></a>
215 : ACCharSave±å¸²ÔÊÔÂ߯²Ï£Û
216 : <br><br>
217 : <dl>
218 : <dt> string result
219 : <dd>"successful" , "failed" ¼°ÖÐÎðľ¾®£Û
220 : <dt> string data
221 : <dd>"failed"¼°ÁÝ·´ ëÔ÷ÔÊÚÐÃÞ¼°Î­»¯ÛÐÔ ٯ ƥؤÔ£Û
222 : <dt> int id
223 : <dd> ¦ÐѼ°id빫¼°ÒýÒýÎìñâ¡õØÆ»¯ß¯ÔÊ
224 : </dl>
225 : <br>
226 : <br>
227 :
228 :
229 :
230 :
*/
void saacproto_ACCharSave_send( int fd,char* result,char* data,int id )
{
saacproto_CreateHeader( saacproto.work , "ACCharSave" );
saacproto_strcatsafe( saacproto.work , saacproto_mkstr_string( result ) ,saacproto.workbufsize );
saacproto_strcatsafe( saacproto.work , saacproto_mkstr_string( data ) ,saacproto.workbufsize );
saacproto_strcatsafe( saacproto.work , saacproto_mkstr_int( id ) ,saacproto.workbufsize );
saacproto_Send( fd , saacproto.work );
}
#ifdef _RELOGIN
void saacproto_ACCharSaveII_send( int fd,char* result,char* data,int id,int gs1,int gs2 )
{
saacproto_CreateHeader( saacproto.work , "ACCharSaveII" );
saacproto_strcatsafe( saacproto.work , saacproto_mkstr_string( result ) ,saacproto.workbufsize );
saacproto_strcatsafe( saacproto.work , saacproto_mkstr_string( data ) ,saacproto.workbufsize );
saacproto_strcatsafe( saacproto.work , saacproto_mkstr_int( id ) ,saacproto.workbufsize );
saacproto_strcatsafe( saacproto.work , saacproto_mkstr_int( gs1 ) ,saacproto.workbufsize );
saacproto_strcatsafe( saacproto.work , saacproto_mkstr_int( gs2 ) ,saacproto.workbufsize );
saacproto_Send( fd , saacproto.work );
}
#endif
/*
256 : <li><a name="ACCharDeleteS"><font color=blue>servertoclient ACCharDelete(string result, string data,int id);<br></font></a>
257 : ACCharDelete±å¸²ÔÊÔÂ߯²Ï£Û
258 : <br><br>
259 : <dl>
260 : <dt> string result
261 : <dd>"successful" , "failed" ¼°ÖÐÎðľ¾®£Û
262 : <dt> string data
263 : <dd>"failed"¼°ÁÝ·´ ëÔ÷ÔÊÚÐÃÞ¼°Î­»¯ÛÐÔ ٯ ƥؤÔ£Û
264 : <dt> int id
265 : <dd> ¦ÐѼ°id¼°¹«¼°ÒýÒý¼°Îìñâ¡õ
266 :
267 : </dl>
268 : <br>
269 : <br>
270 :
*/
void saacproto_ACCharDelete_send( int fd,char* result,char* data,int id )
{
saacproto_CreateHeader( saacproto.work , "ACCharDelete" );
saacproto_strcatsafe( saacproto.work , saacproto_mkstr_string( result ) ,saacproto.workbufsize );
saacproto_strcatsafe( saacproto.work , saacproto_mkstr_string( data ) ,saacproto.workbufsize );
saacproto_strcatsafe( saacproto.work , saacproto_mkstr_int( id ) ,saacproto.workbufsize );
saacproto_Send( fd , saacproto.work );
}
/*
290 : <LI> <a name="ACLockS"><font color=blue>servertoclient ACLock( string result, string data ,int id);<br></font></a>
291 : ACLock±å¸²ÔÊÔÂ߯²Ï£Û
292 : <br><br>
293 : <dl>
294 : <dt>string result
295 : <dd>"successful" , "failed" ¼°ÖÐÎðľ¾®£Û
296 : <dt>string data
297 : <dd>"failed"¼°ÁÝ·´ ëÔ÷ÔÊÚÐÃÞ¼°Î­»¯ÛÐÔ ٯ ƥؤÔ£Û
298 : <dt>int id
299 : <dd>¦ÐѼ°id¼°¹«¼°ÒýÒýÎìñâ¡õ
300 : </dl>
301 : <br>
302 : <br>
303 :
*/
void saacproto_ACLock_send( int fd,char* result,char* data,int id )
{
saacproto_CreateHeader( saacproto.work , "ACLock" );
saacproto_strcatsafe( saacproto.work , saacproto_mkstr_string( result ) ,saacproto.workbufsize );
saacproto_strcatsafe( saacproto.work , saacproto_mkstr_string( data ) ,saacproto.workbufsize );
saacproto_strcatsafe( saacproto.work , saacproto_mkstr_int( id ) ,saacproto.workbufsize );
saacproto_Send( fd , saacproto.work );
}
/*
318 : <LI><a name="ACUCheckS"><font color=blue>servertoclient ACUCheck( string mem_id );</font></a><BR>
319 : ʧÊÐËü¼þÐþÈÓ¡õÌï¡õ¾®ÈձءõØ©ÈÓ¡õÌï¡õ±å¸²ØÆ»¯£ýؤÔ½»¡õ°Ç¡õ»¥òØ»þ·òºëÄ̼þ
320 : ØÆ»¯ÖÐÔ¾®Éýµ¤¾®Ã«ÃñÄáÓÀÛÍÔÊÔ£Û
321 : <BR><BR>
322 : <dl>
323 : <dt>string mem_id
324 : <dd>Æ©ÍÍÔ¸²ÀÞ¼°½»¡õ°Ç¡õ¼°gamersDream member id
325 : </dl>
326 : <BR><BR>
327 :
328 :
*/
void saacproto_ACUCheck_send( int fd,char* mem_id )
{
saacproto_CreateHeader( saacproto.work , "ACUCheck" );
saacproto_strcatsafe( saacproto.work , saacproto_mkstr_string( mem_id ) ,saacproto.workbufsize );
saacproto_Send( fd , saacproto.work );
}
/*
344 : <LI><a name="DBUpdateEntryStringS"><font color=blue>servertoclient DBUpdateEntryString( string result, string table, string key, int msgid, int msgid2 );</font></a><BR>
345 : Ïþ¼°ÎìѨ¼þÓñ¼°çø°í£ÛÁà ØÆ»¯ÊÖ¼ÔãâæØµÚ Ø¦¼°Æ¥ ÷»ØÆ»¯·½ÖÐÈß
346 : <dl>
347 : <dt>string result
348 : <dD>successful ¾®failed
349 : <dt>string table
350 : <dD>
351 : <dt>int msgid
352 : <dD>
353 : <dt>int msgid2
354 : <dD>
355 : </dL>
356 :
*/
void saacproto_DBUpdateEntryString_send( int fd,char* result,char* table,char* key,int msgid,int msgid2 )
{
saacproto_CreateHeader( saacproto.work , "DBUpdateEntryString" );
saacproto_strcatsafe( saacproto.work , saacproto_mkstr_string( result ) ,saacproto.workbufsize );
saacproto_strcatsafe( saacproto.work , saacproto_mkstr_string( table ) ,saacproto.workbufsize );
saacproto_strcatsafe( saacproto.work , saacproto_mkstr_string( key ) ,saacproto.workbufsize );
saacproto_strcatsafe( saacproto.work , saacproto_mkstr_int( msgid ) ,saacproto.workbufsize );
saacproto_strcatsafe( saacproto.work , saacproto_mkstr_int( msgid2 ) ,saacproto.workbufsize );
saacproto_Send( fd , saacproto.work );
}
/*
369 : <LI><a name="DBDeleteEntryStringS"><font color=blue>servertoclient DBDeleteEntryString( string result, string table, string key , int msgid , int msgid2 );</font></a><BR>
370 : Ù¯ ¾Þ¼þÐþØø¼°´ÂÂÖ¼°çø°í
371 : <dl>
372 : <dt>string result
373 : <dd>successful / failed
374 : <dt>string table
375 : <dd>
376 : <dt>string key
377 : <dd>
378 : <dt>int msgid
379 : <dd>
380 : <dt>int msgid2
381 : <dd>
382 : </dl>
383 :
*/
void saacproto_DBDeleteEntryString_send( int fd,char* result,char* table,char* key,int msgid,int msgid2 )
{
saacproto_CreateHeader( saacproto.work , "DBDeleteEntryString" );
saacproto_strcatsafe( saacproto.work , saacproto_mkstr_string( result ) ,saacproto.workbufsize );
saacproto_strcatsafe( saacproto.work , saacproto_mkstr_string( table ) ,saacproto.workbufsize );
saacproto_strcatsafe( saacproto.work , saacproto_mkstr_string( key ) ,saacproto.workbufsize );
saacproto_strcatsafe( saacproto.work , saacproto_mkstr_int( msgid ) ,saacproto.workbufsize );
saacproto_strcatsafe( saacproto.work , saacproto_mkstr_int( msgid2 ) ,saacproto.workbufsize );
saacproto_Send( fd , saacproto.work );
}
/*
396 : <Li><a name="DBGetEntryStringS"><font color=blue>servertoclient DBGetEntryString( string result, string value, string table, string key, int msgid, int msgid2 );</font></a><BR>
397 : äúÔ»·ÖØƼ°ß¯Ô»°À
398 : <dl>
399 : <dt>string result
400 : <dd>successful / failed
401 : <dt>string value
402 : <dd>°À
403 : <dt>string table
404 : <dd>
405 : <dt>string key
406 : <dd>
407 : <dt>int msgid
408 : <dd>
409 : <dt>int msgid2
410 : <dd>
411 : </dl>
412 :
*/
void saacproto_DBGetEntryString_send( int fd,char* result,char* value,char* table,char* key,int msgid,int msgid2 )
{
saacproto_CreateHeader( saacproto.work , "DBGetEntryString" );
saacproto_strcatsafe( saacproto.work , saacproto_mkstr_string( result ) ,saacproto.workbufsize );
saacproto_strcatsafe( saacproto.work , saacproto_mkstr_string( value ) ,saacproto.workbufsize );
saacproto_strcatsafe( saacproto.work , saacproto_mkstr_string( table ) ,saacproto.workbufsize );
saacproto_strcatsafe( saacproto.work , saacproto_mkstr_string( key ) ,saacproto.workbufsize );
saacproto_strcatsafe( saacproto.work , saacproto_mkstr_int( msgid ) ,saacproto.workbufsize );
saacproto_strcatsafe( saacproto.work , saacproto_mkstr_int( msgid2 ) ,saacproto.workbufsize );
saacproto_Send( fd , saacproto.work );
}
/*
435 : <LI><a name="DBUpdateEntryIntS"><font color=blue>servertoclient DBUpdateEntryInt( string result , string table, string key, int msgid, int msgid2 );</font></a><BR>
436 : DBUpdateEntry¼°çø°í£Û
437 : <dl>
438 : <dt>string result
439 : <dd>succesful/failed
440 : <dt>string table
441 : <dd> ¡õƤ»ï 빫¼°ÒýÒý¾®ÒüÔÊ
442 : <dt>string key
443 : <dd>ƽ¡õ빫¼°ÒýÒý¾®ÒüÔÊ
444 : <dt>int msgid, int msgid2
445 : <dd>msgid 빫¼°ÒýÒý߯ÔÊ£Û
446 : </dl>
447 : <BR><BR>
448 :
*/
#ifdef _ALLDOMAN // Syu ADD ÅÅÐаñNPC
void saacproto_UpdataStele_send( int fd , char *data )
{
saacproto_CreateHeader( saacproto.work , "UpdataStele" );
saacproto_strcatsafe( saacproto.work , saacproto_mkstr_string( data ) ,saacproto.workbufsize );
saacproto_Send( fd , saacproto.work );
}
void saacproto_S_UpdataStele_send( int fd , char *ocdkey , char *oname , char *ncdkey ,
char *nname , char *title , int level , int trns , int floor ) {
saacproto_CreateHeader( saacproto.work , "S_UpdataStele" );
saacproto_strcatsafe( saacproto.work , saacproto_mkstr_string( ocdkey ) ,saacproto.workbufsize );
saacproto_strcatsafe( saacproto.work , saacproto_mkstr_string( oname ) ,saacproto.workbufsize );
saacproto_strcatsafe( saacproto.work , saacproto_mkstr_string( ncdkey ) ,saacproto.workbufsize );
saacproto_strcatsafe( saacproto.work , saacproto_mkstr_string( nname ) ,saacproto.workbufsize );
saacproto_strcatsafe( saacproto.work , saacproto_mkstr_string( title ) ,saacproto.workbufsize );
saacproto_strcatsafe( saacproto.work , saacproto_mkstr_int( level ) ,saacproto.workbufsize );
saacproto_strcatsafe( saacproto.work , saacproto_mkstr_int( trns ) ,saacproto.workbufsize );
saacproto_strcatsafe( saacproto.work , saacproto_mkstr_int( floor ) ,saacproto.workbufsize );
saacproto_Send( fd , saacproto.work );
}
#endif
void saacproto_DBUpdateEntryInt_send( int fd,char* result,char* table,char* key,int msgid,int msgid2 )
{
saacproto_CreateHeader( saacproto.work , "DBUpdateEntryInt" );
saacproto_strcatsafe( saacproto.work , saacproto_mkstr_string( result ) ,saacproto.workbufsize );
saacproto_strcatsafe( saacproto.work , saacproto_mkstr_string( table ) ,saacproto.workbufsize );
saacproto_strcatsafe( saacproto.work , saacproto_mkstr_string( key ) ,saacproto.workbufsize );
saacproto_strcatsafe( saacproto.work , saacproto_mkstr_int( msgid ) ,saacproto.workbufsize );
saacproto_strcatsafe( saacproto.work , saacproto_mkstr_int( msgid2 ) ,saacproto.workbufsize );
saacproto_Send( fd , saacproto.work );
}
/*
463 : <LI><a name="DBGetEntryRankS"><font color=blue>servertoclient DBGetEntryRank( string result , int rank , int count, string table, string key, int msgid, int msgid2 );</font></a><BR>
464 : ´ÍÞËë߯ÔÊ£Û
465 : <dl>
466 : <dt>string result
467 : <dd>successful/failed
468 : <dt>int rank
469 : <dd>´ÍÞË£Û1¶¯Ïþ¼°°ÀëäúÔ£Û
470 : <dt>int count
471 : <dd>Ïþ¾®ÈÕÖÐÈʹ´»§¾®£Û âÙ¼°¾Þ¼þÐþØø·´0¾®ÈÕ·´ÔªÒýÔ£Û
472 : <dt>string table
473 : <dd> ¡õƤ»ï 빫¼°ÒýÒý¾®ÒüÔÊ
474 : <dt>string key
475 : <dd>ƽ¡õ빫¼°ÒýÒý¾®ÒüÔÊ
476 : <dt>int msgid, int msgid2
477 : <dd>msgid 빫¼°ÒýÒý߯ÔÊ
478 : </dl>
479 : <BR><BR>
480 :
481 :
*/
void saacproto_DBGetEntryRank_send( int fd,char* result,int rank,int count,char* table,char* key,int msgid,int msgid2 )
{
saacproto_CreateHeader( saacproto.work , "DBGetEntryRank" );
saacproto_strcatsafe( saacproto.work , saacproto_mkstr_string( result ) ,saacproto.workbufsize );
saacproto_strcatsafe( saacproto.work , saacproto_mkstr_int( rank ) ,saacproto.workbufsize );
saacproto_strcatsafe( saacproto.work , saacproto_mkstr_int( count ) ,saacproto.workbufsize );
saacproto_strcatsafe( saacproto.work , saacproto_mkstr_string( table ) ,saacproto.workbufsize );
saacproto_strcatsafe( saacproto.work , saacproto_mkstr_string( key ) ,saacproto.workbufsize );
saacproto_strcatsafe( saacproto.work , saacproto_mkstr_int( msgid ) ,saacproto.workbufsize );
saacproto_strcatsafe( saacproto.work , saacproto_mkstr_int( msgid2 ) ,saacproto.workbufsize );
saacproto_Send( fd , saacproto.work );
}
/*
494 : <LI><a name="DBDeleteEntryIntS"><font color=blue>servertoclient DBDeleteEntryInt( string result , string table, string key, int msgid, int msgid2 );</font></a><BR>
495 : ´ÂÂÖ¼°çø°í
496 : <dl>
497 : <dt>string result
498 : <dd>successful/failed
499 : <dt>string table
500 : <dd> ¡õƤ»ï 빫¼°ÒýÒý¾®ÒüÔÊ
501 : <dt>string key
502 : <dd>ƽ¡õ빫¼°ÒýÒý¾®ÒüÔÊ
503 : <dt>int msgid, int msgid2
504 : <dd>msgid 빫¼°ÒýÒý߯ÔÊ
505 : </dl>
506 : <BR><BR>
507 :
*/
void saacproto_DBDeleteEntryInt_send( int fd,char* result,char* table,char* key,int msgid,int msgid2 )
{
saacproto_CreateHeader( saacproto.work , "DBDeleteEntryInt" );
saacproto_strcatsafe( saacproto.work , saacproto_mkstr_string( result ) ,saacproto.workbufsize );
saacproto_strcatsafe( saacproto.work , saacproto_mkstr_string( table ) ,saacproto.workbufsize );
saacproto_strcatsafe( saacproto.work , saacproto_mkstr_string( key ) ,saacproto.workbufsize );
saacproto_strcatsafe( saacproto.work , saacproto_mkstr_int( msgid ) ,saacproto.workbufsize );
saacproto_strcatsafe( saacproto.work , saacproto_mkstr_int( msgid2 ) ,saacproto.workbufsize );
saacproto_Send( fd , saacproto.work );
}
/*
520 : <LI><a name="DBGetEntryIntS"><font color=blue>servertoclient DBGetEntryInt( string result , int value , string table, string key, int msgid, int msgid2 );</font></a><BR>
521 : ¾Þ¼þÐþØø¼°°Àë¾®ÒüÔÊ
522 : <dl>
523 : <dt>string result
524 : <dd>successful/failed
525 : <dt>int value
526 : <dd>°À¹«¼°ÊÖ¼°
527 : <dt>string table
528 : <dd> ¡õƤ»ï 빫¼°ÒýÒý¾®ÒüÔÊ
529 : <dt>string key
530 : <dd>ƽ¡õ빫¼°ÒýÒý¾®ÒüÔÊ
531 : <dt>int msgid, int msgid2
532 : <dd>msgid 빫¼°ÒýÒý߯ÔÊ
533 : </dl>
534 :
535 :
536 :
*/
void saacproto_DBGetEntryInt_send( int fd,char* result,int value,char* table,char* key,int msgid,int msgid2 )
{
saacproto_CreateHeader( saacproto.work , "DBGetEntryInt" );
saacproto_strcatsafe( saacproto.work , saacproto_mkstr_string( result ) ,saacproto.workbufsize );
saacproto_strcatsafe( saacproto.work , saacproto_mkstr_int( value ) ,saacproto.workbufsize );
saacproto_strcatsafe( saacproto.work , saacproto_mkstr_string( table ) ,saacproto.workbufsize );
saacproto_strcatsafe( saacproto.work , saacproto_mkstr_string( key ) ,saacproto.workbufsize );
saacproto_strcatsafe( saacproto.work , saacproto_mkstr_int( msgid ) ,saacproto.workbufsize );
saacproto_strcatsafe( saacproto.work , saacproto_mkstr_int( msgid2 ) ,saacproto.workbufsize );
saacproto_Send( fd , saacproto.work );
}
/*
552 : <LI><a name="DBGetEntryByRankS"><font color=blue>servertoclient DBGetEntryByRank( string result , string list , string table, int msgid, int msgid2 );</font></a><BR>
553 : DBGetEntryByRank¼°çø°í£Û
554 : <dl>
555 : <dt>string result
556 : <dd>
557 : <dt>string list
558 : <dd>"RANK,KEY,SCORE,INFO|RANK,KEY,SCORE,INFO|...."<BR>
559 : RANK·´´ÍÞËƥؤÔ£ÛKEY·´¹«¼°´ÍÞ˱åئÔÈ»¯ÖÐÔµ©ÎìʧëÊÖÔÈ»¯ÖÐÔÂ
560 : ƽ¡õ£ÛSCORE·´°ïÐÑ°ÀÆ¥µ©ÎìʧƥؤÔ£Û
561 : £Û<br>
562 : "1,RINGO,123465,data1|2,HOGE,4567,data2|2,FUCK,4567,data3"<BR>
563 : ³ð¼° ·ÖÎç£ý2ÞË·´2ÚÐÖÐÔ³ðÎç±åئÔ£Û
564 : <dt>string table
565 : <dd> ¡õƤ»ï
566 : <dt>int msgid, int msgid2
567 : <dd>
568 : </dl>
569 :
570 :
*/
void saacproto_DBGetEntryByRank_send( int fd,char* result,char* list,char* table,int msgid,int msgid2 )
{
saacproto_CreateHeader( saacproto.work , "DBGetEntryByRank" );
saacproto_strcatsafe( saacproto.work , saacproto_mkstr_string( result ) ,saacproto.workbufsize );
saacproto_strcatsafe( saacproto.work , saacproto_mkstr_string( list ) ,saacproto.workbufsize );
saacproto_strcatsafe( saacproto.work , saacproto_mkstr_string( table ) ,saacproto.workbufsize );
saacproto_strcatsafe( saacproto.work , saacproto_mkstr_int( msgid ) ,saacproto.workbufsize );
saacproto_strcatsafe( saacproto.work , saacproto_mkstr_int( msgid2 ) ,saacproto.workbufsize );
saacproto_Send( fd , saacproto.work );
}
/*
583 : <LI><a name="DBGetEntryByCountS"><font color=blue>servertoclient DBGetEntryByCount( string result , string list , string table, int count_start, int msgid, int msgid2 );</font></a><BR>
584 : DBGetEntryByCount ¼°çø°í£Û
585 : <dl>
586 : <dt>string result
587 : <dd>SUCCESSFUL/FAILED
588 : <dt>string list
589 : <dd>Çë Øøµ©Ðþ£Û1¾Þ¼þÐþØøؤÐ×Ô» "INDEX,RANK,KEY,SCORE,INFO" ¼°4òÛ¼°Ê÷
590 : ¼°×¬Æ¥Ø¤Ô»£ý¹«Ä¾»¥òÛÐÑÛÐ "|" Æ¥¹´Ø¦»¥Ô£ÛòÛÐÑ»¥0¼°èëÄþ·´
591 : Îë Ù¯ £Û
592 : <dt>int num
593 : <dd>ÖÐÈʹ´ÎçÔ»·ÖÔʾ®£Û1ئÈÕ1òÛ£Û2ئÈÕ2òÛ£Û
594 : <dt>int msgid ,msgid2
595 : <dd>¶ªÓÀ±¾¡õ³âID.
596 : </dL>
597 :
*/
void saacproto_DBGetEntryByCount_send( int fd,char* result,char* list,char* table,int count_start,int msgid,int msgid2 )
{
saacproto_CreateHeader( saacproto.work , "DBGetEntryByCount" );
saacproto_strcatsafe( saacproto.work , saacproto_mkstr_string( result ) ,saacproto.workbufsize );
saacproto_strcatsafe( saacproto.work , saacproto_mkstr_string( list ) ,saacproto.workbufsize );
saacproto_strcatsafe( saacproto.work , saacproto_mkstr_string( table ) ,saacproto.workbufsize );
saacproto_strcatsafe( saacproto.work , saacproto_mkstr_int( count_start ) ,saacproto.workbufsize );
saacproto_strcatsafe( saacproto.work , saacproto_mkstr_int( msgid ) ,saacproto.workbufsize );
saacproto_strcatsafe( saacproto.work , saacproto_mkstr_int( msgid2 ) ,saacproto.workbufsize );
saacproto_Send( fd , saacproto.work );
}
/*
611 : <LI><a name="Broadcast"><font color=blue>servertoclient Broadcast( string id, string charname, string message );</font></a><BR>
612 : Broadcast¼°Ê§ÊÐËü¼þÐþÈÓ¡õÌï¡õ¾®ÈձءõØ©ÈÓ¡õÌï¡õ³ß¼°ËªññåÃ
613 : <dl>
614 : <dt>string id
615 : <dd>user ID
616 : <dt>string charname
617 : <dd>character name
618 : <dt>string message
619 : <dd>¶ªÓÀ±¾¡õ³â
620 : <dt>int flag
621 : <dd>1±åÔÊÔÂÎç£ý·ßÛбå±å·´ ˪½ñľئÖУÛ
622 : </dl>
623 :
*/
void saacproto_Broadcast_send( int fd,char* id,char* charname,char* message )
{
saacproto_CreateHeader( saacproto.work , "Broadcast" );
saacproto_strcatsafe( saacproto.work , saacproto_mkstr_string( id ) ,saacproto.workbufsize );
saacproto_strcatsafe( saacproto.work , saacproto_mkstr_string( charname ) ,saacproto.workbufsize );
saacproto_strcatsafe( saacproto.work , saacproto_mkstr_string( message ) ,saacproto.workbufsize );
saacproto_Send( fd , saacproto.work );
}
/*
642 : <LI><a name="Message"><font color=blue>servertoclient Message( string id_from, string charname_from, string id_to, string charname_to, string message , int option , int mesgid );</font></a><BR>
643 : ʧÊÐËü¼þÐþÈÓ¡õÌï¡õ¾®ÈձءõØ©ÈÓ¡õÌï¡õ±å¶ªÓÀ±¾¡õ³âë˪ññÔÊÔ£Û
644 : <dl>
645 : <dt>string id_from
646 : <dd>from ID
647 : <dt>string charname_from
648 : <dd>from character name
649 : <dt>string id_to
650 : <dd>to ID
651 : <dt>string charname_to
652 : <dd>to character name
653 : <dt>string message
654 : <dd>¶ªÓÀ±¾¡õ³â¼°
655 : <dt>int option
656 : <dd>×óÃóÆËÒà¼þ(Ïþ¼°èúÐÑ븨å¾)
657 : <dt>int mesgid
658 : <dd>¶ªÓÀ±¾¡õ³âID ʧÊÐËü¼þÐþÈÓ¡õÌï¡õ¼°¶° åÃ
659 : </dl>
660 :
*/
void saacproto_Message_send( int fd,char* id_from,char* charname_from,char* id_to,char* charname_to,char* message,int option,int mesgid )
{
saacproto_CreateHeader( saacproto.work , "Message" );
saacproto_strcatsafe( saacproto.work , saacproto_mkstr_string( id_from ) ,saacproto.workbufsize );
saacproto_strcatsafe( saacproto.work , saacproto_mkstr_string( charname_from ) ,saacproto.workbufsize );
saacproto_strcatsafe( saacproto.work , saacproto_mkstr_string( id_to ) ,saacproto.workbufsize );
saacproto_strcatsafe( saacproto.work , saacproto_mkstr_string( charname_to ) ,saacproto.workbufsize );
saacproto_strcatsafe( saacproto.work , saacproto_mkstr_string( message ) ,saacproto.workbufsize );
saacproto_strcatsafe( saacproto.work , saacproto_mkstr_int( option ) ,saacproto.workbufsize );
saacproto_strcatsafe( saacproto.work , saacproto_mkstr_int( mesgid ) ,saacproto.workbufsize );
saacproto_Send( fd , saacproto.work );
}
void saacproto_SetServerLogFiles( char *r , char *w )
{
saacproto_strcpysafe( saacproto_writelogfilename , w , sizeof(saacproto_writelogfilename ));
saacproto_strcpysafe( saacproto_readlogfilename , r , sizeof(saacproto_readlogfilename ));
}
int saacproto_InitServer( int (*writefunc)(int,char*,int) , int worksiz )
{
int i;
if( (void*)writefunc == NULL){saacproto.write_func = saacproto_default_write_wrap;} else {saacproto.write_func = writefunc;}
saacproto_AllocateCommonWork(worksiz);
saacproto_stringwrapper = (char**)calloc( 1,sizeof(char*) * MAXLSRPCARGS);
if(saacproto_stringwrapper ==NULL)return -1;
memset( saacproto_stringwrapper , 0, sizeof(char*)*MAXLSRPCARGS);
for(i=0;i<MAXLSRPCARGS;i++){
saacproto_stringwrapper[i] = (char*)calloc( 1, worksiz );
if( saacproto_stringwrapper[i] == NULL){
for(i=0;i<MAXLSRPCARGS;i++){free( saacproto_stringwrapper[i]);return -1;}
}
}
saacproto.ret_work = (char*)calloc( 1,sizeof( worksiz ));
if( saacproto.ret_work == NULL ){ return -1; }
return 0;
}
void saacproto_CleanupServer( void )
{
int i;
free( saacproto.work );
free( saacproto.arraywork);
free( saacproto.escapework );
free( saacproto.val_str);
free( saacproto.token_list );
for(i=0;i<MAXLSRPCARGS;i++){free( saacproto_stringwrapper[i]);}
free( saacproto_stringwrapper );
free( saacproto.ret_work );
}
/************************************************************
* CoolFish: Family 2001/5/18
***********************************************************/
// ³ÉÁ¢¼Ò×å
void saacproto_ACAddFM_send(int fd, char *result, int fmindex, int index,
int charfdid)
{
saacproto_CreateHeader(saacproto.work , "ACAddFM");
saacproto_strcatsafe(saacproto.work , saacproto_mkstr_string(result) ,saacproto.workbufsize );
saacproto_strcatsafe(saacproto.work , saacproto_mkstr_int(fmindex) ,saacproto.workbufsize );
saacproto_strcatsafe(saacproto.work , saacproto_mkstr_int(index) ,saacproto.workbufsize );
saacproto_strcatsafe(saacproto.work , saacproto_mkstr_int(charfdid) ,saacproto.workbufsize );
saacproto_Send( fd , saacproto.work );
}
// ¼ÓÈë¼Ò×å
void saacproto_ACJoinFM_send(int fd, char *result, int recv, int charfdid)
{
saacproto_CreateHeader(saacproto.work , "ACJoinFM");
saacproto_strcatsafe(saacproto.work , saacproto_mkstr_string(result) ,saacproto.workbufsize );
saacproto_strcatsafe(saacproto.work , saacproto_mkstr_int(recv) ,saacproto.workbufsize );
saacproto_strcatsafe(saacproto.work , saacproto_mkstr_int(charfdid) ,saacproto.workbufsize );
saacproto_Send( fd , saacproto.work );
}
// Í˳ö¼Ò×å
void saacproto_ACLeaveFM_send(int fd, char *result, int resultflag, int charfdid)
{
saacproto_CreateHeader(saacproto.work , "ACLeaveFM");
saacproto_strcatsafe(saacproto.work , saacproto_mkstr_string(result) ,saacproto.workbufsize );
saacproto_strcatsafe(saacproto.work , saacproto_mkstr_int(resultflag) ,saacproto.workbufsize );
saacproto_strcatsafe(saacproto.work , saacproto_mkstr_int(charfdid) ,saacproto.workbufsize );
saacproto_Send( fd , saacproto.work );
}
// ½âÉ¢¼Ò×å
void saacproto_ACDelFM_send(int fd, char *result, int charfdid)
{
saacproto_CreateHeader(saacproto.work , "ACDelFM");
saacproto_strcatsafe(saacproto.work , saacproto_mkstr_string(result) ,saacproto.workbufsize );
saacproto_strcatsafe(saacproto.work , saacproto_mkstr_int(charfdid) ,saacproto.workbufsize );
saacproto_Send( fd , saacproto.work );}
// Áгö¼Ò×åÁбí
void saacproto_ACShowFMList_send(int fd, char *result, int num, char *data)
{
saacproto_CreateHeader(saacproto.work , "ACShowFMList");
saacproto_strcatsafe(saacproto.work , saacproto_mkstr_string(result) ,saacproto.workbufsize );
saacproto_strcatsafe(saacproto.work , saacproto_mkstr_int(num) ,saacproto.workbufsize );
saacproto_strcatsafe(saacproto.work , saacproto_mkstr_string(data) ,saacproto.workbufsize );
saacproto_Send( fd , saacproto.work );
}
#ifdef _DEATH_FAMILY_GM_COMMAND // WON ADD ¼Ò×åÕ½GMÖ¸Áî
void saacproto_ACRELOADFM_send( int fd, int charindex )
{
saacproto_CreateHeader(saacproto.work , "ACRELOADFMOK");
saacproto_strcatsafe(saacproto.work , saacproto_mkstr_int(charindex) ,saacproto.workbufsize );
saacproto_Send( fd , saacproto.work );
}
void saacproto_ACSHOWMEMBERLIST_2_send( int fd, int charindex, int fm1, char *fm1_name, int fm2, char *fm2_name, int time, int id )
{
saacproto_CreateHeader(saacproto.work , "ACSHOWMEMBERLIST2");
saacproto_strcatsafe(saacproto.work , saacproto_mkstr_int(charindex) ,saacproto.workbufsize );
saacproto_strcatsafe(saacproto.work , saacproto_mkstr_int(fm1) ,saacproto.workbufsize );
saacproto_strcatsafe(saacproto.work , saacproto_mkstr_string(fm1_name) ,saacproto.workbufsize );
saacproto_strcatsafe(saacproto.work , saacproto_mkstr_int(fm2) ,saacproto.workbufsize );
saacproto_strcatsafe(saacproto.work , saacproto_mkstr_string(fm2_name) ,saacproto.workbufsize );
saacproto_strcatsafe(saacproto.work , saacproto_mkstr_int(time) ,saacproto.workbufsize );
saacproto_strcatsafe(saacproto.work , saacproto_mkstr_int(id) ,saacproto.workbufsize );
saacproto_Send( fd , saacproto.work );
}
#endif
#ifdef _DEATH_FAMILY_STRUCT // WON ADD ¼Ò×åÕ½´æ·Åʤ¸º×ÊÁÏ
void saacproto_ACFMPKSTRUCT_send( int fd, char *data )
{
saacproto_CreateHeader(saacproto.work , "ACSendFmPkStruct");
saacproto_strcatsafe(saacproto.work , saacproto_mkstr_string(data) ,saacproto.workbufsize );
saacproto_Send( fd , saacproto.work );
}
#endif
#ifdef _DEATH_FAMILY_LOGIN_CHECK // WON ADD ¼Ò×åÕ½µÇÈë¼ì²é
void saacproto_ACFMCharLogin2_send( int fd, char *result, int charindex, char *data )
{
saacproto_CreateHeader(saacproto.work , "ACSendMemberList");
saacproto_strcatsafe(saacproto.work , saacproto_mkstr_string(result) ,saacproto.workbufsize );
saacproto_strcatsafe(saacproto.work , saacproto_mkstr_int(charindex) ,saacproto.workbufsize );
saacproto_strcatsafe(saacproto.work , saacproto_mkstr_string(data) ,saacproto.workbufsize );
saacproto_Send( fd , saacproto.work );
}
#endif
// Áгö³ÉÔ±Áбí
void saacproto_ACShowMemberList_send(int fd, char *result, int index, int num,
int acceptflag, int fmjoinnum, char *data)
{
saacproto_CreateHeader(saacproto.work , "ACShowMemberList");
saacproto_strcatsafe(saacproto.work , saacproto_mkstr_string(result) ,saacproto.workbufsize );
saacproto_strcatsafe(saacproto.work , saacproto_mkstr_int(index) ,saacproto.workbufsize );
saacproto_strcatsafe(saacproto.work , saacproto_mkstr_int(num) ,saacproto.workbufsize );
saacproto_strcatsafe(saacproto.work , saacproto_mkstr_int(acceptflag) ,saacproto.workbufsize );
saacproto_strcatsafe(saacproto.work , saacproto_mkstr_int(fmjoinnum) ,saacproto.workbufsize );
saacproto_strcatsafe(saacproto.work , saacproto_mkstr_string(data) ,saacproto.workbufsize );
saacproto_Send( fd , saacproto.work );
}
// Áгö¼Ò×åÏêϸ×ÊÁÏ
void saacproto_ACFMDetail_send(int fd, char *result, char *data,
int charfdid)
{
saacproto_CreateHeader(saacproto.work , "ACFMDetail");
saacproto_strcatsafe(saacproto.work , saacproto_mkstr_string(result) ,saacproto.workbufsize );
saacproto_strcatsafe(saacproto.work , saacproto_mkstr_string(data) ,saacproto.workbufsize );
saacproto_strcatsafe(saacproto.work , saacproto_mkstr_int(charfdid) ,saacproto.workbufsize );
saacproto_Send( fd , saacproto.work );
}
// ×峤ÉóºË³ÉÔ±¼ÓÈë¼Ò×å
void saacproto_ACMemberJoinFM_send(int fd, char *result, int charfdid)
{
saacproto_CreateHeader(saacproto.work , "ACMemberJoinFM");
saacproto_strcatsafe(saacproto.work , saacproto_mkstr_string(result) ,saacproto.workbufsize );
saacproto_strcatsafe(saacproto.work , saacproto_mkstr_int(charfdid) ,saacproto.workbufsize );
saacproto_Send( fd , saacproto.work );
}
// ×峤ÉóºË³ÉÔ±À뿪¼Ò×å
void saacproto_ACMemberLeaveFM_send(int fd, char *result, int charfdid)
{
saacproto_CreateHeader(saacproto.work , "ACMemberLeaveFM");
saacproto_strcatsafe(saacproto.work , saacproto_mkstr_string(result) ,saacproto.workbufsize );
saacproto_strcatsafe(saacproto.work , saacproto_mkstr_int(charfdid) ,saacproto.workbufsize );
saacproto_Send( fd , saacproto.work );
}
// ¼ÓÈë¼Ò×åÖ®Íæ¼Òlogin
#ifdef _PERSONAL_FAME // Arminius: ¼Ò×å¸öÈËÉùÍû
void saacproto_ACFMCharLogin_send(int fd, char *result, int index, int floor,
int fmpopular, int joinflag, int fmsetupflag, int flag, int charindex,
int charfame, int charfdid
#ifdef _NEW_MANOR_LAW
,int momentum
#endif
)
#else
void saacproto_ACFMCharLogin_send(int fd, char *result, int index, int floor,
int fmpopular, int joinflag, int fmsetupflag, int flag, int charindex,
int charfdid)
#endif
{
saacproto_CreateHeader(saacproto.work , "ACFMCharLogin");
saacproto_strcatsafe(saacproto.work , saacproto_mkstr_string(result) ,saacproto.workbufsize );
saacproto_strcatsafe(saacproto.work , saacproto_mkstr_int(index) ,saacproto.workbufsize );
saacproto_strcatsafe(saacproto.work , saacproto_mkstr_int(floor) ,saacproto.workbufsize );
saacproto_strcatsafe(saacproto.work , saacproto_mkstr_int(fmpopular) ,saacproto.workbufsize );
saacproto_strcatsafe(saacproto.work , saacproto_mkstr_int(joinflag) ,saacproto.workbufsize );
saacproto_strcatsafe(saacproto.work , saacproto_mkstr_int(fmsetupflag) ,saacproto.workbufsize );
saacproto_strcatsafe(saacproto.work , saacproto_mkstr_int(flag) ,saacproto.workbufsize );
saacproto_strcatsafe(saacproto.work , saacproto_mkstr_int(charindex) ,saacproto.workbufsize );
#ifdef _PERSONAL_FAME // Arminius: ¼Ò×å¸öÈËÉùÍû
saacproto_strcatsafe(saacproto.work , saacproto_mkstr_int(charfame) ,saacproto.workbufsize );
#endif
saacproto_strcatsafe(saacproto.work , saacproto_mkstr_int(charfdid) ,saacproto.workbufsize );
#ifdef _NEW_MANOR_LAW
saacproto_strcatsafe(saacproto.work , saacproto_mkstr_int(momentum) ,saacproto.workbufsize );
#endif
saacproto_Send( fd , saacproto.work );
}
// ¼ÓÈë¼Ò×åÖ®Íæ¼Òlogout
void saacproto_ACFMCharLogout_send(int fd, char *result, int charfdid)
{
saacproto_CreateHeader(saacproto.work , "ACFMCharLogout");
saacproto_strcatsafe(saacproto.work , saacproto_mkstr_string(result) ,saacproto.workbufsize );
saacproto_strcatsafe(saacproto.work , saacproto_mkstr_int(charfdid) ,saacproto.workbufsize );
saacproto_Send( fd , saacproto.work );
}
// Áгö¼Ò×åÁôÑÔ°å
void saacproto_ACFMReadMemo_send(int fd, char *result, int index, int num,
int dataindex, char *data)
{
saacproto_CreateHeader(saacproto.work , "ACFMReadMemo");
saacproto_strcatsafe(saacproto.work , saacproto_mkstr_string(result) ,saacproto.workbufsize );
saacproto_strcatsafe(saacproto.work , saacproto_mkstr_int(index) ,saacproto.workbufsize );
saacproto_strcatsafe(saacproto.work , saacproto_mkstr_int(num) ,saacproto.workbufsize );
saacproto_strcatsafe(saacproto.work , saacproto_mkstr_int(dataindex) ,saacproto.workbufsize );
saacproto_strcatsafe(saacproto.work , saacproto_mkstr_string(data) ,saacproto.workbufsize );
saacproto_Send( fd , saacproto.work );
}
// дÈë¼Ò×åÁôÑÔ°å
void saacproto_ACFMWriteMemo_send(int fd, char *result, int index)
{
saacproto_CreateHeader(saacproto.work , "ACFMWriteMemo");
saacproto_strcatsafe(saacproto.work , saacproto_mkstr_string(result) ,saacproto.workbufsize );
saacproto_strcatsafe(saacproto.work , saacproto_mkstr_int(index) ,saacproto.workbufsize );
saacproto_Send( fd , saacproto.work );
}
// Áгö¼Ò×å¾Ýµã
void saacproto_ACFMPointList_send(int fd, char *result, char *data)
{
saacproto_CreateHeader(saacproto.work , "ACFMPointList");
saacproto_strcatsafe(saacproto.work , saacproto_mkstr_string(result) ,saacproto.workbufsize );
saacproto_strcatsafe(saacproto.work , saacproto_mkstr_string(data) ,saacproto.workbufsize );
saacproto_Send( fd , saacproto.work );
}
// ÉêÇë¼Ò×å¾Ýµã
void saacproto_ACSetFMPoint_send(int fd, char *result, int r, int charfdid)
{
saacproto_CreateHeader(saacproto.work , "ACSetFMPoint");
saacproto_strcatsafe(saacproto.work , saacproto_mkstr_string(result) ,saacproto.workbufsize );
saacproto_strcatsafe(saacproto.work , saacproto_mkstr_int(r) ,saacproto.workbufsize );
saacproto_strcatsafe(saacproto.work , saacproto_mkstr_int(charfdid) ,saacproto.workbufsize );
saacproto_Send( fd , saacproto.work );
}
// É趨¼Ò×å¾Ýµã
void saacproto_ACFixFMPoint_send(int fd, char *result, int r)
{
saacproto_CreateHeader(saacproto.work , "ACFixFMPoint");
saacproto_strcatsafe(saacproto.work , saacproto_mkstr_string(result) ,saacproto.workbufsize );
saacproto_strcatsafe(saacproto.work , saacproto_mkstr_int(r) ,saacproto.workbufsize );
saacproto_Send( fd , saacproto.work );
}
// ×峤¶ÔÐÇϵ¼Ò×å³ÉÔ±¹ã²¥
void saacproto_ACFMAnnounce_send(int fd, char *result, char *fmname,
int fmindex, int index, int kindflag, char *data, int color)
{
saacproto_CreateHeader(saacproto.work , "ACFMAnnounce");
saacproto_strcatsafe(saacproto.work , saacproto_mkstr_string(result) ,saacproto.workbufsize );
saacproto_strcatsafe(saacproto.work , saacproto_mkstr_string(fmname) ,saacproto.workbufsize );
saacproto_strcatsafe(saacproto.work , saacproto_mkstr_int(fmindex) ,saacproto.workbufsize );
saacproto_strcatsafe(saacproto.work , saacproto_mkstr_int(index) ,saacproto.workbufsize );
saacproto_strcatsafe(saacproto.work , saacproto_mkstr_int(kindflag) ,saacproto.workbufsize );
saacproto_strcatsafe(saacproto.work , saacproto_mkstr_string(data) ,saacproto.workbufsize );
saacproto_strcatsafe(saacproto.work , saacproto_mkstr_int(color) ,saacproto.workbufsize );
saacproto_Send( fd , saacproto.work );
}
// Áгö¼Ò×åÅÅÐаñ
void saacproto_ACShowTopFMList_send(int fd, char *result, int kindflag,
int num, char *data)
{
saacproto_CreateHeader(saacproto.work , "ACShowTopFMList");
saacproto_strcatsafe(saacproto.work , saacproto_mkstr_string(result) ,saacproto.workbufsize );
saacproto_strcatsafe(saacproto.work , saacproto_mkstr_int(kindflag) ,saacproto.workbufsize );
saacproto_strcatsafe(saacproto.work , saacproto_mkstr_int(num) ,saacproto.workbufsize );
saacproto_strcatsafe(saacproto.work , saacproto_mkstr_string(data) ,saacproto.workbufsize );
saacproto_Send( fd , saacproto.work );
}
// ÐÞÕý¼Ò×å×ÊÁÏ
#ifdef _FAMILYBANKSTONELOG
void saacproto_ACgetFMBankgold_send(int fd,int charfdid, int r)
{
saacproto_CreateHeader(saacproto.work , "ACgetFMBankgold");
saacproto_strcatsafe(saacproto.work , saacproto_mkstr_int(charfdid) ,saacproto.workbufsize );
saacproto_strcatsafe(saacproto.work , saacproto_mkstr_int(r) ,saacproto.workbufsize );
saacproto_Send( fd , saacproto.work );
}
#endif
void saacproto_ACFixFMData_send(int fd, char *result, int kindflag, char *data1,
char *data2, int charfdid)
{
saacproto_CreateHeader(saacproto.work , "ACFixFMData");
saacproto_strcatsafe(saacproto.work , saacproto_mkstr_string(result) ,saacproto.workbufsize );
saacproto_strcatsafe(saacproto.work , saacproto_mkstr_int(kindflag) ,saacproto.workbufsize );
saacproto_strcatsafe(saacproto.work , saacproto_mkstr_string(data1) ,saacproto.workbufsize );
saacproto_strcatsafe(saacproto.work , saacproto_mkstr_string(data2) ,saacproto.workbufsize );
saacproto_strcatsafe(saacproto.work , saacproto_mkstr_int(charfdid) ,saacproto.workbufsize );
saacproto_Send( fd , saacproto.work );
}
// É趨¼Ò×å¾Ýµã
void saacproto_ACFixFMPK_send(int fd, char *result, int award, int winindex,
int loseindex)
{
saacproto_CreateHeader(saacproto.work , "ACFixFMPK");
saacproto_strcatsafe(saacproto.work , saacproto_mkstr_string(result) ,saacproto.workbufsize );
saacproto_strcatsafe(saacproto.work , saacproto_mkstr_int(award) ,saacproto.workbufsize );
saacproto_strcatsafe(saacproto.work , saacproto_mkstr_int(winindex) ,saacproto.workbufsize );
saacproto_strcatsafe(saacproto.work , saacproto_mkstr_int(loseindex) ,saacproto.workbufsize );
saacproto_Send( fd , saacproto.work );
}
// GMÐÞÕý¼Ò×å×ÊÁÏ
void saacproto_ACGMFixFMData_send(int fd, char *result, char *fmname, int charfdid)
{
saacproto_CreateHeader(saacproto.work , "ACGMFixFMData");
saacproto_strcatsafe(saacproto.work , saacproto_mkstr_string(result) ,saacproto.workbufsize );
saacproto_strcatsafe(saacproto.work , saacproto_mkstr_string(fmname) ,saacproto.workbufsize );
saacproto_strcatsafe(saacproto.work , saacproto_mkstr_int(charfdid) ,saacproto.workbufsize );
saacproto_Send( fd , saacproto.work );
}
// È¡µÃ¼Ò×å×ÊÁÏ
void saacproto_ACGetFMData_send(int fd, char *result, int kindflag, int data,
int charfdid)
{
saacproto_CreateHeader(saacproto.work , "ACGetFMData");
saacproto_strcatsafe(saacproto.work , saacproto_mkstr_string(result) ,saacproto.workbufsize );
saacproto_strcatsafe(saacproto.work , saacproto_mkstr_int(kindflag) ,saacproto.workbufsize );
saacproto_strcatsafe(saacproto.work , saacproto_mkstr_int(data) ,saacproto.workbufsize );
saacproto_strcatsafe(saacproto.work , saacproto_mkstr_int(charfdid) ,saacproto.workbufsize );
saacproto_Send( fd , saacproto.work );
}
//
void saacproto_ACFMClearPK_send(int fd, char *result, char *fmname, int fmindex,
int index)
{
saacproto_CreateHeader(saacproto.work , "ACFMClearPK");
saacproto_strcatsafe(saacproto.work , saacproto_mkstr_string(result) ,saacproto.workbufsize );
saacproto_strcatsafe(saacproto.work , saacproto_mkstr_string(fmname) ,saacproto.workbufsize );
saacproto_strcatsafe(saacproto.work , saacproto_mkstr_int(fmindex) ,saacproto.workbufsize );
saacproto_strcatsafe(saacproto.work , saacproto_mkstr_int(index) ,saacproto.workbufsize );
saacproto_Send( fd , saacproto.work );
}
// ֪ͨÆäËûÐÇÇòµÄÌß¹ÝÈË
void saacproto_ACManorPKAck_send(int fd, char *data)
{
saacproto_CreateHeader(saacproto.work , "ACManorPKAck");
saacproto_strcatsafe(saacproto.work , saacproto_mkstr_string(data) ,saacproto.workbufsize );
saacproto_Send( fd , saacproto.work );
}
#ifdef _CHECKFMSCHEDULE // Syu ADD ͸¹ýACÈ·ÈϼÒ×åÌôÕ½ÅųÌ
void saacproto_ACCheckSchedule_send(int fd,char *data)
{
saacproto_CreateHeader(saacproto.work , "ACCheckSchedule");
saacproto_strcatsafe(saacproto.work , saacproto_mkstr_string(data) ,saacproto.workbufsize );
saacproto_Send( fd , saacproto.work );
}
#endif
#ifdef _AC_SEND_FM_PK // WON ADD ׯ԰¶ÔÕ½ÁÐ±í´¢´æÔÚAC
void saacproto_ACLoadFmPk_send(int fd, char *data)
{
saacproto_CreateHeader(saacproto.work , "ACLoadFmPk");
saacproto_strcatsafe(saacproto.work , saacproto_mkstr_string(data) ,saacproto.workbufsize );
saacproto_Send( fd , saacproto.work );
}
#ifdef _ACFMPK_LIST
void saacproto_ACSendFmPk_send( int fd, int userindex, int flg)
{
saacproto_CreateHeader(saacproto.work , "ACSendFmPk");
saacproto_strcatsafe(saacproto.work , saacproto_mkstr_int( userindex) ,saacproto.workbufsize );
saacproto_strcatsafe(saacproto.work , saacproto_mkstr_int( flg) ,saacproto.workbufsize );
saacproto_Send( fd , saacproto.work );
}
#endif
#endif
#ifdef _RECAL_BACKUP_PLAYER // WON »ØËݹ¦ÄÜ
void saacproto_ACRecalPlayer_send(int fd, char *uid, int userfdid, int GmCliId, char *id, int char_num, int date, char *char_data, int backup_flag)
{
if(backup_flag==1) saacproto_CreateHeader(saacproto.work , "ACRecalBackupDate"); // »Ø´«±¸·ÝÈÕÆÚ
else if(backup_flag==2) saacproto_CreateHeader(saacproto.work , "ACRecalPlayer"); // »Ø´«ÏßÉÏÈËÎï×ÊÁÏ
else if(backup_flag==3) saacproto_CreateHeader(saacproto.work , "ACRecalBackupPlayer"); // »Ø´«±¸·ÝÈËÎï×ÊÁÏ
else if(backup_flag==4) saacproto_CreateHeader(saacproto.work , "ACRecalAllBackupOK"); // »Ø´«»ØËÝokѶϢ
saacproto_strcatsafe(saacproto.work , saacproto_mkstr_string(uid) ,saacproto.workbufsize );
saacproto_strcatsafe(saacproto.work , saacproto_mkstr_int(userfdid) ,saacproto.workbufsize );
saacproto_strcatsafe(saacproto.work , saacproto_mkstr_int(GmCliId) ,saacproto.workbufsize );
saacproto_strcatsafe(saacproto.work , saacproto_mkstr_string(id) ,saacproto.workbufsize );
saacproto_strcatsafe(saacproto.work , saacproto_mkstr_int(char_num) ,saacproto.workbufsize );
saacproto_strcatsafe(saacproto.work , saacproto_mkstr_int(date) ,saacproto.workbufsize );
saacproto_strcatsafe(saacproto.work , saacproto_mkstr_string(char_data) ,saacproto.workbufsize );
saacproto_Send( fd , saacproto.work );
}
#endif
// ֪ͨίÍÐÈËÒÑÂô³öÅÄÂôÎï
#ifdef _AUCTIONEER
void saacproto_ACAuctionSold_send(int fd, char *data)
{
saacproto_CreateHeader(saacproto.work , "ACAuctionSold");
saacproto_strcatsafe(saacproto.work , saacproto_mkstr_string(data) ,saacproto.workbufsize );
saacproto_Send( fd , saacproto.work );
}
#endif
#ifdef _WAEI_KICK
void saacproto_ACKick_send( int fd, int act, char* data,int id )
{
saacproto_CreateHeader( saacproto.work , "ACKick" );
saacproto_strcatsafe( saacproto.work , saacproto_mkstr_int( act ) ,saacproto.workbufsize );
saacproto_strcatsafe( saacproto.work , saacproto_mkstr_string( data ) ,saacproto.workbufsize );
saacproto_strcatsafe( saacproto.work , saacproto_mkstr_int( id ) ,saacproto.workbufsize );
saacproto_Send( fd , saacproto.work );
}
#endif
#ifdef _NEW_PLAYERGOLD
void saacproto_LoadNEWPlayer_send( int fd, int charaindex, char* data)
{
saacproto_CreateHeader( saacproto.work , "LoadNEWPlayer" );
saacproto_strcatsafe( saacproto.work , saacproto_mkstr_int( charaindex ) ,saacproto.workbufsize );
saacproto_strcatsafe( saacproto.work , saacproto_mkstr_string( data ) ,saacproto.workbufsize );
saacproto_Send( fd , saacproto.work );
}
#endif
#ifdef _PAUCTION_MAN
void saacproto_ACItemAuction_send( int fd, char *ITEMNAME, char *data, int itemID, int ret, int flg)
{
log("ACItemAuction( %d, %s, %s, %d, %d)\n", fd, ITEMNAME, data, itemID, flg);
saacproto_CreateHeader( saacproto.work , "AUCTIONADDITEM" );
saacproto_strcatsafe( saacproto.work , saacproto_mkstr_string( ITEMNAME ) ,saacproto.workbufsize );
saacproto_strcatsafe( saacproto.work , saacproto_mkstr_string( data ) ,saacproto.workbufsize );
saacproto_strcatsafe( saacproto.work , saacproto_mkstr_int( itemID ) ,saacproto.workbufsize );
saacproto_strcatsafe( saacproto.work , saacproto_mkstr_int( ret ) ,saacproto.workbufsize );
saacproto_strcatsafe( saacproto.work , saacproto_mkstr_int( flg ) ,saacproto.workbufsize );
saacproto_Send( fd , saacproto.work );
}
#endif
#ifdef _NEW_PLAYERGOLD
void saacproto_ACNewPlayerList_send( int fd, char *CdKey, char* UserName, int UserIndex, int RunType)
{
saacproto_CreateHeader( saacproto.work , "ACNewPlayerList" );
saacproto_strcatsafe( saacproto.work , saacproto_mkstr_string( CdKey ) ,saacproto.workbufsize );
saacproto_strcatsafe( saacproto.work , saacproto_mkstr_string( UserName ) ,saacproto.workbufsize );
saacproto_strcatsafe( saacproto.work , saacproto_mkstr_int( UserIndex ) ,saacproto.workbufsize );
saacproto_strcatsafe( saacproto.work , saacproto_mkstr_int( RunType ) ,saacproto.workbufsize );
saacproto_Send( fd , saacproto.work );
}
#endif
#ifdef _GM_BROADCAST // WON ADD ¿Í·þ¹«¸æϵͳ
void saacproto_GmBroadcast_send(int fd, int time, int loop, int wait, char *post_msg)
{
saacproto_CreateHeader(saacproto.work , "GMBROADCAST");
saacproto_strcatsafe( saacproto.work , saacproto_mkstr_int( time ) ,saacproto.workbufsize );
saacproto_strcatsafe( saacproto.work , saacproto_mkstr_int( loop ) ,saacproto.workbufsize );
saacproto_strcatsafe( saacproto.work , saacproto_mkstr_int( wait ) ,saacproto.workbufsize );
saacproto_strcatsafe( saacproto.work , saacproto_mkstr_string( post_msg ) ,saacproto.workbufsize );
saacproto_Send( fd , saacproto.work );
}
#endif
#ifdef _SEND_EFFECT // WON ADD ËÍÏÂÑ©¡¢ÏÂÓêµÈÌØЧ
void saacproto_SendEffect_send(int fd, char *effect)
{
saacproto_CreateHeader(saacproto.work , "EFFECT");
saacproto_strcatsafe( saacproto.work , saacproto_mkstr_string( effect ) ,saacproto.workbufsize );
saacproto_Send( fd , saacproto.work );
}
#endif
#ifdef _DEFEND_NEWUSERS
void saacproto_DefendList_send( int fd, int type, char *data)
{
saacproto_CreateHeader(saacproto.work , "DEFENDLISTS");
saacproto_strcatsafe( saacproto.work , saacproto_mkstr_int( type ) ,saacproto.workbufsize );
saacproto_strcatsafe( saacproto.work , saacproto_mkstr_string( data ) ,saacproto.workbufsize );
saacproto_Send( fd , saacproto.work );
}
void saacproto_CheckDefendScore_send( int fd, char *fromname, int userindex, int score)
{
saacproto_CreateHeader(saacproto.work , "CHECKDEFENDSCORE");
saacproto_strcatsafe( saacproto.work , saacproto_mkstr_string( fromname ) ,saacproto.workbufsize );
saacproto_strcatsafe( saacproto.work , saacproto_mkstr_int( userindex ) ,saacproto.workbufsize );
saacproto_strcatsafe( saacproto.work , saacproto_mkstr_int( score ) ,saacproto.workbufsize );
saacproto_Send( fd , saacproto.work );
}
#endif
#ifdef _CHAR_POOLITEM
void saacproto_ACCharSavePoolItem_send( int fd, char *Acces ,
char *Pooldataarg, int clifdid )
{
saacproto_CreateHeader( saacproto.work , "ACSavePoolItem" );
saacproto_strcatsafe( saacproto.work , saacproto_mkstr_string( Acces ) ,saacproto.workbufsize );
saacproto_strcatsafe( saacproto.work , saacproto_mkstr_string( Pooldataarg ) ,saacproto.workbufsize );
saacproto_strcatsafe( saacproto.work , saacproto_mkstr_int( clifdid ) ,saacproto.workbufsize );
saacproto_Send( fd , saacproto.work );
}
void saacproto_ACCharGetPoolItem_send( int fd, char *Acces, char *Pooldataarg, int clifdid, int npcid)
{
saacproto_CreateHeader( saacproto.work , "ACGetPoolItem" );
saacproto_strcatsafe( saacproto.work , saacproto_mkstr_string( Acces ) ,saacproto.workbufsize );
saacproto_strcatsafe( saacproto.work , saacproto_mkstr_string( Pooldataarg ) ,saacproto.workbufsize );
saacproto_strcatsafe( saacproto.work , saacproto_mkstr_int( clifdid ) ,saacproto.workbufsize );
saacproto_strcatsafe( saacproto.work , saacproto_mkstr_int( npcid ) ,saacproto.workbufsize );
saacproto_Send( fd , saacproto.work );
}
#endif
#ifdef _CHAR_POOLPET
void saacproto_ACCharSavePoolPet_send( int fd, char *Acces ,
char *Pooldataarg, int clifdid )
{
saacproto_CreateHeader( saacproto.work , "ACSavePoolPet" );
saacproto_strcatsafe( saacproto.work , saacproto_mkstr_string( Acces ) ,saacproto.workbufsize );
saacproto_strcatsafe( saacproto.work , saacproto_mkstr_string( Pooldataarg ) ,saacproto.workbufsize );
saacproto_strcatsafe( saacproto.work , saacproto_mkstr_int( clifdid ) ,saacproto.workbufsize );
saacproto_Send( fd , saacproto.work );
}
void saacproto_ACCharGetPoolPet_send( int fd, char *Acces, char *Pooldataarg, int clifdid, int npcid)
{
saacproto_CreateHeader( saacproto.work , "ACGetPoolPet" );
saacproto_strcatsafe( saacproto.work , saacproto_mkstr_string( Acces ) ,saacproto.workbufsize );
saacproto_strcatsafe( saacproto.work , saacproto_mkstr_string( Pooldataarg ) ,saacproto.workbufsize );
saacproto_strcatsafe( saacproto.work , saacproto_mkstr_int( clifdid ) ,saacproto.workbufsize );
saacproto_strcatsafe( saacproto.work , saacproto_mkstr_int( npcid ) ,saacproto.workbufsize );
saacproto_Send( fd , saacproto.work );
}
#endif
#ifdef _UNIVERSE_CHATROOM
void saacproto_ACUniChatroom_send( int fd, char *cdkey, char *result, char *data, int userindex, int clifdid )
{
//andy_log
log( "_ACUniChatroom_send:[%s,%s]\n", result, data)
saacproto_CreateHeader( saacproto.work , "ACUniChatroom" );
saacproto_strcatsafe( saacproto.work , saacproto_mkstr_string( result ) ,saacproto.workbufsize );
saacproto_strcatsafe( saacproto.work , saacproto_mkstr_string( data ) ,saacproto.workbufsize );
saacproto_strcatsafe( saacproto.work , saacproto_mkstr_string( cdkey ) ,saacproto.workbufsize );
saacproto_strcatsafe( saacproto.work , saacproto_mkstr_int( userindex ) ,saacproto.workbufsize );
saacproto_strcatsafe( saacproto.work , saacproto_mkstr_int( clifdid ) ,saacproto.workbufsize );
saacproto_Send( fd , saacproto.work );
}
#endif
#ifdef _ANGEL_SUMMON
//void saacproto_ACMissionTable_send( int fd, int num, int type, char *data, int charaindex)
void saacproto_ACMissionTable_send( int fd, int num, int type, char *data, char* angelinfo)
{
saacproto_CreateHeader( saacproto.work , "ACMissionTable" );
saacproto_strcatsafe( saacproto.work , saacproto_mkstr_int( num ) ,saacproto.workbufsize );
saacproto_strcatsafe( saacproto.work , saacproto_mkstr_int( type ) ,saacproto.workbufsize );
saacproto_strcatsafe( saacproto.work , saacproto_mkstr_string( data ) ,saacproto.workbufsize );
//saacproto_strcatsafe( saacproto.work , saacproto_mkstr_int( charaindex ) ,saacproto.workbufsize );
saacproto_strcatsafe( saacproto.work , saacproto_mkstr_string( angelinfo ) ,saacproto.workbufsize );
saacproto_Send( fd , saacproto.work );
}
#endif
#ifdef _TEACHER_SYSTEM
void saacproto_ACCheckCharacterOnLine_send( int fd, int charaindex, int iOnline,char *data,int flag)
{
saacproto_CreateHeader( saacproto.work , "ACCheckCharacterOnLine" );
saacproto_strcatsafe( saacproto.work , saacproto_mkstr_int( charaindex ) ,saacproto.workbufsize );
saacproto_strcatsafe( saacproto.work , saacproto_mkstr_int( iOnline ) ,saacproto.workbufsize );
saacproto_strcatsafe( saacproto.work , saacproto_mkstr_string( data ) ,saacproto.workbufsize );
saacproto_strcatsafe( saacproto.work , saacproto_mkstr_int( flag ) ,saacproto.workbufsize );
saacproto_Send( fd , saacproto.work );
}
#endif
#ifdef _RACEMAN
void saacproto_ACRaceRecordandSort_send( int fd, int charaindex , int racetype , char *data )
{
saacproto_CreateHeader( saacproto.work , "ACRaceRecordandSort" );
saacproto_strcatsafe( saacproto.work , saacproto_mkstr_int( charaindex ) ,saacproto.workbufsize );
saacproto_strcatsafe( saacproto.work , saacproto_mkstr_int( racetype ) ,saacproto.workbufsize );
saacproto_strcatsafe( saacproto.work , saacproto_mkstr_string( data ) ,saacproto.workbufsize );
saacproto_Send( fd , saacproto.work );
}
#endif
/* end of the generated server code */