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

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

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

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

Vampire для VIP System

, помогите
Статус пользователя Slimerz0r
сообщение 6.10.2013, 10:52
Сообщение #1
Стаж: 16 лет

Сообщений: 92
Благодарностей: 6
Полезность: 48

Код
#include <amxmodx>
#include <fun>
#include <VIPSystem>

#define PLUGIN_VERSION "1.0c"
#define ACCESS_FLAG VIP_FLAG_A

new health_add
new health_hs_add
new health_max

new nKiller
new nKiller_hp
new nHp_add
new nHp_max

public plugin_init()
{
register_plugin("Vampire", PLUGIN_VERSION, "Shalfey")

health_add = register_cvar("amx_vampire_hp", "15")
health_hs_add = register_cvar("amx_vampire_hp_hs", "40")
health_max = register_cvar("amx_vampire_max_hp", "100")

register_event("DeathMsg", "hook_death", "a", "1>0")
}

public hook_death()
{
// Killer id
nKiller = read_data(1)

if ( (read_data(3) == 1) && (read_data(5) == 0) )
{
nHp_add = get_pcvar_num (health_hs_add)
}
else
nHp_add = get_pcvar_num (health_add)
nHp_max = get_pcvar_num (health_max)
// Updating Killer HP
if(VSGetVipFlag(nKiller) & ACCESS_FLAG)
return;

nKiller_hp = get_user_health(nKiller)
nKiller_hp += nHp_add
// Maximum HP check
if (nKiller_hp > nHp_max) nKiller_hp = nHp_max
set_user_health(nKiller, nKiller_hp)
// Hud message "Healed +15/+30 hp"
set_hudmessage(0, 255, 0, -1.0, 0.15, 0, 1.0, 1.0, 0.1, 0.1, -1)
show_hudmessage(nKiller, "Healed +%d hp", nHp_add)
// Screen fading
message_begin(MSG_ONE, get_user_msgid("ScreenFade"), {0,0,0}, nKiller)
write_short(1<<10)
write_short(1<<10)
write_short(0x0000)
write_byte(0)
write_byte(0)
write_byte(200)
write_byte(75)
message_end()

}

Помогите, пожалуйста.
Изначально вампир был только для Админов, хотел переделать под VIP System, переносил этот VSGetVipFlag по всему коду, при удачных попытках компилирования вампир у всех кроме Випов)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя Orty_Hart
сообщение 6.10.2013, 16:59
Сообщение #2
Стаж: 14 лет

Сообщений: 1399
Благодарностей: 408
Полезность: 725

Slimerz0r,
Сделайте поверку на Админа или наличие флага

http://amxxmodx.ru/core/amxmiscinc/54-is_u...-ili-igrok.html
http://amxxmodx.ru/core/amxmodxinc/28-get_user_flags.html

Пример
Код
if(is_user_admin(id))
{
// код вампира
}


Код
if(get_user_flags(id) & ADMIN_RCON)
{
// код вампира
}


или в начале кода
Код
if(!is_user_admin(id))
  return PLUGIN_HANDLED


Код
if(!(get_user_flags(id) & ADMIN_RCON))
  return PLUGIN_HANDLED
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Slimerz0r
сообщение 6.10.2013, 19:32
Сообщение #3
Стаж: 16 лет

Сообщений: 92
Благодарностей: 6
Полезность: 48

для админа работает нормально, я хочу чтоб именно на випов через vipsystem работало.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Orty_Hart
сообщение 6.10.2013, 19:59
Сообщение #4
Стаж: 14 лет

Сообщений: 1399
Благодарностей: 408
Полезность: 725

Slimerz0r,
так поставьте флаг админа, который стоит в vipsystem
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Slimerz0r
сообщение 8.10.2013, 15:48
Сообщение #5
Стаж: 16 лет

Сообщений: 92
Благодарностей: 6
Полезность: 48

Хорошо, тогда почему тут нанесенный урон показывает всем кроме VIP, а полученный только VIP ????

Скрытый текст
/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <amxmisc>
#include <fakemeta_util>
#include <VIPSystem>
#define ACCESS_FLAG VIP_FLAG_A

#define PLUGIN "Advanced Bullet Damage"
#define VERSION "1.0"
#define AUTHOR "Sn!ff3r"

new g_type, g_enabled, g_recieved, bool:g_showrecieved, g_hudmsg1, g_hudmsg2

public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)

register_event("Damage", "on_damage", "b", "2!0", "3=0", "4!0")
register_event("HLTV", "on_new_round", "a", "1=0", "2=0")

g_type = register_cvar("amx_bulletdamage","1")
g_recieved = register_cvar("amx_bulletdamage_recieved","1")

g_hudmsg1 = CreateHudSyncObj()
g_hudmsg2 = CreateHudSyncObj()
}

public on_new_round()
{
g_enabled = get_pcvar_num(g_type)
if(get_pcvar_num(g_recieved)) g_showrecieved = true
}

public on_damage(id)
{

if(g_enabled && VSGetVipFlags(id))
{
static attacker; attacker = get_user_attacker(id)
static damage; damage = read_data(2)
if(g_showrecieved)
{
set_hudmessage(255, 0, 0, 0.45, 0.50, 2, 0.1, 4.0, 0.1, 0.1, -1)
ShowSyncHudMsg(id, g_hudmsg2, "%i^n", damage)
}
if(VSGetVipFlags(id))
{
set_hudmessage(0, 100, 200, -1.0, 0.55, 2, 0.1, 4.0, 0.02, 0.02, -1)
ShowSyncHudMsg(attacker, g_hudmsg1, "%i^n", damage)
}

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