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

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

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

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

2 страниц V   1 2

damager

, помогите переделать
Статус пользователя FeNix41
сообщение 7.3.2015, 16:34
Сообщение #1
Стаж: 12 лет

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

Нужно сделать чтобы работало только у випов

Исходник
Код:
#include <amxmodx>
#include <fakemeta>

new const PLUGIN[] = "Damager"
new const VERSION[] = "2.0"
new const AUTHOR[] = "Prayer"

new g_MsgSync
new g_MsgSync2

new pid
new damage

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

register_event("Damage", "EVENT_Damage", "b", "2!0", "3=0", "4!0")

g_MsgSync = CreateHudSyncObj()
g_MsgSync2 = CreateHudSyncObj()
}

public EVENT_Damage(id)
{
if(pev_valid(id))
{
pid = get_user_attacker(id)
damage = read_data(2)

set_hudmessage(255, 0, 0, 0.45, 0.50, 2, 0.1, 4.0, 0.1, 0.1, -1)
ShowSyncHudMsg(id, g_MsgSync2, "%i", damage)

if(pev(pid, pev_flags) & FL_CLIENT)
{
set_hudmessage(0, 100, 200, -1.0, 0.55, 2, 0.1, 4.0, 0.02, 0.02, -1)
ShowSyncHudMsg(pid, g_MsgSync, "%i", damage)
}
}
}


Пробывал так, но он показывает только полученый урон

тык
Код:
public EVENT_Damage(id)
{
if(!(get_user_flags(id) & ADMIN_LEVEL_H)) return;
if(pev_valid(id))
{
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Vaqtincha
сообщение 7.3.2015, 17:21
Сообщение #2
Стаж: 11 лет

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

пробуй

Отредактировал: Vaqtincha, - 7.3.2015, 17:22
Прикрепленные файлы:
Прикрепленный файл  bullet_damage.sma ( 2,02 килобайт ) Кол-во скачиваний: 102
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя FeNix41
сообщение 7.3.2015, 18:42
Сообщение #3
Стаж: 12 лет

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

Vaqtincha, слишком много ненужного, мне надо как там, только для випов :)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя FeNix41
сообщение 7.3.2015, 18:55
Сообщение #4
Стаж: 12 лет

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

Сделал сам кароче:)
Пришлось попотеть, но достиг нужного результата.
Кому нужно, забирайте.
тык
Код:
#include <amxmodx>
#include <fakemeta>

new const PLUGIN[] = "Damager"
new const VERSION[] = "2.0"
new const AUTHOR[] = "Prayer"

new g_MsgSync
new g_MsgSync2

new pid
new damage

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

register_event("Damage", "EVENT_Damage", "b", "2!0", "3=0", "4!0")

g_MsgSync = CreateHudSyncObj()
g_MsgSync2 = CreateHudSyncObj()
}

public EVENT_Damage(id)
{
if(pev_valid(id))
{
pid = get_user_attacker(id)
damage = read_data(2)
if(get_user_flags(id) & ADMIN_LEVEL_H)

set_hudmessage(255, 0, 0, 0.45, 0.50, 2, 0.1, 4.0, 0.1, 0.1, -1)
ShowSyncHudMsg(id, g_MsgSync2, "%i", damage)

if(pev(pid, pev_flags) & FL_CLIENT)
if(get_user_flags(pid) & ADMIN_LEVEL_H)
{
set_hudmessage(0, 100, 200, -1.0, 0.55, 2, 0.1, 4.0, 0.02, 0.02, -1)
ShowSyncHudMsg(pid, g_MsgSync, "%i", damage)
}
}
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Vaqtincha
сообщение 7.3.2015, 19:07
Сообщение #5
Стаж: 11 лет

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

Цитата(FeNix41 @ 7.3.2015, 18:42) *
Vaqtincha, слишком много ненужного, мне надо как там, только для випов :)

ммм. Вы хоть ставили его?
вы думаете если меньше кода грузит меньше?
Плагин от ConnorMcLeod лучше чем любые другие аналоги
и красивее.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя GOOD FELLOW
сообщение 7.3.2015, 19:58
Сообщение #6


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

Стаж: 13 лет

Сообщений: 2294
Благодарностей: 1187
Полезность: 890

Vaqtincha, не соглашусь, что лучше чем другие аналоги
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Vaqtincha
сообщение 7.3.2015, 20:33
Сообщение #7
Стаж: 11 лет

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

Цитата(GOOD FELLOW @ 7.3.2015, 20:58) *
Vaqtincha, не соглашусь, что лучше чем другие аналоги

столько мнений
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя FeNix41
сообщение 8.3.2015, 11:10
Сообщение #8
Стаж: 12 лет

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

Кстати, при компиляции выдаёт 2 предупреждения, из-за чего они могут быть?
тык
Код:
#include <amxmodx>
#include <fakemeta>

new const PLUGIN[] = "Damager"
new const VERSION[] = "2.0"
new const AUTHOR[] = "Prayer"

new g_MsgSync
new g_MsgSync2

new pid
new damage

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

register_event("Damage", "EVENT_Damage", "b", "2!0", "3=0", "4!0")

g_MsgSync = CreateHudSyncObj()
g_MsgSync2 = CreateHudSyncObj()
}

public EVENT_Damage(id)
{
if(pev_valid(id))
{
pid = get_user_attacker(id)
damage = read_data(2)
if(get_user_flags(id) & ADMIN_LEVEL_H)

set_hudmessage(255, 0, 0, 0.45, 0.50, 2, 0.1, 4.0, 0.1, 0.1, -1)
ShowSyncHudMsg(id, g_MsgSync2, "%i", damage)

if(pev(pid, pev_flags) & FL_CLIENT)
if(get_user_flags(pid) & ADMIN_LEVEL_H)
{
set_hudmessage(0, 100, 200, -1.0, 0.55, 2, 0.1, 4.0, 0.02, 0.02, -1)
ShowSyncHudMsg(pid, g_MsgSync, "%i", damage)
}
}
}


Отредактировал: FeNix41, - 8.3.2015, 11:10
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя GOOD FELLOW
сообщение 8.3.2015, 11:28
Сообщение #9


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

Стаж: 13 лет

Сообщений: 2294
Благодарностей: 1187
Полезность: 890

Мы не ванги, скиньте предупреждения хоть
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Legend21
сообщение 8.3.2015, 11:53
Сообщение #10
Стаж: 14 лет
Город: Винница

Сообщений: 604
Благодарностей: 229
Полезность: 561

FeNix41,


Скобки добавь... ТУТ

Код:
  pid = get_user_attacker(id)
damage = read_data(2)

if(get_user_flags(id) & ADMIN_LEVEL_H)
{
set_hudmessage(255, 0, 0, 0.45, 0.50, 2, 0.1, 4.0, 0.1, 0.1, -1)
ShowSyncHudMsg(id, g_MsgSync2, "%i", damage)
}


И вообще, че то ты там налепил...

Код:
if(pev(pid, pev_flags) & FL_CLIENT)
if(get_user_flags(pid) & ADMIN_LEVEL_H)
{
set_hudmessage(0, 100, 200, -1.0, 0.55, 2, 0.1, 4.0, 0.02, 0.02, -1)
ShowSyncHudMsg(pid, g_MsgSync, "%i", damage)
}


Зачем тут флаг админа если он у тебя стоит уже. Наверное будет так?

Код:
 if(pev(pid, pev_flags) & FL_CLIENT)
{
set_hudmessage(0, 100, 200, -1.0, 0.55, 2, 0.1, 4.0, 0.02, 0.02, -1)
ShowSyncHudMsg(pid, g_MsgSync, "%i", damage)
}


Отредактировал: Legend21, - 8.3.2015, 11:55
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя FeNix41
сообщение 8.3.2015, 12:03
Сообщение #11
Стаж: 12 лет

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

Legend21, спасибо, всё прошло чисто :)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя navigator19
сообщение 21.11.2015, 8:46
Сообщение #12
Стаж: 16 лет

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

Цитата(Legend21 @ 8.3.2015, 11:49) *
И вообще, че то ты там налепил...

Код:
if(pev(pid, pev_flags) & FL_CLIENT)
if(get_user_flags(pid) & ADMIN_LEVEL_H)
{
set_hudmessage(0, 100, 200, -1.0, 0.55, 2, 0.1, 4.0, 0.02, 0.02, -1)
ShowSyncHudMsg(pid, g_MsgSync, "%i", damage)
}


Зачем тут флаг админа если он у тебя стоит уже. Наверное будет так?

Код:
 if(pev(pid, pev_flags) & FL_CLIENT)
{
set_hudmessage(0, 100, 200, -1.0, 0.55, 2, 0.1, 4.0, 0.02, 0.02, -1)
ShowSyncHudMsg(pid, g_MsgSync, "%i", damage)
}

Все правильно он сделал, первое условие это показывать домаг только админу когда в тебя стреляют, а второе когда ты стреляешь, и если убрать проверку на флаг во втором условии, то простые юзеры тоже будут видеть домаг, наносимый противнику!
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Vaqtincha
сообщение 21.11.2015, 11:43
Сообщение #13
Стаж: 11 лет

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

navigator19, этого сообщение мы ждали почти год! молодец
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя navigator19
сообщение 21.11.2015, 13:16
Сообщение #14
Стаж: 16 лет

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

Цитата(Vaqtincha @ 21.11.2015, 11:39) *
navigator19, этого сообщение мы ждали почти год! молодец

Просто схожая была проблема, 2 дня бился, и рыскал в поисках решения, а тут как раз подходящий код , вот и написал чтобы люди не путались!
Но свой код так и не решил, может тут кто поможет, как правильно выставить права доступа?

Код:
#include <amxmodx>
#include <amxmisc>
#include <fakemeta_util>

#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(get_user_flags(id) & ADMIN_KICK && get_user_flags(attacker) & ADMIN_KICK){

if(g_enabled)
{

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(is_user_connected(id))
{
switch(g_enabled)
{
case 1: {
set_hudmessage(0, 255, 0, -1.0, 0.55, 2, 0.1, 4.0, 0.02, 0.02, -1) //зеленый цвет ты попал через стену
ShowSyncHudMsg(attacker, g_hudmsg1, "%i^n", damage)
}
case 2: {
if(fm_is_ent_visible(attacker,id))
{
set_hudmessage(0, 255, 0, -1.0, 0.55, 2, 0.1, 4.0, 0.02, 0.02, -1) //зеленый цвет ты попал в видимого
ShowSyncHudMsg(attacker, g_hudmsg1, "%i^n", damage)
}
}
}
}

}
}

}


Отредактировал: navigator19, - 21.11.2015, 13:22
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Vaqtincha
сообщение 21.11.2015, 13:28
Сообщение #15
Стаж: 11 лет

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

navigator19, что там именно не работает?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя navigator19
сообщение 22.11.2015, 0:36
Сообщение #16
Стаж: 16 лет

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

Цитата(Vaqtincha @ 21.11.2015, 13:23) *
navigator19, что там именно не работает?

Вот исходник плагина домаг, нужно чтобы он работал только у админов с флагом ADMIN_KICK, как сделать, нужен именно этот плагин
Код:


#include <amxmodx>
#include <amxmisc>
#include <fakemeta_util>

#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)
{
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(is_user_connected(attacker))
{
switch(g_enabled)
{
case 1: {
set_hudmessage(0, 255, 0, -1.0, 0.55, 2, 0.1, 4.0, 0.02, 0.02, -1)
ShowSyncHudMsg(attacker, g_hudmsg1, "%i^n", damage)
}
case 2: {
if(fm_is_ent_visible(attacker,id))
{
set_hudmessage(0, 255, 0, -1.0, 0.55, 2, 0.1, 4.0, 0.02, 0.02, -1)
ShowSyncHudMsg(attacker, g_hudmsg1, "%i^n", damage)
}
}
}
}
}
}

Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Vaqtincha
сообщение 22.11.2015, 1:05
Сообщение #17
Стаж: 11 лет

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

держи! проверь.
Сделал небольшую оптимизацию кода.

Отредактировал: Vaqtincha, - 22.11.2015, 1:06
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 2 раз
   + Цитировать сообщение
Vaqtincha
сообщение 22.11.2015, 1:11
Сообщение #18
Стаж: 11 лет

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

теперь при каждым попадании не будет лишняя проверка что attacker подключен или нет.
И не будет лишняя проверка что игрок админ или нет.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя navigator19
сообщение 22.11.2015, 16:00
Сообщение #19
Стаж: 16 лет

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

Цитата(Vaqtincha @ 22.11.2015, 1:06) *
теперь при каждым попадании не будет лишняя проверка что attacker подключен или нет.
И не будет лишняя проверка что игрок админ или нет.

Большое спасибо, то что надо, чет кнопки спасибо не нашел видать мало постов пока.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Vaqtincha
сообщение 22.11.2015, 22:15
Сообщение #20
Стаж: 11 лет

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

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