←  Pluginy

AMXX.pl: Support AMX Mod X i SourceMod

»

Modyfikacja
przerobienie pluginu

Zablokowany

  • +
  • -
Grzegorz93 - zdjęcie Grzegorz93 31.03.2011

Witam,

Bardzo proszę o przerobie tego pluginu, tak aby tylko gracz z flagą X szybko biegał.

Dziękuję :)

#include <amxmodx>
#include <amxmisc>
#include <fakemeta>
#include <speedspeed>
#include <hamsandwich>

#define PLUGIN "Sprinting"
#define VERSION "1.0"
#define AUTHOR "R3X"

new const Float:fSprintingTime = 2.0;
new const Float:fRestingTime = 3.0;
new const Float:fSpeedUp = 100;

new Float:gfSpeedOffset[33];

new giWid[33];
new Float:gfSprint[33];
new Float:gfRest[33];

public plugin_init() {
	register_plugin(PLUGIN, VERSION, AUTHOR);
	
	register_event("CurWeapon", "eventCurWeapon", "be", "1=1");
	RegisterHam(Ham_Spawn, "player", "fwHamSpawn", 1);
	register_forward(FM_PlayerPreThink, "fwPlayerPretThink", 1);
}

//SpeedSpeed
public speed_update(id){
	add_user_speed(id, gfSpeedOffset[id]);
}

public eventSpeedUp(id){
	new Float:fNow = get_gametime();
	
	if(fNow < gfRest[id]){
		set_hudmessage(255, 255, 255, -1.0, 0.3, 0, 0.0, 2.0);
		show_hudmessage(id, "Odpocznij chwile")
		return;
	}

	gfSpeedOffset[id] = fSpeedUp;
	update_user_speed(id);
	
	gfSprint[id] = fNow + fSprintingTime;
	
	set_hudmessage(255, 255, 255, -1.0, 0.3, 0, 0.0, 2.0);
	show_hudmessage(id, "Sprint!")
}
public eventSpeedDown(id){
	gfSpeedOffset[id] = 0.0;
	update_user_speed(id);
	
	new Float:fNow = get_gametime();
	gfRest[id] =  fNow + fRestingTime;
	
	set_hudmessage(255, 255, 255, -1.0, 0.3, 0, 0.0, 2.0);
	show_hudmessage(id, "Tyla")
}

public fwHamSpawn(id)
	gfSpeedOffset[id] = 0.0;
	
public eventCurWeapon(id){
	new wid = read_data(2);
	giWid[id] = wid;
}
public fwPlayerPretThink(id){
	if(!is_user_alive(id))
		return FMRES_IGNORED;
		
	new wid = giWid[id];
	new button = pev(id, pev_button) & IN_ATTACK2;
	new oldbuttons = pev(id, pev_oldbuttons)& IN_ATTACK2;
	
	if((button && !oldbuttons)){
		if(wid == CSW_KNIFE) 
			eventSpeedUp(id);
	}
	
	else if(gfSpeedOffset[id]){
		if((!button && oldbuttons) || wid != CSW_KNIFE || gfSprint[id] < get_gametime())
			eventSpeedDown(id);
	}
	
	
	return FMRES_IGNORED;
}

#include <amxmodx>
#include <amxmisc>
#include <fakemeta>

#define PLUGIN "SpeedSpeed"
#define VERSION "1.0"
#define AUTHOR "R3X"

new gfwUpdate;

new const Float:gfCSSpeeds[]={
	000.0,
	250.0, 000.0, 260.0, 250.0, 240.0,
	250.0, 250.0, 240.0, 250.0, 250.0,               
	250.0, 250.0, 210.0, 240.0, 240.0,    
	250.0, 250.0, 210.0, 250.0, 220.0,              
	230.0, 230.0, 250.0, 210.0, 250.0,            
	250.0, 235.0, 221.0, 250.0, 245.0
}

new giUserWeapon[33];
new Float:gfUserSpeed[33];
new Float:gfOffset[33];

public plugin_init() {
	register_plugin(PLUGIN, VERSION, AUTHOR);
	register_event("CurWeapon", "eventCurWeapon", "be", "1=1");
	
	gfwUpdate = CreateMultiForward("speed_update", ET_CONTINUE, FP_CELL, FP_CELL);
}
public plugin_natives(){
	register_library("SpeedSpeed");
	
	register_native("add_user_speed", "_add_user_speed");
	register_native("update_user_speed", "_update_user_speed");
}

public eventCurWeapon(id){
	new wid = read_data(2);
	giUserWeapon[id] = wid;
	updateSpeed(id, wid);
}

public updateSpeed(id, wid){
	gfUserSpeed[id] = gfCSSpeeds[wid];
	
	gfOffset[id] = 0.0;
	
	new ret;
	ExecuteForward(gfwUpdate, ret, id, wid);

	if(ret == 0)
		gfUserSpeed[id] += gfOffset[id];
		
	__set_user_speed(id, gfUserSpeed[id]);
}
stock __set_user_speed(id, Float:fSpeed = -1.0){
	if(fSpeed < 0.0){
		new wid = get_user_weapon(id);
		fSpeed = gfCSSpeeds[wid];
	}
	
	set_pev(id, pev_maxspeed, fSpeed);
	client_cmd(id, "cl_forwardspeed %.1f", fSpeed);
	client_cmd(id, "cl_backspeed %.1f", fSpeed);
	client_cmd(id, "cl_sidespeed %.1f", fSpeed);
}
public _add_user_speed(plugin, params){
	if(params < 2){
		log_error(10, "Bad parameter number");
		return 0;
	}
	new id = get_param(1);
	if(!is_user_connected(id))
		return 0;
	new Float:fOffset = get_param_f(2);
	gfOffset[id] += fOffset;
	return 1;
}
public _update_user_speed(plugin, params){
	if(params < 1){
		log_error(10, "Bad parameter number");
		return 0;
	}
	new id = get_param(1);
	if(!is_user_connected(id))
		return 0;
	updateSpeed(id, giUserWeapon[id]);
	return 1;
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1045\\ f0\\ fs16 \n\\ par }
*/

download

Załączone pliki

Odpowiedz
Zablokowany