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

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

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

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

HELP> Нужно немножко переделать damager

staff2517
сообщение 4.12.2014, 16:18
Сообщение #1
Стаж: 12 лет

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

Всем привет, имеется дамагер который игрокам с флагом "t" показывает урон возле прицела, и простым игрокам показывает звездочку, а так-же синеет экран при убийстве.
Так вот, нужно сделать чтобы плагин показывал всем игрокам урон возле прицела, не важно с флагом игрок или нет.
исходник
#include <amxmodx>
#include <amxmisc>
#include <hamsandwich>
#include <dhudmessage>
#include <fakemeta>
#include <cstrike>

#define PLUGIN "AMX Killer!"
#define VERSION "1.2"
#define AUTHOR "Leo_[BH] & Xhonor/asd edit"

#pragma tabsize 0

#define MAX_PLAYERS 32

#define COLOR1 224
#define COLOR2 0

#define TIME1 2.0
#define TIME2 1.0

#define FLAG_DMG_MONEY ADMIN_LEVEL_H

#define ICON_SHOW 1
#define ICON_HIDE 0

new kill_num[33]
new gMsgID

new const Float:g_flCoords[][] =
{
{0.50, 0.40},
{0.56, 0.44},
{0.60, 0.50},
{0.56, 0.56},
{0.50, 0.60},
{0.44, 0.56},
{0.40, 0.50},
{0.44, 0.44}
}

new g_iPlayerPos[MAX_PLAYERS+1]

new g_iMaxPlayers
new g_pCvarEnabled

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")

g_pCvarEnabled = register_cvar("bullet_damage", "1")

register_event("Damage", "Event_Damage", "b", "2>0", "3=0")

g_iMaxPlayers = get_maxplayers()
}

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(100)
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)
{
return
}
else
{
set_dhudmessage(30, 144, 255, -0.49, -0.51, 0, 0.01, 0.01)
show_dhudmessage(attacker, "")
show_hudmessage(attacker, "")
show_dhudmessage(attacker, " * ")
}
}
}
}

public Event_Damage( iVictim )
{
if( get_pcvar_num(g_pCvarEnabled) && (read_data(4) || read_data(5) || read_data(6)) )
{
new id = get_user_attacker(iVictim)
if( (1 <= id <= g_iMaxPlayers) && is_user_connected(id) )
{
new iPos = ++g_iPlayerPos[id]
if( iPos == sizeof(g_flCoords) )
{
iPos = g_iPlayerPos[id] = 0
}

if(get_user_flags(id) & FLAG_DMG_MONEY)
{
new color_info = random_num(0,3)
switch (color_info)
{
case 0: set_hudmessage(COLOR1, COLOR1, COLOR1, Float:g_flCoords[iPos][0], Float:g_flCoords[iPos][1], 0, 0.1, TIME1, 0.02, TIME2, -1) // white
case 1: set_hudmessage(COLOR2, COLOR1, COLOR2, Float:g_flCoords[iPos][0], Float:g_flCoords[iPos][1], 0, 0.1, TIME1, 0.02, TIME2, -1) // green
case 2: set_hudmessage(COLOR2, COLOR1, COLOR1, Float:g_flCoords[iPos][0], Float:g_flCoords[iPos][1], 0, 0.1, TIME1, 0.02, TIME2, -1) // bir
case 3: set_hudmessage(COLOR1, COLOR1, COLOR2, Float:g_flCoords[iPos][0], Float:g_flCoords[iPos][1], 0, 0.1, TIME1, 0.02, TIME2, -1) // yellow
}
show_hudmessage(id, "%d", read_data(2))
}
}
}
}


Отредактировал: staff2517, - 4.12.2014, 17:19
Прикрепленные файлы:
Прикрепленный файл  damager_private.sma ( 5,59 килобайт ) Кол-во скачиваний: 17
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя Legenda
сообщение 4.12.2014, 16:22
Сообщение #2


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

Стаж: 16 лет

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

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


научись пользоваться

Код
[pawn]исходный код[/pawn]


заодно еще и прикрепляй исходник как файл
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
staff2517
сообщение 4.12.2014, 17:03
Сообщение #3
Стаж: 12 лет

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

Цитата(Legenda @ 4.12.2014, 15:18) *
научись пользоваться

Код
[pawn]исходный код[/pawn]


заодно еще и прикрепляй исходник как файл

когда я большой текст в павн ставлю, мне дают %
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя sambo
сообщение 4.12.2014, 17:08
Сообщение #4


Стаж: 14 лет

Сообщений: 847
Благодарностей: 200
Полезность: 477

staff2517,
Скрытый текст
Код:
lol
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя admir
сообщение 4.12.2014, 17:20
Сообщение #5
Стаж: 13 лет

Сообщений: 192
Благодарностей: 31
Полезность: 138

вопрос глупый, но всё же. Зачем именно этот переделывать, есть просто плагины, которые возле прицела, всем, выводят нанесенный урон по противнику?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
staff2517
сообщение 6.12.2014, 10:47
Сообщение #6
Стаж: 12 лет

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

сделал таким способом
Скрытый текст
#define FLAG_DMG_MONEY (ADMIN_USER|ADMIN_LEVEL_H)

кто нибудь знает как убрать эффект синего экрана при убийстве ?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя csnet
сообщение 6.12.2014, 12:12
Сообщение #7
Стаж: 12 лет

Сообщений: 4808
Благодарностей: 3849
Полезность: 690

удали

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(100)
message_end()


go v cs:go
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
staff2517
сообщение 7.12.2014, 14:12
Сообщение #8
Стаж: 12 лет

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

Цитата(csnet @ 6.12.2014, 11:08) *
удали

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(100)
message_end()

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