[rezolvat]Modificare plugin camp

Modificari necesare ale pluginurilor

Moderators: Moderatori ajutatori, Moderatori, Echipa eXtreamCS.com

Post Reply
iulian2014
Membru, skill 0
Membru, skill 0
Posts: 91
Joined: 03 Jul 2016, 23:13
Detinator Steam: Nu
CS Status: Citesc forumul eXtreamCS.com...!
Fond eXtream: 0
Contact:

05 Jan 2018, 10:17

Nume plugin: Do_Not_Rush
Descriere: prin comanda /camp poti creea anumite parti prin care nu se poate trece timp de 25 de secunde ( doar la CT ).
Modificare: Prima oara cand se schimba mapa acel camp nu dispare , deabea dupa a 2-a runda dispare , il puteti modifica sa dispara si prima runda?
User avatar
DevilBoy.eXe
Super moderator
Super moderator
Posts: 1677
Joined: 05 Jun 2016, 23:04
Detinator Steam: Da
Detinator server CS: GO.WARED.RO
SteamID: DevilBoy_eXe
Reputatie: Super Moderator
Fond eXtream: 0
Location: beyond the time
Discord: zeux.
Has thanked: 15 times
Been thanked: 71 times
Contact:

05 Jan 2018, 10:21

Ne dai si sursa...?
iulian2014
Membru, skill 0
Membru, skill 0
Posts: 91
Joined: 03 Jul 2016, 23:13
Detinator Steam: Nu
CS Status: Citesc forumul eXtreamCS.com...!
Fond eXtream: 0
Contact:

05 Jan 2018, 18:40

| Afiseaza codul
#include <amxmodx>
#include <amxmisc>
#include <engine>
#include <fakemeta_util>
#include <hamsandwich>

#define PLUGIN_NAME "Anti Rush"
#define PLUGIN_VERSION "1.0"
#define PLUGIN_AUTHOR "YONTU" // credite Psycrow (sursa pluginului lui: http://gamebanana.com/gamefiles/3038&#41;

// --------------------------------------------
//   ------------- DE EDITAT ---------------
// --------------------------------------------
#define ADMIN_ACCESS	ADMIN_IMMUNITY
new const force_field_model[] = "models/aura8.mdl";
new const tag[] = "[ANTI RUSH]";
// --------------------------------------------
//   ------------- DE EDITAT ---------------
// --------------------------------------------

new const force_field_class[] = "forcefield";

new Array:ff_count, Array:ff_origin_x, Array:ff_origin_y, Array:ff_origin_z;
new bool:g_save_cpl, bool:can_pass;
new cvar_ff_color, cvar_ff_restricted_team, cvar_remove_ff;

public plugin_init()
{
	register_plugin(PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR);
	register_cvar("no_rush_", PLUGIN_VERSION, FCVAR_SPONLY|FCVAR_SERVER);
	set_cvar_string("no_rush_", PLUGIN_VERSION);

	register_touch(force_field_class, "player", "fw_touch_player");
	register_event("HLTV", "event_NewRound", "a", "1=0", "2=0");

	register_clcmd("say /camp", "cmd_open_menu");
	register_clcmd("say_team /camp", "cmd_open_menu");

	cvar_ff_color = register_cvar("ff_color", "0");	// 0 = random colors | 1 = t colors | 2 = ct colors
	cvar_ff_restricted_team = register_cvar("ff_restricted_access", "2");	// 0 = both | 1 = only t | 2 = only ct
	cvar_remove_ff = register_cvar("ff_remove_after", "25");	// int number

	new map[32];
	get_mapname(map, charsmax(map));
	formatex(map, charsmax(map),"%s.ini",map);
	
	new cfg_dir[64], dir, file[128];
	get_configsdir(cfg_dir, charsmax(cfg_dir));
	formatex(cfg_dir, charsmax(cfg_dir), "%s/force_field", cfg_dir);
	
	dir = open_dir(cfg_dir, file, charsmax(file));
	
	if(!dir)
		mkdir(cfg_dir);
	
	while(next_file(dir, file, charsmax(file)))
	{
		if(file[0] == '.')
			continue;
				
		if(equal(map, file))
		{
			format(file, charsmax(file), "%s/%s", cfg_dir, file);
			get_origins(file);
			break;
		}
	}
}

public plugin_precache()
{
	precache_model(force_field_model);
}

public plugin_end()
{
	ArrayDestroy(ff_count);
	ArrayDestroy(ff_origin_x);
	ArrayDestroy(ff_origin_y);
	ArrayDestroy(ff_origin_z);
}

public plugin_natives() 
{
	ff_count = ArrayCreate(1, 1);
	ff_origin_x = ArrayCreate(1, 1);
	ff_origin_y = ArrayCreate(1, 1);
	ff_origin_z = ArrayCreate(1, 1);
}

public set_maps_cfg()
{
	new map1[32];
	get_mapname(map1, charsmax(map1));
	formatex(map1, charsmax(map1), "%s.ini", map1);
	
	new cfg_dir[64], file[128];
	get_configsdir(cfg_dir, charsmax(cfg_dir));
	formatex(cfg_dir, charsmax(cfg_dir), "%s/force_field", cfg_dir);
	formatex(file, charsmax(file),"%s/%s",cfg_dir, map1);
	
	if(!dir_exists(cfg_dir))
		mkdir(cfg_dir);
	
	delete_file(file);
	
	new origins_count = ArraySize(ff_count);
	if(!origins_count)
		return;
	
	new text[128], i, Float:fOrigin[3], ent;
	for(i = 0; i < origins_count; i++)
	{
		ent = ArrayGetCell(ff_count, i);
		//drop_to_floor(ent);
		pev(ent, pev_origin, fOrigin);
		format(text, charsmax(text),"^"%f^" ^"%f^" ^"%f^"", fOrigin[0], fOrigin[1], fOrigin[2]);
		write_file(file, text, -1);
	}
}

public get_origins(dir[128])
{	
	new map[32];
	get_mapname(map, charsmax(map));
	new file = fopen(dir, "rt");
	if(!file)
	{
		server_print("%s Originile hartii %s sunt invalide. Creeaza altele.", tag, map);
		return;
	}
	
	while(file && !feof(file))
	{
		new line[101];
		fgets(file, line, charsmax(line));
			
		if(line[0] == ';' || equal(line, ""))
			continue;
			
		new iOrigins[3][32], Float:fOrigins[3];	
		parse(line, iOrigins[0], charsmax(iOrigins[]), iOrigins[1], charsmax(iOrigins[]), iOrigins[2], charsmax(iOrigins[]));
		
		fOrigins[0] = str_to_float(iOrigins[0]);
		fOrigins[1] = str_to_float(iOrigins[1]);
		fOrigins[2] = str_to_float(iOrigins[2]);
		//origin[count][0] = str_to_float(iOrigins[0]);
		//origin[count][1] = str_to_float(iOrigins[1]);
		//origin[count++][2] = str_to_float(iOrigins[2]);
		
		create_spawn(fOrigins);
	}
	fclose(file);
	can_pass = false;
	
	if(!ArraySize(ff_count))
		server_print("%s Nu am gasit nicio origine pentru harta %s", tag, map);
	else if(ArraySize(ff_count) == 1)
		server_print("%s Am gasit o singura origine unde pot creea un camp de forta pentru harta %s", tag, map);
	else
		server_print("%s Am gasit %d origini pentru harta %s", tag, ArraySize(ff_count), map);
}

public event_NewRound()
{
	set_task(random_float(1.0, 2.0), "task_create_ff", 231);
	set_task(float(get_pcvar_num(cvar_remove_ff)), "task_remove_ff", 232);
}

public task_create_ff()
{
	can_pass = false;
	new origins_count = ArraySize(ff_count);
	if(!origins_count)
		return;

	new i, classname[32], ent;
	for(i = 0; i < origins_count; i++)
	{
		ent = ArrayGetCell(ff_count, i);
		pev(ent, pev_classname, classname, charsmax(classname));

		if(!equal(classname, force_field_class))
			continue;

		entity_set_int(ent, EV_INT_effects, entity_get_int(ent, EV_INT_effects) & ~EF_NODRAW);
	}
	ColorChat(0, "!g%s!t Timp de!g %d!t secunde nu poti face!n rush!t.", tag, get_pcvar_num(cvar_remove_ff));
}

public task_remove_ff()
{
	can_pass = true;
	new origins_count = ArraySize(ff_count);
	if(!origins_count)
		return;

	new i, classname[32], ent;
	for(i = 0; i < origins_count; i++)
	{
		ent = ArrayGetCell(ff_count, i);
		pev(ent, pev_classname, classname, charsmax(classname));

		if(!equal(classname, force_field_class))
			continue;

		entity_set_int(ent, EV_INT_effects, entity_get_int(ent, EV_INT_effects) | EF_NODRAW);
	}
	ColorChat(0, "!g%s!t Cele!g %d!t secunde au expirat. Acum poti face!n rush!t.", tag, get_pcvar_num(cvar_remove_ff));
}

public cmd_open_menu(id)
{
	if(!(get_user_flags(id) & ADMIN_ACCESS))
	{
		ColorChat(id, "!4%s!1 Doar!3 ADMINII!1 au acces!", tag);
		return PLUGIN_HANDLED;
	}
	
	new menu_name[128], origins_count = ArraySize(ff_count);
	formatex(menu_name, charsmax(menu_name), "\wCreeaza\r campuri de forta\w^nTotal:\y %d", origins_count);

	new menu = menu_create(menu_name, "menu_handler");
	menu_additem(menu, "\wCreeaza un camp", "1", 0);
	
	if(!origins_count)
	{
		menu_additem(menu, "\dSterge ultimul camp creeat", "2", 0);
		menu_additem(menu, "\dSterge toate campurile", "3", 0);
	}
	else
	{
		menu_additem(menu, "\wSterge ultimul camp creeat", "2", 0);
		menu_additem(menu, "\wSterge toate campurile", "3", 0);
	}
	
	if(!g_save_cpl)
		menu_additem(menu, "\dSalveaza toate campurile de forta", "4", 0);
	else
		menu_additem(menu, "\wSalveaza toate campurile de forta", "4", 0);

	menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
	menu_display(id, menu, 0);
		
	return PLUGIN_HANDLED;
}

public menu_handler(id, menu, item)
{
	if(item == MENU_EXIT)
	{
		menu_destroy(menu);
		return PLUGIN_HANDLED;
	}

	new origins_count = ArraySize(ff_count);
	switch(item)
	{
		case 0:
		{	
			g_save_cpl = true;
			
			new Float:fOrigins[3];
			fm_get_aim_origin(id, fOrigins);
			
			create_spawn(fOrigins);
			cmd_open_menu(id);
		}
		case 1:
		{
			if(!origins_count)
			{
				ColorChat(id, "!g%s !tNu am gasit niciun camp de forta. Creaza mai intai unul.", tag);
				menu_destroy(menu);
				cmd_open_menu(id);
				return PLUGIN_HANDLED;
			}
			
			origins_count--;
			remove_entity(ArrayGetCell(ff_count, origins_count));
			ArrayDeleteItem(ff_count, origins_count);
			ArrayDeleteItem(ff_origin_x, origins_count);
			ArrayDeleteItem(ff_origin_y, origins_count);
			ArrayDeleteItem(ff_origin_z, origins_count);
			
			ColorChat(id, "!g%s !tCamp eliminat cu succes.", tag);
			g_save_cpl = true;
			cmd_open_menu(id);
		}
		case 2:
		{
			if(!origins_count)
			{
				ColorChat(id, "!g%s !tNu am gasit niciun camp de forta. Creaza mai intai unul.", tag);
				cmd_open_menu(id);
				return PLUGIN_HANDLED;
			}
			new i;
			for(i = 0; i < origins_count; i++)
				remove_entity(ArrayGetCell(ff_count, i));
				
			ArrayClear(ff_count);
			ArrayClear(ff_origin_x);
			ArrayClear(ff_origin_y);
			ArrayClear(ff_origin_z);
			
			ColorChat(id, "!g%s !tAm sters toate cele !g%d !tcampuri de forta.", tag, origins_count);
			g_save_cpl = true;
			
			cmd_open_menu(id);
		}
		case 3:
		{
			if(!g_save_cpl)
			{
				cmd_open_menu(id);
				return PLUGIN_HANDLED;
			}
			
			g_save_cpl = false;
			set_maps_cfg();
			
			ColorChat(id, "!g%s !tAm salvat cu succes toate campurile de forta.", tag);
			cmd_open_menu(id);
		}
	}
	menu_destroy(menu);
	return PLUGIN_HANDLED;
}

public create_spawn(Float:fOrigins[3])
{
	new ent = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "info_target"));
	if(!pev_valid(ent))
		return;
	
	ArrayPushCell(ff_count, ent);
	ArrayPushCell(ff_origin_x, fOrigins[0]);
	ArrayPushCell(ff_origin_y, fOrigins[1]);
	ArrayPushCell(ff_origin_z, fOrigins[2]);
	
	set_pev(ent, pev_origin, fOrigins);
	engfunc(EngFunc_SetModel, ent, force_field_model);
	set_pev(ent, pev_solid, SOLID_TRIGGER);	// BBOX
	set_pev(ent, pev_movetype, MOVETYPE_NONE);
	set_pev(ent, pev_classname, force_field_class);
	set_pev(ent, pev_renderfx, kRenderFxGlowShell);
	set_pev(ent, pev_rendermode, kRenderTransAlpha);
	set_pev(ent, pev_renderamt, 50.0);
	
	new Float:color[3], cvar = get_pcvar_num(cvar_ff_color);
	color[0] = cvar == 0 ? random_float(0.0, 255.0) : cvar == 1 ? 255.0 : 0.0;
	color[1] = cvar == 0 ? random_float(0.0, 255.0) : cvar == 1 ? 0.0 : 0.0;
	color[2] = cvar == 0 ? random_float(0.0, 255.0) : cvar == 1 ? 0.0 : 255.0;
	set_pev(ent, pev_rendercolor, color);

	new Float:mins[3] = {-184.7, -63.5, -132.9};
	new Float:maxs[3] = {184.7, 63.5, 132.9};
	engfunc(EngFunc_SetSize, ent, mins, maxs);

	entity_set_int(ent, EV_INT_effects, entity_get_int(ent, EV_INT_effects) & ~EF_NODRAW);

	drop_to_floor(ent);
}

public fw_touch_player(touched, toucher)
{
	new access = get_pcvar_num(cvar_ff_restricted_team);
	if(get_user_team(toucher) == 1 && access == 2 || get_user_team(toucher) == 2 && access == 1 || can_pass)
		return;
	
	new Float:fOriginsToucher[3], Float:fOriginsEnt[3], i;
	pev(touched, pev_origin, fOriginsToucher);
	pev(toucher, pev_origin, fOriginsEnt);
		
	for(i = 0; i < 3; i++)
	{
		fOriginsEnt -= fOriginsToucher;
		fOriginsEnt *= 10.0;
	}
	
	set_pev(toucher, pev_velocity, fOriginsEnt);
	set_pev(toucher, pev_impulse, fOriginsEnt);
	ColorChat(toucher, "!g%s !tTocmai te-ai izbit de un camp de forta.", tag);
}

stock ColorChat(id, String[], any:...)
{
	static szMesage[192];
	vformat(szMesage, charsmax(szMesage), String, 3);
	
	replace_all(szMesage, charsmax(szMesage), "!n", "^1");
	replace_all(szMesage, charsmax(szMesage), "!t", "^3");
	replace_all(szMesage, charsmax(szMesage), "!g", "^4");
	
	static g_msg_SayText = 0;
	if(!g_msg_SayText)
		g_msg_SayText = get_user_msgid("SayText");
	
	new Players[32], iNum = 1, i;

 	if(id) Players[0] = id;
	else get_players(Players, iNum, "ch");
	
	for(--iNum; iNum >= 0; iNum--)
	{
		i = Players[iNum];
		
		message_begin(MSG_ONE_UNRELIABLE, g_msg_SayText, _, i);
		write_byte(i);
		write_string(szMesage);
		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 }
*/
User avatar
DevilBoy.eXe
Super moderator
Super moderator
Posts: 1677
Joined: 05 Jun 2016, 23:04
Detinator Steam: Da
Detinator server CS: GO.WARED.RO
SteamID: DevilBoy_eXe
Reputatie: Super Moderator
Fond eXtream: 0
Location: beyond the time
Discord: zeux.
Has thanked: 15 times
Been thanked: 71 times
Contact:

05 Jan 2018, 19:20

Adauga in server.cfg sv_restartround 1 si se rezolva
iulian2014
Membru, skill 0
Membru, skill 0
Posts: 91
Joined: 03 Jul 2016, 23:13
Detinator Steam: Nu
CS Status: Citesc forumul eXtreamCS.com...!
Fond eXtream: 0
Contact:

05 Jan 2018, 19:45

Revin cu edit .
EDIT: Nu merge , nu scrie nici: Timp de 25 de secunde nu poti face rush.
Si astept 25 de secunde si nu se intampla nimic , camp-urile tot sunt acolo.
User avatar
YONTU
Scripter eXtreamCS
Scripter eXtreamCS
Posts: 2466
Joined: 10 May 2013, 14:25
Detinator Steam: Nu
CS Status: Everyone is looking at ur shoes
Reputatie: Moderator ajutator
Fost scripter eXtreamCS
Location: Gura Humorului
Has thanked: 256 times
Been thanked: 288 times
Contact:

06 Jan 2018, 03:56

Te poti exprima altfel sa pot pricepe ce nu e clar cu pluginul? pentru ca n am inteles nimic..

Iti dau niste sfaturi:
- intai creeaza campurile prin comanda /camp
- da un restart la server mereu dupa ce ai creeat campurile
- asigura te sa ai modificate cvarurile dupa bunul plac si trece le in amxx.cfg
„Peste douăzeci de ani vei fi dezamăgit din cauza lucrurilor pe care nu le-ai făcut, nu din cauza celor pe care le-ai făcut.” - Mark Twain
„Asa e si in viata, hotii castiga, prostii care invata pierd.” - Mihai Nemeș


Bio.LeagueCs.Ro - Biohazard v4.4 Xmas Edition
discord: IonutC#5114

Experinta in: Java/Spring boot/Angular/C/C++/C#/Javascript/Python/HTML/CSS/Pawn/SQL
Ai nevoie de ajutorul meu? Ma poti gasi doar la adresa de discord de mai sus.
iulian2014
Membru, skill 0
Membru, skill 0
Posts: 91
Joined: 03 Jul 2016, 23:13
Detinator Steam: Nu
CS Status: Citesc forumul eXtreamCS.com...!
Fond eXtream: 0
Contact:

06 Jan 2018, 09:18

Gata , am rezolvat nu mai este nevoie.
Post Reply

Return to “Modificari pluginuri”

  • Information
  • Who is online

    Users browsing this forum: Mail.RU [Bot] and 7 guests