- /* 
- 	Plugin generated by AMXX-Studio  
-   
- 	Plugin: [CoF] Abilites 
- 	Creator: Chrescoe1 
- 	Skype: Xailer24	 
-   
-   
-   
- */ 
-   
- #include <amxmodx> 
- #include <hamsandwich> 
- #include <fakemeta_util> 
-   
- #define PLUGIN "New abilitys" 
- #define VERSION "0.4" 
- #define AUTHOR "Chrescoe1" 
-   
- #define v_hands "models/cof/v_actions5.mdl" 
- #define RunSpeed 300.0 
- #define SpeedUpg 30.0	 
-   
- new  
- //Run 
- bool:in_run[33], 
- runbutton_num[33], 
- Float:RunButtonTime[33][2], 
- Float:OriginalMaxSpeed[33], 
- RunStade[33], 
- vModelName[128][33], 
- pModelName[128][33], 
-   
- //Jump 
- bool:in_jump[33], 
- Float:JumpTime[33], 
- bool:free_fall[33], 
-   
- //Deploy weapon after jump 
- bool:ForceWeaponDeploy[33], 
- Float:ForceDeployTime[33], 
-   
- //Swim 
- bool:in_swim[33] 
- public plugin_precache()precache_model(v_hands) 
-   
- public plugin_init() 
- { 
- 	register_plugin(PLUGIN, VERSION, AUTHOR) 
- 	register_event("CurWeapon", "Event_CurrentWeapon", "be", "1=1") 
- 	// Add your code here... 
- } 
- public Event_CurrentWeapon(id) 
- { 
- 	if(in_jump[id]) 
- 		in_jump[id]=false, 
- 		ForceWeaponDeploy[id]=false 
- 	if(in_run[id]) 
- 		set_pev(id,pev_maxspeed,OriginalMaxSpeed[id]), 
- 		in_run[id]=false 
- 	if(in_swim[id]) 
- 		in_swim[id]=false 
- } 
- public client_connect(id) 
- 	OriginalMaxSpeed[id]=250.0,ForceWeaponDeploy[id]=false, 
- 	in_jump[id]=false,in_run[id]=false,in_swim[id]=false 
- public client_PreThink(id) 
- { 
- 	static Float:gametime 
- 	gametime=get_gametime() 
-   
- 	if(is_user_alive(id)) 
- 	//If on ladder or movetype_fly or movetype_noclip - block func 
- 	if(pev(id,pev_movetype)==MOVETYPE_FLY||pev(id,pev_movetype)==MOVETYPE_NOCLIP) 
- 	{ 
- 		if(in_jump[id]) 
- 			in_jump[id]=false, 
- 			ForceWeaponDeploy[id]=false, 
- 			deploy_weapon(id) 
- 		if(in_run[id]) 
- 			set_pev(id,pev_maxspeed,OriginalMaxSpeed[id]), 
- 			in_run[id]=false, 
- 			deploy_weapon(id) 
- 		if(in_swim[id]) 
- 			in_swim[id]=false, 
- 			deploy_weapon(id) 
- 		return 
- 	} 
- 	else 
-   
- 	//Swimming 
- 	if(pev(id,pev_waterlevel)>1) 
- 	{ 
- 		if(!in_swim[id]) 
- 		{ 
- 			if(in_jump[id]) 
- 				in_jump[id]=false, 
- 				ForceWeaponDeploy[id]=false 
- 			if(in_run[id]) 
- 				set_pev(id,pev_maxspeed,OriginalMaxSpeed[id]), 
- 				in_run[id]=false 
-   
- 			if(pev(id,pev_waterlevel)<2)return 
- 			save_model(id) 
- 			set_pev(id, pev_viewmodel2, v_hands) 
- 			set_pev(id, pev_weaponmodel2, "") 
- 			set_pdata_float(id, 83, 999.9, 5)	//Block attack 
- 			in_swim[id]=true	 
- 			WeaponAnim(id,3) 
- 			return 
- 		} 
- 	} 
- 	else 
- 	//Run 
- 	if(pev(id,pev_flags)&FL_ONGROUND) 
- 	{ 
- 		if(in_swim[id]) 
- 			in_swim[id]=false, 
- 			deploy_weapon(id) 
- 		if(ForceWeaponDeploy[id]) 
- 		if(ForceDeployTime[id]<gametime)ForceWeaponDeploy[id]=false,deploy_weapon(id) 
- 		if(in_jump[id]) 
- 		{ 
- 			WeaponAnim(id,7) 
- 			in_jump[id]=false 
- 			ForceWeaponDeploy[id]=true 
- 			ForceDeployTime[id]=gametime+0.25 
- 		} 
- 		if(pev(id,pev_button)&IN_FORWARD) 
- 		{ 
- 			if(!(pev(id,pev_oldbuttons)&IN_FORWARD)) 
- 			{ 
- 				static x 
- 				switch(runbutton_num[id]) 
- 				{ 
- 					case 0:runbutton_num[id]=1,x=0 
- 					case 1:runbutton_num[id]=0,x=1 
- 				} 
- 				RunButtonTime[id][runbutton_num[id]]=gametime 
-   
- 				if(gametime-RunButtonTime[id][x]<0.35) 
- 				{ 
- 					in_run[id]=true 
- 					RunStade[id]=1 
-   
- 					OriginalMaxSpeed[id]=fm_get_user_maxspeed(id) 
- 					if(OriginalMaxSpeed[id]<=1.0)OriginalMaxSpeed[id]=250.0 
- 					save_model(id) 
- 					set_pev(id, pev_viewmodel2, v_hands) 
- 					set_pev(id, pev_weaponmodel2, "") 
- 					set_pdata_float(id, 83,999.9, 5)	//Block attack 
- 					set_pev(id,pev_maxspeed,RunSpeed+SpeedUpg*RunStade[id]) 
- 					WeaponAnim(id,4) 
- 				} 
- 			} 
- 			if(in_run[id]) 
- 			{ 
- 				static Float:Velocity[3] 
- 				pev(id,pev_velocity,Velocity); 
- 				if(gametime-RunButtonTime[id][runbutton_num[id]]>1.0) 
- 				if(vector_length(Velocity)<200.0) 
- 					set_pev(id,pev_maxspeed,OriginalMaxSpeed[id]), 
- 					in_run[id]=false, 
- 					deploy_weapon(id) 
- 				else 
- 				if(RunStade[id]<5) 
- 				{ 
- 					static Float:RunTime 
- 					RunTime=RunButtonTime[id][runbutton_num[id]] 
- 					if(gametime-RunTime>=3.4&&RunStade[id]<5)RunStade[id]=5,set_pev(id,pev_maxspeed,RunSpeed+SpeedUpg*RunStade[id]);else 
- 					if(gametime-RunTime>=2.6&&RunStade[id]<4)RunStade[id]=4,set_pev(id,pev_maxspeed,RunSpeed+SpeedUpg*RunStade[id]);else 
- 					if(gametime-RunTime>=1.8&&RunStade[id]<3)RunStade[id]=3,set_pev(id,pev_maxspeed,RunSpeed+SpeedUpg*RunStade[id]);else 
- 					if(gametime-RunTime>=1.2&&RunStade[id]<2)RunStade[id]=2,set_pev(id,pev_maxspeed,RunSpeed+SpeedUpg*RunStade[id]);else 
- 					if(gametime-RunTime>=0.6&&RunStade[id]<1)RunStade[id]=1,set_pev(id,pev_maxspeed,RunSpeed+SpeedUpg*RunStade[id]) 
- 				} 
- 			} 
- 		} 
- 		else 
- 		if(in_run[id]) 
- 		{ 
- 			set_pev(id,pev_maxspeed,OriginalMaxSpeed[id]) 
- 			in_run[id]=false 
- 			deploy_weapon(id) 
- 		} 
- 	} 
- 	else 
- 	//Jump 
- 	if(!(pev(id,pev_flags)&FL_ONGROUND)) 
- 	{ 
- 		if(in_swim[id]) 
- 			in_swim[id]=false, 
- 			deploy_weapon(id) 
- 		if(!in_jump[id]) 
- 		{	 
- 			static Float:Velocity[3] 
- 			pev(id,pev_velocity,Velocity); 
- 			if((Velocity[2]>300.0)||(Velocity[2]<-350.0)||in_run[id]&&(Velocity[2]>200.0)||(Velocity[2]<-400.0)) 
- 			{ 
- 				static Float:JumpPower 
- 				switch(RunStade[id]) 
- 				{ 
- 					case 1:JumpPower=1.0 
- 					case 2:JumpPower=1.09 
- 					case 3:JumpPower=1.18 
- 					case 4:JumpPower=1.27 
- 					case 5:JumpPower=1.36 
- 				} 
- 				set_pev(id,pev_maxspeed,OriginalMaxSpeed[id]) 
- 				in_run[id]=false 
- 				RunStade[id]=1 
-   
- 				Velocity[0]=Velocity[0]*JumpPower 
- 				Velocity[1]=Velocity[1]*JumpPower 
- 				Velocity[2]=Velocity[2]*JumpPower 
- 				set_pev(id,pev_velocity,Velocity) 
-   
- 				save_model(id) 
- 				set_pev(id, pev_viewmodel2, v_hands) 
- 				set_pev(id, pev_weaponmodel2, "")	 
- 				set_pdata_float(id, 83, 999.9, 5) 
- 				WeaponAnim(id,5) 
- 				in_jump[id]=true 
- 				free_fall[id]=false 
- 				JumpTime[id]=gametime 
- 			} 
- 		} 
- 		else  
- 		if(!free_fall[id]) 
- 			if(gametime-JumpTime[id]>0.35) 
- 				free_fall[id]=false,WeaponAnim(id,6) 
- 	} 
- } 
- stock deploy_weapon(id) 
- { 
- 	static Temp_String[28] 
- 	get_weaponname(get_user_weapon(id), Temp_String, 27) 
- 	static weapon_ent; weapon_ent = fm_find_ent_by_owner(-1, Temp_String, id) 
- 	if(pev_valid(weapon_ent))ExecuteHam(Ham_Item_Deploy, weapon_ent),set_pdata_int(weapon_ent,54,0),set_pdata_int(weapon_ent,55,0) 
- 	if (contain(vModelName[id], v_hands)== -1) 
- 	set_pev(id, pev_viewmodel2, vModelName[id]), 
- 	set_pev(id, pev_weaponmodel2, pModelName[id]) 
- } 
- stock WeaponAnim(const Player, const Sequence) 
- { 
- 	set_pev(Player, pev_weaponanim, Sequence) 
- 	message_begin(MSG_ONE_UNRELIABLE, SVC_WEAPONANIM, .player = Player) 
- 	write_byte(Sequence) 
- 	write_byte(0) 
- 	message_end() 
- } 
- stock save_model(id) 
- { 
- 	new Text[128] 
- 	pev(id, pev_viewmodel2, Text,127) 
- 	if (contain(Text, v_hands)== -1) 
- 	pev(id, pev_viewmodel2, vModelName[id],127) 
-   
- 	pev(id, pev_weaponmodel2, Text,127) 
- 	if (contain(Text,"models/")!= -1) 
- 	pev(id, pev_weaponmodel2, pModelName[id],127) 
- } 
-