⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pet_skill.c

📁 石器时代2.0完整版源代码.已经加入新功能. 在REDHAT9下GCC3.4编译成功.
💻 C
📖 第 1 页 / 共 5 页
字号:
			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 + -