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

LS VipzSistem: исправить выдачу пистолета  [Решено]

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

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

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

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

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

LS VipzSistem: исправить выдачу пистолета  [Решено]

Сообщение nemec21 » 28 фев 2017, 01:22

Добрый вечер всем! Давно не посещал ВАС друзья
Возник небольшой вопрос
Вот мой первоначальный код

Код: Выделить всё
#include <amxmodx>
#include <amxmisc>  
#include <fun> 
#include <strip_weapon> 

new key = MENU_KEY_1|MENU_KEY_2|MENU_KEY_3|MENU_KEY_4|MENU_KEY_5|MENU_KEY_6|MENU_KEY_0 
new g_szBlockMapPrefixList
[][] =
{
    
    
"$2000$",
    "awp_india2",
    "aim_usp", 
    
"aim_deagle",
    "aim_headshot",
    "aim_aztec",      
    
"awp_india"                 
}  
new gl_RoundsCount                                  
new szMapName
[32]                 
 
public plugin_init
()
{
    register_plugin ("LS VipzSistem", "1.0", "Nemec")

    get_mapname(szMapName, charsmax(szMapName))
    for(new i; i < sizeof(g_szBlockMapPrefixList); i++)
    {
        if (contain(g_szBlockMapPrefixList[i], szMapName) != INVALID_HANDLE)
        {
            pause("d");                   
        
}
    }
    register_event("HLTV", "EventStartRound", "a", "1=0", "2=0")
    register_event("TextMsg", "EventRestartRound", "a", "2=#Game_will_restart_in","2=#Game_Commencing")
    register_menu("VipMenu", key, "VipMenuFunc") 
    
    RegisterHam
(Ham_Spawn, "player", "SpawnPlayer", 1)
 }

public EventStartRound()
    gl_RoundsCount++

public EventRestartRound()
    gl_RoundsCount = 0

public SpawnPlayer
(id)
{
                                                                    
    if
(!is_user_alive(id) || !(get_user_flags(id) & ADMIN_LEVEL_H)) 
        return 
                                             
    give_item
(id,"weapon_hegrenade")      
    give_item
(id,"weapon_flashbang")
    cs_set_user_bpammo(id , CSW_FLASHBANG, 2)
    give_item(id,"weapon_smokegrenade")
    give_item(id,"item_assaultsuit")                 
    give_item
(id,"item_thighpack")
              
    if
(gl_RoundsCount < 1) 
    
{    
        strip_weapons
(id,SECONDARY_ONLY)
        give_item(id,"weapon_deagle")
        cs_set_user_bpammo( id , CSW_DEAGLE, 35)
    }
    else 
    
{              
        VipMenu
(id)    
    
}
}
                                                  
public VipMenu
(id)
{
                                                                       
    new ctime
[64]
    get_time("%m/%d/%Y - %H.%M.%S", ctime, 63)

    static weaponmenu[650], len

    len 
= 0
    len 
= formatex(weaponmenu[len], charsmax(weaponmenu) - len, "     ...[Immortal_classic 18+]...^n             \yVIP \rÌÅÍÞ^n^n\d ...%s...^n^n", ctime)

    len += formatex(weaponmenu[len], charsmax(weaponmenu) - len, "\r1. \wÀÊ-47^n")
    key |= MENU_KEY_1                                                  

    len 
+= formatex(weaponmenu[len], charsmax(weaponmenu) - len, "\r2. \wÌ4À1^n")
    key |= MENU_KEY_2                                                                                           

    len 
+= formatex(weaponmenu[len], charsmax(weaponmenu) - len, "\r3. \wFamas^n")
    key |= MENU_KEY_3

    len 
+= formatex(weaponmenu[len], charsmax(weaponmenu) - len, "\r4. \wØòóðìîâèê^n")
    key |= MENU_KEY_4   
    
    len 
+= formatex(weaponmenu[len], charsmax(weaponmenu) - len, (gl_RoundsCount > 1) ? "\r5. \wAWP^n" : "")
    key |= MENU_KEY_5 

    len 
+= formatex(weaponmenu[len], charsmax(weaponmenu) - len, (gl_RoundsCount > 1) ? "\r6. \wÏóëåìåò^n" : "")
    key |= MENU_KEY_6  
   
    len 
+= formatex(weaponmenu[len], charsmax(weaponmenu) - len, "^n^n\r0. \wÂûõîä") 
    key 
|= MENU_KEY_0

    show_menu
(id, key, weaponmenu, 30, "VipMenu")
}

public VipMenuFunc(id, key)
{
    switch(key)
    {
        case 0: 
        
{
            strip_weapons(id,PRIMARY_ONLY) 
            give_item
(id,"weapon_ak47")
            cs_set_user_bpammo(id , CSW_AK47, 90)
        } 
        case 1
:
        {
            strip_weapons(id,PRIMARY_ONLY)
            give_item(id, "weapon_m4a1")
            cs_set_user_bpammo(id , CSW_M4A1, 90)
        }
        case 2: 
        
{    
            strip_weapons
(id,PRIMARY_ONLY)
            give_item(id, "weapon_famas")
            cs_set_user_bpammo(id , CSW_FAMAS, 90)
        }
        case 3: 
        
{   
            strip_weapons
(id,PRIMARY_ONLY)
            give_item(id, "weapon_sg552")
            cs_set_user_bpammo(id , CSW_SG552, 90)
        }
        case 4:
        {   
            strip_weapons
(id,PRIMARY_ONLY)
            give_item(id, "weapon_awp")
            cs_set_user_bpammo(id , CSW_AWP, 30) 
        
} 
        case 5
:
        {    
            strip_weapons
(id,PRIMARY_ONLY)
            give_item(id, "weapon_m249")
            cs_set_user_bpammo(id , CSW_M249, 200)
        }                    
        case 9
: return
    
}
}

хотел сделать под 7 пунктом выдачу пистолетов. Регистрирую второе меню. Прописываю меню но при выдаче пистолета выдает основное оружие и пистолет например. может второе надо делать старым меню?

Название темы скорректировано // Subb98


Добавлено спустя 3 минуты 25 секунд:
Спасибо ты как всегда))

Добавлено спустя 3 минуты 45 секунд:
можно ли пользоватьсяпеременной одной этой
Код: Выделить всё
new key = MENU_KEY_1|MENU_KEY_2|MENU_KEY_3|MENU_KEY_4|MENU_KEY_5|MENU_KEY_6|MENU_KEY_0

в 2 меню сразу?

Добавлено спустя 11 минут 13 секунд:
тоесть дописать плагин так
Код: Выделить всё
register_menu("PistolsMenu", key, "PistolsMenuFunc"

Код: Выделить всё
public Pistols(id)
{
                                                                       
    new ctime
[64]
    get_time("%m/%d/%Y - %H.%M.%S", ctime, 63)

    static weaponmenu[650], len

    len 
= 0
    len 
= formatex(weaponmenu[len], charsmax(weaponmenu) - len, "     ...[Immortal_classic 18+]...^n             \yVIP \rÌÅÍÞ^n^n\d ...%s...^n^n", ctime)

    len += formatex(weaponmenu[len], charsmax(weaponmenu) - len, "\r1. \wDeagle^n")
    key |= MENU_KEY_1                                                  

    len 
+= formatex(weaponmenu[len], charsmax(weaponmenu) - len, "\r2. \wUSP^n")
    key |= MENU_KEY_2                                                                                           

    len 
+= formatex(weaponmenu[len], charsmax(weaponmenu) - len, "\r3. \wGlock^n")
    key |= MENU_KEY_3
   
    len 
+= formatex(weaponmenu[len], charsmax(weaponmenu) - len, "^n^n\r0. \wÍàçàä") 
    key 
|= MENU_KEY_0 

    show_menu
(id, key, weaponmenu, 30, "PistolsMenu")


Добавлено спустя 2 минуты 39 секунд:
Код: Выделить всё
public PistolsMenuFunc(id, key)                   
{
    switch(key)
    {
        case 0: 
        
{   
            give_item
(id,"weapon_deagle")
            cs_set_user_bpammo(id , ......, 90)
        } 
        case 1
:
        {
            give_item(id, "weapon_usp")
            cs_set_user_bpammo(id , ....., 90)
        }
        case 2: 
        
{    
            give_item
(id, "weapon_glock")
            cs_set_user_bpammo(id , ....., 90)
        }                    
        case 9
: 
        
{
        VipMenu(id) 
        
}
    }
}


Добавлено спустя 57 минут 6 секунд:
все сам разобрался кому актуально скидываю код
Код: Выделить всё
#include <amxmodx>
#include <amxmisc>  
#include <fun> 
#include <strip_weapon> 

new key MENU_KEY_1|MENU_KEY_2|MENU_KEY_3|MENU_KEY_4|MENU_KEY_5|MENU_KEY_6|MENU_KEY_7|MENU_KEY_0 
new keys MENU_KEY_1|MENU_KEY_2|MENU_KEY_3|MENU_KEY_0
new g_szBlockMapPrefixList[][] =
{    
    
"$2000$",
    
"awp_india2",        
    
"aim_usp"
    
"aim_deagle",
    
"aim_headshot",
    
"aim_aztec",      
    
"awp_india"                 
}  
new 
gl_RoundsCount                                  
new szMapName[32]                 
 
public 
plugin_init()
{
    
register_plugin ("LS VipzSistem""1.0""Nemec")

    
get_mapname(szMapNamecharsmax(szMapName))
    for(new 
isizeof(g_szBlockMapPrefixList); i++)
    {
        if (
contain(g_szBlockMapPrefixList[i], szMapName) != INVALID_HANDLE)
        {                                       
            
pause("d");                   
        }
    }
    
register_event("HLTV""EventStartRound""a""1=0""2=0")
    
register_event("TextMsg""EventRestartRound""a""2=#Game_will_restart_in","2=#Game_Commencing")
    
register_menu("VipMenu"key"VipMenuFunc")
    
register_menu("PistolsMenu"keys"PistolsMenuFunc")
    
    
RegisterHam(Ham_Spawn"player""SpawnPlayer"1)
 }

public 
EventStartRound()
    
gl_RoundsCount++

public 
EventRestartRound()
    
gl_RoundsCount 0

public SpawnPlayer(id)
{                                                                    
    if(!
is_user_alive(id) || !(get_user_flags(id) & ADMIN_LEVEL_H)) 
        return 
                                             
    
give_item(id,"weapon_hegrenade")      
    
give_item(id,"weapon_flashbang")
    
cs_set_user_bpammo(id CSW_FLASHBANG2)
    
give_item(id,"weapon_smokegrenade")
    
give_item(id,"item_assaultsuit")                 
    
give_item(id,"item_thighpack")
              
    if(
gl_RoundsCount 2
    {    
        
strip_weapons(id,SECONDARY_ONLY)
        
give_item(id,"weapon_deagle")
        
cs_set_user_bpammoid CSW_DEAGLE35)
    }
    else 
    {              
        
VipMenu(id)    
    }
}
                                                  
public 
VipMenu(id)
{                                                                       
    new 
ctime[64]
    
get_time("%m/%d/%Y - %H.%M.%S"ctime63)

    static 
weaponmenu[650], len

    len 
0
    len 
formatex(weaponmenu[len], charsmax(weaponmenu) - len"     ...[Immortal_classic 18+]...^n             \yVIP \rÌÅÍÞ^n^n\d ...%s...^n^n"ctime)

    
len += formatex(weaponmenu[len], charsmax(weaponmenu) - len"\r1. \wÀÊ-47^n")
    
key |= MENU_KEY_1                                                  

    len 
+= formatex(weaponmenu[len], charsmax(weaponmenu) - len"\r2. \wÌ4À1^n")
    
key |= MENU_KEY_2                                                                                           

    len 
+= formatex(weaponmenu[len], charsmax(weaponmenu) - len"\r3. \wFamas^n")
    
key |= MENU_KEY_3

    len 
+= formatex(weaponmenu[len], charsmax(weaponmenu) - len"\r4. \wØòóðìîâèê^n")
    
key |= MENU_KEY_4   
    
    len 
+= formatex(weaponmenu[len], charsmax(weaponmenu) - len, (gl_RoundsCount 2) ? "\r5. \wAWP^n" "")
    
key |= MENU_KEY_5 

    len 
+= formatex(weaponmenu[len], charsmax(weaponmenu) - len, (gl_RoundsCount 2) ? "\r6. \wÏóëåìåò^n" "")
    
key |= MENU_KEY_6 
    
    len 
+= formatex(weaponmenu[len], charsmax(weaponmenu) - len"^n\r7. \yÌåíþ Ïèñòîëåòîâ")
    
key |= MENU_KEY_6
   
    len 
+= formatex(weaponmenu[len], charsmax(weaponmenu) - len"^n^n\r0. \wÂûõîä"
    
key |= MENU_KEY_0

    show_menu
(idkeyweaponmenu30"VipMenu")
}
 
public 
VipMenuFunc(idkey)
{
    switch(
key)
    {
        case 
0
        {
            
strip_weapons(id,PRIMARY_ONLY
            
give_item(id,"weapon_ak47")
            
cs_set_user_bpammo(id CSW_AK4790)
        } 
        case 
1:
        {
            
strip_weapons(id,PRIMARY_ONLY)
            
give_item(id"weapon_m4a1")
            
cs_set_user_bpammo(id CSW_M4A190)
        }
        case 
2
        {    
            
strip_weapons(id,PRIMARY_ONLY)
            
give_item(id"weapon_famas")
            
cs_set_user_bpammo(id CSW_FAMAS90)
        }
        case 
3
        {   
            
strip_weapons(id,PRIMARY_ONLY)
            
give_item(id"weapon_sg552")
            
cs_set_user_bpammo(id CSW_SG55290)
        }
        case 
4:
        {   
            
strip_weapons(id,PRIMARY_ONLY)
            
give_item(id"weapon_awp")
            
cs_set_user_bpammo(id CSW_AWP30
        } 
        case 
5:
        {    
            
strip_weapons(id,PRIMARY_ONLY)
            
give_item(id"weapon_m249")
            
cs_set_user_bpammo(id CSW_M249200)
        } 
        case 
6:
        {    
            
PistolsMenu(id)
        }
        case 
9: return
    }


public 
PistolsMenu(id)
{                                                                       
    static 
weaponmenu[650], len

    len 
0
    len 
formatex(weaponmenu[len], charsmax(weaponmenu) - len"     ...[Immortal_classic 18+]...^n             \yVIP \rÌÅÍÞ^n^n")

    
len += formatex(weaponmenu[len], charsmax(weaponmenu) - len"\r1. \wDeagle^n")
    
keys |= MENU_KEY_1                                                  

    len 
+= formatex(weaponmenu[len], charsmax(weaponmenu) - len"\r2. \wUSP^n")
    
keys |= MENU_KEY_2                                                                                           

    len 
+= formatex(weaponmenu[len], charsmax(weaponmenu) - len"\r3. \wGlock^n")
    
keys |= MENU_KEY_3  
                                                                                             
    len 
+= formatex(weaponmenu[len], charsmax(weaponmenu) - len"^n^n\r0. \wÍàçàä"
    
keys |= MENU_KEY_0

    show_menu
(idkeysweaponmenu30"PistolsMenu")
}
           
public 
PistolsMenuFunc(idkey)
{
    switch(
key)
    {
        case 
0
        {   
            
strip_weapons(id,SECONDARY_ONLY
            
give_item(id,"weapon_deagle")
            
cs_set_user_bpammoid CSW_DEAGLE35
            
VipMenu(id)
        } 
        case 
1:
        {    
            
strip_weapons(id,SECONDARY_ONLY)
            
give_item(id"weapon_usp")
            
cs_set_user_bpammo(id CSW_USP100)
            
VipMenu(id)
        }
        case 
2
        {    
            
strip_weapons(id,SECONDARY_ONLY)
            
give_item(id"weapon_glock18")
            
cs_set_user_bpammo(id CSW_GLOCK18120)
            
VipMenu(id)
        } 
        case 
9:
        {    
            
VipMenu(id)
        }
    }
}  
Аватара пользователя
nemec21
 
Сообщения: 799
Зарегистрирован: 07 фев 2016, 17:08
Откуда: Беларусь
Благодарил (а): 212 раз.
Поблагодарили: 44 раз.
Опыт программирования: Около 6 месяцев
Языки программирования: Counter-Strike 1.6

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

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

Сейчас этот форум просматривают: Yandex [Bot] и гости: 15