Skocz do zawartości

Nowy szablon forum

mygo.pl

Stworzyliśmy dla Was nowy wygląd forum. Z pewnością znajdziesz rzeczy, które wg Ciebie mogą zostać zmienione - wspomnij o tym w specjalnym wątku.

Czytaj więcej

Jak założyć własną sieć

serwerów CS

Zastanawiasz się nad prowadzeniem własnej sieci serwerów? Przeczytaj podstawowe informacje, na które należy zwrócić uwagę, przy takim projekcie.

Czytaj więcej

Tworzymy spis sieci

dodaj swoją

Dodaj sieć do której należysz, pozwoli to na promocję i budowę ogólnopolskiej bazy sieci CS.

Czytaj więcej

/ghost bug help me


MYGO.pl
 Udostępnij

Rekomendowane odpowiedzi

  • RSSy
PHP Code:

#include <amxmodx>
#include <fun>
#include <cstrike>
#include <fakemeta>
#include <engine>
#include <hamsandwich>

#define VERSION "1.1"

#pragma semicolon 1;

#define IsPlayer(%1)            (1 <= %1 <= g_iMaxPlayers)

#define SB_ATTRIB_DEAD          1<<0

// --| Macros
#define get_bit(%1,%2)         ( %1 &   1 << ( %2 & 31 ) )
#define set_bit(%1,%2)         %1 |=  ( 1 << ( %2 & 31 ) )
#define clear_bit(%1,%2)    %1 &= ~( 1 << ( %2 & 31 ) )

#define GetPlayerHullSize(%1)  ( ( pev ( %1, pev_flags ) & FL_DUCKING ) ? HULL_HEAD : HULL_HUMAN )
//Credits to Emp`
#define LoopThroughAlivePlayers(%1) new %1;while( (%1=NextAlivePlayer(%1)) )

// --| The first search distance for finding a free location in the map.
#define START_DISTANCE    32   
// --| How many times to search in an area for a free space.
#define MAX_ATTEMPTS      128  

// --| Just for readability.
enum Coord_e Float:xFloat:yFloat:};

new 
g_iMaxPlayers;
new 
g_iMsgSayText;
new 
g_iItemsMenu;
new 
g_iLargestPlayer;
new 
g_iDeathFlag;
new 
g_iScoreBoard;

new 
g_bUserDead;
new 
g_bUserReady;
new 
g_bIsNoMore;
new 
g_bHasMenuOpen;
new 
g_bGravity;
new 
g_bNoClip;
new 
g_bSpeed;

new 
bool:g_bRoundEnd;

new 
Float:vecOrigin[3];

public 
plugin_init()
{
    
register_plugin("Alive When Dead"VERSION"Pastout!");
    
register_cvar("author""Pastout!"FCVAR_SPONLY);
    
register_cvar("version"VERSIONFCVAR_SPONLY);
    
    
RegisterHam(Ham_Killed"player""Ham_PlayerKilled_Post"1);
    
RegisterHam(Ham_Spawn"player""Ham_PlayerSpawn_Post"1);
    
RegisterHam(Ham_Player_PreThink"player""Ham_CBasePlayer_PreThink_Post"1);
    
    
register_forward(FM_AddToFullPack"Fwd_AddToFullPack_Post"1);
    
    
// --| Variables
    
g_iMaxPlayers get_maxplayers();
    
g_iMsgSayText get_user_msgid("SayText");
    
g_iScoreBoard get_user_msgid("ScoreAttrib");
    
    
register_message(g_iScoreBoard"MsgScoreBoard");
    
    
// --| Client Commands
    
new command[] = "CmdMainMenu";
    
register_clcmd("say /ghost"command);
    
register_clcmd("say_team /ghost"command);
    
set_task(90.0"gez_bilgilendirme"0);
    
    
register_event("HLTV""ev_NewRound""a""1=0""2=0");
    
register_logevent("ev_RoundEnd",2,"1=Round_End");
}
public 
gez_bilgilendirme()
{
        
renkli_yazi(0,"!n[!t/gez!n] !gYazarak Oluyken Gezebilirsiniz.");
        
set_task(90.0"gez_bilgilendirme"0);
}
public 
ev_NewRound()
    
g_bRoundEnd false;
    
public 
ev_RoundEnd()
    
g_bRoundEnd true;

public 
client_disconnect(id)
{
    
Reset_all(id);
    if( 
g_iLargestPlayer == id )
    {
        
g_iLargestPlayer 0;
        for( new 
id 10i-- )
        {
            
g_iLargestPlayer i;
            break;
        }
    }
}

public 
client_putinserver(id)
{
    
Reset_all(id);
    
g_iLargestPlayer maxg_iLargestPlayerid );
}

public 
MsgScoreBoard()
{
    new 
id get_msg_arg_int(1);
    
    if(
get_bit(g_bUserDeadid))
        
set_msg_arg_int(2ARG_BYTESB_ATTRIB_DEAD);
}

public 
Ham_PlayerKilled_Post(victimattackershouldgib)
{    
    if (!
is_user_connected(victim))
        return 
HAM_IGNORED;
    
    
// --| Update the scoreboard
    
new szDeaths;
    
szDeaths cs_get_user_deaths(victim);
    
cs_set_user_deaths(victimszDeaths);

    if(
is_user_connected(attacker))
    {
        
szDeaths cs_get_user_deaths(attacker);
        
cs_set_user_deaths(attackerszDeaths);
    }
    
    if(!
g_bRoundEnd)
    {
        if(
victim == attacker)
        {
            if (
get_bit(g_bUserDeadvictim))
            {
                
clear_bit(g_bGravityvictim);
                
clear_bit(g_bNoClipvictim);
                
clear_bit(g_bSpeedvictim);
                if (
get_bit(g_bHasMenuOpenvictim))
                {
                    if(
player_menu_info(victimg_iItemsMenug_iItemsMenu))
                    {
                        
menu_cancel(victim);
                        
client_cmd(victim"slot1");
                    }
                    
clear_bit(g_bHasMenuOpenvictim);
                }    
            }
        }
        else
        {
            if(!
get_bit(g_bUserDeadvictim) && !get_bit(g_bIsNoMorevictim))
            {
                
                
entity_get_vector(victimEV_VEC_originvecOrigin);
                
                if(
GetPlayerHullSize(victim) == HULL_HEAD)
                    
vecOrigin[2] += 15;
                else
                    
vecOrigin[2] += 30;
                    
                
set_task(2.0"RespawnPlayer"victim);
            }
        }
    }
    
    return 
HAM_IGNORED;
}

public 
RespawnPlayer(victim)
{
    if(!
g_bRoundEnd)
    {
        
set_bit(g_iDeathFlagvictim);    
        
        
set_bit(g_bUserDeadvictim);
        
clear_bit(g_bUserReadyvictim);
        
        
// --| Respawn Player at Deadbody
        
ExecuteHamB(Ham_CS_RoundRespawnvictim);
        
        
entity_set_vector(victimEV_VEC_originvecOrigin);
        
        
ClientCommand_UnStuck(victim);
        
        
// --| Show Dead Menu Items
        
CmdMainMenu(victim);
    
        
// --| Set The Victims Flags to DEAD_RESPAWNABLE
        
entity_set_int(victimEV_INT_deadflagDEAD_RESPAWNABLE);
    }
}

public 
Ham_PlayerSpawn_Post(id)

    if (!
is_user_alive(id))
        return 
HAM_IGNORED;        
        
    if (
get_bit(g_iDeathFlagid))
        
entity_set_int(idEV_INT_deadflagDEAD_RESPAWNABLE);    

    if (
get_bit(g_bUserReadyid))
    {
        
clear_bit(g_bUserDeadid);
        
clear_bit(g_bIsNoMoreid);
        
clear_bit(g_bGravityid);
        
clear_bit(g_bNoClipid);
        
clear_bit(g_bSpeedid);
        
message_begin(MSG_ONE_UNRELIABLEg_iScoreBoard_id);
        
write_byte(id);
        
write_byte(0);
        
message_end();
        if (
get_bit(g_bHasMenuOpenid))
        {
            if(
player_menu_info(idg_iItemsMenug_iItemsMenu))
            {
                
menu_cancel(id);
                
client_cmd(id"slot1");
            }
            
clear_bit(g_bHasMenuOpenid);
        }
    }

    
set_bit(g_bUserReadyid);
    
clear_bit(g_iDeathFlagid);
    return 
HAM_IGNORED;
}

public 
Fwd_AddToFullPack_Post(eseiEntidhostflagsplayerpSet)
{
    if( 
player && id != iEnt )
    {
        if(
get_bit(g_bUserDeadid))
        {
            
set_es(esES_SolidSOLID_NOT);
            if( 
get_bit(g_bUserDeadiEnt) )
            {
                
set_es(esES_RenderModekRenderTransAdd);
                
set_es(esES_RenderAmt80);
                
set_es(esES_RenderColor000);
                
set_es(esES_RenderFxkRenderFxDeadPlayer);
            }
        }
        else if(
get_bit(g_bUserDeadiEnt) )
        {
            
set_es(esES_SolidSOLID_NOT);
            
set_es(esES_Effectsget_es(esES_Effects) | EF_NODRAW);
            
set_es(esES_OriginFloat:{99999.9,99999.9,99999.9});
        }
    }
}

public 
Ham_CBasePlayer_PreThink_Post(id)
{
    
// --| Is alive, ignore.
    
if( !get_bit(g_bUserDeadid) )
        return;
    
    if(
get_bit(g_bUserDeadid))
        
set_pevidpev_solidSOLID_NOT );
        
    
LoopThroughAlivePlayersiPlayer )
        if( 
id != iPlayer )
            
set_peviPlayerpev_solidSOLID_NOT );
}

public 
client_PostThink(id)
{
    
// --| Is alive, ignore.
    
if( !get_bit(g_bUserDeadid) )
        return;
        
    if(
get_bit(g_bUserDeadid))
        
set_pevidpev_solidSOLID_SLIDEBOX );

    
LoopThroughAlivePlayersiPlayer )
        if( 
id != iPlayer )
            
set_peviPlayerpev_solidSOLID_SLIDEBOX );
}

public 
ClientCommand_UnStuck( const id )
{
    new 
i_Value;

    if ( ( 
i_Value UTIL_UnstuckPlayer idSTART_DISTANCEMAX_ATTEMPTS ) ) != )
        switch ( 
i_Value )
        {
            case 
0renkli_yazi(id"Couldn't find a free spot to move you too");
            case -
1renkli_yazi(id"!n[!tCoonquaR!n] !gBu Menuyu Kullanmak Icin Gezinti Modunda Acmaniz Gerekmektedir.");
        }

    return 
PLUGIN_CONTINUE;
}


UTIL_UnstuckPlayer( const id, const i_StartDistance, const i_MaxAttempts )
{
    
// --| Is alive, ignore.
    
if ( !get_bit(g_bUserDeadid) )  return -1;
    
    static 
Float:vf_OriginalOriginCoord_e ], Float:vf_NewOriginCoord_e ];
    static 
i_Attemptsi_Distance;
    
    
// --| Get the current player's origin.
    
pev idpev_originvf_OriginalOrigin );
    
    
i_Distance i_StartDistance;

    while ( 
i_Distance 1000 )
    {
        
i_Attempts i_MaxAttempts;
    
        while ( 
i_Attempts-- )
        {
            
vf_NewOrigin] = random_float vf_OriginalOrigin] - i_Distancevf_OriginalOrigin] + i_Distance );
            
vf_NewOrigin] = random_float vf_OriginalOrigin] - i_Distancevf_OriginalOrigin] + i_Distance );
            
vf_NewOrigin] = random_float vf_OriginalOrigin] - i_Distancevf_OriginalOrigin] + i_Distance );
        
            
engfunc EngFunc_TraceHullvf_NewOriginvf_NewOriginDONT_IGNORE_MONSTERSGetPlayerHullSize id ), id);
        
            
// --| Free space found.
            
if ( get_tr2 0TR_InOpen ) && !get_tr2 0TR_AllSolid ) && !get_tr2 0TR_StartSolid ) )
            {
                
// --| Set the new origin .
                
engfunc EngFunc_SetOriginidvf_NewOrigin );
                return 
1;
            }
        }
    
        
i_Distance += i_StartDistance;
    }

    
// --| Could not be found.
    
return 0;
}  

NextAlivePlayer(id)
{
    do 
id++;
    while( 
id <= g_iLargestPlayer && !is_user_aliveid ) );
    return ( 
id <= g_iLargestPlayer ) ? id 0;
}

public 
CmdMainMenu(id)
{
    if(!
get_bit(g_bUserDeadid) && is_user_alive(id))
    {
        
renkli_yazi(id"!n[!tCoonquaR!n] !gBu Menuye Sadece Oluler Girebilir.");
        return 
PLUGIN_HANDLED;
    }
        
    
set_bit(g_bHasMenuOpenid);
    
    
// --| Menu Title
    
new szText[777 char];
    
formatex(szTextcharsmax(szText), "\d[\yCoonquaR\d] : [\rGezinme Modu\d]");
    
    
// --| Create the menu
    
g_iItemsMenu menu_create(szText"StartMenu_Handle");
    
    
formatex(szTextcharsmax(szText), "\d[\yGravity\d] : [\r%s\d]"get_bit(g_bGravityid) ? "ACIK" "KAPALI" );
    
menu_additem(g_iItemsMenuszText"1"0);
    
    
formatex(szTextcharsmax(szText), "\d[\yNoclip\d] : [\r%s\d]"get_bit(g_bNoClipid) ? "ACIK" "KAPALI" );
    
menu_additem(g_iItemsMenuszText"2"0);
    
    
formatex(szTextcharsmax(szText), "\d[\ySpeed\d] : [\r%s\d]"get_bit(g_bSpeedid) ? "ACIK" "KAPALI" );
    
menu_additem(g_iItemsMenuszText"3"0);
    
    
formatex(szTextcharsmax(szText), "\d[\yStuck\d]");
    
menu_additem(g_iItemsMenuszText"4"0);
    
    
formatex(szTextcharsmax(szText), "\d[\yGezinme Modunu Ac\d]"get_bit(g_bUserDeadid));
    
menu_additem(g_iItemsMenuszText"5"0);
    
    
menu_setprop(g_iItemsMenu,MPROP_EXITNAME,"\d[\rCikis\d]");
    
menu_setprop(g_iItemsMenuMPROP_EXITMEXIT_ALL);
    
menu_display(idg_iItemsMenu);
    
    return 
PLUGIN_HANDLED;
}

public 
StartMenu_Handle(idg_iItemsMenuitem)
{
    if(
item == MENU_EXIT)
    {
        
clear_bit(g_bHasMenuOpenid);
        
menu_destroy(g_iItemsMenu);
        return 
PLUGIN_HANDLED;
    }
    
    if(!
get_bit(g_bUserDeadid) && is_user_alive(id))
    {
        
clear_bit(g_bHasMenuOpenid);
        
renkli_yazi(id"!n[!tCoonquaR!n] !gBu Menuye Sadece Oluler Girebilir.");
        return 
PLUGIN_HANDLED;
    }
    
    new 
data[6], iName[64];
    new 
accesscallback;
    
    
menu_item_getinfo(g_iItemsMenuitemaccessdata5iName63callback);
    
    new 
key str_to_num(data);
    switch(
key)
    {
        case 
1:{ ToggleGravity(id);CmdMainMenu(id); }
        case 
2:{ ToggleNoClip(id);CmdMainMenu(id); }
        case 
3:{ ToggleSpeed(id);CmdMainMenu(id); }
        case 
4:{ ClientCommand_UnStuck(id);CmdMainMenu(id); }
        case 
5:{ ToggleGhost(id);CmdMainMenu(id); }
    }
    return 
PLUGIN_HANDLED;
}

ToggleGravity(id)
{
    
// --| Make sure player is dead
    
if (get_bit(g_bUserDeadid))
        
// --| If player has gravity
        
if (get_bit(g_bGravityid))
        {
            
// --| Turn off gravity for player
            
set_user_gravity(id1.0);
            
clear_bit(g_bGravityid);
        }
        else
        {
            
// --| Turn on gravity for player
            
set_user_gravity(id0.5);
            
set_bit(g_bGravityid);
        }
}

ToggleNoClip(id)
{
    
// --| Make sure player is dead
    
if (get_bit(g_bUserDeadid))
        
// --| If player has noclip
        
if (get_user_noclip(id))
        {
            
// --| Turn off noclip for player
            
set_user_noclip(id0);
            
clear_bit(g_bNoClipid);
            
// --| Check if player is stuck
            
ClientCommand_UnStuck(id);
        }
        else
        {
            
// --| Turn on noclip for player
            
set_user_noclip(id1);
            
set_bit(g_bNoClipid);
        }
}

ToggleSpeed(id)
{
    
// --| Make sure player is dead
    
if (get_bit(g_bUserDeadid))
        
// --| If player has speed
        
if (get_bit(g_bSpeedid))
        {
            
// --| Turn off speed for player
            
set_user_maxspeed(id250.0);
            
clear_bit(g_bSpeedid);
        }
        else
        {
            
// --| Turn on speed for player
            
set_user_maxspeed(id600.0);
            
set_bit(g_bSpeedid);
        }
}
        
ToggleGhost(id)
{
    if(!
get_bit(g_bIsNoMoreid))
        
RespawnPlayer(id);
}

public 
Allow_Reset(id)
    
clear_bit(g_bIsNoMoreid);

public 
Reset_all(id)
{     
    
clear_bit(g_iDeathFlagid);
    
clear_bit(g_bUserDeadid);
    
clear_bit(g_bUserReadyid);
    
clear_bit(g_bIsNoMoreid);
    
clear_bit(g_bHasMenuOpenid);
    
clear_bit(g_bGravityid);
    
clear_bit(g_bNoClipid);
    
clear_bit(g_bSpeedid);
}
stock renkli_yazi(const id, const input[], any:...)
{
    new 
count 1players[32];
    static 
msg[191];
    
vformat(msg190input3);
    
    
replace_all(msg190"!n""^x01"); // Default Renk(Sarı)
    
replace_all(msg190"!g""^x04"); // Yeşil Renk
    
replace_all(msg190"!t""^x03"); // Takım Renk( CT mavi , T kırmızı )
    
    
if (idplayers[0] = id; else get_players(playerscount"ch");
    {
        for (new 
0counti++)
        {
            if (
is_user_connected(players[i]))
            {
                
                
message_begin(MSG_ONE_UNRELIABLEget_user_msgid("SayText"), _players[i]);
                
write_byte(players[i]);
                
write_string(msg);
                
message_end();
            }

        }
    }


when t is opened noclip , ct can not walk when it is intertwined with ct
and new round started, everybody seems dead in the scorbo, but not dead
just this bugs have can you help me?

Przeczytaj cały wpis

Odnośnik do komentarza
Udostępnij na innych stronach

Gość
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
 Udostępnij

×
×
  • Dodaj nową pozycję...