JailBreak games by Inlove.

Тук е мястото да представите плъгин(и), написани от вас!
User avatar
HuliganaKuncho
Потребител
Потребител
Posts: 128
Joined: 25 Aug 2012, 18:41

JailBreak games by Inlove.

Post by HuliganaKuncho »

Име на плъгина: JailBreak Games
Версия на плъгина: v2.1
Автор: Inlove. (аз).

Описание на плъгина: Плъгина представлява меню за игри, което може да се използва от Саймън. Списък с игрите:
1) Football Game - разделя затворниците на два отбора, като на половината дава червен glow, а на другата половина син glow.
2) Prisoner Glow - Показва меню, от което избирате или да дадете glow на определен играя или да дадете glow на произволен затворник. Може да се използва за игри от вида на "proizvolno izbiram edin da umre", "proizvolno izbiram edin da poluchi fd" и т.н.
3) Prisoner Simon - Когато Саймън избере тази игра, той ще трябва да посочи един затворник, който да бъде Саймън. Този затворник ще получи оръжие, както и специален зелен glow. Той няма да може да прави щети на охранителите и ще трябва да командва затворниците.
4) Race - Когато Саймън избере опцията от менюто "Create Zone", на мястото на target-a му, ще се появи бутон. Първия затворник докоснал този бутон, печели състезанието. След като затворник докосне бутона, бутона изчезва а в чата излиза съобщение: "Player zavurshi sustezanieto pruv!". Саймън има право да поставя неограничен брой бутони по картата. Бутоните изчезват след смяна на картата.
5) First duck die - Когато Саймън избере опцията от менюто, в чата ще излезе съобщение: "Simon kaza purviq kleknal umira". Както е подразбира, първия клекнал затворник, автоматично бива убит (тази опция не успях да я тествам много добре, тъй че, ако видите проблеми, моля докладвайте тук или на ЛС, благодаря)!
6) Days Menu - Показва меню, от което избирате един от 7-те дни. Списък с дните:
*** Shoots days ****
- Awp Day (CT: 500 HP, T: 100 HP, гравитацията е намалена).
- Grenade Day (CT: 600 HP, T: 100 HP, бронята е увеличена).
- Scout Day (CT: 250 HP, T: 100 HP, видимоста е намалена).
- AK47/M4A1 Day (CT: 150-400 HP, T: 50-100 HP, CT получават M4A1 и произволно от 150 до 400 кръв, a T получават AK47 и произволно от 50 до 150 кръв).
**** Fun days ****
- Zombie Day (CT: 200 HP, T: 1000 HP, T имат специален модел и ръце, а СТ имат M249).
- NightCrawler Day (CT: 500 HP, T: 50 HP, Т са невидими и имат специален модел и ръце, а СТ имат М3).
- Shark Day (CT: 400 HP, T: 100 HP, Т имат AWP, а СТ имат специален модел на ръце и могат да минават през стени - no clip).
Менюто можете да отворите с командите /game (say & say_team) или /games (say & say_team)

Cvars на плъгина:
Cvar: jb_games 1 (0 - Изключва, 1 - Включва плъгина)
Cvar: jb_games_msg 1 (0 - Изключва, 1 - Включва всички съобщения)
Cvar: jb_football 1 (0 - Изключва, 1 - Включва Football Game)
Cvar: jb_glowing 1 (0 - Изключва, 1 - Включва Prisoner glow Game)
Cvar: jb_psimon 1 (0 - Изключва, 1 - Включва Prisoner Simon Game)
Cvar: jb_race 1 (0 - Изключва, 1 - Включва Race Game)
Cvar: jb_duckgame 1 (0 - Изключва, 1 - Включва Duck Game)
Cvar: jb_days 1 (0 - Изключва, 1 - Включва Days menu)

Библиотеки, които изисква:

Code: Select all

#include <amxmodx>
#include <fun>
#include <cstrike>
#include <engine> 
#include <hamsandwich>
#include <jbextreme>
#include <chatcolor>
#include <xs>
#include <fakemeta>
Changelog:

Code: Select all

1.0 - Първа версия на плъгина
1.1 = Оправени са някои съобщения
1.2 = Добавен е multi language файл
1.3 = Добавена е нова игра - Race 
1.4 = Добавени са 2 нови cvar-a, оправен е проблем с multilang. файла, който не показваше едно съобщение, оправен е бъг с префикса пред съобщенията
1.5 = Добавено е ново меню за glow, вече можете да изберете специален затворник на който да дадете glow или произволно на някого
2.0 = Оправени са няколко бъга, когато слагаш бутона, добавена е нова игра (меню) - Days Menu.
2.1 = Добавени са cvars за включване и изключване на игри от менюто, добавени са 2 езика в multilanguage файла (EN & BG), добавена е нова игра (First duck die)
Сваляне:
jbextreme.inc.
chatcolor.inc.
jb_gamemenu.amxx.
jbgames.txt.
Ресурси на мода.

Как да сложа плъгина?

1) Слагате файла jb_gamemenu.amxx в cstrike/addons/amxmodx/plugins/.
2) Слагате файла jbgames.txt в cstrike/addons/amxmodx/data/lang/.
3) Слагате папката models в cstrike/ и заменяте всичко (yes to all).
4) Отваряте файла cstrike/addons/amxmodx/configs/plugins.ini и на нов ред добавяте jb_gamemenu.amxx
5) Това е!

Sma:

Code: Select all

/* JailBreak games by Inlove.
Changelog:
v1.0 = first version of plugin
v1.1 = fixed some messages.
v1.2 = added multi lang file
v1.3 = added new game - Race 
v1.4 = fixed message wrongs, added new cvars
v1.5 = add new glow menu, fixed some messages
v1.6 = added new game - First duck die
v2.0 = added new menu - Days Menu (7 days)
v2.1 = added cvars for on/off games, add new game (duck game), new language in multilang file
Please, don't sell this plugin or use it for money ideas, its created just for fun ^_^
*/

/////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////Модули///////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////

#include <amxmodx>
#include <fun>
#include <cstrike>
#include <engine> 
#include <hamsandwich>
#include <jbextreme>
#include <chatcolor>
#include <xs>
#include <fakemeta>

/////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////Дефиниции//////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////

#define PLUGIN "Games Menu"
#define VERSION "2.1"
#define AUTHOR "Inlove."

#define is_true_player(%1) (1 <= %1 <= 32)
#define CLAMP_SHORT(%1) clamp(%1, 0, 0xFFFF)
#define CLAMP_BYTE(%1) clamp(%1, 0, 0xFF) 
#define get_bit2(%1,%2)     (%1 & 0<<(%2&31))
#define set_bit2(%1,%2)         %1 |= (0<<(%2&31))
#define clear_bit2(%1,%2)    %1 &= ~(0<<(%2&31))

/////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////Добавяне на константи и фукнции///////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////

new prisoner_simon[33], duck_game[33]
new g_MaxClients, g_iZone, g_BlockWeapons
new Float:g_vOrigin[3]

static const g_szZoneModel[] = "models/jb_game_button.mdl"
static const g_szZoneName[]  = "jb_game_button"
new const zm_claws [] = "models/jb_games_zmclaws.mdl"
new const pr_claws [] = "models/jb_games_prclaws.mdl"
new const sh_claws [] = "models/jb_games_shclaws.mdl"

/////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////Eventi, проверки и други///////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////

public plugin_init() 
{
    register_plugin(PLUGIN, VERSION, AUTHOR)
    
    //Регистрация на multilang файла
    register_dictionary_colored("jbgames.txt")
    
    //Команди за менюто
    register_clcmd("say /games", "GameMenu")
    register_clcmd("say_team /games", "GameMenu")
    register_clcmd("say /game", "GameMenu")
    register_clcmd("say_team /game", "GameMenu")
    
    //Cvars/Цварове
    register_cvar("jb_games","1") //0 - Изключва, 1 - Включва плъгина
    register_cvar("jb_games_msg", "1") //0 - Изключва, 1 - Включва всички съобщения (препоръчително е да се държи на "1")
    register_cvar("jb_football", "1") //0 - Изключва, 1 - Включва Football Game
    register_cvar("jb_glowing", "1") //0 - Изключва, 1 - Включва Prisoner glow Game
    register_cvar("jb_psimon", "1") //0 - Изключва, 1 - Включва Prisoner Simon Game
    register_cvar("jb_race", "1") //0 - Изключва, 1 - Включва Race Game 
    register_cvar("jb_duckgame", "1") //0 - Изключва, 1 - Включва Duck Game 
    register_cvar("jb_days", "1") //0 - Изключва, 1 - Включва Days Menu
    
    //Проверки/Events(Checks)
    RegisterHam(Ham_TakeDamage, "player", "fwdTakeDamage", 0)
    RegisterHam(Ham_Spawn, "player", "client_spawn", 1)
    RegisterHam(Ham_Touch, "weaponbox", "player_touchweapon")
    
    register_logevent("round_end", 2, "1=Round_End")
    register_touch(g_szZoneName, "player", "FwdTouchPlayer")
    register_forward(FM_PlayerPreThink, "PlayerPreThink")
    
    //Проверка за всички играчи в сървъра
    g_MaxClients = get_global_int(GL_maxClients)
}

/////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////Preache на всички модели///////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////

public plugin_precache() 
{
    precache_model(g_szZoneModel)
    precache_model(zm_claws)
    precache_model(pr_claws)
    precache_model(sh_claws)
    precache_model("models/player/jb_games_zm/jb_games_zm.mdl")
    precache_model("models/player/jb_games_predator/jb_games_predator.mdl")
}

/////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////Стандартни проверки/////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////

public client_putinserver(id)
{
    prisoner_simon[id] = false
    duck_game[id] = false
    g_BlockWeapons = 0
}

public client_disconnect(id)
{
    prisoner_simon[id] = false
    duck_game[id] = false
    g_BlockWeapons = 0
}

public client_spawn(id)
{
    prisoner_simon[id] = false
    duck_game[id] = false
    g_BlockWeapons = 0
    cs_reset_user_model(id)
}

public round_end(id)
{
    cs_reset_user_model(id)
    prisoner_simon[id] = false
    duck_game[id] = false
    g_BlockWeapons = 0
}

/////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////DUCK GAME////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////

public duckgame(id)
{
    new players[32], num, player
    get_players(players,  num, "a")
    for(new i = 0; i < num; i++)
    {
        player = players[i]
        duck_game[player] = true
    }
}

public end_duckgame(id)
{
    new players[32], num, player
    get_players(players,  num, "a")
    for(new i = 0; i < num; i++)
    {
        player = players[i]
        duck_game[player] = false
    }
}

/////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////Check events/Проверки event-и////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////

public FwdTouchPlayer(Ball, id) 
{
    if(is_user_bot(id))
    return PLUGIN_CONTINUE
        
    if(is_user_alive(id) && get_user_team(id) == 1) 
    {
        static src[32]
        new iEntity
        get_user_name(id, src, charsmax(src))
        if(get_cvar_num("jb_games_msg") == 1)
        {
        client_print_color(0, DontChange, "[JailBreak] %L", LANG_PLAYER, "FIRST_RACER")
        client_print(0, print_chat, "%s zavurshi sustezanieto, pruv!", src)
        }
        while((iEntity = find_ent_by_class(iEntity, g_szZoneName)) > 0)
        remove_entity(iEntity)
    }
    return PLUGIN_CONTINUE
}

public PlayerPreThink(id) 
{ 
    if(pev(id, pev_button) & IN_DUCK && duck_game[id] && cs_get_user_team(id) == CS_TEAM_T) 
    { 
        user_silentkill(id)
        end_duckgame(id)
    } 
} 

public fwdTakeDamage(victim, inflictor, attacker, Float:damage, damage_bits)
{
    if(is_true_player(attacker) && prisoner_simon[attacker] && get_user_team(victim) == 2 && victim != attacker)    
    {
        SetHamParamFloat(4, 0.0)
    }
}

public player_touchweapon()
{
    if(g_BlockWeapons)
        return HAM_SUPERCEDE

    return HAM_IGNORED
}
/////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////Главно меню с игри и дни///////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////

public GameMenu(id)
{
    if(!is_user_alive(id) && get_cvar_num("jb_games_msg") == 1)
    {
        client_print_color(id, DontChange, "[JailBreak] %L", LANG_PLAYER, "NO_ALIVE")
    }
    else if(!is_user_simon(id) && get_cvar_num("jb_games_msg") == 1)
    {
        client_print_color(id, DontChange, "[JailBreak] %L", LANG_PLAYER, "NO_SIMON")
    }
    else if(is_user_connected(id) && is_user_alive(id) && is_user_simon(id) && get_cvar_num("jb_games") != 1 && get_cvar_num("jb_games_msg") == 1)
    {
        client_print_color(id, DontChange, "[JailBreak] %L", LANG_PLAYER, "NO_ENABLED")
    }
    if(is_user_connected(id) && is_user_alive(id) && is_user_simon(id) && get_cvar_num("jb_games") == 1)
    {
    new szText[555 char]
    
    formatex(szText, charsmax(szText), "\w[\yJailBreak\w] Izberete igra?")
    new Menu = menu_create(szText, "GameMenuHandler")

    if(get_cvar_num("jb_football") == 1)
    {
        formatex(szText, charsmax(szText), "\wFootball game")
        menu_additem(Menu, szText, "1", 0)
    }
    if(get_cvar_num("jb_glowing") == 1)
    {
        formatex(szText, charsmax(szText), "\wPrisoner glow")
        menu_additem(Menu, szText, "2", 0)
    }
    if(get_cvar_num("jb_psimon") == 1)
    {
        formatex(szText, charsmax(szText), "\wPrisoner Simon")
        menu_additem(Menu, szText, "3", 0)
    }
    if(get_cvar_num("jb_race") == 1)
    {
        formatex(szText, charsmax(szText), "\wCreate zone")
        menu_additem(Menu, szText, "4", 0)
    }
    if(get_cvar_num("jb_duckgame") == 1)
    {
        formatex(szText, charsmax(szText), "\wFirst duck die")
        menu_additem(Menu, szText, "5", 0)
    }
    if(get_cvar_num("jb_race") == 1)
    {
        formatex(szText, charsmax(szText), "\yGame Days")
        menu_additem(Menu, szText, "6", 0)
    }


    menu_setprop(Menu, MPROP_EXIT, MEXIT_ALL)
    menu_display(id, Menu, 0)

    }
}

// Ефект на опциите на менюто
public GameMenuHandler(id, menu, item)
{    
    new data[6], iName[64], access, callback
    menu_item_getinfo(menu, item, access, data,5, iName, 63, callback) 
    new key = str_to_num(data)
    remove_task(id)    
    new szName[32]; get_user_name(id, szName, charsmax(szName))
    switch(key)
    {      
        case 1: //Football game
        {
            static iNum, iPlayers[32], Count
            Count = 0
            get_players(iPlayers, iNum, "ae", "TERRORIST")
            
            new iExtraPlayers = Count % 2 
            if (iExtraPlayers && get_cvar_num("jb_games_msg") == 1)  
            { 
                client_print_color(id, DontChange, "[JailBreak] %L", LANG_PLAYER, "T_EVEN")
            } 
            else 
            { 
                for(new maxPerTeam = (iNum / 2), g_iTeams[2], g_iTeam, iPlayer, i = 0; i < iNum; i++) 
                { 
                    iPlayer = iPlayers[i] 
                    
                    g_iTeam = random_num(0, 1) 
                    
                    if(g_iTeams[g_iTeam] >= maxPerTeam) 
                        g_iTeam = !g_iTeam 
                    else 
                        g_iTeams[g_iTeam]++ 
                    
                    if(g_iTeam == 1)
                    {
                        set_user_rendering(iPlayer,kRenderFxGlowShell,255,0,0,kRenderNormal,16)
                        if(get_cvar_num("jb_games_msg") == 1)
                        {
                        client_print_color(id, DontChange, "[JailBreak] %L", LANG_PLAYER, "YOU_RED")
                        }
                    }
                    if(g_iTeam == 0)
                    {
                        set_user_rendering(iPlayer,kRenderFxGlowShell,0,0,255,kRenderNormal,16)
                        if(get_cvar_num("jb_games_msg") == 1)
                        {
                        client_print_color(id, DontChange, "[JailBreak] %L", LANG_PLAYER, "YOU_BLUE")
                        }
                    }
                }
                if(get_cvar_num("jb_games_msg") == 1)
                {
                client_print_color(0, DontChange, "[JailBreak] %L", LANG_PLAYER, "FBG_START")
                client_print_color(0, DontChange, "[JailBreak] %L", LANG_PLAYER, "FBG_START1")
                }
            } 
            
        }
        case 2: //Random game
        {
            Prisoner_glowing(id)
        }
        case 3: //Prisoner Simon
        {
            cmd_prisoner_simon(id)
        }
        case 4: //Race game
        {
            CreateZone(id)
            GameMenu(id)
        }
        case 5: //First duck die
        {
            duckgame(id)
            if(get_cvar_num("jb_games_msg") == 1)
            {
            client_print_color(0, DontChange, "[JailBreak] %L", LANG_PLAYER, "DUCKGAME_START")
            }
        }
        case 6: //Days Menu
        {
            daysmenu(id)
        }
}
    menu_destroy(menu)
    return PLUGIN_HANDLED
}

/////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////Главно меню с дни//////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////

public daysmenu(id) 
{
    new menu = menu_create("\w[\yJailBreak\w] Izberete vid day?", "daysmenu_handler") // Title на менюто

    menu_additem(menu, "\wShoot days", "1", 0)
    menu_additem(menu, "\wFun days", "2", 0)
    
    menu_setprop(menu, MPROP_EXIT, MEXIT_ALL)
    menu_display(id, menu, 0)
}

public fundaysmenu(id) 
{
    new menu = menu_create("\w[\yJailBreak\w] Izberete day?", "fundaysmenu_handler") // Title на менюто

    menu_additem(menu, "\wZombie day^nCT: \y200\wHP, T: \y1000\wHP!", "1", 0)
    menu_additem(menu, "\wNightcrawler day^nCT: \y500\wHP, T: \y50\wHP!", "2", 0)
    menu_additem(menu, "\wShark day^nCT: \y400\wHP, T: \y100\wHP!", "3", 0)
    
    menu_setprop(menu, MPROP_EXIT, MEXIT_ALL)
    menu_display(id, menu, 0)
}

public shootdaysmenu(id) 
{
    new menu = menu_create("\w[\yJailBreak\w] Izberete day?", "shootdaysmenu_handler") // Title на менюто

    menu_additem(menu, "\wAWP day^nCT: \y500\wHP, T: \y100\wHP, \ynamalena gravitaciq\w!", "1", 0)
    menu_additem(menu, "\wGrenade day^nCT: \y600\wHP, T: \y100\wHP, \yuvelichena bronq\w!", "2", 0)
    menu_additem(menu, "\wScout day^nCT: \y250\wHP, T: \y100\wHP, \ynamalena vidimost\w!", "3", 0)
    menu_additem(menu, "\wAK47/M4A1 day^nCT: \y150-400\wHP, T: \y50-150\wHP!", "4", 0)
    
    menu_setprop(menu, MPROP_EXIT, MEXIT_ALL)
    menu_display(id, menu, 0)
}

// Ефект на менютата
public daysmenu_handler(id, menu, item)
{    
    new data[6], iName[64], access, callback
    menu_item_getinfo(menu, item, access, data,5, iName, 63, callback) 
    new key = str_to_num(data)
    switch(key)
    {      
        case 1:
        {
            shootdaysmenu(id) //Awp, He, Scout, AK47/M4A1 days
        }
        case 2:
        {
            fundaysmenu(id) //Zombie, NightCrawler, Shark days
        }
    }
    menu_destroy(menu)
    return PLUGIN_HANDLED
}

public fundaysmenu_handler(id, menu, item)
{    
    new data[6], iName[64], access, callback
    menu_item_getinfo(menu, item, access, data,5, iName, 63, callback) 
    new key = str_to_num(data)
    new players[32], num, player
    get_players(players, num, "a")
            
    for(new i = 0; i < num; i++)
    {
        switch(key)
        {      
            case 1: //Zombie Day
            {
                g_BlockWeapons = 1 // Забранява оръжията
                player = players[i]
                strip_user_weapons(player)
                set_lights("e")
                if(get_cvar_num("jb_games_msg") == 1)
                {
                client_print_color(0, DontChange, "[JailBreak] %L", LANG_PLAYER, "ZM_DAY")
                client_print_color(0, DontChange, "[JailBreak] %L", LANG_PLAYER, "ZM_DAY_INFO")
                }
                switch(cs_get_user_team(player))
                {
                    case CS_TEAM_CT:
                    {
                        give_item(player, "weapon_m249")
                        cs_set_user_bpammo(player, CSW_M249, 3000)
                        give_item(player, "weapon_deagle")
                        cs_set_user_bpammo(player, CSW_DEAGLE, 3000)
                        set_user_health(player, 200)
                        set_user_armor(player, 200)
                    }
                    case CS_TEAM_T:
                    {
                        give_item(player, "weapon_knife")
                        set_pev(player, pev_viewmodel2, zm_claws)
                        set_user_health(player, 1000)
                        cs_set_user_model(player, "jb_games_zm")
                    }
                }
            }
            case 2: //Nightcrawler Day
            {
                g_BlockWeapons = 1 // Забранява оръжията
                player = players[i]
                strip_user_weapons(player)
                set_lights("h")
                if(get_cvar_num("jb_games_msg") == 1)
                {
                client_print_color(0, DontChange, "[JailBreak] %L", LANG_PLAYER, "NC_DAY")
                client_print_color(0, DontChange, "[JailBreak] %L", LANG_PLAYER, "NC_DAY_INFO")
                }
                switch(cs_get_user_team(player))
                {
                    case CS_TEAM_CT:
                    {
                        give_item(id, "weapon_m3")
                        cs_set_user_bpammo(player, CSW_M3, 3000)
                        set_user_health(player, 500)
                    }
                    case CS_TEAM_T:
                    {
                        give_item(id, "weapon_knife")
                        set_pev(player, pev_viewmodel2, pr_claws)
                        set_user_health(player, 50)
                        cs_set_user_model(player, "jb_games_predator")
                        set_user_rendering(player, kRenderFxGlowShell, 0, 0, 0, kRenderTransAlpha, 20)
                    }
                }
            }
            case 3: //Shark Day
            {
                g_BlockWeapons = 1 // Забранява оръжията
                player = players[i]
                strip_user_weapons(player)
                if(get_cvar_num("jb_games_msg") == 1)
                {
                client_print_color(0, DontChange, "[JailBreak] %L", LANG_PLAYER, "SH_DAY")
                client_print_color(0, DontChange, "[JailBreak] %L", LANG_PLAYER, "SH_DAY_INFO")
                }
                switch(cs_get_user_team(player))
                { 
                    case CS_TEAM_CT:
                    {
                        give_item(player, "weapon_knife")
                        set_pev(player, pev_viewmodel2, sh_claws)
                        set_user_health(player, 400)
                        set_user_noclip(id, 1)
                    }
                    case CS_TEAM_T:
                    {
                        give_item(player, "weapon_awp")
                        cs_set_user_bpammo(player, CSW_AWP, 3000)
                        set_user_health(player, 100)
                    }
                }
            }
        }
    }
    menu_destroy(menu)
    return PLUGIN_HANDLED
}

public shootdaysmenu_handler(id, menu, item)
{    
    new data[6], iName[64], access, callback
    menu_item_getinfo(menu, item, access, data,5, iName, 63, callback) 
    new key = str_to_num(data)
    new players[32], num, player;
    get_players(players, num, "a")
            
    for(new i = 0; i < num; i++)
    {
        switch(key)
        {      
            case 1: //AWP Day
            {
                g_BlockWeapons = 1 // Забранява оръжията
                player = players[i]
                strip_user_weapons(player)
                set_user_gravity(player, 0.6)
                if(get_cvar_num("jb_games_msg") == 1)
                {
                client_print_color(0, DontChange, "[JailBreak] %L", LANG_PLAYER, "AWP_DAY")
                client_print_color(0, DontChange, "[JailBreak] %L", LANG_PLAYER, "AWP_DAY_INFO")
                }
                switch(cs_get_user_team(player))
                {
                    case CS_TEAM_CT:
                    {
                        give_item(player, "weapon_awp")
                        cs_set_user_bpammo(player, CSW_AWP, 3000)
                        set_user_health(player, 500)
                    }
                    case CS_TEAM_T:
                    {
                        give_item(player, "weapon_awp")
                        cs_set_user_bpammo(player, CSW_AWP, 3000)
                        set_user_health(player, 100)
                    }
                }
            }
            case 2: //Grenade Day
            {
                g_BlockWeapons = 1 // Забранява оръжията
                player = players[i]
                strip_user_weapons(player)
                set_user_armor(player, 200)
                if(get_cvar_num("jb_games_msg") == 1)
                {
                client_print_color(0, DontChange, "[JailBreak] %L", LANG_PLAYER, "HE_DAY")
                client_print_color(0, DontChange, "[JailBreak] %L", LANG_PLAYER, "HE_DAY_INFO")
                }
                switch(cs_get_user_team(player))
                {
                    case CS_TEAM_CT:
                    {
                        give_item(id, "weapon_knife")
                        set_user_health(player, 600)
                    }
                    case CS_TEAM_T:
                    {
                        give_item(player, "weapon_hegrenade")
                        cs_set_user_bpammo(player, CSW_HEGRENADE, 3000)
                        set_user_health(player, 100)
                    }
                }
            }
            case 3: //Scout Day
            {
                g_BlockWeapons = 1 // Забранява оръжията
                player = players[i]
                strip_user_weapons(player)
                set_user_rendering(player, kRenderFxGlowShell, 0, 0, 0, kRenderTransAlpha, 140)
                if(get_cvar_num("jb_games_msg") == 1)
                {
                client_print_color(0, DontChange, "[JailBreak] %L", LANG_PLAYER, "SCOUT_DAY")
                client_print_color(0, DontChange, "[JailBreak] %L", LANG_PLAYER, "SCOUT_DAY_INFO")
                }
                switch(cs_get_user_team(player))
                {
                    case CS_TEAM_CT:
                    {
                        give_item(player, "weapon_scout")
                        cs_set_user_bpammo(player, CSW_SCOUT, 3000)
                        set_user_health(player, 250)
                    }
                    case CS_TEAM_T:
                    {
                        give_item(player, "weapon_scout")
                        cs_set_user_bpammo(player, CSW_SCOUT, 3000)
                        set_user_health(player, 100)
                    }
                }
            }
            case 4: //AK47/M4A1 Day
            {
                g_BlockWeapons = 1 // Забранява оръжията
                player = players[i]
                strip_user_weapons(player)
                if(get_cvar_num("jb_games_msg") == 1)
                {
                client_print_color(0, DontChange, "[JailBreak] %L", LANG_PLAYER, "RANDOM_DAY")
                client_print_color(0, DontChange, "[JailBreak] %L", LANG_PLAYER, "RANDOM_DAY_INFO")
                }
                switch(cs_get_user_team(player))
                {
                    case CS_TEAM_CT:
                    {
                        give_item(player, "weapon_m4a1")
                        cs_set_user_bpammo(player, CSW_M4A1, 3000)
                        set_user_health(player, random_num(150, 400))
                    }
                    case CS_TEAM_T:
                    {
                        give_item(player, "weapon_ak47")
                        cs_set_user_bpammo(player, CSW_AK47, 3000)
                        set_user_health(player, random_num(50, 150))
                    }
                }
            }
        }
    }
    menu_destroy(menu)
    return PLUGIN_HANDLED
}

/////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////Glowing game/////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////

public Prisoner_glowing(id)
{
    new menu = menu_create("\w[\yJailBreak\w] Izberete tip glow?", "Prisoner_glowingHandler")
    
    menu_additem(menu, "\wChoose player glow", "1", 0)
    menu_additem(menu, "\wRandom glow", "2", 0)
    
    menu_setprop(menu, MPROP_EXIT, MEXIT_ALL)
    menu_display(id, menu, 0)
}

public Prisoner_glowingHandler(id, menu, item)
{    
    new data[6], iName[64], access, callback
    menu_item_getinfo(menu, item, access, data,5, iName, 63, callback) 
    new key = str_to_num(data)
    remove_task(id)    
    new szName[32]; get_user_name(id, szName, charsmax(szName))
    switch(key)
    {      
        case 2: //Random game
        {
            static g_iPlayer 
            g_iPlayer = fnGetRandomPlayer()
            new szName1[32]; get_user_name(g_iPlayer, szName1, charsmax(szName1))
            if(g_iPlayer > 0)
            {
                set_user_rendering(g_iPlayer,kRenderFxGlowShell,170,127,255,kRenderNormal,16)
                if(get_cvar_num("jb_games_msg") == 1)
                {
                    client_print_color(0, DontChange, "[JailBreak] %L", LANG_PLAYER, "YOU_GLOWED")
                    client_print_color(0, DontChange, "[JailBreak] %L", LANG_PLAYER, "RANDOM_GLOW", szName1)
                }
            }
        }
        case 1: //Prisoner Simon
        {
            cmd_prisoner_glow(id)
        }
}
    menu_destroy(menu)
    return PLUGIN_HANDLED
}

public prisoner_glow_select(id, menu, item)
{
    if(item == MENU_EXIT)
    {
        menu_destroy(menu)
        return PLUGIN_HANDLED
    }

    static dst[32], data[5], player, access, callback

    menu_item_getinfo(menu, item, access, data, charsmax(data), dst, charsmax(dst), callback)
    new szName[32]
    get_user_name(player, szName, charsmax(szName))
    player = str_to_num(data)
    set_user_rendering(player,kRenderFxGlowShell,170,127,255,kRenderNormal,16)
    if(get_cvar_num("jb_games_msg") == 1)
    {
        client_print_color(0, DontChange, "[JailBreak] %L", LANG_PLAYER, "CHOOSE_GLOW", szName)
    }
    return PLUGIN_HANDLED
}

public cmd_prisoner_glow(id)
{
        menu_players(id, CS_TEAM_T, id, 1, "prisoner_glow_select", "Menu")
}

/////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////Prisoner simon game/////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////

public cmd_prisoner_simon(id)
{
        menu_players(id, CS_TEAM_T, id, 1, "prisoner_simon_select", "Menu")
}

public prisoner_simon_select(id, menu, item)
{
    if(item == MENU_EXIT)
    {
        menu_destroy(menu)
        return PLUGIN_HANDLED
    }

    static dst[32], data[5], player, access, callback

    menu_item_getinfo(menu, item, access, data, charsmax(data), dst, charsmax(dst), callback)
    player = str_to_num(data)
    set_user_rendering(player,kRenderFxGlowShell,170,127,255,kRenderNormal,16)
    if(get_cvar_num("jb_games_msg") == 1)
    {
        client_print_color(0, DontChange, "[JailBreak] %L", LANG_PLAYER, "YOU_GLOWED")
    }
    return PLUGIN_HANDLED
}

/////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////STOCKS! STOCKS! STOCKS!///////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////

stock simon_set(player) // Simon prisoner
{
    static dst[32]
    get_user_name(player, dst, charsmax(dst))
    if(is_user_alive(player))
    {
        if(get_cvar_num("jb_games_msg") == 1)
        {
        client_print_color(0, DontChange, "[JailBreak] %L", LANG_PLAYER, "T_SIMON", dst)
        }
        set_user_rendering(player,kRenderFxGlowShell,127,255,0,kRenderNormal,16)
        strip_user_weapons(player)
        give_item(player, "weapon_knife")
        give_item(player, "weapon_ak47")
        give_item(player, "weapon_deagle")
        cs_set_user_bpammo(player, CSW_AK47, 90)
        cs_set_user_bpammo(player, CSW_DEAGLE, 35)
        prisoner_simon[player] = true
        set_cvar_num("mp_tkpunish", 0)
        set_cvar_num("mp_friendlyfire", 1)
    }
}

/////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////

fnGetRandomPlayer() // Prisoner random glow
{
    static iPlayers[32], iNum
    get_players(iPlayers, iNum, "ae", "TERRORIST") 
    return iNum ? iPlayers[random(iNum)] : 0
}

/////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////

stock menu_players(id, CsTeams:team, skip, alive, callback[], title[], any:...) // Prisoner Simon menu
{
    static i, name[32], num[5], menu, menuname[32]
    vformat(menuname, charsmax(menuname), title, 7)
    menu = menu_create(menuname, callback)
    for(i = 1; i <= g_MaxClients; i++)
    {
        if(!is_user_connected(i) || (alive && !is_user_alive(i)) || (skip == i))
            continue

         if(!(team == CS_TEAM_T || team == CS_TEAM_CT) || ((team == CS_TEAM_T || team == CS_TEAM_CT) && (cs_get_user_team(i) == team)))
        {
            get_user_name(i, name, charsmax(name))
            num_to_str(i, num, charsmax(num))
            menu_additem(menu, name, num, 0)
        }
    }
    menu_display(id, menu)
}

/////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////

CreateZone(id, Float:vOrigin[3] = { 0.0, 0.0, 0.0 }) // Race button creating/Вкарване на бутона в world
{
    if(!id && vOrigin[0] == 0.0 && vOrigin[1] == 0.0 && vOrigin[2] == 0.0)
    return 0
       
    
    g_iZone = create_entity("info_target")
    
    if(is_valid_ent(g_iZone))  // Button creating/Създаване на бутона
    {
        entity_set_string(g_iZone, EV_SZ_classname, g_szZoneName)
        entity_set_int(g_iZone, EV_INT_solid, SOLID_BBOX)
        entity_set_int(g_iZone, EV_INT_movetype, MOVETYPE_NONE)
        entity_set_model(g_iZone, g_szZoneModel)
        entity_set_size(g_iZone, Float: {-15.0, -15.0, 0.0}, Float:{15.0, 15.0, 60.0})
        
        entity_set_float(g_iZone, EV_FL_framerate, 0.0)
        entity_set_int(g_iZone, EV_INT_sequence, 0)
        
        entity_set_float(g_iZone, EV_FL_nextthink, get_gametime() + 0.05)
        if(get_cvar_num("jb_games_msg") == 1)
        {
        client_print_color(0, DontChange, "[JailBreak] %L", LANG_PLAYER, "CR_BUTTON")
        }
        if(id > 0)
        {
            new iOrigin[3]
            get_user_origin(id, iOrigin, 3)
            IVecFVec(iOrigin, vOrigin)
            vOrigin[2] += 5.0
            entity_set_origin(g_iZone, vOrigin)
        } 
        else
        entity_set_origin(g_iZone, vOrigin)
        g_vOrigin = vOrigin
            
        return g_iZone
        }
    
    return -1
}
 
Снимки от плъгина: 1, 2, 3, 4, 5, 6, 7, 8, 9.

Идеи/Да направя:

Code: Select all

1) .cfg файл, от който по-лесно, да се редактират cvars.
2) Да направя spray contest игра.
3) Нови езици в lang файла.
Приемам идеи!
Last edited by HuliganaKuncho on 22 Jun 2015, 18:41, edited 13 times in total.
User avatar
SnooPDoG
Потребител
Потребител
Posts: 45
Joined: 20 Jul 2007, 13:25
Skype: renchooo
CS Nick: SnooPDoG
Favorite version: CS: 1.6
Steam Community ID: swvol911
Location: Габрово
Contact:

Re: Плъгини by Inlove.

Post by SnooPDoG »

Браво за плъгините ! Зомбито се слага веднага :)
User avatar
IrlaND .
AvangardBG. ®
AvangardBG. ®
Posts: 15
Joined: 10 Sep 2013, 19:08

Re: Плъгини by Inlove.

Post by IrlaND . »

SnooPDoG wrote:Браво за плъгините ! Зомбито се слага веднага :)
Когато слагаш/добавиш нещо , давай доказателство
Last edited by st1x on 08 Oct 2013, 17:10, edited 1 time in total.
Reason: Безсмислен коментар!
User avatar
HuliganaKuncho
Потребител
Потребител
Posts: 128
Joined: 25 Aug 2012, 18:41

Re: Плъгини by Inlove.

Post by HuliganaKuncho »

Добавени са два нови плъгина (XP system & BHOP Zombie). Плъгините са тествани и не са открити грешки, моля ако някой открие грешка или бъг, да го съобщи тук, за да бъде оправен!
User avatar
SnooPDoG
Потребител
Потребител
Posts: 45
Joined: 20 Jul 2007, 13:25
Skype: renchooo
CS Nick: SnooPDoG
Favorite version: CS: 1.6
Steam Community ID: swvol911
Location: Габрово
Contact:

Re: Плъгини by Inlove.

Post by SnooPDoG »

A V A N G A R D wrote:
SnooPDoG wrote:Браво за плъгините ! Зомбито се слага веднага :)
Когато слагаш/добавиш нещо , давай доказателство
Да давам доказателства, че съм качил някой плъгин ? Пич избиваш рибата с глупави коментари, това не е воуч, че да давам доказателство за каквото и да е ;)
User avatar
HuliganaKuncho
Потребител
Потребител
Posts: 128
Joined: 25 Aug 2012, 18:41

Re: JailBreak games 1.0 by Inlove.

Post by HuliganaKuncho »

Тъй като този раздел е само за плъгини, писани изцяло от мен, а расите на зомби мода бяха преработени, премахнах другите плъгини от темата, като направих темата обща, само за един плъгин. *** Нова версия на плъгина! ***
User avatar
KiLLeR.
Потребител
Потребител
Posts: 173
Joined: 06 Mar 2011, 22:46
Skype: ЛС
CS Nick: KiLLeR ;]]
Favorite version: CS: Global Offensive
Steam Community ID: killer__________
Location: Тук-там!?!

Re: JailBreak games by Inlove.

Post by KiLLeR. »

ANormall wrote:''JailBreak games'' , този плъгин ми прилича на ''days menu'' , но с по-малко дни (игри). С какво е по-добър твоя плъгин от 'days menu'' ?
Ти да не си болен, като гледам описанието на този плъгин и мога да ти кажа, че няма нищо общо с Jailbreak Day Menu.
User avatar
HuliganaKuncho
Потребител
Потребител
Posts: 128
Joined: 25 Aug 2012, 18:41

Re: JailBreak games by Inlove.

Post by HuliganaKuncho »

Има разлика от Day (ден) и от Game (игра). Тази така малка за теб ралзика, е че игрите могат да се пускат по няколко на рунд, а дните са за цял рунд. Тъй като съм маняк на тема JB и съм играл в адски много сървъри (бих казал, почти всички развити JB в България), съм виждал много трудности при игри, поради това, че е почти невъзможно да се направят. Целта на плъгина е да олесни изпълняването на тези игри, тъй като играта става твърде еднообразна с 10 команди на кръст. Виждал съм много клиенти, които се опитват да направят някоя интересна игра, но просто мода не им го позволява, тъй като няма нужните опции. Тази фукнция, която ти си споменал е една от най-срещаните. Почти всеки рунд в някой JB сървър, се избира някой произволно, това помага доста, според мен.
User avatar
KiLLeR.
Потребител
Потребител
Posts: 173
Joined: 06 Mar 2011, 22:46
Skype: ЛС
CS Nick: KiLLeR ;]]
Favorite version: CS: Global Offensive
Steam Community ID: killer__________
Location: Тук-там!?!

Re: JailBreak games by Inlove.

Post by KiLLeR. »

ANormall wrote:
KiLLeR. wrote:
ANormall wrote:''JailBreak games'' , този плъгин ми прилича на ''days menu'' , но с по-малко дни (игри). С какво е по-добър твоя плъгин от 'days menu'' ?
Ти да не си болен, като гледам описанието на този плъгин и мога да ти кажа, че няма нищо общо с Jailbreak Day Menu.
Аре умника не се обаждай. Като гледам ''2) Prisoner Glow - Показва меню, от което избирате или да дадете glow на определен играя или да дадете glow на произволен затворник. Може да се използва за игри от вида на "proizvolno izbiram edin da umre", "proizvolno izbiram edin da poluchi fd" и т.н.'' то това е и по-тъпо от жб дайс. Нищо лично инлове, но на мен не ми харесва плъгина, но си се постарал и си добър в писането на плъгини и съм сигурен, че ще правиш по-добри и нужни плъгини :)
И що да не се обаждам, ти къв си че да ми казваш какво да правя :shock: :heat: :reve: А като плъгина не ти харесва, просто не го ползвай и толкова, а не да ми развиваш някакви теории че това било така, онова унака и т.н. Човека се е постарал и на който му харесва ще го ползва.
User avatar
Seth Rollins
Потребител
Потребител
Posts: 582
Joined: 12 Aug 2012, 19:55

Re: JailBreak games by Inlove.

Post by Seth Rollins »

Dude I luv u :D Мерси много, забавата в сървъра ми ще нарастне.
User avatar
HuliganaKuncho
Потребител
Потребител
Posts: 128
Joined: 25 Aug 2012, 18:41

Re: JailBreak games by Inlove.

Post by HuliganaKuncho »

*** Нова версия на плъгина ***. Добавени са още няколко игри.
*** Нова версия на плъгина ***. Добавенa e нова игра, нови cvars и нов език в lang файла.
User avatar
Me4Ka-PsiHoPaT
Потребител
Потребител
Posts: 2
Joined: 19 Feb 2014, 11:49

Re: JailBreak games by Inlove.

Post by Me4Ka-PsiHoPaT »

много ми хареса плъгина но имам един проблем с него
[AMXX] Plugin "jb_gamemenu.amxx" failed to load: Module/Library "chatcolor" required for plugin. Check modules.ini.

EDIT Този проблем го оправих но на негово място излезе друг L 02/21/2014 - 00:29:08: Start of error session.
L 02/21/2014 - 00:29:08: Info (map "jail_crime") (file "addons/amxmodx/logs/error_20140221.log")
L 02/21/2014 - 00:29:08: [CSTRIKE] Invalid player 1
L 02/21/2014 - 00:29:08: [AMXX] Run time error 10 (plugin "jb_gamemenu.amxx") (native "cs_reset_user_model") - debug not enabled!
L 02/21/2014 - 00:29:08: [AMXX] To enable debug mode, add "debug" after the plugin name in plugins.ini (without quotes).
L 02/21/2014 - 00:29:13: [CSTRIKE] Player out of range (0)
L 02/21/2014 - 00:29:13: [AMXX] Run time error 10 (plugin "jb_gamemenu.amxx") (native "cs_reset_user_model") - debug not enabled!
L 02/21/2014 - 00:29:13: [AMXX] To enable debug mode, add "debug" after the plugin name in plugins.ini (without quotes).
L 02/21/2014 - 00:29:13: [CSTRIKE] Player out of range (0)
L 02/21/2014 - 00:29:13: [AMXX] Run time error 10 (plugin "jb_gamemenu.amxx") (native "cs_reset_user_model") - debug not enabled!
L 02/21/2014 - 00:29:13: [AMXX] To enable debug mode, add "debug" after the plugin name in plugins.ini (without quotes).
User avatar
HuliganaKuncho
Потребител
Потребител
Posts: 128
Joined: 25 Aug 2012, 18:41

Re: JailBreak games by Inlove.

Post by HuliganaKuncho »

Хм, ще погледна тази грешка, а относно [AMXX] Plugin "jb_gamemenu.amxx" failed to load: Module/Library "chatcolor" required for plugin. Check modules.ini. сложи плъгина chatcolor.amxx.
User avatar
Jazzy.
Потребител
Потребител
Posts: 186
Joined: 24 Mar 2011, 07:16
Skype: dj_ceko16
CS Nick: ExTaZy
Favorite version: CS: 1.6

Re: JailBreak games by Inlove.

Post by Jazzy. »

Ще има ли нов ъпдейт защото има бъгове :cry:
User avatar
HuliganaKuncho
Потребител
Потребител
Posts: 128
Joined: 25 Aug 2012, 18:41

Re: JailBreak games by Inlove.

Post by HuliganaKuncho »

Ще има, може ли да кажете какви са бъговете, за да бъдат оправени?
Post Reply

Return to “Ваши плъгини”