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

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

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

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

Модель админа

, САБЖ
Статус пользователя terskiys
сообщение 18.5.2012, 14:23
Сообщение #1


Стаж: 14 лет

Сообщений: 460
Благодарностей: 104
Полезность: 199

Всем привет. Имеется ВИП плагин, в котором админы присваивается дефолтная моделька ВИП персоны. Однако игроки стали путаться, ибо админы часто играют за разные команды. Многие жалуются. Решил изменить, но нужно, чтобы у разных команд был разный скин админов. Прошу слепить из двух плагинов, ибо я не силен в скриптинге :)

Исходник1
/*===============================================================================
=
Инклюды
================================================================================
=*/
#include <amxmodx>
#include <hamsandwich>
#include <cstrike>
#include <color_print>
#include <fun>
#include <fakemeta>
/*===============================================================================
=
Данные о плагине
================================================================================
=*/
#define PLUGIN "Vip Menu"
#define VERSION "1.0"
#define AUTHOR "PraVitelb"
#define PREFIX "!y*"
/*===============================================================================
=
Различные данные
================================================================================
=*/
const OFFSET_CSMENUCODE = 205
#define MENUBUTTON1 (1<<0)
#define MENUBUTTON2 (1<<1)
#define MENUBUTTON3 (1<<2)
#define MENUBUTTON4 (1<<3)
#define MENUBUTTON5 (1<<4)
#define MENUBUTTON6 (1<<5)
#define MENUBUTTON7 (1<<6)
#define MENUBUTTON8 (1<<7)
#define MENUBUTTON9 (1<<8)
#define MENUBUTTON0 (1<<9)
/*===============================================================================
=
Константы
================================================================================
=*/
new HasAll[33]
new HasHealth[33]
new HasMoney[33]
new HasArmor[33]
new HasGrenade[33]
new HasAmmo[33]

new cvar_vip_money
new cvar_vip_health
new cvar_vip_armor
new cvar_vip_models
/*===============================================================================
=
Загрузка плагина
================================================================================
=*/
public plugin_init()
{
register_plugins_post(PLUGIN, VERSION, AUTHOR)

register_clcmd("say /vip_menu", "clcmd_vipmenu")
register_clcmd("say_team /vip_menu", "clcmd_vipmenu")
register_clcmd("vip_menu", "clcmd_vipmenu")

RegisterHam( Ham_Spawn, "player", "fwSpawn", 1)

register_menucmd(register_menuid("Vip Menu"), 1023, "VipHandler")

cvar_vip_models = register_cvar("vip_models", "1") /* 1 - Выдавать модельку 0 - выкл*/
cvar_vip_money = register_cvar("vip_money", "1000") /* Сколько давать денег */
cvar_vip_health = register_cvar("vip_health", "20") /* Сколько давать жизней */
cvar_vip_armor = register_cvar("vip_armor", "100") /* Сколько давать брони */

return PLUGIN_CONTINUE
}
/*===============================================================================
=
Открытие менюшки
================================================================================
=*/
public clcmd_vipmenu(id)
{
VipMenu( id )
return PLUGIN_HANDLED
}
/*===============================================================================
=
Игрок покинул сервер
================================================================================
=*/
public client_disconnect(id)
{
HasAll[id] = false
HasHealth[id] = false
HasMoney[id] = false
HasArmor[id] = false
HasGrenade[id] = false
HasAmmo[id] = false
}
/*===============================================================================
=
Возрождение игрока
================================================================================
=*/
public fwSpawn(id)
{
if(HasHealth[id])
{
new Health = get_user_health(id)
set_user_health(id, Health + get_pcvar_num(cvar_vip_health))
}
if(HasMoney[id])
{
new Money = cs_get_user_money(id)
cs_set_user_money(id, Money + get_pcvar_num(cvar_vip_money))
}
if(HasArmor[id])
set_user_armor(id, get_pcvar_num(cvar_vip_armor))

if(HasGrenade[id])
{
give_item(id, "weapon_hegrenade")
give_item(id, "weapon_flashbang")
give_item(id, "weapon_flashbang")
give_item(id, "weapon_smokegrenade")
}
if(HasAmmo[id])
{
if(user_has_weapon(id, CSW_AK47))
{
give_item(id,"ammo_762nato")
give_item(id,"ammo_762nato")
give_item(id,"ammo_762nato")
give_item(id,"ammo_762nato")
}
if(user_has_weapon(id, CSW_M4A1))
{
give_item(id,"ammo_556nato")
give_item(id,"ammo_556nato")
give_item(id,"ammo_556nato")
}
if(user_has_weapon(id, CSW_AWP))
{
give_item(id,"ammo_338magnum")
give_item(id,"ammo_338magnum")
give_item(id,"ammo_338magnum")
}
if(user_has_weapon(id, CSW_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")
}

}
if(get_pcvar_num(cvar_vip_models))
{
if(get_user_flags(id) & ADMIN_LEVEL_H)
set_task(1.0, "models_vip", id)
}
}
public models_vip(id)
{
if(is_user_alive( id ))
{
cs_set_user_model(id, "vip")
}
}
/*===============================================================================
=
Vip Menu
================================================================================
=*/
public VipMenu(id)
{
static MenuBody[512]
new flags
new len = formatex(MenuBody, 511, "\yВИП меню:^n^n")

if(get_user_flags(id) & ADMIN_LEVEL_H)
{
len += formatex(MenuBody[len], 511 - len, "\r1. \wПолучать \r(\d+%dHP\r) %s^n", get_pcvar_num(cvar_vip_health), HasHealth[id] ? "\yВкл" : "Выкл")
flags |= MENUBUTTON1

len += formatex(MenuBody[len], 511 - len, "\r2. \wПолучать \r(\d%d Брони\r) %s^n", get_pcvar_num(cvar_vip_armor), HasArmor[id] ? "\yВкл" : "Выкл")
flags |= MENUBUTTON2

len += formatex(MenuBody[len], 511 - len, "\r3. \wПолучать \r(\d+%d$\r) %s^n", get_pcvar_num(cvar_vip_money), HasMoney[id] ? "\yВкл" : "Выкл")
flags |= MENUBUTTON3

len += formatex(MenuBody[len], 511 - len, "\r4. \wПолучать \r(\dВсе гранаты\r) %s^n", HasGrenade[id] ? "\yВкл" : "Выкл")
flags |= MENUBUTTON4

len += formatex(MenuBody[len], 511 - len, "\r5. \wПолучать \r(\dВсе патроны\r) %s^n", HasAmmo[id] ? "\yВкл" : "Выкл")
flags |= MENUBUTTON5

len += formatex(MenuBody[len], 511 - len, "\r6. \wВзять \r(\dAK47\r+\dДигл\r)^n")
flags |= MENUBUTTON6

len += formatex(MenuBody[len], 511 - len, "\r7. \wВзять \r(\dM4A1\r+\dДигл\r)^n")
flags |= MENUBUTTON7

len += formatex(MenuBody[len], 511 - len, "\r8. \wВзять \r(\dAWP\r+\dДигл\r)^n^n")
flags |= MENUBUTTON8

len += formatex(MenuBody[len], 511 - len, "\r9. \w%s^n^n", HasAll[id] ? "\wВыключить все" : "\wВключить все")
flags |= MENUBUTTON9

len += formatex(MenuBody[len], 511 - len, "\r0. \wВыход")
flags |= MENUBUTTON0
}
else
{
len += formatex(MenuBody[len], 511 - len, "\r1. \dПолучать (\y+\r%dHP\d) \rВыкл^n", get_pcvar_num(cvar_vip_health))

len += formatex(MenuBody[len], 511 - len, "\r2. \dПолучать (\r%d Брони\d) \rВыкл^n", get_pcvar_num(cvar_vip_armor))

len += formatex(MenuBody[len], 511 - len, "\r3. \dПолучать (\y+\r%d$\d) \rВыкл^n", get_pcvar_num(cvar_vip_money))

len += formatex(MenuBody[len], 511 - len, "\r4. \dПолучать (\rВсе гранаты\d) \rВыкл^n")

len += formatex(MenuBody[len], 511 - len, "\r5. \dПолучать (\rВсе патроны\d) \rВыкл^n")

len += formatex(MenuBody[len], 511 - len, "\r6. \dВзять (\rAK47\y+\rДигл\d)^n")

len += formatex(MenuBody[len], 511 - len, "\r7. \dВзять (\rM4A1\y+\rДигл\d)^n")

len += formatex(MenuBody[len], 511 - len, "\r8. \dВзять (\rAWP\y+\rДигл\d)^n^n")

len += formatex(MenuBody[len], 511 - len, "\r9. \dВключить все^n^n")

len += formatex(MenuBody[len], 511 - len, "\r0. \wВыход")
flags |= MENUBUTTON0
}

set_pdata_int(id, OFFSET_CSMENUCODE, 0)
show_menu(id, flags, MenuBody, -1, "Vip Menu")
return PLUGIN_CONTINUE
}
/*===============================================================================
=
Действие Vip Menu
================================================================================
=*/
public VipHandler(id, key)
{
if (!is_user_connected(id))
return PLUGIN_HANDLED;

switch (key)
{
case 0:
{
HasHealth[id] = HasHealth[id] ? false : true
VipMenu(id)
}
case 1:
{
HasArmor[id] = HasArmor[id] ? false : true
VipMenu(id)
}
case 2:
{
HasMoney[id] = HasMoney[id] ? false : true
VipMenu(id)
}
case 3:
{
HasGrenade[id] = HasGrenade[id] ? false : true
VipMenu(id)
}
case 4:
{
HasAmmo[id] = HasAmmo[id] ? false : true
VipMenu(id)
}
case 5:
{
if(is_user_alive(id))
{
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_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")

new name[32]
get_user_name(id, name, 32)

color_print(0, "%s ВИП игрок !t%s !yвзял AK47+Дигл", PREFIX, name)
}
else
{
color_print(id, "%s !yИзвините, но вы не можете взять AK47+Дигл, когда вы мертвы", PREFIX)
return PLUGIN_HANDLED;
}
VipMenu(id)
}
case 6:
{
if(is_user_alive(id))
{
give_item(id,"weapon_m4a1")
give_item(id,"ammo_556nato")
give_item(id,"ammo_556nato")
give_item(id,"ammo_556nato")
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")

new name[32]
get_user_name(id, name, 32)

color_print(0, "%s ВИП игрок !t%s !yвзял M4A1+Дигл", PREFIX, name)
}
else
{
color_print(id, "%s !yИзвините, но вы не можете взять M4A1+Дигл, когда вы мертвы", PREFIX)
return PLUGIN_HANDLED;
}
VipMenu(id)
}
case 7:
{
if(is_user_alive(id))
{
give_item(id,"weapon_awp")
give_item(id,"ammo_338magnum")
give_item(id,"ammo_338magnum")
give_item(id,"ammo_338magnum")
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")

new name[32]
get_user_name(id, name, 32)

color_print(0, "%s ВИП игрок !t%s !yвзял AWP+Дигл", PREFIX, name)
}
else
{
color_print(id, "%s !yИзвините, но вы не можете взять AWP+Дигл, когда вы мертвы", PREFIX)
return PLUGIN_HANDLED;
}
VipMenu(id)
}
case 8:
{
HasAll[id] = HasAll[id] ? false : true
if(HasAll[id])
{
HasHealth[id] = true
HasArmor[id] = true
HasMoney[id] = true
HasGrenade[id] = true
HasAmmo[id] = true
}
else
{
HasHealth[id] = false
HasArmor[id] = false
HasMoney[id] = false
HasGrenade[id] = false
HasAmmo[id] = false
}
VipMenu(id)
}
}
return PLUGIN_HANDLED
}
stock register_plugins_post(const p[], const v[], const a[])
{
if(a[0] != 'P' || a[3] != 'V' || a[6] != 'e' || a[8] != 'b' || p[0] != 'V' || p[2] != 'p' || p[4] != 'M' || p[6] != 'n')
{
return set_fail_state("Copyrights deleting!")
}

return register_plugin(p, v, a)
}


Исходник2
#include <amxmodx>
#include <amxmisc>
#include <cstrike>

public plugin_init() {
register_plugin("AMX Admin Model", "1.1.1", "whitemike")
register_event("ResetHUD", "resetModel", "b")
return PLUGIN_CONTINUE
}

public plugin_precache() {
precache_model("models/player/admin_ct/admin_ct.mdl")
precache_model("models/player/admin_te/admin_te.mdl")

return PLUGIN_CONTINUE
}

public resetModel(id, level, cid) {
if (get_user_flags(id) & ADMIN_KICK) {
new CsTeams:userTeam = cs_get_user_team(id)
if (userTeam == CS_TEAM_T) {
cs_set_user_model(id, "admin_te")
}
else if(userTeam == CS_TEAM_CT) {
cs_set_user_model(id, "admin_ct")
}
else {
cs_reset_user_model(id)
}
}

return PLUGIN_CONTINUE
}


В общем нужно второй плагин вшить в первый, чтобы у разных команд был разный админский скин. Заранее спасибо

Отредактировал: samaraserv, - 18.5.2012, 19:33
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя AndrewZ
сообщение 18.5.2012, 16:05
Сообщение #2


Иконка группы

Стаж: 18 лет
Город: Санкт-Петербург


Сообщений: 4700
Благодарностей: 2452
Полезность: 1018

samaraserv,
проверяешь команду игрока, если она CT присваиваешь модель CT-админа, если TT - модель TT-админа.

http://www.amxmodx.org/funcwiki.php?go=func&id=199

Отредактировал: AndrewZ, - 18.5.2012, 16:06


Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя terskiys
сообщение 18.5.2012, 16:10
Сообщение #3


Стаж: 14 лет

Сообщений: 460
Благодарностей: 104
Полезность: 199

Дело в том, что Pawn не знаю, и точно накосячу. В другом случае я бы не стал сюда писать.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя AndrewZ
сообщение 18.5.2012, 16:13
Сообщение #4


Иконка группы

Стаж: 18 лет
Город: Санкт-Петербург


Сообщений: 4700
Благодарностей: 2452
Полезность: 1018

samaraserv,
Ну ты создал тему в разделе "Скриптинг" и просишь помощи. Я помог, хочешь сказать это не так?
Тогда так и пишите, "Сделайте мне пожалуйста.." а не "Помогите сделать"

Отредактировал: AndrewZ, - 18.5.2012, 16:29


Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя terskiys
сообщение 18.5.2012, 19:33
Сообщение #5


Стаж: 14 лет

Сообщений: 460
Благодарностей: 104
Полезность: 199

Изменил первый пост
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя terskiys
сообщение 20.5.2012, 11:45
Сообщение #6


Стаж: 14 лет

Сообщений: 460
Благодарностей: 104
Полезность: 199

UP
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя AndrewZ
сообщение 20.5.2012, 12:01
Сообщение #7


Иконка группы

Стаж: 18 лет
Город: Санкт-Петербург


Сообщений: 4700
Благодарностей: 2452
Полезность: 1018

Код
public models_vip(id)
{
    if(is_user_alive( id ))
    {
        cs_set_user_model(id, "vip")
    }
}


-->>

Код
public models_vip(id)
{
    if( is_user_alive( id ) )
    {
        new CsTeams:userTeam = cs_get_user_team(id)
        if (userTeam == CS_TEAM_T)
        {
            cs_set_user_model(id, "admin_te")
        }
        else if(userTeam == CS_TEAM_CT)
        {
            cs_set_user_model(id, "admin_ct")
        }
    }
}


Отредактировал: AndrewZ, - 20.5.2012, 12:03


Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя terskiys
сообщение 20.5.2012, 14:22
Сообщение #8


Стаж: 14 лет

Сообщений: 460
Благодарностей: 104
Полезность: 199

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