2962 lines
73 KiB
C
2962 lines
73 KiB
C
#include "version.h"
|
|
#include "autil.h"
|
|
#include "lssproto_serv.h"
|
|
#include "common.h" // for StoneAge
|
|
#include "log.h" // for StoneAge
|
|
#include "char.h"
|
|
#include <stdio.h>
|
|
#include <time.h>
|
|
#include <net.h>
|
|
|
|
|
|
void lssproto_SetServerLogFiles( char *r , char *w )
|
|
{
|
|
lssproto_strcpysafe( lssproto_writelogfilename , w , sizeof(lssproto_writelogfilename ));
|
|
lssproto_strcpysafe( lssproto_readlogfilename , r , sizeof(lssproto_readlogfilename ));
|
|
}
|
|
int lssproto_InitServer( int (*writefunc)(int,char*,int) , int worksiz )
|
|
{
|
|
int i;
|
|
if( (void*)writefunc == NULL) {
|
|
lssproto.write_func = lssproto_default_write_wrap;
|
|
} else {
|
|
lssproto.write_func = writefunc;
|
|
}
|
|
lssproto_AllocateCommonWork(worksiz);
|
|
lssproto_stringwrapper = (char**)calloc( 1,sizeof(char*) * MAXLSRPCARGS);
|
|
if(lssproto_stringwrapper ==NULL)
|
|
return -1;
|
|
memset( lssproto_stringwrapper , 0, sizeof(char*)*MAXLSRPCARGS);
|
|
for(i=0;i<MAXLSRPCARGS;i++) {
|
|
lssproto_stringwrapper[i] = (char*)calloc( 1, worksiz );
|
|
if( lssproto_stringwrapper[i] == NULL) {
|
|
for(i=0;i<MAXLSRPCARGS;i++) {
|
|
free( lssproto_stringwrapper[i]);
|
|
return -1;
|
|
}
|
|
}
|
|
}
|
|
lssproto.ret_work = (char*)calloc( 1,sizeof( worksiz ));
|
|
if( lssproto.ret_work == NULL ) {
|
|
return -1;
|
|
}
|
|
return 0;
|
|
}
|
|
|
|
void lssproto_CleanupServer( void )
|
|
{
|
|
int i;
|
|
free( lssproto.work );
|
|
free( lssproto.arraywork);
|
|
free( lssproto.escapework );
|
|
free( lssproto.val_str);
|
|
free( lssproto.token_list );
|
|
for(i=0;i<MAXLSRPCARGS;i++) {
|
|
free( lssproto_stringwrapper[i]);
|
|
}
|
|
free( lssproto_stringwrapper );
|
|
free( lssproto.ret_work );
|
|
}
|
|
|
|
#define DME() print("<DME(%d)%d:%d>",fd,__LINE__,func)
|
|
extern int cliretfunc;
|
|
extern char playcdkey[16];
|
|
extern char *errraw;
|
|
extern char *MesgSlice[SLICE_MAX];
|
|
|
|
int lssproto_ServerDispatchMessage(int fd, char *encoded)
|
|
{
|
|
//print("\ntest=%s,state=%d\n",encoded,CONNECT_getState(fd));
|
|
if(strlen(encoded)>getBigBao() && CONNECT_getState(fd) == NOTLOGIN){
|
|
unsigned long tmpip;
|
|
int a,b,c,d;
|
|
char ip[32];
|
|
tmpip=CONNECT_get_userip(fd);
|
|
a=(tmpip % 0x100); tmpip=tmpip / 0x100;
|
|
b=(tmpip % 0x100); tmpip=tmpip / 0x100;
|
|
c=(tmpip % 0x100); tmpip=tmpip / 0x100;
|
|
d=(tmpip % 0x100);
|
|
sprintf(ip,"%d.%d.%d.%d",a,b,c,d);
|
|
if(strcmp(ip,getNoAttIp(0))!=0 && strcmp(ip,getNoAttIp(1))!=0 && strcmp(ip,getNoAttIp(2))!=0 && strcmp(ip,getNoAttIp(3))!=0 && strcmp(ip,getNoAttIp(4))!=0){
|
|
#ifdef _CAX_OFF_IPTABLES
|
|
if(strcmp(ip,"0.0.0.0")!=0){
|
|
char systemstr[128];
|
|
sprintf(systemstr,"iptables -I INPUT -s %s -j DROP",ip);
|
|
system(systemstr);
|
|
//print("\nIP=%s\n",ip);
|
|
logBigBao(ip,strlen(encoded));
|
|
}
|
|
#endif
|
|
CONNECT_endOne_debug(fd);
|
|
return -1;
|
|
}
|
|
}
|
|
|
|
int func,fieldcount;
|
|
char raw[1024 * 64];
|
|
#ifdef _SERVER_DEF
|
|
util_DiscardMessage();
|
|
#endif
|
|
|
|
if(strlen(encoded)>getBigBao2()){
|
|
CONNECT_endOne_debug(fd);
|
|
return -1;
|
|
}
|
|
|
|
memset(raw, 0, sizeof(raw));
|
|
CONNECT_getCdkey( fd, PersonalKey, 4096);
|
|
strcat(PersonalKey, getRunningKey());
|
|
//printf("\nKey1=%s,KEY2=$s\n",PersonalKey,getRunningKey());
|
|
|
|
util_DecodeMessage(raw,encoded);
|
|
//print("\nraw=%s\n",raw);
|
|
if(strlen(raw)<1){
|
|
//DME();
|
|
return -1;
|
|
}
|
|
|
|
errraw = raw;
|
|
|
|
if( !util_SplitMessage(raw,SEPARATOR) ){
|
|
print("\nDME1:package=%s\n",raw);
|
|
//DME();
|
|
return -1;
|
|
}
|
|
|
|
if (!util_GetFunctionFromSlice(&func, &fieldcount)) {
|
|
//logHack(fd,HACK_GETFUNCFAIL);
|
|
//DME();
|
|
return -1;
|
|
}
|
|
//printf("\n客户端接口=%d\n",func);
|
|
#ifdef _SERVER_DEF
|
|
if (func != 71 && func != 79 && func != 87 && func != 77 && func != 81 && func != 73 && func != 75)//登录前封包 全部可执行,其他封包检查是否已经有玩家在线!
|
|
{
|
|
if( !CHAR_CHECKINDEX( CONNECT_getCharaindex(fd) ) )//并没有登入人物,仅仅是一个连接!
|
|
{
|
|
close(fd);//断开玩家之间的连接
|
|
return -1;//你要做的事!
|
|
}
|
|
}
|
|
#endif
|
|
cliretfunc=func;
|
|
CONNECT_getCdkey( fd, playcdkey, sizeof( playcdkey ));
|
|
|
|
|
|
if (func==LSSPROTO_W_RECV) {
|
|
int checksum=0, checksumrecv;
|
|
int x;
|
|
int y;
|
|
char direction[1024 * 64];
|
|
|
|
checksum += util_deint(fd,2, &x);
|
|
checksum += util_deint(fd,3, &y);
|
|
checksum += util_destring(fd,4, direction);
|
|
util_deint(fd,5, &checksumrecv);
|
|
if (checksum!=checksumrecv) {
|
|
util_DiscardMessage();
|
|
////logHack(fd, HACK_CHECKSUMERROR);
|
|
//DME();
|
|
return -1;
|
|
}
|
|
sprintf(errraw,"%d|%d|%s",x,y,direction);
|
|
logFengBao(fd,playcdkey,func,errraw);
|
|
//print("\nfunc=%d,raw=%s\n",func,errraw);
|
|
lssproto_W_recv(fd, x, y, direction);
|
|
util_DiscardMessage();
|
|
return 0;
|
|
}
|
|
|
|
if (func==LSSPROTO_W2_RECV) {
|
|
int checksum=0, checksumrecv;
|
|
int x;
|
|
int y;
|
|
char direction[1024 * 64];
|
|
|
|
checksum += util_deint(fd,2, &x);
|
|
checksum += util_deint(fd,3, &y);
|
|
checksum += util_destring(fd,4, direction);
|
|
util_deint(fd,5, &checksumrecv);
|
|
if (checksum!=checksumrecv) {
|
|
util_DiscardMessage();
|
|
////logHack(fd, HACK_CHECKSUMERROR);
|
|
//DME();
|
|
return -1;
|
|
}
|
|
sprintf(errraw,"%d|%d|%s",x,y,direction);
|
|
logFengBao(fd,playcdkey,func,errraw);
|
|
//print("\nfunc=%d,raw=%s\n",func,errraw);
|
|
lssproto_W2_recv(fd, x, y, direction);
|
|
util_DiscardMessage();
|
|
return 0;
|
|
}
|
|
|
|
if (func==LSSPROTO_EV_RECV) {
|
|
int checksum=0, checksumrecv;
|
|
int event;
|
|
int seqno;
|
|
int x;
|
|
int y;
|
|
int dir;
|
|
|
|
checksum += util_deint(fd,2, &event);
|
|
checksum += util_deint(fd,3, &seqno);
|
|
checksum += util_deint(fd,4, &x);
|
|
checksum += util_deint(fd,5, &y);
|
|
checksum += util_deint(fd,6, &dir);
|
|
util_deint(fd,7, &checksumrecv);
|
|
if (checksum!=checksumrecv) {
|
|
util_DiscardMessage();
|
|
//logHack(fd, HACK_CHECKSUMERROR);
|
|
//DME();
|
|
return -1;
|
|
}
|
|
sprintf(errraw,"%d|%d|%d|%d|%d",event,seqno,x,y,dir);
|
|
logFengBao(fd,playcdkey,func,errraw);
|
|
//print("\nfunc=%d,raw=%s\n",func,errraw);
|
|
lssproto_EV_recv(fd, event, seqno, x, y, dir);
|
|
util_DiscardMessage();
|
|
return 0;
|
|
}
|
|
|
|
if (func==LSSPROTO_DU_RECV) {
|
|
int checksum=0, checksumrecv;
|
|
int x;
|
|
int y;
|
|
|
|
checksum += util_deint(fd,2, &x);
|
|
checksum += util_deint(fd,3, &y);
|
|
util_deint(fd,4, &checksumrecv);
|
|
if (checksum!=checksumrecv) {
|
|
util_DiscardMessage();
|
|
//logHack(fd, HACK_CHECKSUMERROR);
|
|
//DME();
|
|
return -1;
|
|
}
|
|
sprintf(errraw,"%d|%d",x,y);
|
|
logFengBao(fd,playcdkey,func,errraw);
|
|
//print("\nfunc=%d,raw=%s\n",func,errraw);
|
|
lssproto_DU_recv(fd, x, y);
|
|
util_DiscardMessage();
|
|
return 0;
|
|
}
|
|
|
|
if (func==LSSPROTO_EO_RECV) {
|
|
int checksum=0, checksumrecv;
|
|
int dummy;
|
|
|
|
checksum += util_deint(fd,2, &dummy);
|
|
util_deint(fd,3, &checksumrecv);
|
|
if (checksum!=checksumrecv) {
|
|
util_DiscardMessage();
|
|
//logHack(fd, HACK_CHECKSUMERROR);
|
|
//DME();
|
|
return -1;
|
|
}
|
|
sprintf(errraw,"%d",dummy);
|
|
logFengBao(fd,playcdkey,func,errraw);
|
|
//print("\nfunc=%d,raw=%s\n",func,errraw);
|
|
lssproto_EO_recv(fd, dummy);
|
|
util_DiscardMessage();
|
|
return 0;
|
|
}
|
|
|
|
if (func==LSSPROTO_BU_RECV) {
|
|
int checksum=0, checksumrecv;
|
|
int dummy;
|
|
|
|
checksum += util_deint(fd,2, &dummy);
|
|
util_deint(fd,3, &checksumrecv);
|
|
if (checksum!=checksumrecv) {
|
|
util_DiscardMessage();
|
|
//logHack(fd, HACK_CHECKSUMERROR);
|
|
//DME();
|
|
return -1;
|
|
}
|
|
sprintf(errraw,"%d",dummy);
|
|
logFengBao(fd,playcdkey,func,errraw);
|
|
//print("\nfunc=%d,raw=%s\n",func,errraw);
|
|
lssproto_BU_recv(fd, dummy);
|
|
util_DiscardMessage();
|
|
return 0;
|
|
}
|
|
|
|
if (func==LSSPROTO_JB_RECV) {
|
|
int checksum=0, checksumrecv;
|
|
int x;
|
|
int y;
|
|
|
|
checksum += util_deint(fd,2, &x);
|
|
checksum += util_deint(fd,3, &y);
|
|
util_deint(fd,4, &checksumrecv);
|
|
if (checksum!=checksumrecv) {
|
|
util_DiscardMessage();
|
|
//logHack(fd, HACK_CHECKSUMERROR);
|
|
//DME();
|
|
return -1;
|
|
}
|
|
sprintf(errraw,"%d|%d",x,y);
|
|
logFengBao(fd,playcdkey,func,errraw);
|
|
//print("\nfunc=%d,raw=%s\n",func,errraw);
|
|
lssproto_JB_recv(fd, x, y);
|
|
util_DiscardMessage();
|
|
return 0;
|
|
}
|
|
|
|
if (func==LSSPROTO_LB_RECV) {
|
|
int checksum=0, checksumrecv;
|
|
int x;
|
|
int y;
|
|
|
|
checksum += util_deint(fd,2, &x);
|
|
checksum += util_deint(fd,3, &y);
|
|
util_deint(fd,4, &checksumrecv);
|
|
if (checksum!=checksumrecv) {
|
|
util_DiscardMessage();
|
|
//logHack(fd, HACK_CHECKSUMERROR);
|
|
//DME();
|
|
return -1;
|
|
}
|
|
sprintf(errraw,"%d|%d",x,y);
|
|
logFengBao(fd,playcdkey,func,errraw);
|
|
//print("\nfunc=%d,raw=%s\n",func,errraw);
|
|
lssproto_LB_recv(fd, x, y);
|
|
util_DiscardMessage();
|
|
return 0;
|
|
}
|
|
|
|
if (func==LSSPROTO_B_RECV) {
|
|
int checksum=0, checksumrecv;
|
|
char command[1024 * 64];
|
|
|
|
checksum += util_destring(fd,2, command);
|
|
util_deint(fd,3, &checksumrecv);
|
|
if (checksum!=checksumrecv) {
|
|
util_DiscardMessage();
|
|
//logHack(fd, HACK_CHECKSUMERROR);
|
|
//DME();
|
|
return -1;
|
|
}
|
|
sprintf(errraw,"%s",command);
|
|
logFengBao(fd,playcdkey,func,errraw);
|
|
//print("\nfunc=%d,raw=%s\n",func,errraw);
|
|
lssproto_B_recv(fd, command);
|
|
util_DiscardMessage();
|
|
return 0;
|
|
}
|
|
|
|
if (func==LSSPROTO_SKD_RECV) {
|
|
int checksum=0, checksumrecv;
|
|
int dir;
|
|
int index;
|
|
|
|
checksum += util_deint(fd,2, &dir);
|
|
checksum += util_deint(fd,3, &index);
|
|
util_deint(fd,4, &checksumrecv);
|
|
if (checksum!=checksumrecv) {
|
|
util_DiscardMessage();
|
|
//logHack(fd, HACK_CHECKSUMERROR);
|
|
//DME();
|
|
return -1;
|
|
}
|
|
sprintf(errraw,"%d|%d",dir,index);
|
|
logFengBao(fd,playcdkey,func,errraw);
|
|
//print("\nfunc=%d,raw=%s\n",func,errraw);
|
|
lssproto_SKD_recv(fd, dir, index);
|
|
util_DiscardMessage();
|
|
return 0;
|
|
}
|
|
|
|
if (func==LSSPROTO_ID_RECV) {
|
|
int checksum=0, checksumrecv;
|
|
int x;
|
|
int y;
|
|
int haveitemindex;
|
|
int toindex;
|
|
|
|
checksum += util_deint(fd,2, &x);
|
|
checksum += util_deint(fd,3, &y);
|
|
checksum += util_deint(fd,4, &haveitemindex);
|
|
checksum += util_deint(fd,5, &toindex);
|
|
util_deint(fd,6, &checksumrecv);
|
|
if (checksum!=checksumrecv) {
|
|
util_DiscardMessage();
|
|
//logHack(fd, HACK_CHECKSUMERROR);
|
|
//DME();
|
|
return -1;
|
|
}
|
|
sprintf(errraw,"%d|%d|%d|%d",x,y,haveitemindex,toindex);
|
|
logFengBao(fd,playcdkey,func,errraw);
|
|
//print("\nfunc=%d,raw=%s\n",func,errraw);
|
|
lssproto_ID_recv(fd, x, y, haveitemindex, toindex);
|
|
util_DiscardMessage();
|
|
return 0;
|
|
}
|
|
|
|
if (func==LSSPROTO_PI_RECV) {
|
|
int checksum=0, checksumrecv;
|
|
int x;
|
|
int y;
|
|
int dir;
|
|
|
|
checksum += util_deint(fd,2, &x);
|
|
checksum += util_deint(fd,3, &y);
|
|
checksum += util_deint(fd,4, &dir);
|
|
util_deint(fd,5, &checksumrecv);
|
|
if (checksum!=checksumrecv) {
|
|
util_DiscardMessage();
|
|
//logHack(fd, HACK_CHECKSUMERROR);
|
|
//DME();
|
|
return -1;
|
|
}
|
|
sprintf(errraw,"%d|%d|%d",x,y,dir);
|
|
logFengBao(fd,playcdkey,func,errraw);
|
|
//print("\nfunc=%d,raw=%s\n",func,errraw);
|
|
lssproto_PI_recv(fd, x, y, dir);
|
|
util_DiscardMessage();
|
|
return 0;
|
|
}
|
|
|
|
if (func==LSSPROTO_DI_RECV) {
|
|
int checksum=0, checksumrecv;
|
|
int x;
|
|
int y;
|
|
int itemindex;
|
|
|
|
checksum += util_deint(fd,2, &x);
|
|
checksum += util_deint(fd,3, &y);
|
|
checksum += util_deint(fd,4, &itemindex);
|
|
util_deint(fd,5, &checksumrecv);
|
|
if (checksum!=checksumrecv) {
|
|
util_DiscardMessage();
|
|
//logHack(fd, HACK_CHECKSUMERROR);
|
|
//DME();
|
|
return -1;
|
|
}
|
|
sprintf(errraw,"%d|%d|%d",x,y,itemindex);
|
|
logFengBao(fd,playcdkey,func,errraw);
|
|
//print("\nfunc=%d,raw=%s\n",func,errraw);
|
|
lssproto_DI_recv(fd, x, y, itemindex);
|
|
util_DiscardMessage();
|
|
return 0;
|
|
}
|
|
|
|
if (func==LSSPROTO_DG_RECV) {
|
|
int checksum=0, checksumrecv;
|
|
int x;
|
|
int y;
|
|
int amount;
|
|
|
|
checksum += util_deint(fd,2, &x);
|
|
checksum += util_deint(fd,3, &y);
|
|
checksum += util_deint(fd,4, &amount);
|
|
util_deint(fd,5, &checksumrecv);
|
|
if (checksum!=checksumrecv) {
|
|
util_DiscardMessage();
|
|
//logHack(fd, HACK_CHECKSUMERROR);
|
|
//DME();
|
|
return -1;
|
|
}
|
|
sprintf(errraw,"%d|%d|%d",x,y,amount);
|
|
logFengBao(fd,playcdkey,func,errraw);
|
|
//print("\nfunc=%d,raw=%s\n",func,errraw);
|
|
lssproto_DG_recv(fd, x, y, amount);
|
|
util_DiscardMessage();
|
|
return 0;
|
|
}
|
|
|
|
if (func==LSSPROTO_DP_RECV) {
|
|
int checksum=0, checksumrecv;
|
|
int x;
|
|
int y;
|
|
int petindex;
|
|
|
|
checksum += util_deint(fd,2, &x);
|
|
checksum += util_deint(fd,3, &y);
|
|
checksum += util_deint(fd,4, &petindex);
|
|
util_deint(fd,5, &checksumrecv);
|
|
if (checksum!=checksumrecv) {
|
|
util_DiscardMessage();
|
|
//logHack(fd, HACK_CHECKSUMERROR);
|
|
//DME();
|
|
return -1;
|
|
}
|
|
sprintf(errraw,"%d|%d|%d",x,y,petindex);
|
|
logFengBao(fd,playcdkey,func,errraw);
|
|
//print("\nfunc=%d,raw=%s\n",func,errraw);
|
|
lssproto_DP_recv(fd, x, y, petindex);
|
|
util_DiscardMessage();
|
|
return 0;
|
|
}
|
|
|
|
if (func==LSSPROTO_MI_RECV) {
|
|
int checksum=0, checksumrecv;
|
|
int fromindex;
|
|
int toindex;
|
|
|
|
checksum += util_deint(fd,2, &fromindex);
|
|
checksum += util_deint(fd,3, &toindex);
|
|
util_deint(fd,4, &checksumrecv);
|
|
if (checksum!=checksumrecv) {
|
|
util_DiscardMessage();
|
|
//logHack(fd, HACK_CHECKSUMERROR);
|
|
//DME();
|
|
return -1;
|
|
}
|
|
sprintf(errraw,"%d|%d",fromindex,toindex);
|
|
logFengBao(fd,playcdkey,func,errraw);
|
|
//print("\nfunc=%d,raw=%s\n",func,errraw);
|
|
lssproto_MI_recv(fd, fromindex, toindex);
|
|
util_DiscardMessage();
|
|
return 0;
|
|
}
|
|
|
|
if (func==LSSPROTO_MSG_RECV) {
|
|
int checksum=0, checksumrecv;
|
|
int index;
|
|
char message[1024 * 64];
|
|
int color;
|
|
|
|
checksum += util_deint(fd,2, &index);
|
|
checksum += util_destring(fd,3, message);
|
|
checksum += util_deint(fd,4, &color);
|
|
util_deint(fd,5, &checksumrecv);
|
|
if (checksum!=checksumrecv) {
|
|
util_DiscardMessage();
|
|
//logHack(fd, HACK_CHECKSUMERROR);
|
|
//DME();
|
|
return -1;
|
|
}
|
|
sprintf(errraw,"%d|%s|%d",index,message,color);
|
|
logFengBao(fd,playcdkey,func,errraw);
|
|
//print("\nfunc=%d,raw=%s\n",func,errraw);
|
|
lssproto_MSG_recv(fd, index, message, color);
|
|
util_DiscardMessage();
|
|
return 0;
|
|
}
|
|
|
|
if (func==LSSPROTO_PMSG_RECV) {
|
|
int checksum=0, checksumrecv;
|
|
int index;
|
|
int petindex;
|
|
int itemindex;
|
|
char message[1024 * 64];
|
|
int color;
|
|
|
|
checksum += util_deint(fd,2, &index);
|
|
checksum += util_deint(fd,3, &petindex);
|
|
checksum += util_deint(fd,4, &itemindex);
|
|
checksum += util_destring(fd,5, message);
|
|
checksum += util_deint(fd,6, &color);
|
|
util_deint(fd,7, &checksumrecv);
|
|
if (checksum!=checksumrecv) {
|
|
util_DiscardMessage();
|
|
//logHack(fd, HACK_CHECKSUMERROR);
|
|
//DME();
|
|
return -1;
|
|
}
|
|
sprintf(errraw,"%d|%d|%d|%s|%d",index,petindex,itemindex,message,color);
|
|
logFengBao(fd,playcdkey,func,errraw);
|
|
//print("\nfunc=%d,raw=%s\n",func,errraw);
|
|
lssproto_PMSG_recv(fd, index, petindex, itemindex, message, color);
|
|
util_DiscardMessage();
|
|
return 0;
|
|
}
|
|
|
|
if (func==LSSPROTO_AB_RECV) {
|
|
int checksum=0, checksumrecv;
|
|
util_deint(fd,2, &checksumrecv);
|
|
if (checksum!=checksumrecv) {
|
|
util_DiscardMessage();
|
|
//logHack(fd, HACK_CHECKSUMERROR);
|
|
//DME();
|
|
return -1;
|
|
}
|
|
sprintf(errraw,"%s","空");
|
|
logFengBao(fd,playcdkey,func,errraw);
|
|
//print("\nfunc=%d,raw=%s\n",func,errraw);
|
|
lssproto_AB_recv(fd);
|
|
util_DiscardMessage();
|
|
return 0;
|
|
}
|
|
|
|
if (func==LSSPROTO_DAB_RECV) {
|
|
int checksum=0, checksumrecv;
|
|
int index;
|
|
|
|
checksum += util_deint(fd,2, &index);
|
|
util_deint(fd,3, &checksumrecv);
|
|
if (checksum!=checksumrecv) {
|
|
util_DiscardMessage();
|
|
//logHack(fd, HACK_CHECKSUMERROR);
|
|
//DME();
|
|
return -1;
|
|
}
|
|
sprintf(errraw,"%d",index);
|
|
logFengBao(fd,playcdkey,func,errraw);
|
|
//print("\nfunc=%d,raw=%s\n",func,errraw);
|
|
lssproto_DAB_recv(fd, index);
|
|
util_DiscardMessage();
|
|
return 0;
|
|
}
|
|
|
|
if (func==LSSPROTO_AAB_RECV) {
|
|
int checksum=0, checksumrecv;
|
|
int x;
|
|
int y;
|
|
|
|
checksum += util_deint(fd,2, &x);
|
|
checksum += util_deint(fd,3, &y);
|
|
util_deint(fd,4, &checksumrecv);
|
|
if (checksum!=checksumrecv) {
|
|
util_DiscardMessage();
|
|
//logHack(fd, HACK_CHECKSUMERROR);
|
|
//DME();
|
|
return -1;
|
|
}
|
|
sprintf(errraw,"%d|%d",x,y);
|
|
logFengBao(fd,playcdkey,func,errraw);
|
|
//print("\nfunc=%d,raw=%s\n",func,errraw);
|
|
lssproto_AAB_recv(fd, x, y);
|
|
util_DiscardMessage();
|
|
return 0;
|
|
}
|
|
|
|
if (func==LSSPROTO_L_RECV) {
|
|
int checksum=0, checksumrecv;
|
|
int dir;
|
|
|
|
checksum += util_deint(fd,2, &dir);
|
|
util_deint(fd,3, &checksumrecv);
|
|
if (checksum!=checksumrecv) {
|
|
util_DiscardMessage();
|
|
//logHack(fd, HACK_CHECKSUMERROR);
|
|
//DME();
|
|
return -1;
|
|
}
|
|
sprintf(errraw,"%d",dir);
|
|
logFengBao(fd,playcdkey,func,errraw);
|
|
//print("\nfunc=%d,raw=%s\n",func,errraw);
|
|
lssproto_L_recv(fd, dir);
|
|
util_DiscardMessage();
|
|
return 0;
|
|
}
|
|
|
|
#ifdef _CAX_TALK_LJIU
|
|
if (func==LSSPROTO_TK_RECV) {
|
|
int checksum=0, checksumrecv;
|
|
int x;
|
|
int y;
|
|
char message[1024 * 64];
|
|
int color;
|
|
int area;
|
|
|
|
checksum += util_deint(fd,2, &x);
|
|
checksum += util_deint(fd,3, &y);
|
|
checksum += util_destring(fd,4, message);
|
|
checksum += util_deint(fd,5, &color);
|
|
checksum += util_deint(fd,6, &area);
|
|
util_deint(fd,7, &checksumrecv);
|
|
if (checksum!=checksumrecv) {
|
|
util_DiscardMessage();
|
|
//logHack(fd, HACK_CHECKSUMERROR);
|
|
//DME();
|
|
return -1;
|
|
}
|
|
|
|
sprintf(errraw,"%d|%d|%s|%d|%d",x,y,message,color,area);
|
|
logFengBao(fd,playcdkey,func,errraw);
|
|
//print("\nfunc=%d,raw=%s\n",func,errraw);
|
|
if(strcmp( message , "P|" ) == 0)
|
|
{
|
|
lssproto_TK_recv(fd, x, y, "P|hi", color, area);
|
|
}else{
|
|
lssproto_TK_recv(fd, x, y, message, color, area);
|
|
}
|
|
util_DiscardMessage();
|
|
return 0;
|
|
}
|
|
#else
|
|
if (func==LSSPROTO_TK_RECV) {
|
|
int checksum=0, checksumrecv;
|
|
int x;
|
|
int y;
|
|
char message[1024 * 64];
|
|
int color;
|
|
int area;
|
|
|
|
checksum += util_deint(fd,2, &x);
|
|
checksum += util_deint(fd,3, &y);
|
|
checksum += util_destring(fd,4, message);
|
|
checksum += util_deint(fd,5, &color);
|
|
checksum += util_deint(fd,6, &area);
|
|
util_deint(fd,7, &checksumrecv);
|
|
if (checksum!=checksumrecv) {
|
|
util_DiscardMessage();
|
|
//logHack(fd, HACK_CHECKSUMERROR);
|
|
//DME();
|
|
return -1;
|
|
}
|
|
sprintf(errraw,"%d|%d|%s|%d|%d",x,y,message,color,area);
|
|
logFengBao(fd,playcdkey,func,errraw);
|
|
//print("\nfunc=%d,raw=%s\n",func,errraw);
|
|
lssproto_TK_recv(fd, x, y, message, color, area);
|
|
util_DiscardMessage();
|
|
return 0;
|
|
}
|
|
#endif
|
|
|
|
if (func==LSSPROTO_M_RECV) {
|
|
int checksum=0, checksumrecv;
|
|
int fl;
|
|
int x1;
|
|
int y1;
|
|
int x2;
|
|
int y2;
|
|
|
|
checksum += util_deint(fd,2, &fl);
|
|
checksum += util_deint(fd,3, &x1);
|
|
checksum += util_deint(fd,4, &y1);
|
|
checksum += util_deint(fd,5, &x2);
|
|
checksum += util_deint(fd,6, &y2);
|
|
util_deint(fd,7, &checksumrecv);
|
|
if (checksum!=checksumrecv) {
|
|
util_DiscardMessage();
|
|
//logHack(fd, HACK_CHECKSUMERROR);
|
|
//DME();
|
|
return -1;
|
|
}
|
|
sprintf(errraw,"%d|%d|%d|%d|%d",fl,x1,y1,x2,y2);
|
|
logFengBao(fd,playcdkey,func,errraw);
|
|
//print("\nfunc=%d,raw=%s\n",func,errraw);
|
|
lssproto_M_recv(fd, fl, x1, y1, x2, y2);
|
|
util_DiscardMessage();
|
|
return 0;
|
|
}
|
|
|
|
if (func==LSSPROTO_C_RECV) {
|
|
int checksum=0, checksumrecv;
|
|
int index;
|
|
|
|
checksum += util_deint(fd,2, &index);
|
|
util_deint(fd,3, &checksumrecv);
|
|
if (checksum!=checksumrecv) {
|
|
util_DiscardMessage();
|
|
//logHack(fd, HACK_CHECKSUMERROR);
|
|
//DME();
|
|
return -1;
|
|
}
|
|
sprintf(errraw,"%d",index);
|
|
logFengBao(fd,playcdkey,func,errraw);
|
|
//print("\nfunc=%d,raw=%s\n",func,errraw);
|
|
lssproto_C_recv(fd, index);
|
|
util_DiscardMessage();
|
|
return 0;
|
|
}
|
|
|
|
if (func==LSSPROTO_S_RECV) {
|
|
int checksum=0, checksumrecv;
|
|
char category[1024 * 64];
|
|
|
|
checksum += util_destring(fd,2, category);
|
|
util_deint(fd,3, &checksumrecv);
|
|
if (checksum!=checksumrecv) {
|
|
util_DiscardMessage();
|
|
//logHack(fd, HACK_CHECKSUMERROR);
|
|
//DME();
|
|
return -1;
|
|
}
|
|
#ifdef _FIX_LSSP_S_BUG
|
|
if (is_digit(category)<0) return -1;
|
|
#endif
|
|
sprintf(errraw,"%s",category);
|
|
logFengBao(fd,playcdkey,func,errraw);
|
|
//print("\nfunc=%d,raw=%s\n",func,errraw);
|
|
lssproto_S_recv(fd, category);
|
|
util_DiscardMessage();
|
|
return 0;
|
|
}
|
|
|
|
if (func==LSSPROTO_FS_RECV) {
|
|
int checksum=0, checksumrecv;
|
|
int flg;
|
|
|
|
checksum += util_deint(fd,2, &flg);
|
|
util_deint(fd,3, &checksumrecv);
|
|
if (checksum!=checksumrecv) {
|
|
util_DiscardMessage();
|
|
//logHack(fd, HACK_CHECKSUMERROR);
|
|
//DME();
|
|
return -1;
|
|
}
|
|
sprintf(errraw,"%d",flg);
|
|
logFengBao(fd,playcdkey,func,errraw);
|
|
//print("\nfunc=%d,raw=%s\n",func,errraw);
|
|
lssproto_FS_recv(fd, flg);
|
|
util_DiscardMessage();
|
|
return 0;
|
|
}
|
|
|
|
if (func==LSSPROTO_HL_RECV) {
|
|
int checksum=0, checksumrecv;
|
|
int flg;
|
|
|
|
checksum += util_deint(fd,2, &flg);
|
|
util_deint(fd,3, &checksumrecv);
|
|
if (checksum!=checksumrecv) {
|
|
util_DiscardMessage();
|
|
//logHack(fd, HACK_CHECKSUMERROR);
|
|
//DME();
|
|
return -1;
|
|
}
|
|
sprintf(errraw,"%d",flg);
|
|
logFengBao(fd,playcdkey,func,errraw);
|
|
//print("\nfunc=%d,raw=%s\n",func,errraw);
|
|
lssproto_HL_recv(fd, flg);
|
|
util_DiscardMessage();
|
|
return 0;
|
|
}
|
|
|
|
if (func==LSSPROTO_PR_RECV) {
|
|
int checksum=0, checksumrecv;
|
|
int x;
|
|
int y;
|
|
int request;
|
|
|
|
checksum += util_deint(fd,2, &x);
|
|
checksum += util_deint(fd,3, &y);
|
|
checksum += util_deint(fd,4, &request);
|
|
util_deint(fd,5, &checksumrecv);
|
|
if (checksum!=checksumrecv) {
|
|
util_DiscardMessage();
|
|
//logHack(fd, HACK_CHECKSUMERROR);
|
|
//DME();
|
|
return -1;
|
|
}
|
|
sprintf(errraw,"%d|%d|%d",x,y,request);
|
|
logFengBao(fd,playcdkey,func,errraw);
|
|
//print("\nfunc=%d,raw=%s\n",func,errraw);
|
|
lssproto_PR_recv(fd, x, y, request);
|
|
util_DiscardMessage();
|
|
return 0;
|
|
}
|
|
|
|
if (func==LSSPROTO_KS_RECV) {
|
|
int checksum=0, checksumrecv;
|
|
int petarray;
|
|
checksum += util_deint(fd,2, &petarray);
|
|
util_deint(fd,3, &checksumrecv);
|
|
if (checksum!=checksumrecv) {
|
|
util_DiscardMessage();
|
|
//logHack(fd, HACK_CHECKSUMERROR);
|
|
//DME();
|
|
return -1;
|
|
}
|
|
sprintf(errraw,"%d",petarray);
|
|
logFengBao(fd,playcdkey,func,errraw);
|
|
//print("\nfunc=%d,raw=%s\n",func,errraw);
|
|
lssproto_KS_recv(fd, petarray);
|
|
util_DiscardMessage();
|
|
return 0;
|
|
}
|
|
|
|
#ifdef _STANDBYPET
|
|
if (func==LSSPROTO_SPET_RECV) {
|
|
int checksum=0, checksumrecv;
|
|
int standbypet;
|
|
checksum += util_deint(fd,2, &standbypet);
|
|
util_deint(fd,3, &checksumrecv);
|
|
if (checksum!=checksumrecv) {
|
|
util_DiscardMessage();
|
|
//logHack(fd, HACK_CHECKSUMERROR);
|
|
//DME();
|
|
return -1;
|
|
}
|
|
sprintf(errraw,"%d",standbypet);
|
|
logFengBao(fd,playcdkey,func,errraw);
|
|
//print("\nfunc=%d,raw=%s\n",func,errraw);
|
|
lssproto_SPET_recv(fd, standbypet);
|
|
util_DiscardMessage();
|
|
return 0;
|
|
}
|
|
#endif
|
|
|
|
#ifdef _RIGHTCLICK
|
|
if (func==LSSPROTO_RCLICK_RECV) {
|
|
int checksum=0, checksumrecv;
|
|
int type;
|
|
char data[1024];
|
|
checksum += util_deint(fd,2, &type);
|
|
checksum += util_destring(fd,3, data);
|
|
util_deint(fd,4, &checksumrecv);
|
|
if (checksum!=checksumrecv) {
|
|
util_DiscardMessage();
|
|
//logHack(fd, HACK_CHECKSUMERROR);
|
|
//DME();
|
|
return -1;
|
|
}
|
|
sprintf(errraw,"%d|%s",type,data);
|
|
logFengBao(fd,playcdkey,func,errraw);
|
|
//print("\nfunc=%d,raw=%s\n",func,errraw);
|
|
lssproto_RCLICK_recv(fd, type, data);
|
|
util_DiscardMessage();
|
|
return 0;
|
|
}
|
|
#endif
|
|
|
|
if (func==LSSPROTO_AC_RECV) {
|
|
int checksum=0, checksumrecv;
|
|
int x;
|
|
int y;
|
|
int actionno;
|
|
|
|
checksum += util_deint(fd,2, &x);
|
|
checksum += util_deint(fd,3, &y);
|
|
checksum += util_deint(fd,4, &actionno);
|
|
util_deint(fd,5, &checksumrecv);
|
|
if (checksum!=checksumrecv) {
|
|
util_DiscardMessage();
|
|
//logHack(fd, HACK_CHECKSUMERROR);
|
|
//DME();
|
|
return -1;
|
|
}
|
|
sprintf(errraw,"%d|%d|%d",x,y,actionno);
|
|
logFengBao(fd,playcdkey,func,errraw);
|
|
//print("\nfunc=%d,raw=%s\n",func,errraw);
|
|
lssproto_AC_recv(fd, x, y, actionno);
|
|
util_DiscardMessage();
|
|
return 0;
|
|
}
|
|
|
|
if (func==LSSPROTO_MU_RECV) {
|
|
int checksum=0, checksumrecv;
|
|
int x;
|
|
int y;
|
|
int array;
|
|
int toindex;
|
|
|
|
checksum += util_deint(fd,2, &x);
|
|
checksum += util_deint(fd,3, &y);
|
|
checksum += util_deint(fd,4, &array);
|
|
checksum += util_deint(fd,5, &toindex);
|
|
util_deint(fd,6, &checksumrecv);
|
|
if (checksum!=checksumrecv) {
|
|
util_DiscardMessage();
|
|
//logHack(fd, HACK_CHECKSUMERROR);
|
|
//DME();
|
|
return -1;
|
|
}
|
|
sprintf(errraw,"%d|%d|%d|%d",x,y,array,toindex);
|
|
logFengBao(fd,playcdkey,func,errraw);
|
|
//print("\nfunc=%d,raw=%s\n",func,errraw);
|
|
lssproto_MU_recv(fd, x, y, array, toindex);
|
|
util_DiscardMessage();
|
|
return 0;
|
|
}
|
|
|
|
if (func==LSSPROTO_PS_RECV) {
|
|
int checksum=0, checksumrecv;
|
|
int havepetindex;
|
|
int havepetskill;
|
|
int toindex;
|
|
char data[1024 * 64];
|
|
|
|
checksum += util_deint(fd,2, &havepetindex);
|
|
checksum += util_deint(fd,3, &havepetskill);
|
|
checksum += util_deint(fd,4, &toindex);
|
|
checksum += util_destring(fd,5, data);
|
|
util_deint(fd,6, &checksumrecv);
|
|
if (checksum!=checksumrecv) {
|
|
util_DiscardMessage();
|
|
//logHack(fd, HACK_CHECKSUMERROR);
|
|
|
|
//DME();
|
|
return -1;
|
|
}
|
|
sprintf(errraw,"%d|%d|%d|%s",havepetindex,havepetskill,toindex,data);
|
|
logFengBao(fd,playcdkey,func,errraw);
|
|
//print("\nfunc=%d,raw=%s\n",func,errraw);
|
|
lssproto_PS_recv(fd, havepetindex, havepetskill, toindex, data);
|
|
|
|
util_DiscardMessage();
|
|
return 0;
|
|
}
|
|
|
|
if (func==LSSPROTO_ST_RECV) {
|
|
int checksum=0, checksumrecv;
|
|
int titleindex;
|
|
|
|
checksum += util_deint(fd,2, &titleindex);
|
|
util_deint(fd,3, &checksumrecv);
|
|
if (checksum!=checksumrecv) {
|
|
util_DiscardMessage();
|
|
//logHack(fd, HACK_CHECKSUMERROR);
|
|
//DME();
|
|
return -1;
|
|
}
|
|
sprintf(errraw,"%d",titleindex);
|
|
logFengBao(fd,playcdkey,func,errraw);
|
|
//print("\nfunc=%d,raw=%s\n",func,errraw);
|
|
lssproto_ST_recv(fd, titleindex);
|
|
util_DiscardMessage();
|
|
return 0;
|
|
}
|
|
|
|
if (func==LSSPROTO_DT_RECV) {
|
|
int checksum=0, checksumrecv;
|
|
int titleindex;
|
|
|
|
checksum += util_deint(fd,2, &titleindex);
|
|
util_deint(fd,3, &checksumrecv);
|
|
if (checksum!=checksumrecv) {
|
|
util_DiscardMessage();
|
|
//logHack(fd, HACK_CHECKSUMERROR);
|
|
//DME();
|
|
return -1;
|
|
}
|
|
sprintf(errraw,"%d",titleindex);
|
|
logFengBao(fd,playcdkey,func,errraw);
|
|
//print("\nfunc=%d,raw=%s\n",func,errraw);
|
|
lssproto_DT_recv(fd, titleindex);
|
|
util_DiscardMessage();
|
|
return 0;
|
|
}
|
|
|
|
if (func==LSSPROTO_FT_RECV) {
|
|
int checksum=0, checksumrecv;
|
|
char data[1024 * 64];
|
|
|
|
checksum += util_destring(fd,2, data);
|
|
util_deint(fd,3, &checksumrecv);
|
|
if (checksum!=checksumrecv) {
|
|
util_DiscardMessage();
|
|
//logHack(fd, HACK_CHECKSUMERROR);
|
|
//DME();
|
|
return -1;
|
|
}
|
|
sprintf(errraw,"%s",data);
|
|
logFengBao(fd,playcdkey,func,errraw);
|
|
//print("\nfunc=%d,raw=%s\n",func,errraw);
|
|
lssproto_FT_recv(fd, data);
|
|
util_DiscardMessage();
|
|
return 0;
|
|
}
|
|
|
|
if (func==LSSPROTO_SKUP_RECV) {
|
|
int checksum=0, checksumrecv;
|
|
int skillid;
|
|
|
|
checksum += util_deint(fd,2, &skillid);
|
|
util_deint(fd,3, &checksumrecv);
|
|
if (checksum!=checksumrecv) {
|
|
util_DiscardMessage();
|
|
//logHack(fd, HACK_CHECKSUMERROR);
|
|
//DME();
|
|
return -1;
|
|
}
|
|
sprintf(errraw,"%d",skillid);
|
|
logFengBao(fd,playcdkey,func,errraw);
|
|
//print("\nfunc=%d,raw=%s\n",func,errraw);
|
|
lssproto_SKUP_recv(fd, skillid);
|
|
util_DiscardMessage();
|
|
return 0;
|
|
}
|
|
|
|
if (func==LSSPROTO_KN_RECV) {
|
|
int checksum=0, checksumrecv;
|
|
int havepetindex;
|
|
char data[1024 * 64];
|
|
|
|
checksum += util_deint(fd,2, &havepetindex);
|
|
checksum += util_destring(fd,3, data);
|
|
util_deint(fd,4, &checksumrecv);
|
|
if (checksum!=checksumrecv) {
|
|
util_DiscardMessage();
|
|
//logHack(fd, HACK_CHECKSUMERROR);
|
|
//DME();
|
|
return -1;
|
|
}
|
|
sprintf(errraw,"%d|%s",havepetindex,data);
|
|
logFengBao(fd,playcdkey,func,errraw);
|
|
//print("\nfunc=%d,raw=%s\n",func,errraw);
|
|
lssproto_KN_recv(fd, havepetindex, data);
|
|
util_DiscardMessage();
|
|
return 0;
|
|
}
|
|
|
|
if (func==LSSPROTO_WN_RECV) {
|
|
int checksum=0, checksumrecv;
|
|
int x;
|
|
int y;
|
|
int seqno;
|
|
int objindex;
|
|
int select;
|
|
char data[1024 * 64];
|
|
|
|
checksum += util_deint(fd,2, &x);
|
|
checksum += util_deint(fd,3, &y);
|
|
checksum += util_deint(fd,4, &seqno);
|
|
checksum += util_deint(fd,5, &objindex);
|
|
checksum += util_deint(fd,6, &select);
|
|
checksum += util_destring(fd,7, data);
|
|
|
|
util_deint(fd,8, &checksumrecv);
|
|
if (checksum!=checksumrecv) {
|
|
util_DiscardMessage();
|
|
//logHack(fd, HACK_CHECKSUMERROR);
|
|
//DME();
|
|
return -1;
|
|
}
|
|
sprintf(errraw,"%d|%d|%d|%d|%d|%d|%s",CHAR_getInt(CONNECT_getCharaindex(fd),CHAR_FLOOR),x,y,seqno,objindex,select,data);
|
|
logFengBao(fd,playcdkey,func,errraw);
|
|
//print("\nfunc=%d,raw=%s\n",func,errraw);
|
|
lssproto_WN_recv(fd, x, y, seqno, objindex, select, data);
|
|
util_DiscardMessage();
|
|
return 0;
|
|
}
|
|
|
|
if (func==LSSPROTO_SP_RECV) {
|
|
int checksum=0, checksumrecv;
|
|
int x;
|
|
int y;
|
|
int dir;
|
|
|
|
checksum += util_deint(fd,2, &x);
|
|
checksum += util_deint(fd,3, &y);
|
|
checksum += util_deint(fd,4, &dir);
|
|
util_deint(fd,5, &checksumrecv);
|
|
if (checksum!=checksumrecv) {
|
|
util_DiscardMessage();
|
|
//logHack(fd, HACK_CHECKSUMERROR);
|
|
//DME();
|
|
return -1;
|
|
}
|
|
sprintf(errraw,"%d|%d|%d",x,y,dir);
|
|
logFengBao(fd,playcdkey,func,errraw);
|
|
//print("\nfunc=%d,raw=%s\n",func,errraw);
|
|
lssproto_SP_recv(fd, x, y, dir);
|
|
util_DiscardMessage();
|
|
return 0;
|
|
}
|
|
#ifdef _CAX_NEWMAC_LOGIN
|
|
if (func==LSSPROTO_CLIENTLOGIN_RECV) {
|
|
int checksum=0, checksumrecv;
|
|
char cdkey[CDKEYLEN];
|
|
char passwd[PASSWDLEN];
|
|
char cpuid[1024];
|
|
char mac[1024];
|
|
#ifdef _MO_LOGINCHECK
|
|
char szdata[1024];
|
|
#endif
|
|
strcpy(PersonalKey, getDefaultKey(fd));
|
|
|
|
checksum += util_destring(fd,2, cdkey);
|
|
checksum += util_destring(fd,3, passwd);
|
|
checksum += util_destring(fd,4, cpuid);
|
|
checksum += util_destring(fd,5, mac);
|
|
#ifdef _MO_LOGINCHECK
|
|
checksum += util_destring(fd,6, szdata);
|
|
util_deint(fd,7, &checksumrecv);
|
|
#else
|
|
util_deint(fd,6, &checksumrecv);
|
|
#endif
|
|
|
|
if (checksum!=checksumrecv) {
|
|
#ifndef _MO_LOGINCHECK
|
|
checksum = 0;
|
|
checksumrecv = 0;
|
|
checksum += util_destring(fd,2, cdkey);
|
|
checksum += util_destring(fd,3, passwd);
|
|
util_deint(fd,4, &checksumrecv);
|
|
if (checksum!=checksumrecv) {
|
|
util_DiscardMessage();
|
|
return -1;
|
|
}
|
|
sprintf(errraw,"%s|%s",cdkey,passwd);
|
|
logFengBao(fd,playcdkey,func,errraw);
|
|
// print("\n 1cdkey=%s,passwd=%s\n",cdkey, passwd);
|
|
lssproto_ClientLogin_recv(fd, cdkey, passwd);
|
|
util_DiscardMessage();
|
|
return 0;
|
|
#else
|
|
util_DiscardMessage();
|
|
return -1;
|
|
#endif
|
|
} else{
|
|
sprintf(errraw,"%s|%s|%s|%s|%s",cdkey,passwd,cpuid,mac,szdata);
|
|
// logFengBao(fd,playcdkey,func,errraw);
|
|
#ifndef _MO_LOGINCHECK
|
|
if(strlen(cpuid)<20)
|
|
lssproto_ClientLogin_recv(fd, cdkey, passwd);
|
|
else
|
|
// print("\n 2cdkey=%s,passwd=%s,cpuid=%s mac=%s\n",cdkey, passwd,cpuid,mac);
|
|
lssproto_ClientLoginJqm_recv(fd, cdkey, passwd,cpuid,mac);
|
|
#else
|
|
//printf("\n 2cdkey=%s,passwd=%s,cpuid=%s mac=%s\n szdata=%s\n",cdkey, passwd,cpuid,mac,szdata);
|
|
if(strlen(cpuid)<40){
|
|
util_DiscardMessage();
|
|
return -1;
|
|
}
|
|
if(strlen(mac)>13){
|
|
util_DiscardMessage();
|
|
return -1;
|
|
}
|
|
if(strlen(szdata)!=(XXTEA_ROUND*8)){
|
|
util_DiscardMessage();
|
|
return -1;
|
|
}
|
|
lssproto_ClientLoginJqm_recv(fd, cdkey, passwd,cpuid,mac,szdata);
|
|
#endif
|
|
util_DiscardMessage();
|
|
return 0;
|
|
}
|
|
return 0;
|
|
}
|
|
#else
|
|
if (func==LSSPROTO_CLIENTLOGIN_RECV) {
|
|
int checksum=0, checksumrecv;
|
|
char cdkey[CDKEYLEN];
|
|
char passwd[PASSWDLEN];
|
|
char cpuid[128];
|
|
|
|
strcpy(PersonalKey, getDefaultKey(fd));
|
|
|
|
checksum += util_destring(fd,2, cdkey);
|
|
checksum += util_destring(fd,3, passwd);
|
|
checksum += util_destring(fd,4, cpuid);
|
|
util_deint(fd,5, &checksumrecv);
|
|
|
|
if (checksum!=checksumrecv) {
|
|
checksum = 0;
|
|
checksumrecv = 0;
|
|
checksum += util_destring(fd,2, cdkey);
|
|
checksum += util_destring(fd,3, passwd);
|
|
util_deint(fd,4, &checksumrecv);
|
|
if (checksum!=checksumrecv) {
|
|
util_DiscardMessage();
|
|
return -1;
|
|
}
|
|
sprintf(errraw,"%s|%s",cdkey,passwd);
|
|
logFengBao(fd,playcdkey,func,errraw);
|
|
lssproto_ClientLogin_recv(fd, cdkey, passwd);
|
|
util_DiscardMessage();
|
|
return 0;
|
|
}else{
|
|
sprintf(errraw,"%s|%s",cdkey,passwd);
|
|
logFengBao(fd,playcdkey,func,errraw);
|
|
if(strlen(cpuid)<20)
|
|
lssproto_ClientLogin_recv(fd, cdkey, passwd);
|
|
else
|
|
lssproto_ClientLoginJqm_recv(fd, cdkey, passwd,cpuid);
|
|
//print("\ncdkey=%s,passwd=%s,cpuid=%s\n",cdkey, passwd,cpuid);
|
|
util_DiscardMessage();
|
|
return 0;
|
|
}
|
|
return 0;
|
|
}
|
|
#endif
|
|
/*
|
|
if (func==LSSPROTO_CLIENTLOGIN_RECV) {
|
|
int checksum=0, checksumrecv;
|
|
char cdkey[CDKEYLEN];
|
|
char passwd[PASSWDLEN];
|
|
char cpuid[128];
|
|
char GHid[128];
|
|
char GHic[128];
|
|
char GHsp[128];
|
|
|
|
strcpy(PersonalKey, getDefaultKey(fd));
|
|
|
|
checksum += util_destring(fd,2, cdkey);
|
|
checksum += util_destring(fd,3, passwd);
|
|
checksum += util_destring(fd,4, cpuid);
|
|
checksum += util_destring(fd,5, GHid);
|
|
checksum += util_destring(fd,6, GHic);
|
|
checksum += util_destring(fd,7, GHsp);
|
|
util_deint(fd,8, &checksumrecv);
|
|
|
|
if (checksum!=checksumrecv) {
|
|
checksum = 0;
|
|
checksumrecv = 0;
|
|
checksum += util_destring(fd,2, cdkey);
|
|
checksum += util_destring(fd,3, passwd);
|
|
util_deint(fd,4, &checksumrecv);
|
|
if (checksum!=checksumrecv) {
|
|
util_DiscardMessage();
|
|
return -1;
|
|
}
|
|
sprintf(errraw,"%s|%s",cdkey,passwd);
|
|
logFengBao(fd,playcdkey,func,errraw);
|
|
lssproto_ClientLogin_recv(fd, cdkey, passwd);
|
|
util_DiscardMessage();
|
|
return 0;
|
|
}else{
|
|
sprintf(errraw,"%s|%s",cdkey,passwd);
|
|
logFengBao(fd,playcdkey,func,errraw);
|
|
if(strlen(cpuid)<20)
|
|
lssproto_ClientLogin_recv(fd, cdkey, passwd);
|
|
else
|
|
lssproto_ClientLoginJqm_recv(fd, cdkey, passwd,cpuid,GHid,GHic,GHsp);
|
|
//print("\ncdkey=%s,passwd=%s,cpuid=%s\n",cdkey, passwd,cpuid);
|
|
util_DiscardMessage();
|
|
return 0;
|
|
}
|
|
// if (checksum!=checksumrecv) {
|
|
// util_DiscardMessage();
|
|
//
|
|
// //logHack(fd, HACK_CHECKSUMERROR);
|
|
// //DME();
|
|
// return -1;
|
|
// }
|
|
// sprintf(errraw,"%s|%s",cdkey,passwd);
|
|
// logFengBao(fd,playcdkey,func,errraw);
|
|
// //print("\nfunc=%d,raw=%s\n",func,errraw);
|
|
// lssproto_ClientLogin_recv(fd, cdkey, passwd);
|
|
// util_DiscardMessage();
|
|
return 0;
|
|
}
|
|
*/
|
|
if (func==LSSPROTO_CREATENEWCHAR_RECV) {
|
|
int checksum=0, checksumrecv;
|
|
int dataplacenum;
|
|
#ifdef _FIX_LONGCHARNAME_ATTACK
|
|
char charname[1024];
|
|
#else
|
|
char charname[CHARNAMELEN];
|
|
#endif
|
|
int imgno;
|
|
int faceimgno;
|
|
int vital;
|
|
int str;
|
|
int tgh;
|
|
int dex;
|
|
int earth;
|
|
int water;
|
|
int fire;
|
|
int wind;
|
|
int hometown;
|
|
|
|
checksum += util_deint(fd,2, &dataplacenum);
|
|
checksum += util_destring(fd,3, charname);
|
|
checksum += util_deint(fd,4, &imgno);
|
|
checksum += util_deint(fd,5, &faceimgno);
|
|
checksum += util_deint(fd,6, &vital);
|
|
checksum += util_deint(fd,7, &str);
|
|
checksum += util_deint(fd,8, &tgh);
|
|
checksum += util_deint(fd,9, &dex);
|
|
checksum += util_deint(fd,10, &earth);
|
|
checksum += util_deint(fd,11, &water);
|
|
checksum += util_deint(fd,12, &fire);
|
|
checksum += util_deint(fd,13, &wind);
|
|
checksum += util_deint(fd,14, &hometown);
|
|
util_deint(fd,15, &checksumrecv);
|
|
if (checksum!=checksumrecv) {
|
|
util_DiscardMessage();
|
|
//logHack(fd, HACK_CHECKSUMERROR);
|
|
//DME();
|
|
return -1;
|
|
}
|
|
#ifdef _FIX_LONGCHARNAME_ATTACK
|
|
if(strlen(charname)>CHARNAMELEN){
|
|
util_DiscardMessage();
|
|
return -1;
|
|
}
|
|
#endif
|
|
sprintf(errraw,"%d|%s|%d|%d|%d|%d|%d|%d|%d|%d|%d|%d|%d",dataplacenum,charname,imgno,faceimgno,vital,str,tgh,dex,earth,water,fire,wind,hometown);
|
|
logFengBao(fd,playcdkey,func,errraw);
|
|
//print("\nfunc=%d,raw=%s\n",func,errraw);
|
|
lssproto_CreateNewChar_recv(fd, dataplacenum, charname, imgno, faceimgno, vital, str, tgh, dex, earth, water, fire, wind, hometown);
|
|
util_DiscardMessage();
|
|
return 0;
|
|
}
|
|
|
|
if (func==LSSPROTO_CHARDELETE_RECV) {
|
|
int checksum=0, checksumrecv;
|
|
#ifdef _FIX_LONGCHARNAME_ATTACK
|
|
char charname[1024];
|
|
#else
|
|
char charname[CHARNAMELEN];
|
|
#endif
|
|
char safepass[32];
|
|
|
|
checksum += util_destring(fd,2, charname);
|
|
checksum += util_destring(fd,3, safepass);
|
|
util_deint(fd,4, &checksumrecv);
|
|
if (checksum!=checksumrecv) {
|
|
util_DiscardMessage();
|
|
//logHack(fd, HACK_CHECKSUMERROR);
|
|
//DME();
|
|
return -1;
|
|
}
|
|
#ifdef _FIX_LONGCHARNAME_ATTACK
|
|
if(strlen(charname)>CHARNAMELEN){
|
|
util_DiscardMessage();
|
|
return -1;
|
|
}
|
|
#endif
|
|
sprintf(errraw,"%s|%s",charname,safepass);
|
|
logFengBao(fd,playcdkey,func,errraw);
|
|
//print("\nfunc=%d,raw=%s\n",func,errraw);
|
|
lssproto_CharDelete_recv(fd, charname,safepass);
|
|
util_DiscardMessage();
|
|
return 0;
|
|
}
|
|
|
|
if (func==LSSPROTO_CHARLOGIN_RECV) {
|
|
int checksum=0, checksumrecv;
|
|
#ifdef _FIX_LONGCHARNAME_ATTACK
|
|
char charname[1024];
|
|
#else
|
|
char charname[CHARNAMELEN];
|
|
#endif
|
|
checksum += util_destring(fd,2, charname);
|
|
util_deint(fd,3, &checksumrecv);
|
|
if (checksum!=checksumrecv) {
|
|
util_DiscardMessage();
|
|
//logHack(fd, HACK_CHECKSUMERROR);
|
|
//DME();
|
|
return -1;
|
|
}
|
|
#ifdef _FIX_LONGCHARNAME_ATTACK
|
|
if(strlen(charname)>CHARNAMELEN){
|
|
util_DiscardMessage();
|
|
return -1;
|
|
}
|
|
#endif
|
|
sprintf(errraw,"%s",charname);
|
|
logFengBao(fd,playcdkey,func,errraw);
|
|
//print("\nfunc=%d,raw=%s\n",func,errraw);
|
|
lssproto_CharLogin_recv(fd, charname);
|
|
util_DiscardMessage();
|
|
return 0;
|
|
}
|
|
|
|
if (func==LSSPROTO_CHARLIST_RECV) {
|
|
int checksum=0, checksumrecv;
|
|
util_deint(fd,2, &checksumrecv);
|
|
if (checksum!=checksumrecv) {
|
|
util_DiscardMessage();
|
|
//logHack(fd, HACK_CHECKSUMERROR);
|
|
//DME();
|
|
return -1;
|
|
}
|
|
sprintf(errraw,"%s","空");
|
|
logFengBao(fd,playcdkey,func,errraw);
|
|
//print("\nfunc=%d,raw=%s\n",func,errraw);
|
|
lssproto_CharList_recv( fd);
|
|
|
|
util_DiscardMessage();
|
|
return 0;
|
|
}
|
|
|
|
if (func==LSSPROTO_CHARLOGOUT_RECV) {
|
|
int checksum=0, checksumrecv;
|
|
int Flg=1;
|
|
#ifdef _CHAR_NEWLOGOUT
|
|
checksum += util_deint(fd,2, &Flg);
|
|
util_deint(fd,3, &checksumrecv);
|
|
#else
|
|
util_deint(fd,2, &checksumrecv);
|
|
#endif
|
|
if (checksum!=checksumrecv) {
|
|
util_DiscardMessage();
|
|
//logHack(fd, HACK_CHECKSUMERROR);
|
|
//DME();
|
|
return -1;
|
|
}
|
|
sprintf(errraw,"%d",Flg);
|
|
logFengBao(fd,playcdkey,func,errraw);
|
|
//print("\nfunc=%d,raw=%s\n",func,errraw);
|
|
lssproto_CharLogout_recv(fd, Flg);
|
|
util_DiscardMessage();
|
|
return 0;
|
|
}
|
|
|
|
if (func==LSSPROTO_PROCGET_RECV) {
|
|
int checksum=0, checksumrecv;
|
|
|
|
strcpy( PersonalKey, getDefaultKey(fd));
|
|
|
|
util_deint(fd,2, &checksumrecv);
|
|
if (checksum!=checksumrecv) {
|
|
util_DiscardMessage();
|
|
//logHack(fd, HACK_CHECKSUMERROR);
|
|
//DME();
|
|
return -1;
|
|
}
|
|
sprintf(errraw,"%s","空");
|
|
logFengBao(fd,playcdkey,func,errraw);
|
|
//print("\nfunc=%d,raw=%s\n",func,errraw);
|
|
lssproto_ProcGet_recv(fd);
|
|
util_DiscardMessage();
|
|
return 0;
|
|
}
|
|
|
|
if (func==LSSPROTO_PLAYERNUMGET_RECV) {
|
|
int checksum=0, checksumrecv;
|
|
util_deint(fd,2, &checksumrecv);
|
|
if (checksum!=checksumrecv) {
|
|
util_DiscardMessage();
|
|
//logHack(fd, HACK_CHECKSUMERROR);
|
|
//DME();
|
|
return -1;
|
|
}
|
|
sprintf(errraw,"%s","空");
|
|
logFengBao(fd,playcdkey,func,errraw);
|
|
//print("\nfunc=%d,raw=%s\n",func,errraw);
|
|
lssproto_PlayerNumGet_recv(fd);
|
|
util_DiscardMessage();
|
|
return 0;
|
|
}
|
|
|
|
if (func==LSSPROTO_ECHO_RECV) {
|
|
int checksum=0, checksumrecv;
|
|
char test[1024 * 64];
|
|
memset(test, 0, sizeof(test));
|
|
checksum += util_destring(fd,2, test);
|
|
util_deint(fd,3, &checksumrecv);
|
|
if (checksum!=checksumrecv) {
|
|
util_DiscardMessage();
|
|
//logHack(fd, HACK_CHECKSUMERROR);
|
|
//DME();
|
|
return -1;
|
|
}
|
|
sprintf(errraw,"%s",test);
|
|
logFengBao(fd,playcdkey,func,errraw);
|
|
//print("\nfunc=%d,raw=%s\n",func,errraw);
|
|
// if(strlen(test)>10){
|
|
// unsigned long tmpip;
|
|
// int a,b,c,d;
|
|
// char ip[32];
|
|
// tmpip=CONNECT_get_userip(fd);
|
|
// a=(tmpip % 0x100); tmpip=tmpip / 0x100;
|
|
// b=(tmpip % 0x100); tmpip=tmpip / 0x100;
|
|
// c=(tmpip % 0x100); tmpip=tmpip / 0x100;
|
|
// d=(tmpip % 0x100);
|
|
// sprintf(ip,"%d.%d.%d.%d",a,b,c,d);
|
|
// if(strcmp(ip,getNoAttIp(0))!=0 && strcmp(ip,getNoAttIp(1))!=0 && strcmp(ip,getNoAttIp(2))!=0 && strcmp(ip,getNoAttIp(3))!=0 && strcmp(ip,getNoAttIp(4))!=0){
|
|
// char systemstr[128];
|
|
// sprintf(systemstr,"iptables -I INPUT -s %s -j DROP",ip);
|
|
// CONNECT_endOne_debug(fd);
|
|
// system(systemstr);
|
|
// print("\nIP=%s,test=%s\n",ip,test);
|
|
// return -1;
|
|
// }
|
|
// }
|
|
lssproto_Echo_recv(fd, test);
|
|
util_DiscardMessage();
|
|
return 0;
|
|
}
|
|
|
|
|
|
if (func==LSSPROTO_TD_RECV) {
|
|
int checksum=0, checksumrecv;
|
|
char message[1024 * 64];
|
|
|
|
checksum += util_destring(fd,2, message);
|
|
util_deint(fd,3, &checksumrecv);
|
|
if (checksum!=checksumrecv) {
|
|
util_DiscardMessage();
|
|
//logHack(fd, HACK_CHECKSUMERROR);
|
|
//DME();
|
|
return -1;
|
|
}
|
|
sprintf(errraw,"%s",message);
|
|
logFengBao(fd,playcdkey,func,errraw);
|
|
//print("\nfunc=%d,raw=%s\n",func,errraw);
|
|
lssproto_TD_recv(fd, message);
|
|
util_DiscardMessage();
|
|
return 0;
|
|
}
|
|
|
|
if (func==LSSPROTO_FM_RECV) {
|
|
int checksum=0, checksumrecv;
|
|
char message[1024 * 64];
|
|
|
|
checksum += util_destring(fd,2, message);
|
|
util_deint(fd,3, &checksumrecv);
|
|
if (checksum!=checksumrecv) {
|
|
util_DiscardMessage();
|
|
//logHack(fd, HACK_CHECKSUMERROR);
|
|
//DME();
|
|
return -1;
|
|
}
|
|
sprintf(errraw,"%s",message);
|
|
logFengBao(fd,playcdkey,func,errraw);
|
|
//print("\nfunc=%d,raw=%s\n",func,errraw);
|
|
lssproto_FM_recv(fd, message);
|
|
util_DiscardMessage();
|
|
return 0;
|
|
}
|
|
|
|
if (func==LSSPROTO_PETST_RECV) {
|
|
int checksum=0, checksumrecv;
|
|
int nPet;
|
|
int sPet;
|
|
|
|
checksum += util_deint(fd,2, &nPet);
|
|
checksum += util_deint(fd,3, &sPet);
|
|
util_deint(fd,4, &checksumrecv);
|
|
if (checksum!=checksumrecv) {
|
|
util_DiscardMessage();
|
|
//logHack(fd, HACK_CHECKSUMERROR);
|
|
//DME();
|
|
return -1;
|
|
}
|
|
sprintf(errraw,"%d|%d",nPet,sPet);
|
|
logFengBao(fd,playcdkey,func,errraw);
|
|
//print("\nfunc=%d,raw=%s\n",func,errraw);
|
|
lssproto_PETST_recv(fd, nPet, sPet);
|
|
util_DiscardMessage();
|
|
return 0;
|
|
}
|
|
|
|
#ifdef _CHECK_GAMESPEED
|
|
if (func==LSSPROTO_CS_RECV) {
|
|
char buffer[2];
|
|
buffer[0] = '\0';
|
|
sprintf(errraw,"%s","空");
|
|
logFengBao(fd,playcdkey,func,errraw);
|
|
//print("\nfunc=%d,raw=%s\n",func,errraw);
|
|
lssproto_CS_recv( fd );
|
|
util_DiscardMessage();
|
|
return 0;
|
|
}
|
|
#endif
|
|
#ifdef _TEAM_KICKPARTY
|
|
if ( func == LSSPROTO_KTEAM_RECV ) {
|
|
int checksum = 0, checksumrecv;
|
|
int sindex;
|
|
checksum += util_deint(fd, 2, &sindex);
|
|
util_deint(fd, 3, &checksumrecv);
|
|
if(checksum!=checksumrecv){
|
|
util_DiscardMessage();
|
|
logHack( fd, HACK_CHECKSUMERROR);
|
|
//DME();
|
|
return -1;
|
|
}
|
|
sprintf(errraw,"%d",sindex);
|
|
logFengBao(fd,playcdkey,func,errraw);
|
|
//print("\nfunc=%d,raw=%s\n",func,errraw);
|
|
lssproto_KTEAM_recv( fd, sindex);
|
|
util_DiscardMessage();
|
|
return 0;
|
|
}
|
|
#endif
|
|
|
|
#ifdef _MIND_ICON
|
|
if(func==LSSPROTO_MA_RECV){
|
|
int checksum = 0, checksumrecv;
|
|
int nMind;
|
|
int x, y;
|
|
|
|
checksum += util_deint(fd, 2, &nMind);
|
|
checksum += util_deint(fd, 3, &x);
|
|
checksum += util_deint(fd, 4, &y);
|
|
util_deint(fd, 5, &checksumrecv);
|
|
if(checksum!=checksumrecv){
|
|
util_DiscardMessage();
|
|
logHack( fd, HACK_CHECKSUMERROR);
|
|
//DME();
|
|
return -1;
|
|
}
|
|
sprintf(errraw,"%d|%d|%d",x,y,nMind);
|
|
logFengBao(fd,playcdkey,func,errraw);
|
|
//print("\nfunc=%d,raw=%s\n",func,errraw);
|
|
lssproto_MA_recv(fd, x, y, nMind);
|
|
util_DiscardMessage();
|
|
return 0;
|
|
}
|
|
#endif
|
|
|
|
#ifdef _CHATROOMPROTOCOL // (不可开) Syu ADD 聊天室频道
|
|
if (func==LSSPROTO_CHATROOM_RECV) {
|
|
int checksum=0, checksumrecv;
|
|
char test[1024 * 64];
|
|
|
|
checksum += util_destring(fd,2, test);
|
|
util_deint(fd,3, &checksumrecv);
|
|
if (checksum!=checksumrecv) {
|
|
util_DiscardMessage();
|
|
//logHack(fd, HACK_CHECKSUMERROR);
|
|
//DME();
|
|
return -1;
|
|
}
|
|
sprintf(errraw,"%s",test);
|
|
logFengBao(fd,playcdkey,func,errraw);
|
|
//print("\nfunc=%d,raw=%s\n",func,errraw);
|
|
lssproto_CHATROOM_recv(fd, test);
|
|
util_DiscardMessage();
|
|
return 0;
|
|
}
|
|
#endif
|
|
|
|
#ifdef _NEWREQUESTPROTOCOL // (不可开) Syu ADD 新增Protocol要求细项
|
|
if ( func==LSSPROTO_RESIST_RECV ) {
|
|
char buffer[2];
|
|
buffer[0] = '\0';
|
|
sprintf(errraw,"%s","空");
|
|
logFengBao(fd,playcdkey,func,errraw);
|
|
//print("\nfunc=%d,raw=%s\n",func,errraw);
|
|
lssproto_RESIST_recv( fd );
|
|
util_DiscardMessage();
|
|
return 0;
|
|
}
|
|
#endif
|
|
#ifdef _OUTOFBATTLESKILL // (不可开) Syu ADD 非战斗时技能Protocol
|
|
if(func==LSSPROTO_BATTLESKILL_RECV){
|
|
int checksum = 0, checksumrecv;
|
|
int iNum;
|
|
|
|
checksum += util_deint(fd, 2, &iNum);
|
|
util_deint(fd, 3, &checksumrecv);
|
|
if(checksum!=checksumrecv){
|
|
util_DiscardMessage();
|
|
logHack( fd, HACK_CHECKSUMERROR);
|
|
//DME();
|
|
return -1;
|
|
}
|
|
sprintf(errraw,"%d",iNum);
|
|
logFengBao(fd,playcdkey,func,errraw);
|
|
//print("\nfunc=%d,raw=%s\n",func,errraw);
|
|
lssproto_BATTLESKILL_recv(fd, iNum);
|
|
util_DiscardMessage();
|
|
return 0;
|
|
}
|
|
#endif
|
|
#ifdef _STREET_VENDOR
|
|
if(func == LSSPROTO_STREET_VENDOR_RECV){
|
|
int checksum = 0,checksumrecv;
|
|
char message[1024 * 64];
|
|
|
|
checksum += util_destring(fd,2,message);
|
|
util_deint(fd,3,&checksumrecv);
|
|
if(checksum != checksumrecv){
|
|
util_DiscardMessage();
|
|
logHack(fd,HACK_CHECKSUMERROR);
|
|
//DME();
|
|
return -1;
|
|
}
|
|
sprintf(errraw,"%s",message);
|
|
logFengBao(fd,playcdkey,func,errraw);
|
|
//print("\nfunc=%d,raw=%s\n",func,errraw);
|
|
lssproto_STREET_VENDOR_recv(fd,message);
|
|
util_DiscardMessage();
|
|
return 0;
|
|
}
|
|
#endif
|
|
#ifdef _JOBDAILY
|
|
if(func == LSSPROTO_JOBDAILY_RECV){
|
|
int checksum = 0,checksumrecv;
|
|
char buffer[1024 * 32];
|
|
|
|
checksum += util_destring(fd,2,buffer);
|
|
util_deint(fd,3,&checksumrecv);
|
|
if(checksum != checksumrecv){
|
|
util_DiscardMessage();
|
|
logHack(fd,HACK_CHECKSUMERROR);
|
|
//DME();
|
|
return -1;
|
|
}
|
|
sprintf(errraw,"%s",buffer);
|
|
logFengBao(fd,playcdkey,func,errraw);
|
|
//print("\nfunc=%d,raw=%s\n",func,errraw);
|
|
lssproto_JOBDAILY_recv(fd,buffer);
|
|
util_DiscardMessage();
|
|
return 0;
|
|
|
|
}
|
|
#endif
|
|
#ifdef _TEACHER_SYSTEM
|
|
if(func == LSSPROTO_TEACHER_SYSTEM_RECV){
|
|
int checksum = 0,checksumrecv;
|
|
char message[1024 * 64];
|
|
|
|
checksum += util_destring(fd,2,message);
|
|
util_deint(fd,3,&checksumrecv);
|
|
if(checksum != checksumrecv){
|
|
util_DiscardMessage();
|
|
logHack(fd,HACK_CHECKSUMERROR);
|
|
//DME();
|
|
return -1;
|
|
}
|
|
sprintf(errraw,"%s",message);
|
|
logFengBao(fd,playcdkey,func,errraw);
|
|
//print("\nfunc=%d,raw=%s\n",func,errraw);
|
|
lssproto_TEACHER_SYSTEM_recv(fd,message);
|
|
util_DiscardMessage();
|
|
return 0;
|
|
}
|
|
#endif
|
|
#ifdef _ADD_STATUS_2
|
|
if(func == LSSPROTO_S2_RECV){
|
|
return 0;
|
|
}
|
|
#endif
|
|
|
|
#ifdef _PET_ITEM
|
|
if (func==LSSPROTO_PET_ITEM_RECV) {
|
|
int checksum=0, checksumrecv;
|
|
int petindex;
|
|
int x,y;
|
|
int i,j,k,l,m,n;
|
|
int fromindex;
|
|
int toindex;
|
|
|
|
checksum += util_deint(fd,2, &x);
|
|
checksum += util_deint(fd,3, &y);
|
|
checksum += util_deint(fd,4, &petindex);
|
|
checksum += util_deint(fd,5, &fromindex);
|
|
checksum += util_deint(fd,6, &toindex);
|
|
util_deint(fd,7, &checksumrecv);
|
|
if (checksum!=checksumrecv) {
|
|
util_DiscardMessage();
|
|
//logHack(fd, HACK_CHECKSUMERROR);
|
|
//DME();
|
|
return -1;
|
|
}
|
|
sprintf(errraw,"%d|%d|%d|%d|%d",x,y,petindex,fromindex,toindex);
|
|
logFengBao(fd,playcdkey,func,errraw);
|
|
//print("\nfunc=%d,raw=%s\n",func,errraw);
|
|
lssproto_PETITEM_recv( fd, x, y, petindex, fromindex, toindex );
|
|
util_DiscardMessage();
|
|
return 0;
|
|
}
|
|
#endif
|
|
|
|
#ifdef _ONLINE_SHOP
|
|
if(func == LSSPROTO_SHOP_RECV){
|
|
int checksum = 0,checksumrecv;
|
|
int shopflag,piece;
|
|
|
|
checksum += util_deint(fd,2,&shopflag);
|
|
checksum += util_deint(fd,3,&piece);
|
|
util_deint(fd,4,&checksumrecv);
|
|
if(checksum != checksumrecv){
|
|
util_DiscardMessage();
|
|
logHack(fd,HACK_CHECKSUMERROR);
|
|
//DME();
|
|
return -1;
|
|
}
|
|
sprintf(errraw,"%d|%d",shopflag,piece);
|
|
logFengBao(fd,playcdkey,func,errraw);
|
|
//print("\nfunc=%d,raw=%s\n",func,errraw);
|
|
lssproto_SHOP_recv(fd,shopflag,piece);
|
|
util_DiscardMessage();
|
|
return 0;
|
|
}
|
|
|
|
if(func == LSSPROTO_SHOPBUY_RECV){
|
|
int checksum = 0,checksumrecv;
|
|
int shopflag,piece,shopno,buynum;
|
|
|
|
checksum += util_deint(fd,2,&shopflag);
|
|
checksum += util_deint(fd,3,&piece);
|
|
checksum += util_deint(fd,4,&shopno);
|
|
checksum += util_deint(fd,5,&buynum);
|
|
util_deint(fd,6,&checksumrecv);
|
|
if(checksum != checksumrecv){
|
|
util_DiscardMessage();
|
|
logHack(fd,HACK_CHECKSUMERROR);
|
|
//DME();
|
|
return -1;
|
|
}
|
|
sprintf(errraw,"%d|%d|%d|%d",shopflag,piece,shopno,buynum);
|
|
logFengBao(fd,playcdkey,func,errraw);
|
|
//print("\nfunc=%d,raw=%s\n",func,errraw);
|
|
lssproto_SHOPBUY_recv(fd,shopflag,piece,shopno,buynum);
|
|
util_DiscardMessage();
|
|
return 0;
|
|
}
|
|
#endif
|
|
#ifdef _CAX_ESC_FENGBAO
|
|
if (func==LSSPROTO_ESC_RECV) {
|
|
int escindex,checksumrecv;
|
|
int checksum = 0;
|
|
checksum += util_deint(fd,2, &escindex);
|
|
util_deint(fd,3, &checksumrecv);
|
|
if (checksum!=checksumrecv) {
|
|
util_DiscardMessage();
|
|
// DME();
|
|
return -1;
|
|
}
|
|
sprintf(errraw,"%d",escindex);
|
|
logFengBao(fd,playcdkey,func,errraw);
|
|
FreeSamenu("ESC_Recv",escindex,CONNECT_getCharaindex(fd));
|
|
util_DiscardMessage();
|
|
return 0;
|
|
}
|
|
#endif
|
|
printf("\n无法找到客户端接口=%d\n",func);
|
|
|
|
util_DiscardMessage();
|
|
logHack(fd,HACK_NOTDISPATCHED);
|
|
//DME();
|
|
return -1;
|
|
}
|
|
|
|
/*
|
|
servertoclient XYD( int x, int y, int dir );
|
|
*/
|
|
void lssproto_XYD_send(int fd,int x,int y,int dir)
|
|
{
|
|
if(fd<0) return;
|
|
char buffer[1024 * 64];
|
|
int checksum=0;
|
|
|
|
strcpy(buffer,"");
|
|
|
|
CONNECT_getCdkey( fd, PersonalKey, 4096);
|
|
strcat(PersonalKey, getRunningKey());
|
|
|
|
checksum += util_mkint(fd,buffer, x);
|
|
checksum += util_mkint(fd,buffer, y);
|
|
checksum += util_mkint(fd,buffer, dir);
|
|
util_mkint(fd,buffer, checksum);
|
|
util_SendMesg(fd, LSSPROTO_XYD_SEND, buffer);
|
|
}
|
|
|
|
void lssproto_EV_send(int fd,int seqno,int result)
|
|
{
|
|
char buffer[1024 * 64];
|
|
int checksum=0;
|
|
|
|
strcpy(buffer,"");
|
|
|
|
CONNECT_getCdkey( fd, PersonalKey, 4096);
|
|
strcat(PersonalKey, getRunningKey());
|
|
|
|
checksum += util_mkint(fd,buffer, seqno);
|
|
checksum += util_mkint(fd,buffer, result);
|
|
util_mkint(fd,buffer, checksum);
|
|
util_SendMesg(fd, LSSPROTO_EV_SEND, buffer);
|
|
}
|
|
|
|
void lssproto_EN_send(int fd,int result,int field)
|
|
{
|
|
char buffer[1024 * 64];
|
|
int checksum=0;
|
|
|
|
//print(" EN_send ");
|
|
|
|
strcpy(buffer,"");
|
|
|
|
CONNECT_getCdkey( fd, PersonalKey, 4096);
|
|
strcat(PersonalKey, getRunningKey());
|
|
|
|
checksum += util_mkint(fd,buffer, result);
|
|
checksum += util_mkint(fd,buffer, field);
|
|
util_mkint(fd,buffer, checksum);
|
|
util_SendMesg(fd, LSSPROTO_EN_SEND, buffer);
|
|
}
|
|
|
|
|
|
void lssproto_RS_send(int fd,char* data)
|
|
{
|
|
char buffer[1024 * 64];
|
|
int checksum=0;
|
|
|
|
strcpy(buffer,"");
|
|
|
|
CONNECT_getCdkey( fd, PersonalKey, 4096);
|
|
strcat(PersonalKey, getRunningKey());
|
|
|
|
checksum += util_mkstring(fd,buffer, data);
|
|
util_mkint(fd,buffer, checksum);
|
|
util_SendMesg(fd, LSSPROTO_RS_SEND, buffer);
|
|
}
|
|
|
|
|
|
void lssproto_RD_send(int fd,char* data)
|
|
{
|
|
char buffer[1024 * 64];
|
|
int checksum=0;
|
|
|
|
strcpy(buffer,"");
|
|
|
|
CONNECT_getCdkey( fd, PersonalKey, 4096);
|
|
strcat(PersonalKey, getRunningKey());
|
|
|
|
checksum += util_mkstring(fd,buffer, data);
|
|
util_mkint(fd,buffer, checksum);
|
|
util_SendMesg(fd, LSSPROTO_RD_SEND, buffer);
|
|
}
|
|
|
|
void lssproto_B_send(int fd,char* command)
|
|
{
|
|
char buffer[1024 * 64];
|
|
int checksum=0;
|
|
|
|
strcpy(buffer,"");
|
|
|
|
CONNECT_getCdkey( fd, PersonalKey, 4096);
|
|
strcat(PersonalKey, getRunningKey());
|
|
checksum += util_mkstring(fd,buffer, command);
|
|
util_mkint(fd,buffer, checksum);
|
|
util_SendMesg(fd, LSSPROTO_B_SEND, buffer);
|
|
}
|
|
|
|
void lssproto_I_send(int fd,char* data)
|
|
{
|
|
char buffer[1024 * 64];
|
|
int checksum=0;
|
|
|
|
strcpy(buffer,"");
|
|
|
|
CONNECT_getCdkey( fd, PersonalKey, 4096);
|
|
strcat(PersonalKey, getRunningKey());
|
|
|
|
checksum += util_mkstring(fd,buffer, data);
|
|
util_mkint(fd,buffer, checksum);
|
|
util_SendMesg(fd, LSSPROTO_I_SEND, buffer);
|
|
}
|
|
|
|
void lssproto_SI_send(int fd,int fromindex,int toindex)
|
|
{
|
|
char buffer[1024 * 64];
|
|
int checksum=0;
|
|
|
|
strcpy(buffer,"");
|
|
|
|
CONNECT_getCdkey( fd, PersonalKey, 4096);
|
|
strcat(PersonalKey, getRunningKey());
|
|
checksum += util_mkint(fd,buffer, fromindex);
|
|
checksum += util_mkint(fd,buffer, toindex);
|
|
util_mkint(fd,buffer, checksum);
|
|
util_SendMesg(fd, LSSPROTO_SI_SEND, buffer);
|
|
}
|
|
|
|
void lssproto_MSG_send(int fd,int aindex,char* text,int color)
|
|
{
|
|
char buffer[1024 * 64];
|
|
int checksum=0;
|
|
|
|
strcpy(buffer,"");
|
|
|
|
CONNECT_getCdkey( fd, PersonalKey, 4096);
|
|
strcat(PersonalKey, getRunningKey());
|
|
|
|
checksum += util_mkint(fd,buffer, aindex);
|
|
checksum += util_mkstring(fd,buffer, text);
|
|
checksum += util_mkint(fd,buffer, color);
|
|
util_mkint(fd,buffer, checksum);
|
|
util_SendMesg(fd, LSSPROTO_MSG_SEND, buffer);
|
|
}
|
|
|
|
|
|
void lssproto_PME_send(int fd,int objindex,int graphicsno,int x,int y,int dir,int flg,int no,char* cdata)
|
|
{
|
|
char buffer[1024 * 64];
|
|
int checksum=0;
|
|
|
|
strcpy(buffer,"");
|
|
|
|
CONNECT_getCdkey( fd, PersonalKey, 4096);
|
|
strcat(PersonalKey, getRunningKey());
|
|
|
|
checksum += util_mkint(fd,buffer, objindex);
|
|
checksum += util_mkint(fd,buffer, graphicsno);
|
|
checksum += util_mkint(fd,buffer, x);
|
|
checksum += util_mkint(fd,buffer, y);
|
|
checksum += util_mkint(fd,buffer, dir);
|
|
checksum += util_mkint(fd,buffer, flg);
|
|
checksum += util_mkint(fd,buffer, no);
|
|
checksum += util_mkstring(fd,buffer, cdata);
|
|
util_mkint(fd,buffer, checksum);
|
|
util_SendMesg(fd, LSSPROTO_PME_SEND, buffer);
|
|
}
|
|
|
|
|
|
void lssproto_AB_send(int fd,char* data)
|
|
{
|
|
char buffer[1024 * 64];
|
|
int checksum=0;
|
|
|
|
strcpy(buffer,"");
|
|
|
|
CONNECT_getCdkey( fd, PersonalKey, 4096);
|
|
strcat(PersonalKey, getRunningKey());
|
|
|
|
checksum += util_mkstring(fd,buffer, data);
|
|
util_mkint(fd,buffer, checksum);
|
|
util_SendMesg(fd, LSSPROTO_AB_SEND, buffer);
|
|
}
|
|
|
|
|
|
void lssproto_ABI_send(int fd,int num,char* data)
|
|
{
|
|
char buffer[1024 * 64];
|
|
int checksum=0;
|
|
|
|
strcpy(buffer,"");
|
|
|
|
CONNECT_getCdkey( fd, PersonalKey, 4096);
|
|
strcat(PersonalKey, getRunningKey());
|
|
|
|
checksum += util_mkint(fd,buffer, num);
|
|
checksum += util_mkstring(fd,buffer, data);
|
|
util_mkint(fd,buffer, checksum);
|
|
util_SendMesg(fd, LSSPROTO_ABI_SEND, buffer);
|
|
}
|
|
|
|
void lssproto_TK_send(int fd,int index,char* message,int color)
|
|
{
|
|
char buffer[1024 * 64];
|
|
int checksum=0;
|
|
|
|
strcpy(buffer,"");
|
|
|
|
CONNECT_getCdkey( fd, PersonalKey, 4096);
|
|
strcat(PersonalKey, getRunningKey());
|
|
|
|
checksum += util_mkint(fd,buffer, index);
|
|
checksum += util_mkstring(fd,buffer, message);
|
|
checksum += util_mkint(fd,buffer, color);
|
|
util_mkint(fd,buffer, checksum);
|
|
util_SendMesg(fd, LSSPROTO_TK_SEND, buffer);
|
|
}
|
|
|
|
void lssproto_MC_send(int fd,int fl,int x1,int y1,int x2,int y2,int tilesum,int objsum,int eventsum,char* data)
|
|
{
|
|
char buffer[1024 * 64];
|
|
int checksum=0;
|
|
|
|
strcpy(buffer,"");
|
|
|
|
CONNECT_getCdkey( fd, PersonalKey, 4096);
|
|
strcat(PersonalKey, getRunningKey());
|
|
|
|
checksum += util_mkint(fd,buffer, fl);
|
|
checksum += util_mkint(fd,buffer, x1);
|
|
checksum += util_mkint(fd,buffer, y1);
|
|
checksum += util_mkint(fd,buffer, x2);
|
|
checksum += util_mkint(fd,buffer, y2);
|
|
checksum += util_mkint(fd,buffer, tilesum);
|
|
checksum += util_mkint(fd,buffer, objsum);
|
|
checksum += util_mkint(fd,buffer, eventsum);
|
|
checksum += util_mkstring(fd,buffer, data);
|
|
util_mkint(fd,buffer, checksum);
|
|
util_SendMesg(fd, LSSPROTO_MC_SEND, buffer);
|
|
}
|
|
|
|
|
|
void lssproto_M_send(int fd,int fl,int x1,int y1,int x2,int y2,char* data)
|
|
{
|
|
char buffer[1024 * 64];
|
|
int checksum=0;
|
|
|
|
strcpy(buffer,"");
|
|
|
|
CONNECT_getCdkey( fd, PersonalKey, 4096);
|
|
strcat(PersonalKey, getRunningKey());
|
|
|
|
checksum += util_mkint(fd,buffer, fl);
|
|
checksum += util_mkint(fd,buffer, x1);
|
|
checksum += util_mkint(fd,buffer, y1);
|
|
checksum += util_mkint(fd,buffer, x2);
|
|
checksum += util_mkint(fd,buffer, y2);
|
|
checksum += util_mkstring(fd,buffer, data);
|
|
util_mkint(fd,buffer, checksum);
|
|
util_SendMesg(fd, LSSPROTO_M_SEND, buffer);
|
|
}
|
|
|
|
void lssproto_C_send(int fd,char* data)
|
|
{
|
|
#ifdef _WAN_FIX
|
|
if(getVsFlg()==2){
|
|
int charaindex = -1;
|
|
charaindex = CONNECT_getCharaindex( fd );
|
|
if(CHAR_getInt( charaindex, CHAR_WHICHTYPE ) == CHAR_TYPEPLAYER){
|
|
char sendmsg[20];
|
|
sprintf(sendmsg,"%d|%d",CHAR_getInt(charaindex,CHAR_X),CHAR_getInt(charaindex,CHAR_Y));
|
|
if(getStayEncount(fd)==1 && strstr(data,sendmsg)==NULL && CHAR_getWorkInt( charaindex, CHAR_WORKPARTYMODE) == CHAR_PARTY_NONE)
|
|
return;
|
|
}
|
|
}else if(getVsFlg()==1){
|
|
int charaindex = -1;
|
|
charaindex = CONNECT_getCharaindex( fd );
|
|
if(CHAR_getInt( charaindex, CHAR_WHICHTYPE ) == CHAR_TYPEPLAYER){
|
|
char sendmsg[20];
|
|
sprintf(sendmsg,"%d|%d",CHAR_getInt(charaindex,CHAR_X),CHAR_getInt(charaindex,CHAR_Y));
|
|
if(getStayEncount(fd)==1 && strstr(data,sendmsg)==NULL && CHAR_getWorkInt( charaindex, CHAR_WORKPARTYMODE) != CHAR_PARTY_LEADER)
|
|
return;
|
|
if(CHAR_getWorkInt( charaindex, CHAR_WORKPARTYMODE) == CHAR_PARTY_CLIENT){
|
|
int partyindex = CHAR_getWorkInt( charaindex, CHAR_WORKPARTYINDEX1);
|
|
if(CHAR_CHECKINDEX(partyindex)){
|
|
int partyfd = getfdFromCharaIndex( CHAR_getWorkInt( charaindex, CHAR_WORKPARTYINDEX1));
|
|
if(getStayEncount(partyfd)==1)
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
}else if(getVsFlg()==3){
|
|
int charaindex = -1;
|
|
charaindex = CONNECT_getCharaindex( fd );
|
|
if(CHAR_getInt( charaindex, CHAR_WHICHTYPE ) == CHAR_TYPEPLAYER){
|
|
char sendmsg[20];
|
|
sprintf(sendmsg,"%d|%d",CHAR_getInt(charaindex,CHAR_X),CHAR_getInt(charaindex,CHAR_Y));
|
|
if(CHAR_getWorkInt( charaindex, CHAR_WORKPARTYMODE) == CHAR_PARTY_CLIENT){
|
|
int partyindex = CHAR_getWorkInt( charaindex, CHAR_WORKPARTYINDEX1);
|
|
if(CHAR_CHECKINDEX(partyindex)){
|
|
int partyfd = getfdFromCharaIndex( CHAR_getWorkInt( charaindex, CHAR_WORKPARTYINDEX1));
|
|
if(getStayEncount(partyfd)==1)
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
#endif
|
|
char buffer[1024 * 64];
|
|
int checksum=0;
|
|
|
|
strcpy(buffer,"");
|
|
|
|
CONNECT_getCdkey( fd, PersonalKey, 4096);
|
|
strcat(PersonalKey, getRunningKey());
|
|
|
|
checksum += util_mkstring(fd,buffer, data);
|
|
util_mkint(fd,buffer, checksum);
|
|
util_SendMesg(fd, LSSPROTO_C_SEND, buffer);
|
|
}
|
|
|
|
void lssproto_CA_send(int fd,char* data)
|
|
{
|
|
#ifdef _WAN_FIX
|
|
if(getVsFlg()==2){
|
|
int charaindex = -1;
|
|
charaindex = CONNECT_getCharaindex( fd );
|
|
if(CHAR_getInt( charaindex, CHAR_WHICHTYPE ) == CHAR_TYPEPLAYER){
|
|
char sendmsg[20];
|
|
sprintf(sendmsg,"%d|%d",CHAR_getInt(charaindex,CHAR_X),CHAR_getInt(charaindex,CHAR_Y));
|
|
if(getStayEncount(fd)==1 && strstr(data,sendmsg)==NULL && CHAR_getWorkInt( charaindex, CHAR_WORKPARTYMODE) == CHAR_PARTY_NONE)
|
|
return;
|
|
}
|
|
}else if(getVsFlg()==1){
|
|
int charaindex = -1;
|
|
charaindex = CONNECT_getCharaindex( fd );
|
|
if(CHAR_getInt( charaindex, CHAR_WHICHTYPE ) == CHAR_TYPEPLAYER){
|
|
char sendmsg[20];
|
|
sprintf(sendmsg,"%d|%d",CHAR_getInt(charaindex,CHAR_X),CHAR_getInt(charaindex,CHAR_Y));
|
|
if(getStayEncount(fd)==1 && strstr(data,sendmsg)==NULL && CHAR_getWorkInt( charaindex, CHAR_WORKPARTYMODE) != CHAR_PARTY_LEADER)
|
|
return;
|
|
if(CHAR_getWorkInt( charaindex, CHAR_WORKPARTYMODE) == CHAR_PARTY_CLIENT){
|
|
int partyindex = CHAR_getWorkInt( charaindex, CHAR_WORKPARTYINDEX1);
|
|
if(CHAR_CHECKINDEX(partyindex)){
|
|
int partyfd = getfdFromCharaIndex( CHAR_getWorkInt( charaindex, CHAR_WORKPARTYINDEX1));
|
|
if(getStayEncount(partyfd)==1)
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
}else if(getVsFlg()==3){
|
|
int charaindex = -1;
|
|
charaindex = CONNECT_getCharaindex( fd );
|
|
if(CHAR_getInt( charaindex, CHAR_WHICHTYPE ) == CHAR_TYPEPLAYER){
|
|
char sendmsg[20];
|
|
sprintf(sendmsg,"%d|%d",CHAR_getInt(charaindex,CHAR_X),CHAR_getInt(charaindex,CHAR_Y));
|
|
if(CHAR_getWorkInt( charaindex, CHAR_WORKPARTYMODE) == CHAR_PARTY_CLIENT){
|
|
int partyindex = CHAR_getWorkInt( charaindex, CHAR_WORKPARTYINDEX1);
|
|
if(CHAR_CHECKINDEX(partyindex)){
|
|
int partyfd = getfdFromCharaIndex( CHAR_getWorkInt( charaindex, CHAR_WORKPARTYINDEX1));
|
|
if(getStayEncount(partyfd)==1)
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
#endif
|
|
char buffer[1024 * 64];
|
|
int checksum=0;
|
|
|
|
strcpy(buffer,"");
|
|
|
|
CONNECT_getCdkey( fd, PersonalKey, 4096);
|
|
strcat(PersonalKey, getRunningKey());
|
|
|
|
checksum += util_mkstring(fd,buffer, data);
|
|
util_mkint(fd,buffer, checksum);
|
|
util_SendMesg(fd, LSSPROTO_CA_SEND, buffer);
|
|
}
|
|
|
|
void lssproto_CD_send(int fd,char* data)
|
|
{
|
|
char buffer[1024 * 64];
|
|
int checksum=0;
|
|
|
|
strcpy(buffer,"");
|
|
|
|
CONNECT_getCdkey( fd, PersonalKey, 4096);
|
|
strcat(PersonalKey, getRunningKey());
|
|
|
|
checksum += util_mkstring(fd,buffer, data);
|
|
util_mkint(fd,buffer, checksum);
|
|
util_SendMesg(fd, LSSPROTO_CD_SEND, buffer);
|
|
}
|
|
|
|
void lssproto_R_send(int fd,char* data)
|
|
{
|
|
char buffer[1024 * 64];
|
|
int checksum=0;
|
|
|
|
strcpy(buffer,"");
|
|
|
|
CONNECT_getCdkey( fd, PersonalKey, 4096);
|
|
strcat(PersonalKey, getRunningKey());
|
|
|
|
checksum += util_mkstring(fd,buffer, data);
|
|
util_mkint(fd,buffer, checksum);
|
|
util_SendMesg(fd, LSSPROTO_R_SEND, buffer);
|
|
}
|
|
|
|
void lssproto_S_send(int fd,char* data)
|
|
{
|
|
char buffer[1024 * 64];
|
|
int checksum=0;
|
|
|
|
strcpy(buffer,"");
|
|
|
|
CONNECT_getCdkey( fd, PersonalKey, 4096);
|
|
strcat(PersonalKey, getRunningKey());
|
|
|
|
checksum += util_mkstring(fd,buffer, data);
|
|
util_mkint(fd,buffer, checksum);
|
|
util_SendMesg(fd, LSSPROTO_S_SEND, buffer);
|
|
}
|
|
|
|
void lssproto_D_send(int fd,int category,int dx,int dy,char* data)
|
|
{
|
|
char buffer[1024 * 64];
|
|
int checksum=0;
|
|
|
|
strcpy(buffer,"");
|
|
|
|
CONNECT_getCdkey( fd, PersonalKey, 4096);
|
|
strcat(PersonalKey, getRunningKey());
|
|
|
|
checksum += util_mkint(fd,buffer, category);
|
|
checksum += util_mkint(fd,buffer, dx);
|
|
checksum += util_mkint(fd,buffer, dy);
|
|
checksum += util_mkstring(fd,buffer, data);
|
|
util_mkint(fd,buffer, checksum);
|
|
util_SendMesg(fd, LSSPROTO_D_SEND, buffer);
|
|
}
|
|
|
|
void lssproto_FS_send(int fd,int flg)
|
|
{
|
|
char buffer[1024 * 64];
|
|
int checksum=0;
|
|
|
|
strcpy(buffer,"");
|
|
|
|
CONNECT_getCdkey( fd, PersonalKey, 4096);
|
|
strcat(PersonalKey, getRunningKey());
|
|
|
|
checksum += util_mkint(fd,buffer, flg);
|
|
util_mkint(fd,buffer, checksum);
|
|
util_SendMesg(fd, LSSPROTO_FS_SEND, buffer);
|
|
}
|
|
|
|
void lssproto_HL_send(int fd,int flg)
|
|
{
|
|
char buffer[1024 * 64];
|
|
int checksum=0;
|
|
|
|
strcpy(buffer,"");
|
|
|
|
CONNECT_getCdkey( fd, PersonalKey, 4096);
|
|
strcat(PersonalKey, getRunningKey());
|
|
|
|
checksum += util_mkint(fd,buffer, flg);
|
|
util_mkint(fd,buffer, checksum);
|
|
util_SendMesg(fd, LSSPROTO_HL_SEND, buffer);
|
|
}
|
|
|
|
void lssproto_PR_send(int fd,int request,int result)
|
|
{
|
|
char buffer[1024 * 64];
|
|
int checksum=0;
|
|
|
|
strcpy(buffer,"");
|
|
|
|
CONNECT_getCdkey( fd, PersonalKey, 4096);
|
|
strcat(PersonalKey, getRunningKey());
|
|
|
|
checksum += util_mkint(fd,buffer, request);
|
|
checksum += util_mkint(fd,buffer, result);
|
|
util_mkint(fd,buffer, checksum);
|
|
util_SendMesg(fd, LSSPROTO_PR_SEND, buffer);
|
|
}
|
|
|
|
#ifdef _PETS_SELECTCON
|
|
void lssproto_PETS_send(int fd,int petarray,int result)
|
|
{
|
|
char buffer[1024 * 64];
|
|
int checksum=0;
|
|
|
|
strcpy(buffer,"");
|
|
|
|
CONNECT_getCdkey( fd, PersonalKey, 4096);
|
|
strcat(PersonalKey, getRunningKey());
|
|
|
|
checksum += util_mkint(fd,buffer, petarray);
|
|
checksum += util_mkint(fd,buffer, result);
|
|
util_mkint(fd,buffer, checksum);
|
|
util_SendMesg(fd, LSSPROTO_PETST_SEND, buffer);
|
|
}
|
|
#endif
|
|
|
|
void lssproto_KS_send(int fd,int petarray,int result)
|
|
{
|
|
char buffer[1024 * 64];
|
|
int checksum=0;
|
|
|
|
strcpy(buffer,"");
|
|
|
|
CONNECT_getCdkey( fd, PersonalKey, 4096);
|
|
strcat(PersonalKey, getRunningKey());
|
|
|
|
checksum += util_mkint(fd,buffer, petarray);
|
|
checksum += util_mkint(fd,buffer, result);
|
|
util_mkint(fd,buffer, checksum);
|
|
util_SendMesg(fd, LSSPROTO_KS_SEND, buffer);
|
|
}
|
|
|
|
void lssproto_SPET_send(int fd, int standbypet, int result)
|
|
{
|
|
char buffer[1024 * 64];
|
|
int checksum=0;
|
|
|
|
strcpy(buffer,"");
|
|
|
|
CONNECT_getCdkey( fd, PersonalKey, 4096);
|
|
strcat(PersonalKey, getRunningKey());
|
|
|
|
checksum += util_mkint(fd,buffer, standbypet);
|
|
checksum += util_mkint(fd,buffer, result);
|
|
util_mkint(fd,buffer, checksum);
|
|
util_SendMesg(fd, LSSPROTO_SPET_SEND, buffer);
|
|
}
|
|
|
|
void lssproto_PS_send(int fd,int result,int havepetindex,int havepetskill,int toindex)
|
|
{
|
|
char buffer[1024 * 64];
|
|
int checksum=0;
|
|
|
|
strcpy(buffer,"");
|
|
|
|
CONNECT_getCdkey( fd, PersonalKey, 4096);
|
|
strcat(PersonalKey, getRunningKey());
|
|
|
|
checksum += util_mkint(fd,buffer, result);
|
|
checksum += util_mkint(fd,buffer, havepetindex);
|
|
checksum += util_mkint(fd,buffer, havepetskill);
|
|
checksum += util_mkint(fd,buffer, toindex);
|
|
util_mkint(fd,buffer, checksum);
|
|
util_SendMesg(fd, LSSPROTO_PS_SEND, buffer);
|
|
}
|
|
|
|
void lssproto_SKUP_send(int fd,int point)
|
|
{
|
|
char buffer[1024 * 64];
|
|
int checksum=0;
|
|
|
|
strcpy(buffer,"");
|
|
|
|
CONNECT_getCdkey( fd, PersonalKey, 4096);
|
|
strcat(PersonalKey, getRunningKey());
|
|
|
|
checksum += util_mkint(fd,buffer, point);
|
|
util_mkint(fd,buffer, checksum);
|
|
util_SendMesg(fd, LSSPROTO_SKUP_SEND, buffer);
|
|
}
|
|
void lssproto_WN_send(int fd,int windowtype,int buttontype,int seqno,int objindex,char* data)
|
|
{
|
|
char buffer[1024 * 64];
|
|
int checksum=0;
|
|
#ifdef _NO_WARP
|
|
// shan hanjj add Begin
|
|
CONNECT_set_seqno(fd,seqno);
|
|
CONNECT_set_selectbutton(fd,buttontype);
|
|
// shan End
|
|
#endif
|
|
|
|
strcpy(buffer,"");
|
|
|
|
CONNECT_getCdkey( fd, PersonalKey, 4096);
|
|
strcat(PersonalKey, getRunningKey());
|
|
|
|
checksum += util_mkint(fd,buffer, windowtype);
|
|
checksum += util_mkint(fd,buffer, buttontype);
|
|
checksum += util_mkint(fd,buffer, seqno);
|
|
checksum += util_mkint(fd,buffer, objindex);
|
|
checksum += util_mkstring(fd,buffer, data);
|
|
util_mkint(fd,buffer, checksum);
|
|
util_SendMesg(fd, LSSPROTO_WN_SEND, buffer);
|
|
|
|
}
|
|
|
|
void lssproto_EF_send(int fd,int effect,int level,char* option)
|
|
{
|
|
char buffer[1024 * 64];
|
|
int checksum=0;
|
|
|
|
strcpy(buffer,"");
|
|
|
|
CONNECT_getCdkey( fd, PersonalKey, 4096);
|
|
strcat(PersonalKey, getRunningKey());
|
|
|
|
checksum += util_mkint(fd,buffer, effect);
|
|
checksum += util_mkint(fd,buffer, level);
|
|
checksum += util_mkstring(fd,buffer, option);
|
|
util_mkint(fd,buffer, checksum);
|
|
util_SendMesg(fd, LSSPROTO_EF_SEND, buffer);
|
|
}
|
|
void lssproto_SE_send(int fd,int x,int y,int senumber,int sw)
|
|
{
|
|
char buffer[1024 * 64];
|
|
int checksum=0;
|
|
|
|
strcpy(buffer,"");
|
|
|
|
CONNECT_getCdkey( fd, PersonalKey, 4096);
|
|
strcat(PersonalKey, getRunningKey());
|
|
|
|
checksum += util_mkint(fd,buffer, x);
|
|
checksum += util_mkint(fd,buffer, y);
|
|
checksum += util_mkint(fd,buffer, senumber);
|
|
checksum += util_mkint(fd,buffer, sw);
|
|
util_mkint(fd,buffer, checksum);
|
|
util_SendMesg(fd, LSSPROTO_SE_SEND, buffer);
|
|
}
|
|
|
|
void lssproto_ClientLogin_send(int fd,char* result)
|
|
{
|
|
char buffer[1024 * 64];
|
|
int checksum=0;
|
|
|
|
strcpy(buffer,"");
|
|
|
|
CONNECT_getCdkey( fd, PersonalKey, 4096);
|
|
strcat(PersonalKey, getRunningKey());
|
|
checksum += util_mkstring(fd,buffer, result);
|
|
util_mkint(fd,buffer, checksum);
|
|
util_SendMesg(fd, LSSPROTO_CLIENTLOGIN_SEND, buffer);
|
|
}
|
|
|
|
void lssproto_CreateNewChar_send(int fd,char* result,char* data)
|
|
{
|
|
char buffer[1024 * 64];
|
|
int checksum=0;
|
|
|
|
strcpy(buffer,"");
|
|
|
|
CONNECT_getCdkey( fd, PersonalKey, 4096);
|
|
strcat(PersonalKey, getRunningKey());
|
|
|
|
checksum += util_mkstring(fd,buffer, result);
|
|
checksum += util_mkstring(fd,buffer, data);
|
|
util_mkint(fd,buffer, checksum);
|
|
util_SendMesg(fd, LSSPROTO_CREATENEWCHAR_SEND, buffer);
|
|
}
|
|
|
|
void lssproto_CharDelete_send(int fd,char* result,char* data)
|
|
{
|
|
char buffer[1024 * 64];
|
|
int checksum=0;
|
|
|
|
strcpy(buffer,"");
|
|
|
|
CONNECT_getCdkey( fd, PersonalKey, 4096);
|
|
strcat(PersonalKey, getRunningKey());
|
|
|
|
checksum += util_mkstring(fd,buffer, result);
|
|
checksum += util_mkstring(fd,buffer, data);
|
|
util_mkint(fd,buffer, checksum);
|
|
util_SendMesg(fd, LSSPROTO_CHARDELETE_SEND, buffer);
|
|
}
|
|
|
|
void lssproto_CharLogin_send(int fd,char* result,char* data)
|
|
{
|
|
char buffer[1024 * 64];
|
|
int checksum=0;
|
|
|
|
strcpy(buffer,"");
|
|
|
|
CONNECT_getCdkey( fd, PersonalKey, 4096);
|
|
strcat(PersonalKey, getRunningKey());
|
|
|
|
checksum += util_mkstring(fd,buffer, result);
|
|
checksum += util_mkstring(fd,buffer, data);
|
|
util_mkint(fd,buffer, checksum);
|
|
util_SendMesg(fd, LSSPROTO_CHARLOGIN_SEND, buffer);
|
|
}
|
|
|
|
void lssproto_CharList_send(int fd,char* result,char* data)
|
|
{
|
|
char buffer[1024 * 64];
|
|
int checksum=0;
|
|
|
|
strcpy(buffer,"");
|
|
|
|
CONNECT_getCdkey( fd, PersonalKey, 4096);
|
|
strcat(PersonalKey, getRunningKey());
|
|
|
|
checksum += util_mkstring(fd,buffer, result);
|
|
checksum += util_mkstring(fd,buffer, data);
|
|
util_mkint(fd,buffer, checksum);
|
|
util_SendMesg(fd, LSSPROTO_CHARLIST_SEND, buffer);
|
|
}
|
|
|
|
void lssproto_CharLogout_send(int fd,char* result,char* data)
|
|
{
|
|
char buffer[1024 * 64];
|
|
int checksum=0;
|
|
|
|
strcpy(buffer,"");
|
|
|
|
CONNECT_getCdkey( fd, PersonalKey, 4096);
|
|
strcat(PersonalKey, getRunningKey());
|
|
|
|
checksum += util_mkstring(fd,buffer, result);
|
|
checksum += util_mkstring(fd,buffer, data);
|
|
util_mkint(fd,buffer, checksum);
|
|
util_SendMesg(fd, LSSPROTO_CHARLOGOUT_SEND, buffer);
|
|
}
|
|
|
|
void lssproto_ProcGet_send(int fd,char* data)
|
|
{
|
|
char buffer[1024 * 64];
|
|
int checksum=0;
|
|
|
|
strcpy(buffer,"");
|
|
|
|
CONNECT_getCdkey( fd, PersonalKey, 4096);
|
|
strcat(PersonalKey, getRunningKey());
|
|
|
|
checksum += util_mkstring(fd,buffer, data);
|
|
|
|
util_mkint(fd,buffer, checksum);
|
|
util_SendMesg(fd, LSSPROTO_PROCGET_SEND, buffer);
|
|
}
|
|
|
|
void lssproto_PlayerNumGet_send(int fd,int logincount,int player)
|
|
{
|
|
char buffer[1024 * 64];
|
|
int checksum=0;
|
|
|
|
strcpy(buffer,"");
|
|
|
|
CONNECT_getCdkey( fd, PersonalKey, 4096);
|
|
strcat(PersonalKey, getRunningKey());
|
|
|
|
checksum += util_mkint(fd,buffer, logincount);
|
|
checksum += util_mkint(fd,buffer, player);
|
|
util_mkint(fd,buffer, checksum);
|
|
util_SendMesg(fd, LSSPROTO_PLAYERNUMGET_SEND, buffer);
|
|
}
|
|
|
|
void lssproto_Echo_send(int fd,char* test)
|
|
{
|
|
char buffer[1024 * 64];
|
|
int checksum=0;
|
|
|
|
strcpy(buffer,"");
|
|
|
|
CONNECT_getCdkey( fd, PersonalKey, 4096);
|
|
strcat(PersonalKey, getRunningKey());
|
|
|
|
checksum += util_mkstring(fd,buffer, test);
|
|
util_mkint(fd,buffer, checksum);
|
|
util_SendMesg(fd, LSSPROTO_ECHO_SEND, buffer);
|
|
}
|
|
|
|
// CoolFish: Trade 2001/4/18
|
|
|
|
void lssproto_TD_send(int fd, int index, char* message)
|
|
{
|
|
char buffer[1024 * 64];
|
|
int checksum=0;
|
|
|
|
strcpy(buffer,"");
|
|
|
|
CONNECT_getCdkey( fd, PersonalKey, 4096);
|
|
strcat(PersonalKey, getRunningKey());
|
|
|
|
checksum += util_mkstring(fd,buffer, message);
|
|
util_mkint(fd,buffer, checksum);
|
|
util_SendMesg(fd, LSSPROTO_TD_SEND, buffer);
|
|
}
|
|
#ifdef _CHATROOMPROTOCOL // (不可开) Syu ADD 聊天室频道
|
|
void lssproto_CHATROOM_send ( int fd , char* message )
|
|
{
|
|
char buffer[1024 * 64];
|
|
int checksum=0;
|
|
|
|
strcpy(buffer,"");
|
|
|
|
CONNECT_getCdkey( fd, PersonalKey, 4096);
|
|
strcat(PersonalKey, getRunningKey());
|
|
|
|
checksum += util_mkstring(fd,buffer, message);
|
|
util_mkint(fd,buffer, checksum);
|
|
util_SendMesg(fd, LSSPROTO_CHATROOM_SEND, buffer);
|
|
}
|
|
#endif
|
|
#ifdef _NEWREQUESTPROTOCOL // (不可开) Syu ADD 新增Protocol要求细项
|
|
void lssproto_RESIST_send ( int fd , char* message )
|
|
{
|
|
char buffer[1024 * 64];
|
|
int checksum=0;
|
|
|
|
strcpy(buffer,"");
|
|
|
|
CONNECT_getCdkey( fd, PersonalKey, 4096);
|
|
strcat(PersonalKey, getRunningKey());
|
|
|
|
checksum += util_mkstring(fd,buffer, message);
|
|
util_mkint(fd,buffer, checksum);
|
|
util_SendMesg(fd, LSSPROTO_RESIST_SEND, buffer);
|
|
}
|
|
#endif
|
|
#ifdef _OUTOFBATTLESKILL // (不可开) Syu ADD 非战斗时技能Protocol
|
|
void lssproto_BATTLESKILL_send ( int fd , char* message )
|
|
{
|
|
char buffer[1024 * 64];
|
|
int checksum=0;
|
|
|
|
strcpy(buffer,"");
|
|
|
|
CONNECT_getCdkey( fd, PersonalKey, 4096);
|
|
strcat(PersonalKey, getRunningKey());
|
|
|
|
checksum += util_mkstring(fd,buffer, message);
|
|
util_mkint(fd,buffer, checksum);
|
|
util_SendMesg(fd, LSSPROTO_BATTLESKILL_SEND, buffer);
|
|
}
|
|
#endif
|
|
void lssproto_NU_send(int fd, int nu)
|
|
{
|
|
char buffer[1024 * 64];
|
|
int checksum=0;
|
|
|
|
strcpy(buffer,"");
|
|
|
|
CONNECT_getCdkey( fd, PersonalKey, 4096);
|
|
strcat(PersonalKey, getRunningKey());
|
|
|
|
checksum += util_mkint(fd,buffer, nu);
|
|
util_mkint(fd,buffer, checksum);
|
|
util_SendMesg(fd, LSSPROTO_NU_SEND, buffer);
|
|
}
|
|
|
|
|
|
void lssproto_FM_send(int fd, char* message)
|
|
{
|
|
char buffer[1024 * 64];
|
|
int checksum=0;
|
|
|
|
strcpy(buffer,"");
|
|
|
|
CONNECT_getCdkey( fd, PersonalKey, 4096);
|
|
strcat(PersonalKey, getRunningKey());
|
|
|
|
checksum += util_mkstring(fd,buffer, message);
|
|
util_mkint(fd,buffer, checksum);
|
|
util_SendMesg(fd, LSSPROTO_FM_SEND, buffer);
|
|
}
|
|
|
|
|
|
void lssproto_WO_send(int fd,int effect)
|
|
{
|
|
char buffer[1024 * 64];
|
|
int checksum=0;
|
|
|
|
strcpy(buffer,"");
|
|
|
|
CONNECT_getCdkey( fd, PersonalKey, 4096);
|
|
strcat(PersonalKey, getRunningKey());
|
|
|
|
checksum += util_mkint(fd,buffer, effect);
|
|
util_mkint(fd,buffer, checksum);
|
|
util_SendMesg(fd, LSSPROTO_WO_SEND, buffer);
|
|
}
|
|
#ifdef _ITEM_CRACKER
|
|
void lssproto_IC_send(int fd, int x, int y)
|
|
{
|
|
char buffer[1024 * 64];
|
|
int checksum=0;
|
|
|
|
strcpy(buffer,"");
|
|
|
|
CONNECT_getCdkey( fd, PersonalKey, 4096);
|
|
strcat(PersonalKey, getRunningKey());
|
|
|
|
checksum += util_mkint(fd,buffer, x);
|
|
checksum += util_mkint(fd,buffer, y);
|
|
util_mkint(fd,buffer, checksum);
|
|
util_SendMesg(fd, LSSPROTO_IC_SEND, buffer);
|
|
}
|
|
#endif
|
|
#ifdef _MAGIC_NOCAST // 精灵:沉默
|
|
void lssproto_NC_send(int fd,int flg)
|
|
{
|
|
if(fd<0) return;
|
|
char buffer[1024 * 64];
|
|
int checksum=0;
|
|
|
|
strcpy(buffer,"");
|
|
|
|
CONNECT_getCdkey( fd, PersonalKey, 4096);
|
|
strcat(PersonalKey, getRunningKey());
|
|
|
|
checksum += util_mkint(fd,buffer, flg);
|
|
util_mkint(fd,buffer, checksum);
|
|
util_SendMesg(fd, LSSPROTO_NC_SEND, buffer);
|
|
}
|
|
#endif
|
|
|
|
#ifdef _STREET_VENDOR
|
|
void lssproto_STREET_VENDOR_send(int fd,char *message)
|
|
{
|
|
char buffer[1024 * 64];
|
|
int checksum = 0;
|
|
|
|
strcpy(buffer,"");
|
|
|
|
CONNECT_getCdkey(fd,PersonalKey,4096);
|
|
strcat(PersonalKey,getRunningKey());
|
|
|
|
checksum += util_mkstring(fd,buffer,message);
|
|
util_mkint(fd,buffer,checksum);
|
|
util_SendMesg(fd,LSSPROTO_STREET_VENDOR_SEND,buffer);
|
|
}
|
|
#endif
|
|
|
|
#ifdef _RIGHTCLICK
|
|
void lssproto_RCLICK_send(int fd, int type, char* data)
|
|
{
|
|
char buffer[1024 * 64];
|
|
int checksum=0;
|
|
|
|
print("\n RCLICK_send( type=%d data=%s) ", type, data );
|
|
|
|
strcpy(buffer,"");
|
|
|
|
CONNECT_getCdkey( fd, PersonalKey, 4096);
|
|
strcat(PersonalKey, getRunningKey());
|
|
|
|
checksum += util_mkint(fd,buffer, type);
|
|
checksum += util_mkstring(fd,buffer, data);
|
|
util_mkint(fd,buffer, checksum);
|
|
util_SendMesg(fd, LSSPROTO_RCLICK_SEND, buffer);
|
|
}
|
|
#endif
|
|
|
|
#ifdef _JOBDAILY
|
|
void lssproto_JOBDAILY_send(int fd,char *data)
|
|
{
|
|
char buffer[1024 * 32];
|
|
int checksum = 0;
|
|
|
|
strcpy(buffer,"");
|
|
|
|
CONNECT_getCdkey(fd,PersonalKey,4096);
|
|
strcat(PersonalKey,getRunningKey());
|
|
|
|
checksum += util_mkstring(fd,buffer,data);
|
|
util_mkint(fd,buffer,checksum);
|
|
util_SendMesg(fd,LSSPROTO_JOBDAILY_SEND,buffer);
|
|
}
|
|
#endif
|
|
|
|
#ifdef _TEACHER_SYSTEM
|
|
void lssproto_TEACHER_SYSTEM_send(int fd,char *data)
|
|
{
|
|
char buffer[1024 * 64];
|
|
int checksum = 0;
|
|
|
|
strcpy(buffer,"");
|
|
|
|
CONNECT_getCdkey(fd,PersonalKey,4096);
|
|
strcat(PersonalKey,getRunningKey());
|
|
|
|
checksum += util_mkstring(fd,buffer,data);
|
|
util_mkint(fd,buffer,checksum);
|
|
util_SendMesg(fd,LSSPROTO_TEACHER_SYSTEM_SEND,buffer);
|
|
}
|
|
#endif
|
|
|
|
#ifdef _ADD_STATUS_2
|
|
void lssproto_S2_send(int fd,char* data)
|
|
{
|
|
char buffer[1024 * 64];
|
|
int checksum=0;
|
|
|
|
strcpy(buffer,"");
|
|
|
|
CONNECT_getCdkey( fd, PersonalKey, 4096);
|
|
strcat(PersonalKey, getRunningKey());
|
|
|
|
checksum += util_mkstring(fd,buffer, data);
|
|
util_mkint(fd,buffer, checksum);
|
|
util_SendMesg(fd, LSSPROTO_S2_SEND, buffer);
|
|
}
|
|
#endif
|
|
|
|
#ifdef _ONLINE_SHOP
|
|
void lssproto_SHOP_send(int fd,int shopnum,int vippoint,int piece,int pieces,int shopflag,char* res)
|
|
{
|
|
char buffer[1024 * 64];
|
|
int checksum=0;
|
|
|
|
strcpy(buffer,"");
|
|
|
|
CONNECT_getCdkey( fd, PersonalKey, 4096);
|
|
strcat(PersonalKey, getRunningKey());
|
|
|
|
checksum += util_mkint(fd,buffer, shopnum);
|
|
checksum += util_mkint(fd,buffer, vippoint);
|
|
checksum += util_mkint(fd,buffer, piece);
|
|
checksum += util_mkint(fd,buffer, pieces);
|
|
checksum += util_mkint(fd,buffer, shopflag);
|
|
checksum += util_mkstring(fd,buffer, res);
|
|
util_mkint(fd,buffer, checksum);
|
|
util_SendMesg(fd, LSSPROTO_SHOP_SEND, buffer);
|
|
}
|
|
#endif
|
|
|
|
void lssproto_Upmap_send(int fd,int formmap,int tomap)
|
|
{
|
|
char buffer[1024 * 64];
|
|
int checksum=0;
|
|
fd = getfdFromCharaIndex(fd);
|
|
strcpy(buffer,"");
|
|
checksum+=util_mkint(fd,buffer, formmap);
|
|
checksum+=util_mkint(fd,buffer, tomap);
|
|
util_mkint(fd,buffer, checksum);
|
|
util_SendMesg(fd, LSSPROTO_UPMAP, buffer);
|
|
}
|
|
|
|
#ifdef _CAX_DENGON_GG
|
|
void lssproto_DENGON_send(int fd, char *data, int color, int num)
|
|
{
|
|
if( CONNECT_checkfd(fd) == FALSE )return;
|
|
#ifdef _DEBUG_SEND_CLI
|
|
printf("[发送]lssproto_DENGON_send-data:%s,%d,%d\n", data, color, num);
|
|
#endif
|
|
char buffer[65500];
|
|
int checksum=0;
|
|
|
|
strcpy(buffer,"");
|
|
|
|
CONNECT_getCdkey( fd, PersonalKey, 4096);
|
|
strcat(PersonalKey, getRunningKey());
|
|
|
|
checksum += util_mkstring(fd,buffer, data);
|
|
checksum += util_mkint(fd,buffer, color);
|
|
checksum += util_mkint(fd,buffer, num);
|
|
util_mkint(fd,buffer, checksum);
|
|
util_SendMesg(fd, LSSPROTO_DENGON_SEND, buffer);
|
|
}
|
|
#endif
|