Лека редакция на плъгина - ZP_Parachute!

В този раздел можете да подавате всякакви заявки за намиране, изработка или преработка на плъгини/модове.
Аватар
TSChannel
Извън линия
Потребител
Потребител
Мнения: 105
Регистриран на: 16 Апр 2019, 21:19

Лека редакция на плъгина - ZP_Parachute!

Мнение от TSChannel » 27 Апр 2019, 01:10

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

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

#include <amxmodx>
#include <fakemeta>
#include <zombieplague>

const Float:g_fFallspeed = -100.0


new parachutes_num[33]
new para_ent[33] = 0;
new Float:save_gravity[33] = 1.0;

public plugin_init()
{
	register_plugin("[ZP] Extra Item: Parachute", "1.1", "pharse")
	
	register_forward(FM_PlayerPreThink, "FW_PlayerPreThink");
}

public plugin_precache()
{
	precache_model("models/parachute.mdl")
}

public client_connect(id)
{
	parachute_reset(id)
}

public client_disconnect(id)
{
	parachute_reset(id)
}

public parachute_reset(id)
{
	if(para_ent[id] > 0) {
		if (pev_valid(para_ent[id]))
			EF_RemoveEntity(para_ent[id])
	}

	parachutes_num[id] = true
	para_ent[id] = 0;
	save_gravity[id] = 1.0;
}

public zp_user_humanzed_post(id) {

	if (!is_user_alive(id) ) {
		parachutes_num[id] = true
	}
}

public FW_PlayerPreThink(id)
{
	if (!is_user_alive(id) || zp_get_user_zombie(id) || !parachutes_num[id]) return
	
	new Float:frame

	new button = pev(id,pev_button)
	new oldbutton = pev(id,pev_oldbuttons)
	new flags = pev(id,pev_flags)

	if (para_ent[id] > 0 && (flags & FL_ONGROUND)) {
		
		set_pev(id,pev_gravity,save_gravity)
		EF_RemoveEntity(para_ent[id])
		para_ent[id] = 0
		remove_one_parachute(id)
		return
	}

	if ( (button & IN_USE) && !(flags & FL_ONGROUND) ) {

		new Float:velocity[3]
		pev(id,pev_velocity,velocity)

		if (velocity[2] < 0.0) {

			if(para_ent[id] <= 0) {
				para_ent[id] = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString,"info_target"))
				if(para_ent[id] > 0) {
					set_pev(para_ent[id],pev_classname,"parachute")
					set_pev(para_ent[id],pev_aiment,id)
					set_pev(para_ent[id],pev_owner,id)
					set_pev(para_ent[id],pev_movetype,MOVETYPE_FOLLOW)
					engfunc(EngFunc_SetModel,para_ent[id],"models/parachute.mdl")
					set_pev(para_ent[id],pev_sequence,0)
					set_pev(para_ent[id],pev_gaitsequence,1)
					set_pev(para_ent[id],pev_frame,0.0)
					set_pev(para_ent[id],pev_fuser1,0.0)
					pev(id,pev_gravity,save_gravity[id]);
				}
			}

			if (para_ent[id] > 0) {

				set_pev(id,pev_sequence,3)
				set_pev(id,pev_gaitsequence,1)
				set_pev(id,pev_frame,1.0)
				set_pev(id,pev_framerate,1.0)
				set_pev(id,pev_gravity,0.1)

				velocity[2] = (velocity[2] + 40.0 < g_fFallspeed) ? velocity[2] + 40.0 : g_fFallspeed
				set_pev(id,pev_velocity,velocity)

				if (pev(para_ent[id],pev_sequence) == 0) {

					frame = pev(para_ent[id],pev_fuser1) + 1.0
					set_pev(para_ent[id],pev_fuser1,frame)
					set_pev(para_ent[id],pev_frame,frame)

					if (frame > 100.0) {
						set_pev(para_ent[id],pev_animtime,0.0)
						set_pev(para_ent[id],pev_framerate,0.4)
						set_pev(para_ent[id],pev_sequence,1)
						set_pev(para_ent[id],pev_gaitsequence,1)
						set_pev(para_ent[id],pev_frame,0.0)
						set_pev(para_ent[id],pev_fuser1,0.0)
					}
				}
			}
		}
		else if (para_ent[id] > 0) {
			EF_RemoveEntity(para_ent[id])
			set_pev(id,pev_gravity,save_gravity[id])
			para_ent[id] = 0
			remove_one_parachute(id)
		}
	}
	else if ((oldbutton & IN_USE) && para_ent[id] > 0 ) {
		EF_RemoveEntity(para_ent[id])
		set_pev(id,pev_gravity,save_gravity[id])
		para_ent[id] = 0
		remove_one_parachute(id)
	}
}

public remove_one_parachute(id)
{
	#if defined WHOLE_ROUND
	return;
	#endif
	parachutes_num[id] -= 5;
	
	if (parachutes_num[id] > 5 )
		client_print(id, print_chat, "[ZP] You still have %d Parachutes.", parachutes_num[id]);
}

public EF_RemoveEntity(ENTITY)
{
	engfunc(EngFunc_RemoveEntity, ENTITY);
}
-=Zombie Plague 4.3=-[Jetpack - UltimateAmmo|BestItems - Skins|FreeVIP]
Join Now - 93.123.18.40:27018
-=Zombie Plague 4.3=-

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

Лека редакция на плъгина - ZP_Parachute!

Мнение от OciXCrom » 27 Апр 2019, 01:34

Отново заглавието е от вида на "Редакция на Х". Добави информация за каква редакция става дума...

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

#include <amxmodx>
#include <fakemeta>
#include <zombieplague>

const Float:g_fFallspeed = -100.0


new parachutes_num[33]
new para_ent[33] = 0;
new Float:save_gravity[33] = 1.0;

public plugin_init()
{
	register_plugin("[ZP] Extra Item: Parachute", "1.1", "pharse")

	register_forward(FM_PlayerPreThink, "FW_PlayerPreThink");
}

public plugin_precache()
{
	precache_model("models/parachute.mdl")
}

public client_connect(id)
{
	parachute_reset(id)
}

public client_disconnect(id)
{
	parachute_reset(id)
}

public parachute_reset(id)
{
	if(para_ent[id] > 0) {
		if (pev_valid(para_ent[id]))
			EF_RemoveEntity(para_ent[id])
	}

	parachutes_num[id] = true
	para_ent[id] = 0;
	save_gravity[id] = 1.0;
}

public zp_user_humanzed_post(id) {

	if (!is_user_alive(id) ) {
		parachutes_num[id] = true
	}
}

public FW_PlayerPreThink(id)
{
	if (!is_user_alive(id) || !parachutes_num[id]) return

	new Float:frame

	new button = pev(id,pev_button)
	new oldbutton = pev(id,pev_oldbuttons)
	new flags = pev(id,pev_flags)

	if (para_ent[id] > 0 && (flags & FL_ONGROUND)) {

		set_pev(id,pev_gravity,save_gravity)
		EF_RemoveEntity(para_ent[id])
		para_ent[id] = 0
		remove_one_parachute(id)
		return
	}

	if ( (button & IN_USE) && !(flags & FL_ONGROUND) ) {

		new Float:velocity[3]
		pev(id,pev_velocity,velocity)

		if (velocity[2] < 0.0) {

			if(para_ent[id] <= 0) {
				para_ent[id] = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString,"info_target"))
				if(para_ent[id] > 0) {
					set_pev(para_ent[id],pev_classname,"parachute")
					set_pev(para_ent[id],pev_aiment,id)
					set_pev(para_ent[id],pev_owner,id)
					set_pev(para_ent[id],pev_movetype,MOVETYPE_FOLLOW)
					engfunc(EngFunc_SetModel,para_ent[id],"models/parachute.mdl")
					set_pev(para_ent[id],pev_sequence,0)
					set_pev(para_ent[id],pev_gaitsequence,1)
					set_pev(para_ent[id],pev_frame,0.0)
					set_pev(para_ent[id],pev_fuser1,0.0)
					pev(id,pev_gravity,save_gravity[id]);
				}
			}

			if (para_ent[id] > 0) {

				set_pev(id,pev_sequence,3)
				set_pev(id,pev_gaitsequence,1)
				set_pev(id,pev_frame,1.0)
				set_pev(id,pev_framerate,1.0)
				set_pev(id,pev_gravity,0.1)

				velocity[2] = (velocity[2] + 40.0 < g_fFallspeed) ? velocity[2] + 40.0 : g_fFallspeed
				set_pev(id,pev_velocity,velocity)

				if (pev(para_ent[id],pev_sequence) == 0) {

					frame = pev(para_ent[id],pev_fuser1) + 1.0
					set_pev(para_ent[id],pev_fuser1,frame)
					set_pev(para_ent[id],pev_frame,frame)

					if (frame > 100.0) {
						set_pev(para_ent[id],pev_animtime,0.0)
						set_pev(para_ent[id],pev_framerate,0.4)
						set_pev(para_ent[id],pev_sequence,1)
						set_pev(para_ent[id],pev_gaitsequence,1)
						set_pev(para_ent[id],pev_frame,0.0)
						set_pev(para_ent[id],pev_fuser1,0.0)
					}
				}
			}
		}
		else if (para_ent[id] > 0) {
			EF_RemoveEntity(para_ent[id])
			set_pev(id,pev_gravity,save_gravity[id])
			para_ent[id] = 0
			remove_one_parachute(id)
		}
	}
	else if ((oldbutton & IN_USE) && para_ent[id] > 0 ) {
		EF_RemoveEntity(para_ent[id])
		set_pev(id,pev_gravity,save_gravity[id])
		para_ent[id] = 0
		remove_one_parachute(id)
	}
}

public remove_one_parachute(id)
{
	#if defined WHOLE_ROUND
	return;
	#endif
	parachutes_num[id] -= 5;

	if (parachutes_num[id] > 5 )
		client_print(id, print_chat, "[ZP] You still have %d Parachutes.", parachutes_num[id]);
}

public EF_RemoveEntity(ENTITY)
{
	engfunc(EngFunc_RemoveEntity, ENTITY);
}
Скоростта се променя от първия ред след #include-овете.

Аватар
TSChannel
Извън линия
Потребител
Потребител
Мнения: 105
Регистриран на: 16 Апр 2019, 21:19

Лека редакция на плъгина - ZP_Parachute!

Мнение от TSChannel » 27 Апр 2019, 01:42

OciXCrom написа: 27 Апр 2019, 01:34 Отново заглавието е от вида на "Редакция на Х". Добави информация за каква редакция става дума...

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

#include <amxmodx>
#include <fakemeta>
#include <zombieplague>

const Float:g_fFallspeed = -100.0


new parachutes_num[33]
new para_ent[33] = 0;
new Float:save_gravity[33] = 1.0;

public plugin_init()
{
	register_plugin("[ZP] Extra Item: Parachute", "1.1", "pharse")

	register_forward(FM_PlayerPreThink, "FW_PlayerPreThink");
}

public plugin_precache()
{
	precache_model("models/parachute.mdl")
}

public client_connect(id)
{
	parachute_reset(id)
}

public client_disconnect(id)
{
	parachute_reset(id)
}

public parachute_reset(id)
{
	if(para_ent[id] > 0) {
		if (pev_valid(para_ent[id]))
			EF_RemoveEntity(para_ent[id])
	}

	parachutes_num[id] = true
	para_ent[id] = 0;
	save_gravity[id] = 1.0;
}

public zp_user_humanzed_post(id) {

	if (!is_user_alive(id) ) {
		parachutes_num[id] = true
	}
}

public FW_PlayerPreThink(id)
{
	if (!is_user_alive(id) || !parachutes_num[id]) return

	new Float:frame

	new button = pev(id,pev_button)
	new oldbutton = pev(id,pev_oldbuttons)
	new flags = pev(id,pev_flags)

	if (para_ent[id] > 0 && (flags & FL_ONGROUND)) {

		set_pev(id,pev_gravity,save_gravity)
		EF_RemoveEntity(para_ent[id])
		para_ent[id] = 0
		remove_one_parachute(id)
		return
	}

	if ( (button & IN_USE) && !(flags & FL_ONGROUND) ) {

		new Float:velocity[3]
		pev(id,pev_velocity,velocity)

		if (velocity[2] < 0.0) {

			if(para_ent[id] <= 0) {
				para_ent[id] = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString,"info_target"))
				if(para_ent[id] > 0) {
					set_pev(para_ent[id],pev_classname,"parachute")
					set_pev(para_ent[id],pev_aiment,id)
					set_pev(para_ent[id],pev_owner,id)
					set_pev(para_ent[id],pev_movetype,MOVETYPE_FOLLOW)
					engfunc(EngFunc_SetModel,para_ent[id],"models/parachute.mdl")
					set_pev(para_ent[id],pev_sequence,0)
					set_pev(para_ent[id],pev_gaitsequence,1)
					set_pev(para_ent[id],pev_frame,0.0)
					set_pev(para_ent[id],pev_fuser1,0.0)
					pev(id,pev_gravity,save_gravity[id]);
				}
			}

			if (para_ent[id] > 0) {

				set_pev(id,pev_sequence,3)
				set_pev(id,pev_gaitsequence,1)
				set_pev(id,pev_frame,1.0)
				set_pev(id,pev_framerate,1.0)
				set_pev(id,pev_gravity,0.1)

				velocity[2] = (velocity[2] + 40.0 < g_fFallspeed) ? velocity[2] + 40.0 : g_fFallspeed
				set_pev(id,pev_velocity,velocity)

				if (pev(para_ent[id],pev_sequence) == 0) {

					frame = pev(para_ent[id],pev_fuser1) + 1.0
					set_pev(para_ent[id],pev_fuser1,frame)
					set_pev(para_ent[id],pev_frame,frame)

					if (frame > 100.0) {
						set_pev(para_ent[id],pev_animtime,0.0)
						set_pev(para_ent[id],pev_framerate,0.4)
						set_pev(para_ent[id],pev_sequence,1)
						set_pev(para_ent[id],pev_gaitsequence,1)
						set_pev(para_ent[id],pev_frame,0.0)
						set_pev(para_ent[id],pev_fuser1,0.0)
					}
				}
			}
		}
		else if (para_ent[id] > 0) {
			EF_RemoveEntity(para_ent[id])
			set_pev(id,pev_gravity,save_gravity[id])
			para_ent[id] = 0
			remove_one_parachute(id)
		}
	}
	else if ((oldbutton & IN_USE) && para_ent[id] > 0 ) {
		EF_RemoveEntity(para_ent[id])
		set_pev(id,pev_gravity,save_gravity[id])
		para_ent[id] = 0
		remove_one_parachute(id)
	}
}

public remove_one_parachute(id)
{
	#if defined WHOLE_ROUND
	return;
	#endif
	parachutes_num[id] -= 5;

	if (parachutes_num[id] > 5 )
		client_print(id, print_chat, "[ZP] You still have %d Parachutes.", parachutes_num[id]);
}

public EF_RemoveEntity(ENTITY)
{
	engfunc(EngFunc_RemoveEntity, ENTITY);
}
Скоростта се променя от първия ред след #include-овете.
:lock: :lock: :lock:
-=Zombie Plague 4.3=-[Jetpack - UltimateAmmo|BestItems - Skins|FreeVIP]
Join Now - 93.123.18.40:27018
-=Zombie Plague 4.3=-

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

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

Кой е на линия

Потребители разглеждащи този форум: Semrush [Bot] и 32 госта