Discord sunucumuz açılmıştır, hepinizi bekleriz

https://discord.gg/43gGDQe6tS

Parasut sorunu

Eklenti sorunlarınız ve özel eklenti istekleriniz

Moderatör: Moderatörler


Konu Sahibi
SeptMonster
Mesajlar: 104
Kayıt: Sal Kas 06, 2018 3:53 pm

Parasut sorunu

Mesaj gönderen SeptMonster »

Şu iki paraşüt eklentisi arasında şöyle bir fark var.
1 numaralı olan diğerinden daha performanslı çalısıyor ama oyunda paraşüt modelini gostermiyor.
2 numaralı olan da modeli gösteriyor ama diğeri kadar performanslı ddeğil yani paraşüt basılınca hafif takılmalar oluyor.
ama bu 2 paraşüt eeklentisinin ortak bir yönü var o da gravity sıfırlamaması.
benim sizdden isteğim 1 numaralı eklentiyi modeli gösterir hale getirmeniz. şimdiden teşekkürlr.
Bu mesaja eklenen dosyaları görüntülemek için gerekli izinlere sahip değilsiniz.

Link:
Linklerini gizle
Linki Kopyala
Kullanıcı avatarı

Necati Doğan
Mesajlar: 822
Kayıt: Prş Haz 07, 2018 6:18 pm
Konum: İstanbul
Clan İsmi: Ke$`h Gaming
İletişim:

Parasut sorunu

Mesaj gönderen Necati Doğan »

Dener misin?

Kod: Tümünü seç

#include <amxmodx>
#include <engine>
#include <reapi>

new const sz_model[] = "models/parachute.mdl";

new g_ent[33], bool:g_alive[33], Float:g_gravity[33];
new sv_parachute, team;

public plugin_init() {
	register_plugin("ReParachute", "1.0", "PurposeLess");

	RegisterHookChain(RG_CBasePlayer_PreThink, "CBasePlayer_PreThink");
	RegisterHookChain(RG_CBasePlayer_Spawn, "CBasePlayer_Spawn", .post=true);
	RegisterHookChain(RG_CBasePlayer_Killed, "CBasePlayer_Killed", .post=true);

	bind_pcvar_num(create_cvar("sv_parachute", "1", _, _, true, 0.0, true, 1.0), sv_parachute);

	team = register_cvar("sv_parachute_team", "0");
}

public plugin_precache()
{
	precache_model(sz_model);
}

public CBasePlayer_Spawn(const id)
{
	if(is_user_alive(id))
	{
		if(itsok(id))
		{
			g_alive[id] = true;
		}
		g_gravity[id] = 1.0;
	}
}

itsok(const id)
{
	new pcvar = get_pcvar_num(team);

	switch(pcvar)
	{
		case 1: {
			if(get_member(id, m_iTeam) == TEAM_TERRORIST)
			{
				return true;
			}
		}
		case 2: {
			if(get_member(id, m_iTeam) == TEAM_CT)
			{
				return true;
			}
		}
		default:{
			return true;
		}
	}
	return false;
}

public CBasePlayer_Killed(const victim, const attacker)
{
	#pragma unused attacker

	g_alive[victim] = false;

	if(g_ent[victim] > 0)
	{
		remove_entity(g_ent[victim]);
		g_ent[victim] = 0;
	}
}

public client_putinserver(id)
{
	g_gravity[id] = 1.0;
}

public client_disconnected(id)
{
	g_alive[id] = false;

	if(g_ent[id] > 0)
	{
		remove_entity(g_ent[id]);
		g_ent[id] = 0;
	}
}

public CBasePlayer_PreThink(const id)
{
	if(!(sv_parachute && g_alive[id]))
	{
		return HC_CONTINUE;
	}

	static Float:frame;
	static flags; flags = get_entvar(id, var_flags);
	static button; button = get_entvar(id, var_button);
	static oldbuttons; oldbuttons = get_entvar(id, var_oldbuttons);
	static Float:gravity; gravity = get_entvar(id, var_gravity);

	if(g_ent[id] > 0 && (flags & FL_ONGROUND))
	{
		if(entity_get_int(g_ent[id], EV_INT_sequence) != 2)
		{
			entity_set_int(g_ent[id], EV_INT_sequence, 2);
			entity_set_int(g_ent[id], EV_INT_gaitsequence, 1);
			entity_set_float(g_ent[id], EV_FL_frame, 0.0);
			entity_set_float(g_ent[id], EV_FL_fuser1, 0.0);
			entity_set_float(g_ent[id], EV_FL_animtime, 0.0);
			entity_set_float(g_ent[id], EV_FL_framerate, 0.0);

			return HC_CONTINUE;
		}

		frame = entity_get_float(g_ent[id], EV_FL_fuser1) + 2.0;
		entity_set_float(g_ent[id], EV_FL_fuser1, frame);
		entity_set_float(g_ent[id], EV_FL_frame, frame);

		if(frame > 254.0)
		{
			remove_entity(g_ent[id]);
			g_ent[id] = 0;
		}
	}
//forum.csduragi.com
	if(gravity == 0.1)
	{
		set_entvar(id, var_gravity, g_gravity[id]);
	}
	else
	{
		g_gravity[id] = get_entvar(id, var_gravity);
	}

	if(button & IN_USE)
	{
		static Float:velocity[3];
		get_entvar(id, var_velocity, velocity);

		if(velocity[2] < 0.0)
		{
			if(g_ent[id] < 1)
			{
				g_ent[id] = create_entity("info_target");

				if(g_ent[id] > 0)
				{
					entity_set_model(g_ent[id], sz_model)
					entity_set_string(g_ent[id], EV_SZ_model, sz_model);
					entity_set_string(g_ent[id], EV_SZ_classname, "parachute");
					entity_set_edict(g_ent[id], EV_ENT_aiment, id);
					entity_set_edict(g_ent[id], EV_ENT_owner, id);
					entity_set_int(g_ent[id], EV_INT_movetype, MOVETYPE_FOLLOW);
					entity_set_int(g_ent[id], EV_INT_sequence, 0);
					entity_set_int(g_ent[id], EV_INT_gaitsequence, 1);
					entity_set_float(g_ent[id], EV_FL_frame, 0.0);
					entity_set_float(g_ent[id], EV_FL_fuser1, 0.0);
				}
			}
			else if(g_ent[id] > 0)
			{
				velocity[2] = (velocity[2] + 40.0 < -100.0) ? velocity[2] + 40.0 : -100.0;

				set_entvar(id, var_gravity, 0.1);
				set_entvar(id, var_velocity, velocity);
				set_entvar(id, var_sequence, 3);
				set_entvar(id, var_gaitsequence, 1);
				set_entvar(id, var_frame, 1.0);
				set_entvar(id, var_framerate, 1.0);

				if(entity_get_int(g_ent[id], EV_INT_sequence) == 0)
				{
					frame = entity_get_float(g_ent[id], EV_FL_fuser1) + 1.0;
					entity_set_float(g_ent[id], EV_FL_fuser1, frame);
					entity_set_float(g_ent[id], EV_FL_frame, frame);

					if(frame > 100.0)
					{
						entity_set_int(g_ent[id], EV_INT_sequence, 1);
						entity_set_int(g_ent[id], EV_INT_gaitsequence, 1);
						entity_set_float(g_ent[id], EV_FL_frame, 0.0);
						entity_set_float(g_ent[id], EV_FL_fuser1, 0.0);
						entity_set_float(g_ent[id], EV_FL_animtime, 0.0);
						entity_set_float(g_ent[id], EV_FL_framerate, 0.4);
					}
				}
			}
		}
		else if(g_ent[id] > 0)
		{
			set_entvar(id, var_gravity, g_gravity[id]);
			remove_entity(g_ent[id]);
			g_ent[id] = 0;
		}
	}
	else if(oldbuttons & IN_USE && g_ent[id] > 0)
	{
		set_entvar(id, var_gravity, g_gravity[id]);
		remove_entity(g_ent[id]);
		g_ent[id] = 0;
	}

	return HC_CONTINUE;
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1055\\ f0\\ fs16 \n\\ par }
*/

Link:
Linklerini gizle
Linki Kopyala

Konu Sahibi
SeptMonster
Mesajlar: 104
Kayıt: Sal Kas 06, 2018 3:53 pm

Parasut sorunu

Mesaj gönderen SeptMonster »

Necati Doğan yazdı: Pzt Şub 04, 2019 9:19 pm Dener misin?

Kod: Tümünü seç

#include <amxmodx>
#include <engine>
#include <reapi>

new const sz_model[] = "models/parachute.mdl";

new g_ent[33], bool:g_alive[33], Float:g_gravity[33];
new sv_parachute, team;

public plugin_init() {
	register_plugin("ReParachute", "1.0", "PurposeLess");

	RegisterHookChain(RG_CBasePlayer_PreThink, "CBasePlayer_PreThink");
	RegisterHookChain(RG_CBasePlayer_Spawn, "CBasePlayer_Spawn", .post=true);
	RegisterHookChain(RG_CBasePlayer_Killed, "CBasePlayer_Killed", .post=true);

	bind_pcvar_num(create_cvar("sv_parachute", "1", _, _, true, 0.0, true, 1.0), sv_parachute);

	team = register_cvar("sv_parachute_team", "0");
}

public plugin_precache()
{
	precache_model(sz_model);
}

public CBasePlayer_Spawn(const id)
{
	if(is_user_alive(id))
	{
		if(itsok(id))
		{
			g_alive[id] = true;
		}
		g_gravity[id] = 1.0;
	}
}

itsok(const id)
{
	new pcvar = get_pcvar_num(team);

	switch(pcvar)
	{
		case 1: {
			if(get_member(id, m_iTeam) == TEAM_TERRORIST)
			{
				return true;
			}
		}
		case 2: {
			if(get_member(id, m_iTeam) == TEAM_CT)
			{
				return true;
			}
		}
		default:{
			return true;
		}
	}
	return false;
}

public CBasePlayer_Killed(const victim, const attacker)
{
	#pragma unused attacker

	g_alive[victim] = false;

	if(g_ent[victim] > 0)
	{
		remove_entity(g_ent[victim]);
		g_ent[victim] = 0;
	}
}

public client_putinserver(id)
{
	g_gravity[id] = 1.0;
}

public client_disconnected(id)
{
	g_alive[id] = false;

	if(g_ent[id] > 0)
	{
		remove_entity(g_ent[id]);
		g_ent[id] = 0;
	}
}

public CBasePlayer_PreThink(const id)
{
	if(!(sv_parachute && g_alive[id]))
	{
		return HC_CONTINUE;
	}

	static Float:frame;
	static flags; flags = get_entvar(id, var_flags);
	static button; button = get_entvar(id, var_button);
	static oldbuttons; oldbuttons = get_entvar(id, var_oldbuttons);
	static Float:gravity; gravity = get_entvar(id, var_gravity);

	if(g_ent[id] > 0 && (flags & FL_ONGROUND))
	{
		if(entity_get_int(g_ent[id], EV_INT_sequence) != 2)
		{
			entity_set_int(g_ent[id], EV_INT_sequence, 2);
			entity_set_int(g_ent[id], EV_INT_gaitsequence, 1);
			entity_set_float(g_ent[id], EV_FL_frame, 0.0);
			entity_set_float(g_ent[id], EV_FL_fuser1, 0.0);
			entity_set_float(g_ent[id], EV_FL_animtime, 0.0);
			entity_set_float(g_ent[id], EV_FL_framerate, 0.0);

			return HC_CONTINUE;
		}

		frame = entity_get_float(g_ent[id], EV_FL_fuser1) + 2.0;
		entity_set_float(g_ent[id], EV_FL_fuser1, frame);
		entity_set_float(g_ent[id], EV_FL_frame, frame);

		if(frame > 254.0)
		{
			remove_entity(g_ent[id]);
			g_ent[id] = 0;
		}
	}
//forum.csduragi.com
	if(gravity == 0.1)
	{
		set_entvar(id, var_gravity, g_gravity[id]);
	}
	else
	{
		g_gravity[id] = get_entvar(id, var_gravity);
	}

	if(button & IN_USE)
	{
		static Float:velocity[3];
		get_entvar(id, var_velocity, velocity);

		if(velocity[2] < 0.0)
		{
			if(g_ent[id] < 1)
			{
				g_ent[id] = create_entity("info_target");

				if(g_ent[id] > 0)
				{
					entity_set_model(g_ent[id], sz_model)
					entity_set_string(g_ent[id], EV_SZ_model, sz_model);
					entity_set_string(g_ent[id], EV_SZ_classname, "parachute");
					entity_set_edict(g_ent[id], EV_ENT_aiment, id);
					entity_set_edict(g_ent[id], EV_ENT_owner, id);
					entity_set_int(g_ent[id], EV_INT_movetype, MOVETYPE_FOLLOW);
					entity_set_int(g_ent[id], EV_INT_sequence, 0);
					entity_set_int(g_ent[id], EV_INT_gaitsequence, 1);
					entity_set_float(g_ent[id], EV_FL_frame, 0.0);
					entity_set_float(g_ent[id], EV_FL_fuser1, 0.0);
				}
			}
			else if(g_ent[id] > 0)
			{
				velocity[2] = (velocity[2] + 40.0 < -100.0) ? velocity[2] + 40.0 : -100.0;

				set_entvar(id, var_gravity, 0.1);
				set_entvar(id, var_velocity, velocity);
				set_entvar(id, var_sequence, 3);
				set_entvar(id, var_gaitsequence, 1);
				set_entvar(id, var_frame, 1.0);
				set_entvar(id, var_framerate, 1.0);

				if(entity_get_int(g_ent[id], EV_INT_sequence) == 0)
				{
					frame = entity_get_float(g_ent[id], EV_FL_fuser1) + 1.0;
					entity_set_float(g_ent[id], EV_FL_fuser1, frame);
					entity_set_float(g_ent[id], EV_FL_frame, frame);

					if(frame > 100.0)
					{
						entity_set_int(g_ent[id], EV_INT_sequence, 1);
						entity_set_int(g_ent[id], EV_INT_gaitsequence, 1);
						entity_set_float(g_ent[id], EV_FL_frame, 0.0);
						entity_set_float(g_ent[id], EV_FL_fuser1, 0.0);
						entity_set_float(g_ent[id], EV_FL_animtime, 0.0);
						entity_set_float(g_ent[id], EV_FL_framerate, 0.4);
					}
				}
			}
		}
		else if(g_ent[id] > 0)
		{
			set_entvar(id, var_gravity, g_gravity[id]);
			remove_entity(g_ent[id]);
			g_ent[id] = 0;
		}
	}
	else if(oldbuttons & IN_USE && g_ent[id] > 0)
	{
		set_entvar(id, var_gravity, g_gravity[id]);
		remove_entity(g_ent[id]);
		g_ent[id] = 0;
	}

	return HC_CONTINUE;
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1055\\ f0\\ fs16 \n\\ par }
*/
teşekkür ediyorum üstad. bütün sır şurada mıymış "entity_set_model(g_ent[id], sz_model)" :D

Link:
Linklerini gizle
Linki Kopyala
Cevapla