Raised This Month: $ Target: $400
 0% 

VS Plugin


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
quLeryuzz
Member
Join Date: May 2010
Location: Istanbul
Old 11-05-2010 , 15:35   VS Plugin
Reply With Quote #1

Hi...
[ING]
I tried to make unlimited m4a1 shell, did not.



[TR]
Silahın mermisini sınırsız yapmaya çalıştım , olmadı.


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

#define PLUGIN "VS Menu"
#define VERSION "1.6"
#define AUTHOR "SmiLeFaCe"

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

new g_maxPlayers, g_msgSayText, beacon_sprite

new cvar_granadas_bpammo, cvar_scout_bpammo, cvar_effect

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

new tag[] = "[213.128.66.246]"

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

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

public plugin_init()
{
    register_plugin(PLUGIN, VERSION, AUTHOR)
    
    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 /vs", "duel_menu")
    register_clcmd("say !vs", "duel_menu")
    register_clcmd("say_team /vs", "duel_menu")
    register_clcmd("say_team !vs", "duel_menu")
    
    // Cvars

      cvar_m4a1_bpammo = register_cvar("vip_m4a1_bpammo", "99") // amount bpammo scout | cantidad de balas pa' la m4a1
    cvar_granadas_bpammo = register_cvar("vip_grenade_bpammo","99") // amount bpammo grenade | cantidad de granadas
    cvar_scout_bpammo = register_cvar("vip_scout_bpammo", "99") // amount bpammo scout | cantidad de balas pa' la scout
    cvar_effect = register_cvar("vip_effect", "2") // 0 = glow , 1 = beacon, 2 = glow n' beacon
    
    g_maxPlayers = get_maxplayers()
    
    g_msgSayText = get_user_msgid("SayText")
    
    register_dictionary("vip-vs2.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 
    m4a1_duel[id] = false
    deagle_duel[id] = false
    grenade_duel[id] = false
    scout_duel[id] = false    
    player_challenged[id] = false
}

public fw_touch_weapon(weapon, id)
{
    if (!is_user_connected(id))
        return HAM_IGNORED;
    
    new players[32], pnum, tempid;
    get_players(players, pnum, "a");
    for( new i; i<pnum; i++ )
    {        
        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(player, CSW_DEAGLE, 1)
    }
}

public fw_player_killed(victim, attacker, shouldgib)
{
    new name[32]
    get_user_name(attacker, name, 31)
            
    if(duel_active)
    {
        if(cs_get_user_team(victim) == CS_TEAM_CT && player_challenged[victim])
        {
            m4a1_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_m4a1")
            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_hudmessage( 0, 255, 0, -1.0, 0.40, 2, 5.0, 8.0, 0.0, 0.0, 10)
            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], ctsnum, tsnum 
    
            for (new id=1; id <= g_maxPlayers; id++)
            {
                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 == 1 && ctsnum >= 1) 
            {  
            
                static opcion[64]
    
                formatex(opcion, charsmax(opcion),"\y%L:", id, "CHOOSE_DUEL")
                new iMenu = menu_create(opcion, "sub_duel_menu")
    
                formatex(opcion, charsmax(opcion),"\w%L", id, "DUEL_1")
                menu_additem(iMenu, opcion, "1")    
    
                formatex(opcion, charsmax(opcion),"\w%L", id, "DUEL_2")
                menu_additem(iMenu, opcion, "2")
            
                formatex(opcion, charsmax(opcion),"\w%L", id, "DUEL_3")
                menu_additem(iMenu, opcion, "3")    
    
                formatex(opcion, charsmax(opcion),"\w%L", id, "DUEL_4")
                menu_additem(iMenu, opcion, "4")
            

                menu_setprop(iMenu, MPROP_EXIT, MEXIT_ALL)
                menu_display(id, iMenu, 0)
                        
            }
            else if    (tsnum == 1 && 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(id, menu, item)
{
    
    if (item == MENU_EXIT)
    {
        menu_destroy(menu)
        return PLUGIN_HANDLED
    }
    
    new Data[6], Name[64]
    new Access, Callback
    
    menu_item_getinfo(menu, item, Access, Data,5, Name, 63, Callback)
    
    new Key = str_to_num(Data)
    
    switch (Key)
    {
        case 1:
        {    
            m4a1_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(opcion, charsmax(opcion),"\y%L:", id, "CHOOSE_ENEMY")
    new iMenu = menu_create(opcion, "sub_choose_enemy")
    
    new players[32], pnum, tempid
    new szName[32], szTempid[10]
    
    get_players(players, pnum, "a")
    
    for( new i; i<pnum; i++ )
    {
        tempid = players[i]
        
        if (cs_get_user_team(tempid) != CS_TEAM_CT)
        {
            continue
        }
        
        get_user_name(tempid, szName, 31)
        num_to_str(tempid, szTempid, 9)
        menu_additem(iMenu, szName, szTempid, 0)
    }
    
    menu_display(id, iMenu)
    return PLUGIN_HANDLED
}

public sub_choose_enemy(id, menu, item)
{
    if( item == MENU_EXIT )
    {
        menu_destroy(menu)
        return PLUGIN_HANDLED
    }
    
    new Data[6], Name[64]
    new Access, Callback
    menu_item_getinfo(menu, item, Access, Data,5, Name, 63, Callback)
    
    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(id, challenger, 31)
    get_user_name(tempid, challenged, 31)
    
    // strip weapons
    strip_user_weapons(id)
    strip_user_weapons(tempid)
    
    // health
    set_user_health(id, 200)
    set_user_health(tempid, 200)
    
    // effects
    switch (get_pcvar_num(cvar_effect))
    {
        case 0: // glow
        {
            set_user_rendering(id, kRenderFxGlowShell, 250, 0, 0, kRenderNormal, 20)    
            set_user_rendering(tempid, kRenderFxGlowShell, 0, 0, 250, kRenderNormal, 20)
        }
        case 1: // beacon
        {
            set_task(1.0, "beacon", id)
            set_task(1.0, "beacon", tempid)
        }
        case 2: // glow n' beacon
        {
            set_user_rendering(id, kRenderFxGlowShell, 250, 0, 0, kRenderNormal, 20)    
            set_task(1.0, "beacon", id)
            set_user_rendering(tempid, kRenderFxGlowShell, 0, 0, 250, kRenderNormal, 20)
            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(m4a1_duel[id])

    {
        give_item(id, "weapon_m4a1")
        give_item(tempid, "weapon_m4a1")
        cs_set_user_bpammo(id, CSW_M4A1, get_pcvar_num(cvar_m4a1_bpammo))
        cs_set_user_bpammo(tempid, CSW_M4A1, get_pcvar_num(cvar_m4a1_bpammo))
        
        if(equali(mapname,"some1s_jailbreak"))
        {
            ct_origin[0] = -2898, ct_origin[1] = -2040, ct_origin[2] = 37
            te_origin[0] = -2908, te_origin[1] = 905, te_origin[2] = 37
            set_user_origin(id,te_origin)
            set_user_origin(tempid,ct_origin)
        }
        
        set_hudmessage( 0, 255, 0, -1.0, 0.40, 2, 5.0, 8.0, 0.0, 0.0, 10)
        show_hudmessage(0, "%L", LANG_PLAYER,"m4a1_DUEL", challenger, challenged)

        
    }
    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] = -1352, ct_origin[1] = 271, ct_origin[2] = 38
            te_origin[0] = -1338, te_origin[1] = -782, te_origin[2] = 38
            set_user_origin(id,te_origin)
            set_user_origin(tempid,ct_origin)
        }
        
        set_hudmessage( 0, 255, 0, -1.0, 0.40, 2, 5.0, 8.0, 0.0, 0.0, 10)
        show_hudmessage(0, "%L", LANG_PLAYER,"DEAGLE_DUEL", challenger, challenged)
    }
    else if(grenade_duel[id])
    {
        give_item(id, "weapon_hegrenade")
        give_item(tempid, "weapon_hegrenade")
        cs_set_user_bpammo(id, CSW_HEGRENADE,get_pcvar_num(cvar_granadas_bpammo))        
        cs_set_user_bpammo(tempid, CSW_HEGRENADE,get_pcvar_num(cvar_granadas_bpammo))
        
        if(equali(mapname,"some1s_jailbreak"))
        {
            ct_origin[0] = -1756, ct_origin[1] = -2526, ct_origin[2] = 36
            te_origin[0] = -3020, te_origin[1] = -2529, te_origin[2] = 36
            set_user_origin(id,te_origin)
            set_user_origin(tempid,ct_origin)
        }
        
        set_hudmessage( 0, 255, 0, -1.0, 0.40, 2, 5.0, 8.0, 0.0, 0.0, 10)
        show_hudmessage(0, "%L", LANG_PLAYER,"GRENADE_DUEL", challenger, challenged)
    }
    else if(scout_duel[id])
    {
        give_item(id, "weapon_scout")
        give_item(tempid, "weapon_scout")
        cs_set_user_bpammo(id, CSW_SCOUT, get_pcvar_num(cvar_scout_bpammo))
        cs_set_user_bpammo(tempid, CSW_SCOUT, get_pcvar_num(cvar_scout_bpammo))
        
        if(equali(mapname,"some1s_jailbreak"))
        {
            ct_origin[0] = -2898, ct_origin[1] = -2040, ct_origin[2] = 37
            te_origin[0] = -2908, te_origin[1] = 905, te_origin[2] = 37
            set_user_origin(id,te_origin)
            set_user_origin(tempid,ct_origin)
        }
        
        set_hudmessage( 0, 255, 0, -1.0, 0.40, 2, 5.0, 8.0, 0.0, 0.0, 10)
        show_hudmessage(0, "%L", LANG_PLAYER,"SCOUT_DUEL", challenger, challenged)
    }
    
    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(id, origin)
        message_begin(MSG_BROADCAST, SVC_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(id, origin)
        message_begin(MSG_BROADCAST, SVC_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 = 1, players[32]
    static msg[191]
    vformat(msg, 190, input, 3)
    
    replace_all(msg, 190, "!g", "^4") // Green Color
    replace_all(msg, 190, "!y", "^1") // Default Color
    replace_all(msg, 190, "!team", "^3") // Team Color
    
    if (id) players[0] = id
    else get_players(players, count, "ch")
    for (new i = 0; i < count; i++)
    {
        if (is_user_connected(players[i]))
        {
            message_begin(MSG_ONE_UNRELIABLE, g_msgSayText, _, players[i])
            write_byte(players[i])
            write_string(msg)
            message_end()
        }
    }
}
quLeryuzz 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 05:48.


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