📄 saacproto_serv.c
字号:
/* 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 connectint 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;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -