Заявка за плъгин - Respawn with time § hook

В този раздел можете да подавате всякакви заявки за намиране, изработка или преработка на плъгини/модове.
Аватар
SkandaU
Извън линия
Потребител
Потребител
Мнения: 213
Регистриран на: 09 Яну 2017, 12:37
Се отблагодари: 45 пъти
Получена благодарност: 22 пъти

Заявка за плъгин - Respawn with time § hook

Мнение от SkandaU » 21 Яну 2018, 15:23

Трябва ми respawn плъгин, който в началото на рунда брои две минути и спира respawn-a.
Ако може да има худ информация с известие - Respawn mode: 1:47 remaining. | Respawn mod has expired.

Също така искам да попитам за гънгейм, изтеглих си новия ReGunGame
- но когато свърши времето за мапа се сменя без да е достигнат последния левел и дефакто да е завършен
- когато времето на мапа е много, а бъде достигнато последното ниво всичко остава така и всеки играе на последните достигнати нива
та как да сихронизирам двете така, че когато бъде досатигнат последния левел да даде вод за нова мап и да я смени когато трябва

В далечното минало в деатръна койота имаше една хубава кука, която можеше да се използва три пъти и хваща само по стени, т.е. не може да летиш примерно ако я насочиш към небето...та някой може ли да го намери
Последно промяна от SkandaU на 21 Яну 2018, 16:13, променено общо 2 пъти.
Изображение

Аватар
OciXCrom
Извън линия
Администратор
Администратор
Мнения: 7206
Регистриран на: 06 Окт 2016, 19:20
Местоположение: /resetscore
Се отблагодари: 117 пъти
Получена благодарност: 1295 пъти
Обратна връзка:

Заявка за плъгин - Respawn with time

Мнение от OciXCrom » 21 Яну 2018, 15:35

Демек в момента имаш плъгин за respawn и искаш да се спре с таймера или искаш да се изработи плъгин за respawn и да се добави таймер в него? Ако е първото - качи плъгина. Ако ползваш друг метод за respawn - обясни.

Аватар
SkandaU
Извън линия
Потребител
Потребител
Мнения: 213
Регистриран на: 09 Яну 2017, 12:37
Се отблагодари: 45 пъти
Получена благодарност: 22 пъти

Заявка за плъгин - Respawn with time

Мнение от SkandaU » 21 Яну 2018, 16:11

Използвам респаун-а на вецо, и дефакто искам да се добави таймер към него или към друг плъгин - няма значение, който да отброява 2 минути и да спре респауна в сървъра.
Изображение

Аватар
OciXCrom
Извън линия
Администратор
Администратор
Мнения: 7206
Регистриран на: 06 Окт 2016, 19:20
Местоположение: /resetscore
Се отблагодари: 117 пъти
Получена благодарност: 1295 пъти
Обратна връзка:

Заявка за плъгин - Respawn with time § hook

Мнение от OciXCrom » 21 Яну 2018, 16:26

Качи плъгина тук за да видим дали трябва да се редактира.

Аватар
SkandaU
Извън линия
Потребител
Потребител
Мнения: 213
Регистриран на: 09 Яну 2017, 12:37
Се отблагодари: 45 пъти
Получена благодарност: 22 пъти

Заявка за плъгин - Respawn with time § hook

Мнение от SkandaU » 21 Яну 2018, 17:11

Код за потвърждение: Избери целия код

/*
---------------------------------------------------------
   #  #  #    #===    ###    ##    #
  #    ##     #===   #      #  #    #
   #   #      #===    ###    ##    #
---------------------------------------------------------
Respawn by <VeCo> 3.1

Plugin made by <VeCo>
Special thanks to:
 - papyrus_kn : for checking player's team when
		is connected to server and for fixing
		the spawn protection.
 - wwwhhheeeyyy : for the idea for bonus money on respawn
and random spawn version.
 - freedj : for the Zombie Plague version.
 - talibana : for the idea for bonus armor on respawn and
for the idea for the /respawn command.
 - Holder_ : for the idea for angle and view angle save in
	     the spawn point files.

If you modify the code, please DO NOT change the author!
---------------------------------------------------------
Contacts:
e-mail: [email protected]
skype: veco_kn
---------------------------------------------------------
Changes log:
 -> v 1.0 = First release!
 -> v 1.1 = Fixed bugs and not equip pistols if there is 
	    game_player_equip on the map. Plugin requires
	    engine module.
 -> v 1.2 = Removed unnecessary code.
	    Plugin don't needs cstrike module.
 -> v 1.3 = Fixed bug with spawn protection.
 -> v 1.4 = Fixed bug with respawn check.
 -> v 1.5 = Removed unnecessary code.
	    Plugin don't needs engine module.
 -> v 1.6 = Added CVAR for bonus money on respawn.
 -> v 1.7 = Fixed bug.
 -> v 2.0 = Zombie and hamsandwich versions are combinated
	    with the standart version.
 -> v 2.1 = Little optimization in spawn protection code.
 -> v 2.2 = Added CVARs for bonus armor on respawn.
	    The hamsandwich respawn is set by default.
 -> v 2.3 = Added chat command /respawn if something gets
	    bugged.
 -> v 3.0 = Standart version is removed.
	    Fixed bug with multiple respawn.
	    Added random respawn version (with CSDM spawn
	    points support;needs fakemeta module).
 -> v 3.1 = Added full CSDM support.
	    Added angle and view angle save in the spawn
	    point files.
---------------------------------------------------------
Don't forget to visit http://www.amxmodxbg.org :)
---------------------------------------------------------
*/

//#define ZOMBIE_PLAGUE // uncomment this line if you want to use this plugin for Zombie Plague
//#define RANDOM_SPAWNS // uncomment this line if you want to use the random respawn mode

#if defined RANDOM_SPAWNS
#define MAX_SPAWNS 50 // maximum allowed random spawn points in a map
#define ADMIN_ADD_SPAWN ADMIN_RCON // access level for respawn_add_spawn command
#endif

#include <amxmodx>
#include <hamsandwich>
#include <cstrike>
#include <fun>

#if defined ZOMBIE_PLAGUE
#include <zombieplague>
#endif

#if defined RANDOM_SPAWNS
#include <amxmisc>
#include <fakemeta>

enum
{
	COORD_ORIGIN = 0,
	COORD_ANGLES,
	COORD_VANGLES,
	MAX_COORD
}
#endif

new on_res,res_protect,res_time,res_protect_time,res_money,res_armor_type,res_armor
#if defined RANDOM_SPAWNS
new spawn_file[75],total_spawns,Float:spawn_coord_data[MAX_COORD][MAX_SPAWNS + 1][3]
#endif
public plugin_init()
{
	register_plugin("Respawn by <VeCo>", "3.1", "<VeCo>")
	
	RegisterHam(Ham_Spawn,"player","player_spawn",1)
	
	register_cvar("respawn_version", "3.1", FCVAR_SERVER|FCVAR_SPONLY)
	on_res = register_cvar("respawn_on","1")
	res_time = register_cvar("respawn_time","3.0")
	res_protect = register_cvar("respawn_protect","1")
	res_protect_time = register_cvar("respawn_protect_time","4.0")
	res_money = register_cvar("respawn_bonus_money","400")
	res_armor_type = register_cvar("respawn_bonus_armor_type","0")
	res_armor = register_cvar("respawn_bonus_armor","100")
	register_event("DeathMsg","hook_death","a")
	
	register_clcmd("say /respawn","force_respawn")
	register_clcmd("say_team /respawn","force_respawn")
	
#if defined RANDOM_SPAWNS
	register_concmd("respawn_add_spawn","admin_add_spawn",ADMIN_ADD_SPAWN)
	
	new mapname[32]
	get_mapname(mapname,31)
	formatex(spawn_file,74,"addons/amxmodx/configs/respawn_veco/%s.ini",mapname)
	
	if(!file_exists(spawn_file)) format(spawn_file,73,"addons/amxmodx/configs/csdm/%s.spawns.cfg",mapname)
	
	if(!file_exists(spawn_file))
	{
		log_amx("[RESPAWN] Spawn file doesn't exist! Standart spawn points will be used instead.")
		formatex(spawn_file,74,"addons/amxmodx/configs/respawn_veco/%s.ini",mapname)
	}
	
	load_random_spawns()
#endif
}

public client_putinserver(id)
{
	if(!get_pcvar_num(on_res)) return
	set_task(5.0,"respawn_check",id)
}

public hook_death()
{	
	if(!get_pcvar_num(on_res)) return
		
	new id = read_data(2)
	set_task(get_pcvar_float(res_time),"respawn_event", id)
}

public respawn_event(id)
{
	if(is_user_alive(id) || !is_user_connected(id) || cs_get_user_team(id) == CS_TEAM_SPECTATOR || cs_get_user_team(id) == CS_TEAM_UNASSIGNED) return
	
	ExecuteHamB(Ham_CS_RoundRespawn,id)
	
#if defined RANDOM_SPAWNS
	if(total_spawns > 0)
	{
		static get_random_spawn
		get_random_spawn = random(total_spawns)
		
		spawn_coord_data[COORD_ORIGIN][get_random_spawn][2] += 20.0
		set_pev(id,pev_origin,spawn_coord_data[COORD_ORIGIN][get_random_spawn])
		spawn_coord_data[COORD_ORIGIN][get_random_spawn][2] -= 20.0
		
		set_pev(id,pev_angles,spawn_coord_data[COORD_ANGLES][get_random_spawn])
		set_pev(id,pev_v_angle,spawn_coord_data[COORD_VANGLES][get_random_spawn])
		
		if(is_player_stuck(id)) ExecuteHamB(Ham_CS_RoundRespawn,id)
	}
#endif
	
	cs_set_user_money(id, cs_get_user_money(id) + get_pcvar_num(res_money))
	if(get_pcvar_num(res_armor_type) > 0) cs_set_user_armor(id,get_pcvar_num(res_armor),CsArmorType:get_pcvar_num(res_armor_type))
}

public remove_res_protection(id)
{
	if(!is_user_connected(id) || !is_user_alive(id)) return
	
	client_print(id,print_center,"Your spawn protection is OFF!")
	set_user_rendering(id)
	set_user_godmode(id,0)
}

public player_spawn(id)
{
	if(!is_user_connected(id) || !is_user_alive(id) || get_pcvar_num(res_protect) == 0) return
	
	switch(get_pcvar_num(res_protect))
	{
		case 1:
		{
			switch(cs_get_user_team(id))
			{
				case CS_TEAM_CT: set_user_rendering(id, kRenderFxGlowShell, 0,0,255, kRenderNormal, 50)
				case CS_TEAM_T: set_user_rendering(id, kRenderFxGlowShell, 255,0,0, kRenderNormal, 50)
			}
		}
		case 2: set_user_rendering(id, kRenderFxGlowShell, random(255),random(255),random(255), kRenderNormal, 50)
		case 3: set_user_rendering(id, kRenderFxGlowShell, 0,0,0, kRenderTransAlpha, 80)
	}
	set_user_godmode(id,1)
	set_task(get_pcvar_float(res_protect_time),"remove_res_protection",id)
	
#if defined RANDOM_SPAWNS
	if(total_spawns > 0)
	{
		static get_random_spawn
		get_random_spawn = random(total_spawns)
		
		spawn_coord_data[COORD_ORIGIN][get_random_spawn][2] += 20.0
		set_pev(id,pev_origin,spawn_coord_data[COORD_ORIGIN][get_random_spawn])
		spawn_coord_data[COORD_ORIGIN][get_random_spawn][2] -= 20.0
		
		set_pev(id,pev_angles,spawn_coord_data[COORD_ANGLES][get_random_spawn])
		set_pev(id,pev_v_angle,spawn_coord_data[COORD_VANGLES][get_random_spawn])
		
		if(is_player_stuck(id)) ExecuteHamB(Ham_CS_RoundRespawn,id)
	}
#endif
}

public respawn_check(id)
{
	if(!is_user_connected(id)) return
	
#if defined ZOMBIE_PLAGUE
	if(!is_user_alive(id) && zp_get_user_zombie(id) || zp_get_user_survivor(id))
#else
	if(!is_user_alive(id) && cs_get_user_team(id) == CS_TEAM_T || cs_get_user_team(id) == CS_TEAM_CT)
#endif
	{
		set_task(get_pcvar_float(res_time),"respawn_event", id)
	} else {
		set_task(5.0,"respawn_check",id)
	}
}

public force_respawn(id)
{
	if(!get_pcvar_num(on_res) || is_user_alive(id)) return
	remove_task(id)
	respawn_event(id)
}

#if defined RANDOM_SPAWNS
public admin_add_spawn(id,level,cid)
{
	if(!cmd_access(id,level,cid,1)) return PLUGIN_HANDLED
	
	if(total_spawns == MAX_SPAWNS)
	{
		console_print(id,"[RESPAWN] Spawn limit exceeded! Maximum amount of spawn points is: %i.",MAX_SPAWNS)
		return PLUGIN_HANDLED
	}
	
	static Float:origin[3],Float:angles[3],Float:vangles[3]
	pev(id,pev_origin,origin)
	pev(id,pev_angles,angles)
	pev(id,pev_v_angle,vangles)
	
	save_spawn(id,origin,angles,vangles)
	
	return PLUGIN_HANDLED
}

public save_spawn(id,Float:origin[3],Float:angles[3],Float:vangles[3])
{
	static save
	save = fopen(spawn_file,"at")
	if(save)
	{
		fprintf(save,"%.0f %.0f %.0f %.0f %.0f %.0f %.0f %.0f %.0f 0^n",origin[0],origin[1],origin[2], angles[0],angles[1],angles[2], vangles[0],vangles[1],vangles[2])
		fclose(save)
		
		console_print(id,"[RESPAWN] New random spawn point added at (%.0f , %.0f , %.0f) successfully!",origin[0],origin[1],origin[2])
		console_print(id,"[RESPAWN] Angles: (%.0f , %.0f , %.0f)",angles[0],angles[1],angles[2])
		console_print(id,"[RESPAWN] View Angles: (%.0f , %.0f , %.0f)",vangles[0],vangles[1],vangles[2])
		load_random_spawns()
	}
}

public load_random_spawns()
{
	total_spawns = 0
	
	static buffer[34], x[12],y[12],z[12], x_ang[12],y_ang[12],z_ang[12], x_vang[12],y_vang[12],z_vang[12]
	
	if(file_exists(spawn_file))
	{
		new save = fopen(spawn_file,"rt")
		
		if(!save) return
		
		while(!feof(save))
		{
			if(total_spawns == MAX_SPAWNS) break
			
			fgets(save,buffer,33)
			
			if(buffer[0] == ';' || !buffer[0]) continue
			
			parse(buffer, x,11,y,11,z,11, x_ang,11,y_ang,11,z_ang,11, x_vang,11,y_vang,11,z_vang,11)
			
			spawn_coord_data[COORD_ORIGIN][total_spawns][0] = str_to_float(x)
			spawn_coord_data[COORD_ORIGIN][total_spawns][1] = str_to_float(y)
			spawn_coord_data[COORD_ORIGIN][total_spawns][2] = str_to_float(z)
			
			spawn_coord_data[COORD_ANGLES][total_spawns][0] = str_to_float(x_ang)
			spawn_coord_data[COORD_ANGLES][total_spawns][1] = str_to_float(y_ang)
			spawn_coord_data[COORD_ANGLES][total_spawns][2] = str_to_float(z_ang)
			
			spawn_coord_data[COORD_VANGLES][total_spawns][0] = str_to_float(x_vang)
			spawn_coord_data[COORD_VANGLES][total_spawns][1] = str_to_float(y_vang)
			spawn_coord_data[COORD_VANGLES][total_spawns][2] = str_to_float(z_vang)
			
			total_spawns++
		}
		
		fclose(save)
	}
}

// Check if a player is stuck (credits to VEN)
stock is_player_stuck(id)
{
	static Float:originF[3]
	pev(id, pev_origin, originF)
	
	engfunc(EngFunc_TraceHull, originF, originF, 0, (pev(id, pev_flags) & FL_DUCKING) ? HULL_HEAD : HULL_HUMAN, id, 0)
	
	if (get_tr2(0, TraceResult:TR_StartSolid) || get_tr2(0, TraceResult:TR_AllSolid) || !get_tr2(0, TraceResult:TR_InOpen))
		return true;
	
	return false;
}
#endif
Както написах горе ако може да му се добави един hud с информация колко време остава от респауна и когато приключи
Изображение

Аватар
OciXCrom
Извън линия
Администратор
Администратор
Мнения: 7206
Регистриран на: 06 Окт 2016, 19:20
Местоположение: /resetscore
Се отблагодари: 117 пъти
Получена благодарност: 1295 пъти
Обратна връзка:

Заявка за плъгин - Respawn with time § hook

Мнение от OciXCrom » 21 Яну 2018, 19:53

Добави този плъгин:

Код за потвърждение: Избери целия код

#include <amxmodx>

#define RANDOM_COLOR random_num(50, 255)
#define TASK_TIMER 342356
#define TIME_SPEAK 5

new g_iTime,
	g_iObject,
	g_pCvar,
	g_pRespawn

public plugin_init()
{
	register_plugin("Disable Respawn", "1.0", "OciXCrom")
	g_pCvar = register_cvar("autorestart_time", "120")
	set_task(1.0, "DisplayTimer", TASK_TIMER, .flags = "b")
	g_iObject = CreateHudSyncObj()
}

public plugin_cfg()
{
	g_iTime = get_pcvar_num(g_pCvar)
	g_pRespawn = get_cvar_pointer("respawn_on")
	set_pcvar_num(g_pRespawn, 1)
}

public DisplayTimer()
{
	set_hudmessage(RANDOM_COLOR, RANDOM_COLOR, RANDOM_COLOR, -1.0, 0.2, 1, 0.1, 1.0, 0.1, 0.1)
	ShowSyncHudMsg(0, g_iObject, "Respawn mode: %i second%s remaining", g_iTime, g_iTime == 1 ? "" : "s")
	
	if(g_iTime <= TIME_SPEAK)
	{
		new szWord[32]
		num_to_word(g_iTime, szWord, charsmax(szWord))
		client_cmd(0, "spk ^"fvox/%s^"", szWord)
	}
	
	if(--g_iTime == 0)
	{
		remove_task(TASK_TIMER)
		client_cmd(0, "spk ^"fvox/flatline^"")
		set_pcvar_num(g_pRespawn, 0)
	}
}

Аватар
wrath
Извън линия
Потребител
Потребител
Мнения: 167
Регистриран на: 21 Яну 2018, 10:30
Местоположение: /changerace
Обратна връзка:

Заявка за плъгин - Respawn with time § hook

Мнение от wrath » 21 Яну 2018, 21:58

Това за което говориш не е "hook" ,а е "rope" ,ето ти плугин.

Koмaнди зa aдминитe c флaг "о":
+grаb - Упoтpeбa: bіnd ĸoпчe +grаb
grаb_tоgglе - Πpeвĸлючвa вaшия grаb
+hооk - Упoтpeбa: bіnd ĸoпчe +hооk
hооk_tоgglе - Πpeвĸлючвa вaшия hооk
+rоре - Упoтpeбa: bіnd ĸoпчe +rоре
rоре_tоgglе - Πpeвĸлючвa вaшeтo rоре

аmх_gіvе_grаb - Дaвa нa игpaч cпocoбнocттa зa grаb
аmх_gіvе_hооk - Дaвa нa игpaч cпocoбнocттa зa hооk
аmх_gіvе_rоре - Дaвa нa игpaч cпocoбнocттa зa rоре
аmх_tаkе_grаb - Bзимa cпocoбнocттa нa игpaч зa grаb
аmх_tаkе_hооk - Bзимa cпocoбнocттa нa игpaч зa hооk
аmх_tаkе_rоре - Bзимa cпocoбнocттa нa игpaч зa rоре
аmх_ghr_mеnu - Изĸapвa мeню ĸoeтo ви пoзвoлявa дa пpeвĸлючвaтe възмoжнocттa oбиĸнoвeннитe игpaчи дa изпoлзвaт grаb, hооk, или rоре.

СVАR-и:
grаb_ѕрееd - Cĸopocттa, c ĸoятo игpaчитe ce движaт ĸoгaтo ca grаbbеd (Dеfаult: 5)
hооk_ѕрееd - Cĸopocттa, c ĸoятo игpaчитe лeтят, ĸoгaтo пoлзвaт hооk (Dеfаult: 5)
rоре_ѕрееd - Cĸopocттa, c ĸoятo игpaчитe ce люлeят ĸoгaтo изпoлзвaт rоре (Dеfаult: 5)
grаb_еnаblеd - 1=пoзвoлявa нa вceĸи дa изпoлзвa grаb, 0=caмo нa aдминитe
hооk_еnаblеd - 1=пoзвoлявa нa вceĸи дa изпoлзвa hооk, 0=caмo нa aдминитe
rоре_еnаblеd - 1=пoзвoлявa нa вceĸи дa изпoлзвa rоре, 0=caмo нa aдминитe


Модули:
fun
fakemeta


[премахнат линк]

Просто сложи CVAR "grab_enabled - 0 ,hook_enbaled -0" ,относно това да може да се ползва 3 пъти - не е по силите ми. :o
Последно промяна от OciXCrom на 22 Яну 2018, 14:57, променено общо 1 път.
Причина: Нарушена т. 19 от Правилата на форума!
I am not big on sermons ,broken bones teach better lessons. Изображение Изображение

Аватар
SkandaU
Извън линия
Потребител
Потребител
Мнения: 213
Регистриран на: 09 Яну 2017, 12:37
Се отблагодари: 45 пъти
Получена благодарност: 22 пъти

Заявка за плъгин - Respawn with time § hook

Мнение от SkandaU » 22 Яну 2018, 00:24

За респаун плъгина:
1. Не се реска когато завърша мапа, а продължава да брои.. идеята е когато се завърши рунда да спре.
2. След като изтече времето респауна продължава.
3. Даже по едно време ми блокира респауна и никой не се съживяваше.

За "хука" -"горе" съм написал "кука", която хваща само по стени, а този, който си го дал хваща навсякъде, а това не ме устройва.
Изображение

Публикувай отговор
  • Подобни теми
    Отговори
    Преглеждания
     Последно мнение

Обратно към “Заявки за плъгини”

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 22 госта