Русское сообщество по скриптингу

Gold Weapon в VipMenu  [Решено]

Все вопросы по скриптингу для AMXX, помощь в редактировании плагинов.

Модераторы: Subb98, liFe iS GoOD

Правила форума
1. Запрещено материться и оскорблять других участников форума.
2. Запрещен флуд, оффтоп, дабл постинг во всех разделах форума, кроме раздела "Болтовня".
3. Запрещено взламывать сайт/форум или наносить любой вред проекту.
4. Запрещено рекламировать другие ресурсы.
5. Запрещено создавать темы без информативного названия. Название темы должно отображать ее смысл.

В данном разделе форума разрешено создавать темы, касающие только скриптинга для AMX Mod X.

Правила при создании новой темы:
1. При вставке кода плагина необходимо использовать тег [code=php].
2. Любые изображения должны быть загружены, как вложения к вашему сообщению.
3. При описании проблемы или запросе на помощь в редактировании плагина обязательно выкладывайте исходник sma плагина.

Gold Weapon в VipMenu

Сообщение Nosock » 31 янв 2018, 17:31

как сделать чтобы в этом плагине вместо обычных скинов оружий золотые (только скины)?
Код: Выделить всё
#include <amxmodx>
#include <fakemeta>
#include <fun>
#include <cstrike>
#include <engine>
#include <hamsandwich>
#include <fakemeta_util>
#include <dhudmessage>

#if AMXX_VERSION_NUM < 183
    #include <colorchat>
#endif

// **************************** Настройки ****************************
#define VIP_TAG (1<<2)        //Тег VIP
#define ACCESS_LEVEL_1  ADMIN_LEVEL_H          // Флаг для VIP меню        [t]
#define ACCESS_LEVEL_2  ADMIN_LEVEL_G          // Флаг для Super VIP [s]

#define VIP_TIME_AK47   180                    // Через сколько можно взять AK-47
#define VIP_TIME_M4A1   180                    // Через сколько можно взять M4A1
#define VIP_TIME_AWP    180                    // Через сколько можно взять AWP & Deagle
#define VIP_TIME_MONEY  300                    // Через сколько можно взять 16000$
#define VIP_TIME_HEALTH 180                    // Через сколько можно взять 255 HP & 255 AP
#define VIP_TIME_SPEED  180                    // Через сколько можно взять Скорость

#define VIP_TIME_MENY  40                      // Через сколько секунд можно будет меню
// **************************** Настройки ****************************
#define COUNT_TIMER 1488 // не трогать
#define TASKID 100       // не трогать

public plugin_init()
{
    
register_plugin("VIP Menu""1.0""Anonymus");
    
    
register_clcmd("vipmenu""MenuVIP");
    
register_menucmd(register_menuid("Menu VIP"), MENU_KEY_1|MENU_KEY_2|MENU_KEY_3|MENU_KEY_4|MENU_KEY_5|MENU_KEY_6|MENU_KEY_7|MENU_KEY_8"VIPMENU");

    
RegisterHam(Ham_Player_Jump"player""CBasePlayer_Jump"false);
    
register_event("CurWeapon""WeaponChange""be""1=1");
    
RegisterHam(Ham_Spawn"player""CBasePlayer_Spawn"0);
    
set_task(1.0"Timer"COUNT_TIMER__"b")
}

new 
g_ak47[33], g_m4a1[33], g_awp[33], g_money[33], g_health[33], g_speed[33],
g_UserSpeed[33], g_doublejump[33], g_iJumpNum[33], g_bunny[33], g_block[33];

new const 
PRIMARY_WEAPONS_BITSUM = (1<<CSW_SCOUT)|(1<<CSW_XM1014)|(1<<CSW_MAC10)|(1<<CSW_AUG)|(1<<CSW_UMP45)|(1<<CSW_SG550)|(1<<CSW_GALIL)|(1<<CSW_FAMAS)|(1<<CSW_AWP)|(1<<CSW_MP5NAVY)|(1<<CSW_M249)|(1<<CSW_M3)|(1<<CSW_M4A1)|(1<<CSW_TMP)|(1<<CSW_G3SG1)|(1<<CSW_SG552)|(1<<CSW_AK47)|(1<<CSW_P90);
new const 
SECONDARY_WEAPONS_BITSUM = (1<<CSW_P228)|(1<<CSW_ELITE)|(1<<CSW_FIVESEVEN)|(1<<CSW_USP)|(1<<CSW_GLOCK18)|(1<<CSW_DEAGLE);

public 
Timer()
{
    for(new 
i32;i++)
    {
        if(
g_ak47[i] > 0g_ak47[i]--
        if(
g_m4a1[i] > 0g_m4a1[i]--
        if(
g_awp[i] > 0g_awp[i]--
        if(
g_money[i] > 0g_money[i]--
        if(
g_health[i] > 0g_health[i]--
        if(
g_speed[i] > 0g_speed[i]--
        if(
g_block[i] > 0g_block[i]--
    }
}

public 
MenuVIP(id)
{
    if(~
get_user_flags(id) & ACCESS_LEVEL_1)
    {
        
client_print_color(idprint_team_default"^1[^4INFO^1] Только ^3VIP ^4может пользоваться этой командой !");
        return 
PLUGIN_HANDLED;
    }
    if(
g_block[id] > 0)
    {
        
client_print_color(idprint_team_default"^1[^4INFO^1] Подождите^4 40 ^1сек после входа. ^3!");
        return 
PLUGIN_HANDLED;
    }
    if(!
is_user_alive(id))
    {
        
client_print_color(idprint_team_default"^1[^4INFO^1] Данное меню ^4Недоступно ^3для мертвых !");
        return 
PLUGIN_HANDLED;
    }
    
    new 
szMenu[1024], iLen formatex(szMenucharsmax(szMenu), "\yVIP Меню^n^n"), iKey MENU_KEY_8;

    if(
g_ak47[id] == 0)
    {
        
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen"\r1. \wВзять AK-47 \y[\r%d Секунд\y]^n"VIP_TIME_AK47)
        
iKey |= MENU_KEY_1;
    }
    else
    {
        
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen"\r1. \dВзять AK-47 \y[\rЖдите %d Секунд\y]^n"g_ak47[id])
        
iKey &= ~MENU_KEY_1;
    }
    
    if(
g_m4a1[id] == 0)
    {
        
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen"\r2. \wВзять M4A1 \y[\r%d Секунд\y]^n"VIP_TIME_M4A1)
        
iKey |= MENU_KEY_2;
    }
    else
    {
        
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen"\r2. \dВзять M4A1 \y[\rЖдите %d Секунд\y]^n"g_m4a1[id])
        
iKey &= ~MENU_KEY_2;
    }
    
    if(
g_awp[id] == 0)
    {
        
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen"\r3. \wВзять AWP & Deagle \y[\r%d Секунд\y]^n"VIP_TIME_AWP)
        
iKey |= MENU_KEY_3;
    }
    else
    {
        
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen"\r3. \dВзять AWP & Deagle \y[\rЖдите %d Секунд\y]^n"g_awp[id])
        
iKey &= ~MENU_KEY_3;
    }
    
    if(
g_money[id] == 0)
    {
        
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen"\r4. \wВзять 16000$ \y[\r%d Секунд\y]^n"VIP_TIME_MONEY)
        
iKey |= MENU_KEY_4;
    }
    else
    {
        
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen"\r4. \dВзять 16000$ \y[\rЖдите %d Секунд\y]^n"g_money[id])
        
iKey &= ~MENU_KEY_4;
    }
    
    if(
g_health[id] == 0)
    {
        
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen"\r5. \wВзять 255HP и 255AP \y[\r%d Секунд\y]^n"VIP_TIME_HEALTH)
        
iKey |= MENU_KEY_5;
    }
    else
    {
        
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen"\r5. \dВзять 255HP и 255AP \y[\rЖдите %d Секунд\y]^n"g_health[id])
        
iKey &= ~MENU_KEY_5;
    }
    
    if(
g_speed[id] == 0)
    {
        
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen"\r6. \wВзять Скорость \y[\r%d Секунд\y]^n"VIP_TIME_SPEED)
        
iKey |= MENU_KEY_6;
    }
    else
    {
        
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen"\r6. \dВзять Скорость \y[\rЖдите %d Секунд\y]^n"g_speed[id])
        
iKey &= ~MENU_KEY_6;
    }
    
    if(
get_user_flags(id) & ACCESS_LEVEL_2)
    {
        if(
g_doublejump[id])
        {
            
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen"\r7. \wDouble-Jump \r[\yВкл\r]^n")
            
iKey |= MENU_KEY_7;
        }
        else
        {
            
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen"\r7. \wDouble-Jump \r[\yВыкл\r]^n")
            
iKey |= MENU_KEY_7;
        }
    }
    else
    {
        
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen"\r7. \dDouble-Jump \r[\yНет прав!\r]^n")
        
iKey &= ~MENU_KEY_7   
    
}
    
    if(
g_bunny[id])
    {
        
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen"\r8. \wBunnyHop \r[\yВкл\r]^n^n")
        
iKey |= MENU_KEY_8
    
}
    else
    {
        
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen"\r8. \wBunnyHop \r[\yВыкл\r]^n^n")
        
iKey |= MENU_KEY_8
    
}
    
    
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen"\r0. \wВыход^n")
    
iKey |= MENU_KEY_0;

    return 
show_menu(idiKeyszMenu, -1"Menu VIP");
}

public 
VIPMENU(idiKey)
{
    switch(
iKey)
    {
        case 
0:
        {
            
g_ak47[id] = VIP_TIME_AK47;
            
give_item_ex(id"weapon_ak47"901);
            
client_print_color(idprint_team_default"^1[^4INFO^1] Вы ^3взяли^4 AK-47!");
        }
        case 
1:
        {
            
g_m4a1[id] = VIP_TIME_M4A1;
            
give_item_ex(id"weapon_m4a1"901);
            
client_print_color(idprint_team_default"^1[^4INFO^1] Вы ^3взяли^4 M4A1!");
        }
        case 
2:
        {
            
g_awp[id] = VIP_TIME_AWP;
            
give_item_ex(id"weapon_awp"301);
            
give_item_ex(id"weapon_deagle"351);
            
client_print_color(idprint_team_default"^1[^4INFO^1] Вы ^3взяли^4 AWP и Deagle!");
        }
        case 
3:
        {
            
g_money[id] = VIP_TIME_MONEY;
            
cs_set_user_money(idcs_get_user_money(id) + 16000);
            
client_print_color(idprint_team_default"^1[^4INFO^1] Вы ^3взяли^4 16000$!");
        }
        case 
4:
        {
            
g_health[id] = VIP_TIME_HEALTH;
            
set_user_health(id500);
            
set_user_armor(idget_user_armor(id) + 255);
            
client_print_color(idprint_team_default"^1[^4INFO^1] Вы ^3взяли^4 255HP и 255AP!");
        }
        case 
5:
        {
            
g_speed[id] = VIP_TIME_SPEED;
            
g_UserSpeed[id] = true;
            
set_user_maxspeed(id365.0);
            
client_print_color(idprint_team_default"^1[^4INFO^1] Вы ^3взяли^4 Скорость!");
        }
        case 
6:
        {
            if(!
g_doublejump[id])
            {
                
g_doublejump[id] = true;
                
client_print_color(idprint_team_default"^1[^4INFO^1] Вы ^3включили ^4DoubleJump!");
            }
            else
            {
                
g_doublejump[id] = false;
                
client_print_color(idprint_team_default"^1[^4INFO^1] Вы ^3выключили ^4DoubleJump!");
            }
        }
        case 
7:
        {
            if(!
g_bunny[id])
            {
                
g_bunny[id] = true;
                
client_print_color(idprint_team_default"^1[^4INFO^1] Вы ^3включили ^4BunnyHop!");
            }
            else
            {
                
g_bunny[id] = false;
                
client_print_color(idprint_team_default"^1[^4INFO^1] Вы ^3выключили ^4BunnyHop!");
            }
        }
    }
    
MenuVIP(id);
    return 
PLUGIN_HANDLED;
}

public 
CBasePlayer_Jump(id)
{
    if(
g_bunny[id] && pev(idpev_flags) & (FL_ONGROUND|FL_CONVEYOR))
    {
        new 
Float:vecVelocity[3];
        
pev(idpev_velocityvecVelocity);
        
vecVelocity[2] = 250.0;
        
set_pev(idpev_velocityvecVelocity);
        
set_pev(idpev_gaitsequence6);
    }
    
    new 
obut get_user_oldbutton(id); // get_players(id, m_afButtonLast)
    
new nbut get_user_button(id)
    new 
iFlags pev(idpev_flags);
    
    if(
g_doublejump[id] && (nbut IN_JUMP) && !(obut IN_JUMP) && ~iFlags & (FL_ONGROUND|FL_CONVEYOR|FL_INWATER))
    {
    if(
g_iJumpNum[id] < 1)
    {
        
g_iJumpNum[id]++
        new 
Float:vecVelocity[3];
        
pev(idpev_velocityvecVelocity);
        
vecVelocity[2] = 265.0;
        
set_pev(idpev_velocityvecVelocity);
        
set_pev(idpev_gaitsequence6);
    }
    }
    if((
nbut IN_JUMP) && (get_entity_flags(id) & FL_ONGROUND))
    {
        
g_iJumpNum[id] = 0;
    }
}

public 
WeaponChange(id)
{
    if(
g_UserSpeed[id])
        
set_user_maxspeed(id320.0)
}

public 
client_putinserver(id)
{
    
g_doublejump[id] = false;
    
g_bunny[id] = false;
    
    
g_ak47[id] = VIP_TIME_AK47;
    
g_m4a1[id] = VIP_TIME_M4A1;
    
g_awp[id] = VIP_TIME_AWP;
    
g_money[id] = VIP_TIME_MONEY;
    
g_health[id] = VIP_TIME_HEALTH;
    
g_speed[id] = VIP_TIME_SPEED;
    
    
g_block[id] = VIP_TIME_MENY;
    if(
get_user_flags(id) & ACCESS_LEVEL_1)
    {
        
set_task(45.0"Blocked"id+TASKID, .flags "a");
    }
}

public 
client_disconnect(id)
{
    
remove_task(id TASKID// удаление задачи для конкретного игрока
}

public 
CBasePlayer_Spawn(id)
{
    
g_UserSpeed[id] = false;
    
}

public 
Blocked(taskid)
{
    new 
id taskid TASKID;
    if(!
is_user_connected(id) || (~get_user_flags(id) & ACCESS_LEVEL_1)) return;
    
    
set_dhudmessage(02550, -1.00.1005.04.0)
    
show_dhudmessage(id"Випменю - Активировано!")
}

stock give_item_ex(id,currWeaponName[],ammoAmount,dropFlag=0)
{
    static    
weaponsList[32], weaponName[32], weaponsNumcurrWeaponID;       
    
currWeaponID get_weaponid(currWeaponName);
    if(
dropFlag)
    {   
        
weaponsNum 0;
        
get_user_weapons(id,weaponsList,weaponsNum);
        for (new 
i;weaponsNum;i++)
        {
            if(((
<< currWeaponID) & PRIMARY_WEAPONS_BITSUM && (<< weaponsList[i]) & PRIMARY_WEAPONS_BITSUM) | ((<< currWeaponID) & SECONDARY_WEAPONS_BITSUM && (<< weaponsList[i]) & SECONDARY_WEAPONS_BITSUM))
            {
                
get_weaponname(weaponsList[i],weaponName,charsmax(weaponName));
                
engclient_cmd(id,"drop",weaponName);
            }
        }
    }
    
fm_give_item(id,currWeaponName);
    
cs_set_user_bpammo(id,currWeaponID,ammoAmount);
    return 
1;
Аватара пользователя
Nosock
 
Сообщения: 16
Зарегистрирован: 31 янв 2018, 17:24
Благодарил (а): 2 раз.
Поблагодарили: 0 раз.
Языки программирования: Pawn
SourcePawn
C++
Php
Ruby
Python
C#

Re: Gold Weapon в VipMenu

Сообщение Subb98 » 31 янв 2018, 17:52

«Очень хорошо. Лучше вы, чем я» © Donald J. Trump
Аватара пользователя
Subb98
Модератор
 
Сообщения: 5485
Зарегистрирован: 24 мар 2011, 19:42
Откуда: г. Пермь
Благодарил (а): 1329 раз.
Поблагодарили: 2343 раз.
Опыт программирования: Больше трех лет
Языки программирования: PHP

Re: Gold Weapon в VipMenu

Сообщение Nosock » 31 янв 2018, 20:50


он ведь меняет полностью, а мне нужно только чтобы их можно было взять из одного меню
Последний раз редактировалось Nosock 31 янв 2018, 20:57, всего редактировалось 1 раз.
Аватара пользователя
Nosock
 
Сообщения: 16
Зарегистрирован: 31 янв 2018, 17:24
Благодарил (а): 2 раз.
Поблагодарили: 0 раз.
Языки программирования: Pawn
SourcePawn
C++
Php
Ruby
Python
C#

Re: Gold Weapon в VipMenu  [Решено]

Сообщение Subb98 » 31 янв 2018, 21:02

Nosock, это статья, а не плагин. Вы должны зарегистрироваться, чтобы видеть ссылки..

Добавлено спустя 5 минут 34 секунды:
Nosock писал(а):а мне нужно только чтобы их можно было взять из одного меню

Это пример, а не готовое решение. Ищите тогда плагины типа Gold AK-47 / M4A1 и добавляйте их в меню.
«Очень хорошо. Лучше вы, чем я» © Donald J. Trump
Аватара пользователя
Subb98
Модератор
 
Сообщения: 5485
Зарегистрирован: 24 мар 2011, 19:42
Откуда: г. Пермь
Благодарил (а): 1329 раз.
Поблагодарили: 2343 раз.
Опыт программирования: Больше трех лет
Языки программирования: PHP


Вернуться в Скриптинг

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 21