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

AdminMenu : сбрасывается скорость после смены оружия

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

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

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

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

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

AdminMenu : сбрасывается скорость после смены оружия

Сообщение Jeka_Pro » 03 дек 2016, 18:04

Ребята,кто может помочь?
Беру скорость с меню,когда меняю оружие на нож,скорость пропадает.
вот исходник, заранее спасибо
Так же проблема ещё, после перезахода на сервер скорость остается.
Так же если меня убили, я возраждаюсь , беру нож и скорость появляется,я знаю все очень запутано, вот поэтому написал сюда.


Код: Выделить всё
#include <amxmodx>
#include <amxmisc>
#include <fakemeta>
#include <hamsandwich>
#include <engine>
#include <cstrike>
#include <fun>
#include <dhudmessage>
#include <colorchat>

#pragma tabsize 0

new keys = MENU_KEY_1|MENU_KEY_2|MENU_KEY_3|MENU_KEY_4|MENU_KEY_5|MENU_KEY_6|MENU_KEY_7|MENU_KEY_8|MENU_KEY_9|MENU_KEY_0
                                                       
new Spawn
[33] 
new Gravity
[33]
new SpeedA[33]
new Invis[33]
new Money[33]
new HP[33]
new Grenade[33]
new Spead[33]                    

new Float
:timeMoney[33];
new Float:timeInvisEnd[33];

new cvar_time_for_money;
new cvar_time_invis;


#define PLUGIN "AdminMenu"
#define VERSION "v0.2 Fix"
#define AUTHOR "test"

#define OFFSET_CLIPAMMO        51
#define OFFSET_LINUX_WEAPONS    4
#define fm_cs_set_weapon_ammo(%1,%2)    set_pdata_int(%1, OFFSET_CLIPAMMO, %2, OFFSET_LINUX_WEAPONS)

#define m_pActiveItem 373

const NOCLIP_WPN_BS    = ((1<<CSW_HEGRENADE)|(1<<CSW_SMOKEGRENADE)|(1<<CSW_FLASHBANG)|(1<<CSW_KNIFE)|(1<<CSW_C4))

new const g_iMaxClip[CSW_P90 + 1] = { -1, 13, -1, 10, 1, 7, 1, 30, 30, 1, 30, 20, 25, 30, 35, 25, 12, 20, 10, 30, 100, 8, 30, 30, 20, 2, 7, 30, 30, -1, 50 };
                                                  
new bool
:g_bDamage[33], bool:g_bUnlimitedAmmo[33];
                                                  
public plugin_init
() 
{
    register_plugin(PLUGIN, VERSION, AUTHOR)        
    
    register_menu
("Menu 1", keys, "func_menu") 
    register_clcmd
("adminmenu", "adminmenu")
    register_event("CurWeapon" , "Event_CurWeapon" , "be" , "1=1" );
    register_event("HLTV", "RoundNew", "a", "1=0", "2=0")
    
    RegisterHam
(Ham_Killed, "player", "HamHook_Killed_Post", true);
    RegisterHam(Ham_TakeDamage, "player", "HamHook_TakeDamage_Player", false);
    
    cvar_time_for_money 
= register_cvar("time_for_money","15") //время в минутах
    cvar_time_invis = register_cvar("adminmenu_time_invis","300") //Время в секундах
    
    for
(new i=1;i<get_maxplayers();i++)
        timeMoney[i] = (get_gametime() + get_pcvar_float(cvar_time_for_money)*60);
}

public HamHook_Killed_Post(pIdv, pIda)
{
    g_bDamage[pIdv] = false;
    g_bUnlimitedAmmo[pIdv] = false;
}

public HamHook_TakeDamage_Player(pIdv, iInflictor, pIda, Float:fDamage, iDamageBitsum)
{
    if(!is_user_connected(pIdv) || !is_user_connected(pIda) || pIdv == pIda) return;
    
    if
(g_bDamage[pIda])
    {
        SetHamParamFloat(4, fDamage * 2.0);
    }
}

public RoundNew()
{
                        
    for
(new id = 1;id <= get_maxplayers(); id++)
    {
        Spawn[id] = 2
        Gravity
[id] = 2
        SpeedA
[id] = 2
        Invis
[id] = 2
        Money
[id] = 3 
        HP
[id] = 3
        Grenade
[id] = 3
        g_bDamage
[id] = false;
        g_bUnlimitedAmmo[id] = false;
    }
}
public adminmenu(id)
{
    static menu[650], Len
    Len 
= 0
    Len 
= formatex(menu[Len], charsmax(menu) - Len, "\r[\yCSDM\r] \wADMIN Меню^n^n");
    
    if
(get_user_flags(id) & ADMIN_MAP)
    {  
        if
(!is_user_alive(id))
        { 
            if
(Spawn[id] == 0)
            { 
                Len 
+= formatex(menu[Len], charsmax(menu) - Len, "\d[1] Воскреснуть^n", Spawn[id])
                keys &= ~MENU_KEY_1
                
}else{
                Len += formatex(menu[Len], charsmax(menu) - Len, "\r[\y1\r] \wВоскреснуть: \r(\y%d\r)^n", Spawn[id])
                keys |= MENU_KEY_1    
            
}
            }else{
            Len += formatex(menu[Len], charsmax(menu) - Len, "\d[1] Воскреснуть^n", Spawn[id])
            keys &= ~MENU_KEY_1
        
}   
    
}    
    
    if
(get_user_flags(id) & ADMIN_MAP)
    {
    if(Gravity[id] == 0)
    {                                                                                               
    Len 
+= formatex(menu[Len], charsmax(menu) - Len, "\d[2] Взять гравитацию^n", Gravity[id])
    keys &= ~MENU_KEY_2
    
}else{
    Len += formatex(menu[Len], charsmax(menu) - Len, "\r[\y2\r] \wВзять гравитацию:  \r(\y%d\r)^n", Gravity[id])
    keys |= MENU_KEY_2    
          
}
    }else{
    Len += formatex(menu[Len], charsmax(menu) - Len, "\d[2] Взять гравитацию^n", Gravity[id])
    keys &= ~MENU_KEY_2
          
}
          
    if
(get_user_flags(id) & ADMIN_MAP)
    {
    if(SpeedA[id] == 0)
    {
    Len += formatex(menu[Len], charsmax(menu) - Len, "\d[3] Взять скорость^n", SpeedA[id])
    keys &= ~MENU_KEY_3
    
}else{
    Len += formatex(menu[Len], charsmax(menu) - Len, "\r[\y3\r] \wВзять скорость:  \r(\y%d\r)^n", SpeedA[id])
    keys |= MENU_KEY_3    
          
}
    }else{
    Len += formatex(menu[Len], charsmax(menu) - Len, "\d[3] Взять скорость^n", SpeedA[id])
    keys &= ~MENU_KEY_3
    
}
    
    
    if
(get_user_flags(id) & ADMIN_MAP)
    {
    if(Invis[id] == 0)
    {
    Len += formatex(menu[Len], charsmax(menu) - Len, "\d[4] Взять Невидимость^n", Invis[id])
    keys &= ~MENU_KEY_4
    
}else{
    Len += formatex(menu[Len], charsmax(menu) - Len, "\r[\y4\r] \wВзять Невидимость:  \r(\y%d\r)^n", Invis[id])
    keys |= MENU_KEY_4    
          
}
    }else{
    Len += formatex(menu[Len], charsmax(menu) - Len, "\d[4] Взять Невидимость^n", Invis[id])
    keys &= ~MENU_KEY_4
    
}
    
          
    if
(get_user_flags(id) & ADMIN_MAP)
    {
    if(Money[id] == 0 || timeMoney[id] > get_gametime())
    {                                                                                                   
    Len 
+= formatex(menu[Len], charsmax(menu) - Len, "\d[5] Взять (5000$)^n", Money[id])
    keys |= MENU_KEY_5
    
}else{
    Len += formatex(menu[Len], charsmax(menu) - Len, "\r[\y5\r] \wВзять \r(\y5000$\r) \r(\y%d\r)^n", Money[id])
    keys |= MENU_KEY_5   
          
}
    }else{
    Len += formatex(menu[Len], charsmax(menu) - Len, "\d[5] Взять (5000$)^n", Money[id])
    keys &= ~MENU_KEY_5
          
}
          
    if
(get_user_flags(id) & ADMIN_MAP)
    {
    if(HP[id] == 0)
    {
    Len += formatex(menu[Len], charsmax(menu) - Len, "\d[6] Взять 500HP и 500AP^n", HP[id])
    keys &= ~MENU_KEY_6
    
}
    else
    
{
    Len += formatex(menu[Len], charsmax(menu) - Len, "\r[\y6\r] \wВзять \y500HP и 500AP: \r(\y%d\r)^n", HP[id])
    keys |= MENU_KEY_6    
          
}
    }
    else
    
{
    Len += formatex(menu[Len], charsmax(menu) - Len, "\d[6] Взять 250HP и 250AP^n", HP[id])
    keys &= ~MENU_KEY_6
          
}
          
         if
(get_user_flags(id) & ADMIN_MAP)
    {
    if(Grenade[id] == 0)
    {
    Len += formatex(menu[Len], charsmax(menu) - Len, "\d[7] Взять гранаты^n^n", Grenade[id])
    keys &= ~MENU_KEY_7
    
}else{
    Len += formatex(menu[Len], charsmax(menu) - Len, "\r[\y7\r] \wВзять гранаты: \r(\y%d\r)^n^n", Grenade[id])
    keys |= MENU_KEY_7    
          
}
    }
     else
    
{                                                                                     
    Len 
+= formatex(menu[Len], charsmax(menu) - Len, "\d[7] Взять гранаты^n^n", Grenade[id])
    keys &= ~MENU_KEY_7
          
}    
          
    if
(g_bDamage[id])
    {
        Len += formatex(menu[Len], charsmax(menu) - Len, "\d[8] AmxModMenu \yNew\r*^n")
        keys &= ~MENU_KEY_8
    
}
    else
    
{
        Len += formatex(menu[Len], charsmax(menu) - Len, "\r[\y8\r] \wAmxModMenu \yNew\r*^n")
        keys |= MENU_KEY_8    
    
}      
    Len 
+= formatex(menu[Len], charsmax(menu) - Len, "\r[\y0\r] \wВыход^n")
    keys |= MENU_KEY_0
    
    show_menu
(id, keys, menu, -1, "Menu 1");
    return PLUGIN_HANDLED
}

public func_menu(id, key)          
{
    switch(key)
    {
        case 0:
        {
            if(!is_user_alive(id))
            {
                if(Spawn[id] == 0)
                {
                    return PLUGIN_CONTINUE
                
}
                else
                
{                                                           
                    Spawn
[id] = Spawn[id] -1
                    ExecuteHam
(Ham_CS_RoundRespawn, id)
                    adminmenu(id)
                }    
            
}
        }
        case 1:                                       
        
{
            if(Gravity[id] == 0)
            {
                return PLUGIN_CONTINUE
            
}
            else
            
{
                Gravity[id] = Gravity[id] -1
                set_user_gravity
(id, 0.3)  
                adminmenu
(id)
            }    

        
}
        case 2:
        {
            if(SpeedA[id] == 0)
            {
                return PLUGIN_CONTINUE
            
}
            else
            
{
                SpeedA[id] = SpeedA[id] -1
                set_user_maxspeed
(id, 420.0)
                Spead[id] = true
                adminmenu
(id)
            }    

        
}
        case 3:
        {
            if(Invis[id] == 0)
            {
                return PLUGIN_CONTINUE
            
}
            else
            
{
                    Invis[id] = Invis[id] -1
                    set_user_rendering
(id,kRenderFxGlowShell,0,0,0,kRenderTransAlpha,0)
                    timeInvisEnd[id] = get_gametime() + get_pcvar_float(cvar_time_invis);
                    set_task(get_pcvar_float(cvar_time_invis)+0.5,"invisEnd",id);
                    adminmenu(id)
            }    

        
}
        case 4:
        {
            if(Money[id] == 0)
            {
                return PLUGIN_CONTINUE
            
}
            else
            
{                                       
                if
(timeMoney[id] <= get_gametime()) 
                
{
                    Money[id] = Money[id] -1
                    cs_set_user_money
(id, cs_get_user_money(id) + 5000)
                    adminmenu(id)
                }
                else 
                
{
                    
                    new minutes 
= floatround((timeMoney[id] - get_gametime()),floatround_round)/60;
                    new seconds = floatround((timeMoney[id] - get_gametime()),floatround_round)%60;
                    
                    ColorChat
(id,GREEN,"[ADMIN Меню] ^1До взятия денег подождите ^4%d:%d",minutes,seconds) 
                    adminmenu
(id)
                }
            }    
        
}
        case 5:
        {
            if(HP[id] == 0)
            {
                return PLUGIN_CONTINUE
            
}
            else
            
{
                HP[id] = HP[id] -1
                set_user_health
(id, 500)
                set_user_armor(id, 500)
                adminmenu(id)
            }    
        
}
        case 6:
        {
            if(Grenade[id] == 0)
            {
                return PLUGIN_CONTINUE
            
}
            else
            
{
                Grenade[id] = Grenade[id] -1
                give_item
( id, "weapon_hegrenade")
                give_item( id, "weapon_smokegrenade")
                adminmenu(id)
             }     
        
}
        case 7:
        {
            client_cmd(id, "amxmodmenu")
        }      
    
}
    return PLUGIN_HANDLED
} 

public invisEnd
(id) 
{
    if(timeInvisEnd[id] < get_gametime()) 
    
{
        timeInvisEnd[id] = 0.0;
        set_rendering(id,kRenderFxNone,255,255,255,kRenderNormal,16)
        ColorChat(id,GREEN,"[ADMIN Меню] ^1Действие невидимости закончилось, вас снова видят.") 
    
}
}

public Event_CurWeapon(id)
{
     if(Spead[id])
     {
          set_user_maxspeed(id, 420.0)
     }
     
     if
(g_bUnlimitedAmmo[id])
     {
        new iWeapon = read_data(2)
        if( !( NOCLIP_WPN_BS & (1<<iWeapon) ) )
        {
            fm_cs_set_weapon_ammo( get_pdata_cbase(id, m_pActiveItem) , g_iMaxClip[ iWeapon ] )
        }
     }
}
Последний раз редактировалось Jeka_Pro 03 дек 2016, 19:40, всего редактировалось 2 раз(а).
Аватара пользователя
Jeka_Pro
 
Сообщения: 43
Зарегистрирован: 20 мар 2016, 00:07
Откуда: Одесса
Благодарил (а): 3 раз.
Поблагодарили: 0 раз.
Языки программирования: Counter-Strike 1.6

Re: AdminMenu : сбрасывается скорость после смены оружия

Сообщение liFe iS GoOD » 03 дек 2016, 18:33

Ваша тема закрыта по причине "неинформативного названия" . Для открытия темы вновь Вам нужно придумать более информативное название и написать мне его в ЛС .

Вставляйте исходный код в соответствующий для этого тег [code=php]. Если же исходник имеет громадные размеры , то можете воспользоваться функцией "Добавить вложения".
Аватара пользователя
liFe iS GoOD
Модератор
 
Сообщения: 1416
Зарегистрирован: 24 май 2012, 19:48
Благодарил (а): 116 раз.
Поблагодарили: 472 раз.

Re: AdminMenu : сбрасывается скорость после смены оружия

Сообщение Jeka_Pro » 04 дек 2016, 13:40

есть знающие люди которые помогут?
Аватара пользователя
Jeka_Pro
 
Сообщения: 43
Зарегистрирован: 20 мар 2016, 00:07
Откуда: Одесса
Благодарил (а): 3 раз.
Поблагодарили: 0 раз.
Языки программирования: Counter-Strike 1.6

Re: AdminMenu : сбрасывается скорость после смены оружия

Сообщение 3BEPb » 04 дек 2016, 19:47

Jeka_Pro писал(а):есть знающие люди которые помогут?


Это же просто, нужно использовать "CurWeapon"
Аватара пользователя
3BEPb
 
Сообщения: 141
Зарегистрирован: 16 авг 2014, 22:02
Откуда: Пряжа
Благодарил (а): 22 раз.
Поблагодарили: 17 раз.
Опыт программирования: Больше трех лет
Языки программирования: Pawn

Re: AdminMenu : сбрасывается скорость после смены оружия

Сообщение Jeka_Pro » 04 дек 2016, 23:26

я не знаю как это сделать, поэтому написал сюда.
прикрепи код как нужно написать
Аватара пользователя
Jeka_Pro
 
Сообщения: 43
Зарегистрирован: 20 мар 2016, 00:07
Откуда: Одесса
Благодарил (а): 3 раз.
Поблагодарили: 0 раз.
Языки программирования: Counter-Strike 1.6

Re: AdminMenu : сбрасывается скорость после смены оружия

Сообщение Croshaw » 05 дек 2016, 14:56

Регистрируешь событие
Код: Выделить всё
register_event("CurWeapon", "CurWeapon", "be", "1=1")

Далле создаёшь паблик CurWeapon
Код: Выделить всё
public CurWeapon(id)
{
    // делаешь проверку на скорость
    if(Speed[id])
    // если есть скорость, то выдаёшь нужную
        set_user_maxspeed(id, 420.0)
    
}

Как то так

Добавлено спустя 12 минут 34 секунды:
Или в вашем случае
Код: Выделить всё
public Event_CurWeapon(id)
{
     if(Spead[id])
     {
          set_pev(id, pev_maxspeed, 420)
     }
     
     if
(g_bUnlimitedAmmo[id])
     {
        new iWeapon = read_data(2)
        if( !( NOCLIP_WPN_BS & (1<<iWeapon) ) )
        {
            fm_cs_set_weapon_ammo( get_pdata_cbase(id, m_pActiveItem) , g_iMaxClip[ iWeapon ] )
        }
     }


Добавлено спустя 1 минуту 2 секунды:
и поменяйте
Код: Выделить всё
        case 2:
        {
            if(SpeedA[id] == 0)
            {
                return PLUGIN_CONTINUE
            
}
            else
            
{
                SpeedA[id] = SpeedA[id] -1
                set_user_maxspeed
(id, 420.0)
                Spead[id] = true
                adminmenu
(id)
            }    

        
}

на
Код: Выделить всё
case 2:
        {
            if(SpeedA[id] == 0)
            {
                return PLUGIN_CONTINUE
            
}
            else
            
{
                SpeedA[id] = SpeedA[id] -1
                set_pev
(id, pev_maxspeed, 420)
                Spead[id] = true
                adminmenu
(id)
            }    

        
}


Добавлено спустя 4 минуты 10 секунд:
Код: Выделить всё
/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <fakemeta>


#define PLUGIN "New Plug-In"
#define VERSION "1.0"
#define AUTHOR "SaFiXx"

new Speed[32]

public 
plugin_init() {
    
register_plugin(PLUGINVERSIONAUTHOR)
    
    
register_clcmd("say /speed""speed")
    
    
register_event("CurWeapon""CurWeapon""be""1=1")
}

public 
speed(id)
{
    
set_pev(idpev_maxspeed420)
    
Speed[id] = true
}

public 
CurWeapon(id)
{
    
// делаешь проверку на скорость
    
if(Speed[id])
    
// если есть скорость, то выдаёшь нужную
        
set_pev(idpev_maxspeed420)
    

пример плагина
Аватара пользователя
Croshaw
 
Сообщения: 19
Зарегистрирован: 07 авг 2016, 15:35
Благодарил (а): 7 раз.
Поблагодарили: 1 раз.
Опыт программирования: Около 3 месяцев
Языки программирования: Counter-Strike 1.6

Re: AdminMenu : сбрасывается скорость после смены оружия

Сообщение Subb98 » 05 дек 2016, 15:04

Прекратите советовать CurWeapon, пожалуйста. И привыкайте уже использовать поиск по форуму.

Код: Выделить всё
#include <amxmodx>
#include <fakemeta>
#include <hamsandwich>
 
#define OFFSET_WEAPONSPEED      58
 
public plugin_init() RegisterHam(Ham_Item_Deploy"weapon_knife""KnifeDeployPost"1);
 
public 
KnifeDeployPost(iEntityset_pdata_float(iEntityOFFSET_WEAPONSPEED400.04); 

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

Re: AdminMenu : сбрасывается скорость после смены оружия

Сообщение unrealfart » 05 дек 2016, 15:23

Subb98, а как быть с выстрелом? То есть, если у меня в руках оружие и мне устанавливается скорость, то при выстреле скорость сбрасывается и так же с гравитацией
Аватара пользователя
unrealfart
 
Сообщения: 264
Зарегистрирован: 23 фев 2016, 19:45
Благодарил (а): 53 раз.
Поблагодарили: 18 раз.
Опыт программирования: Больше трех лет
Языки программирования: Pawn

Re: AdminMenu : сбрасывается скорость после смены оружия

Сообщение Subb98 » 05 дек 2016, 15:51

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

Re: AdminMenu : сбрасывается скорость после смены оружия

Сообщение NEoMASTERR » 05 дек 2016, 17:41

Subb98 писал(а):Прекратите советовать CurWeapon, пожалуйста.
RegisterHam(Ham_Item_Deploy, "weapon_knife", "KnifeDeployPost", 1);


А если у меня не только на ноже что либо меняется мне на каждый вепон регистрировать свой хам?
У меня прост есть плагин с CurWeapon, немного в шоке что его не надо использовать, чем он хуже?
Последний раз редактировалось NEoMASTERR 05 дек 2016, 17:49, всего редактировалось 1 раз.
Аватара пользователя
NEoMASTERR
 
Сообщения: 832
Зарегистрирован: 05 янв 2015, 16:38
Благодарил (а): 43 раз.
Поблагодарили: 188 раз.
Опыт программирования: Около года
Языки программирования: Counter-Strike 1.6

След.

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

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

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

cron