Raised This Month: $51 Target: $400
 12% 

Help / Support FrozenTag


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
Itz
Junior Member
Join Date: Apr 2021
Old 05-21-2021 , 17:48   FrozenTag
Reply With Quote #1

I wanted to move this game mode to a zp game mode

PHP Code:
#include <amxmodx>
#include <engine>
#include <fakemeta>
#include <hamsandwich>
#include <fun>
#include <cstrike>

#include <frozentag/frozentag_const>
#include <frozentag/frozentag_stocks>

/*! Plugin Init */
public plugin_init() {
    
/*! Remove entities */
    
unregister_forward(FM_Spawng_removeEntities);

    
/*! Register Plugin */
    
register_plugin(PLUGIN_NAMEPLUGIN_VERSIONPLUGIN_AUTHOR);
    
register_dictionary("frozentag.txt");

    
/*! Forwards */
    
RegisterHam(Ham_Spawn"player""fwPlayerSpawned"1);
    
RegisterHam(Ham_Killed"player""fwPlayerKilled"1);
    
RegisterHam(Ham_Touch"player""fwPlayerTouch");
    
RegisterHam(Ham_Item_Deploy"weapon_knife""fwHamKnifeDeploy"1);
    
    
// Round start
    
register_event("HLTV""fwRoundStart""a""1=0""2=0");
    
register_forward(FM_PlayerPreThink "fwPlayerPreThink");

    
/*! Blocking buy */
    
register_message(get_user_msgid("StatusIcon"), "msgStatusIcon");
    
g_iStatusIcon get_user_msgid("StatusIcon");
    
    
/*! Block win sound & win msg */
    
register_message(get_user_msgid("SendAudio"), "msgSendAudio");
    
register_message(get_user_msgid("TextMsg"), "msgText");
    
    
/*! Cvars */
    
g_pUnfreezeTime     register_cvar("ft_unfreeze_time",         "3.0");
    
g_pGameRoundTime    register_cvar("ft_roundtime",             "180.0");
    
g_pUnfreezeRange    register_cvar("ft_unfreeze_range",         "50");
    
g_pShowKnife        register_cvar("ft_show_knife",             "1");
    
g_pBlockMouseview   register_cvar("ft_block_mouseview",         "1");
    
g_pAutoUnfreeze       register_cvar("ft_auto_unfreeze",         "1");
    
g_pAutoUnfreezeTime register_cvar("ft_auto_unfreeze_time",     "120.0");
    
g_pShowBar             register_cvar("ft_show_bar",                 "1");
    
g_pRoundTime        get_cvar_pointer("mp_roundtime");

    
/*! Remove weapons on the ground */
    
new iArmouryEnt = -1iEnt;
    while ((
iArmouryEnt find_ent_by_class(iArmouryEnt"armoury_entity" ))) 
        
remove_entity(iArmouryEnt);

    
/*! Smart Hud Message */
    
register_forward(FM_Think,"fwThinkEntity")
    
iEnt engfunc(EngFunc_CreateNamedEntityengfunc(EngFunc_AllocString "info_target"))
    
set_pev(iEntpev_classname"tm_playersthink")
    
set_pev(iEntpev_nextthinkget_gametime() + 1.0)

    
/*! MaxPlayers */
    
g_iMaxPlayers get_maxplayers();

    
/*! Unfreeze Bar */
    
g_iBarTime get_user_msgid("BarTime");
}

public 
plugin_cfg() {
    new 
iCvarFiles[100], iPath[64];

    
getConfigsDir(iPath63);
    
formatex(iCvarFiles99"%s/%s"iPathFT_CVARFILE);
    
    if(
file_exists(iCvarFiles)) {
        
server_cmd("exec %s"iCvarFiles);
        
server_exec();
    } else {
        
makeConfigFile(iCvarFiles);
    }
}

public 
plugin_precache() {
    
g_removeEntities register_forwardFM_Spawn"fwRemoveEnts")
    
precache_model(ice_model);
}

public 
fwRemoveEnts(ent)
{
    if( 
is_valid_ent(ent) )
    {
        static 
szClass[33]
        
entity_get_string(entEV_SZ_classnameszClasssizeof(szClass) )
        for( new 
0sizeof(RemoveEntities); i++ )
            if( 
equal(szClassRemoveEntities[i]))
                
remove_entity(ent)
    }
}

/*! Forwards */
public fwThinkEntity(iEnt) {
    if(
pev_valid(iEnt)) { 
        static 
ClassName[32]
        
pev(iEntpev_classnameClassName31)
        
        if(
equal(ClassName"tm_playersthink")) {
            
fwPlayersThink() 
            
set_pev(iEntpev_nextthinkget_gametime() + 0.08)
        }
    }
}

public 
fwPlayersThink() {
    new 
iAlive[32], iFrozenPlayersiNum;
    
get_players(iAliveiNum"ache""TERRORIST")

    for(new 
i=0iNumi++) {
        if(
g_isPlayerFrozen[iAlive[i]])
            
iFrozenPlayers++;
    }
    
    
set_hudmessage(2002002000.4650.0200.00.20.00.04)
    
show_hudmessage(0"%L"LANG_SERVER"HUD_STATUS"iFrozenPlayersiNum);
}

public 
fwRoundStart() {
    
g_iFrozenRunners 0
    g_iAliveRunners 
0
    
    
static Float:iRoundTime
    
iRoundTime get_pcvar_float(g_pGameRoundTime);
    
set_pcvar_float(g_pRoundTimeiRoundTime 60);
    
    
remove_task(TASKID_ROUNDEND);
    
set_task(iRoundTime"tskRoundEnd"TASKID_ROUNDEND);
}

public 
tskRoundEnd(iTask) {
    
client_cmd0"spk radio/terwin.wav" )
    
    
g_iAliveRunners 0
    
    
for (new id 1id <= g_iMaxPlayersid++)
    {
        if(!
is_user_connected(id))
            continue;
            
        
fwUnfreezePlayer(id);
        
        switch(
g_iTeams[id])
        {
            case 
CS_TEAM_CTuser_silentkill(id);
            case 
CS_TEAM_Tset_user_frags(idget_user_frags(id) + 1);
        }
    }
}

public 
fwPlayerPreThink(id) {
    if(!
is_user_alive(id))
        return;

    static 
iButtoniOldButtons;

    
iButton pev(idpev_button);
    
iOldButtons pevidpev_oldbuttons );

    
get_user_aiming(idg_iTarget[id], g_iTarget[0], get_pcvar_num(g_pUnfreezeRange));

    if(
iButton IN_USE && !(iOldButtons IN_USE)) {
        if(!
g_iTarget[id] || !is_user_alive(g_iTarget[id]) ||  g_iTargetOf[g_iTarget[id]] || cs_get_user_team(id) != cs_get_user_team(g_iTarget[id]))
            return;

        if(!
g_isPlayerFrozen[g_iTarget[id]])
            return;

        
g_iTargetOf[g_iTarget[id]] = id;

        new 
iTime get_pcvar_num(g_pUnfreezeTime);

        if(
get_pcvar_num(g_pShowBar))
            
makeBar(idiTime);

        
set_task(float(iTime), "fwUnfreezePlayer"g_iTarget[id]);

    } else if( 
iOldButtons IN_USE && !(iButton IN_USE)) {
        if (!
g_iTarget[id])
            return; 

        
remove_task(g_iTarget[id]);

        
g_iTargetOf[g_iTarget[id]] = 0;
        
g_iTarget[id] = 0
        
        if(
get_pcvar_num(g_pShowBar))
            
makeBar(id);
    }
    
    
/*! Block Mouse View while frozen */
    
if(g_isPlayerFrozen[id] && get_pcvar_num(g_pBlockMouseview)) {
        if(
is_user_alive(id)) {

            
set_pev(idpev_v_angleg_iPlayerAngles[id] );
            
set_pev(idpev_fixangle1);
        }
    }
}

public 
fwPlayerKilled(id) {
    if(
g_iTeams[id] == CS_TEAM_T && is_user_alive(id)) {
        
g_iAliveRunners--
        
        
// Check if all the terrorist are frozen
        
checkTerms();
    }

    if (
g_iTargetOf[id]) {
        if(
get_pcvar_num(g_pShowBar))
            
makeBar(g_iTargetOf[id]);

        
remove_task(g_iTargetOf[id]);
    }

    
g_iTarget[id] = 0
    
g_iTargetOf[id] = 0;
    
remove_task(id);
}

public 
fwPlayerSpawned(id) {
    
    if(
is_user_alive(id)) {            
        
strip_user_weapons(id);

        if(
get_pcvar_num(g_pShowKnife))
            
give_item(id"weapon_knife");
        
        
g_iTeams[id] = cs_get_user_team(id);
        
        if(
g_iTeamsid ] == CS_TEAM_T)
            
g_iAliveRunners++
    }
}

public 
fwPlayerTouch(iTouchediToucher) {

    if((
<= iToucher <= g_iMaxPlayers)) {
        if(
g_iTeams[iToucher] == CS_TEAM_CT && g_iTeams[iTouched] == CS_TEAM_T) {
            if(
g_isPlayerFrozen[iTouched])
                return;
            
            
fwFreezePlayer(iTouched);
        }
    }
    
    
checkTerms();
}

public 
fwHamKnifeDeploy(iEnt) {
    
set_pdata_float(iEntg_cNextPAttack9999.0g_cWepOffset);
    
set_pdata_float(iEntg_cNextSAttack9999.0g_cWepOffset);
}

/*! Blocking */
public msgStatusIcon(msgiddestid) {
    static 
icon[5];
    
get_msg_arg_string(2iconcharsmax(icon));
    
    if(
icon[0] == 'b' && icon[2] == 'y' && icon[3] == 'z') {
        
// Block buy
        
set_pdata_int(id235get_pdata_int(id235) &~ (1<<0));
        return 
PLUGIN_HANDLED;
    }

    return 
PLUGIN_CONTINUE;
}

// Block win msg
public msgText(msg_idmsg_destmsg_entity) {
    static 
message[3];
    
get_msg_arg_string(2messagecharsmax(message));

    switch(
message[1]) {
        case 
'C''T'
            return 
PLUGIN_HANDLED;
    }
        
    return 
PLUGIN_CONTINUE;
}

// Block win sound
public msgSendAudio(msg_idmsg_destmsg_entity) {
    static 
message[10];
    
get_msg_arg_string(2messagecharsmax(message));

    switch(
message[7]) {
        case 
'c''t' 
            return 
PLUGIN_HANDLED;
    }

    return 
PLUGIN_CONTINUE;
}

/*! Disconnect */
public client_disconnected(id) {
    if(
g_iTeams[id] == CS_TEAM_T && is_user_alive(id)) {
        
g_iAliveRunners--
        
        
// Check if all the terrorist are frozen
        
checkTerms();
    }

    if (
g_iTargetOf[id]) {
        if(
get_pcvar_num(g_pShowBar))
            
makeBar(g_iTargetOf[id]);

        
remove_task(g_iTargetOf[id]);
    }

    
g_iTarget[id] = 0
    
g_iTargetOf[id] = 0;
    
remove_task(id);

Itz 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:20.


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