?? chatmagic.c.bak
字號:
CHAR_getPetSkill( index, 4), CHAR_getPetSkill( index, 5), CHAR_getPetSkill( index, 6)); } CHAR_talkToCli( charindex, -1 , line , CHAR_COLORWHITE ); if( CHAR_getInt( index, CHAR_WHICHTYPE) == CHAR_TYPEPLAYER) { snprintf( line, sizeof( line), "poolpetindex [%d][%d][%d][%d][%d] " , CHAR_getCharPoolPet( index, 0), CHAR_getCharPoolPet( index, 1), CHAR_getCharPoolPet( index, 2), CHAR_getCharPoolPet( index, 3), CHAR_getCharPoolPet( index, 4)); CHAR_talkToCli( charindex, -1 , line , CHAR_COLORWHITE ); snprintf( line, sizeof( line), "poolpetindex [%d][%d][%d][%d][%d] " , CHAR_getCharPoolPet( index, 5), CHAR_getCharPoolPet( index, 6), CHAR_getCharPoolPet( index, 7), CHAR_getCharPoolPet( index, 8), CHAR_getCharPoolPet( index, 9)); CHAR_talkToCli( charindex, -1 , line , CHAR_COLORWHITE ); } snprintf( line, sizeof( line), "levelup [%d], 累積 %d 賭場積分[%d]" , CHAR_getInt( index, CHAR_LEVELUPPOINT), CHAR_getWorkInt( index, CHAR_WORKULTIMATE), CHAR_getInt( index, CHAR_GAMBLENUM) ); CHAR_talkToCli( charindex, -1 , line , CHAR_COLORWHITE );}void CHAR_CHAT_DEBUG_sysinfo( int charindex , char *message ){ char msg[1024],name[256]; int i; time_t new_t; int dd,hh,mm,ss; int items=0 , chars=0, golds=0, nouses=0; int players=0,pets=0,others=0; int whichtype= -1; int objnum = OBJECT_getNum(); int itemnum = ITEM_getITEM_itemnum(); int itemuse =0; makeEscapeString( getGameserverID(), name, sizeof( name)); sprintf( msg, "GSID:%s GSNAME:%s", getGameserverID(), name); CHAR_talkToCli( charindex, -1, msg, CHAR_COLORYELLOW); for( i=0 ; i<objnum ; i++){ switch( OBJECT_getType( i )){ case OBJTYPE_NOUSE: nouses++; break; case OBJTYPE_CHARA: chars++; whichtype = CHAR_getInt( OBJECT_getIndex( i), CHAR_WHICHTYPE); if( whichtype == CHAR_TYPEPLAYER) players++; else if( whichtype == CHAR_TYPEPET) pets++; else others ++; break; case OBJTYPE_ITEM: items++; break; case OBJTYPE_GOLD: golds++; break; default: break; } } for( i=0 ; i<itemnum ; i++) if( ITEM_getITEM_use(i) ) itemuse++; snprintf( msg , sizeof(msg), "Object Char:%d Item:%d Gold:%d Nouse:%d Item use:%d", chars,items,golds, nouses, itemuse ); CHAR_talkToCli(charindex,-1,msg,CHAR_COLORYELLOW ); snprintf( msg , sizeof(msg), "player : %d pet : %d others : %d", players, pets, others ); CHAR_talkToCli(charindex,-1,msg,CHAR_COLORYELLOW ); time(&new_t); new_t -= initTime; dd=(int) new_t / 86400; new_t=new_t % 86400; hh=(int) new_t / 3600; new_t=new_t % 3600; mm=(int) new_t / 60; new_t=new_t % 60; ss=(int) new_t; snprintf( msg, sizeof( msg ) , "start: %d days %d hours %d min %d sec。",dd,hh,mm,ss); CHAR_talkToCli( charindex, -1, msg, CHAR_COLORYELLOW ); { showMem( msg); CHAR_talkToCli( charindex, -1, msg, CHAR_COLORYELLOW); } snprintf( msg, sizeof( msg ) , "NPC_createnum:%d。",NPC_createnum); CHAR_talkToCli( charindex, -1, msg, CHAR_COLORYELLOW );}void CHAR_CHAT_DEBUG_announce(int charindex , char *message ){ int i; int playernum = CHAR_getPlayerMaxNum(); for( i = 0 ; i < playernum ; i++) { if( CHAR_getCharUse(i) != FALSE ) { CHAR_talkToCli( i, -1, message, CHAR_COLORWHITE); } }}void CHAR_CHAT_DEBUG_level( int charaindex, char* message ){ int i, level; char buf[64]; char cdkey[CDKEYLEN]; char token[255]; int playernum = CHAR_getPlayerMaxNum(); easyGetTokenFromString( message , 1 , buf, sizeof(buf)); level=atoi(buf); 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( charaindex, -1, "此賬號不在線~", CHAR_COLORYELLOW ); return; } CHAR_setInt(i,CHAR_LV, atoi( message )); CHAR_send_P_StatusString( i , CHAR_P_STRING_LV); sprintf( token, "[GM]%s把你的等級設置為%d!", CHAR_getChar( charaindex, CHAR_NAME),level); CHAR_talkToCli( i, -1, token, CHAR_COLORYELLOW ); sprintf( token, "玩家%s的等級設置為%d!", CHAR_getChar( i, CHAR_NAME),level); CHAR_talkToCli( charaindex, -1,token, CHAR_COLORYELLOW ); }else{ CHAR_setInt(charaindex,CHAR_LV, atoi( message )); CHAR_send_P_StatusString( charaindex , CHAR_P_STRING_LV); sprintf( token, "等級設置為%d!",level); CHAR_talkToCli( charaindex, -1,token, CHAR_COLORYELLOW ); }}void CHAR_CHAT_DEBUG_exp( int charaindex, char* message ){ int i; char exp[15]; char cdkey[CDKEYLEN]; char token[255]; int playernum = CHAR_getPlayerMaxNum(); easyGetTokenFromString( message , 1 , exp, sizeof(exp)); 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( charaindex, -1, "此賬號不在線~", CHAR_COLORYELLOW ); return; } CHAR_setMaxExp( i, atoi( exp )); CHAR_send_P_StatusString( i , CHAR_P_STRING_EXP); sprintf( token, "[GM]%s把你的經驗設置為%d!", CHAR_getChar( charaindex, CHAR_NAME),(int)atoi(exp)); CHAR_talkToCli( i, -1, token, CHAR_COLORYELLOW ); sprintf( token, "玩家%s的經驗設置為%d!", CHAR_getChar( i, CHAR_NAME),(int)atoi(exp)); CHAR_talkToCli( charaindex, -1,token, CHAR_COLORYELLOW ); }else{ CHAR_setMaxExp( charaindex, atoi( exp )); CHAR_send_P_StatusString( charaindex , CHAR_P_STRING_EXP); sprintf( token, "經驗設置為%d!",(int)atoi(exp)/100); CHAR_talkToCli( charaindex, -1,token, CHAR_COLORYELLOW ); }}void CHAR_CHAT_DEBUG_delitem( int charindex , char *message ){ int itemid; if( strcmp( message, "all") == 0 ) { int i; for( i = CHAR_STARTITEMARRAY; i < CHAR_MAXITEMHAVE; i ++ ) { itemid = CHAR_getItemIndex(charindex, i); if( itemid != -1 ) { { LogItem( CHAR_getChar( charindex, CHAR_NAME ), CHAR_getChar( charindex, CHAR_CDKEY ),#ifdef _add_item_log_name // WON ADD 在item的log中增加item名稱 itemid,#else ITEM_getInt( itemid, ITEM_ID ),#endif "DelItem(刪除道具GM)", CHAR_getInt( charindex,CHAR_FLOOR), CHAR_getInt( charindex,CHAR_X ), CHAR_getInt( charindex,CHAR_Y ), ITEM_getChar( itemid, ITEM_UNIQUECODE), ITEM_getChar( itemid, ITEM_NAME), ITEM_getInt( itemid, ITEM_ID) ); } CHAR_DelItem( charindex, i); } } }else { int equipplace; equipplace = atoi( message); if( equipplace < CHAR_STARTITEMARRAY || equipplace > CHAR_MAXITEMHAVE -1 ) { CHAR_talkToCli( charindex, -1, "號碼不正確。", CHAR_COLORWHITE); return; } itemid = CHAR_getItemIndex(charindex, equipplace); if( itemid == -1 ) return; { LogItem( CHAR_getChar( charindex, CHAR_NAME ), CHAR_getChar( charindex, CHAR_CDKEY ),#ifdef _add_item_log_name // WON ADD 在item的log中增加item名稱 itemid,#else ITEM_getInt( itemid, ITEM_ID ),#endif "DelItem(刪除道具GM)", CHAR_getInt( charindex,CHAR_FLOOR), CHAR_getInt( charindex,CHAR_X ), CHAR_getInt( charindex,CHAR_Y ), ITEM_getChar( itemid, ITEM_UNIQUECODE), ITEM_getChar( itemid, ITEM_NAME), ITEM_getInt( itemid, ITEM_ID) ); } CHAR_DelItem( charindex, equipplace); }}#ifdef _CHAR_PROFESSION // WON ADD 人物職業void CHAR_CHAT_DEBUG_addsk( int charaindex, char* message ){ CHAR_HaveSkill *pSkil; int skill, i, j, level=1; char cdkey[CDKEYLEN]; char msg1[20], msg2[20]; int playernum = CHAR_getPlayerMaxNum(); getStringFromIndexWithDelim( message, " ", 1, msg1, sizeof( msg1)); getStringFromIndexWithDelim( message, " ", 2, msg2, sizeof( msg2)); getStringFromIndexWithDelim( message, " ", 3, cdkey, sizeof( cdkey)); skill = atoi(msg1); level = atoi(msg2); if( level > 100 ){ CHAR_talkToCli( charaindex, -1, "等級不正確", CHAR_COLORWHITE); return; } if( level < 1 ) level = 1; if(strlen(cdkey)>0){ for(j=0;j<playernum;i++) { if(CHAR_CHECKINDEX(i) == FALSE) continue; if(!strcmp( CHAR_getChar( j, CHAR_CDKEY), cdkey)) { break; } } if (j>=playernum) { CHAR_talkToCli( charaindex, -1, "此賬號不在線~", CHAR_COLORYELLOW ); return; } for( i = 0; i < CHAR_SKILLMAXHAVE; i ++ ){ int skill_id = -1; pSkil = CHAR_getCharHaveSkill( j, i ); skill_id = SKILL_getInt( &pSkil->skill, SKILL_IDENTITY); if( skill == skill_id && skill_id != -1 ){ CHAR_talkToCli(j,-1, "你已經學習過此技能", CHAR_COLORYELLOW); CHAR_talkToCli(charaindex,-1, "玩家已經學習過此技能", CHAR_COLORYELLOW); return; } if( pSkil == NULL ) continue; if( pSkil->use != 0 ) continue; break; } if( i >= CHAR_SKILLMAXHAVE ){ CHAR_talkToCli(j,-1, "技能數量已達上限", CHAR_COLORYELLOW); CHAR_talkToCli(charaindex,-1, "玩家技能數量已達上限", CHAR_COLORYELLOW); return; }else{ level *= 100; SKILL_makeSkillData( &pSkil->skill, skill, level); pSkil->use = TRUE; } CHAR_sendStatusString( j , "S"); return;} else{ for( i = 0; i < CHAR_SKILLMAXHAVE; i ++ ){ int skill_id = -1; pSkil = CHAR_getCharHaveSkill( charaindex, i ); skill_id = SKILL_getInt( &pSkil->skill, SKILL_IDENTITY); if( skill == skill_id && skill_id != -1 ){ CHAR_talkToCli(charaindex,-1, "你已經學習過此技能", CHAR_COLORYELLOW); return; } if( pSkil == NULL ) continue; if( pSkil->use != 0 ) continue; break; } if( i >= CHAR_SKILLMAXHAVE ){ CHAR_talkToCli(charaindex,-1, "技能數量已達上限", CHAR_COLORYELLOW); return; }else{ level *= 100; SKILL_makeSkillData( &pSkil->skill, skill, level); pSkil->use = TRUE; } CHAR_sendStatusString( charaindex , "S"); return;}}void CHAR_CHAT_DEBUG_delsk( int charaindex, char* message ){ int i; CHAR_HaveSkill *pSkil; if( strcmp( message, "all" ) == 0 ){// CHAR_talkToCli( charaindex, -1, "清除所有技能", CHAR_COLORWHITE); for( i = CHAR_SKILLMAXHAVE-1; i >= 0; i -- ){ pSkil = CHAR_getCharHaveSkill( charaindex, i ); if( pSkil == NULL )continue; if( pSkil->use == 0 )continue; SKILL_makeSkillData( &pSkil->skill, 0, 0 ); pSkil->use = 0; } } for( i = CHAR_SKILLMAXHAVE-1; i >= 0; i -- ){ pSkil = CHAR_getCharHaveSkill( charaindex, i ); if( pSkil == NULL )continue; if( pSkil->use == 0 )continue; print( "SKILUSE %d\n", pSkil->use ); break; } if( i < 0 ){// CHAR_talkToCli( charaindex, -1, "已無法再削減了。", CHAR_COLORWHITE); ;; }else{ SKILL_makeSkillData( &pSkil->skill, 0, 0 ); pSkil->use = 0; } CHAR_sendStatusString( charaindex , "S");}#endifvoid CHAR_CHAT_Kusabana( int charaindex, char* message ){ int dir, ff, fx, fy; int tile, obj; ff = CHAR_getInt( charaindex, CHAR_FLOOR ); fx = CHAR_getInt( charaindex, CHAR_X ); fy = CHAR_getInt( charaindex, CHAR_Y ); dir = CHAR_getInt( charaindex, CHAR_DIR ); fx += CHAR_getDX(dir); fy += CHAR_getDY(dir); if( MAP_getTileAndObjData( ff, fx, fy, &tile, &obj) == FALSE )return;#if 0 { char szBuffer[256]; snprintf( szBuffer, sizeof( szBuffer ), "TILE = %d, OBJ = %d", tile, obj ); CHAR_talkToCli( charaindex, -1, szBuffer, CHAR_COLORWHITE); }#else
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -