Raised This Month: $ Target: $400
 0% 

How to prevent players from buying extra items before Infection Countdown starts?


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
Chihuahuax
Senior Member
Join Date: Oct 2014
Location: Malaysia
Old 09-06-2015 , 00:43   How to prevent players from buying extra items before Infection Countdown starts?
Reply With Quote #1

I need a code to block extra item from being bought in the first 1~2 seconds (before the infection COUNTDOWN starts)

Ex: I bought Nemesis in the first 1~2 seconds of a new round, server prints [ZP] You have bought Nemesis and I lost ammo packs but nothing happens. I dont turn into a nemesis. So, i need a fix for this.
Attached Files
File Type: sma Get Plugin or Get Source (zp_extra_buymode.sma - 429 views - 7.2 KB)

Last edited by Chihuahuax; 09-06-2015 at 00:44.
Chihuahuax is offline
Send a message via Skype™ to Chihuahuax
Depresie
Veteran Member
Join Date: Nov 2013
Old 09-06-2015 , 11:20   Re: How to prevent players from buying extra items before Infection Countdown starts?
Reply With Quote #2

PHP Code:
#include <amxmodx>
#include <fakemeta>
#include <cstrike>
#include <zombie_plague_advance>


#define PLUGIN "[ZP] Pack Assasin,Survivor,Nemesis,Sniper"
#define VERSION "2.1"
#define AUTHOR "Ghost95V"

#define ZP_TEAM_HUMAN (1<<1)
new const g_item_nem_name[] = "Buy Nemesis"
new const g_item_sur_name[] = "Buy Survivor"
new const g_item_assassin_name[] = "Buy Assassin"
new const g_item_sniper_name[] = "Buy Sniper"
new const g_costnemesis 155
new const g_costsurvivor 300
new const g_costsniper 300
new const g_costassassin 155

new g_maxplayersg_msgSayText
new g_nemesisg_survivorg_assassing_sniper
new g_buyableg_endroundRoundCountcvar_delay
new has_moded[33]
new 
g_can

public plugin_init()
{
    
register_plugin(PLUGINVERSIONAUTHOR)
    
    
register_event("HLTV""event_round_start""a""1=0""2=0")
    
register_logevent("logevent_round_end"2"1=Round_End")
    
    
g_nemesis zp_register_extra_item(g_item_nem_nameg_costnemesisZP_TEAM_HUMAN)
    
g_survivor zp_register_extra_item(g_item_sur_nameg_costsurvivorZP_TEAM_HUMAN)
    
g_assassin zp_register_extra_item(g_item_assassin_nameg_costassassinZP_TEAM_HUMAN)
    
g_sniper zp_register_extra_item(g_item_sniper_nameg_costsniperZP_TEAM_HUMAN)
    
    
cvar_delay register_cvar("zp_buy_classes_delay""3"
    
    
g_maxplayers get_maxplayers()
    
g_msgSayText get_user_msgid("SayText")
}

public 
zp_extra_item_selected(playeritemid)
{
    if(
itemid == g_nemesis)
    {
        if (!
g_can)
        {
            
zp_colored_print(player"^x04[ZP]^x01 Bug Prevention")
            
            return 
PLUGIN_HANDLED;
        }
        if (!
g_buyable)
        {
            if (
RoundCount == get_pcvar_num(cvar_delay))
            {
                
zp_colored_print(player"^x04[ZP]^x01 You have to wait^x04 one^x01 more round before you can buy this item")
            }
            else
            {
                
zp_colored_print(player"^x04[ZP]^x01 You have to wait^x04 %d^x01 rounds until you can buy this item"get_pcvar_num(cvar_delay) - RoundCount 1)
            }
            return 
ZP_PLUGIN_HANDLED;
        }
        
        if (
zp_has_round_started() == || g_endround)
        {
            
zp_colored_print(player"^x04[ZP]^x01 This item can only be bought before the round mode starts")
            return 
ZP_PLUGIN_HANDLED;
        }
        
        if (
has_moded[player])
        {
            
zp_colored_print(player"^x04[ZP]^x01 You only can buy mode^x04 once^x01 in a map")
            
            return 
ZP_PLUGIN_HANDLED;
        }
        
        
zp_make_user_nemesis(player)
        
        new 
name[32]
        
get_user_name(playernamecharsmax(name))
        
zp_colored_print(0"^x04[ReverseZM]^x03 %s^x01 has bought^x04 Nemesis"name)
        
        
has_moded[player] = true
        
        g_buyable 
false
    
}
    else if(
itemid == g_survivor)
    {
        if (!
g_buyable)
        {
            if (
RoundCount == get_pcvar_num(cvar_delay))
            {
                
zp_colored_print(player"^x04[ZP]^x01 You have to wait^x04 one^x01 more round before you can buy this item")
            }
            else
            {
                
zp_colored_print(player"^x04[ZP]^x01 You have to wait^x04 %d^x01 rounds until you can buy this item"get_pcvar_num(cvar_delay) - RoundCount 1)
            }
            return 
ZP_PLUGIN_HANDLED;
        }
        
        if (
zp_has_round_started() == || g_endround)
        {
            
zp_colored_print(player"^x04[ZP]^x01 This item can only be bought before the round mode starts")
            return 
ZP_PLUGIN_HANDLED;
        }
        if (
has_moded[player])
        {
            
zp_colored_print(player"^x04[ZP]^x01 You only can buy mode^x04 once^x01 in a map")
            
            return 
ZP_PLUGIN_HANDLED;
        }
        
        
zp_make_user_survivor(player)
        
        new 
name[32]
        
get_user_name(playernamecharsmax(name))
        
zp_colored_print(0"^x04[ReverseZM]^x03 %s^x01 has bought^x04 Survivor"name)  
        
        
has_moded[player] = true
        
        g_buyable 
false
    
}   
    else if(
itemid == g_assassin)
    {
        if (!
g_buyable)
        {
            if (
RoundCount == get_pcvar_num(cvar_delay))
            {
                
zp_colored_print(player"^x04[ZP]^x01 You have to wait^x04 one^x01 more round before you can buy this item")
            }
            else
            {
                
zp_colored_print(player"^x04[ZP]^x01 You have to wait^x04 %d^x01 rounds until you can buy this item"get_pcvar_num(cvar_delay) - RoundCount 1)
            }
            return 
ZP_PLUGIN_HANDLED;
        }
        
        if (
zp_has_round_started() == || g_endround)
        {
            
zp_colored_print(player"^x04[ZP]^x01 This item can only be bought before the round mode starts")
            return 
ZP_PLUGIN_HANDLED;
        }
        if (
has_moded[player])
        {
            
zp_colored_print(player"^x04[ZP]^x01 You only can buy mode^x04 once^x01 in a map")
            
            return 
ZP_PLUGIN_HANDLED;
        }
        
        
zp_make_user_assassin(player)
        
        new 
name[32]
        
get_user_name(playernamecharsmax(name))
        
zp_colored_print(0"^x04[ReverseZM]^x03 %s^x01 has bought^x04 Assassin"name)  
        
        
has_moded[player] = true
        
        g_buyable 
false
    
}   
    else if(
itemid == g_sniper)
    {
        if (!
g_buyable)
        {
            if (
RoundCount == get_pcvar_num(cvar_delay))
            {
                
zp_colored_print(player"^x04[ZP]^x01 You have to wait^x04 one^x01 more round before you can buy this item")
            }
            else
            {
                
zp_colored_print(player"^x04[ZP]^x01 You have to wait^x04 %d^x01 rounds until you can buy this item"get_pcvar_num(cvar_delay) - RoundCount 1)
            }
            return 
ZP_PLUGIN_HANDLED;
        }
        
        if (
zp_has_round_started() == || g_endround)
        {
            
zp_colored_print(player"^x04[ZP]^x01 This item can only be bought before the round mode starts")
            return 
ZP_PLUGIN_HANDLED;
        }
        if (
has_moded[player])
        {
            
zp_colored_print(player"^x04[ZP]^x01 You only can buy mode^x04 once^x01 in a map")
            
            return 
ZP_PLUGIN_HANDLED;
        }
        
        
zp_make_user_sniper(player)
        
        new 
name[32]
        
get_user_name(playernamecharsmax(name))
        
zp_colored_print(0"^x04[ReverseZM]^x03 %s^x01 has bought^x04 Sniper"name)  
        
        
has_moded[player] = true
        
        g_buyable 
false
    
}   
    return 
PLUGIN_CONTINUE
}

public 
event_round_start()
{
    
g_can false
    g_endround 
false
    g_buyable 
true
    RoundCount 
0
    
    set_task
(3.0"enable")
}

public 
logevent_round_end()
{
    
g_endround true
    
    
if (g_buyable)
        return;
    
    if (
RoundCount get_pcvar_num(cvar_delay))
        
RoundCount++
    
    else if (
RoundCount >= get_pcvar_num(cvar_delay))
    {
        
g_buyable true
        RoundCount 
0
    
}
}

public 
enable()
{
    
g_can true
}

zp_colored_print(target, const message[], any:...)
{
static 
buffer[512], iargscount
argscount 
numargs()

// Send to everyone
if (!target)
{
    static 
player
    
for (player 1player <= g_maxplayersplayer++)
    {
        
// Not connected
        
if (!is_user_connected(player))
            continue;
            
            
// Remember changed arguments
            
static changed[5], changedcount // [5] = max LANG_PLAYER occurencies
            
changedcount 0
            
            
// Replace LANG_PLAYER with player id
            
for (2argscounti++)
            {
                if (
getarg(i) == LANG_PLAYER)
                {
                    
setarg(i0player)
                    
changed[changedcount] = i
                    changedcount
++
                }
            }
            
            
// Format message for player
            
vformat(buffercharsmax(buffer), message3)
            
            
// Send it
            
message_begin(MSG_ONE_UNRELIABLEg_msgSayText_player)
            
write_byte(player)
            
write_string(buffer)
            
message_end()
            
            
// Replace back player id's with LANG_PLAYER
            
for (0changedcounti++)
                
setarg(changed[i], 0LANG_PLAYER)
        }
    }
    
// Send to specific target
    
else
    {
        
// Format message for player
        
vformat(buffercharsmax(buffer), message3)
        
        
// Send it
        
message_begin(MSG_ONEg_msgSayText_target)
        
write_byte(target)
        
write_string(buffer)
        
message_end()
    }

Depresie is offline
Chihuahuax
Senior Member
Join Date: Oct 2014
Location: Malaysia
Old 09-07-2015 , 01:41   Re: How to prevent players from buying extra items before Infection Countdown starts?
Reply With Quote #3

Depresie +1
I <3 u
Chihuahuax is offline
Send a message via Skype™ to Chihuahuax
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 08:18.


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