[ZP] Unstuck

Descarcari de pluginuri si discutii despre acestea.

Moderators: Moderatori ajutători, Scripteri TheXForce

Post Reply
User avatar
Rainq
Fost administrator
Fost administrator
Posts: 381
Joined: Mon Jan 18, 2021 7:25 am
Status: Citesc forumul TheXForce.RO...!
Detinator Steam: Da
SteamID: mrainq
Gaming experience: Nu spun..
Reputatie: Fost administrator
Nume anterior: Light
Fost detinator zm.thexforce.ro
Fost detinator dr.thexforce.ro
Location: Bucureşti
Has thanked: 2 times
Been thanked: 1 time
Contact:

[ZP] Unstuck

Post by Rainq »

Descriere: Unstuck , eu l-am setat sa fie in meniu ,intrati in addons cautati menu_game(id, key) si unde aveti voi acel case cu unstuck modificati simplu doar asa:

Code: Select all

case 3(sau la ce numar aveti voi unstuck): client_cmd(id, "say /unstuck"); // unstuck
simplu si usor dar eficient

Descarcare:

Code: Select all

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

#define MAX_CLIENTS     32
#define START_DISTANCE  32
#define MAX_ATTEMPTS    128
#define GetPlayerHullSize(%1)  ( ( pev ( %1, pev_flags ) & FL_DUCKING ) ? HULL_HEAD : HULL_HUMAN )

new Float:gf_LastCmdTime [ MAX_CLIENTS + 1 ];

enum Coord_e
{
	Float:x,
	Float:y,
	Float:z
};

public plugin_init ( )
{
	register_plugin ( "AMXX Unstuck", "1.7.2", "AMXX Dev Builder" );
	register_clcmd ( "say /unstuck", "FunC_CheckStuck", -1 );
	register_clcmd ( "say /stuck", "FunC_CheckStuck", -1 );
	register_clcmd ( "say /unblock", "FunC_CheckStuck", -1 );
}
			
public FunC_CheckStuck ( const iPlayer)
{
	gf_LastCmdTime [ iPlayer ] = get_gametime ( );
	UnstuckPlayer ( iPlayer, START_DISTANCE, MAX_ATTEMPTS ) != 1;
	
	return 1;
}

public UnstuckPlayer ( const id, const i_StartDistance, const i_MaxAttempts )
{
	if ( is_user_alive ( id ) || zp_get_user_zombie ( id ) )
	{
		static Float:vf_OriginalOrigin [ Coord_e ], Float:vf_NewOrigin [ Coord_e ];
		static i_Attempts, i_Distance;
		
		pev ( id, pev_origin, vf_OriginalOrigin );
		i_Distance = i_StartDistance;
		
		while ( i_Distance < 1000 )
		{
			i_Attempts = i_MaxAttempts;
		
			while ( i_Attempts-- )
			{
				vf_NewOrigin [ x ] = random_float ( vf_OriginalOrigin [ x ] - i_Distance, vf_OriginalOrigin [ x ] + i_Distance );
				vf_NewOrigin [ y ] = random_float ( vf_OriginalOrigin [ y ] - i_Distance, vf_OriginalOrigin [ y ] + i_Distance );
				vf_NewOrigin [ z ] = random_float ( vf_OriginalOrigin [ z ] - i_Distance, vf_OriginalOrigin [ z ] + i_Distance );
				
				engfunc ( EngFunc_TraceHull, vf_NewOrigin, vf_NewOrigin, DONT_IGNORE_MONSTERS, GetPlayerHullSize ( id ), id, 0 );
				
				if ( get_tr2 ( 0, TR_InOpen ) && !get_tr2 ( 0, TR_AllSolid ) && !get_tr2 ( 0, TR_StartSolid ) )
				{
					engfunc ( EngFunc_SetOrigin, id, vf_NewOrigin );
					client_cmd ( id, "spk fvox/blip.wav" );
					return 1;
				}
			}
			i_Distance += i_StartDistance;
		}
	}
        return 0;
}
Nume: Unstuck
Versiune: 1.7.2
Link oficial: cspower / thexforce

Instalare:
1. Fisierul unstuck.sma il puneti in addons/amxmodx/scripting
2. Fisierul unstuck.amxx il puneti in addons/amxmodx/plugins
3. Intrati in fisierul addons/amxmodx/configs/plugins.ini si adaugati la urma:

Code: Select all

unstuck.amxx
4. Alti pasi necesari....

Cvar-uri (se adauga in fisierul amxmodx\configs\amxx.cfg): -
Imagini: -
Image
Post Reply

Return to “Pluginuri”