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

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

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

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

Нужно переделать плагин Amx Killer (урон в цифрах для всех)

Статус пользователя olegazaz
сообщение 8.6.2014, 13:59
Сообщение #1
Стаж: 11 лет

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

Здравствуйте. Прошу помощи у вас, так как не владею навыками скриптинга. Нашёл плагин, он просто отличный (имхо), но если б еще урон показывался в цифрах показывался для всех, а не только для VIP (флаг H), то было бы прекрасно. Кто может переделать код? Буду чрезмерно благодарен.

Код:
////////////////////////////////////
// Amx_Killer //
// by Xhonor for stefkone //
// Skype: xhonor_39 //
////////////////////////////////////

#include <amxmodx>
#include <amxmisc>
#include <hamsandwich>
#include <dhudmessage>
#include <fakemeta>
#include <cstrike>

#define PLUGIN "Amx_Killer"
#define VERSION "1.1"
#define AUTHOR "Xhonor/asd edit"
#pragma tabsize 0

#define ICON_SHOW 1
#define ICON_HIDE 0

new kill_num[33]
new gMsgID

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

register_event( "DeathMsg", "hook_death", "a", "1>0" )
RegisterHam( Ham_TakeDamage,"player","damager",0 )

RegisterHam(Ham_Killed, "player", "ham_PlayerKilled")
RegisterHam(Ham_Spawn, "player", "ham_PlayerSpawned_Post", 1);

gMsgID = get_user_msgid("StatusIcon")
}

public ham_PlayerSpawned_Post(id)
{
if (is_user_alive(id))
{
ammo_hud(id, 0)
kill_num[id] = 0
ammo_hud(id, 1)
}
}

public ham_PlayerKilled(victim, attacker)
{
static selfkill;

selfkill = (victim == attacker || !is_user_connected(attacker)) ? true : false;

if(!selfkill)
{
ammo_hud(attacker, 0)
kill_num[attacker] += 1
ammo_hud(attacker, 1)
}
}

ammo_hud(id, sw)
{
if(is_user_bot(id) || !is_user_alive(id))
return

new s_sprite[33]
format(s_sprite, 32, "number_%d", kill_num[id])
if(sw && is_user_alive(id))
{
message_begin( MSG_ONE, gMsgID, {0,0,0}, id )
write_byte( ICON_SHOW )
write_string( s_sprite )
write_byte( 30 )
write_byte( 144 )
write_byte( 255 )
message_end()
} else {
message_begin( MSG_ONE, gMsgID, {0,0,0}, id )
write_byte( ICON_HIDE )
write_string( s_sprite )
write_byte( 30 )
write_byte( 144 )
write_byte( 255 )
message_end()
}

if(kill_num[id] <= 0 && is_user_alive(id))
{
message_begin( MSG_ONE, gMsgID, {0,0,0}, id )
write_byte( ICON_HIDE )
write_string( s_sprite )
write_byte( 30 )
write_byte( 144 )
write_byte( 255 )
message_end()
}
}

public hook_death()
{
new iKiller = read_data(1)
new iVictim = read_data(2)

if(is_user_alive(iKiller))
{
message_begin(MSG_ONE, get_user_msgid("ScreenFade"), {0,0,0}, iKiller)
write_short(1<<10)
write_short(1<<10)
write_short(0x0000)
write_byte( 30 )
write_byte( 144 )
write_byte( 255 )
write_byte(75)
message_end()
}
new s_sprite[33]
format(s_sprite, 32, "number_%d", kill_num[iVictim])

message_begin( MSG_ONE, gMsgID, {0,0,0}, iVictim )
write_byte( ICON_HIDE )
write_string( s_sprite )
write_byte( 30 )
write_byte( 144 )
write_byte( 255 )
message_end()
}

public damager(victim, inflictor, attacker, Float:damage)
{
if(!is_user_connected(attacker))
return

if(victim == attacker || !victim)
return

if(is_user_alive(attacker))
{
if(damage > 0)
{
if(cs_get_user_team(attacker) == cs_get_user_team(victim))
return

if(get_user_flags(attacker) & ADMIN_LEVEL_H)
{
set_hudmessage(30, 144, 255, -0.49, -0.56, 0, 0.01, 0.01)
show_dhudmessage(attacker, "")
show_hudmessage(attacker, "")
show_hudmessage(attacker, "%d", floatround(damage))
}
else
{
set_dhudmessage(30, 144, 255, -0.49, -0.48, 0, 0.01, 0.01)
show_dhudmessage(attacker, "")
show_hudmessage(attacker, "")
show_dhudmessage(attacker, " * ")
}
}
}
}


Отредактировал: f1nik, - 8.6.2014, 16:25
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя Legenda
сообщение 8.6.2014, 15:07
Сообщение #2


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

Стаж: 16 лет

Сообщений: 3619
Благодарностей: 1706
Полезность: 1010

Меценат Меценат

а где отступы?
такое оформление смотреть не буду
поправить 1 минута
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя qpi3ik
сообщение 8.6.2014, 17:11
Сообщение #3


Стаж: 12 лет

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

Цитата(olegazaz @ 8.6.2014, 14:59) *
Здравствуйте. Прошу помощи у вас, так как не владею навыками скриптинга. Нашёл плагин, он просто отличный (имхо), но если б еще урон показывался в цифрах показывался для всех, а не только для VIP (флаг H), то было бы прекрасно. Кто может переделать код? Буду чрезмерно благодарен.

Код:
////////////////////////////////////
// Amx_Killer //
// by Xhonor for stefkone //
// Skype: xhonor_39 //
////////////////////////////////////

#include <amxmodx>
#include <amxmisc>
#include <hamsandwich>
#include <dhudmessage>
#include <fakemeta>
#include <cstrike>

#define PLUGIN "Amx_Killer"
#define VERSION "1.1"
#define AUTHOR "Xhonor/asd edit"
#pragma tabsize 0

#define ICON_SHOW 1
#define ICON_HIDE 0

new kill_num[33]
new gMsgID

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

register_event( "DeathMsg", "hook_death", "a", "1>0" )
RegisterHam( Ham_TakeDamage,"player","damager",0 )

RegisterHam(Ham_Killed, "player", "ham_PlayerKilled")
RegisterHam(Ham_Spawn, "player", "ham_PlayerSpawned_Post", 1);

gMsgID = get_user_msgid("StatusIcon")
}

public ham_PlayerSpawned_Post(id)
{
if (is_user_alive(id))
{
ammo_hud(id, 0)
kill_num[id] = 0
ammo_hud(id, 1)
}
}

public ham_PlayerKilled(victim, attacker)
{
static selfkill;

selfkill = (victim == attacker || !is_user_connected(attacker)) ? true : false;

if(!selfkill)
{
ammo_hud(attacker, 0)
kill_num[attacker] += 1
ammo_hud(attacker, 1)
}
}

ammo_hud(id, sw)
{
if(is_user_bot(id) || !is_user_alive(id))
return

new s_sprite[33]
format(s_sprite, 32, "number_%d", kill_num[id])
if(sw && is_user_alive(id))
{
message_begin( MSG_ONE, gMsgID, {0,0,0}, id )
write_byte( ICON_SHOW )
write_string( s_sprite )
write_byte( 30 )
write_byte( 144 )
write_byte( 255 )
message_end()
} else {
message_begin( MSG_ONE, gMsgID, {0,0,0}, id )
write_byte( ICON_HIDE )
write_string( s_sprite )
write_byte( 30 )
write_byte( 144 )
write_byte( 255 )
message_end()
}

if(kill_num[id] <= 0 && is_user_alive(id))
{
message_begin( MSG_ONE, gMsgID, {0,0,0}, id )
write_byte( ICON_HIDE )
write_string( s_sprite )
write_byte( 30 )
write_byte( 144 )
write_byte( 255 )
message_end()
}
}

public hook_death()
{
new iKiller = read_data(1)
new iVictim = read_data(2)

if(is_user_alive(iKiller))
{
message_begin(MSG_ONE, get_user_msgid("ScreenFade"), {0,0,0}, iKiller)
write_short(1<<10)
write_short(1<<10)
write_short(0x0000)
write_byte( 30 )
write_byte( 144 )
write_byte( 255 )
write_byte(75)
message_end()
}
new s_sprite[33]
format(s_sprite, 32, "number_%d", kill_num[iVictim])

message_begin( MSG_ONE, gMsgID, {0,0,0}, iVictim )
write_byte( ICON_HIDE )
write_string( s_sprite )
write_byte( 30 )
write_byte( 144 )
write_byte( 255 )
message_end()
}

public damager(victim, inflictor, attacker, Float:damage)
{
if(!is_user_connected(attacker))
return

if(victim == attacker || !victim)
return

if(is_user_alive(attacker))
{
if(damage > 0)
{
if(cs_get_user_team(attacker) == cs_get_user_team(victim))
return

if(get_user_flags(attacker) & ADMIN_LEVEL_H)
{
set_hudmessage(30, 144, 255, -0.49, -0.56, 0, 0.01, 0.01)
show_dhudmessage(attacker, "")
show_hudmessage(attacker, "")
show_hudmessage(attacker, "%d", floatround(damage))
}
else
{
set_dhudmessage(30, 144, 255, -0.49, -0.48, 0, 0.01, 0.01)
show_dhudmessage(attacker, "")
show_hudmessage(attacker, "")
show_dhudmessage(attacker, " * ")
}
}
}
}



Проще пареной репы!

Просто возми и поменяй

Это:

Код:
if(get_user_flags(attacker) & ADMIN_LEVEL_H)


На это:

Код:
if(get_user_flags(attacker) & ADMIN_USER)


Вот и все)
Если помог жми спасибо)

Отредактировал: qpi3ik, - 8.6.2014, 17:12
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 2 раз
   + Цитировать сообщение
Статус пользователя Legenda
сообщение 8.6.2014, 17:21
Сообщение #4


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

Стаж: 16 лет

Сообщений: 3619
Благодарностей: 1706
Полезность: 1010

Меценат Меценат

замени
Код:
 if(get_user_flags(attacker) & ADMIN_LEVEL_H)
{
set_hudmessage(30, 144, 255, -0.49, -0.56, 0, 0.01, 0.01)
show_dhudmessage(attacker, "")
show_hudmessage(attacker, "")
show_hudmessage(attacker, "%d", floatround(damage))
}
else
{
set_dhudmessage(30, 144, 255, -0.49, -0.48, 0, 0.01, 0.01)
show_dhudmessage(attacker, "")
show_hudmessage(attacker, "")
show_dhudmessage(attacker, " * ")
}


на
Код:

set_hudmessage(30, 144, 255, -0.49, -0.56, 0, 0.01, 0.01)
show_dhudmessage(attacker, "")
show_hudmessage(attacker, "")
show_hudmessage(attacker, "%d", floatround(damage))
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
csgamerok
сообщение 8.6.2014, 18:21
Сообщение #5
Стаж: 12 лет

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

2 вопроса:

1) почему координаты вывода отрицательные числа?
set_hudmessage(30, 144, 255, -0.49, -0.56, 0, 0.01, 0.01)

2) всё нравится, но мешает подмигивание при киле.
Можно в плагине убрать засветку синим фоном при убийстве?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя GOOD FELLOW
сообщение 8.6.2014, 19:24
Сообщение #6


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

Стаж: 13 лет

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

Цитата(csgamerok @ 8.6.2014, 18:21) *
2 вопроса:

1) почему координаты вывода отрицательные числа?
set_hudmessage(30, 144, 255, -0.49, -0.56, 0, 0.01, 0.01)

2) всё нравится, но мешает подмигивание при киле.
Можно в плагине убрать засветку синим фоном при убийстве?


http://amxxmodx.ru/core/amxmodxinc/48-hud-...hudmessage.html
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
csgamerok
сообщение 9.6.2014, 0:13
Сообщение #7
Стаж: 12 лет

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

1) именно это я читал, координата меняется от 0.0 до 1.0,
если хочу по центру то пишу -1.0

Ну и что такое -0.49?

2) на второй вопрос ответ ещё больше нужен
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя GOOD FELLOW
сообщение 9.6.2014, 5:45
Сообщение #8


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

Стаж: 13 лет

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

ответ на 2 вопрос:
удали этот код

Код:
   if(is_user_alive(iKiller)) 
{
message_begin(MSG_ONE, get_user_msgid("ScreenFade"), {0,0,0}, iKiller)
write_short(1<<10)
write_short(1<<10)
write_short(0x0000)
write_byte( 30 )
write_byte( 144 )
write_byte( 255 )
write_byte(75)
message_end()
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя Bloo
сообщение 9.6.2014, 6:31
Сообщение #9


Стаж: 12 лет

Сообщений: 15547
Благодарностей: 6971
Полезность: 1206

csgamerok, -0.49 это отсчет от центра, 0.49 это отсчет от левого верхнего угла.
ps.gif поправьте если ошибаюсь.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
csgamerok
сообщение 9.6.2014, 11:11
Сообщение #10
Стаж: 12 лет

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

Цитата(Bloo @ 9.6.2014, 9:31) *
csgamerok, -0.49 это отсчет от центра, 0.49 это отсчет от левого верхнего угла.
ps.gif поправьте если ошибаюсь.


то есть позиция -0.49 равнозначна позиции 0.51 ??
и зачем центр отдельно обозначать как -1.0 почему не написать просто 0.5 ??
ничего не понимаю ))
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Bloo
сообщение 9.6.2014, 11:18
Сообщение #11


Стаж: 12 лет

Сообщений: 15547
Благодарностей: 6971
Полезность: 1206

csgamerok, по идеи да. Не знаю почему, но это есть.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
yukish
сообщение 9.6.2014, 18:41
Сообщение #12
Стаж: 12 лет

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

Цитата(csgamerok @ 9.6.2014, 12:11) *
то есть позиция -0.49 равнозначна позиции 0.51 ??
и зачем центр отдельно обозначать как -1.0 почему не написать просто 0.5 ??
ничего не понимаю ))


Надо опытных скриптеров спрашивать. По идеи нет разницы.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя GOOD FELLOW
сообщение 9.6.2014, 18:42
Сообщение #13


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

Стаж: 13 лет

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

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