Страница 1 от 1
Редакция на Nice Damager "mini".
Публикувано на: 07 Май 2019, 12:47
от iv69
Ползвам плъгина Nice Damager, работи добре и има интересен "ефект", но имам един въпрос: Ще може ли да се редактира плъгина, така , че отнетия "damage" да излиза като HUD-съобщение под мерника, само един път: и то точно в момента на убиването на "противника". Т.е. , да ни е нещо като ориентир за примерно "Screenfade on kill" в играта ? Не знам защо но когато имам включен плъгин за Screenfade on kill - винаги при убийство в сървъра има някаква моментна и рязка промяна и на fps и на ping, а в този плъгин, въпреки че има подобен ефект, (но при умиране-визирам червения екран) - не влияе изобщо на играта! Т.е. - не ми трябва Screenfade, а просто един път появата на целия Damage в момента на убиване на противника.Само това.
Код за потвърждение: Избери целия код
#include <amxmodx>
#include <fakemeta_util>
#define PLUGIN "Nice Damager"
#define VERSION "5.0 Mini"
#define AUTHOR "sector"
new ndm_msg
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
register_event("Damage", "nice_damager", "b", "2!0", "3=0", "4!0")
register_event("DeathMsg", "nice_kill", "a")
ndm_msg = CreateHudSyncObj()
}
public nice_damager(id)
{
new i, damager
i = get_user_attacker(id)
damager = read_data(2)
if(fm_is_ent_visible(i, id))
{
set_hudmessage(255, 255, 255, -1.0, 0.60, 2, 0.1, 4.0, 0.02, 0.02, -1)
ShowSyncHudMsg(i, ndm_msg, "-%i HP", damager)
}
}
public nice_kill()
{
new id = read_data(2)
message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("ScreenFade"), {0, 0, 0}, id)
write_short(10<<12)
write_short(10<<16)
write_short(1<<1)
write_byte(random_num(60, 255))
write_byte(0)
write_byte(0)
write_byte(random_num(60, 255))
message_end()
}
Благодаря предварително !
Редакция на Nice Damager "mini".
Публикувано на: 07 Май 2019, 15:56
от OciXCrom
Под "целия damage" имаш предвид цялата щета която си направил на играча за време на рунда, или щетата която си направил с последния удар?
Редакция на Nice Damager "mini".
Публикувано на: 07 Май 2019, 16:10
от iv69
OciXCrom написа: ↑07 Май 2019, 15:56
Под "целия damage" имаш предвид цялата щета която си направил на играча за време на рунда, или щетата която си направил с последния удар?
Ми, Кроме незнам и аз... просто искам да ми излиза надписа само след последния изстрел и в момента на смъртта на противника му...за да може да спре нападателя стрелбата си навреме. Може би ако изпише цялата щета на едно(при целия бой само между двамата в този рунд) - ако не те затруднява, би било чудесно, благодаря ! Сега мисля, че при всяко попадение - подава надписа, той се мени ... Да е просто само един - и да се ползва от играча за нещо като сигнализация , че противника е мъртъв и не трябва да стреля повече... А дали ще изписва целия отнет damage, или само отнетото с последния "фатален" изстрел, е почти все едно/ е по яко ще е ако стане да изпише сумарния...но ако не става няма никакъв проблем/ !
Редакция на Nice Damager "mini".
Публикувано на: 07 Май 2019, 16:45
от OciXCrom
Предполагам ще ти харесва така.
Код за потвърждение: Избери целия код
#include <amxmodx>
#include <engine>
#include <hamsandwich>
#define PLUGIN "Nice Damager"
#define VERSION "5.0 Mini-edit1"
#define AUTHOR "sector/OciXCrom"
new g_iObject, g_iScreenFade, g_iDamage[33][33]
public plugin_init()
{
register_plugin("Damage Info", "1.0", "OciXCrom")
register_logevent("OnRoundStart", 2, "0=World triggered", "1=Round_Start")
RegisterHam(Ham_TakeDamage, "player", "OnTakeDamage", 0)
register_event("DeathMsg", "OnPlayerKilled", "a")
g_iObject = CreateHudSyncObj()
g_iScreenFade = get_user_msgid("ScreenFade")
}
public OnRoundStart()
{
for(new i; i < sizeof(g_iDamage); i++)
{
arrayset(g_iDamage[i], 0, sizeof(g_iDamage[]))
}
}
public OnTakeDamage(iVictim, iInflictor, iAttacker, Float:fDamage, iDamageBits)
{
if(!is_user_connected(iAttacker))
{
return
}
g_iDamage[iAttacker][iVictim] += floatround(fDamage)
}
public OnPlayerKilled()
{
new iAttacker = read_data(1), iVictim = read_data(2)
if(!is_user_connected(iAttacker) || iAttacker == iVictim)
{
return
}
new szName[32]
get_user_name(iVictim, szName, charsmax(szName))
set_hudmessage(255, 255, 255, 0.1, 0.4, .holdtime = 5.0)
ShowSyncHudMsg(iAttacker, g_iObject, "You killed %s^n^nDamage dealt: %i^nDamage received: %i", szName, g_iDamage[iAttacker][iVictim], g_iDamage[iVictim][iAttacker])
message_begin(MSG_ONE_UNRELIABLE, g_iScreenFade, _, iAttacker)
write_short(10<<12)
write_short(10<<16)
write_short(1<<1)
write_byte(random_num(60, 255))
write_byte(0)
write_byte(0)
write_byte(random_num(60, 255))
message_end()
g_iDamage[iAttacker][iVictim] = 0
}
Редакция на Nice Damager "mini".
Публикувано на: 07 Май 2019, 17:21
от iv69
OciXCrom написа: ↑07 Май 2019, 16:45
Предполагам ще ти харесва така.
Код за потвърждение: Избери целия код
#include <amxmodx>
#include <engine>
#include <hamsandwich>
#define PLUGIN "Nice Damager"
#define VERSION "5.0 Mini-edit1"
#define AUTHOR "sector/OciXCrom"
new g_iObject, g_iScreenFade, g_iDamage[33][33]
public plugin_init()
{
register_plugin("Damage Info", "1.0", "OciXCrom")
register_logevent("OnRoundStart", 2, "0=World triggered", "1=Round_Start")
RegisterHam(Ham_TakeDamage, "player", "OnTakeDamage", 0)
register_event("DeathMsg", "OnPlayerKilled", "a")
g_iObject = CreateHudSyncObj()
g_iScreenFade = get_user_msgid("ScreenFade")
}
public OnRoundStart()
{
for(new i; i < sizeof(g_iDamage); i++)
{
arrayset(g_iDamage[i], 0, sizeof(g_iDamage[]))
}
}
public OnTakeDamage(iVictim, iInflictor, iAttacker, Float:fDamage, iDamageBits)
{
if(!is_user_connected(iAttacker))
{
return
}
g_iDamage[iAttacker][iVictim] += floatround(fDamage)
}
public OnPlayerKilled()
{
new iAttacker = read_data(1), iVictim = read_data(2)
if(!is_user_connected(iAttacker) || iAttacker == iVictim)
{
return
}
new szName[32]
get_user_name(iVictim, szName, charsmax(szName))
set_hudmessage(255, 255, 255, 0.1, 0.4, .holdtime = 5.0)
ShowSyncHudMsg(iAttacker, g_iObject, "You killed %s^n^nDamage dealt: %i^nDamage received: %i", szName, g_iDamage[iAttacker][iVictim], g_iDamage[iVictim][iAttacker])
message_begin(MSG_ONE_UNRELIABLE, g_iScreenFade, _, iAttacker)
write_short(10<<12)
write_short(10<<16)
write_short(1<<1)
write_byte(random_num(60, 255))
write_byte(0)
write_byte(0)
write_byte(random_num(60, 255))
message_end()
g_iDamage[iAttacker][iVictim] = 0
}
Веднага ще го пробвам! Благодаря !
Добавено преди 34 минути 42 секунди:
Мммм, хареса мии и то много
Искам само да попитам има ли начин някак и как и откъде (ако има такъв) да се намали съвсем малко продължителността на "присветването" след всяко убийство? Питам , понеже при CSDM-сървъри като моя, ако "утрепеш" в рамките на 3-4sek - 2 или 3-ма , червеното на екрана става доста плътно и дори тъмно и то малко по-задълго. Просто може би с половин до една секунда по-кратко ако е... ? Иначе е станало супер и то с отделен надпис и инфо
Много добра идея !
Но сякаш си сложил някаква опция за различни цветове( нещо като randum) или се бъркам... но забелязах , че има нещо по-поносимо в оранжево и жълто и ...и по тъмно в червено ли ,нз...Хахаха,интересно е
Редакция на Nice Damager "mini".
Публикувано на: 07 Май 2019, 22:22
от OciXCrom
От този ред можеш да промениш времетраенето на съобщението - последното число (5.0):
Код за потвърждение: Избери целия код
set_hudmessage(255, 255, 255, 0.1, 0.4, .holdtime = 5.0)
Произволните цветове са копирани от оригиналния плъгин - не съм пипал нищо по screen fade-а.
Редакция на Nice Damager "mini".
Публикувано на: 08 Май 2019, 12:12
от iv69
Пак благодаря за плъгина. Добра изработка, сървъра стана доста зарибяващ...препоръчвам плъгина и на останалите !
Заключете, моля !