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

case, чтобы снять шапку  [Решено]

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

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

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

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

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

case, чтобы снять шапку  [Решено]

Сообщение Marsh » 07 июл 2019, 18:40

Помогите пожалуйста. Нужен case 7, чтобы снять шапку.
Код: Выделить всё
#include <amxmodx>
#include <amxmisc>
#include <fun>
#include <hamsandwich>
#include <cstrike>
#include <engine>

#define PLUGIN "Hats shop"
#define VERSION "1.1"
#define AUTHOR "R-2"

#define ypon 1.4 //На сколько умножать урон от атак. Если нанёс 50 то 50*1.4=70 урона

#define HATS1         0 //цена шапки Скорость
#define HATS2         0 //цена шапки Гравитация
#define HATS3         0 //цена шапки скорость + грава
#define HATS4         0 //цена шапки Дамаг
#define HATS5         0 //VIP шапка Невидимость 50%
#define HATS6         0 //Супер VIP шапка, все умелки

#define FLAG_VIP ADMIN_LEVEL_B //флаг доступа на покупку шапки 5 (вип)
#define FLAG_SVIP ADMIN_LEVEL_F //флаг доступа на покупку шапки 6 (Супер вип)

new Ent[33]
new 
OffSkill[33]
new 
g_speed[33]
new 
g_grava[33]
new 
g_damag[33]
new 
g_invis[33]

new const 
chebur[] = "models/ShopR2/cheburashka.mdl"
new const cow[ ] = "models/ShopR2/cow.mdl"
new const demon[ ] = "models/ShopR2/demon.mdl"
new const elf[ ] = "models/ShopR2/elf.mdl"
new const gena[ ] = "models/ShopR2/gena.mdl"
new const kotan[ ] = "models/ShopR2/kotan.mdl"

new const pristavka[ ] = "У-Ашотика"

public plugin_init() {
    
register_plugin(PLUGINVERSIONAUTHOR)
    
    
RegisterHam(Ham_Item_PreFrame"player""PreFrame_Post"1)
    
RegisterHam(Ham_TakeDamage"player""Player_TakeDamage")
    
    
register_logevent("round_end"2"1=Round_End")
    
register_clcmd("say /hats","hats_menu")
}

public 
plugin_precache( )
{
    
precache_model(chebur)
    
precache_model(cow)
    
precache_model(demon)
    
precache_model(elf)
    
precache_model(gena)
    
precache_model(kotan)
}

public 
round_end()
{
    for(new 
id 1id <= get_maxplayers(); id++)
    {
        if(
OffSkill[id] > 0OffSkill[id] -= 1
        
        
        
if(OffSkill[id] <= && (g_grava[id] || g_speed[id] || g_damag[id] || g_invis[id])){
        
color_chat(id"!y[!g%s!y] !tУ вас закончился срок шапки."pristavka)
        
remove_hat(id)
        
g_speed[id] = false
        g_damag
[id] = false
        g_invis
[id] = false
        g_grava
[id] = false
        set_user_rendering
(id)
        
set_user_gravity(id1.0)
        
ExecuteHam(Ham_Item_PreFrameid)
        }
    }
}

public 
client_disconnect(id){
    
remove_hat(id
    
g_speed[id] = false
    g_invis
[id] = false
    g_damag
[id] = false
    g_grava
[id] = false
}

public 
client_connect(id){
    
g_speed[id] = false
    g_invis
[id] = false
    g_damag
[id] = false
    g_grava
[id] = false
}

public 
hats_menu(id)
{
    if(
get_user_team(id) == 3){
    
color_chat(id"!tВыберите !gкоманду !tчтобы открыть Магазин")
    return 
PLUGIN_HANDLED
    
}
    
    if(!
is_user_alive(id)){
    
color_chat(id"!gТы же мёртв! !tНафига тебе шапка, ты !yПРО!t, я в тебя верю !g:D")
    return 
PLUGIN_HANDLED
    
}
 

    new 
szText555 char ];
    new 
money cs_get_user_money(id)
    
formatexszTextcharsmaxszText ), "\yМагазин шапочек:")
    new 
i_Menuh menu_create(szText"menu_hats")
    
    
    if(
is_user_alive(id))
    
formatexszTextcharsmaxszText ), "\yГена \d[\rСкорость\w+\d]")  
    else if(
is_user_alive(id))
    
formatexszTextcharsmaxszText ), "\dГена \w[\rВы мертвы\w]")
    
menu_additem(i_MenuhszText"1"0)
    
    if(
is_user_alive(id))
    
formatexszTextcharsmaxszText ), "\yЧебурашка \d[\rГравитация\w+\d]"
    else if(!
is_user_alive(id))
    
formatexszTextcharsmaxszText ), "\dЧебурашка \w[\rВы мертвы!\w]")
    
menu_additem(i_MenuhszText"2"0)
   
    if(
is_user_alive(id))
    
formatexszTextcharsmaxszText ), "\yКорова \d[\rСкор\w+ \rГрав\w+\d]")    
    else if(!
is_user_alive(id))
    
formatexszTextcharsmaxszText ), "\dКорова \w[\rВы мертвы!\w]")
    
menu_additem(i_MenuhszText"3"0)
    
    if(
is_user_alive(id))
    
formatexszTextcharsmaxszText ), "\yДемон \d[\rУрон\w+\d]")
    else if(!
is_user_alive(id))
    
formatexszTextcharsmaxszText ), "\dДемон \w[\rВы мертвы!\w]")
    
menu_additem(i_MenuhszText"4"0)

    if(
is_user_alive(id) && get_user_flags(id) & FLAG_VIP)
    
formatexszTextcharsmaxszText ), "\yЭльф \d[\rНевидимость\d]")
    else if(!
is_user_alive(id) && get_user_flags(id) & FLAG_VIP)
    
formatexszTextcharsmaxszText ), "\dЭльф \w[\rВы мертвы!\w]")
    
menu_additem(i_MenuhszText"5"0)
    
    if(
get_user_flags(id) & FLAG_VIP || get_user_flags(id) & FLAG_SVIP)
    
menu_addtext(i_Menuh,"^n\rСупер VIP\w: ",0
    else 
    
menu_addtext(i_Menuh,"^n\yСупер VIP \d[\rНет доступа\d]\w: ",0)

    if(
is_user_alive(id) && get_user_flags(id) & FLAG_SVIP)
    
formatexszTextcharsmaxszText ), "\yКотан \d[\rВесь комплект\d]")   
    else if(!
is_user_alive(id) && get_user_flags(id) & FLAG_SVIP)
    
formatexszTextcharsmaxszText ), "\dКотан \w[\rВы мертвы!\w]")
    
menu_additem(i_MenuhszText"6"0)
    
    
menu_setprop(i_MenuhMPROP_EXITNAME"Выход")
    
menu_setprop(i_MenuhMPROP_EXITMEXIT_ALL)

    
menu_display(idi_Menuh0)
    
    return 
PLUGIN_HANDLED
 

 
public 
menu_hats(idmenuitem)
{
    if (
item == MENU_EXIT)
    {
        
menu_destroy(menu)
        
        return 
PLUGIN_HANDLED
    
}

    new 
s_Data[6], s_Name[64], i_Accessi_Callback

    menu_item_getinfo
(menuitemi_Accesss_Datacharsmax(s_Data), s_Namecharsmax(s_Name), i_Callback)

    new 
i_Key str_to_num(s_Data)
    new 
money cs_get_user_money(id)
    
      
    switch(
i_Key)
    {
        case 
2:
        {  
        
        if(
Ent[id] > 0)
        {
                
color_chat(id"!y[!g%s!y] !tВы и так в шапке"pristavka)
                return 
PLUGIN_HANDLED
        
}    
    
        if(!
is_user_alive(id))
        {
           
color_chat(id"!y[!g%s!y] !tТы мёртв!"pristavka)
           return 
PLUGIN_HANDLED
        
}

        if(
money HATS2)
        {
           
color_chat(id"!y[!g%s!y] !tВам не хватает денег!"pristavka)
           return 
PLUGIN_HANDLED
        
}
        
        if(
Ent[id] < 1)
        {
                
Ent[id] = create_entity("info_target")
                if(
is_valid_ent(id))
                {
                    
OffSkill[id] = 2
                        entity_set_model
(Ent[id] , chebur)
                        
entity_set_int(Ent[id], EV_INT_movetypeMOVETYPE_FOLLOW)
                        
entity_set_edict(Ent[id], EV_ENT_aimentid)
                
set_user_gravity(id0.5)
                
g_grava[id] = true
                color_chat
(id"!y[!g%s!y] !tВы одели шапку !gЧебурашки"pristavka)
                
color_chat(id"!y[!g%s!y] !tВы получили способность !gГравитация!y+"pristavka)
            
                }
        }
    
        }
        case 
1:
        {
        if(
Ent[id] > 0)
        {
                
color_chat(id"!y[!g%s!y] !tВы и так в шапке"pristavka)
                return 
PLUGIN_HANDLED
        
}
    
        if(!
is_user_alive(id))
        {
           
color_chat(id"!y[!g%s!y] !tТы мёртв!"pristavka)
           return 
PLUGIN_HANDLED
        
}

        if(
money HATS1)
        {
           
color_chat(id"!y[!g%s!y] !tВам не хватает денег!"pristavka)
           return 
PLUGIN_HANDLED
        
}
    
        if(
Ent[id] < 1)
        {
                
Ent[id] = create_entity("info_target")
                if(
is_valid_ent(id))
                {
                    
OffSkill[id] = 2
                        entity_set_model
(Ent[id] , gena)
                        
entity_set_int(Ent[id], EV_INT_movetypeMOVETYPE_FOLLOW)
                        
entity_set_edict(Ent[id], EV_ENT_aimentid)
            
g_speed[id] = true
            set_user_maxspeed
(id360.0)
                                                
                
color_chat(id"!y[!g%s!y] !tВы одели шапку !gГеныча"pristavka)
                
color_chat(id"!y[!g%s!y] !tВы получили способность !gСкорость!y+"pristavka)
                }
        }
        }
        case 
3:
        { 
        if(
Ent[id] > 0)
        {
                
color_chat(id"!y[!g%s!y] !tВы и так в шапке"pristavka)
                return 
PLUGIN_HANDLED
        
}
    
        if(!
is_user_alive(id))
        {
           
color_chat(id"!y[!g%s!y] !tТы мёртв!"pristavka)
           return 
PLUGIN_HANDLED
        
}

        if(
money HATS3)
        {
           
color_chat(id"!y[!g%s!y] !tВам не хватает денег!"pristavka)
           return 
PLUGIN_HANDLED
        
}
    
        if(
Ent[id] < 1)
        {
                
Ent[id] = create_entity("info_target")
                if(
is_valid_ent(id))
                {
                    
OffSkill[id] = 2
                        entity_set_model
(Ent[id] , cow)
                        
entity_set_int(Ent[id], EV_INT_movetypeMOVETYPE_FOLLOW)
                        
entity_set_edict(Ent[id], EV_ENT_aimentid)
            
set_user_gravity(id0.5)
            
g_speed[id] = true
            g_grava
[id] = true
            set_user_maxspeed
(id360.0)    
            
color_chat(id"!y[!g%s!y] !tВы одели шапку !gКоровы"pristavka)
            
color_chat(id"!y[!g%s!y] !tВы получили способность !gГравитация!y+ !t| !gСкорость!y+"pristavka)
                }
        }        
        }
        case 
4:
        {
        if(
Ent[id] > 0)
        {
                
color_chat(id"!y[!g%s!y] !tВы и так в шапке"pristavka)
                return 
PLUGIN_HANDLED    
        
}    
        
        if(!
is_user_alive(id))
        {
           
color_chat(id"!y[!g%s!y] !tТы мёртв!"pristavka)
           return 
PLUGIN_HANDLED
        
}

        if(
money HATS4)
        {
           
color_chat(id"!y[!g%s!y] !tВам не хватает денег!"pristavka)
           return 
PLUGIN_HANDLED
        
}    
        

        if(
Ent[id] < 1)
        {
                
Ent[id] = create_entity("info_target")
                if(
is_valid_ent(id))
                {
                    
OffSkill[id] = 2
                        entity_set_model
(Ent[id] , demon)
                        
entity_set_int(Ent[id], EV_INT_movetypeMOVETYPE_FOLLOW)
                        
entity_set_edict(Ent[id], EV_ENT_aimentid)
            
g_damag[id] = true            
            color_chat
(id"!y[!g%s!y] !tВы одели шапку !gДемона"pristavka)
            
color_chat(id"!y[!g%s!y] !tВы получили способность !gУрон!y+"pristavka)
                }
        }
        }
        case 
5:
        { 
        if(!(
get_user_flags(id) & FLAG_VIP))
        {
           
color_chat(id"!y[!g%s!y] !gУ вас нет доступа на покупку данной шапки."pristavka)
           return 
PLUGIN_HANDLED
    
        
}
    
        if(
Ent[id] > 0)
        {
                
color_chat(id"!y[!g%s!y] !tВы и так в шапке"pristavka)
        
                return 
PLUGIN_HANDLED
        
}
    
        if(!
is_user_alive(id))
        {
           
color_chat(id"!y[!g%s!y] !tТы мёртв!"pristavka)
           return 
PLUGIN_HANDLED
        
}    
    
        
        if(
money HATS5){
           
color_chat(id"!y[!g%s!y] !tВам не хватает денег!"pristavka)
           return 
PLUGIN_HANDLED
        
}
        
        if(
Ent[id] < 1)
        {
                
Ent[id] = create_entity("info_target")
                if(
is_valid_ent(id))
                {
                    
OffSkill[id] = 4
                        entity_set_model
(Ent[id] , elf)
                        
entity_set_int(Ent[id], EV_INT_movetypeMOVETYPE_FOLLOW)
                        
entity_set_edict(Ent[id], EV_ENT_aimentid)
            
                    
set_user_rendering(idkRenderFxNone000kRenderTransAlpha50)    
                    
g_invis[id] = true
                        
            color_chat
(id"!y[!g%s!y] !tВы одели шапку !gЭльфа"pristavka)
            
color_chat(id"!y[!g%s!y] !tВы получили способность !gНевидимость!y 50%"pristavka)
                }
        }
        }
        case 
6:
        {
        if(!(
get_user_flags(id) & FLAG_SVIP))
        {
           
color_chat(id"!y[!g%s!y] !gУ вас нет доступа на покупку данной шапки."pristavka)
           return 
PLUGIN_HANDLED
    
        
}
    
        
        if(
Ent[id] > 0)
        {
                
color_chat(id"!y[!g%s!y] !tВы и так в шапке"pristavka)
                return 
PLUGIN_HANDLED
        
}
    
    
        if(!
is_user_alive(id))
        {
           
color_chat(id"!y[!g%s!y] !tТы мёртв!"pristavka)
           return 
PLUGIN_HANDLED
        
}
    
        if(
money HATS6){
           
color_chat(id"!y[!g%s!y] !tВам не хватает денег!"pristavka)
           return 
PLUGIN_HANDLED
        
}
         
        if(
Ent[id] < 1)
        {
                
Ent[id] = create_entity("info_target")
                if(
is_valid_ent(id))
                {
                    
OffSkill[id] = 4
                        entity_set_model
(Ent[id] , kotan)
                        
entity_set_int(Ent[id], EV_INT_movetypeMOVETYPE_FOLLOW)
                        
entity_set_edict(Ent[id], EV_ENT_aimentid)
            
set_user_maxspeed(id360.0)
            
set_user_gravity(id0.5)
            
set_user_rendering(idkRenderFxNone000kRenderTransAlpha50)
            
g_speed[id] = true
            g_grava
[id] = true
            g_invis
[id] = true
            g_damag
[id] = true
            
            color_chat
(id"!y[!g%s!y] !tВы одели шапку !gКота"pristavka)
            
color_chat(id"!y[!g%s!y] !tВы получили все способности !y[!gПолноценный комплект!y]"pristavka)
            
                }
        }        
        }
    }
  
    
menu_destroy(menu)
    return 
PLUGIN_HANDLED
 

 
 public 
remove_hat(id)
{
    if(
Ent[id] > 0)
    {
        
remove_entity(Ent[id])
        
Ent[id] = 0
    
}
}



public 
PreFrame_Post(id)
{
    if(!
is_user_connected(id) || !is_user_alive(id))
        return

    if(
g_speed[id])
        
set_user_maxspeed(id360.0)
        
    if(
g_grava[id])
             
set_user_gravity(id0.5)
         
         
        if(
g_invis[id])
             
set_user_rendering(idkRenderFxNone000kRenderTransAlpha50)
}

public 
Player_TakeDamage(victiminflictorattackerFloat:damagedamage_type)
{
    if(!
is_user_connected(victim) || !is_user_connected(attacker) || victim == attacker)
        return 
HAM_IGNORED

    
if(!g_damag[attacker])
        return 
HAM_IGNORED

    SetHamParamFloat
(4damage ypon)
    
    return 
HAM_IGNORED


stock color_chat(const id, const input[], any:...)

    new 
count 1players[32]
    static 
msg[191]
    
vformat(msg190input3)
    
    
replace_all(msg190"!g""^4")
    
replace_all(msg190"!y""^1")
    
replace_all(msg190"!t""^3")
    
    if(
idplayers[0] = id; else get_players(playerscount"ch")
    {
        for(new 
0counti++)
        {
            if(
is_user_connected(players[i]))
            {
                
message_begin(MSG_ONE_UNRELIABLEget_user_msgid("SayText"), _players[i]);
                
write_byte(players[i]);
                
write_string(msg);
                
message_end();
            }
        }
    }
}
 
Аватара пользователя
Marsh
 
Сообщения: 20
Зарегистрирован: 24 мар 2018, 13:18
Благодарил (а): 5 раз.
Поблагодарили: 0 раз.
Опыт программирования: Около года
Языки программирования: C++
PascalABC

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

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

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