Правила форума Гаранты форума
Размещение рекламы AMX-X компилятор

Здравствуйте, гость Вход | Регистрация

Наши новости:

14-дек
24-апр
10-апр
11-апр

Отредактировать плагин возможностей

, Есть пара проблем
Статус пользователя amax
сообщение 14.10.2015, 16:40
Сообщение #1


Стаж: 10 лет

Сообщений: 177
Благодарностей: 9
Полезность: < 0

Здравствуйте, такие вот проблемы с adminmenu
1. Если дать себе скорость и при этом сменить оружие (к примеру с ак на нож) то скорость пропадает
2. Если взять гравитацию и при этом использовать парашют, то грава также перестает работать (наверно из-за команд внутри исходника парашюта, меняется грава)
3. Бывает, что нужно возродить игрока, жму возродить он не возрождается. Как сделать моментальное возрождение?

исходник
Код
/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <amxmisc>
#include <hamsandwich>
#include <engine>
#include <cstrike>
#include <fun>
#include <dhudmessage>

#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|MEN
U_KEY_8|MENU_KEY_9|MENU_KEY_0

#define PLUGIN "AdminMenu"
#define VERSION "3.2"
#define AUTHOR "SkocH"

new Spawn[33], Money[33], PlayerSpawn[33], PlayerSpeed[33], Spead[33], HP[33], PlayerGrav[33], Speed[33], Grava[33]


public plugin_init()
{
    register_plugin(PLUGIN, VERSION, AUTHOR)
    register_menu("Menu 1", keys, "func_menu")
    register_clcmd("adminmenu", "AdminMenu")
     register_event("CurWeapon", "MaxPlayerSpeed", "be", "1=1")
    register_clcmd("menu_admin", "MenuAdmin")
    RegisterHam(Ham_Spawn, "player", "PlayerSpawns",1)
    register_event("HLTV", "RoundNew", "a", "1=0", "2=0")
}
public RoundNew()
{
    for(new id = 1;id <= get_maxplayers(); id++)
    {
        Spawn[id] = 30
        Speed[id] = 30
        Grava[id] = 30
        PlayerSpawn[id] = 30
        PlayerSpeed[id] = 10
        PlayerGrav[id] = 10
        Money[id] = 10
        HP[id] = 3
    }
}
public PlayerSpawns()
{
    for(new id = 1;id <= get_maxplayers(); id++)
    {
        Spead[id] = false
    
    }
}
public client_authorized(id)
{
   if (get_user_flags(id) & ADMIN_LEVEL_A)
   {
   new player_name[32]
   get_user_name(id, player_name, 31)
   set_dhudmessage( 255, 0, 0, -1.0, 0.25, 0, 6.0, 3.0, 0.1, 1.5 );
   show_dhudmessage(0, "Админ [ %s ] заходит на сервер!",player_name );
   }
}
public AdminMenu(id)
{
    static menu[650], Len
    Len = 0
    Len = formatex(menu[Len], charsmax(menu) - Len, "\rАдминское меню^n^n");
    
    
    if(get_user_flags(id) & ADMIN_LEVEL_A)
    {
    if(Spawn[id] == 0)
    {
    Len += formatex(menu[Len], charsmax(menu) - Len, "\d1. Воскреснуть \d[\r%d\d]^n", Spawn[id])
    keys &= ~MENU_KEY_1
    }else{
    Len += formatex(menu[Len], charsmax(menu) - Len, "\y1. \wВоскреснуть \d[\r%d\d]^n", Spawn[id])
    keys |= MENU_KEY_1    
          }
    }else{
    Len += formatex(menu[Len], charsmax(menu) - Len, "\d1. Воскреснуть \d[\r%d\d]^n", Spawn[id])
    keys &= ~MENU_KEY_1
          }
    if(get_user_flags(id) & ADMIN_LEVEL_A)
    {
    if(Grava[id] == 0)
    {
    Len += formatex(menu[Len], charsmax(menu) - Len, "\d2. Гравитация \d[\r%d\d]^n", Grava[id])
    keys &= ~MENU_KEY_2
    }else{
    Len += formatex(menu[Len], charsmax(menu) - Len, "\y2. \wГравитация \d[\r%d\d]^n", Grava[id])
    keys |= MENU_KEY_2    
          }
    }else{
    Len += formatex(menu[Len], charsmax(menu) - Len, "\d2. Гравитация \d[\r%d\d]^n", Grava[id])
    keys &= ~MENU_KEY_2
          }      
    
    if(get_user_flags(id) & ADMIN_LEVEL_A)
    {
    if(Speed[id] == 0)
    {
    Len += formatex(menu[Len], charsmax(menu) - Len, "\d3. Скорость \d[\r%d\d]^n", Speed[id])
    keys &= ~MENU_KEY_3
    }else{
    Len += formatex(menu[Len], charsmax(menu) - Len, "\y3. \wСкорость \d[\r%d\d]^n", Speed[id])
    keys |= MENU_KEY_3    
          }
    }else{
    Len += formatex(menu[Len], charsmax(menu) - Len, "\d3. Скорость \d[\r%d\d]^n", Speed[id])
    keys &= ~MENU_KEY_3
          }  
          
    if(get_user_flags(id) & ADMIN_LEVEL_A)
    {
    if(HP[id] == 0)
    {
    Len += formatex(menu[Len], charsmax(menu) - Len, "\d4. Взять \d[\r1500 ХП/Брони\d] \d[\r%d\d]^n", HP[id])
    keys &= ~MENU_KEY_4
    }else{
    Len += formatex(menu[Len], charsmax(menu) - Len, "\y4. Взять \d[\r1500 ХП/Брони\d] \d[\r%d\d]^n", HP[id])
    keys |= MENU_KEY_4    
          }
    }else{
    Len += formatex(menu[Len], charsmax(menu) - Len, "\d4. Взять \d[\r1500 ХП/Брони\d] \d[\r%d\d]^n", HP[id])
    keys &= ~MENU_KEY_4
          }      
    if(get_user_flags(id) & ADMIN_LEVEL_A)
    {
    if(Money[id] == 0)
    {
    Len += formatex(menu[Len], charsmax(menu) - Len, "\d5. Взять \d[\r16000$\d]  \d[\r%d\d]^n", Money[id])
    keys &= ~MENU_KEY_5
    }else{
    Len += formatex(menu[Len], charsmax(menu) - Len, "\y5. \wВзять \d[\r16000$\d]  \d[\r%d\d]^n", Money[id])
    keys |= MENU_KEY_5    
          }
    }else{
    Len += formatex(menu[Len], charsmax(menu) - Len, "\d5. Взять \d[\r16000$\d]  \d[\r%d\d]^n", Money[id])
    keys &= ~MENU_KEY_5
          }    
    
    if(get_user_flags(id) & ADMIN_LEVEL_A)
    {
    if(PlayerSpawn[id] == 0)
    {
    Len += formatex(menu[Len], charsmax(menu) - Len, "\d6. Возродить Игрока \d[\r%d\d]^n", PlayerSpawn[id])
    keys &= ~MENU_KEY_6
    }else{
    Len += formatex(menu[Len], charsmax(menu) - Len, "\y6. \wВозродить Игрока \d[\r%d\d]^n", PlayerSpawn[id])
    keys|= MENU_KEY_6    
          }
    }else{
    Len += formatex(menu[Len], charsmax(menu) - Len, "\d6. Возродить Игрока \d[\r%d\d]^n", PlayerSpawn[id])
    keys &= ~MENU_KEY_6
          }
    if(get_user_flags(id) & ADMIN_LEVEL_A)
        {
        switch(get_user_team(id))
         {
                     case 1:
                     {
                        Len += formatex(menu[Len], charsmax(menu) - Len, "\y7. \wКоманда: \d[\rТеррорист\d]^n")
                        keys |= MENU_KEY_7
                     }
                     case 2:
                     {
                        Len += formatex(menu[Len], charsmax(menu) - Len, "\y7. \wКоманда: \d[\rCT\d]^n")
                        keys |= MENU_KEY_7
                     }
                     case 3:
                     {
                        Len += formatex(menu[Len], charsmax(menu) - Len, "\y7. \wКоманда: \d[\rНаблюдатель\d]^n")
                        keys |= MENU_KEY_7
                     }
        }  
        }else{
          switch(get_user_team(id))
         {
                     case 1:
                     {
                        Len += formatex(menu[Len], charsmax(menu) - Len, "\d7. Команда: \d[\rТеррорист\d]^n")
                        keys &= ~MENU_KEY_7
                     }
                     case 2:
                     {
                        Len += formatex(menu[Len], charsmax(menu) - Len, "\d7. Команда: \d[\rCT\d]^n")
                        keys &= ~MENU_KEY_7
                     }
                     case 3:
                     {
                        Len += formatex(menu[Len], charsmax(menu) - Len, "\d7. Команда: \d[\rНаблюдатель\d]^n")
                        keys &= ~MENU_KEY_7
                     }
        }      
              }  
          
    if(get_user_flags(id) & ADMIN_LEVEL_A)
    {
    if(PlayerSpeed[id] == 0)
    {
    Len += formatex(menu[Len], charsmax(menu) - Len, "\d8. Подарить Скорость \d[\r%d\d]^n^n", PlayerSpeed[id])
    keys &= ~MENU_KEY_8
    }else{
    Len += formatex(menu[Len], charsmax(menu) - Len, "\y8. \wПодарить Скорость \d[\r%d\d]^n^n", PlayerSpeed[id])
    keys|= MENU_KEY_8    
          }
    }else{
    Len += formatex(menu[Len], charsmax(menu) - Len, "\d8. Подарить Скорость \d[\r%d\d]^n^n", PlayerSpeed[id])
    keys &= ~MENU_KEY_8
          }      
        
    if(get_user_flags(id) & ADMIN_LEVEL_A)
    {    
    Len += formatex(menu[Len], charsmax(menu) - Len, "\y9. \wМеню Управлений^n^n")
    keys |= MENU_KEY_9
    }else{
    Len += formatex(menu[Len], charsmax(menu) - Len, "\d9. Меню Управлений^n^n")
    keys &= ~MENU_KEY_9
          }      
    
    
    Len += formatex(menu[Len], charsmax(menu) - Len, "\y0. \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(Spawn[id] == 0)
        {
            return PLUGIN_CONTINUE
        }
        else
        {
            Spawn[id] = Spawn[id] -1
            ExecuteHam(Ham_CS_RoundRespawn, id)
            AdminMenu(id)
              }    

        }
        case 1:
        {
            {
        if(Grava[id] == 0)
        {
            return PLUGIN_CONTINUE
        }else{
            Grava[id] = Grava[id] -1
            set_user_gravity(id, 0.3)  
            AdminMenu(id)
              }    

        }
    }
    case 2:
    {
            {
        if(Speed[id] == 0)
        {
            return PLUGIN_CONTINUE
        }else{
            Speed[id] = Speed[id] -1
            set_user_maxspeed(id, 520.0)
            Spead[id] = true
            AdminMenu(id)
              }    

        }
    }
        case 3:
        {
        if(HP[id] == 0)
        {
            return PLUGIN_CONTINUE
        }else{
            HP[id] = HP[id] -1
            set_user_health(id, 1500)
            set_user_armor(id, 1500)
            AdminMenu(id)
              }    

        }
        case 4:
        {
        if(Money[id] == 0)
        {
            return PLUGIN_CONTINUE
        }else{
            Money[id] = Money[id] -1
            cs_set_user_money(id, cs_get_user_money(id) + 16000)
            AdminMenu(id)
              }    

        }
        case 5:
        {
        if(PlayerSpawn[id] == 0)
        {
            return PLUGIN_CONTINUE
        }else{
            PlayerSpawn[id] = PlayerSpawn[id] -1
            SpawnPlayer(id)
              }    
        }
        case 6:
                {
                        switch (get_user_team(id))
                                {
                                        case 1:
                                        {
                                                cs_set_user_team(id, 2)
                                        }
                                        case 2:
                                        {
                                                cs_set_user_team(id, 3)
                                        }
                                        case 3:
                                        {
                                                if(get_user_flags(id) & ADMIN_BAN)
                                                {
                                                        cs_set_user_team(id, 1)
                                                }
                                                else
                                                {
                                                        cs_set_user_team(id, 2)
                                                }
                                        }
                                }
                        AdminMenu(id)
                }
        case 7:
           {
        if(PlayerSpeed[id] == 0)
        {
            return PLUGIN_CONTINUE
        }else{
            PlayerSpeed[id] = PlayerSpeed[id] -1
            SpeedPlayer(id)
              }    
                  }
        case 8:
        {
            client_cmd(id, "menu_admin")
        }
                 }      
    return PLUGIN_HANDLED
}
public MaxPlayerSpeed(id)
{
     if(Spead[id])
     {
          set_user_maxspeed(id, 550.0)
     }
}
public SpawnPlayer(id)
{
    new i_Menu = menu_create("\wВыбери Игрока", "menu_handler")
    new s_Players[32], i_Num, i_Player, msg[222]
    new s_Name[32], s_Player[10]
    get_players(s_Players, i_Num)
    for (new i; i < i_Num; i++)
    {
           i_Player = s_Players[i]
           get_user_name(i_Player, s_Name, charsmax(s_Name))
           num_to_str(i_Player, s_Player, charsmax(s_Player))
           if(is_user_alive(i_Player))
           {
                formatex(msg, charsmax(msg), "\d%s (\rЖивой\d)", s_Name)
                menu_additem(i_Menu, msg, s_Player, 0)
           }
           else
           {
                formatex(msg, charsmax(msg), "%s", s_Name)
                menu_additem(i_Menu, msg, s_Player, 0)
           }
           menu_setprop(i_Menu, MPROP_NEXTNAME, "Дальше")
           menu_setprop(i_Menu, MPROP_BACKNAME, "Назад")
           menu_setprop(i_Menu, MPROP_EXITNAME, "Закрыть")
    }
    menu_display(id, i_Menu, 0)
}

public menu_handler(id, menu, item)
{
    if (item == MENU_EXIT)
    {
           menu_destroy(menu)
           return PLUGIN_HANDLED
    }

    new s_Data[6], s_Name[64], i_Access, i_Callback
    menu_item_getinfo(menu, item, i_Access, s_Data, charsmax(s_Data), s_Name, charsmax(s_Name), i_Callback)
    new i_Player = str_to_num(s_Data)
    new name[32]
    new name2[32]
    get_user_name(id, name, 31)
    get_user_name(i_Player, name2, 31)
    if(id == i_Player)
    {
           AdminMenu(id)
    }
    else
    {
            ExecuteHam(Ham_CS_RoundRespawn, i_Player)
        ChatColor(0, "!y[!gАдмин Меню!y] !yАдминистратор !g%s !yвоскресил игрока !g%s", name, name2)
             AdminMenu(id)
    }

    menu_destroy(menu)
    return PLUGIN_HANDLED
}
public SpeedPlayer(id)
{
     if(get_user_flags(id) & ADMIN_LEVEL_A)
     {
    new menu = menu_create( "\wВыбери Игрока", "SpeedName" )
    new players[32], pnum, tempid
    new szName[32], szTempid[10]
    cs_get_user_team(id)

    get_players(players, pnum)

    for(new i; i<pnum; i++)
    {
        cs_get_user_team(players[i])
        
        tempid = players[i]

        if(!is_user_alive(tempid))
        {    
        }
                else if(get_user_maxspeed(tempid) < 700)
                {
            get_user_name(tempid, szName, 31)
            num_to_str(tempid, szTempid, 9)

            menu_additem(menu, szName, szTempid, 0)
                 }
           menu_setprop(menu, MPROP_NEXTNAME, "Дальше")
           menu_setprop(menu, MPROP_BACKNAME, "Назад")
           menu_setprop(menu, MPROP_EXITNAME, "Закрыть")
    }
    menu_display(id, menu, 0)
}

     return PLUGIN_HANDLED
}

public SpeedName(id, menu, item)
{
    if(item == MENU_EXIT)
    {
        menu_destroy(menu)
        return PLUGIN_HANDLED
    }

    new data[6], iName[64], playername[33], playername2[33]
    new access, callback
    menu_item_getinfo(menu, item, access, data,5, iName, 63, callback)

    new tempid = str_to_num(data)
    cs_get_user_team(tempid)
    
    get_user_name(id, playername, 32)
    get_user_name(tempid, playername2, 32)

    set_user_maxspeed(tempid, 500.0)
    ChatColor(0, "!y[!gАдмин Меню!y] !yАдминистратор !g%s !yДал Скорость игроку !g%s", playername, playername2)
        Spead[id] = true
     AdminMenu(id)

    menu_destroy(menu)
    return PLUGIN_HANDLED
}
public GravPlayer(id)
{
     if(get_user_flags(id) & ADMIN_LEVEL_A)
     {
    new menu = menu_create( "\yВыбири Игрока", "GravaPlayer" )
    new players[32], pnum, tempid
    new szName[32], szTempid[10]
    cs_get_user_team(id)

    get_players(players, pnum)

    for(new i; i<pnum; i++)
    {
    cs_get_user_team(players[i])
        
    tempid = players[i]

    if(!is_user_alive(tempid))
    {    
    }
    else if(get_user_gravity(tempid) > 0.35)
    {
    get_user_name(tempid, szName, 31)
    num_to_str(tempid, szTempid, 9)

    menu_additem(menu, szName, szTempid, 0)
    }
    }
    menu_setprop( menu, MPROP_NEXTNAME, "Дальше")
    menu_setprop( menu, MPROP_BACKNAME, "Назад")
    menu_setprop( menu, MPROP_EXITNAME, "Выход")    
    //menu_setprop( menu, MPROP_PERPAGE, 0)
    menu_display(id, menu, 0)
    }
     return PLUGIN_HANDLED
}

public GravaPlayer(id, menu, item)
{
    
    {
    if(item == MENU_EXIT)
    {
        menu_destroy(menu)
        return PLUGIN_HANDLED
    }

    new data[6], iName[64], playername[33], playername2[33]
    new access, callback
    menu_item_getinfo(menu, item, access, data,5, iName, 63, callback)

    new tempid = str_to_num(data)
    cs_get_user_team(tempid)
    
    get_user_name(id, playername, 32)
    get_user_name(tempid, playername2, 32)

    set_user_gravity(tempid, 0.5)
    ChatColor(0, "!y[!gАдмин Меню!y] !yАдминистратор !g%s !yДал Гравитацию игроку !g%s", playername, playername2)
          AdminMenu(id)
    }


    menu_destroy(menu)
    return PLUGIN_HANDLED
}
stock ChatColor(const id, const input[], any:...)
{
    new count = 1, players[32]
    static msg[191]
    vformat(msg, 190, input, 3)
  
    replace_all(msg, 190, "!g", "^4") // Green Color
    replace_all(msg, 190, "!y", "^1") // Default Color
    replace_all(msg, 190, "!team", "^3") // Team Color
    replace_all(msg, 190, "!team2", "^0") // Team2 Color
  
    if (id) players[0] = id; else get_players(players, count, "ch")
    {
        for (new i = 0; i < count; i++)
        {
            if (is_user_connected(players[i]))
            {
                message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[i])
                write_byte(players[i]);
                write_string(msg);
                message_end();
            }
        }
    }
}
public MenuAdmin(id)
{
        new Menu = menu_create("\yМеню Управления", "Admin")
    
    
    menu_additem(Menu, "\wКикнуть Игрока", "1")
    menu_additem(Menu, "\wЗабанить Игрока", "2")
    menu_additem(Menu, "\wСтукнуть/Убить Игрока", "3")
    menu_additem(Menu, "\wСменить Команду Игроку^n", "4")
    menu_additem(Menu, "\wГолосование За Карту", "5")
    menu_additem(Menu, "\wСменить Карту^n", "6")
    menu_additem(Menu, "\wЗаткнуть Игрока", "7")
    menu_additem(Menu, "\wГолосовое Сообщение^n", "8")
    
    
     menu_additem(Menu,"Назад", "9", 0)
        menu_additem(Menu,"Выход", "0", 0)

        menu_setprop(Menu, MPROP_PERPAGE, 0)
          menu_display(id, Menu, 0)
}
public Admin(id, menu, item)
{
        if(item == MENU_EXIT)
    {
        menu_destroy(menu)
        return PLUGIN_HANDLED
    }
    
    new data[6], iName[64], access, callback
    menu_item_getinfo(menu, item, access, data, 5, iName, 63, callback)
    new key = str_to_num(data)
    switch(key)
    {
        case 1:
        {
            client_cmd(id,"amx_kickmenu")
        }
        case 2:
        {
            client_cmd(id,"amx_banmenu")
        }
        case 3:
        {
            client_cmd(id,"amx_slapmenu")
        }
        case 4:
        {
            client_cmd(id,"amx_teammenu")
        }
        case 5:
        {
            client_cmd(id,"amx_votemapmenu")
        }
        case 6:
        {
            client_cmd(id,"amx_mapmenu")
        }
        case 7:
        {
            client_cmd(id,"amx_mute")
            client_cmd(id,"mute")
            client_cmd(id,"amx_gag")
            client_cmd(id,"amx_gagmenu")
        }
           case 8:
              {
                            client_cmd(id, "amx_speechmenu")
              }
              case 9:
          {
                      client_cmd(id, "adminmenu")      
          }
         }
    return PLUGIN_HANDLED
}


Пиши вк - vk.com/amax_official
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя dialyabev
сообщение 14.10.2015, 20:06
Сообщение #2


Стаж: 11 лет

Сообщений: 243
Благодарностей: 120
Полезность: 596

Код
RegisterHam(Ham_Spawn, "player", "PlayerSpawns",1)
public PlayerSpawns()
{
    for(new id = 1;id <= get_maxplayers(); id++)
    {
        Spead[id] = false
    
    }
}


фуфуфу, зачем ?
удали эту бяку с сервера.

Отредактировал: dialyabev, - 14.10.2015, 20:06


Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 2 раз
   + Цитировать сообщение
Статус пользователя amax
сообщение 15.10.2015, 6:16
Сообщение #3


Стаж: 10 лет

Сообщений: 177
Благодарностей: 9
Полезность: < 0

Цитата(dialyabev @ 15.10.2015, 1:01) *
Код
RegisterHam(Ham_Spawn, "player", "PlayerSpawns",1)
public PlayerSpawns()
{
    for(new id = 1;id <= get_maxplayers(); id++)
    {
        Spead[id] = false
    
    }
}


фуфуфу, зачем ?
удали эту бяку с сервера.


Можно поподробнее?


Пиши вк - vk.com/amax_official
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Cannabis
сообщение 21.10.2015, 3:43
Сообщение #4
Стаж: 11 лет

Сообщений: 162
Благодарностей: 42
Полезность: 37

Цитата(amax @ 15.10.2015, 9:12) *
Можно поподробнее?

Код древний, есть куда лучше код, на новой системе меню напиши его и будет все работать. :)
п.с: у самого на новой системе написано, все работает на отлично, и читать код приятно. :)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя kolobok1
сообщение 22.10.2015, 6:47
Сообщение #5


Стаж: 11 лет

Сообщений: 464
Благодарностей: 23
Полезность: 71

Цитата(dialyabev @ 14.10.2015, 21:01) *
Код
RegisterHam(Ham_Spawn, "player", "PlayerSpawns",1)
public PlayerSpawns()
{
    for(new id = 1;id <= get_maxplayers(); id++)
    {
        Spead[id] = false
    
    }
}


фуфуфу, зачем ?
удали эту бяку с сервера.

Я что-то тут старого не чего не вижу,много кто этот способ использует.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Ответить в данную темуНачать новую тему
 
0 пользователей и 2 гостей читают эту тему: