?? chatmagic.c
字號:
int i; getStringFromIndexWithDelim( message, " ", 1, token_flag, sizeof( token)); ret1 = getStringFromIndexWithDelim( message, " ", 2, token_cdkey, sizeof( token_cdkey)); ret2 = getStringFromIndexWithDelim( message, " ", 3, token_name, sizeof( token_name)); shiftbit = atoi(token_flag); eventno = atoi(token_flag); if( shiftbit!=-1 && ret1==FALSE && ret2==FALSE ){ charaindex_tmp = charaindex; find=TRUE; }else{ if( shiftbit==-1 || strlen(token_cdkey)==0 || strlen(token_name)==0 ){ sprintf( token, "%s", "參數不正確。正確格式:[eventsetend 任務旗標 帳號 人物名稱]"); CHAR_talkToCli( charaindex, -1, token, CHAR_COLORWHITE); return; } max_user = getFdnum(); for( i=0; i<max_user; i++){ char szName[256]; int i_use; i_use = CONNECT_getUse( i); if( i_use){ CONNECT_getCdkey( i, cdkey, sizeof( cdkey)); CONNECT_getCharname( i, szName, sizeof( szName)); if( strcmp( cdkey, token_cdkey)==0 && strcmp( szName, token_name)==0){ charaindex_tmp = CONNECT_getCharaindex( i); find=TRUE; } } } } if( strcmp(token_flag, "all")==0 && find ){ CHAR_setInt( charaindex_tmp, CHAR_ENDEVENT, 0); CHAR_setInt( charaindex_tmp, CHAR_ENDEVENT2, 0); CHAR_setInt( charaindex_tmp, CHAR_ENDEVENT3, 0);#ifdef _NEWEVENT CHAR_setInt( charaindex_tmp, CHAR_ENDEVENT4, 0); CHAR_setInt( charaindex_tmp, CHAR_ENDEVENT5, 0); CHAR_setInt( charaindex_tmp, CHAR_ENDEVENT6, 0);#endif CHAR_setInt( charaindex_tmp, CHAR_NOWEVENT, 0); CHAR_setInt( charaindex_tmp, CHAR_NOWEVENT2, 0); CHAR_setInt( charaindex_tmp, CHAR_NOWEVENT3, 0);#ifdef _NEWEVENT CHAR_setInt( charaindex_tmp, CHAR_NOWEVENT4, 0); CHAR_setInt( charaindex_tmp, CHAR_NOWEVENT5, 0); CHAR_setInt( charaindex_tmp, CHAR_NOWEVENT6, 0);#endif#ifdef _ADD_NEWEVENT // WON 多增任務旗標 CHAR_setInt( charaindex_tmp, CHAR_ENDEVENT7, 0); CHAR_setInt( charaindex_tmp, CHAR_NOWEVENT7, 0); CHAR_setInt( charaindex_tmp, CHAR_ENDEVENT8, 0); CHAR_setInt( charaindex_tmp, CHAR_NOWEVENT8, 0);#endif sprintf( token, "削除全部的事件旗。" ); CHAR_talkToCli( charaindex, -1,token, CHAR_COLORWHITE); return ; } if(find){ array = shiftbit / 32; shift = shiftbit % 32; if( array>=event_num ){ sprintf( token, "錯誤!!你所設的任務旗標編號已超過 圍(0~%d)。",32*event_num-1); CHAR_talkToCli( charaindex, -1, token, CHAR_COLORWHITE); return; } point = CHAR_getInt( charaindex_tmp, CHAR_ENDEVENT+array); point = point & ~(1<<shift); CHAR_setInt( charaindex_tmp, CHAR_ENDEVENT+array, point); point = CHAR_getInt( charaindex_tmp, CHAR_NOWEVENT+array); point = point & ~(1<<shift); CHAR_setInt( charaindex_tmp, CHAR_NOWEVENT+array, point); sprintf( token, "Success!! Character Name:%s delete eventflag:[%d].", CHAR_getChar( charaindex_tmp, CHAR_NAME), eventno); CHAR_talkToCli( charaindex, -1, token, CHAR_COLORWHITE); // display if( charaindex_tmp==charaindex ) sprintf( token, "%s", ""); else sprintf( token, "%s %s", token_cdkey, token_name); //CHAR_CHAT_DEBUG_watchevent( charaindex, token ); }else{ sprintf( token,"%s\n","失敗!!帳號與人物名稱無法相符。"); CHAR_talkToCli(charaindex, -1, token, CHAR_COLORWHITE); } }// shan 2001/12/15 End// shan 2001/12/18 Begin 由於改變過多,故將原先的function注掉void CHAR_CHAT_DEBUG_eventsetnow( int charaindex, char* message ){#ifdef _ADD_NEWEVENT // WON 多增任務旗標 int event_num = 8;#else int event_num = 6;#endif int point; int shiftbit; int eventno=0; char token[1024]; int array; int shift; char token_cdkey[256]="", token_name[256]="", cdkey[CDKEYLEN]; unsigned int max_user = 0; BOOL find = FALSE; BOOL ret1, ret2; int charaindex_tmp = 0; int i; getStringFromIndexWithDelim( message, " ", 1, token, sizeof( token)); ret1 = getStringFromIndexWithDelim( message, " ", 2, token_cdkey, sizeof( token_cdkey)); ret2 = getStringFromIndexWithDelim( message, " ", 3, token_name, sizeof( token_name)); shiftbit = atoi(token); eventno = atoi(token); if( shiftbit!=-1 && ret1==FALSE && ret2==FALSE ){ charaindex_tmp = charaindex; find=TRUE; } else{ if( shiftbit==-1 || strlen(token_cdkey)==0 || strlen(token_name)==0 ){ sprintf( token, "%s", "參數不正確。正確格式:[eventsetend 任務旗標 帳號 人物名稱]"); CHAR_talkToCli( charaindex, -1, token, CHAR_COLORWHITE); return; } max_user = getFdnum(); for( i=0; i<max_user; i++){ char szName[256]; int i_use; i_use = CONNECT_getUse( i); if( i_use){ CONNECT_getCdkey( i, cdkey, sizeof( cdkey)); CONNECT_getCharname( i, szName, sizeof( szName)); if( strcmp( cdkey, token_cdkey)==0 && strcmp( szName, token_name)==0){ charaindex_tmp = CONNECT_getCharaindex( i); find=TRUE; } } } } if( strcmp(token, "all")==0 && find ){ CHAR_setInt( charaindex_tmp, CHAR_NOWEVENT, -1); CHAR_setInt( charaindex_tmp, CHAR_NOWEVENT2, -1); CHAR_setInt( charaindex_tmp, CHAR_NOWEVENT3, -1);#ifdef _NEWEVENT CHAR_setInt( charaindex_tmp, CHAR_NOWEVENT4, -1); CHAR_setInt( charaindex_tmp, CHAR_NOWEVENT5, -1); CHAR_setInt( charaindex_tmp, CHAR_NOWEVENT6, -1);#endif#ifdef _ADD_NEWEVENT // WON 多增任務旗標 CHAR_setInt( charaindex_tmp, CHAR_NOWEVENT7, -1); CHAR_setInt( charaindex_tmp, CHAR_NOWEVENT8, -1);#endif sprintf( token, "Success, set all nowflag.." ); CHAR_talkToCli( charaindex, -1,token, CHAR_COLORWHITE); return ; } if(find){ array = shiftbit / 32; shift = shiftbit % 32; if( array>=event_num ){ sprintf( token, "錯誤!!你所設的任務旗標編號已超過 圍(0~%d)。",32*event_num-1); CHAR_talkToCli( charaindex, -1, token, CHAR_COLORWHITE); return; } point = CHAR_getInt( charaindex_tmp, CHAR_NOWEVENT+array); point = point | (1<<shift); CHAR_setInt( charaindex_tmp, CHAR_NOWEVENT+array, point); sprintf( token, "Success!! Character Name:%s eventnow_number:[%d].", CHAR_getChar( charaindex_tmp, CHAR_NAME), eventno); CHAR_talkToCli( charaindex, -1, token, CHAR_COLORWHITE); // display if( charaindex_tmp==charaindex ) sprintf( token, "%s", ""); else sprintf( token, "%s %s", token_cdkey, token_name); CHAR_CHAT_DEBUG_watchevent( charaindex, token ); }else{ sprintf( token,"%s\n","失敗!!帳號與人物名稱無法相符。"); CHAR_talkToCli(charaindex, -1, token, CHAR_COLORWHITE); }}/*void CHAR_CHAT_DEBUG_eventsetnow( int charaindex, char* message ){ int point; int shiftbit; int eventno=0; char token[256]; int array; int shift; shiftbit=atoi(message); eventno=atoi(message); // -1反白仿弘卞楮溢互卅中奶矛件玄 if(shiftbit==-1) return; array = shiftbit / 32; shift = shiftbit % 32; point = CHAR_getInt(charaindex,CHAR_NOWEVENT+array); point = point | (1 << shift); CHAR_setInt(charaindex,CHAR_NOWEVENT+array,point); sprintf( token, "設定事件中%d號旗。",eventno); CHAR_talkToCli( charaindex, -1,token, CHAR_COLORWHITE);}*/// shan 2001/12/18 End// shan 2001/12/15 Begin 由於改變過多,故將原先的function注掉void CHAR_CHAT_DEBUG_eventsetend( int charaindex, char* message ){#ifdef _ADD_NEWEVENT // WON 多增任務旗標 int event_num = 8;#else int event_num = 6;#endif int point; int shiftbit; int eventno = 0; char token[1024]; int array; int shift; char token_cdkey[256]="", token_name[256]="", cdkey[CDKEYLEN]; unsigned int max_user = 0; BOOL find = FALSE; BOOL ret1, ret2; int charaindex_tmp = 0; int i; getStringFromIndexWithDelim( message, " ", 1, token, sizeof( token)); ret1 = getStringFromIndexWithDelim( message, " ", 2, token_cdkey, sizeof( token_cdkey)); ret2 = getStringFromIndexWithDelim( message, " ", 3, token_name, sizeof( token_name)); shiftbit = atoi(token); eventno = atoi(token); if( shiftbit!=-1 && ret1==FALSE && ret2==FALSE ){ charaindex_tmp = charaindex; find=TRUE; } else{ if( shiftbit==-1 || strlen(token_cdkey)==0 || strlen(token_name)==0 ){ sprintf( token, "%s", "參數不正確。正確格式:[eventsetend 任務旗標 帳號 人物名稱]"); CHAR_talkToCli( charaindex, -1, token, CHAR_COLORWHITE); return; } max_user = getFdnum(); for( i=0; i<max_user; i++){ char szName[256]; int i_use; i_use = CONNECT_getUse( i); if( i_use){ CONNECT_getCdkey( i, cdkey, sizeof( cdkey)); CONNECT_getCharname( i, szName, sizeof( szName)); if( strcmp( cdkey, token_cdkey)==0 && strcmp( szName, token_name)==0){ charaindex_tmp = CONNECT_getCharaindex( i); find=TRUE; } } } } if( strcmp(token, "all")==0 && find ){ CHAR_setInt( charaindex_tmp, CHAR_ENDEVENT, -1); CHAR_setInt( charaindex_tmp, CHAR_ENDEVENT2, -1); CHAR_setInt( charaindex_tmp, CHAR_ENDEVENT3, -1);#ifdef _NEWEVENT CHAR_setInt( charaindex_tmp, CHAR_ENDEVENT4, -1); CHAR_setInt( charaindex_tmp, CHAR_ENDEVENT5, -1); CHAR_setInt( charaindex_tmp, CHAR_ENDEVENT6, -1);#endif#ifdef _ADD_NEWEVENT // WON 多增任務旗標 CHAR_setInt( charaindex_tmp, CHAR_ENDEVENT7, -1); CHAR_setInt( charaindex_tmp, CHAR_ENDEVENT8, -1);#endif sprintf( token, "Success, set all endflag.." ); CHAR_talkToCli( charaindex, -1,token, CHAR_COLORWHITE); return ; } if(find){ array = shiftbit / 32; shift = shiftbit % 32; if( array>=event_num ){ sprintf( token, "錯誤!!你所設的任務旗標編號已超過 圍(0~%d)。",32*event_num-1); CHAR_talkToCli( charaindex, -1, token, CHAR_COLORWHITE); return; } point = CHAR_getInt( charaindex_tmp, CHAR_ENDEVENT+array); point = point | (1<<shift); CHAR_setInt( charaindex_tmp, CHAR_ENDEVENT+array, point); sprintf( token, "Success!! Character Name:%s eventend_number:[%d].", CHAR_getChar( charaindex_tmp, CHAR_NAME), eventno); CHAR_talkToCli( charaindex, -1, token, CHAR_COLORYELLOW); // display if( charaindex_tmp==charaindex ) sprintf( token, "%s", ""); else sprintf( token, "%s %s", token_cdkey, token_name); CHAR_CHAT_DEBUG_watchevent( charaindex, token ); }else{ sprintf( token,"%s\n","失敗!!帳號與人物名稱無法相符。"); CHAR_talkToCli(charaindex, -1, token, CHAR_COLORYELLOW); }}void CHAR_CHAT_DEBUG_debug( int charaindex, char* message ){ char msgbuf[256]; BOOL flg = isstring1or0( message); if( flg == TRUE ){ CHAR_setWorkInt( charaindex, CHAR_WORKFLG, CHAR_getWorkInt( charaindex, CHAR_WORKFLG ) | WORKFLG_DEBUGMODE ); CHAR_setWorkInt( charaindex, CHAR_WORKDEBUGMODE, TRUE); }else{ CHAR_setWorkInt( charaindex, CHAR_WORKFLG, CHAR_getWorkInt( charaindex, CHAR_WORKFLG ) & ~WORKFLG_DEBUGMODE ); CHAR_setWorkInt( charaindex, CHAR_WORKDEBUGMODE, FALSE); } CHAR_send_P_StatusString( charaindex, CHAR_P_STRING_DEBUGMODE); snprintf( msgbuf, sizeof( msgbuf), "已設定除錯模式為%s。", ( flg == TRUE) ? "ON" : "OFF"); CHAR_talkToCli( charaindex, -1, msgbuf, CHAR_COLORYELLOW);}void CHAR_CHAT_DEBUG_dp( int charindex , char *message ){ int i; char dp[15]; char cdkey[CDKEYLEN]; char token[128]; int playernum = CHAR_getPlayerMaxNum(); easyGetTokenFromString( message , 1 , dp, sizeof(dp)); easyGetTokenFromString( message , 2 , cdkey, sizeof(cdkey)); if(strlen(cdkey)>0){ for(i=0;i<playernum;i++){ if(CHAR_CHECKINDEX(i) == FALSE) continue; if(!strcmp( CHAR_getChar( i, CHAR_CDKEY), cdkey)) { break; } } if (i>=playernum) { CHAR_talkToCli( charindex, -1, "此賬號不在線~", CHAR_COLORYELLOW ); return; } CHAR_setInt( i , CHAR_DUELPOINT, atoi( dp ) ); CHAR_send_P_StatusString( i ,CHAR_P_STRING_DUELPOINT ); sprintf( token, "[GM]%s把你的DP設置為%d!", CHAR_getChar( charindex, CHAR_NAME),(int)atoi(dp)); CHAR_talkToCli( i, -1, token, CHAR_COLORYELLOW ); sprintf( token, "玩家%s的DP設置為%d!", CHAR_getChar( i, CHAR_NAME),(int)atoi(dp)); CHAR_talkToCli( charindex, -1,token, CHAR_COLORYELLOW ); }else{ CHAR_setInt( charindex , CHAR_DUELPOINT, atoi( dp ) ); CHAR_send_P_StatusString( charindex ,CHAR_P_STRING_DUELPOINT ); sprintf( token, "DP設置為%d!",(int)atoi(dp)); CHAR_talkToCli( charindex, -1,token, CHAR_COLORYELLOW ); }}#ifdef _EQUIT_ARRANGEvoid CHAR_CHAT_DEBUG_arrange( int charindex , char *message ){ CHAR_setWorkInt( charindex, CHAR_WORKFIXARRANGE, atoi( message) ); CHAR_complianceParameter( charindex ); CHAR_talkToCli( charindex, -1, "設定擋格", CHAR_COLORYELLOW);}#endif#ifdef _EQUIT_SEQUENCEvoid CHAR_CHAT_DEBUG_sequence( int charindex , char *message ){ CHAR_setWorkInt( charindex, CHAR_WORKFIXSEQUENCE, atoi( message) ); CHAR_complianceParameter( charindex ); CHAR_talkToCli( charindex, -1, "設定順序", CHAR_COLORYELLOW);}#endif#define ITEMRESERVESTRING "item"#define POOLITEMRESERVESTRING "poolitem"void CHAR_CHAT_DEBUG_setmerge_main( int charaindex, char* message, int mode ){ int haveitemindex = atoi( message); int itemindex; if( !CHAR_CHECKITEMINDEX( charaindex, haveitemindex) ){ CHAR_talkToCli( charaindex, -1, "號碼很奇怪。", CHAR_COLORWHITE); return; } itemindex = CHAR_getItemIndex
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -