Modificare plugin Furien BonusBox

Descarcari de pluginuri si discutii despre acestea.

Moderators: Moderatori ajutatori, Moderatori, Echipa eXtreamCS.com

Post Reply
PinGu229
Membru, skill 0
Membru, skill 0
Posts: 45
Joined: 08 Dec 2015, 17:23
Detinator Steam: Da
Detinator server CS: Fury.LaLeagane.Ro
Fond eXtream: 0
Location: ROMANIA
Contact:

06 Jan 2017, 21:40

Salut extreamcs, am o problema cu pluginul bonusbix pentru modul furien, am modificat ca in loc de bani sa dea credite dar a intervenit o problema, imi dadea o eroare. Am modificat, am pus nativele, dar degeaba.

Eroare:

Code: Select all

bonus_box.sma(88) : warning 217: loose indentation
bonus_box.sma(89) : warning 217: loose indentation
bonus_box.sma(243) : error 017: undefined symbol "fcs_set_user_credits"
bonus_box.sma(302) : error 017: undefined symbol "fcs_set_user_credits"
bonus_box.sma(304) : warning 204: symbol is assigned a value that is never used: "Money"
Sursa pluginului
| Afiseaza codul
#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <engine>
#include <fakemeta>
#include <fakemeta_util>
#include <fun>
#include <hamsandwich>

#define PLUGIN "Bonus Box"
#define VERSION "1.0"
#define AUTHOR "Laur" // PinGu

new CvarFurienSpeed, CvarAntiFurienSpeed;
new bool:HasSpeed[33], bool:HasTeleport[33];
new const ClassName[] = "BonusBox"
new Model[2][] = {
	"models/box_furien.mdl",
	"models/box_anti_furien.mdl"
}

new Sprite, Sprite2
new Teleport_Cooldown[33]
new CvarTeleportCooldown, CvarTeleportRange, CvarFadeTime, CvarColor
new const SOUND_BLINK[] = { "weapons/flashbang-1.wav" }
const UNIT_SEC = 0x1000
const FFADE = 0x0000

#define FFADE_IN		0x0000		// Just here so we don't pass 0 into the function
#define FFADE_OUT		0x0001		// Fade out (not in)
#define FFADE_MODULATE		0x0002		// Modulate (don't blend)
#define FFADE_STAYOUT		0x0004		// ignores the duration, stays faded out until new ScreenFade message received
enum {
	Red,
	Green,
	Blue
};

public plugin_init()
{	
	register_plugin( PLUGIN, VERSION, AUTHOR );
	register_event("HLTV", "RoundStart", "a", "1=0", "2=0")
	register_event("CurWeapon", "event_cur_weapon", "be", "1=1");
	register_event("DeathMsg", "Death", "a")
	RegisterHam(Ham_Spawn, "player", "Spawn", 1);
	register_forward(FM_CmdStart, "CmdStart")
	register_forward(FM_Touch, "Touch")
	CvarFurienSpeed = register_cvar("amx_bonusbox_furien_speed", "800");
	CvarAntiFurienSpeed = register_cvar("amx_bonusbox_anitfurien_speed", "500");
	CvarTeleportCooldown = register_cvar("bh_teleport_cooldown", "10")
	CvarTeleportRange = register_cvar("bh_bonusbox_teleport_range", "123456789")
	CvarFadeTime = register_cvar("amx_bonusbox_teleport_fadetime", "1.5")
	CvarColor = register_cvar("amx_bonusbox_teleport_color", "255255255")
	register_clcmd("power2", "CmdTeleport");
	set_task( 60.0, "CheckTime", _, _, _, "b", 0 );
}

public plugin_precache() {
	for (new i = 0; i < sizeof Model; i++)
		precache_model(Model)
	
	Sprite = precache_model( "sprites/shockwave.spr")
	Sprite2 = precache_model( "sprites/blueflare2.spr")
}

public RoundStart()
{
	new ent = FM_NULLENT
	static string_class[] = "classname"
	while ((ent = engfunc(EngFunc_FindEntityByString, ent, string_class, ClassName))) 
		set_pev(ent, pev_flags, FL_KILLME)
	
	for(new id = 1; id < get_maxplayers();id++) {
		HasSpeed[id] = false
		HasTeleport[id] = false	
	}
	
}

public Spawn(id) {
	HasSpeed[id] = false
	HasTeleport[id] = false	
}

public Death()
{
	new victim = read_data(2);
		AddBonusBox(victim)
	return HAM_IGNORED
}

public CmdStart(id, uc_handle, seed) {
	new ent = fm_find_ent_by_class(id, ClassName)
	if(is_valid_ent(ent)) {
		new classname[32]	
		pev(ent, pev_classname, classname, 31)
		if (equal(classname, ClassName)) {
			
			if (pev(ent, pev_frame) >= 120)
				set_pev(ent, pev_frame, 0.0)
			else
				set_pev(ent, pev_frame, pev(ent, pev_frame) + 1.0)
			
			switch(pev(ent, pev_team))
			{
				case 1: 
				{ 	
				}	
				case 2: 
				{ 
				}
			}
		}
	}
}

public AddBonusBox(id)
{
	if(is_user_connected(id) && cs_get_user_team(id) != CS_TEAM_SPECTATOR) {
		new ent = fm_create_entity("info_target")
		new origin[3]
		get_user_origin(id, origin, 0)
		set_pev(ent,pev_classname, ClassName)
		switch(cs_get_user_team(id))
		{
			case CS_TEAM_T: { 
				engfunc(EngFunc_SetModel,ent, Model[1])
				set_pev(ent,pev_team, 2)
			}
			
			case CS_TEAM_CT: {
				engfunc(EngFunc_SetModel,ent, Model[0])	
				set_pev(ent,pev_team, 1)
			}
		}
		set_pev(ent,pev_mins,Float:{-10.0,-10.0,0.0})
		set_pev(ent,pev_maxs,Float:{10.0,10.0,25.0})
		set_pev(ent,pev_size,Float:{-10.0,-10.0,0.0,10.0,10.0,25.0})
		engfunc(EngFunc_SetSize,ent,Float:{-10.0,-10.0,0.0},Float:{10.0,10.0,25.0})
		
		set_pev(ent,pev_solid,SOLID_BBOX)
		set_pev(ent,pev_movetype,MOVETYPE_TOSS)
		
		new Float:fOrigin[3]
		IVecFVec(origin, fOrigin)
		set_pev(ent, pev_origin, fOrigin)
	}
}

public Touch(toucher, touched)
{
	if (!is_user_alive(toucher) || !pev_valid(touched))
		return FMRES_IGNORED
	
	new classname[32]	
	pev(touched, pev_classname, classname, 31)
	if (!equal(classname, ClassName))
		return FMRES_IGNORED
	
	if(get_user_team(toucher) == pev(touched, pev_team))
	{
		GiveBonus(toucher)
		set_pev(touched, pev_effects, EF_NODRAW)
		set_pev(touched, pev_solid, SOLID_NOT)
		remove_entity(touched);
	}
	return FMRES_IGNORED
}

public event_cur_weapon(id) {
	if(HasSpeed[id] && cs_get_user_team(id) == CS_TEAM_T && get_user_maxspeed(id) < get_pcvar_float(CvarFurienSpeed)) {
		set_user_maxspeed(id, get_pcvar_float(CvarFurienSpeed));
	}
	if(HasSpeed[id] && cs_get_user_team(id) == CS_TEAM_CT && get_user_maxspeed(id) < get_pcvar_float(CvarAntiFurienSpeed)) {
		set_user_maxspeed(id, get_pcvar_float(CvarAntiFurienSpeed));
	}
}

public GiveBonus(id)
{	
	if(cs_get_user_team(id) == CS_TEAM_T) 
	{
		switch (random_num(1,7)) 
		{
			case 1: 
			{
				new Health = 50
				fm_set_user_health(id, get_user_health(id) + Health)
				ColorChat(id, "!g[Dracken]!n Ai primit!g 50 HP!n.")
			}
			case 2:
			{
				if(!user_has_weapon(id, CSW_HEGRENADE)) {
					fm_give_item(id, "weapon_hegrenade")
				}
				else {
					cs_set_user_bpammo(id, CSW_HEGRENADE, cs_get_user_bpammo(id, CSW_HEGRENADE) + 1);
				}
				ColorChat(id, "!g[Dracken]!n Ai primit o!g grenada HE!n.")
			}
			case 3:
			{
				if(!user_has_weapon(id, CSW_FLASHBANG)) {
					fm_give_item(id, "weapon_flashbang")
				}
				else {
					cs_set_user_bpammo(id, CSW_FLASHBANG, cs_get_user_bpammo(id, CSW_FLASHBANG) + 1);
				}
				ColorChat(id, "!g[Dracken]!n Ai primit o!g grenada FB!n.")
			}
			case 4:
			{
				if(!user_has_weapon(id, CSW_SMOKEGRENADE)) {
					fm_give_item(id, "weapon_smokegrenade")
				}
				else {
					cs_set_user_bpammo(id, CSW_SMOKEGRENADE, cs_get_user_bpammo(id, CSW_SMOKEGRENADE) + 1);
				}
				ColorChat(id, "!g[Dracken]!n Ai primit o!g grenada SG!n.")
			}
			case 5:
			{
				HasSpeed[id] = true;
				client_cmd(id, "cl_sidespeed %d",get_pcvar_float(CvarFurienSpeed))
				client_cmd(id, "cl_forwardspeed %d",get_pcvar_float(CvarFurienSpeed))
				client_cmd(id, "cl_backspeed %d",get_pcvar_float(CvarFurienSpeed))
				set_user_maxspeed(id, get_pcvar_float(CvarFurienSpeed));
				ColorChat(id, "!g[Dracken]!n Ai primit!g 800 Speed!g.")
				
			}
			case 6:
			{
				if(!is_user_admin(id)) {
				HasTeleport[id] = true;
				client_cmd(id, "bind F12 power");
				ColorChat(id, "!g[Dracken]!n Nu ai primit nimic !gPinGu !nisi bate joc de tine !g:P.!g.")
				}
				else GiveBonus(id)
			}	
			case 7:
			{
				new Credits = 25
				fcs_set_user_credits(id, fcs_get_user_credits(id) + Credits)
				ColorChat(id, "!g[Dracken]!n Ai primit!g 25 de credite!n.")
			}
		}
	}
	else
	{
		switch (random_num(1,6)) 
		{
			
			case 1: 
			{
				new Health = 50
				fm_set_user_health(id, get_user_health(id) + Health)
				ColorChat(id, "!g[Dracken]!n Ai primit!g 50 HP!n.")
			}
			case 2:
			{
				if(!user_has_weapon(id, CSW_HEGRENADE)) {
					fm_give_item(id, "weapon_hegrenade")
				}
				else {
					cs_set_user_bpammo(id, CSW_HEGRENADE, cs_get_user_bpammo(id, CSW_HEGRENADE) + 1);
				}
				ColorChat(id, "!g[Dracken]!n Ai primit o!g grenada HE!n.")
			}
			case 3:
			{
				if(!user_has_weapon(id, CSW_FLASHBANG)) {
					fm_give_item(id, "weapon_flashbang")
				}
				else {
					cs_set_user_bpammo(id, CSW_FLASHBANG, cs_get_user_bpammo(id, CSW_FLASHBANG) + 1);
				}
				ColorChat(id, "!g[Dracken]!n Ai primit o!g grenada FB!n.")
			}
			case 4:
			{
				if(!user_has_weapon(id, CSW_SMOKEGRENADE)) {
					fm_give_item(id, "weapon_smokegrenade")
				}
				else {
					cs_set_user_bpammo(id, CSW_SMOKEGRENADE, cs_get_user_bpammo(id, CSW_SMOKEGRENADE) + 1);
				}
				ColorChat(id, "!g[Dracken]!n Ai primit o!g grenada SG!n.")
			}
			case 5:
			{
				HasSpeed[id] = true;
				client_cmd(id, "cl_sidespeed %d",get_pcvar_float(CvarAntiFurienSpeed))
				client_cmd(id, "cl_forwardspeed %d",get_pcvar_float(CvarAntiFurienSpeed))
				client_cmd(id, "cl_backspeed %d",get_pcvar_float(CvarAntiFurienSpeed))
				set_user_maxspeed(id, get_pcvar_float(CvarAntiFurienSpeed));
				ColorChat(id, "!g[Dracken]!n Ai primit!g 500 Speed!n.")
				
			}
			case 6:
			{
				new Money = 25
				fcs_set_user_credits(id, fcs_get_user_credits(id) + Credits)
				ColorChat(id, "!g[Dracken]!n Ai primit!g 25 de credite!n.")
			}
		}
		
	}
	
}


public CmdTeleport(id) {
	if (!is_user_alive(id) || !HasTeleport[id]) return PLUGIN_CONTINUE
	
	if (Teleport_Cooldown[id]) {
		ColorChat(id,"!g[Dracken]!n Puterea de a te putea teleporta iti va reveni in!t %d secunde!g.",Teleport_Cooldown[id]);
		return PLUGIN_CONTINUE
	}
	else if (teleport(id)) {
		emit_sound(id, CHAN_STATIC, SOUND_BLINK, 1.0, ATTN_NORM, 0, PITCH_NORM)
		remove_task(id)
		Teleport_Cooldown[id] = get_pcvar_num(CvarTeleportCooldown);
		set_task(1.0, "ShowHUD", id, _, _, "b");
		set_hudmessage(0, 100, 200, 0.05, 0.60, 0, 1.0, 1.1, 0.0, 0.0, -11);
		if(get_pcvar_num(CvarTeleportCooldown) != 1) {
			show_hudmessage(id, "Puterea de a te putea teleporta iti va reveni in %d secunde.",get_pcvar_num(CvarTeleportCooldown));
		}
		if(get_pcvar_num(CvarTeleportCooldown) == 1) {
			show_hudmessage(id, "Puterea de a te putea teleporta iti va reveni in %d secunda.",get_pcvar_num(CvarTeleportCooldown));
		}
	}
	else {
		ColorChat(id, "!g[Dracken]!n Nu te poti teleporta acolo.")
	}
	return PLUGIN_CONTINUE
}

public ShowHUD(id) {
	if (!is_user_alive(id) || !HasTeleport[id]) {
		remove_task(id);
		Teleport_Cooldown[id] = 0;
		return PLUGIN_HANDLED;
	}
	set_hudmessage(0, 100, 200, 0.05, 0.60, 0, 1.0, 1.1, 0.0, 0.0, -11);
	if(is_user_alive(id) && Teleport_Cooldown[id] == 1) {
		Teleport_Cooldown[id] --;
		show_hudmessage(id, "Puterea de a te putea teleporta iti va reveni in %d secunda.",Teleport_Cooldown[id]);
	}
	if(is_user_alive(id) && Teleport_Cooldown[id] > 1) {
		Teleport_Cooldown[id] --;
		show_hudmessage(id, "Puterea de a te putea teleporta iti va reveni in %d secunde.",Teleport_Cooldown[id]);
	}
	if(Teleport_Cooldown[id] <= 0) {
		show_hudmessage(id, "Ti-a revenit puterea");
		ColorChat(id,"!g[Dracken]!n Poti folosii din nou puterea de a te putea teleporta.");
		remove_task(id);
		Teleport_Cooldown[id] = 0;
	}
	return PLUGIN_HANDLED;
}


bool:teleport(id) {
	new Float:vOrigin[3], Float:vNewOrigin[3],
	Float:vNormal[3], Float:vTraceDirection[3],
	Float:vTraceEnd[3];
	
	pev(id, pev_origin, vOrigin);
	
	velocity_by_aim(id, get_pcvar_num(CvarTeleportRange), vTraceDirection);
	xs_vec_add(vTraceDirection, vOrigin, vTraceEnd);
	
	engfunc(EngFunc_TraceLine, vOrigin, vTraceEnd, DONT_IGNORE_MONSTERS, id, 0);
	
	new Float:flFraction;
	get_tr2(0, TR_flFraction, flFraction);
	if (flFraction < 1.0) {
		get_tr2(0, TR_vecEndPos, vTraceEnd);
		get_tr2(0, TR_vecPlaneNormal, vNormal);
	}
	
	xs_vec_mul_scalar(vNormal, 40.0, vNormal); // do not decrease the 40.0
	xs_vec_add(vTraceEnd, vNormal, vNewOrigin);
	
	if (is_player_stuck(id, vNewOrigin))
		return false;
	
	emit_sound(id, CHAN_STATIC, SOUND_BLINK, 1.0, ATTN_NORM, 0, PITCH_NORM);
	tele_effect(vOrigin);
	
	engfunc(EngFunc_SetOrigin, id, vNewOrigin);
	
	tele_effect2(vNewOrigin);
	
	if(is_user_connected(id)) {
		UTIL_ScreenFade(id, get_color(CvarColor), get_pcvar_float(CvarFadeTime), get_pcvar_float(CvarFadeTime), 75)
	}
	return true;
}

stock is_player_stuck(id, Float:originF[3]) {
	engfunc(EngFunc_TraceHull, originF, originF, 0, (pev(id, pev_flags) & FL_DUCKING) ? HULL_HEAD : HULL_HUMAN, id, 0);
	
	if (get_tr2(0, TR_StartSolid) || get_tr2(0, TR_AllSolid) || !get_tr2(0, TR_InOpen))
		return true;
	
	return false;
}

stock tele_effect(const Float:torigin[3]) {
	new origin[3];
	origin[0] = floatround(torigin[0]);
	origin[1] = floatround(torigin[1]);
	origin[2] = floatround(torigin[2]);
	
	message_begin(MSG_PAS, SVC_TEMPENTITY, origin);
	write_byte(TE_BEAMCYLINDER);
	write_coord(origin[0]);
	write_coord(origin[1]);
	write_coord(origin[2]+10);
	write_coord(origin[0]);
	write_coord(origin[1]);
	write_coord(origin[2]+60);
	write_short(Sprite);
	write_byte(0);
	write_byte(0);
	write_byte(3);
	write_byte(60);
	write_byte(0);
	write_byte(255);
	write_byte(255);
	write_byte(255);
	write_byte(255);
	write_byte(0);
	message_end();
}

stock tele_effect2(const Float:torigin[3]) {
	new origin[3];
	origin[0] = floatround(torigin[0]);
	origin[1] = floatround(torigin[1]);
	origin[2] = floatround(torigin[2]);
	
	message_begin(MSG_PAS, SVC_TEMPENTITY, origin);
	write_byte(TE_BEAMCYLINDER);
	write_coord(origin[0]);
	write_coord(origin[1]);
	write_coord(origin[2]+10);
	write_coord(origin[0]);
	write_coord(origin[1]);
	write_coord(origin[2]+60);
	write_short(Sprite);
	write_byte(0);
	write_byte(0);
	write_byte(3);
	write_byte(60);
	write_byte(0);
	write_byte(255);
	write_byte(255);
	write_byte(255);
	write_byte(255);
	write_byte(0);
	message_end();
	
	message_begin(MSG_BROADCAST, SVC_TEMPENTITY);
	write_byte(TE_SPRITETRAIL);
	write_coord(origin[0]);
	write_coord(origin[1]);
	write_coord(origin[2]+40);
	write_coord(origin[0]);
	write_coord(origin[1]);
	write_coord(origin[2]);
	write_short(Sprite2);
	write_byte(30);
	write_byte(10);
	write_byte(1);
	write_byte(50);
	write_byte(10);
	message_end();
}	

get_color(pcvar) {
	new iColor[3], szColor[10]
	get_pcvar_string(pcvar, szColor, charsmax(szColor))
	new c = str_to_num(szColor)
	
	iColor[Red] = c / 1000000
	c %= 1000000
	iColor[Green] = c / 1000
	iColor[Blue] = c % 1000
	
	return iColor
}

stock FixedUnsigned16(Float:flValue, iScale) {
	new iOutput;
	
	iOutput = floatround(flValue * iScale);
	if ( iOutput < 0 )
		iOutput = 0;
	
	if ( iOutput > 0xFFFF )
		iOutput = 0xFFFF;
	return iOutput;
}

stock UTIL_ScreenFade(id=0,iColor[3]={0,0,0},Float:flFxTime=-1.0,Float:flHoldTime=0.0,iAlpha=0,iFlags=FFADE_IN,bool:bReliable=false,bool:bExternal=false) {
	if( id && !is_user_connected(id))
		return;
	
	new iFadeTime;
	if( flFxTime == -1.0 ) {
		iFadeTime = 4;
	}
	else {
		iFadeTime = FixedUnsigned16( flFxTime , 1<<12 );
	}
	
	static gmsgScreenFade;
	if( !gmsgScreenFade ) {
		gmsgScreenFade = get_user_msgid("ScreenFade");
	}
	
	new MSG_DEST;
	if( bReliable ) {
		MSG_DEST = id ? MSG_ONE : MSG_ALL;
	}
	else {
		MSG_DEST = id ? MSG_ONE_UNRELIABLE : MSG_BROADCAST;
	}
	
	if( bExternal ) {
		emessage_begin( MSG_DEST, gmsgScreenFade, _, id );
		ewrite_short( iFadeTime );
		ewrite_short( FixedUnsigned16( flHoldTime , 1<<12 ) );
		ewrite_short( iFlags );
		ewrite_byte( iColor[Red] );
		ewrite_byte( iColor[Green] );
		ewrite_byte( iColor[Blue] );
		ewrite_byte( iAlpha );
		emessage_end();
	}
	else {
		message_begin( MSG_DEST, gmsgScreenFade, _, id );
		write_short( iFadeTime );
		write_short( FixedUnsigned16( flHoldTime , 1<<12 ) );
		write_short( iFlags );
		write_byte( iColor[Red] );
		write_byte( iColor[Green] );
		write_byte( iColor[Blue] );
		write_byte( iAlpha );
		message_end();
	}
}

stock UTIL_FadeToBlack(id,Float:fxtime=3.0,bool:bReliable=false,bool:bExternal=false) {
	UTIL_ScreenFade(id, _, fxtime, fxtime, 255, FFADE_OUT|FFADE_STAYOUT,bReliable,bExternal);
}

public Light(entity, red, green, blue)
{	
	if(is_valid_ent(entity)) {
		static Float:origin[3]
		pev(entity, pev_origin, origin)
		
		message_begin(MSG_BROADCAST, SVC_TEMPENTITY, _, entity);
		write_byte(TE_DLIGHT) // TE id
		engfunc(EngFunc_WriteCoord, origin[0])
		engfunc(EngFunc_WriteCoord, origin[1])
		engfunc(EngFunc_WriteCoord, origin[2])
		write_byte(7) 
		write_byte(red)
		write_byte(green)
		write_byte(blue)
		write_byte(2)
		write_byte(0)
		message_end();
	}
}

stock ColorChat(const id, const input[], any:...) {
	new count = 1, players[32];
	static msg[191];
	vformat(msg, 190, input, 3);
	
	replace_all(msg, 190, "!g", "^4");
	replace_all(msg, 190, "!y", "^1");
	replace_all(msg, 190, "!t", "^3");
	
	if(id) players[0] = id;
	else get_players(players, count, "ch"); {
		for(new i = 0; i < count; i++) {
			if(is_user_connected(players)) {
				message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players);
				write_byte(players);
				write_string(msg);
				message_end();
			}
		}
	} 
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1033\\ f0\\ fs16 \n\\ par }
*/


Native credite
| Afiseaza codul
fcs_get_user_credits", "_fcs_get_user_credits"
fcs_set_user_credits", "_fcs_set_user_credits"
Image
RoyalServer 2
PinGu229
Membru, skill 0
Membru, skill 0
Posts: 45
Joined: 08 Dec 2015, 17:23
Detinator Steam: Da
Detinator server CS: Fury.LaLeagane.Ro
Fond eXtream: 0
Location: ROMANIA
Contact:

06 Feb 2017, 17:32

S-a rezolvat problema !
Image
Post Reply

Return to “Pluginuri”

  • Information
  • Who is online

    Users browsing this forum: No registered users and 3 guests