AlliedModders

AlliedModders (https://forums.alliedmods.net/index.php)
-   Suggestions / Requests (https://forums.alliedmods.net/forumdisplay.php?f=12)
-   -   How can I add a Countdown? (https://forums.alliedmods.net/showthread.php?t=266887)

Gh05t04 07-21-2015 15:59

How can I add a Countdown?
 
Hello guys, is it possible to add a countdown to this jailbreak last request plugin?

When the duel is about to start it displays a HUD with: [*** 5 ***] [*** 4 ***] [*** 3 ***] [*** 2 ***] [*** 1 ***]

Meanwhile it plays the countdown sounds, I can attach them..

Can someone help me?

PHP Code:

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

#define PLUGIN "Jailbreak Last Request"
#define VERSION "1.6"
#define AUTHOR "rube"

/*================================================================================
    Variables | bools | Cvars        
=================================================================================*/

new g_maxPlayersg_msgSayTextbeacon_sprite

new cvar_granadas_bpammocvar_scout_bpammocvar_effect

new bool:touch_weapons[33], bool:once[33], bool:player_challenged[33], bool:duel_active,
bool:knife_duel[33] ,bool:deagle_duel[33], bool:grenade_duel[33], bool:scout_duel[33]

new 
tag[] = "[JailBreak]"

/*================================================================================
    Init n' precache        
=================================================================================*/

public plugin_precache() 
{    
    
beacon_sprite precache_model("sprites/shockwave.spr")
}

public 
plugin_init()
{
    
register_plugin(PLUGINVERSIONAUTHOR)
    
    
register_event("HLTV""event_round_start""a""1=0""2=0")
    
    
RegisterHam(Ham_Touch"weaponbox""fw_touch_weapon")
    
RegisterHam(Ham_Touch"armoury_entity""fw_touch_weapon")
    
RegisterHam(Ham_Touch"weapon_shield""fw_touch_weapon")
    
RegisterHam(Ham_Spawn"player""fw_player_respawn"1)
    
RegisterHam(Ham_Killed"player""fw_player_killed")    
        
    
register_forward(FM_CmdStart,"fw_cmdstart",1)
    
    
// Comando de jugador - Client commands
    
register_clcmd("say /lr""duel_menu")
    
register_clcmd("say !lr""duel_menu")
    
register_clcmd("say_team /lr""duel_menu")
    
register_clcmd("say_team !lr""duel_menu")
    
    
// Cvars
    
cvar_granadas_bpammo register_cvar("jb_grenade_bpammo","10"// amount bpammo grenade | cantidad de granadas
    
cvar_scout_bpammo register_cvar("jb_scout_bpammo""10"// amount bpammo scout | cantidad de balas pa' la scout
    
cvar_effect register_cvar("jb_effect""2"// 0 = glow , 1 = beacon, 2 = glow n' beacon
    
    
g_maxPlayers get_maxplayers()
    
    
g_msgSayText get_user_msgid("SayText")
    
    
register_dictionary("jailbreak_last_request.txt")
}

/*================================================================================
    Round Start                
=================================================================================*/

public event_round_start()
{
    
duel_active false
}
        
/*================================================================================
    forwards                
=================================================================================*/

public fw_player_respawn(id)
{
    if(!
is_user_alive(id) || !cs_get_user_team(id))
        return
      
    
set_user_rendering(id)
    
remove_task(id)
    
touch_weapons[id] = false 
    once
[id] = false 
    knife_duel
[id] = false
    deagle_duel
[id] = false
    grenade_duel
[id] = false
    scout_duel
[id] = false    
    player_challenged
[id] = false
}

public 
fw_touch_weapon(weaponid)
{
    if (!
is_user_connected(id))
        return 
HAM_IGNORED;
    
    new 
players[32], pnumtempid;
    
get_players(playerspnum"a");
    for( new 
ii<pnumi++ )
    {        
        
tempid players[i];
    }
    
    if (
touch_weapons[id] || touch_weapons[tempid])
        return 
HAM_SUPERCEDE;
    
    return 
HAM_IGNORED;
}


public 
fw_cmdstart(player,uc_handle,random_seed)
{
    if(
deagle_duel[player])
    {
        
cs_set_user_bpammo(playerCSW_DEAGLE1)
    }
}

public 
fw_player_killed(victimattackershouldgib)
{
    new 
name[32]
    
get_user_name(attackername31)
            
    if(
duel_active)
    {
        if(
cs_get_user_team(victim) == CS_TEAM_CT && player_challenged[victim])
        {
            
knife_duel[attacker] = false
            deagle_duel
[attacker] = false
            grenade_duel
[attacker] = false
            scout_duel
[attacker] = false
            once
[attacker] = false
            strip_user_weapons
(attacker)
            
give_item(attacker"weapon_knife")
            
set_user_rendering(attacker)
            
duel_menu(attacker)
        }
        else if(
cs_get_user_team(victim) == CS_TEAM_CT && !player_challenged[victim])
        {
            
set_task(0.4"kill_player"attacker)
            
set_hudmessage02550, -1.00.4025.08.00.00.010)
            
show_hudmessage(0"%L"LANG_PLAYER,"DUEL_DOWN"name)
                
        }
    }
    
remove_task(attacker)
    
remove_task(victim)
}

public 
kill_player(id)
{
    
user_kill(id)
}

/*================================================================================
    Main Menu                
=================================================================================*/

public duel_menu(id)
{    
    if(!
is_user_alive(id))
        return 
PLUGIN_HANDLED
    
    
if (!once[id])
    {
        if(
cs_get_user_team(id) == CS_TEAM_T)
        {
            new 
cts[32], ts[32], ctsnumtsnum 
    
            
for (new id=1id <= g_maxPlayersid++)
            {
                if (!
is_user_connected(id) || !is_user_alive(id)) 
                { 
                    continue 
                } 
    
                if (
cs_get_user_team(id) == CS_TEAM_T
                { 
                    
ts[tsnum++] = id
                

                else if (
cs_get_user_team(id) == CS_TEAM_CT
                { 
                    
cts[ctsnum++] = id
                

            } 
            if (
tsnum == && ctsnum >= 1
            {  
            
                static 
opcion[64]
    
                
formatex(opcioncharsmax(opcion),"\y%L:"id"CHOOSE_DUEL")
                new 
iMenu menu_create(opcion"sub_duel_menu")
    
                
formatex(opcioncharsmax(opcion),"\w%L"id"DUEL_1")
                
menu_additem(iMenuopcion"1")    
    
                
formatex(opcioncharsmax(opcion),"\w%L"id"DUEL_2")
                
menu_additem(iMenuopcion"2")
            
                
formatex(opcioncharsmax(opcion),"\w%L"id"DUEL_3")
                
menu_additem(iMenuopcion"3")    
    
                
formatex(opcioncharsmax(opcion),"\w%L"id"DUEL_4")
                
menu_additem(iMenuopcion"4")
            

                
menu_setprop(iMenuMPROP_EXITMEXIT_ALL)
                
menu_display(idiMenu0)
                        
            }
            else if    (
tsnum == && ctsnum 1)
            {
                
ChatColor(id"%L"LANG_PLAYER,"NOT_CTS"tag
            }
            else if    (
tsnum 1)
            {
                
ChatColor(id"%L"LANG_PLAYER,"ONLY_LAST"tag)
            }
        }
        else
        {
            
ChatColor(id"%L"LANG_PLAYER,"ONLY_TTS"tag
        }
    }
    else
    {
        
ChatColor(id"%L"LANG_PLAYER,"KILL_CHALLENGED"tag
    }
    return 
PLUGIN_HANDLED
}

public 
sub_duel_menu(idmenuitem)
{
    
    if (
item == MENU_EXIT)
    {
        
menu_destroy(menu)
        return 
PLUGIN_HANDLED
    
}
    
    new 
Data[6], Name[64]
    new 
AccessCallback
    
    menu_item_getinfo
(menuitemAccessData,5Name63Callback)
    
    new 
Key str_to_num(Data)
    
    switch (
Key)
    {
        case 
1:
        {    
            
knife_duel[id] = true
            choose_enemy
(id)
        }
        case 
2
        {
            
deagle_duel[id] = true
            choose_enemy
(id)
        }
        case 
3
        {
            
grenade_duel[id] = true
            choose_enemy
(id)
        }
        case 
4
        {
            
scout_duel[id] = true
            choose_enemy
(id)
        }
    }
    
    
menu_destroy(menu)    
    return 
PLUGIN_HANDLED
}

/*================================================================================
    Menu of challenges                
=================================================================================*/

public choose_enemy(id)
{
    static 
opcion[64]
    
    
formatex(opcioncharsmax(opcion),"\y%L:"id"CHOOSE_ENEMY")
    new 
iMenu menu_create(opcion"sub_choose_enemy")
    
    new 
players[32], pnumtempid
    
new szName[32], szTempid[10]
    
    
get_players(playerspnum"a")
    
    for( new 
ii<pnumi++ )
    {
        
tempid players[i]
        
        if (
cs_get_user_team(tempid) != CS_TEAM_CT)
        {
            continue
        }
        
        
get_user_name(tempidszName31)
        
num_to_str(tempidszTempid9)
        
menu_additem(iMenuszNameszTempid0)
    }
    
    
menu_display(idiMenu)
    return 
PLUGIN_HANDLED
}

public 
sub_choose_enemy(idmenuitem)
{
    if( 
item == MENU_EXIT )
    {
        
menu_destroy(menu)
        return 
PLUGIN_HANDLED
    
}
    
    new 
Data[6], Name[64]
    new 
AccessCallback
    menu_item_getinfo
(menuitemAccessData,5Name63Callback)
    
    new 
tempid str_to_num(Data)
    
    new 
mapname[32], challenger[32], challenged[32], ct_origin[3], te_origin[3]

    
get_mapname(mapname,31)
    
get_user_name(idchallenger31)
    
get_user_name(tempidchallenged31)
    
    
// strip weapons
    
strip_user_weapons(id)
    
strip_user_weapons(tempid)
    
    
// health
    
set_user_health(id100)
    
set_user_health(tempid100)
    
    
// effects
    
switch (get_pcvar_num(cvar_effect))
    {
        case 
0// glow
        
{
            
set_user_rendering(idkRenderFxGlowShell25000kRenderNormal20)    
            
set_user_rendering(tempidkRenderFxGlowShell00250kRenderNormal20)
        }
        case 
1// beacon
        
{
            
set_task(1.0"beacon"id)
            
set_task(1.0"beacon"tempid)
        }
        case 
2// glow n' beacon
        
{
            
set_user_rendering(idkRenderFxGlowShell25000kRenderNormal20)    
            
set_task(1.0"beacon"id)
            
set_user_rendering(tempidkRenderFxGlowShell00250kRenderNormal20)
            
set_task(1.0"beacon"tempid)
        }
    }
    
    
// player challenged
    
player_challenged[tempid] = true
    
    
// lr menu once until he kills the player challenged
    
once[id] = true 
    
    
// unable pick up weapon (only the 2 players on duel)
    
touch_weapons[id] = true
    touch_weapons
[tempid] = true
            
    
if(knife_duel[id])
    {
        
give_item(id"weapon_knife")
        
give_item(tempid"weapon_knife")
                
        if(
equali(mapname,"some1s_jailbreak"))
        {
            
ct_origin[0] = -759ct_origin[1] = 1047ct_origin[2] = 100
            te_origin
[0] = -585te_origin[1] = 867te_origin[2] = 100
            set_user_origin
(id,te_origin)
            
set_user_origin(tempid,ct_origin)
        }
        
        
set_hudmessage02550, -1.00.4025.08.00.00.010)
        
show_hudmessage(0"%L",LANG_PLAYER,"KNIFE_DUEL"challengerchallenged)
        
    }
    else if(
deagle_duel[id])
    {
        
deagle_duel[tempid] = true
        
        cs_set_weapon_ammo
(give_item(id"weapon_deagle"), 1)
        
cs_set_weapon_ammo(give_item(tempid"weapon_deagle"), 1)
        
        if(
equali(mapname,"some1s_jailbreak"))
        {
            
ct_origin[0] = -1352ct_origin[1] = 271ct_origin[2] = 38
            te_origin
[0] = -1338te_origin[1] = -782te_origin[2] = 38
            set_user_origin
(id,te_origin)
            
set_user_origin(tempid,ct_origin)
        }
        
        
set_hudmessage02550, -1.00.4025.08.00.00.010)
        
show_hudmessage(0"%L"LANG_PLAYER,"DEAGLE_DUEL"challengerchallenged)
    }
    else if(
grenade_duel[id])
    {
        
give_item(id"weapon_hegrenade")
        
give_item(tempid"weapon_hegrenade")
        
cs_set_user_bpammo(idCSW_HEGRENADE,get_pcvar_num(cvar_granadas_bpammo))        
        
cs_set_user_bpammo(tempidCSW_HEGRENADE,get_pcvar_num(cvar_granadas_bpammo))
        
        if(
equali(mapname,"some1s_jailbreak"))
        {
            
ct_origin[0] = -1756ct_origin[1] = -2526ct_origin[2] = 36
            te_origin
[0] = -3020te_origin[1] = -2529te_origin[2] = 36
            set_user_origin
(id,te_origin)
            
set_user_origin(tempid,ct_origin)
        }
        
        
set_hudmessage02550, -1.00.4025.08.00.00.010)
        
show_hudmessage(0"%L"LANG_PLAYER,"GRENADE_DUEL"challengerchallenged)
    }
    else if(
scout_duel[id])
    {
        
give_item(id"weapon_scout")
        
give_item(tempid"weapon_scout")
        
cs_set_user_bpammo(idCSW_SCOUTget_pcvar_num(cvar_scout_bpammo))
        
cs_set_user_bpammo(tempidCSW_SCOUTget_pcvar_num(cvar_scout_bpammo))
        
        if(
equali(mapname,"some1s_jailbreak"))
        {
            
ct_origin[0] = -2898ct_origin[1] = -2040ct_origin[2] = 37
            te_origin
[0] = -2908te_origin[1] = 905te_origin[2] = 37
            set_user_origin
(id,te_origin)
            
set_user_origin(tempid,ct_origin)
        }
        
        
set_hudmessage02550, -1.00.4025.08.00.00.010)
        
show_hudmessage(0"%L"LANG_PLAYER,"SCOUT_DUEL"challengerchallenged)
    }
    
    
duel_active true
    
    menu_destroy
(menu)
    return 
PLUGIN_HANDLED
}

public 
beacon(id)
{
    if(
cs_get_user_team(id) == CS_TEAM_CT)
    {
        static 
origin[3]
        
get_user_origin(idorigin)
        
message_begin(MSG_BROADCASTSVC_TEMPENTITY)
        
write_byte(TE_BEAMCYLINDER)    // TE id
        
write_coord(origin[0])         // x
        
write_coord(origin[1])        // y
        
write_coord(origin[2]-20)    // z
        
write_coord(origin[0])        // x axis
        
write_coord(origin[1])        // y axis
        
write_coord(origin[2]+200)    // z axis
        
write_short(beacon_sprite)    // sprite
        
write_byte(0)            // startframe   
        
write_byte(1)            // framerate   
        
write_byte(6)            // life
        
write_byte(2)              // width
        
write_byte(1)               // noise    
        
write_byte(0)              // red  
        
write_byte(0)               // green 
        
write_byte(250)         // blue
        
write_byte(200)            // brightness
        
write_byte(0)            // speed
        
message_end()
    }
    else
    {
        static 
origin[3]
        
get_user_origin(idorigin)
        
message_begin(MSG_BROADCASTSVC_TEMPENTITY)
        
write_byte(TE_BEAMCYLINDER)    // TE id
        
write_coord(origin[0])         // x
        
write_coord(origin[1])        // y
        
write_coord(origin[2]-20)    // z
        
write_coord(origin[0])        // x axis
        
write_coord(origin[1])        // y axis
        
write_coord(origin[2]+200)    // z axis
        
write_short(beacon_sprite)    // sprite
        
write_byte(0)            // startframe   
        
write_byte(1)            // framerate   
        
write_byte(6)            // life
        
write_byte(2)              // width
        
write_byte(1)               // noise    
        
write_byte(250)            // red  
        
write_byte(0)               // green 
        
write_byte(0)             // blue
        
write_byte(200)            // brightness
        
write_byte(0)            // speed
        
message_end()
    }
    
set_task(1.0"beacon"id)
        
}

/*================================================================================
    Stocks                    
=================================================================================*/

stock ChatColor(const id, const input[], any:...)
{
    new 
count 1players[32]
    static 
msg[191]
    
vformat(msg190input3)
    
    
replace_all(msg190"!g""^4"// Green Color
    
replace_all(msg190"!y""^1"// Default Color
    
replace_all(msg190"!team""^3"// Team Color
    
    
if (idplayers[0] = id
    
else get_players(playerscount"ch")
    for (new 
0counti++)
    {
        if (
is_user_connected(players[i]))
        {
            
message_begin(MSG_ONE_UNRELIABLEg_msgSayText_players[i])
            
write_byte(players[i])
            
write_string(msg)
            
message_end()
        }
    }



ArabicMan 07-22-2015 19:37

Re: How can I add a Countdown?
 
This will help you see it.

Gh05t04 08-01-2015 14:17

Re: How can I add a Countdown?
 
I tryed this, but when the countdown starts it gets stuck on the 5, forever. Can someone help me?

Added this:
PHP Code:

new timer 

PHP Code:

new boolcountdown_on false 

PHP Code:

formatex(opcioncharsmax(opcion),"\y%L:"id"CHOOSE_ENEMY")
new 
iMenu menu_create(opcion"countdown"

PHP Code:

public countdown(idmenuitem)
{
    
timer 5

    countdown_on 
true
    sub_countdown
(id)
}

public 
sub_countdown(id)
{        
    switch(
timer)
    {
        case 
0:
        {
            
set_hudmessage(255255255, -1.0, -1.006.03.0)
            
show_hudmessage(0"Go go go")
            
client_cmd(0"spk ^"sound/radio/com_go.wav^"")
            
countdown_on false
        
}
        
        case 
1:
        {
            
client_cmd(0"spk ^"fvox/one.wav^"")
            
set_task(1.0"countdown"0)
        }
        
        case 
2:
        {
            
client_cmd(0"spk ^"fvox/two.wav^"")
            
set_task(1.0"countdown"0)
        }
            
        case 
3:
        {
            
client_cmd(0"spk ^"fvox/three.wav^"")
            
set_task(1.0"countdown"0)
        }
        
        case 
4:
        {
            
client_cmd(0"spk ^"fvox/four.wav^"")
            
set_task(1.0"countdown"0)
        }
        
        case 
5:
        {
            
client_cmd(0"spk ^"fvox/five.wav^"")
            
set_task(1.0"countdown"0)
        }
        
        case 
6:
        {
            
sub_choose_enemy(id)
        }
    }
    
    if(
timer != 0)
    {
        
set_hudmessage(255255255, -1.0, -1.006.03.0)
        
show_hudmessage(0"Countdown: %i"timer)
        
timer--
    }


The Full SMA

PHP Code:

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

#define PLUGIN "Jailbreak Last Request"
#define VERSION "1.6"
#define AUTHOR "rube"

/*================================================================================
    Variables | bools | Cvars        
=================================================================================*/

new g_maxPlayersg_msgSayTextbeacon_sprite

new timer

new cvar_granadas_bpammocvar_scout_bpammocvar_effect

new bool:touch_weapons[33], bool:once[33], bool:player_challenged[33], bool:duel_active,
bool:knife_duel[33] ,bool:deagle_duel[33], bool:grenade_duel[33], bool:scout_duel[33]

new 
boolcountdown_on false

new tag[] = "[JailBreak]"

/*================================================================================
    Init n' precache        
=================================================================================*/

public plugin_precache() 
{    
    
beacon_sprite precache_model("sprites/shockwave.spr")
}

public 
plugin_init()
{
    
register_plugin(PLUGINVERSIONAUTHOR)
    
    
register_event("HLTV""event_round_start""a""1=0""2=0")
    
    
RegisterHam(Ham_Touch"weaponbox""fw_touch_weapon")
    
RegisterHam(Ham_Touch"armoury_entity""fw_touch_weapon")
    
RegisterHam(Ham_Touch"weapon_shield""fw_touch_weapon")
    
RegisterHam(Ham_Spawn"player""fw_player_respawn"1)
    
RegisterHam(Ham_Killed"player""fw_player_killed")    
        
    
register_forward(FM_CmdStart,"fw_cmdstart",1)
    
    
// Comando de jugador - Client commands
    
register_clcmd("say /lr""duel_menu")
    
register_clcmd("say !lr""duel_menu")
    
register_clcmd("say_team /lr""duel_menu")
    
register_clcmd("say_team !lr""duel_menu")
    
    
// Cvars
    
cvar_granadas_bpammo register_cvar("jb_grenade_bpammo","10"// amount bpammo grenade | cantidad de granadas
    
cvar_scout_bpammo register_cvar("jb_scout_bpammo""10"// amount bpammo scout | cantidad de balas pa' la scout
    
cvar_effect register_cvar("jb_effect""2"// 0 = glow , 1 = beacon, 2 = glow n' beacon
    
    
g_maxPlayers get_maxplayers()
    
    
g_msgSayText get_user_msgid("SayText")
    
    
register_dictionary("jailbreak_last_request.txt")
}

/*================================================================================
    Round Start                
=================================================================================*/

public event_round_start()
{
    
duel_active false
}
        
/*================================================================================
    forwards                
=================================================================================*/

public fw_player_respawn(id)
{
    if(!
is_user_alive(id) || !cs_get_user_team(id))
        return
      
    
set_user_rendering(id)
    
remove_task(id)
    
touch_weapons[id] = false 
    once
[id] = false 
    knife_duel
[id] = false
    deagle_duel
[id] = false
    grenade_duel
[id] = false
    scout_duel
[id] = false    
    player_challenged
[id] = false
}

public 
fw_touch_weapon(weaponid)
{
    if (!
is_user_connected(id))
        return 
HAM_IGNORED;
    
    new 
players[32], pnumtempid;
    
get_players(playerspnum"a");
    for( new 
ii<pnumi++ )
    {        
        
tempid players[i];
    }
    
    if (
touch_weapons[id] || touch_weapons[tempid])
        return 
HAM_SUPERCEDE;
    
    return 
HAM_IGNORED;
}


public 
fw_cmdstart(player,uc_handle,random_seed)
{
    if(
deagle_duel[player])
    {
        
cs_set_user_bpammo(playerCSW_DEAGLE1)
    }
}

public 
fw_player_killed(victimattackershouldgib)
{
    new 
name[32]
    
get_user_name(attackername31)
            
    if(
duel_active)
    {
        if(
cs_get_user_team(victim) == CS_TEAM_CT && player_challenged[victim])
        {
            
knife_duel[attacker] = false
            deagle_duel
[attacker] = false
            grenade_duel
[attacker] = false
            scout_duel
[attacker] = false
            once
[attacker] = false
            strip_user_weapons
(attacker)
            
give_item(attacker"weapon_knife")
            
set_user_rendering(attacker)
            
duel_menu(attacker)
        }
        else if(
cs_get_user_team(victim) == CS_TEAM_CT && !player_challenged[victim])
        {
            
set_task(0.4"kill_player"attacker)
            
set_hudmessage02550, -1.00.4025.08.00.00.010)
            
show_hudmessage(0"%L"LANG_PLAYER,"DUEL_DOWN"name)
                
        }
    }
    
remove_task(attacker)
    
remove_task(victim)
}

public 
kill_player(id)
{
    
user_kill(id)
}

/*================================================================================
    Main Menu                
=================================================================================*/

public duel_menu(id)
{    
    if(!
is_user_alive(id))
        return 
PLUGIN_HANDLED
    
    
if (!once[id])
    {
        if(
cs_get_user_team(id) == CS_TEAM_T)
        {
            new 
cts[32], ts[32], ctsnumtsnum 
    
            
for (new id=1id <= g_maxPlayersid++)
            {
                if (!
is_user_connected(id) || !is_user_alive(id)) 
                { 
                    continue 
                } 
    
                if (
cs_get_user_team(id) == CS_TEAM_T
                { 
                    
ts[tsnum++] = id
                

                else if (
cs_get_user_team(id) == CS_TEAM_CT
                { 
                    
cts[ctsnum++] = id
                

            } 
            if (
tsnum == && ctsnum >= 1
            {  
            
                static 
opcion[64]
    
                
formatex(opcioncharsmax(opcion),"\y%L:"id"CHOOSE_DUEL")
                new 
iMenu menu_create(opcion"sub_duel_menu")
    
                
formatex(opcioncharsmax(opcion),"\w%L"id"DUEL_1")
                
menu_additem(iMenuopcion"1")    
    
                
formatex(opcioncharsmax(opcion),"\w%L"id"DUEL_2")
                
menu_additem(iMenuopcion"2")
            
                
formatex(opcioncharsmax(opcion),"\w%L"id"DUEL_3")
                
menu_additem(iMenuopcion"3")    
    
                
formatex(opcioncharsmax(opcion),"\w%L"id"DUEL_4")
                
menu_additem(iMenuopcion"4")
            

                
menu_setprop(iMenuMPROP_EXITMEXIT_ALL)
                
menu_display(idiMenu0)
                        
            }
            else if    (
tsnum == && ctsnum 1)
            {
                
ChatColor(id"%L"LANG_PLAYER,"NOT_CTS"tag
            }
            else if    (
tsnum 1)
            {
                
ChatColor(id"%L"LANG_PLAYER,"ONLY_LAST"tag)
            }
        }
        else
        {
            
ChatColor(id"%L"LANG_PLAYER,"ONLY_TTS"tag
        }
    }
    else
    {
        
ChatColor(id"%L"LANG_PLAYER,"KILL_CHALLENGED"tag
    }
    return 
PLUGIN_HANDLED
}

public 
sub_duel_menu(idmenuitem)
{
    
    if (
item == MENU_EXIT)
    {
        
menu_destroy(menu)
        return 
PLUGIN_HANDLED
    
}
    
    new 
Data[6], Name[64]
    new 
AccessCallback
    
    menu_item_getinfo
(menuitemAccessData,5Name63Callback)
    
    new 
Key str_to_num(Data)
    
    switch (
Key)
    {
        case 
1:
        {    
            
knife_duel[id] = true
            choose_enemy
(id)
        }
        case 
2
        {
            
deagle_duel[id] = true
            choose_enemy
(id)
        }
        case 
3
        {
            
grenade_duel[id] = true
            choose_enemy
(id)
        }
        case 
4
        {
            
scout_duel[id] = true
            choose_enemy
(id)
        }
    }
    
    
menu_destroy(menu)    
    return 
PLUGIN_HANDLED
}

/*================================================================================
    Menu of challenges                
=================================================================================*/

public choose_enemy(id)
{
    static 
opcion[64]
    
    
formatex(opcioncharsmax(opcion),"\y%L:"id"CHOOSE_ENEMY")
    new 
iMenu menu_create(opcion"countdown")
    
    new 
players[32], pnumtempid
    
new szName[32], szTempid[10]
    
    
get_players(playerspnum"a")
    
    for( new 
ii<pnumi++ )
    {
        
tempid players[i]
        
        if (
cs_get_user_team(tempid) != CS_TEAM_CT)
        {
            continue
        }
        
        
get_user_name(tempidszName31)
        
num_to_str(tempidszTempid9)
        
menu_additem(iMenuszNameszTempid0)
    }
    
    
menu_display(idiMenu)
    return 
PLUGIN_HANDLED
}

public 
countdown(idmenuitem)
{
    
timer 5

    countdown_on 
true
    sub_countdown
(id)
}

public 
sub_countdown(id)
{        
    switch(
timer)
    {
        case 
0:
        {
            
set_hudmessage(255255255, -1.0, -1.006.03.0)
            
show_hudmessage(0"Go go go")
            
client_cmd(0"spk ^"sound/radio/com_go.wav^"")
            
countdown_on false
        
}
        
        case 
1:
        {
            
client_cmd(0"spk ^"fvox/one.wav^"")
            
set_task(1.0"countdown"0)
        }
        
        case 
2:
        {
            
client_cmd(0"spk ^"fvox/two.wav^"")
            
set_task(1.0"countdown"0)
        }
            
        case 
3:
        {
            
client_cmd(0"spk ^"fvox/three.wav^"")
            
set_task(1.0"countdown"0)
        }
        
        case 
4:
        {
            
client_cmd(0"spk ^"fvox/four.wav^"")
            
set_task(1.0"countdown"0)
        }
        
        case 
5:
        {
            
client_cmd(0"spk ^"fvox/five.wav^"")
            
set_task(1.0"countdown"0)
        }
        
        case 
6:
        {
            
sub_choose_enemy(id)
        }
    }
    
    if(
timer != 0)
    {
        
set_hudmessage(255255255, -1.0, -1.006.03.0)
        
show_hudmessage(0"Countdown: %i"timer)
        
timer--
    }
}

public 
sub_choose_enemy(idmenuitem)
{
    if( 
item == MENU_EXIT )
    {
        
menu_destroy(menu)
        return 
PLUGIN_HANDLED
    
}
    
    new 
Data[6], Name[64]
    new 
AccessCallback
    menu_item_getinfo
(menuitemAccessData,5Name63Callback)
    
    new 
tempid str_to_num(Data)
    
    new 
mapname[32], challenger[32], challenged[32], ct_origin[3], te_origin[3]

    
get_mapname(mapname,31)
    
get_user_name(idchallenger31)
    
get_user_name(tempidchallenged31)
    
    
// strip weapons
    
strip_user_weapons(id)
    
strip_user_weapons(tempid)
    
    
// health
    
set_user_health(id100)
    
set_user_health(tempid100)
    
    
// effects
    
switch (get_pcvar_num(cvar_effect))
    {
        case 
0// glow
        
{
            
set_user_rendering(idkRenderFxGlowShell25000kRenderNormal20)    
            
set_user_rendering(tempidkRenderFxGlowShell00250kRenderNormal20)
        }
        case 
1// beacon
        
{
            
set_task(1.0"beacon"id)
            
set_task(1.0"beacon"tempid)
        }
        case 
2// glow n' beacon
        
{
            
set_user_rendering(idkRenderFxGlowShell25000kRenderNormal20)    
            
set_task(1.0"beacon"id)
            
set_user_rendering(tempidkRenderFxGlowShell00250kRenderNormal20)
            
set_task(1.0"beacon"tempid)
        }
    }
    
    
// player challenged
    
player_challenged[tempid] = true
    
    
// lr menu once until he kills the player challenged
    
once[id] = true 
    
    
// unable pick up weapon (only the 2 players on duel)
    
touch_weapons[id] = true
    touch_weapons
[tempid] = true
            
    
if(knife_duel[id])
    {
        
give_item(id"weapon_knife")
        
give_item(tempid"weapon_knife")
                
        if(
equali(mapname,"some1s_jailbreak"))
        {
            
ct_origin[0] = -759ct_origin[1] = 1047ct_origin[2] = 100
            te_origin
[0] = -585te_origin[1] = 867te_origin[2] = 100
            set_user_origin
(id,te_origin)
            
set_user_origin(tempid,ct_origin)
        }
        
        
set_hudmessage02550, -1.00.4025.08.00.00.010)
        
show_hudmessage(0"%L",LANG_PLAYER,"KNIFE_DUEL"challengerchallenged)
        
    }
    else if(
deagle_duel[id])
    {
        
deagle_duel[tempid] = true
        
        cs_set_weapon_ammo
(give_item(id"weapon_deagle"), 1)
        
cs_set_weapon_ammo(give_item(tempid"weapon_deagle"), 1)
        
        if(
equali(mapname,"some1s_jailbreak"))
        {
            
ct_origin[0] = -1352ct_origin[1] = 271ct_origin[2] = 38
            te_origin
[0] = -1338te_origin[1] = -782te_origin[2] = 38
            set_user_origin
(id,te_origin)
            
set_user_origin(tempid,ct_origin)
        }
        
        
set_hudmessage02550, -1.00.4025.08.00.00.010)
        
show_hudmessage(0"%L"LANG_PLAYER,"DEAGLE_DUEL"challengerchallenged)
    }
    else if(
grenade_duel[id])
    {
        
give_item(id"weapon_hegrenade")
        
give_item(tempid"weapon_hegrenade")
        
cs_set_user_bpammo(idCSW_HEGRENADE,get_pcvar_num(cvar_granadas_bpammo))        
        
cs_set_user_bpammo(tempidCSW_HEGRENADE,get_pcvar_num(cvar_granadas_bpammo))
        
        if(
equali(mapname,"some1s_jailbreak"))
        {
            
ct_origin[0] = -1756ct_origin[1] = -2526ct_origin[2] = 36
            te_origin
[0] = -3020te_origin[1] = -2529te_origin[2] = 36
            set_user_origin
(id,te_origin)
            
set_user_origin(tempid,ct_origin)
        }
        
        
set_hudmessage02550, -1.00.4025.08.00.00.010)
        
show_hudmessage(0"%L"LANG_PLAYER,"GRENADE_DUEL"challengerchallenged)
    }
    else if(
scout_duel[id])
    {
        
give_item(id"weapon_scout")
        
give_item(tempid"weapon_scout")
        
cs_set_user_bpammo(idCSW_SCOUTget_pcvar_num(cvar_scout_bpammo))
        
cs_set_user_bpammo(tempidCSW_SCOUTget_pcvar_num(cvar_scout_bpammo))
        
        if(
equali(mapname,"some1s_jailbreak"))
        {
            
ct_origin[0] = -2898ct_origin[1] = -2040ct_origin[2] = 37
            te_origin
[0] = -2908te_origin[1] = 905te_origin[2] = 37
            set_user_origin
(id,te_origin)
            
set_user_origin(tempid,ct_origin)
        }
        
        
set_hudmessage02550, -1.00.4025.08.00.00.010)
        
show_hudmessage(0"%L"LANG_PLAYER,"SCOUT_DUEL"challengerchallenged)
    }
    
    
duel_active true
    
    menu_destroy
(menu)
    return 
PLUGIN_HANDLED
}

public 
beacon(id)
{
    if(
cs_get_user_team(id) == CS_TEAM_CT)
    {
        static 
origin[3]
        
get_user_origin(idorigin)
        
message_begin(MSG_BROADCASTSVC_TEMPENTITY)
        
write_byte(TE_BEAMCYLINDER)    // TE id
        
write_coord(origin[0])         // x
        
write_coord(origin[1])        // y
        
write_coord(origin[2]-20)    // z
        
write_coord(origin[0])        // x axis
        
write_coord(origin[1])        // y axis
        
write_coord(origin[2]+200)    // z axis
        
write_short(beacon_sprite)    // sprite
        
write_byte(0)            // startframe   
        
write_byte(1)            // framerate   
        
write_byte(6)            // life
        
write_byte(2)              // width
        
write_byte(1)               // noise    
        
write_byte(0)              // red  
        
write_byte(0)               // green 
        
write_byte(250)         // blue
        
write_byte(200)            // brightness
        
write_byte(0)            // speed
        
message_end()
    }
    else
    {
        static 
origin[3]
        
get_user_origin(idorigin)
        
message_begin(MSG_BROADCASTSVC_TEMPENTITY)
        
write_byte(TE_BEAMCYLINDER)    // TE id
        
write_coord(origin[0])         // x
        
write_coord(origin[1])        // y
        
write_coord(origin[2]-20)    // z
        
write_coord(origin[0])        // x axis
        
write_coord(origin[1])        // y axis
        
write_coord(origin[2]+200)    // z axis
        
write_short(beacon_sprite)    // sprite
        
write_byte(0)            // startframe   
        
write_byte(1)            // framerate   
        
write_byte(6)            // life
        
write_byte(2)              // width
        
write_byte(1)               // noise    
        
write_byte(250)            // red  
        
write_byte(0)               // green 
        
write_byte(0)             // blue
        
write_byte(200)            // brightness
        
write_byte(0)            // speed
        
message_end()
    }
    
set_task(1.0"beacon"id)
        
}

/*================================================================================
    Stocks                    
=================================================================================*/

stock ChatColor(const id, const input[], any:...)
{
    new 
count 1players[32]
    static 
msg[191]
    
vformat(msg190input3)
    
    
replace_all(msg190"!g""^4"// Green Color
    
replace_all(msg190"!y""^1"// Default Color
    
replace_all(msg190"!team""^3"// Team Color
    
    
if (idplayers[0] = id
    
else get_players(playerscount"ch")
    for (new 
0counti++)
    {
        if (
is_user_connected(players[i]))
        {
            
message_begin(MSG_ONE_UNRELIABLEg_msgSayText_players[i])
            
write_byte(players[i])
            
write_string(msg)
            
message_end()
        }
    }




All times are GMT -4. The time now is 17:59.

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