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

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

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

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

> Правила форума

Этот раздел, как вы могли заметить по названию, предназначен для решения вопросов по поводу уже существующих модов и плагинов.
Пожалуйста, если у вас проблема с написанием плагина, не путайте этот раздел с разделом по скриптингу.
Для поиска плагинов и модов существует соответствующий раздел.

Название темы должно соответствовать содержанию. Темы с названием типа "Помогите", "Вопрос", "парни подскажите..." - будут удалены.
Все темы, не относящиеся к "Вопросам по модам и плагинам", будут удалены или перемещены в соответствующий раздел.

Правила оформления темы:
1. Помимо заголовка не забудьте верно сформулировать свой вопрос.
2. Выложите исходник (в тег кода + ) или ссылку на плагин который вызывает у вас вопросы.
3. Выложите лог с ошибками (если имеется) под спойлер

Плагин Admin Weapon [NEW] А также ss_menu

, Нужно немного подправить
Статус пользователя MrTsar
сообщение 20.2.2013, 12:20
Сообщение #1


Стаж: 13 лет

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

Плагин Admin Weapon [NEW] ( Страница плагина )
Цитата
Кто может помочь поправить плагин чтобы вместо пулемета была М4А1


Плагин скриншотов ss_menu ( Страница плагина )
Цитата
Нужно изменить флаг "а" -имунитет на флаг "с" -кик. Тоесть нужно чтобы к плагину имели доступ только игроки у которых стоит флаг "с"


Исходник Admin Weapon

Код
#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <fun>

#define PLUGIN "AdminWeaponMenu"
#define VERSION "1.0"
#define AUTHOR "StudenT"

const PRIMARY_WEAPONS_BIT_SUM = (1<<CSW_SCOUT)|(1<<CSW_XM1014)|(1<<CSW_MAC10)|(1<<CSW_AUG)|(1<<CSW_UMP45)|(1<<CSW_SG550)|(1<<CSW_GALIL)|(1<<CSW_FAMAS)|(1<<CSW_AWP)|(1<<CSW_MP5NAVY)|(1<<CSW_M249)|(1<<CSW_M3)|(1<<CSW_M4A1)|(1<<CSW_TMP)|(1<<CSW_G3SG1)|(1<<CSW_SG552)|(1<<CSW_AK47)|(1<<CSW_P90)
const SECONDARY_WEAPONS_BIT_SUM = (1<<CSW_P228)|(1<<CSW_ELITE)|(1<<CSW_FIVESEVEN)|(1<<CSW_USP)|(1<<CSW_GLOCK18)|(1<<CSW_DEAGLE)
new gRoundNum
new gRoundNum_2
new g_Maxplayers
new mapname[32]
new key = MENU_KEY_1|MENU_KEY_2|MENU_KEY_3|MENU_KEY_4|MENU_KEY_0

public plugin_init()
{
     get_mapname(mapname, charsmax(mapname))
     if(containi(mapname, "awp_") != -1)    
     {
          return
     }
     else
     {
          register_plugin(PLUGIN, VERSION, AUTHOR)
          register_menu("AdminWeapon", key, "AdminWeaponFunc")
          register_concmd("", "AdminWeaponMenu")
          g_Maxplayers = get_maxplayers()
          register_event("HLTV", "EventStartRound", "a", "1=0", "2=0")
          register_event("TextMsg", "EventRestartRound", "a", "2=#Game_Commencing", "2=#Game_will_restart_in")
     }
}

public EventStartRound()
{
     gRoundNum++
     gRoundNum_2++
      
     for(new id = 1; id <= g_Maxplayers; id++)
     {
          if(!is_user_connected(id))
               continue
                      
          if(get_user_flags(id) & ADMIN_LEVEL_H)
          {
               set_task(0.0, "AdminWeaponMenu", id)
          }
     }
}

public EventRestartRound()
{
     gRoundNum = 0
     gRoundNum_2 = 0
}

public AdminWeaponMenu(id)
{
     static weaponmenu[650], len
     len = 0
     len = formatex(weaponmenu[len], charsmax(weaponmenu) - len, "\yЖелаете взять оружие?^n^n")

     len += formatex(weaponmenu[len], charsmax(weaponmenu) - len, "\r1. \wДигл \y+ \wБроня \y+ \wВсе грены^n")
     key |= MENU_KEY_1

     if(cs_get_user_team(id) == CS_TEAM_T)
     {
          if(gRoundNum > 1)
          {
               len += formatex(weaponmenu[len], charsmax(weaponmenu) - len, "\r2. \wКалаш \y+ \wДигл \y+ \wБроня \y+ \wВсе грены^n")
               key |= MENU_KEY_2
          }
          else
          {
               len += formatex(weaponmenu[len], charsmax(weaponmenu) - len, "\d2. Калаш \y+ \dДигл \y+ \dБроня \y+ \dВсе грены (\rсо 2 раунда\d)^n")
               key &= ~MENU_KEY_2
          }
     }
     if(cs_get_user_team(id) == CS_TEAM_CT)
     {
          if(gRoundNum > 1)
          {
               len += formatex(weaponmenu[len], charsmax(weaponmenu) - len, "\r2. \wЭмка \y+ \wДигл \y+ \wБроня \y+ \wВсе грены^n")
               key |= MENU_KEY_2
          }
          else
          {
               len += formatex(weaponmenu[len], charsmax(weaponmenu) - len, "\d2. Эмка \y+ \dДигл \y+ \dБроня \y+ \dВсе грены (\rсо 2 раунда\d)^n")
               key &= ~MENU_KEY_2
          }      
     }

     if(gRoundNum_2 > 2)
     {
          len += formatex(weaponmenu[len], charsmax(weaponmenu) - len, "\r3. \wAWP \y+ \wДигл \y+ \wБроня \y+ \wВсе грены^n")
          key |= MENU_KEY_3
     }
     else
     {
          len += formatex(weaponmenu[len], charsmax(weaponmenu) - len, "\d3. AWP \y+ \dДигл \y+ \dБроня \y+ \dВсе грены (\rс 3 раунда\d)^n")
          key &= ~MENU_KEY_3
     }

     if(gRoundNum_2 > 2)
     {
          len += formatex(weaponmenu[len], charsmax(weaponmenu) - len, "\r4. \wПулемёт \y+ \wДигл \y+ \wБроня \y+ \wВсе грены^n^n")
          key |= MENU_KEY_4
     }
     else
     {
          len += formatex(weaponmenu[len], charsmax(weaponmenu) - len, "\d4. Пулемёт \y+ \dДигл \y+ \dБроня \y+ \dВсе грены (\rс 3 раунда\d)^n^n")
          key &= ~MENU_KEY_4
     }
      
     len += formatex(weaponmenu[len], charsmax(weaponmenu) - len, "\r0. \wНет, спасибо \y:)")
     key |= MENU_KEY_0

     show_menu(id, key, weaponmenu, -1, "AdminWeapon")
     return PLUGIN_HANDLED
}

public AdminWeaponFunc(id, key)
{
     switch(key)
     {
          case 0:
          {
               drop_weapons(id, 2)
               give_item(id,"weapon_deagle")
               give_item(id,"ammo_50ae")
               give_item(id,"ammo_50ae")
               give_item(id,"ammo_50ae")
               give_item(id,"ammo_50ae")
               give_item(id,"ammo_50ae")
               give_item(id,"ammo_50ae")
               give_item(id,"ammo_50ae")  
               give_item(id,"weapon_hegrenade")
               give_item(id,"weapon_flashbang")
               give_item(id,"weapon_flashbang")
               give_item(id,"weapon_smokegrenade")
               set_user_armor(id, 100)
          }

          case 1:
          {
               if(cs_get_user_team(id) == CS_TEAM_T)
               {
                    if(gRoundNum > 1)
                    {
                         drop_weapons(id, 1)
                         drop_weapons(id, 2)
                         give_item(id,"weapon_ak47")
                         give_item(id,"ammo_762nato")
                         give_item(id,"ammo_762nato")
                         give_item(id,"ammo_762nato")
                         give_item(id,"ammo_762nato")
                         give_item(id,"weapon_hegrenade")
                         give_item(id,"weapon_flashbang")
                         give_item(id,"weapon_flashbang")
                         give_item(id,"weapon_smokegrenade")
                         give_item(id,"weapon_deagle")
                         give_item(id,"ammo_50ae")
                         give_item(id,"ammo_50ae")
                         give_item(id,"ammo_50ae")
                         give_item(id,"ammo_50ae")
                         give_item(id,"ammo_50ae")
                         give_item(id,"ammo_50ae")
                         give_item(id,"ammo_50ae")
                         set_user_armor(id, 100)
                    }
                    else
                    {
                         return PLUGIN_CONTINUE
                    }
               }
               if(cs_get_user_team(id) == CS_TEAM_CT)
               {
                    if(gRoundNum > 1)
                    {
                         drop_weapons(id, 1)
                         drop_weapons(id, 2)
                         give_item(id,"weapon_m4a1")
                         give_item(id,"ammo_556nato")
                         give_item(id,"ammo_556nato")
                         give_item(id,"ammo_556nato")
                         give_item(id,"weapon_hegrenade")
                         give_item(id,"weapon_flashbang")
                         give_item(id,"weapon_flashbang")
                         give_item(id,"weapon_smokegrenade")
                         give_item(id,"weapon_deagle")
                         give_item(id,"ammo_50ae")
                         give_item(id,"ammo_50ae")
                         give_item(id,"ammo_50ae")
                         give_item(id,"ammo_50ae")
                         give_item(id,"ammo_50ae")
                         give_item(id,"ammo_50ae")
                         give_item(id,"ammo_50ae")
                         set_user_armor(id, 100)
                    }
                    else
                    {
                         return PLUGIN_CONTINUE
                    }
               }
          }

          case 2:
          {
               if(gRoundNum_2 > 2)
               {
                    drop_weapons(id, 1)
                    drop_weapons(id, 2)
                    give_item(id,"weapon_awp")
                    give_item(id,"ammo_338magnum")
                    give_item(id,"ammo_338magnum")
                    give_item(id,"ammo_338magnum")
                    give_item(id,"weapon_hegrenade")
                    give_item(id,"weapon_flashbang")
                    give_item(id,"weapon_flashbang")
                    give_item(id,"weapon_smokegrenade")  
                    give_item(id,"weapon_deagle")
                    give_item(id,"ammo_50ae")
                    give_item(id,"ammo_50ae")
                    give_item(id,"ammo_50ae")
                    give_item(id,"ammo_50ae")
                    give_item(id,"ammo_50ae")
                    give_item(id,"ammo_50ae")
                    give_item(id,"ammo_50ae")
                    set_user_armor(id, 100)
               }
               else
               {
                    return PLUGIN_CONTINUE
               }
          }

          case 3:
          {
               if(gRoundNum_2 > 2)
               {
                    drop_weapons(id, 1)
                    drop_weapons(id, 2)
                    give_item(id, "weapon_m249")
                    give_item(id,"ammo_556natobox")
                    give_item(id,"ammo_556natobox")
                    give_item(id,"ammo_556natobox")
                    give_item(id,"ammo_556natobox")
                    give_item(id,"ammo_556natobox")
                    give_item(id,"ammo_556natobox")
                    give_item(id,"ammo_556natobox")
                    give_item(id,"weapon_hegrenade")
                    give_item(id,"weapon_flashbang")
                    give_item(id,"weapon_flashbang")
                    give_item(id,"weapon_smokegrenade")  
                    give_item(id,"weapon_deagle")
                    give_item(id,"ammo_50ae")
                    give_item(id,"ammo_50ae")
                    give_item(id,"ammo_50ae")
                    give_item(id,"ammo_50ae")
                    give_item(id,"ammo_50ae")
                    give_item(id,"ammo_50ae")
                    give_item(id,"ammo_50ae")
                    set_user_armor(id, 100)
               }
               else
               {
                    return PLUGIN_CONTINUE
               }
          }
     }
     return PLUGIN_HANDLED
}

stock drop_weapons(id, dropwhat)
{
     static weapons[32], num, i, weaponid
     num = 0
     get_user_weapons(id, weapons, num)

     for (i = 0; i < num; i++)
     {
          weaponid = weapons[i]
          if((dropwhat == 1 && ((1<<weaponid) & PRIMARY_WEAPONS_BIT_SUM)) || (dropwhat == 2 && ((1<<weaponid) & SECONDARY_WEAPONS_BIT_SUM)))
          {
               static wname[32]
               get_weaponname(weaponid, wname, charsmax(wname))
               engclient_cmd(id, "drop", wname)
          }
     }
}



Исходник ss_menu
Код
/*
    Название: Screen Shot Menu
    Автор: Bonaqua | DimaS
    Версия: 1.2
    
    Description:
    Данный плагин добовляет возможность делать снимок экрана на стороне клиента.
    
    Version:
    v1.0
    - Первый релиз
    
    v1.1
    - Исправлены ошибки
    
    v1.2
    - Добавлен вывод информации о том что администратор сделал скриншот игроку.
    - Наложен (вотемарк на скрин).
    - Добавлен Cvar amx_ssm_watermark
    - Добавлен Cvar amx_ssm_enabled
    - Добавлен Cvar amx_ssm_message
    - Добавлен Cvar amx_ssm_watermark_enabled
    - Добавлен вывод кваров в cfg файл.
    
    Created Screen Shot Menu by Bonaqua and DimaS for www.csgames.ru
    Web Help - www.csgames.ru
    
    Нашёл баг ? Сообщи нам на форум www.csgames.ru
*/

#include <amxmodx>
#include <fun>
#include <icolourchat>
#include <dhudmessage>

new const PLUGIN[]        = "Screen Shot Menu"
new const VERSION[]        = "1.2"
new const NAME[]        = "Bonaqua | DimaS"

new const FILE[]        = "ss_menu.cfg"            // Файл с настройками

new const OPEN_ACCESS    = ADMIN_IMMUNITY

const Float:HUD_MESSAGE_X = 0.01
const Float:HUD_MESSAGE_Y = 0.82
const Float:HUD_WATERMARK_X = -1.0
const Float:HUD_WATERMARK_Y = 0.88

new pcv_watermark_enabled
new pcv_watermark
new pcv_enable
new pcv_msg

public plugin_init()
{
    register_plugin( PLUGIN, VERSION, NAME )
    
    pcv_enable                = register_cvar("amx_ssm_enabled", "0")
    pcv_msg                    = register_cvar("amx_ssm_message", "0")
    pcv_watermark_enabled    = register_cvar("amx_ssm_watermark_enabled", "0")
    pcv_watermark             = register_cvar("amx_ssm_watermark", "")

    register_clcmd("ss_menu", "iScreenShotMenu")
    register_clcmd("say ss_menu", "iScreenShotMenu")
    register_clcmd("say /ss_menu", "iScreenShotMenu")
    register_clcmd("say_team ss_menu", "iScreenShotMenu")
    register_clcmd("say_team /ss_menu", "iScreenShotMenu")
}

public plugin_cfg()
{
    new ConfigsDir[64]
    get_localinfo("amxx_configsdir", ConfigsDir, charsmax(ConfigsDir))
    format(ConfigsDir, charsmax(ConfigsDir), "%s/%s", ConfigsDir, FILE)
    
    if (!file_exists(ConfigsDir))
    {
        server_print("==================================================================")
        server_print("File [%s] not found!", ConfigsDir)
        server_print("==================================================================")
        return;
    }
    server_cmd("exec ^"%s^"", ConfigsDir)
}

public iScreenShotMenu(id)
{
    if(!get_pcvar_num(pcv_enable))
    {
        ChatColor(id, "^4[%s]^1 Меню снятие скриншотов выключено!", PLUGIN)
        return false
    }
        
    if(get_user_flags(id) & OPEN_ACCESS)
    {
        
        new szLen[1024 char]
        formatex(szLen, charsmax(szLen), "\r[%s]\d Выбирайте игрока:", PLUGIN)
        new iMenu = menu_create(szLen, "menu_handler")

        new s_Players[32], i_Num, iPlayer
        new s_Name[32], s_Player[10]

        get_players(s_Players, i_Num)

        for (new i; i < i_Num; i++)
        {
            iPlayer = s_Players[i]

            get_user_name(iPlayer, s_Name, charsmax(s_Name))
            num_to_str(iPlayer, s_Player, charsmax(s_Player))

            menu_additem(iMenu, s_Name, s_Player, 0)
        }
        
        menu_display(id, iMenu, 0)
        return PLUGIN_HANDLED
    }
    else
    ChatColor(id, "^3[^4%s^3]^1 В доступе отказано!", PLUGIN)
    return PLUGIN_HANDLED
}

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 iPlayer = str_to_num(s_Data)
    
    if(!is_user_connected(iPlayer))
    {
        ChatColor(id, "^4[%s]^1 Игрок не подключён к серверу!", PLUGIN)
        iScreenShotMenu(id)

        return PLUGIN_HANDLED
    }
    
    iScreenShotMenu(id)
    
    iScreenShotMsg(iPlayer, id)
    
    set_task(0.3, "iScreenShotFunct", iPlayer)

    menu_destroy(menu)
    return PLUGIN_HANDLED
}

iScreenShotMsg(id, iPlayer)
{
    if(get_pcvar_num(pcv_msg))
    {
        new playername[128], adminname[128], times[32]
        
        get_user_name(id, playername, charsmax(playername))
        get_user_name(iPlayer, adminname, charsmax(adminname))
        
        get_time("%d.%m.%Y - %H:%M:%S", times, 31)
        
        set_hudmessage( 225, 225, 225, HUD_MESSAGE_X, HUD_MESSAGE_Y, 1, 1.0, 5.0 )
        show_hudmessage( id , "[%s]^nАдминистратор: %s^nСделал скриншот игроку: %s^nСкриншот был сделан: %s", PLUGIN , adminname, playername, times)
        
        log_to_file("addons\amxmodx\logs\ss_menu.log", "Администратор '%s' сделал скриншот игроку '%s'", adminname, playername)
    }
    
    if(get_pcvar_num(pcv_watermark_enabled))
    {
        new Watermark[32]
        get_pcvar_string(pcv_watermark, Watermark, 31)
        
        set_dhudmessage( 0, 225, 0, HUD_WATERMARK_X, HUD_WATERMARK_Y, 2, 1.0, 5.0 )
        show_dhudmessage( id , Watermark)
    }
}

public iScreenShotFunct(id)
{
    client_cmd(id, "snapshot")
}


Прикрепленный файл  AdminWeapon.sma ( 10,66 килобайт ) Кол-во скачиваний: 16

Прикрепленный файл  ss_menu.sma ( 5,09 килобайт ) Кол-во скачиваний: 20


Отредактировал: MrTsar, - 20.2.2013, 12:21
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Safety1st
сообщение 20.2.2013, 12:45
Сообщение #2
Стаж: 14 лет
Город: Moscow

Сообщений: 7228
Благодарностей: 8071
Полезность: 196

Admin Weapon: мне кажется логичнее разрешить AK47 и M4A1 всем, а пулемёт убрать. Если такое устраивает - плагин прикреплён.

ss_menu: строку
Код
new const OPEN_ACCESS    = ADMIN_IMMUNITY

замените на
Код
new const OPEN_ACCESS    = ADMIN_KICK

--

Классно создали топик: и нормальное ТЗ, и sma прикрепили, и код. Сразу захотелось помочь.
Прикрепленные файлы:
Прикрепленный файл  AdminWeapon.sma ( 8,28 килобайт ) Кол-во скачиваний: 24
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя MrTsar
сообщение 20.2.2013, 13:51
Сообщение #3


Стаж: 13 лет

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

Цитата(Safety1st @ 20.2.2013, 13:45) *
Admin Weapon: мне кажется логичнее разрешить AK47 и M4A1 всем, а пулемёт убрать. Если такое устраивает - плагин прикреплён.

ss_menu: строку
Код
new const OPEN_ACCESS    = ADMIN_IMMUNITY

замените на
Код
new const OPEN_ACCESS    = ADMIN_KICK

--

Классно создали топик: и нормальное ТЗ, и sma прикрепили, и код. Сразу захотелось помочь.




Спасибо за помощь! Мир не без добрых людей)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Тема закрытаНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: