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

Adminmenu: Invalid entity  [Решено]

Все вопросы по работе и настройке AMXX и его плагинов.

Модератор: liFe iS GoOD

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

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

Adminmenu: Invalid entity

Сообщение MARSHO » 08 дек 2016, 10:29

Всем привет.
Поставил себе на Deathrun сервер плагин Adminka.amxx. Он как бы работает, но сервер часто падает по его вине. А понять почему и решить это - не хватает знаний.
Потому остается только к Вам обращаться за помощью.
Вот лог ошибок:

Код: Выделить всё
L 12/07/2016 - 17:25:48: Start of error session.
L 12/07/2016 - 17:25:48: Info (map "deathrun_4life_rmk") (file "addons/amxmodx/logs/error_20161207.log")
L 12/07/2016 - 17:25:48: [FAKEMETA] Invalid entity
L 12/07/2016 - 17:25:48: [AMXX] Displaying debug trace (plugin "Adminka.amxx")
L 12/07/2016 - 17:25:48: [AMXX] Run time error 10: native error (native "set_pdata_int")
L 12/07/2016 - 17:25:48: [AMXX]    [0] Adminka.sma::StartAdminWeapon (line 605)
L 12/07/2016 - 17:48:14: [FAKEMETA] Invalid entity
L 12/07/2016 - 17:48:14: [AMXX] Displaying debug trace (plugin "Adminka.amxx")
L 12/07/2016 - 17:48:14: [AMXX] Run time error 10: native error (native "set_pdata_int")
L 12/07/2016 - 17:48:14: [AMXX]    [0] Adminka.sma::StartAdminWeapon (line 605)
L 12/07/2016 - 17:52:46: Start of error session.
L 12/07/2016 - 17:52:46: Info (map "deathrun_letsgo2_click21") (file "addons/amxmodx/logs/error_20161207.log")
L 12/07/2016 - 17:52:46: [FAKEMETA] Invalid entity
L 12/07/2016 - 17:52:46: [AMXX] Displaying debug trace (plugin "Adminka.amxx")
L 12/07/2016 - 17:52:46: [AMXX] Run time error 10: native error (native "set_pdata_int")
L 12/07/2016 - 17:52:46: [AMXX]    [0] Adminka.sma::StartAdminWeapon (line 605)
L 12/07/2016 - 18:52:57: [FAKEMETA] Invalid entity
L 12/07/2016 - 18:52:57: [AMXX] Displaying debug trace (plugin "Adminka.amxx")
L 12/07/2016 - 18:52:57: [AMXX] Run time error 10: native error (native "set_pdata_int")
L 12/07/2016 - 18:52:57: [AMXX]    [0] Adminka.sma::StartAdminWeapon (line 605)
L 12/07/2016 - 20:00:36: Start of error session.
L 12/07/2016 - 20:00:36: Info (map "de_dust2") (file "addons/amxmodx/logs/error_20161207.log")
L 12/07/2016 - 20:00:36: [FAKEMETA] Invalid entity
L 12/07/2016 - 20:00:36: [AMXX] Displaying debug trace (plugin "Adminka.amxx")
L 12/07/2016 - 20:00:36: [AMXX] Run time error 10: native error (native "set_pdata_int")
L 12/07/2016 - 20:00:36: [AMXX]    [0] Adminka.sma::StartAdminWeapon (line 605)

Может кто-нибудь исправить эту проблему? Желательно с поправкой самого меню, чтобы бессмертие (8 пункт в меню) давалось на какое-то время, секунд 25, например, а не бесконечно.

Или вообще, если вы знаете подобный плагин но с более легким кодом и лучшим функционалом, то поделитесь, пожалуйста. А то я сколько не искал в инете, ничего толкового не нашел.

Вот и сам исходник:

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

#define PLUGIN  "AdminMenu"
#define VERSION "1.0"
#define AUTHOR  "bublik"

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 Grava
[33]
new Speed[33]
new Godmode[33]
new gSpawn[33]
new gMoney[33]
new BhopMax[33]
new JampMax[33]
new BhopMaximum[33]

new Twojump[33]
new gSpeedWeapon[33]
new jumpnum[33]
new bool:dojump[33] = false

new name
[33]

public plugin_init()
{
    register_plugin(PLUGIN, VERSION, AUTHOR)
    register_menu("Menu 1", keys, "func_menu")
    register_menu("Menu_2", keys, "func_menu2") 
    register_cmd
("adminmenu", "AdminMenu")
    register_cmd("amxmodmenu", "amxmodmenu")
    RegisterHam(Ham_Spawn, "player", "PlayerAdminSpawn",1)
    register_event("HLTV", "round_start", "a", "1=0", "2=0")
    RegisterHam(Ham_Spawn, "player", "SpawnPlayer",1)
    register_event("CurWeapon", "WeaponChange", "be", "1=1")
    register_forward(FM_PlayerPostThink, "PostThink")
    register_forward(FM_PlayerPreThink, "PreThink")
}
public plugin_precache()
{
    precache_sound("adminmenu/dr_respawn.wav" )
    precache_sound("adminmenu/dr_money.wav" )
    precache_model("models/player/vip/vip.mdl");
}
public SpawnPlayer(id)
{
    BhopMaximum[id] = false
    BhopMax
[id] = false
    Speed
[id] = false
    Grava
[id] = false
    Twojump
[id] = false
    JampMax
[id] = false
    gSpeedWeapon
[id] = false
    Godmode
[id] = false
    set_task
(1.0, "player_model", id)
    
    
}
public round_start()
{
    
    for
(new id = 1;id <= get_maxplayers(); id++)
    {
        gSpawn[id] = 5
        gMoney
[id] = 1
    
}
}

public AdminMenu(id)
{
    static menu[650], iLen
    iLen 
= 0
    if
(get_user_flags(id) & ADMIN_LEVEL_H)
          {
    iLen = formatex(menu[iLen], charsmax(menu) - iLen, "\yАдминМеню \d v1.0^nВы: \yАдмин \r| \dПользуйся на здоровье \y:D^n^n");
     }
     else
     
{
     iLen = formatex(menu[iLen], charsmax(menu) - iLen, "\yАдминМеню \d v1.0^nВы: \yИгрок \r| \dЦена Админки: \y200р^n^n");    
     
}
    if(get_user_flags(id) & ADMIN_LEVEL_A)
    {
        if(is_user_alive(id) || gSpawn[id] == 0 || GetAliveCt() < 2)
        {
            iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\d1. Воскреснуть: \w[\r%d\w]^n", gSpawn[id])
            keys &= ~MENU_KEY_1
        
}
        else
        
{
            iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r1. \wВоскреснуть: \w[\r%d\w]^n", gSpawn[id])
            keys |= MENU_KEY_1
        
}
             
    
    
}
    else
    
{
        iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\d1. Воскреснуть: \w[\r0\w]^n", gSpawn[id])
        keys &= ~MENU_KEY_1
    
}
    if(get_user_flags(id) & ADMIN_LEVEL_A)
    {
        if(BhopMax[id])
        {
            iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r2. \wУскоритель: \yВкл^n")
            keys |= MENU_KEY_2
        
}
        else
        
{
            iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r2. \wУскоритель: \rвыкл^n")
            keys |= MENU_KEY_2
        
}
    }
    else
    
{
        iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\d2. Ускоритель: \rвыкл^n")
        keys &= ~MENU_KEY_2    
    
}
    if(get_user_flags(id) & ADMIN_LEVEL_A)
    {    
        if
(JampMax[id])
        {
            iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r3. \wДвойной Прыжок: \yВкл^n")
            keys |= MENU_KEY_3
        
}
        else
        
{
            iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r3. \wДвойной Прыжок: \rвыкл^n")
            keys |= MENU_KEY_3
        
}
    }
    else
    
{
        iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\d3. Двойной Прыжок: \rвыкл^n")
        keys &= ~MENU_KEY_3
    
}
    if(get_user_flags(id) & ADMIN_LEVEL_A)
    {
        if(gMoney[id] == 0)
        {
            iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\d4. Деньги: \y50000 \w[\r%d\w]^n^n", gMoney[id])
            keys &= ~MENU_KEY_4
        
}
        else
        
{
            iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r4. \wДеньги: \y50000\w \w[\r%d\w]^n^n", gMoney[id])
            keys |= MENU_KEY_4
        
}
    }
    else
    
{
        iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\d4. Деньги: 50000 \w[\r0\w]^n^n", gMoney[id])
        keys &= ~MENU_KEY_4
    
}
    
    
    if
(get_user_flags(id) & ADMIN_LEVEL_A)
    {
        if(cs_get_user_team(id) & CS_TEAM_CT)
        {
            iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r5. \wКоманда игрока: \r[\yКонтер террорист\r]^n")
            keys |= MENU_KEY_5
        
}
        else
        
{
            iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r5. \wКоманда игрока: \r[\yТеррорист\r]^n")
            keys |= MENU_KEY_5
        
}
    }
    else
    
{
        if( cs_get_user_team( id ) & CS_TEAM_CT )
        {
            iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\d5. Команда игрока: \r[\yКонтер террорист\r]^n")
            keys &= ~MENU_KEY_5    
        
}
        else
        
{
            iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\d5. Команда игрока: \r[\yТеррорист\r]^n")
            keys &= ~MENU_KEY_5        
        
}
    }
    
    if
(get_user_flags(id) & ADMIN_LEVEL_A)
    {
        if(Grava[id])
        {
            iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r6. \wГравитация: \yВкл^n")
            keys |= MENU_KEY_6
        
}
        else
        
{
            iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r6. \wГравитация: \rвыкл^n")
            keys |= MENU_KEY_6
        
}
    }
    else
    
{
        iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\d6. Гравитация: \rвыкл^n")
        keys &= ~MENU_KEY_6    
    
}
    if(get_user_flags(id) & ADMIN_LEVEL_A)
    {
        if(Speed[id])
        {
            iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r7. \wСкорость: \yВкл^n")
            keys |= MENU_KEY_7
        
}
        else
        
{
            iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r7. \wСкорость: \rвыкл^n")
            keys |= MENU_KEY_7
        
}
    }
    else
    
{
        iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\d7. Скорость: \rвыкл^n")
        keys &= ~MENU_KEY_7    
    
}
    if(get_user_flags(id) & ADMIN_LEVEL_A)
    {
        if(Godmode[id])
        {
            iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r8. \wБессмертие: \yВкл^n")
            keys |= MENU_KEY_8
        
}
        else
        
{
            iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r8. \wБессмертие: \rвыкл^n")
            keys |= MENU_KEY_8
        
}
    }
    else
    
{
        iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\d8. Бессмертие: \rвыкл^n")
        keys &= ~MENU_KEY_8
    
}
    if(get_user_flags(id) & ADMIN_LEVEL_A)
    {
        iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r9. \wAmx Mod Menu^n")
        keys |= MENU_KEY_9
    
}
    else
    
{
        iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\d9. Amx Mod Menu^n")
        keys &= ~MENU_KEY_9    
    
}
    iLen += formatex(menu[iLen], charsmax(menu) - iLen, "^n\r0. \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(gSpawn[id] == 0)
            {
                return PLUGIN_CONTINUE
            
}
            else
            
{
                ExecuteHam(Ham_CS_RoundRespawn, id)
                gSpawn[id] = gSpawn[id] -1
                AdminMenu
(id)
                get_user_name(id, name, 31)
                ColorChat(0, GREEN, "[AdminMenu]^x01 Администратор^x03 %s^x04 Воскреснул", name)
                emit_sound(id, CHAN_VOICE, "adminmenu/dr_respawn.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)
            }
                 }
        
        case 1
:
        {
            
            if
(!BhopMax[id])
            {
                BhopMaximum[id] = true
                BhopMax
[id] = true
            
}
            else
            
{
                BhopMaximum[id] = false
                BhopMax
[id] = false
            
}
            AdminMenu(id)
        }
        
        case 2
:
        {
            
            if
(!JampMax[id])
            {
                Twojump[id] = true
                JampMax
[id] = true
            
}
            else
            
{
                Twojump[id] = false
                JampMax
[id] = false
            
}
            AdminMenu(id)
        }
        case 3:
        {
            if(gMoney[id] == 0)
            {
                return PLUGIN_CONTINUE
            
}
            else
            
{
                cs_set_user_money(id, cs_get_user_money(id) + 50000)
                gMoney[id] = gMoney[id] -1
                AdminMenu
(id)
                get_user_name(id, name, 31)
                ColorChat(0, GREEN, "[AdminMenu]^x01 Администратор^x03 %s ^x01взял^x04 50000$", name)
                emit_sound(id, CHAN_VOICE, "adminmenu/dr_money.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)
            }
        }
        
        case 4
:
        {
            
            if
( cs_get_user_team( id ) & CS_TEAM_T )
            {
                get_user_name(id, name, 31)
                ColorChat(id, GREEN, "[AdminMenu]^x03 %s^x04 Ты Контр Террорист", name)
                cs_set_user_team(id, 2)
            }
            else
            
{
                if( cs_get_user_team( id ) & CS_TEAM_CT )
                {
                    ColorChat(id, GREEN, "[AdminMenu]^x03 %s^x04 Ты Террорист", name)
                    cs_set_user_team(id, 1)
                }
            }
            AdminMenu(id)
        }
        
        case 5
:
        {
            
            if
(!Grava[id])
            {
                set_user_gravity(id, 0.5)
                Grava[id] = true
            
}
            else
            
{
                set_user_gravity(id, 0.0)
                Grava[id] = false
            
}
            AdminMenu(id)
        }
        case 6:
        {
            
            if
(!Speed[id])
            {
                set_user_maxspeed(id,400.0)
                Speed[id] = true
                gSpeedWeapon
[id] = true
            
}
            else
            
{
                set_user_maxspeed(id,250.0)
                Speed[id] = false
                gSpeedWeapon
[id] = false
            
}
            AdminMenu(id)
        }
        case 7:
        {
            
            if
(!Godmode[id])
            {
                set_user_godmode(id,1)
                Godmode[id] = true
            
}
            else
            
{
                set_user_godmode(id,0)
                Godmode[id] = false
            
}
            AdminMenu(id)
        }
        case 8:
        {
            amxmodmenu(id)
        }
    }
    return PLUGIN_HANDLED
}

public client_PreThink(id)
{
    if(!BhopMaximum[id])
        return PLUGIN_CONTINUE
    
    entity_set_float
(id, EV_FL_fuser2, 0.0)
    
    if
(entity_get_int(id, EV_INT_button) & 2) 
    
{
        new flags = entity_get_int(id, EV_INT_flags)
        if(flags & FL_WATERJUMP)
            return PLUGIN_CONTINUE
        if
(entity_get_int(id, EV_INT_waterlevel) >= 2)
            return PLUGIN_CONTINUE
        if
(!(flags & FL_ONGROUND))
            return PLUGIN_CONTINUE
        
        new Float
:vecVelocity[3]
        
        entity_get_vector
(id, EV_VEC_velocity, vecVelocity)
        
        vecVelocity
[0] *= 1.15;
        vecVelocity[1] *= 1.15;
        
        entity_set_vector
(id, EV_VEC_velocity, vecVelocity);
        entity_set_int(id, EV_INT_gaitsequence, 6)    // Play the Jump Animation
    }
    return PLUGIN_CONTINUE
}

public PreThink(id)
{
    if(Twojump[id])  
    
{
        if(!is_user_alive(id)) return PLUGIN_CONTINUE
        new nbut 
= pev(id, pev_button)
        new obut = pev(id, pev_oldbuttons)
        if((nbut & IN_JUMP) && !(pev(id, pev_flags) & FL_ONGROUND) && !(obut & IN_JUMP))
        {
            if(jumpnum[id] < 1)
            {
                dojump[id] = true
                jumpnum
[id]++
                return PLUGIN_CONTINUE
            
}
        }
        if((nbut & IN_JUMP) && (pev(id, pev_flags) & FL_ONGROUND))
        {
            jumpnum[id] = 0
            return PLUGIN_CONTINUE
        
}
    }
    return PLUGIN_CONTINUE
}

public PostThink(id)
{
    if(Twojump[ id ])  
    
{
        if(!is_user_alive(id)) return PLUGIN_CONTINUE
        if
(dojump[id] == true)
        {
            new Float:velocity[3]  
            pev
(id, pev_velocity, velocity)
            velocity[2] = random_float(295.0,305.0)
            set_pev(id, pev_velocity, velocity)
            dojump[id] = false
            return PLUGIN_CONTINUE
        
}
    }      
    return PLUGIN_CONTINUE
}

public WeaponChange(id)
{
    if(gSpeedWeapon[id])
    {
        set_user_maxspeed(id, 400.0)
    }
}
public amxmodmenu(id)
{
    static menu[650], iLen
    iLen 
= 0
    iLen 
= formatex(menu[iLen], charsmax(menu) - iLen, "\yАдминКа^n^n");    
    if
(get_user_flags(id) & ADMIN_LEVEL_A)
    {
        iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r1. \wКикнуть^n")
        keys |= MENU_KEY_1
    
}
    else
    
{
        iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r1. \wКикнуть^n")
        keys &= ~MENU_KEY_1    
    
}
    if(get_user_flags(id) & ADMIN_LEVEL_A)
    {
        iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r2. \wЗабанить^n")
        keys |= MENU_KEY_2
    
}
    else
    
{
        iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r2. \wЗабанить^n")
        keys &= ~MENU_KEY_2    
    
}
    if(get_user_flags(id) & ADMIN_LEVEL_A)
    {
        iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r3. \wСтукнуть\r/\wУбить^n")
        keys |= MENU_KEY_3
    
}
    else
    
{
        iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r3. \wСтукнуть/r//wУбить^n")
        keys &= ~MENU_KEY_3    
    
}
    if(get_user_flags(id) & ADMIN_LEVEL_A)
    {
        iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r4. \wКоманда игрока^n")
        keys |= MENU_KEY_4
    
}
    else
    
{
        iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r4. \wКоманда игрока^n")
        keys &= ~MENU_KEY_4    
    
}
    if(get_user_flags(id) & ADMIN_LEVEL_A)
    {
        iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r5. \wСменить карту^n")
        keys |= MENU_KEY_5
    
}
    else
    
{
        iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r5. \wСменить карту^n")
        keys &= ~MENU_KEY_5    
    
}
    if(get_user_flags(id) & ADMIN_LEVEL_A)
    {
        iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r6. \wГолосование за смену карты^n")
        keys |= MENU_KEY_6
    
}
    else
    
{
        iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r6. \wГолосование за смену карты^n")
        keys &= ~MENU_KEY_6    
    
}
    if(get_user_flags(id) & ADMIN_LEVEL_A)
    {
        iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r7. \wСделать рестарт^n")
        keys |= MENU_KEY_7
    
}
    else
    
{
        iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r7. \wСделать рестарт^n")
        keys &= ~MENU_KEY_7    
    
}
    iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r8. \wАдмин меню^n")
    keys |= MENU_KEY_8
    iLen 
+= formatex(menu[iLen], charsmax(menu) - iLen, "^n\r0. \wЗакрыть^n")
    keys |= MENU_KEY_9
    
    show_menu
(id, keys, menu, -1, "Menu_2");
    return PLUGIN_HANDLED
}
public func_menu2(id, key)
{
    switch(key)
    {
        case 0: client_cmd(id, "amx_kickmenu")
            case 1: client_cmd(id, "amx_banmenu")
            case 2: client_cmd(id, "amx_slapmenu")
            case 3: client_cmd(id, "amx_teammenu")
            case 4: client_cmd(id, "amx_mapmenu")
            case 5: client_cmd(id, "amx_votemapmenu")
            case 6:
        {
            server_cmd("sv_restartround 1")
            new name[32]
            get_user_name(id, name, 31)
            ColorChat(0, GREEN, "[AdminMenu] ^x01Администратор^x03 %s^x01 сделал рестарт", name)    
        
}
        case 7: server_cmd("adminmenu")
            
    
}
}
//=================================[В начале раунда даётся Гранаты и писталет elita]========================================
public PlayerAdminSpawn(id)
{
        if(get_user_flags(id) & ADMIN_BAN)
                    {
                    set_task(1.0, "StartAdminWeapon", id)
                    }
    }
public StartAdminWeapon(id)
{
if(
cs_get_user_team(id) & CS_TEAM_CT)
{
    
give_item
(id, "weapon_flashbang");
give_item(id, "weapon_flashbang");
give_item(id, "weapon_hegrenade");
give_item(id, "weapon_smokegrenade");
give_item(id, "weapon_elite");
set_pdata_int(get_pdata_cbase(id, 373), 51, 100, 4);
}
}

stock GetAliveCt()
{
   new CountCt, i
   for
(= 1; i <= get_maxplayers(); i++)
          if(is_user_alive(i) && is_user_connected(i) && get_user_team(i) == 2)
              CountCt++
 
   return CountCt
}

public player_model(id)
{
    if(get_user_flags(id) & ADMIN_LEVEL_A)
         {
            if(is_user_alive(id))
                  {
                    cs_set_user_model(id,"vip");
                  }
    }

Название темы скорректировано // Subb98
Аватара пользователя
MARSHO
 
Сообщения: 59
Зарегистрирован: 09 фев 2016, 15:39
Благодарил (а): 12 раз.
Поблагодарили: 1 раз.

Re: Adminmenu: Invalid entity

Сообщение Subb98 » 08 дек 2016, 10:58

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

Re: Adminmenu: Invalid entity

Сообщение MARSHO » 08 дек 2016, 11:24

Примного благодарен тебе, что отреагировал на тему и кинул ссылку на статью с решением.
Но зуб тебе даю, что та тема мне ни о чем не говорит :D Т.е я не знаю, как это исправить, хоть и перечитал раз 5. Еслиб в примере была указана именно моя ошибка и показана ГДЕ, то, может, мне и повезло бы догадаться что далать.

А так, предел моих возможностей и знаний в исходниках - это менять квары, да и то, если на них автор в описании указал))
Аватара пользователя
MARSHO
 
Сообщения: 59
Зарегистрирован: 09 фев 2016, 15:39
Благодарил (а): 12 раз.
Поблагодарили: 1 раз.

Re: Adminmenu: Invalid entity

Сообщение Subb98 » 08 дек 2016, 11:35

MARSHO, ОК, давай разберём ошибку.

Код: Выделить всё
L 12/07/2016 - 17:25:48: [FAKEMETA] Invalid entity
L 12/07/2016 - 17:25:48: [AMXX] Displaying debug trace (plugin "Adminka.amxx")
L 12/07/2016 - 17:25:48: [AMXX] Run time error 10: native error (native "set_pdata_int")
L 12/07/2016 - 17:25:48: [AMXX]    [0] Adminka.sma::StartAdminWeapon (line 605)

Во-первых, у нас есть текст самой ошибки и модуль, который эту ошибку даёт:

Код: Выделить всё
[FAKEMETA] Invalid entity

Эта строка говорит нам, что модуль Fakemeta сообщает об ошибке "Invalid entity", то есть, "недействительный объект". Идём дальше.

Код: Выделить всё
Displaying debug trace (plugin "Adminka.amxx")

В этой строке мы видим, в каком плагине происходит ошибка ("Adminka.amxx").

Код: Выделить всё
Run time error 10: native error (native "set_pdata_int")

В этой строке мы видим, в каком нативе происходит ошибка ("set_pdata_int").

Код: Выделить всё
Adminka.sma::StartAdminWeapon (line 605)

Ну а в крайней строке самая полезная информация: номер строки исходного кода, где происходит ошибка (605).

Итак, теперь поставим задачу. Нужно предотвратить ошибку путём проверки объекта на валидность. Как это сделать исходя из того, что нам уже известно?

Добавлено спустя 3 минуты 37 секунд:
Я дам небольшую подсказку:

Subb98 писал(а):Если же это объект, то проверка на его валидность:

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

Re: Adminmenu: Invalid entity

Сообщение MARSHO » 08 дек 2016, 11:38

pev_valid(pEnt) надо туда добавить для проверки на валидность. Я пробовал это делать после прочтения темы, но, неправильно все сделал((
Аватара пользователя
MARSHO
 
Сообщения: 59
Зарегистрирован: 09 фев 2016, 15:39
Благодарил (а): 12 раз.
Поблагодарили: 1 раз.

Re: Adminmenu: Invalid entity

Сообщение Subb98 » 08 дек 2016, 11:42

MARSHO, в вашем случае, натив get_pdata_cbase возвращает index объекта. Поэтому перед проверкой нужно вынести index в отдельную переменную:

Код: Выделить всё
new ent = get_pdata_cbase(id, 373);
if(!
pev_valid(ent)) {
    return;
}
set_pdata_int(ent, 51, 100, 4); 


Добавлено спустя 1 минуту 44 секунды:
Код: Выделить всё
new ent = get_pdata_cbase(id, 373);
if(
pev_valid(ent)) {
    set_pdata_int(ent, 51, 100, 4);

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

Re: Adminmenu: Invalid entity

Сообщение MARSHO » 08 дек 2016, 11:53

Я вставил в строку 605 как вы и написали

Код: Выделить всё
give_item(id"weapon_flashbang");
give_item(id"weapon_flashbang");
give_item(id"weapon_hegrenade");
give_item(id"weapon_smokegrenade");
give_item(id"weapon_elite");
new 
ent get_pdata_cbase(id373);
if(!
pev_valid(ent)) {
    return;
}
set_pdata_int(ent511004); 
}

Но у меня так не компилирует.
Я опять не то сделал?
Как-то стыдно и неловко уже:(...
Аватара пользователя
MARSHO
 
Сообщения: 59
Зарегистрирован: 09 фев 2016, 15:39
Благодарил (а): 12 раз.
Поблагодарили: 1 раз.

Re: Adminmenu: Invalid entity

Сообщение Subb98 » 08 дек 2016, 12:03

MARSHO, не с этой ли ошибкой у вас происходит прерывание компиляции?

Код: Выделить всё
temp.sma(8) : fatal error 100: cannot read from file: "ColorChat"
«Очень хорошо. Лучше вы, чем я» © Donald J. Trump
Аватара пользователя
Subb98
Модератор
 
Сообщения: 5485
Зарегистрирован: 24 мар 2011, 19:42
Откуда: г. Пермь
Благодарил (а): 1329 раз.
Поблагодарили: 2343 раз.
Опыт программирования: Больше трех лет
Языки программирования: PHP

Re: Adminmenu: Invalid entity

Сообщение MARSHO » 08 дек 2016, 12:09

Нет.
Вот эта
Код: Выделить всё
Error 17: undefined symbol "register cmd"


Добавлено спустя 1 минуту 9 секунд:
Он компилируется, просто выдает ошибки
2 Errors
Аватара пользователя
MARSHO
 
Сообщения: 59
Зарегистрирован: 09 фев 2016, 15:39
Благодарил (а): 12 раз.
Поблагодарили: 1 раз.

Re: Adminmenu: Invalid entity  [Решено]

Сообщение Subb98 » 08 дек 2016, 12:11

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

#define PLUGIN  "AdminMenu"
#define VERSION "1.0"
#define AUTHOR  "bublik"

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 Grava[33]
new 
Speed[33]
new 
Godmode[33]
new 
gSpawn[33]
new 
gMoney[33]
new 
BhopMax[33]
new 
JampMax[33]
new 
BhopMaximum[33]

new 
Twojump[33]
new 
gSpeedWeapon[33]
new 
jumpnum[33]
new 
bool:dojump[33] = false

new name[33]

public 
plugin_init()
{
    
register_plugin(PLUGINVERSIONAUTHOR)
    
register_menu("Menu 1"keys"func_menu")
    
register_menu("Menu_2"keys"func_menu2")
    
register_clcmd("adminmenu""AdminMenu")
    
register_clcmd("amxmodmenu""amxmodmenu")
    
RegisterHam(Ham_Spawn"player""PlayerAdminSpawn",1)
    
register_event("HLTV""round_start""a""1=0""2=0")
    
RegisterHam(Ham_Spawn"player""SpawnPlayer",1)
    
register_event("CurWeapon""WeaponChange""be""1=1")
    
register_forward(FM_PlayerPostThink"PostThink")
    
register_forward(FM_PlayerPreThink"PreThink")
}
public 
plugin_precache()
{
    
precache_sound("adminmenu/dr_respawn.wav" )
    
precache_sound("adminmenu/dr_money.wav" )
    
precache_model("models/player/vip/vip.mdl");
}
public 
SpawnPlayer(id)
{
    
BhopMaximum[id] = false
    BhopMax
[id] = false
    Speed
[id] = false
    Grava
[id] = false
    Twojump
[id] = false
    JampMax
[id] = false
    gSpeedWeapon
[id] = false
    Godmode
[id] = false
    set_task
(1.0"player_model"id)


}
public 
round_start()
{
    for(new 
id 1;id <= get_maxplayers(); id++)
    {
        
gSpawn[id] = 5
        gMoney
[id] = 1
    
}
}

public 
AdminMenu(id)
{
    static 
menu[650], iLen
    iLen 
0
    
if(get_user_flags(id) & ADMIN_LEVEL_H)
          {
    
iLen formatex(menu[iLen], charsmax(menu) - iLen"\yАдминМеню \d v1.0^nВы: \yАдмин \r| \dПользуйся на здоровье \y:D^n^n");
     }
     else
     {
     
iLen formatex(menu[iLen], charsmax(menu) - iLen"\yАдминМеню \d v1.0^nВы: \yИгрок \r| \dЦена Админки: \y200р^n^n");
     }
    if(
get_user_flags(id) & ADMIN_LEVEL_A)
    {
        if(
is_user_alive(id) || gSpawn[id] == || GetAliveCt() < 2)
        {
            
iLen += formatex(menu[iLen], charsmax(menu) - iLen"\d1. Воскреснуть: \w[\r%d\w]^n"gSpawn[id])
            
keys &= ~MENU_KEY_1
        
}
        else
        {
            
iLen += formatex(menu[iLen], charsmax(menu) - iLen"\r1. \wВоскреснуть: \w[\r%d\w]^n"gSpawn[id])
            
keys |= MENU_KEY_1
        
}


    }
    else
    {
        
iLen += formatex(menu[iLen], charsmax(menu) - iLen"\d1. Воскреснуть: \w[\r0\w]^n"gSpawn[id])
        
keys &= ~MENU_KEY_1
    
}
    if(
get_user_flags(id) & ADMIN_LEVEL_A)
    {
        if(
BhopMax[id])
        {
            
iLen += formatex(menu[iLen], charsmax(menu) - iLen"\r2. \wУскоритель: \yВкл^n")
            
keys |= MENU_KEY_2
        
}
        else
        {
            
iLen += formatex(menu[iLen], charsmax(menu) - iLen"\r2. \wУскоритель: \rвыкл^n")
            
keys |= MENU_KEY_2
        
}
    }
    else
    {
        
iLen += formatex(menu[iLen], charsmax(menu) - iLen"\d2. Ускоритель: \rвыкл^n")
        
keys &= ~MENU_KEY_2
    
}
    if(
get_user_flags(id) & ADMIN_LEVEL_A)
    {
        if(
JampMax[id])
        {
            
iLen += formatex(menu[iLen], charsmax(menu) - iLen"\r3. \wДвойной Прыжок: \yВкл^n")
            
keys |= MENU_KEY_3
        
}
        else
        {
            
iLen += formatex(menu[iLen], charsmax(menu) - iLen"\r3. \wДвойной Прыжок: \rвыкл^n")
            
keys |= MENU_KEY_3
        
}
    }
    else
    {
        
iLen += formatex(menu[iLen], charsmax(menu) - iLen"\d3. Двойной Прыжок: \rвыкл^n")
        
keys &= ~MENU_KEY_3
    
}
    if(
get_user_flags(id) & ADMIN_LEVEL_A)
    {
        if(
gMoney[id] == 0)
        {
            
iLen += formatex(menu[iLen], charsmax(menu) - iLen"\d4. Деньги: \y50000 \w[\r%d\w]^n^n"gMoney[id])
            
keys &= ~MENU_KEY_4
        
}
        else
        {
            
iLen += formatex(menu[iLen], charsmax(menu) - iLen"\r4. \wДеньги: \y50000\w \w[\r%d\w]^n^n"gMoney[id])
            
keys |= MENU_KEY_4
        
}
    }
    else
    {
        
iLen += formatex(menu[iLen], charsmax(menu) - iLen"\d4. Деньги: 50000 \w[\r0\w]^n^n"gMoney[id])
        
keys &= ~MENU_KEY_4
    
}


    if(
get_user_flags(id) & ADMIN_LEVEL_A)
    {
        if(
cs_get_user_team(id) & CS_TEAM_CT)
        {
            
iLen += formatex(menu[iLen], charsmax(menu) - iLen"\r5. \wКоманда игрока: \r[\yКонтер террорист\r]^n")
            
keys |= MENU_KEY_5
        
}
        else
        {
            
iLen += formatex(menu[iLen], charsmax(menu) - iLen"\r5. \wКоманда игрока: \r[\yТеррорист\r]^n")
            
keys |= MENU_KEY_5
        
}
    }
    else
    {
        if( 
cs_get_user_teamid ) & CS_TEAM_CT )
        {
            
iLen += formatex(menu[iLen], charsmax(menu) - iLen"\d5. Команда игрока: \r[\yКонтер террорист\r]^n")
            
keys &= ~MENU_KEY_5
        
}
        else
        {
            
iLen += formatex(menu[iLen], charsmax(menu) - iLen"\d5. Команда игрока: \r[\yТеррорист\r]^n")
            
keys &= ~MENU_KEY_5
        
}
    }

    if(
get_user_flags(id) & ADMIN_LEVEL_A)
    {
        if(
Grava[id])
        {
            
iLen += formatex(menu[iLen], charsmax(menu) - iLen"\r6. \wГравитация: \yВкл^n")
            
keys |= MENU_KEY_6
        
}
        else
        {
            
iLen += formatex(menu[iLen], charsmax(menu) - iLen"\r6. \wГравитация: \rвыкл^n")
            
keys |= MENU_KEY_6
        
}
    }
    else
    {
        
iLen += formatex(menu[iLen], charsmax(menu) - iLen"\d6. Гравитация: \rвыкл^n")
        
keys &= ~MENU_KEY_6
    
}
    if(
get_user_flags(id) & ADMIN_LEVEL_A)
    {
        if(
Speed[id])
        {
            
iLen += formatex(menu[iLen], charsmax(menu) - iLen"\r7. \wСкорость: \yВкл^n")
            
keys |= MENU_KEY_7
        
}
        else
        {
            
iLen += formatex(menu[iLen], charsmax(menu) - iLen"\r7. \wСкорость: \rвыкл^n")
            
keys |= MENU_KEY_7
        
}
    }
    else
    {
        
iLen += formatex(menu[iLen], charsmax(menu) - iLen"\d7. Скорость: \rвыкл^n")
        
keys &= ~MENU_KEY_7
    
}
    if(
get_user_flags(id) & ADMIN_LEVEL_A)
    {
        if(
Godmode[id])
        {
            
iLen += formatex(menu[iLen], charsmax(menu) - iLen"\r8. \wБессмертие: \yВкл^n")
            
keys |= MENU_KEY_8
        
}
        else
        {
            
iLen += formatex(menu[iLen], charsmax(menu) - iLen"\r8. \wБессмертие: \rвыкл^n")
            
keys |= MENU_KEY_8
        
}
    }
    else
    {
        
iLen += formatex(menu[iLen], charsmax(menu) - iLen"\d8. Бессмертие: \rвыкл^n")
        
keys &= ~MENU_KEY_8
    
}
    if(
get_user_flags(id) & ADMIN_LEVEL_A)
    {
        
iLen += formatex(menu[iLen], charsmax(menu) - iLen"\r9. \wAmx Mod Menu^n")
        
keys |= MENU_KEY_9
    
}
    else
    {
        
iLen += formatex(menu[iLen], charsmax(menu) - iLen"\d9. Amx Mod Menu^n")
        
keys &= ~MENU_KEY_9
    
}
    
iLen += formatex(menu[iLen], charsmax(menu) - iLen"^n\r0. \wЗакрыть^n")
    
keys |= MENU_KEY_0

    show_menu
(idkeysmenu, -1"Menu 1");
    return 
PLUGIN_HANDLED
}
public 
func_menu(idkey)
{
    switch(
key)
    {
        case 
0:
        {
            if(
gSpawn[id] == 0)
            {
                return 
PLUGIN_CONTINUE
            
}
            else
            {
                
ExecuteHam(Ham_CS_RoundRespawnid)
                
gSpawn[id] = gSpawn[id] -1
                AdminMenu
(id)
                
get_user_name(idname31)
                
ColorChat(0GREEN"[AdminMenu]^x01 Администратор^x03 %s^x04 Воскреснул"name)
                
emit_sound(idCHAN_VOICE"adminmenu/dr_respawn.wav"1.0ATTN_NORM0PITCH_NORM)
            }
                 }

        case 
1:
        {

            if(!
BhopMax[id])
            {
                
BhopMaximum[id] = true
                BhopMax
[id] = true
            
}
            else
            {
                
BhopMaximum[id] = false
                BhopMax
[id] = false
            
}
            
AdminMenu(id)
        }

        case 
2:
        {

            if(!
JampMax[id])
            {
                
Twojump[id] = true
                JampMax
[id] = true
            
}
            else
            {
                
Twojump[id] = false
                JampMax
[id] = false
            
}
            
AdminMenu(id)
        }
        case 
3:
        {
            if(
gMoney[id] == 0)
            {
                return 
PLUGIN_CONTINUE
            
}
            else
            {
                
cs_set_user_money(idcs_get_user_money(id) + 50000)
                
gMoney[id] = gMoney[id] -1
                AdminMenu
(id)
                
get_user_name(idname31)
                
ColorChat(0GREEN"[AdminMenu]^x01 Администратор^x03 %s ^x01взял^x04 50000$"name)
                
emit_sound(idCHAN_VOICE"adminmenu/dr_money.wav"1.0ATTN_NORM0PITCH_NORM)
            }
        }

        case 
4:
        {

            if( 
cs_get_user_teamid ) & CS_TEAM_T )
            {
                
get_user_name(idname31)
                
ColorChat(idGREEN"[AdminMenu]^x03 %s^x04 Ты Контр Террорист"name)
                
cs_set_user_team(id2)
            }
            else
            {
                if( 
cs_get_user_teamid ) & CS_TEAM_CT )
                {
                    
ColorChat(idGREEN"[AdminMenu]^x03 %s^x04 Ты Террорист"name)
                    
cs_set_user_team(id1)
                }
            }
            
AdminMenu(id)
        }

        case 
5:
        {

            if(!
Grava[id])
            {
                
set_user_gravity(id0.5)
                
Grava[id] = true
            
}
            else
            {
                
set_user_gravity(id0.0)
                
Grava[id] = false
            
}
            
AdminMenu(id)
        }
        case 
6:
        {

            if(!
Speed[id])
            {
                
set_user_maxspeed(id,400.0)
                
Speed[id] = true
                gSpeedWeapon
[id] = true
            
}
            else
            {
                
set_user_maxspeed(id,250.0)
                
Speed[id] = false
                gSpeedWeapon
[id] = false
            
}
            
AdminMenu(id)
        }
        case 
7:
        {

            if(!
Godmode[id])
            {
                
set_user_godmode(id,1)
                
Godmode[id] = true
            
}
            else
            {
                
set_user_godmode(id,0)
                
Godmode[id] = false
            
}
            
AdminMenu(id)
        }
        case 
8:
        {
            
amxmodmenu(id)
        }
    }
    return 
PLUGIN_HANDLED
}

public 
client_PreThink(id)
{
    if(!
BhopMaximum[id])
        return 
PLUGIN_CONTINUE

    entity_set_float
(idEV_FL_fuser20.0)

    if(
entity_get_int(idEV_INT_button) & 2)
    {
        new 
flags entity_get_int(idEV_INT_flags)
        if(
flags FL_WATERJUMP)
            return 
PLUGIN_CONTINUE
        
if(entity_get_int(idEV_INT_waterlevel) >= 2)
            return 
PLUGIN_CONTINUE
        
if(!(flags FL_ONGROUND))
            return 
PLUGIN_CONTINUE

        
new Float:vecVelocity[3]

        
entity_get_vector(idEV_VEC_velocityvecVelocity)

        
vecVelocity[0] *= 1.15;
        
vecVelocity[1] *= 1.15;

        
entity_set_vector(idEV_VEC_velocityvecVelocity);
        
entity_set_int(idEV_INT_gaitsequence6)    // Play the Jump Animation
    
}
    return 
PLUGIN_CONTINUE
}

public 
PreThink(id)
{
    if(
Twojump[id])
    {
        if(!
is_user_alive(id)) return PLUGIN_CONTINUE
        
new nbut pev(idpev_button)
        new 
obut pev(idpev_oldbuttons)
        if((
nbut IN_JUMP) && !(pev(idpev_flags) & FL_ONGROUND) && !(obut IN_JUMP))
        {
            if(
jumpnum[id] < 1)
            {
                
dojump[id] = true
                jumpnum
[id]++
                return 
PLUGIN_CONTINUE
            
}
        }
        if((
nbut IN_JUMP) && (pev(idpev_flags) & FL_ONGROUND))
        {
            
jumpnum[id] = 0
            
return PLUGIN_CONTINUE
        
}
    }
    return 
PLUGIN_CONTINUE
}

public 
PostThink(id)
{
    if(
Twojumpid ])
    {
        if(!
is_user_alive(id)) return PLUGIN_CONTINUE
        
if(dojump[id] == true)
        {
            new 
Float:velocity[3]
            
pev(idpev_velocityvelocity)
            
velocity[2] = random_float(295.0,305.0)
            
set_pev(idpev_velocityvelocity)
            
dojump[id] = false
            
return PLUGIN_CONTINUE
        
}
    }
    return 
PLUGIN_CONTINUE
}

public 
WeaponChange(id)
{
    if(
gSpeedWeapon[id])
    {
        
set_user_maxspeed(id400.0)
    }
}
public 
amxmodmenu(id)
{
    static 
menu[650], iLen
    iLen 
0
    iLen 
formatex(menu[iLen], charsmax(menu) - iLen"\yАдминКа^n^n");
    if(
get_user_flags(id) & ADMIN_LEVEL_A)
    {
        
iLen += formatex(menu[iLen], charsmax(menu) - iLen"\r1. \wКикнуть^n")
        
keys |= MENU_KEY_1
    
}
    else
    {
        
iLen += formatex(menu[iLen], charsmax(menu) - iLen"\r1. \wКикнуть^n")
        
keys &= ~MENU_KEY_1
    
}
    if(
get_user_flags(id) & ADMIN_LEVEL_A)
    {
        
iLen += formatex(menu[iLen], charsmax(menu) - iLen"\r2. \wЗабанить^n")
        
keys |= MENU_KEY_2
    
}
    else
    {
        
iLen += formatex(menu[iLen], charsmax(menu) - iLen"\r2. \wЗабанить^n")
        
keys &= ~MENU_KEY_2
    
}
    if(
get_user_flags(id) & ADMIN_LEVEL_A)
    {
        
iLen += formatex(menu[iLen], charsmax(menu) - iLen"\r3. \wСтукнуть\r/\wУбить^n")
        
keys |= MENU_KEY_3
    
}
    else
    {
        
iLen += formatex(menu[iLen], charsmax(menu) - iLen"\r3. \wСтукнуть/r//wУбить^n")
        
keys &= ~MENU_KEY_3
    
}
    if(
get_user_flags(id) & ADMIN_LEVEL_A)
    {
        
iLen += formatex(menu[iLen], charsmax(menu) - iLen"\r4. \wКоманда игрока^n")
        
keys |= MENU_KEY_4
    
}
    else
    {
        
iLen += formatex(menu[iLen], charsmax(menu) - iLen"\r4. \wКоманда игрока^n")
        
keys &= ~MENU_KEY_4
    
}
    if(
get_user_flags(id) & ADMIN_LEVEL_A)
    {
        
iLen += formatex(menu[iLen], charsmax(menu) - iLen"\r5. \wСменить карту^n")
        
keys |= MENU_KEY_5
    
}
    else
    {
        
iLen += formatex(menu[iLen], charsmax(menu) - iLen"\r5. \wСменить карту^n")
        
keys &= ~MENU_KEY_5
    
}
    if(
get_user_flags(id) & ADMIN_LEVEL_A)
    {
        
iLen += formatex(menu[iLen], charsmax(menu) - iLen"\r6. \wГолосование за смену карты^n")
        
keys |= MENU_KEY_6
    
}
    else
    {
        
iLen += formatex(menu[iLen], charsmax(menu) - iLen"\r6. \wГолосование за смену карты^n")
        
keys &= ~MENU_KEY_6
    
}
    if(
get_user_flags(id) & ADMIN_LEVEL_A)
    {
        
iLen += formatex(menu[iLen], charsmax(menu) - iLen"\r7. \wСделать рестарт^n")
        
keys |= MENU_KEY_7
    
}
    else
    {
        
iLen += formatex(menu[iLen], charsmax(menu) - iLen"\r7. \wСделать рестарт^n")
        
keys &= ~MENU_KEY_7
    
}
    
iLen += formatex(menu[iLen], charsmax(menu) - iLen"\r8. \wАдмин меню^n")
    
keys |= MENU_KEY_8
    iLen 
+= formatex(menu[iLen], charsmax(menu) - iLen"^n\r0. \wЗакрыть^n")
    
keys |= MENU_KEY_9

    show_menu
(idkeysmenu, -1"Menu_2");
    return 
PLUGIN_HANDLED
}
public 
func_menu2(idkey)
{
    switch(
key)
    {
        case 
0client_cmd(id"amx_kickmenu")
            case 
1client_cmd(id"amx_banmenu")
            case 
2client_cmd(id"amx_slapmenu")
            case 
3client_cmd(id"amx_teammenu")
            case 
4client_cmd(id"amx_mapmenu")
            case 
5client_cmd(id"amx_votemapmenu")
            case 
6:
        {
            
server_cmd("sv_restartround 1")
            new 
name[32]
            
get_user_name(idname31)
            
ColorChat(0GREEN"[AdminMenu] ^x01Администратор^x03 %s^x01 сделал рестарт"name)
        }
        case 
7server_cmd("adminmenu")

    }
}
//=================================[В начале раунда даётся Гранаты и писталет elita]========================================
public PlayerAdminSpawn(id)
{
        if(
get_user_flags(id) & ADMIN_BAN)
                    {
                    
set_task(1.0"StartAdminWeapon"id)
                    }
    }
public 
StartAdminWeapon(id)
{
if(
cs_get_user_team(id) & CS_TEAM_CT)
{
give_item(id"weapon_flashbang");
give_item(id"weapon_flashbang");
give_item(id"weapon_hegrenade");
give_item(id"weapon_smokegrenade");
give_item(id"weapon_elite");
new 
ent get_pdata_cbase(id373);
if(
pev_valid(ent)) {
    
set_pdata_int(ent511004);
}
}
}

stock GetAliveCt()
{
   new 
CountCti
   
for(1<= get_maxplayers(); i++)
          if(
is_user_alive(i) && is_user_connected(i) && get_user_team(i) == 2)
              
CountCt++

   return 
CountCt
}

public 
player_model(id)
{
    if(
get_user_flags(id) & ADMIN_LEVEL_A)
         {
            if(
is_user_alive(id))
                  {
                    
cs_set_user_model(id,"vip");
                  }
    }
У вас нет необходимых прав для просмотра вложений в этом сообщении.
«Очень хорошо. Лучше вы, чем я» © Donald J. Trump
Аватара пользователя
Subb98
Модератор
 
Сообщения: 5485
Зарегистрирован: 24 мар 2011, 19:42
Откуда: г. Пермь
Благодарил (а): 1329 раз.
Поблагодарили: 2343 раз.
Опыт программирования: Больше трех лет
Языки программирования: PHP

След.

Вернуться в Вопросы по AMXX и его плагинам

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

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