📄 pet_skill.c
字号:
if( !ITEM_CHECKINDEX( itemindexs[i]) )break; if( fixindex == itemindexs[i] ) continue; CHAR_setItemIndex( charaindex, itemnos[i] ,-1); CHAR_sendItemDataOne( charaindex, itemnos[i] ); ITEM_endExistItemsOne( itemindexs[i]); } } CHAR_sendItemDataOne( charaindex, fixno ); CHAR_complianceParameter( charaindex ); CHAR_send_P_StatusString( charaindex, CHAR_P_STRING_ATK | CHAR_P_STRING_DEF | CHAR_P_STRING_QUICK | CHAR_P_STRING_CHARM ); CHAR_talkToCli( charaindex, -1, "修复完成。", CHAR_COLORYELLOW); return TRUE;}#endif#ifdef _PETSKILL_TIMIDint PETSKILL_BattleTimid( int charaindex, int toNo, int array, char *data ){ if( !CHAR_CHECKINDEX( charaindex) ) return FALSE; if( CHAR_getInt( charaindex, CHAR_WHICHTYPE) == CHAR_TYPEPLAYER ) return FALSE; CHAR_setWorkInt( charaindex, CHAR_WORKBATTLECOM1, BATTLE_COM_S_TIMID ); CHAR_setWorkInt( charaindex, CHAR_WORKBATTLECOM2, toNo ); CHAR_setWorkInt( charaindex, CHAR_WORKBATTLEMODE, BATTLE_CHARMODE_C_OK ); CHAR_setWorkInt( charaindex, CHAR_WORKATTACKPOWER, ( CHAR_getWorkInt( charaindex, CHAR_WORKFIXSTR)*0.7) ); CHAR_setWorkInt( charaindex, CHAR_WORKDEFENCEPOWER, ( CHAR_getWorkInt( charaindex, CHAR_WORKFIXTOUGH)*0.4) ); CHAR_setWorkInt( charaindex, CHAR_WORKQUICK, ( CHAR_getWorkInt( charaindex, CHAR_WORKFIXDEX)*0.8) ); CHAR_SETWORKINT_LOW( charaindex, CHAR_WORKBATTLECOM3, array);//记录属性 return TRUE;}#endif#ifdef _PETSKILL_2TIMIDint PETSKILL_2BattleTimid( int charaindex, int toNo, int array, char *data ){ char *pszOption="\0"; char *pszP; float fPer=0; if( !CHAR_CHECKINDEX( charaindex) ) return FALSE; CHAR_setWorkInt( charaindex, CHAR_WORKBATTLECOM1, BATTLE_COM_S_2TIMID ); CHAR_setWorkInt( charaindex, CHAR_WORKBATTLECOM2, toNo ); CHAR_setWorkInt( charaindex, CHAR_WORKBATTLEMODE, BATTLE_CHARMODE_C_OK ); pszOption = PETSKILL_getChar( array, PETSKILL_OPTION ); if( pszOption == "\0" ) return FALSE; if( (pszP = strstr( pszOption, "-攻%" ) ) != NULL ){ sscanf( pszP+4, "%f", &fPer ); fPer=(fPer/100); CHAR_setWorkInt( charaindex, CHAR_WORKATTACKPOWER, (CHAR_getWorkInt( charaindex, CHAR_WORKFIXSTR)*fPer) ); } if( (pszP = strstr( pszOption, "+攻%" ) ) != NULL ){ sscanf( pszP+4, "%f", &fPer ); fPer=(fPer/100); CHAR_setWorkInt( charaindex, CHAR_WORKATTACKPOWER, CHAR_getWorkInt( charaindex, CHAR_WORKFIXSTR)+(CHAR_getWorkInt( charaindex, CHAR_WORKFIXSTR)*fPer) ); } if( (pszP = strstr( pszOption, "-防%" ) ) != NULL ){ sscanf( pszP+4, "%f", &fPer ); fPer=(fPer/100); CHAR_setWorkInt( charaindex, CHAR_WORKDEFENCEPOWER, ( CHAR_getWorkInt( charaindex, CHAR_WORKFIXTOUGH)*fPer) ); } if( (pszP = strstr( pszOption, "+防%" ) ) != NULL ){ sscanf( pszP+4, "%f", &fPer ); fPer=(fPer/100); CHAR_setWorkInt( charaindex, CHAR_WORKDEFENCEPOWER, CHAR_getWorkInt( charaindex, CHAR_WORKFIXTOUGH)+(CHAR_getWorkInt( charaindex, CHAR_WORKFIXTOUGH)*fPer) ); } if( (pszP = strstr( pszOption, "-敏%" ) ) != NULL ){ sscanf( pszP+4, "%f", &fPer ); fPer=(fPer/100); CHAR_setWorkInt( charaindex, CHAR_WORKQUICK, ( CHAR_getWorkInt( charaindex, CHAR_WORKFIXDEX)*fPer) ); } if( (pszP = strstr( pszOption, "+敏%" ) ) != NULL ){ sscanf( pszP+4, "%f", &fPer ); fPer=(fPer/100); CHAR_setWorkInt( charaindex, CHAR_WORKQUICK, CHAR_getWorkInt( charaindex, CHAR_WORKFIXDEX)+(CHAR_getWorkInt( charaindex, CHAR_WORKFIXDEX)*fPer) ); } CHAR_SETWORKINT_LOW( charaindex, CHAR_WORKBATTLECOM3, array);//记录属性 return TRUE;}#endif#ifdef _PETSKILL_ANTINTERint PETSKILL_AntInter( int charaindex, int toNo, int array, char* data){ if( !CHAR_CHECKINDEX( charaindex) ) return FALSE; CHAR_setWorkInt( charaindex, CHAR_WORKBATTLECOM1, BATTLE_COM_S_ANTINTER); CHAR_setWorkInt( charaindex, CHAR_WORKBATTLECOM2, toNo ); CHAR_setWorkInt( charaindex, CHAR_WORKBATTLEMODE, BATTLE_CHARMODE_C_OK ); CHAR_SETWORKINT_LOW( charaindex, CHAR_WORKBATTLECOM3, array);//记录属性 return TRUE;}#endif#ifdef _PETSKILL_PROPERTYint PETSKILL_BattleProperty( int charaindex, int toNo, int array, char *data ){ if( !CHAR_CHECKINDEX( charaindex) ) return FALSE; if( CHAR_getInt( charaindex, CHAR_WHICHTYPE) == CHAR_TYPEPLAYER ) return FALSE; CHAR_setWorkInt( charaindex, CHAR_WORKBATTLECOM1, BATTLE_COM_S_PROPERTYSKILL ); CHAR_setWorkInt( charaindex, CHAR_WORKBATTLECOM2, toNo ); CHAR_setWorkInt( charaindex, CHAR_WORKBATTLEMODE, BATTLE_CHARMODE_C_OK );// CHAR_setWorkInt( charaindex, CHAR_WORKATTACKPOWER, ( CHAR_getWorkInt( charaindex, CHAR_WORKFIXSTR)*0.7) );// CHAR_setWorkInt( charaindex, CHAR_WORKDEFENCEPOWER, ( CHAR_getWorkInt( charaindex, CHAR_WORKFIXTOUGH)*0.5) );// CHAR_setWorkInt( charaindex, CHAR_WORKQUICK, ( CHAR_getWorkInt( charaindex, CHAR_WORKFIXDEX)*0.95) ); CHAR_SETWORKINT_LOW( charaindex, CHAR_WORKBATTLECOM3, array);//记录属性 return TRUE;}#endif#ifdef _PETSKILL_TEARint PETSKILL_BattleTearDamage( int charaindex, int toNo, int array, char *data ){ if( !CHAR_CHECKINDEX( charaindex) ) return FALSE; if( CHAR_getInt( charaindex, CHAR_WHICHTYPE) == CHAR_TYPEPLAYER ) return FALSE; CHAR_setWorkInt( charaindex, CHAR_WORKBATTLECOM1, BATTLE_COM_S_PETSKILLTEAR ); CHAR_setWorkInt( charaindex, CHAR_WORKBATTLECOM2, toNo ); CHAR_setWorkInt( charaindex, CHAR_WORKBATTLEMODE, BATTLE_CHARMODE_C_OK ); CHAR_setWorkInt( charaindex, CHAR_WORKATTACKPOWER, ( CHAR_getWorkInt( charaindex, CHAR_WORKFIXSTR)*0.9) ); CHAR_setWorkInt( charaindex, CHAR_WORKDEFENCEPOWER, ( CHAR_getWorkInt( charaindex, CHAR_WORKFIXTOUGH)*0.8) ); CHAR_SETWORKINT_LOW( charaindex, CHAR_WORKBATTLECOM3, array);//记录属性 return TRUE;}#endif#ifdef _BATTLE_LIGHTTAKEint PETSKILL_Lighttakeed( int charaindex, int toNo, int array, char *data ){ if( !CHAR_CHECKINDEX( charaindex) ) return FALSE; if( CHAR_getInt( charaindex, CHAR_WHICHTYPE) == CHAR_TYPEPLAYER ) return FALSE; CHAR_setWorkInt( charaindex, CHAR_WORKBATTLECOM1, BATTLE_COM_S_LIGHTTAKE ); CHAR_setWorkInt( charaindex, CHAR_WORKBATTLECOM2, toNo ); CHAR_setWorkInt( charaindex, CHAR_WORKBATTLEMODE, BATTLE_CHARMODE_C_OK ); CHAR_setWorkInt( charaindex, CHAR_WORKATTACKPOWER, (CHAR_getWorkInt( charaindex, CHAR_WORKFIXSTR)*0.7) ); CHAR_setWorkInt( charaindex, CHAR_WORKDEFENCEPOWER, (CHAR_getWorkInt( charaindex, CHAR_WORKFIXTOUGH)*0.5) );// CHAR_setWorkInt( charaindex, CHAR_WORKQUICK, (CHAR_getWorkInt( charaindex, CHAR_WORKFIXDEX)*0.95) ); CHAR_SETWORKINT_LOW( charaindex, CHAR_WORKBATTLECOM3, array);//记录属性 return TRUE;}#endif#ifdef _BATTLE_ATTCRAZEDint PETSKILL_AttackCrazed( int charaindex, int toNo, int array, char *data ){ char *pszOption="\0"; if( !CHAR_CHECKINDEX( charaindex) ) return FALSE; if( CHAR_getInt( charaindex, CHAR_WHICHTYPE) == CHAR_TYPEPLAYER ) return FALSE; CHAR_setWorkInt( charaindex, CHAR_WORKBATTLECOM1, BATTLE_COM_S_ATTCRAZED ); CHAR_setWorkInt( charaindex, CHAR_WORKBATTLECOM2, toNo ); CHAR_setWorkInt( charaindex, CHAR_WORKBATTLEMODE, BATTLE_CHARMODE_C_OK ); CHAR_setWorkInt( charaindex, CHAR_WORKATTACKPOWER, (CHAR_getWorkInt( charaindex, CHAR_WORKFIXSTR)*0.8) ); CHAR_setWorkInt( charaindex, CHAR_WORKDEFENCEPOWER, (CHAR_getWorkInt( charaindex, CHAR_WORKFIXTOUGH)*0.7) ); pszOption = PETSKILL_getChar( array, PETSKILL_OPTION ); if( pszOption == "\0" ) return FALSE; CHAR_SETWORKINT_LOW( charaindex, CHAR_WORKBATTLECOM3, array);//记录属性 CHAR_SETWORKINT_HIGH( charaindex, CHAR_WORKBATTLECOM3, atoi(pszOption)); return TRUE;}#endif#ifdef _PET_SKILL_SARS // WON ADD 毒煞蔓延int PETSKILL_Sars( int charaindex, int toNo, int array, char *data ){ char *pszOption, *pszP; int status = -1, i = 0, turn = 3; char szTurn[] = "turn"; CHAR_setWorkInt( charaindex, CHAR_WORKBATTLECOM1, BATTLE_COM_S_SARS ); CHAR_setWorkInt( charaindex, CHAR_WORKBATTLECOM2, toNo ); CHAR_setWorkInt( charaindex, CHAR_WORKBATTLEMODE, BATTLE_CHARMODE_C_OK ); pszOption = PETSKILL_getChar( array, PETSKILL_OPTION ); pszP = pszOption; for( ;status == -1 && pszP[0] != 0; pszP++ ){ for( i = 1; i < BATTLE_ST_END; i ++ ){ if( strncmp( pszP, aszStatus[i], 2 ) == 0 ){ status = i; pszP +=2; break; } } } if( ( pszP = strstr( pszP, szTurn ) ) != NULL){ pszP += sizeof( szTurn ); sscanf( pszP, "%d", &turn ); } CHAR_SETWORKINT_LOW( charaindex, CHAR_WORKBATTLECOM3, status ); CHAR_SETWORKINT_HIGH( charaindex, CHAR_WORKBATTLECOM3, turn ); return TRUE;}#endif#ifdef _SONIC_ATTACK // WON ADD 音波攻击int PETSKILL_Sonic( int charaindex, int toNo, int array, char *data ){ CHAR_setWorkInt( charaindex, CHAR_WORKBATTLECOM1, BATTLE_COM_S_SONIC ); CHAR_setWorkInt( charaindex, CHAR_WORKBATTLECOM2, toNo ); CHAR_setWorkInt( charaindex, CHAR_WORKBATTLEMODE, BATTLE_CHARMODE_C_OK ); CHAR_SETWORKINT_LOW( charaindex, CHAR_WORKBATTLECOM3, array); //记录属性 return TRUE;}#endif#ifdef _PETSKILL_REGRETint PETSKILL_Regret( int charaindex, int toNo, int array, char *data ){ char *pszOption, *pszP; int strdef; float fPer = 0.01; pszOption = PETSKILL_getChar( array, PETSKILL_OPTION ); if( (pszP = strstr( pszOption, "攻%" ) ) != NULL ){ sscanf( pszP+3, "%f", &fPer ); fPer=(fPer/100); strdef=CHAR_getWorkInt(charaindex,CHAR_WORKFIXSTR); strdef=(int)(strdef * fPer); CHAR_setWorkInt(charaindex,CHAR_WORKATTACKPOWER,(CHAR_getWorkInt(charaindex,CHAR_WORKFIXSTR)+strdef)); } if( (pszP = strstr( pszOption, "防%" ) ) != NULL ){ sscanf( pszP+3, "%f", &fPer ); fPer=(fPer/100); strdef=CHAR_getWorkInt(charaindex,CHAR_WORKFIXTOUGH); strdef=(int)(strdef * fPer); CHAR_setWorkInt(charaindex,CHAR_WORKDEFENCEPOWER,(CHAR_getWorkInt(charaindex,CHAR_WORKFIXTOUGH)+strdef)); } CHAR_setWorkInt( charaindex, CHAR_WORKBATTLECOM1, BATTLE_COM_S_REGRET ); CHAR_setWorkInt( charaindex, CHAR_WORKBATTLECOM2, toNo ); CHAR_setWorkInt( charaindex, CHAR_WORKBATTLEMODE, BATTLE_CHARMODE_C_OK ); CHAR_SETWORKINT_LOW( charaindex, CHAR_WORKBATTLECOM3, array); //记录属性 return TRUE;}#endif#ifdef _PETSKILL_GYRATEint PETSKILL_Gyrate( int charaindex, int toNo, int array, char *data ){ char *pszOption="\0", *pszP; float fPer = 0.01; int strdef=0; CHAR_setWorkInt( charaindex, CHAR_WORKBATTLECOM1, BATTLE_COM_S_GYRATE ); CHAR_setWorkInt( charaindex, CHAR_WORKBATTLECOM2, toNo ); //攻击对象 23,24,25,26 为单排 CHAR_setWorkInt( charaindex, CHAR_WORKBATTLEMODE, BATTLE_CHARMODE_C_OK ); pszOption = PETSKILL_getChar( array, PETSKILL_OPTION ); if( pszOption == "\0" ) { print("\n pszOption == NULL "); return FALSE; } //读取攻值 if( (pszP = strstr( pszOption, "攻%" ) ) != NULL ){ sscanf( pszP+3, "%f", &fPer ); fPer=(fPer/100); //设定修正值 strdef=CHAR_getWorkInt(charaindex,CHAR_WORKFIXSTR); strdef=(int)(strdef * fPer); CHAR_setWorkInt(charaindex,CHAR_WORKATTACKPOWER,(CHAR_getWorkInt(charaindex,CHAR_WORKFIXSTR)+strdef)); } CHAR_SETWORKINT_LOW( charaindex, CHAR_WORKBATTLECOM3, array); //记录属性 return TRUE;}#endif#ifdef _PETSKILL_RETRACEint PETSKILL_Retrace( int charaindex, int toNo, int array, char *data ){ //char *pszOption="\0", *pszP; //float fPer = 0.01; //int strdef=0; CHAR_setWorkInt( charaindex, CHAR_WORKBATTLECOM1, BATTLE_COM_S_RETRACE ); CHAR_setWorkInt( charaindex, CHAR_WORKBATTLECOM2, toNo ); CHAR_setWorkInt( charaindex, CHAR_WORKBATTLEMODE, BATTLE_CHARMODE_C_OK );/* pszOption = PETSKILL_getChar( array, PETSKILL_OPTION ); if( pszOption == "\0" ) { print("\n pszOption == NULL "); return FALSE; } //读取攻值 if( (pszP = strstr( pszOption, "攻%" ) ) != NULL ){ sscanf( pszP+3, "%f", &fPer ); fPer=(fPer/100); //设定修正值 strdef=CHAR_getWorkInt(charaindex,CHAR_WORKFIXSTR); strdef=(int)(strdef * fPer); CHAR_setWorkInt(charaindex,CHAR_WORKATTACKPOWER,(CHAR_getWorkInt(charaindex,CHAR_WORKFIXSTR)+strdef)); }*/ CHAR_SETWORKINT_LOW( charaindex, CHAR_WORKBATTLECOM3, array); //记录属性 return TRUE;}#endif#ifdef _PETSKILL_HECTORint PETSKILL_Hector( int charaindex, int toNo, int array, char *data ){ char *pszOption="\0", *pszP; float fPer = 0.01; int strdef; //char szTurn[] = "turn"; int d_dep; CHAR_setWorkInt( charaindex, CHAR_WORKBATTLECOM1, BATTLE_COM_S_HECTOR ); CHAR_setWorkInt( charaindex, CHAR_WORKBATTLECOM2, toNo ); CHAR_setWorkInt( charaindex, CHAR_WORKBATTLEMODE, BATTLE_CHARMODE_C_OK ); pszOption = PETSKILL_getChar( array, PETSKILL_OPTION ); if( pszOption == "\0" ) { print("\n pszOption == NULL "); return FALSE; } //读取攻值 if( (pszP = strstr( pszOption, "攻%" ) ) != NULL ){ sscanf( pszP+3, "%f", &fPer ); fPer=(fPer/100); //设定修正值 strdef=CHAR_getWorkInt(charaindex,CHAR_WORKFIXSTR); strdef=(int)(strdef * fPer); CHAR_setWorkInt(charaindex,CHAR_WORKATTACKPOWER,(CHAR_getWorkInt(charaindex,CHAR_WORKFIXSTR)+strdef)); } if( (pszP = strstr( pszOption, "敏%" ) ) != NULL ){ sscanf( pszP+3, "%f", &fPer ); CHAR_setWorkInt( charaindex, CHAR_SKILLDEXPOWER, fPer); fPer = fPer / 100; d_dep = CHAR_getWorkInt( charaindex, CHAR_WORKFIXDEX); d_dep = (int)(d_dep * fPer); CHAR_setWorkInt( charaindex, CHAR_WORKQUICK, CHAR_getWorkInt( charaindex, CHAR_WORKFIXDEX) + d_dep); } CHAR_SETWORKINT_LOW( charaindex, CHAR_WORKBATTLECOM3, array); //记录属性 return TRUE;}#endif#ifdef _PETSKILL_FIREKILLint PETSKILL_Firekill( int charaindex, int toNo, int array, char *data ){ CHAR_setWorkInt( charaindex, CHAR_WORKBATTLECOM1, BATTLE_COM_S_FIREKILL ); CHAR_setWorkInt( charaindex, CHAR_WORKBATTLECOM2, toNo ); CHAR_setWorkInt( charaindex, CHAR_WORKBATTLEMODE, BATTLE_CHARMODE_C_OK ); CHAR_SETWORKINT_LOW( charaindex, CHAR_WORKBATTLECOM3, array); //记录属性 return TRUE;}#endif#ifdef _PETSKILL_DAMAGETOHPint PETSKILL_DamageToHp2( int charaindex, int toNo, int array, char *data ){ CHAR_setWorkInt( charaindex, CHAR_WORKBATTLECOM1, BATTLE_COM_S_DAMAGETOHP2 ); CHAR_setWorkInt( charaindex, CHAR_WORKBATTLECOM2, toNo ); CHAR_setWorkInt( charaindex, CHAR_WORKBATTLEMODE, BATTLE_CHARMODE_C_OK ); CHAR_SETWORKINT_LOW(charaindex,CHAR_WORKBATTLECOM3, array); //记录技能/* pszOption = PETSKILL_getChar( array, PETSKILL_OPTION ); if( pszOption == "\0" ) return FALSE; strdef = CHAR_getWorkInt(charaindex,CHAR_WORKFIXSTR); def = (atoi( pszOption)/100); strdef = strdef - (int)(strdef*def); CHAR_setWorkInt( charaindex, CHAR_WORKATTACKPOWER, strdef);*/ return TRUE;}#endif#ifdef _PETSKILL_BECOMEFOXint PETSKILL_BecomeFox( int charaindex, int toNo, int array, char* data){ CHAR_setWorkInt( charaindex, CHAR_WORKBATTLECOM1, BATTLE_COM_S_BECOMEFOX); CHAR_setWorkInt( charaindex, CHAR_WORKBATTLECOM2, toNo ); CHAR_setWorkInt( charaindex, CHAR_WORKBATTLEMODE, BATTLE_CHARMODE_C_OK ); CHAR_SETWORKINT_LOW(charaindex,CHAR_WORKBATTLECOM3, array); //记录技能 return TRUE;}#endif#ifdef _PETSKILL_BECOMEPIGint PETSKILL_BecomePig( int charaindex, int toNo, int array, char* data){ CHAR_setWorkInt( charaindex, CHAR_WORKBATTLECOM1, BATTLE_COM_S_BECOMEPIG); CHAR_setWorkInt( charaindex, CHAR_WORKBATTLECOM2, toNo ); CHAR_setWorkInt( charaindex, CHAR_WORKBATTLEMODE, BATTLE_CHARMODE_C_OK ); CHAR_SETWORKINT_LOW( charaindex, CHAR_WORKBATTLECOM3, array); //记录属性 return TRUE;}#endif#ifdef _PETSKILL_BATTLE_MODELint PETSKILL_BattleModel(int charaindex, int toindex, int array, char* data){ float fPer; int i,iType,iObjec
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -