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

Need help to make menu spawn!


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
KleirPlays
Member
Join Date: Jun 2013
Location: Portugal
Old 08-04-2014 , 06:56   Need help to make menu spawn!
Reply With Quote #1

I got this last request for jailbreak, and what i need is simple, that when there's only 1 T left it opens automaticly the last request menu.

PHP Code:
/* (c) Copyright 2009 by Rube
*
*    --------------------------------------
*    ---- Jailbreak Last Request ----------
*    --------------------------------------
*    ---------- Author: rube --------------
*    --------------------------------------
*        About the plugin:
*    This plugin allows the last terrorist access a menu to challenge a duel 
*    (typing / lr or !Lr ) the counter-terrorist that he want.
*    --------------------------------------
*        Credits:
*    - Emp` (New AMXX Menu System)
*    - MouseSplash! (Ideas and test)
*    - cikjam (how to optimize my submenu all in one)
*    - Ganz (test)
*    --------------------------------------
*    -v1.6: Optimized duel's menu ( all in one) and set glow with fun
*    -v1.5: Added teleport for every single duel (only map some1s_jailbreak)
*    -v1.4: Added ML.
*    -V1.3: Block the menu until the TE kills the CT that he challenge.
*    -v1.2: Add shot for shot on deagle duel.
*    -V1.1: Unable touch weapons during the duel.
*     -V1.0: First release.
*/

#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], bool:elite_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
    elite_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
            elite_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")
                
                
formatex(opcioncharsmax(opcion),"\w%L"id"DUEL_5")
                
menu_additem(iMenuopcion"5")
            

                
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)
        }
        case 
5
        {
            
elite_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)
    }
    else if(
elite_duel[id])
    {
        
give_item(id"weapon_elite")
        
give_item(tempid"weapon_elite")
        
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,"ELITE_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()
        }
    }

KleirPlays is offline
Eagle07
Veteran Member
Join Date: May 2014
Location: Morocco :D
Old 08-04-2014 , 07:26   Re: Need help to make menu spawn!
Reply With Quote #2

try !
add this in plugin_init
Code:
set_task(1.0, "lastT", _, _, _, "b")
and add this public
Code:
public lastT( ) {     static last     new players[32], TNum     get_players(players, TNum, "aeh", "TERRORIST")     if( last && TNum == 1 )     {         duel_menu(last)     } }
__________________

Last edited by Eagle07; 08-04-2014 at 07:26.
Eagle07 is offline
Old 08-04-2014, 07:58
Dare.Devil
This message has been deleted by YamiKaitou. Reason: cross-thread bump
KleirPlays
Member
Join Date: Jun 2013
Location: Portugal
Old 08-04-2014 , 09:25   Re: Need help to make menu spawn!
Reply With Quote #3

This last request starts the duel imideatly and i want it to have a countdown with sound, is it possible? i got here the countdown sounds.

Like apper in HUD: 5 .. 4 .. 3 .. 2 .. 1 .. With a countdown sound.
KleirPlays is offline
Old 08-05-2014, 10:47
KleirPlays
This message has been deleted by YamiKaitou. Reason: wait 14 days before you bump
KleirPlays
Member
Join Date: Jun 2013
Location: Portugal
Old 08-19-2014 , 16:41   Re: Need help to make menu spawn!
Reply With Quote #4

Help
KleirPlays is offline
Blizzard_87
Veteran Member
Join Date: Oct 2012
Old 08-19-2014 , 17:37   Re: Need help to make menu spawn!
Reply With Quote #5

Quote:
Originally Posted by Eagle07 View Post
try !
add this in plugin_init
Code:
set_task(1.0, "lastT", _, _, _, "b")
and add this public
Code:
public lastT( ) {     static last     new players[32], TNum     get_players(players, TNum, "aeh", "TERRORIST")     if( last && TNum == 1 )     {         duel_menu(last)     } }
"Last" variable is not holding a value. So this won't work anyway.

Better off just checking players in death event. Then showing menu. Will save having to check every second.
__________________

Last edited by Blizzard_87; 08-19-2014 at 17:39.
Blizzard_87 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 14:59.


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