📄 battle_magic.c
字号:
int attackNo, // 井仃月谛 寞 int toNo, // 井仃日木月谛 寞 int power, // 湘 荚汊袄 int per, // ⊙井" int UseEffect, // 银丹谛及巨白尼弁玄 int RecevEffect // 井仃日木月谛及巨白尼弁玄)////***********************************************************{ int i, toindex, UpPoint = 0, workhp; int ToList[SIDE_OFFSET*2+1]; //char szBuffer[256]=""; char szCommand[256]; BATTLE_MultiListDead( battleindex, toNo, ToList ); BATTLE_MagicEffect( battleindex, // 田玄伙奶件犯永弁旦 attackNo, // 井仃月谛 寞(ㄟ ㄠㄨ) ToList, // 井仃日木月谛 寞伉旦玄(ㄟ ㄠㄨ) UseEffect, // 井仃月谛巨白尼弁玄 RecevEffect // 井仃日木月谛巨白尼弁玄 ); // 汊唾今六月 for( i = 0; ToList[i] != -1; i ++ ){ // 锹澎及奶件犯永弁旦 toindex = BATTLE_No2Index( battleindex, ToList[i] ); // 反皿伊奶乩□及戏五忒曰 仄 if( BattleArray[battleindex].type == BATTLE_TYPE_P_vs_P && CHAR_getInt( toindex, CHAR_WHICHTYPE ) == CHAR_TYPEPLAYER ){ continue; } // 竣濮仄化中卅仃木壬汊唾今六卅中 if( CHAR_getFlg( toindex, CHAR_ISDIE ) == FALSE ){ continue; } // 公及引引及煌遥 UpPoint = power; if( per ){ // ⊙煌遥 UpPoint *= CHAR_getWorkInt( toindex, CHAR_WORKMAXHP ) * 0.01; } if( power == 0 ){ // 仇及桦宁反敦蝈荚汊 UpPoint = CHAR_getWorkInt( toindex, CHAR_WORKMAXHP ); }else{ // 荚汊汹卞汔毛 凶六月(漆反赝癫) UpPoint = RAND( (power*0.9), (power*1.1) ); } // 斓匹手ㄠ UpPoint = max( 1, UpPoint ); workhp = CHAR_getInt( toindex, CHAR_HP ) + UpPoint; // 毛译尹卅中方丹卞荚汊 CHAR_setInt( toindex, CHAR_HP, min( workhp, CHAR_getWorkInt( toindex, CHAR_WORKMAXHP ) ) ); // 汊唾 CHAR_setFlg( toindex, CHAR_ISDIE, 0 ); //snprintf( szBuffer, sizeof(szBuffer), // "(%s)恢复意识", // CHAR_getUseName( toindex ) ); // 须 煤 //BATTLE_BroadCast( battleindex, szBuffer, // (attackNo >= 10)? CHAR_COLORGRAY : CHAR_COLORPURPLE ) ; // (汊唾)戊穴件玉毛中木月 snprintf( szCommand, sizeof(szCommand), "BL|r%X|h%X|", ToList[i], CHAR_getInt( toindex, CHAR_HP ) ); // 侬 馨笛 BATTLESTR_ADD( szCommand );/* { int Sign, Damage; Sign = (UpPoint >= 0)?(1):(0); Damage = ABS( UpPoint ); // ( 荚汊)戊穴件玉毛中木月 snprintf( szCommand, sizeof(szCommand), "BD|r%X|%X|%X|d%X|", ToList[i], 0, Sign, Damage ); } // 侬 馨笛 BATTLESTR_ADD( szCommand );*/ // 衬午及爵 匹伉旦弁互卅井匀凶日 if( BattleArray[battleindex].norisk == 0 && BattleArray[battleindex].type == BATTLE_TYPE_P_vs_E ){ // 仇仇匹矢永玄分匀凶日袄毛皿仿旦允月 if( CHAR_getInt( toindex, CHAR_WHICHTYPE ) == CHAR_TYPEPET ){ CHAR_PetAddVariableAi( toindex, AI_FIX_PETRESSURECT ); } } } return;}#ifdef _Item_ReLifeActvoid BATTLE_MultiReLife( int battleindex, int attackNo, int toNo, int power, int RecevEffect ){ int i, toindex, UpPoint = 0, workhp; int ToList[SIDE_OFFSET*2+1]; //char szBuffer[256]=""; char szCommand[256]; char buf1[256]; memset(szCommand, 0, sizeof(szCommand)); BATTLE_MultiListDead( battleindex, toNo, ToList ); //snprintf( szCommand, sizeof(szCommand), "Bj|"); for( i = 0; ToList[i] != -1; i ++ ){ toindex = BATTLE_No2Index( battleindex, ToList[i] ); //if( BattleArray[battleindex].type == BATTLE_TYPE_P_vs_P //&& CHAR_getInt( toindex, CHAR_WHICHTYPE ) == CHAR_TYPEPLAYER ){ // continue; //} if( CHAR_getFlg( toindex, CHAR_ISDIE ) == FALSE ){ continue; } UpPoint = power; workhp = max( 1, UpPoint ); CHAR_setInt( toindex, CHAR_HP, min( workhp, CHAR_getWorkInt( toindex, CHAR_WORKMAXHP ) ) ); CHAR_setFlg( toindex, CHAR_ISDIE, 0 ); //snprintf( szBuffer, sizeof(szBuffer), "(%s)恢复意识", CHAR_getUseName( toindex ) ); snprintf( buf1, sizeof(buf1), "BJ|a%X|m%X|e%X|e%X|FF|", ToList[i], CHAR_getInt( toindex, CHAR_MP ), RecevEffect, //MyEffect, 0 //ToEffect ); strcat( szCommand, buf1); snprintf( buf1, sizeof(buf1), "BL|r%X|h%X|", ToList[i], CHAR_getInt( toindex, CHAR_HP ) ); strcat( szCommand, buf1); if( BattleArray[battleindex].norisk == 0 && BattleArray[battleindex].type == BATTLE_TYPE_P_vs_E ){ if( CHAR_getInt( toindex, CHAR_WHICHTYPE ) == CHAR_TYPEPET ){ CHAR_PetAddVariableAi( toindex, AI_FIX_PETRESSURECT ); } } } //strcat( szCommand, "FF|"); BATTLESTR_ADD( szCommand ); return;}#endifvoid BATTLE_MultiStatusChange( int battleindex, // 田玄伙奶件犯永弁旦 int attackNo, // 井仃月谛 寞 int toNo, // 井仃日木月谛 寞 int status, // 旦 □正旦潘 int turn, // 正□件醒 int UseEffect, // 银丹谛及巨白尼弁玄 int RecevEffect, // 井仃日木月谛及巨白尼弁玄 int Success // 岳 ){ int i, toindex, charaindex; int perStatus; int ToList[SIDE_OFFSET*2+1]; //char szBuffer[256]=""; BATTLE_MultiList( battleindex, toNo, ToList ); BATTLE_MagicEffect( battleindex, // 田玄伙奶件犯永弁旦 attackNo, // 井仃月谛 寞(ㄟ ㄠㄨ) ToList, // 井仃日木月谛 寞伉旦玄(ㄟ ㄠㄨ) UseEffect, // 井仃月谛巨白尼弁玄 RecevEffect // 井仃日木月谛巨白尼弁玄 ); charaindex = BATTLE_No2Index( battleindex, attackNo ); for( i = 0; ToList[i] != -1; i ++ ){ toindex = BATTLE_No2Index( battleindex, ToList[i] ); if( BATTLE_StatusAttackCheck( charaindex, toindex, status, Success, 30, 1.0, &perStatus ) == FALSE ){ //snprintf( szBuffer, sizeof(szBuffer), // "(%s)无法将(%s)做成(%s)(%d%%)", // CHAR_getUseName( charaindex ), // CHAR_getUseName( toindex ), // aszStatusFull[status], // perStatus //); //BATTLE_BroadCast( battleindex, szBuffer, // (attackNo >= 10)? CHAR_COLORGRAY : CHAR_COLORPURPLE ) ; }else{ CHAR_setWorkInt( toindex, StatusTbl[status], turn ); if( status == BATTLE_ST_PARALYSIS || status == BATTLE_ST_SLEEP || status == BATTLE_ST_STONE || status == BATTLE_ST_BARRIER ){ CHAR_setWorkInt( toindex, CHAR_WORKBATTLECOM1, BATTLE_COM_NONE ); } //snprintf( szBuffer, sizeof(szBuffer), // "(%s)将(%s)做成(%s)(%d%%)", // CHAR_getUseName( charaindex ), // CHAR_getUseName( toindex ), // aszStatusFull[status], // perStatus //); //BATTLE_BroadCast( battleindex, szBuffer, // (attackNo >= 10)? CHAR_COLORGRAY : CHAR_COLORPURPLE ) ; BATTLE_BadStatusString( ToList[i], status ); } } return;}#ifdef _OTHER_MAGICSTAUTSvoid BATTLE_MultiMagicStatusChange( int battleindex, int attackNo, int toNo, int status, int turn, int UseEffect, int RecevEffect, int nums ){ int i, j, toindex, charaindex; int ToList[SIDE_OFFSET*2+1]; BATTLE_MultiList( battleindex, toNo, ToList ); BATTLE_MagicEffect( battleindex, attackNo, ToList, UseEffect, RecevEffect ); charaindex = BATTLE_No2Index( battleindex, attackNo ); for( i = 0; ToList[i] != -1; i ++ ){ toindex = BATTLE_No2Index( battleindex, ToList[i] ); for( j=1; j<MAXSTATUSTYPE; j++) { if( CHAR_getWorkInt( toindex, MagicTbl[j]) <= 0 ) continue; break; } if( j == MAXSTATUSTYPE ) {// char szBuffer[256]=""; CHAR_setWorkInt( toindex, MagicTbl[status], turn ); CHAR_setWorkInt( toindex, CHAR_OTHERSTATUSNUMS, nums );// sprintf( szBuffer, "Bm|%X|%X|", ToList[i], status );// BATTLESTR_ADD( szBuffer ); } } return;}#endif//***********************************************************//// 芊羁匹 醒及平乓仿弁正□毛旦 □正旦荚汊//void BATTLE_MultiStatusRecovery( int battleindex, // 田玄伙奶件犯永弁旦 int attackNo, // 井仃月谛 寞 int toNo, // 井仃日木月谛 寞 int status, // 旦 □正旦潘 int UseEffect, // 银丹谛及巨白尼弁玄 int RecevEffect // 井仃日木月谛及巨白尼弁玄)////***********************************************************{ int i, j, toindex, charaindex, tostatus; int ToList[SIDE_OFFSET*2+1]; //char szBuffer[256]=""; BATTLE_MultiList( battleindex, toNo, ToList ); BATTLE_MagicEffect( battleindex, // 田玄伙奶件犯永弁旦 attackNo, // 井仃月谛 寞(ㄟ ㄠㄨ) ToList, // 井仃日木月谛 寞伉旦玄(ㄟ ㄠㄨ) UseEffect, // 井仃月谛巨白尼弁玄 RecevEffect // 井仃日木月谛巨白尼弁玄 ); charaindex = BATTLE_No2Index( battleindex, attackNo ); // 旦 □正旦唱橘荚汊今六月 for( i = 0; ToList[i] != -1; i ++ ){ // 锹澎及奶件犯永弁旦 toindex = BATTLE_No2Index( battleindex, ToList[i] ); // 锹澎互升及旦 □正旦井" tostatus = 0; //检查异常状态 for( j = 1; j < BATTLE_ST_END; j ++ ){ if( CHAR_getWorkInt( toindex, StatusTbl[j] ) > 0 ){ tostatus = j; } } //======== 仇仇匹岳 井升丹井毛 烂今六月 ========== if( tostatus == 0 ){//正常 // 撩 凛// print("\n vincent--很健康"); //snprintf( szBuffer, sizeof(szBuffer), // "(%s)很健康", // CHAR_getUseName( toindex ) ); }else // 蝈莒隙烂匹尕麻僖分匀凶日 if( ( status == 0 && tostatus != 0 && tostatus <= CHAR_WORKCONFUSION ) // 蝈莒隙烂匹尕麻僖//找到异常 || ( status == tostatus ) // 唱橘午荚汊椭互穴永民仄凶 ){ // 荚汊允月 CHAR_setWorkInt( toindex, StatusTbl[tostatus], 0 );#ifdef _MAGIC_NOCAST if( StatusTbl[tostatus] == CHAR_WORKNOCAST ){ //print("\nvincent-->lssproto_NC_send"); lssproto_NC_send( getfdFromCharaIndex( toindex ), 0);//沉默解除 }#endif// print("\n vincent--解除了:%d",tostatus); // 岳 凛 //snprintf( szBuffer, sizeof(szBuffer), // "(%s)解除了(%s)的(%s)", // CHAR_getUseName( charaindex ), // CHAR_getUseName( toindex ), // aszStatusFull[tostatus] //); // 仇仇匹旦 □正旦唱橘迕 侬 戊穴件玉毛中木月 BATTLE_BadStatusString( ToList[i], 0 );//解除异常 }else{// print("\n vincent--不"); // 撩 凛/* snprintf( szBuffer, sizeof(szBuffer), "(%s)不(%s)", CHAR_getUseName( toindex ), aszStatusFull[status] );*/ } // 须 煤 //BATTLE_BroadCast( battleindex, szBuffer, // (attackNo >= 10)? CHAR_COLORGRAY : CHAR_COLORPURPLE ) ; } return;}//***********************************************************//// 芊羁匹 醒及平乓仿弁正□毛 芊 豢//void BATTLE_MultiMagicDef( int battleindex, // 田玄伙奶件犯永弁旦 int attackNo, // 井仃月谛 寞 int toNo, // 井仃日木月谛 寞 int kind, // 升及 芊 豢井 int count, // 荚醒 int UseEffect, // 银丹谛及巨白尼弁玄 int RecevEffect // 井仃日木月谛及巨白尼弁玄)////***********************************************************{ int i, toindex, charaindex; int ToList[SIDE_OFFSET*2+1]; //char szBuffer[256]=""; BATTLE_MultiList( battleindex, toNo, ToList ); BATTLE_MagicEffect( battleindex, // 田玄伙奶件犯永弁旦 attackNo, // 井仃月谛 寞(ㄟ ㄠㄨ) ToList, // 井仃日木月谛 寞伉旦玄(ㄟ ㄠㄨ) UseEffect, // 井仃月谛巨白尼弁玄 RecevEffect // 井仃日木月谛巨白尼
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -