Raised This Month: $ Target: $400
 0% 

Detect another player


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
XMazteRX
Junior Member
Join Date: Jul 2007
Old 10-09-2010 , 16:22   Detect another player
Reply With Quote #1

Hello! How do I do that Unstuck is not react when you stand in another player?
In the current situation you will be Unstucked when you stand in another player. I tried to fix this by encoding the "Semiclip by skyjur and the Unstuck by Ramon"
Check on line 116
But without results. can anyone help me?
PHP Code:
#include <amxmodx>
#include <amxmisc>
#include <fun>
#include <fakemeta>

new stuck[33]
new 
cvar[2]

// Semiclip
new bool:plrSolid[33]
new 
bool:plrRestore[33]
new 
plrTeam[33]

new 
maxplayers

new const Float:size[][3] = {
    {
0.00.01.0}, {0.00.0, -1.0}, {0.01.00.0}, {0.0, -1.00.0}, {1.00.00.0}, {-1.00.00.0}, {-1.01.01.0}, {1.01.01.0}, {1.0, -1.01.0}, {1.01.0, -1.0}, {-1.0, -1.01.0}, {1.0, -1.0, -1.0}, {-1.01.0, -1.0}, {-1.0, -1.0, -1.0},
    {
0.00.02.0}, {0.00.0, -2.0}, {0.02.00.0}, {0.0, -2.00.0}, {2.00.00.0}, {-2.00.00.0}, {-2.02.02.0}, {2.02.02.0}, {2.0, -2.02.0}, {2.02.0, -2.0}, {-2.0, -2.02.0}, {2.0, -2.0, -2.0}, {-2.02.0, -2.0}, {-2.0, -2.0, -2.0},
    {
0.00.03.0}, {0.00.0, -3.0}, {0.03.00.0}, {0.0, -3.00.0}, {3.00.00.0}, {-3.00.00.0}, {-3.03.03.0}, {3.03.03.0}, {3.0, -3.03.0}, {3.03.0, -3.0}, {-3.0, -3.03.0}, {3.0, -3.0, -3.0}, {-3.03.0, -3.0}, {-3.0, -3.0, -3.0},
    {
0.00.04.0}, {0.00.0, -4.0}, {0.04.00.0}, {0.0, -4.00.0}, {4.00.00.0}, {-4.00.00.0}, {-4.04.04.0}, {4.04.04.0}, {4.0, -4.04.0}, {4.04.0, -4.0}, {-4.0, -4.04.0}, {4.0, -4.0, -4.0}, {-4.04.0, -4.0}, {-4.0, -4.0, -4.0},
    {
0.00.05.0}, {0.00.0, -5.0}, {0.05.00.0}, {0.0, -5.00.0}, {5.00.00.0}, {-5.00.00.0}, {-5.05.05.0}, {5.05.05.0}, {5.0, -5.05.0}, {5.05.0, -5.0}, {-5.0, -5.05.0}, {5.0, -5.0, -5.0}, {-5.05.0, -5.0}, {-5.0, -5.0, -5.0}
}

public 
plugin_init() {
    
register_plugin("Automatic Unstuck","1.5","NL)Ramon(NL")
    
cvar[0] = register_cvar("amx_autounstuckeffects","1")
    
cvar[1] = register_cvar("amx_autounstuckwait","7")
    
set_task(0.1,"checkstuck",0,"",0,"b")
    
    
// semiclip
    
maxplayers get_maxplayers()
    
register_forward(FM_PlayerPreThink"preThink")
    
register_forward(FM_PlayerPostThink"postThink")
    
register_forward(FM_AddToFullPack"addToFullPack"1)
}

///Semiclip
public addToFullPack(eseenthosthostflagsplayerpSet){
    if(
player)
    {
        if(
plrSolid[host] && plrSolid[ent] && plrTeam[host] == plrTeam[ent])
        {
            
set_es(esES_SolidSOLID_NOT)
            
set_es(esES_RenderModekRenderTransAlpha)
            
set_es(esES_RenderAmt85)
        }
    }
}

FirstThink(){
    for(new 
1<= maxplayersi++)
    {
        if(!
is_user_alive(i))
        {
            
plrSolid[i] = false
            
continue
        }
        
        
plrTeam[i] = get_user_team(i)
        
plrSolid[i] = pev(ipev_solid) == SOLID_SLIDEBOX true false
    
}
}

public 
preThink(id){
    static 
iLastThink
    
    
if(LastThink id)
    {
        
FirstThink()
    }
    
LastThink id

    
    
if(!plrSolid[id]) return
    
    for(
1<= maxplayersi++)
    {
        if(!
plrSolid[i] || id == i) continue
        
        if(
plrTeam[i] == plrTeam[id])
        {
            
set_pev(ipev_solidSOLID_NOT)
            
            
plrRestore[i] = true
        
}
    }
}

public 
postThink(id){
    static 
i
    
    
for(1<= maxplayersi++)
    {
        if(
plrRestore[i])
        {
            
set_pev(ipev_solidSOLID_SLIDEBOX)
            
plrRestore[i] = false
        
}
    }
}

//Unstuck
public checkstuck() {
    static 
players[32], pnumplayer
    get_players
(playerspnum)
    static 
Float:origin[3]
    static 
Float:mins[3], hull
    
static Float:vec[3]
    static 
o,i
    
for(i=0i<pnumi++){
        
player players[i]
        if (
is_user_connected(player) && is_user_alive(player)) {
            
pev(playerpev_originorigin)
            
hull pev(playerpev_flags) & FL_DUCKING HULL_HEAD HULL_HUMAN
            
if (!is_hull_vacant(originhull,player) && !get_user_noclip(player) && !plrSolid[i] && !(pev(player,pev_solid) & SOLID_NOT)) {
                if (!
plrRestore[i]){
                    ++
stuck[player]
                    if(
stuck[player] >= get_pcvar_num(cvar[1])) {
                        
pev(playerpev_minsmins)
                        
vec[2] = origin[2]
                        for (
o=0sizeof size; ++o) {
                            
vec[0] = origin[0] - mins[0] * size[o][0]
                            
vec[1] = origin[1] - mins[1] * size[o][1]
                            
vec[2] = origin[2] - mins[2] * size[o][2]
                            if (
is_hull_vacant(vechull,player)) {
                                
engfunc(EngFunc_SetOriginplayervec)
                                
effects(player)
                                
set_pev(player,pev_velocity,{0.0,0.0,0.0})
                                
sizeof size
                            
}
                        }
                    }
                }
            }
            else
            {
                
stuck[player] = 0
            
}
        }
    }
}

stock bool:is_hull_vacant(const Float:origin[3], hull,id) {
    static 
tr
    engfunc
(EngFunc_TraceHulloriginorigin0hullidtr)
    if (!
get_tr2(trTR_StartSolid) || !get_tr2(trTR_AllSolid)) //get_tr2(tr, TR_InOpen))
        
return true
    
    
return false
}

public 
effects(id) {
    if(
get_pcvar_num(cvar[0])) {
        
set_hudmessage(255,150,50, -1.00.6506.01.5,0.1,0.7// HUDMESSAGE
        
show_hudmessage(id,"You should be unstucked now!"// HUDMESSAGE
        
message_begin(MSG_ONE_UNRELIABLE,105,{0,0,0},id )      
        
write_short(1<<10)   // fade lasts this long duration
        
write_short(1<<10)   // fade lasts this long hold time
        
write_short(1<<1)   // fade type (in / out)
        
write_byte(20)            // fade red
        
write_byte(255)    // fade green
        
write_byte(255)        // fade blue
        
write_byte(255)    // fade alpha
        
message_end()
        
client_cmd(id,"spk fvox/blip.wav")
    }


Last edited by XMazteRX; 10-10-2010 at 12:52. Reason: no answer
XMazteRX is offline
Old 10-15-2010, 18:33
XMazteRX
This message has been deleted by Exolent[jNr]. Reason: Don't bump until 2 weeks have passed since last post.
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 10:27.


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