?? pet_skill.c
字號:
CHAR_setWorkInt( cindex, CHAR_WORKATTACKPOWER, CHAR_getWorkInt( cindex, CHAR_WORKFIXSTR) + a_dep); } if( (pszP = strstr( pszOption, "敏%" ) ) != NULL ){ sscanf( pszP+3, "%f", &fPer ); CHAR_setWorkInt( cindex, CHAR_SKILLDEXPOWER, fPer); fPer = fPer / 100; d_dep = CHAR_getWorkInt( cindex, CHAR_WORKFIXDEX); d_dep = (int)(d_dep * fPer); CHAR_setWorkInt( cindex, CHAR_WORKQUICK, CHAR_getWorkInt( cindex, CHAR_WORKFIXDEX) + d_dep); } CHAR_setInt( cindex, CHAR_BASEIMAGENUMBER, 101428); CHAR_setWorkInt( cindex, CHAR_WORKTURN, 0); return TRUE;}#endif#ifdef _SKILL_WILDVIOLENT_ATTint PETSKILL_WildViolentAttack( int charaindex, int toindex, int array, char *data){ char *pszOption, *pszP; float fPer = 0.01; int strdef=0; int iDuck = 0; CHAR_setWorkInt( charaindex, CHAR_WORKBATTLECOM1, BATTLE_COM_S_WILDVIOLENTATTACK); CHAR_setWorkInt( charaindex, CHAR_WORKBATTLECOM2, toindex ); CHAR_setWorkInt( charaindex, CHAR_WORKBATTLEMODE, BATTLE_CHARMODE_C_OK ); pszOption = PETSKILL_getChar( array, PETSKILL_OPTION ); if( pszOption == NULL ) { print("\n pszOption == NULL "); return FALSE; } //讀取攻值 if( (pszP = strstr( pszOption, "攻%" ) ) != NULL ){ sscanf( pszP+3, "%f", &fPer ); fPer=(fPer/100); //設(shè)定修正值 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); //設(shè)定修正值 strdef=CHAR_getWorkInt(charaindex,CHAR_WORKFIXTOUGH); strdef=(int)(strdef * fPer); CHAR_setWorkInt(charaindex,CHAR_WORKDEFENCEPOWER,(CHAR_getWorkInt(charaindex,CHAR_WORKFIXTOUGH)+strdef)); } //讀取避值 if( ( pszP = strstr( pszOption, "避" ) ) != NULL){ sscanf( pszP+2, "%d", &iDuck ); } // 膜懇毛忡繡 CHAR_SETWORKINT_HIGH( charaindex, CHAR_WORKBATTLECOM3, iDuck ); return TRUE;}#endif#ifdef _SKILL_SACRIFICEint PETSKILL_Sacrifice( int charaindex, int toindex, int array, char *data){ char buf[256]; if(CHAR_getInt(charaindex,CHAR_HP) > CHAR_getWorkInt(charaindex,CHAR_WORKMAXHP)*0.2 ) { CHAR_setWorkInt( charaindex, CHAR_WORKBATTLECOM1, BATTLE_COM_S_SACRIFICE); CHAR_setWorkInt( charaindex, CHAR_WORKBATTLECOM2, toindex ); CHAR_setWorkInt( charaindex, CHAR_WORKBATTLEMODE, BATTLE_CHARMODE_C_OK ); } else { sprintf(buf, "%s自身耐久力不足 救援失敗!!", CHAR_getChar( charaindex, CHAR_NAME )); CHAR_talkToCli( CHAR_getWorkInt(charaindex, CHAR_WORKPLAYERINDEX), -1, buf, CHAR_COLORYELLOW); return FALSE; } return TRUE;}#endif#ifdef _SKILL_REFRESHint PETSKILL_Refresh( int charaindex, int toindex, int array, char *data){ CHAR_setWorkInt( charaindex, CHAR_WORKBATTLECOM1, BATTLE_COM_S_REFRESH); CHAR_setWorkInt( charaindex, CHAR_WORKBATTLECOM2, toindex ); CHAR_setWorkInt( charaindex, CHAR_WORKBATTLEMODE, BATTLE_CHARMODE_C_OK ); CHAR_SETWORKINT_LOW( charaindex, CHAR_WORKBATTLECOM3, array); return TRUE;}#endif#ifdef _SKILL_WEAKEN //vincent寵技:虛弱int PETSKILL_Weaken( int charaindex, int toindex, int array, char *data){ CHAR_setWorkInt( charaindex, CHAR_WORKBATTLECOM1, BATTLE_COM_S_WEAKEN); CHAR_setWorkInt( charaindex, CHAR_WORKBATTLECOM2, toindex ); CHAR_setWorkInt( charaindex, CHAR_WORKBATTLEMODE, BATTLE_CHARMODE_C_OK ); CHAR_SETWORKINT_LOW( charaindex, CHAR_WORKBATTLECOM3, array); return TRUE;}#endif#ifdef _SKILL_DEEPPOISON //vincent寵技:劇毒 int PETSKILL_Deeppoison( int charaindex, int toindex, int array, char *data){ CHAR_setWorkInt( charaindex, CHAR_WORKBATTLECOM1, BATTLE_COM_S_DEEPPOISON); CHAR_setWorkInt( charaindex, CHAR_WORKBATTLECOM2, toindex ); CHAR_setWorkInt( charaindex, CHAR_WORKBATTLEMODE, BATTLE_CHARMODE_C_OK ); CHAR_SETWORKINT_LOW( charaindex, CHAR_WORKBATTLECOM3, array); return TRUE;}#endif#ifdef _SKILL_BARRIER //vincent寵技:魔障int PETSKILL_Barrier( int charaindex, int toindex, int array, char *data){ CHAR_setWorkInt( charaindex, CHAR_WORKBATTLECOM1, BATTLE_COM_S_BARRIER); CHAR_setWorkInt( charaindex, CHAR_WORKBATTLECOM2, toindex ); CHAR_setWorkInt( charaindex, CHAR_WORKBATTLEMODE, BATTLE_CHARMODE_C_OK ); CHAR_SETWORKINT_LOW( charaindex, CHAR_WORKBATTLECOM3, array); return TRUE;}#endif#ifdef _SKILL_NOCAST //vincent寵技:沉默int PETSKILL_Nocast( int charaindex, int toindex, int array, char *data){ CHAR_setWorkInt( charaindex, CHAR_WORKBATTLECOM1, BATTLE_COM_S_NOCAST); CHAR_setWorkInt( charaindex, CHAR_WORKBATTLECOM2, toindex ); CHAR_setWorkInt( charaindex, CHAR_WORKBATTLEMODE, BATTLE_CHARMODE_C_OK ); CHAR_SETWORKINT_LOW( charaindex, CHAR_WORKBATTLECOM3, array); return TRUE;}#endif#ifdef _SKILL_ROAR //vincent寵技:大吼int PETSKILL_Roar( int charaindex, int toindex, int array, char *data){ CHAR_setWorkInt( charaindex, CHAR_WORKBATTLECOM1, BATTLE_COM_S_ROAR); CHAR_setWorkInt( charaindex, CHAR_WORKBATTLECOM2, toindex ); CHAR_setWorkInt( charaindex, CHAR_WORKBATTLEMODE, BATTLE_CHARMODE_C_OK ); CHAR_SETWORKINT_LOW( charaindex, CHAR_WORKBATTLECOM3, array); return TRUE;}#endif#ifdef _SKILL_GUARDBREAK2//破除防御2 vincent add 2002/05/20int PETSKILL_GuardBreak2( int charaindex, int toNo, int array, char *data){ CHAR_setWorkInt( charaindex, CHAR_WORKBATTLECOM1, BATTLE_COM_S_GBREAK2 ); CHAR_setWorkInt( charaindex, CHAR_WORKBATTLECOM2, toNo ); CHAR_setWorkInt( charaindex, CHAR_WORKBATTLEMODE, BATTLE_CHARMODE_C_OK ); return TRUE;}#endif //*******************************************************int PETSKILL_NormalAttack( int charaindex, int toindex, int array, char *data){ CHAR_setWorkInt( charaindex, CHAR_WORKBATTLECOM1, BATTLE_COM_ATTACK ); CHAR_setWorkInt( charaindex, CHAR_WORKBATTLECOM2, toindex ); CHAR_setWorkInt( charaindex, CHAR_WORKBATTLEMODE, BATTLE_CHARMODE_C_OK ); return TRUE;}int PETSKILL_NormalGuard( int charaindex, int toindex, int array, char *data){ CHAR_setWorkInt( charaindex, CHAR_WORKBATTLECOM1, BATTLE_COM_GUARD ); CHAR_setWorkInt( charaindex, CHAR_WORKBATTLECOM2, toindex ); CHAR_setWorkInt( charaindex, CHAR_WORKBATTLEMODE, BATTLE_CHARMODE_C_OK ); return TRUE;}int PETSKILL_None( int charaindex, int toindex, int array, char *data){ CHAR_setWorkInt( charaindex, CHAR_WORKBATTLECOM1, BATTLE_COM_NONE ); CHAR_setWorkInt( charaindex, CHAR_WORKBATTLECOM2, toindex ); CHAR_setWorkInt( charaindex, CHAR_WORKBATTLEMODE, BATTLE_CHARMODE_C_OK ); return TRUE;}int PETSKILL_EarthRound( int charaindex, int toNo, int array, char *data){ char *pszOption, *pszP; float fPer = 0.01; CHAR_setWorkInt( charaindex, CHAR_WORKBATTLECOM1, BATTLE_COM_S_EARTHROUND1 ); CHAR_setWorkInt( charaindex, CHAR_WORKBATTLECOM2, toNo ); CHAR_setWorkInt( charaindex, CHAR_WORKBATTLEMODE, BATTLE_CHARMODE_C_OK ); pszOption = PETSKILL_getChar( array, PETSKILL_OPTION ); if( (pszP = strstr( pszOption, "攻%" ) ) != NULL ){ sscanf( pszP+3, "%f", &fPer ); CHAR_setWorkInt(charaindex,CHAR_WORKBATTLECOM3, (int)fPer ); } return TRUE;}int PETSKILL_GuardBreak( int charaindex, int toNo, int array, char *data){ char *pszOption, *pszP; float fPer = 0.01; int strdef; CHAR_setWorkInt( charaindex, CHAR_WORKBATTLECOM1, BATTLE_COM_S_GBREAK ); CHAR_setWorkInt( charaindex, CHAR_WORKBATTLECOM2, toNo ); CHAR_setWorkInt( charaindex, CHAR_WORKBATTLEMODE, BATTLE_CHARMODE_C_OK ); 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)); } return TRUE;}#ifdef _SKILL_SPEEDY_ATT//疾速攻擊 vincent add 2002/05/20int PETSKILL_SpeedyAttack( int charaindex, int toNo, int array, char *data){ char *pszOption, *pszP; float fPer = 0.01; int strdef=0; CHAR_setWorkInt( charaindex, CHAR_WORKBATTLECOM1, BATTLE_COM_S_SPEEDYATTACK ); CHAR_setWorkInt( charaindex, CHAR_WORKBATTLECOM2, toNo ); CHAR_setWorkInt( charaindex, CHAR_WORKBATTLEMODE, BATTLE_CHARMODE_C_OK ); pszOption = PETSKILL_getChar( array, PETSKILL_OPTION ); if( pszOption == NULL ) { print("\n pszOption == NULL "); return FALSE; } //讀取防值 if( (pszP = strstr( pszOption, "防%" ) ) != NULL ){ sscanf( pszP+3, "%f", &fPer ); fPer=(fPer/100); //設(shè)定修正值 strdef=CHAR_getWorkInt(charaindex,CHAR_WORKFIXTOUGH); strdef=(int)(strdef * fPer); CHAR_setWorkInt(charaindex,CHAR_WORKDEFENCEPOWER,(CHAR_getWorkInt(charaindex,CHAR_WORKFIXTOUGH)+strdef)); } return TRUE;}#endif int PETSKILL_Abduct( int charaindex, int toNo, int array, char *data){ CHAR_setWorkInt( charaindex, CHAR_WORKBATTLECOM1, BATTLE_COM_S_ABDUCT ); CHAR_setWorkInt( charaindex, CHAR_WORKBATTLECOM2, toNo ); CHAR_setWorkInt( charaindex, CHAR_WORKBATTLEMODE, BATTLE_CHARMODE_C_OK ); CHAR_SETWORKINT_LOW( charaindex, CHAR_WORKBATTLECOM3, array); return TRUE;}int PETSKILL_Steal( int charaindex, int toNo, int array, char *data){ CHAR_setWorkInt( charaindex, CHAR_WORKBATTLECOM1, BATTLE_COM_S_STEAL ); CHAR_setWorkInt( charaindex, CHAR_WORKBATTLECOM2, toNo ); CHAR_setWorkInt( charaindex, CHAR_WORKBATTLEMODE, BATTLE_CHARMODE_C_OK ); return TRUE;}#ifdef _BATTLESTEAL_FIXint PETSKILL_StealMoney( int charaindex, int toNo, int array, char *data){ CHAR_setWorkInt( charaindex, CHAR_WORKBATTLECOM1, BATTLE_COM_S_STEALMONEY ); CHAR_setWorkInt( charaindex, CHAR_WORKBATTLECOM2, toNo ); CHAR_setWorkInt( charaindex, CHAR_WORKBATTLEMODE, BATTLE_CHARMODE_C_OK ); return TRUE;}#endif//*******************************************************// 檗 -- 失奶 丞寧岳//int PETSKILL_Merge( int charaindex, int toNo, int array, char *data){ int ret, ownerindex; // Robin 0521 debug ownerindex = CHAR_getWorkInt( charaindex, CHAR_WORKPLAYERINDEX); if( CHAR_getWorkInt( ownerindex, CHAR_WORKBATTLEMODE ) != BATTLE_CHARMODE_NONE ){ print(" Merge_ErrB:fd=%d ", ownerindex); return FALSE; } ret = ITEM_mergeItem_merge( CHAR_getWorkInt( charaindex, CHAR_WORKPLAYERINDEX), CHAR_getInt( charaindex, CHAR_PETID), data, charaindex, 0); return ret;}#ifdef _ALCHEMISTint PETSKILL_Alchemist( int charaindex, int toNo, int array, char *data)
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -