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

[Request]Add Ham_TakeDamage on my Jailbreak Last Request


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
coopper
New Member
Join Date: Sep 2015
Old 09-16-2015 , 12:41   [Request]Add Ham_TakeDamage on my Jailbreak Last Request
Reply With Quote #1

anyone can add ham_takedamage that will ignore attack from other attacker except the challenged?

i will appreciate it if you add for me



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]

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()
        }
    }

coopper 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 16:39.


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