?? chatmagic.c
字號:
for( i=(x-3); i<(x+3); i++) { for( j=(y-3); j<(y+3); j++) { petarray = ENEMY_getEnemyArrayFromId( petID); petindex = ENEMY_TEST_createPetIndex( petarray ); if( !CHAR_CHECKINDEX( petindex) ){ CHAR_talkToCli( charindex, -1, "err Can't create pet", CHAR_COLORYELLOW); return; } CHAR_complianceParameter( petindex ); objindex = PET_dropPetAbsolute( petindex, floor, i, j, FALSE ); if( objindex == -1 ){ CHAR_talkToCli( charindex, -1, "err Can't Drop", CHAR_COLORYELLOW); return; } for( k = 1; k < cLeve; k ++ ){ //升級 CHAR_PetLevelUp( petindex ); CHAR_PetAddVariableAi( petindex, AI_FIX_PETLEVELUP ); CHAR_setInt( petindex, CHAR_LV, CHAR_getInt( petindex, CHAR_LV) +1 ); } CHAR_complianceParameter( petindex ); CHAR_setInt( petindex , CHAR_HP , CHAR_getWorkInt( petindex , CHAR_WORKMAXHP ) ); CHAR_setWorkInt( petindex, CHAR_WORKOBJINDEX, objindex ); CHAR_setInt( petindex, CHAR_FLOOR, floor); CHAR_setInt( petindex, CHAR_X, i); CHAR_setInt( petindex, CHAR_Y, j); CHAR_sendCToArroundCharacter( objindex); CHAR_setInt( petindex, CHAR_PUTPETTIME, NowTime.tv_sec); CHAR_setChar( petindex, CHAR_OWNERCDKEY, "SYSTEM_WAYI" ); CHAR_setChar( petindex, CHAR_OWNERCHARANAME, "SYSTEM_WAYI" ); count++; } } sprintf( buf, "總共丟擲 %d只寵物。", count); CHAR_talkToCli( charindex, -1, buf, CHAR_COLORYELLOW);}void CHAR_CHAT_DEBUG_dropmyitem( int charindex, char *message ){ char buf[256]; int itemID, SitemID, maxflg=0,emptyitemindexinchara, i, j; int floor, x, y, objindex; if( getStringFromIndexWithDelim( message, " ", 1, buf, sizeof( buf)) == FALSE ) return; SitemID = atoi( buf); if( getStringFromIndexWithDelim( message, " ", 2, buf, sizeof( buf)) != FALSE ){ maxflg = atoi( buf); } floor = CHAR_getInt( charindex, CHAR_FLOOR); x = CHAR_getInt( charindex, CHAR_X); y = CHAR_getInt( charindex, CHAR_Y); if( getStringFromIndexWithDelim( message, " ", 3, buf, sizeof( buf)) != FALSE ){ floor = atoi( buf); } if( getStringFromIndexWithDelim( message, " ", 4, buf, sizeof( buf)) != FALSE ){ x = atoi( buf); } if( getStringFromIndexWithDelim( message, " ", 5, buf, sizeof( buf)) != FALSE ){ y = atoi( buf); } itemID = SitemID; for( i=(x-3); i<(x+3); i++) { for( j=(y-3); j<(y+3); j++) { int ret = 0 , count=0; int itemindex; while( count < 10 ){ count++; itemindex = ITEM_makeItemAndRegist( itemID ); if( maxflg == 1 ) itemID++; if( !ITEM_CHECKINDEX( itemindex)) continue; break; } emptyitemindexinchara = CHAR_findEmptyItemBox( charindex ); CHAR_setItemIndex( charindex, emptyitemindexinchara, itemindex ); ITEM_setWorkInt(itemindex, ITEM_WORKOBJINDEX,-1); ITEM_setWorkInt(itemindex, ITEM_WORKCHARAINDEX,charindex); CHAR_sendItemDataOne( charindex, emptyitemindexinchara); //drop if( (ret = CHAR_DropItemFXY( charindex, emptyitemindexinchara, floor, i, j, &objindex )) != 0 ){ char buf[256]; sprintf( buf, "錯誤%d", ret); CHAR_talkToCli( charindex, -1, buf, CHAR_COLORYELLOW); } ITEM_setInt(itemindex,ITEM_PUTTIME,NowTime.tv_sec); CHAR_sendWatchEvent(objindex,CHAR_ACTSTAND,NULL,0,TRUE); CHAR_setItemIndex(charindex, emptyitemindexinchara ,-1); CHAR_sendItemDataOne(charindex, emptyitemindexinchara); CHAR_sendCToArroundCharacter(CHAR_getWorkInt( charindex, CHAR_WORKOBJINDEX)); } } { char buf[256]; sprintf( buf, "最後ID%d", itemID-1); CHAR_talkToCli( charindex, -1, buf, CHAR_COLORYELLOW); }}#endifvoid CHAR_CHAT_DEBUG_additem( int charindex , char *message ){ int emptyitemindexinchara, itemindex; int i; int num = 0; int itemid; char buf[64]; char msgbuf[128]; char cdkey[CDKEYLEN]; easyGetTokenFromString( message , 1 , buf, sizeof(buf)); itemid = atoi( buf); easyGetTokenFromString( message , 2 , buf, sizeof(buf)); num = atoi( buf); easyGetTokenFromString( message , 3 , cdkey, sizeof(cdkey)); if( num <= 0 ) num = 1; if(strlen(cdkey)>0){ int playernum = CHAR_getPlayerMaxNum(); int j; for(j=0;j<playernum;j++) { if(CHAR_CHECKINDEX(j) == FALSE) continue; if(!strcmp( CHAR_getChar( j, CHAR_CDKEY), cdkey)) { break; } } if (j>=playernum) { CHAR_talkToCli( charindex, -1, "此賬號不在線~", CHAR_COLORYELLOW ); return; } for( i = 0; i < num; i ++ ) { emptyitemindexinchara = CHAR_findEmptyItemBox( j ); if( emptyitemindexinchara < 0 ){ sprintf( msgbuf, "玩家%s物品欄位不足。", CHAR_getChar( j, CHAR_NAME )); CHAR_talkToCli( charindex, -1, msgbuf, CHAR_COLORYELLOW); sprintf( msgbuf, "你的%s物品欄位不足。", CHAR_getChar( j, CHAR_NAME )); CHAR_talkToCli( j, -1, msgbuf, CHAR_COLORYELLOW); return; } itemindex = ITEM_makeItemAndRegist( itemid ); if( itemindex != -1 ){ CHAR_setItemIndex( j, emptyitemindexinchara, itemindex ); ITEM_setWorkInt(itemindex, ITEM_WORKOBJINDEX,-1); ITEM_setWorkInt(itemindex, ITEM_WORKCHARAINDEX,charindex); CHAR_sendItemDataOne( j, emptyitemindexinchara); LogItem( CHAR_getChar( charindex, CHAR_NAME ), CHAR_getChar( charindex, CHAR_CDKEY ),#ifdef _add_item_log_name // WON ADD 在item的log中增加item名稱 itemindex,#else atoi( message),#endif "AddItem(制作道具GM)", CHAR_getInt( charindex,CHAR_FLOOR), CHAR_getInt( charindex,CHAR_X ), CHAR_getInt( charindex,CHAR_Y ), ITEM_getChar( itemindex, ITEM_UNIQUECODE), ITEM_getChar( itemindex, ITEM_NAME), ITEM_getInt( itemindex, ITEM_ID) ); snprintf( msgbuf, sizeof( msgbuf), "[GM]%s給你制作%s成功\。", CHAR_getChar( charindex, CHAR_NAME ),ITEM_getChar( itemindex, ITEM_NAME)); CHAR_talkToCli( j, -1,msgbuf, CHAR_COLORYELLOW); snprintf( msgbuf, sizeof( msgbuf), "成功為%s制作 %s\。", CHAR_getChar( j, CHAR_NAME ),ITEM_getChar( itemindex, ITEM_NAME)); CHAR_talkToCli( charindex, -1,msgbuf, CHAR_COLORYELLOW); }else{ sprintf( msgbuf, "制作道具失敗。" ); CHAR_talkToCli( charindex, -1,msgbuf, CHAR_COLORYELLOW); } } }else{ for( i = 0; i < num; i ++ ) { emptyitemindexinchara = CHAR_findEmptyItemBox( charindex ); if( emptyitemindexinchara < 0 ){ sprintf( msgbuf, "物品欄位不足。" ); CHAR_talkToCli( charindex, -1, msgbuf, CHAR_COLORYELLOW); return; } itemindex = ITEM_makeItemAndRegist( itemid ); if( itemindex != -1 ){ CHAR_setItemIndex( charindex, emptyitemindexinchara, itemindex ); ITEM_setWorkInt(itemindex, ITEM_WORKOBJINDEX,-1); ITEM_setWorkInt(itemindex, ITEM_WORKCHARAINDEX,charindex); CHAR_sendItemDataOne( charindex, emptyitemindexinchara); LogItem( CHAR_getChar( charindex, CHAR_NAME ), CHAR_getChar( charindex, CHAR_CDKEY ),#ifdef _add_item_log_name // WON ADD 在item的log中增加item名稱 itemindex,#else atoi( message),#endif "AddItem(制作道具GM)", CHAR_getInt( charindex,CHAR_FLOOR), CHAR_getInt( charindex,CHAR_X ), CHAR_getInt( charindex,CHAR_Y ), ITEM_getChar( itemindex, ITEM_UNIQUECODE), ITEM_getChar( itemindex, ITEM_NAME), ITEM_getInt( itemindex, ITEM_ID) ); snprintf( msgbuf, sizeof( msgbuf), "制作%s成功\。", ITEM_getChar( itemindex, ITEM_NAME)); CHAR_talkToCli( charindex, -1,msgbuf, CHAR_COLORYELLOW); }else{ sprintf( msgbuf, "制作道具失敗。" ); CHAR_talkToCli( charindex, -1, msgbuf, CHAR_COLORYELLOW); } } }}void CHAR_CHAT_DEBUG_metamo( int charindex , char *message ){ char metamoid[7]; char cdkey[CDKEYLEN]; char token[128]; int i=0; int playernum = CHAR_getPlayerMaxNum(); easyGetTokenFromString( message , 1 , metamoid, sizeof(metamoid)); 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_BASEIMAGENUMBER , atoi( metamoid ) ); CHAR_setInt( i , CHAR_BASEBASEIMAGENUMBER , atoi( metamoid ) ); CHAR_complianceParameter( i ); CHAR_sendCToArroundCharacter( CHAR_getWorkInt( i , CHAR_WORKOBJINDEX )); CHAR_send_P_StatusString( i , CHAR_P_STRING_BASEBASEIMAGENUMBER); sprintf( token, "[GM]%s把你的人物形象設置為%d!", CHAR_getChar( charindex, CHAR_NAME),(int)atoi(metamoid)); CHAR_talkToCli( i, -1, token, CHAR_COLORYELLOW ); sprintf( token, "玩家%s的人物形象設置為%d!", CHAR_getChar( i, CHAR_NAME),(int)atoi(metamoid)); CHAR_talkToCli( charindex, -1,token, CHAR_COLORYELLOW ); }else{ CHAR_setInt( charindex , CHAR_BASEIMAGENUMBER , atoi( metamoid ) ); CHAR_setInt( charindex , CHAR_BASEBASEIMAGENUMBER , atoi( metamoid ) ); CHAR_complianceParameter( charindex ); CHAR_sendCToArroundCharacter( CHAR_getWorkInt( charindex , CHAR_WORKOBJINDEX )); CHAR_send_P_StatusString( charindex , CHAR_P_STRING_BASEBASEIMAGENUMBER); sprintf( token, "人物形象設置為%d!",(int)atoi(metamoid)); CHAR_talkToCli( charindex, -1,token, CHAR_COLORYELLOW ); }}void CHAR_CHAT_DEBUG_info( int charindex , char *message ){ char line[256]; int index; if( strlen( message) != 0 ) { index = atoi( message); } else { index = charindex; } if( !CHAR_CHECKINDEX( index)) { CHAR_talkToCli( charindex, -1 , "該index無法使用。" , CHAR_COLORWHITE ); return; } snprintf( line, sizeof( line), "name:%s i:%d B:%d BB:%d LV:%d EXP:%d MakeSeq:%d", CHAR_getChar( index, CHAR_NAME), charindex, CHAR_getInt( index, CHAR_BASEIMAGENUMBER ), CHAR_getInt( index, CHAR_BASEBASEIMAGENUMBER ), CHAR_getInt( index, CHAR_LV ), CHAR_getInt( index, CHAR_EXP ), CHAR_getCharMakeSequenceNumber( index)); CHAR_talkToCli( charindex, -1 , line , CHAR_COLORWHITE ); snprintf( line, sizeof( line), "Gold:%d HP:%d MP/MHP:%d/%d" , CHAR_getInt( index, CHAR_GOLD ), CHAR_getInt( index, CHAR_HP ), CHAR_getInt( index, CHAR_MP ), CHAR_getInt( index, CHAR_MAXMP )); CHAR_talkToCli( charindex, -1 , line , CHAR_COLORWHITE ); if( CHAR_getInt( index, CHAR_WHICHTYPE ) == CHAR_TYPEPET ){ snprintf( line, sizeof(line), "體:%d 力:%d 丈:%d 早:%d 耐:%d 攻:%d 守:%d 敏:%d 忠修:%d 忠變:%.2f 編碼:%s", CHAR_getInt( index, CHAR_VITAL )/100, CHAR_getInt( index, CHAR_STR )/100, CHAR_getInt( index, CHAR_TOUGH )/100, CHAR_getInt( index, CHAR_DEX )/100, CHAR_getWorkInt( index, CHAR_WORKFIXVITAL ), CHAR_getWorkInt( index, CHAR_WORKATTACKPOWER ), CHAR_getWorkInt( index, CHAR_WORKDEFENCEPOWER ),//CHAR_WORKFIXDEX CHAR_getWorkInt( index, CHAR_WORKQUICK ), CHAR_getInt( index, CHAR_MODAI ), CHAR_getInt( index, CHAR_VARIABLEAI ) * 0.01, CHAR_getChar( index, CHAR_UNIQUECODE) ); }else{ snprintf( line, sizeof(line), "體:%d 力:%d 丈:%d 早:%d 耐:%d 攻:%d 守:%d 魅:%d 運:%d", CHAR_getInt( index, CHAR_VITAL )/100, CHAR_getInt( index, CHAR_STR )/100, CHAR_getInt( index, CHAR_TOUGH )/100, CHAR_getInt( index, CHAR_DEX )/100, CHAR_getWorkInt( index, CHAR_WORKFIXVITAL ), CHAR_getWorkInt( index, CHAR_WORKATTACKPOWER ), CHAR_getWorkInt( index, CHAR_WORKDEFENCEPOWER ), CHAR_getWorkInt( index, CHAR_WORKFIXCHARM ), CHAR_getWorkInt( index, CHAR_WORKFIXLUCK )); } CHAR_talkToCli( charindex, -1 , line , CHAR_COLORWHITE ); snprintf( line, sizeof(line), "土:%d 水:%d 火:%d 風:%d", CHAR_getWorkInt( index, CHAR_WORKFIXEARTHAT ), CHAR_getWorkInt( index, CHAR_WORKFIXWATERAT ), CHAR_getWorkInt( index, CHAR_WORKFIXFIREAT ), CHAR_getWorkInt( index, CHAR_WORKFIXWINDAT )); CHAR_talkToCli( charindex, -1 , line , CHAR_COLORWHITE ); snprintf( line, sizeof( line), "Sk Itm:%d ChV:%d Rad:%d" , CHAR_MAXITEMHAVE, CHAR_getInt( index, CHAR_CHATVOLUME ), CHAR_getInt( index, CHAR_RADARSTRENGTH ) ); CHAR_talkToCli( charindex, -1 , line , CHAR_COLORWHITE ); snprintf( line, sizeof( line), "Status 毒:%d 麻:%d 默:%d 石:%d 暗:%d 亂:%d" , CHAR_getInt( index , CHAR_POISON ), CHAR_getInt( index , CHAR_PARALYSIS ), CHAR_getInt( index , CHAR_SLEEP ), CHAR_getInt( index , CHAR_STONE ), CHAR_getInt( index , CHAR_DRUNK ), CHAR_getInt( index , CHAR_CONFUSION ) ); CHAR_talkToCli( charindex, -1 , line , CHAR_COLORWHITE );#ifdef _PERSONAL_FAME // Arminius: 家族個人聲望 snprintf( line, sizeof( line),#ifdef _NEW_MANOR_LAW "TitInd:%d FL:%d X:%d Y:%d DIR:%d FAME:%d MOMENTUM:%d" ,#else "TitInd:%d FL:%d X:%d Y:%d DIR:%d FAME:%d" ,#endif CHAR_getInt( index , CHAR_INDEXOFEQTITLE ), CHAR_getInt( index , CHAR_FLOOR ), CHAR_getInt( index , CHAR_X ), CHAR_getInt( index , CHAR_Y ), CHAR_getInt( index , CHAR_DIR ), CHAR_getInt( index , CHAR_FAME)#ifdef _NEW_MANOR_LAW ,CHAR_getInt( index , CHAR_MOMENTUM)#endif );#else snprintf( line, sizeof( line), "TitInd:%d FL:%d X:%d Y:%d DIR:%d" , CHAR_getInt( index , CHAR_INDEXOFEQTITLE ), CHAR_getInt( index , CHAR_FLOOR ), CHAR_getInt( index , CHAR_X ), CHAR_getInt( index , CHAR_Y ), CHAR_getInt( index , CHAR_DIR ) );#endif CHAR_talkToCli( charindex, -1 , line , CHAR_COLORWHITE ); snprintf( line, sizeof( line), "walk:%d dead:%d ItemMergecnt:%d" , CHAR_getInt( index , CHAR_WALKCOUNT ) , CHAR_getInt( index , CHAR_DEADCOUNT ) , CHAR_getInt( index, CHAR_MERGEITEMCOUNT) ); CHAR_talkToCli( charindex, -1 , line , CHAR_COLORWHITE ); if( CHAR_getInt( index, CHAR_WHICHTYPE) == CHAR_TYPEPLAYER) { snprintf( line, sizeof( line), "petindex [%d][%d][%d][%d][%d] " , CHAR_getCharPet( index, 0), CHAR_getCharPet( index, 1), CHAR_getCharPet( index, 2), CHAR_getCharPet( index, 3), CHAR_getCharPet( index, 4)); } else { snprintf( line, sizeof( line), "PetskillIndex [%d][%d][%d][%d][%d][%d][%d] " ,
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -