- Ошибка
-
Всем привет! столкнулся с такой проблемой , в плагине Crx game messages сообщение в dhud выводятся жирным шрифтом а в nice killer (лучший игрок раунда) шрифт потоньше как написать жирным шрифтом
- ОС
- Linux
- Amx Mod X
-
1.9.0.5294
- Билд
-
rehlds посл версии
- ReGamedll
-
5,21,0,575
- Версия Metamod
-
1,3,0,131
- Список метамодулей
-
[ 1] AMX Mod X RUN - amxmodx_mm_i386.so v1.9.0.5294 ini Start ANY
[ 2] Reunion RUN - reunion_mm_i386.so v0.1.0.137 ini Start Never
[ 3] VoiceTranscoder RUN - VoiceTranscoder.so v2017RC5 ini ANY ANY
[ 4] HitBox Fix RUN - hitbox_fix_mm_i386.so v1.1.2 ini Start ANY
[ 5] Print Center Fix RUN - printcenterfix_mm_i386.so v2.0.1 ini ANY ANY
[ 6] ReAuthCheck RUN - reauthcheck_mm_i386.so v0.1.6 ini Start Never
[ 7] Rechecker RUN - rechecker_mm_i386.so v2.7 ini Chlvl ANY
[ 8] ReSemiclip RUN - resemiclip_mm_i386.so v2.3.9 ini Chlvl ANY
[ 9] ReSRDetector RUN - resrdetector_mm_i386.so v0.1.0 ini Chlvl ANY
[10] SafeNameAndChat RUN - SafeNameAndChat.so v1.2 Beta 3 ini ANY ANY
[11] Ultimate Unprecacher RUN - unprecacher_i386.so vBeta 2.5.3 ini Chlvl Chlvl
[12] WHBlocker RUN - whblocker_mm_i386.so v1.5.697 ini Chlvl ANY
[13] Fun RUN - fun_amxx_i386.so v1.9.0.5294 pl1 ANY ANY
[14] CStrike RUN - cstrike_amxx_i386.so v1.9.0.5294 pl1 ANY ANY
[15] CSX RUN - csx_amxx_i386.so v1.9.0.5294 pl1 ANY ANY
[16] Ham Sandwich RUN - hamsandwich_amxx_i386.so v1.9.0.5294 pl1 ANY ANY
[17] ReAimDetector RUN - reaimdetector_amxx_i386.so v0.2.2 pl1 ANY Never
[18] ReAPI RUN - reapi_amxx_i386.so v5.22.0.254-dev pl1 ANY Never
[19] FakeMeta RUN - fakemeta_amxx_i386.so v1.9.0.5294 pl1 ANY ANY
[20] Engine RUN - engine_amxx_i386.so v1.9.0.5294 pl1 ANY ANY
[21] Fix Custom iMaxClip RUN - fixmaxclip_amxx_i386.so v0.1 ini ANY ANY
21 plugins, 21 running
- Список плагинов
-
[ 1] Admin Base 1.9.0.5294 AMXX Dev Team admin.amxx running
[ 2] Admin Commands 1.9.0.5294 AMXX Dev Team admincmd.amxx running
[ 3] Menus Front-End 1.9.0.5294 AMXX Dev Team menufront.amxx running
[ 4] Commands Menu 1.9.0.5294 AMXX Dev Team cmdmenu.amxx running
[ 5] Players Menu 1.9.0.5294 AMXX Dev Team plmenu.amxx running
[ 6] Maps Menu 1.9.0.5294 AMXX Dev Team mapsmenu.amxx running
[ 7] Plugin Menu 1.9.0.5294 AMXX Dev Team pluginmenu.amxx running
[ 8] Admin Chat 1.9.0.5294 AMXX Dev Team adminchat.amxx running
[ 9] Anti Flood 1.9.0.5294 AMXX Dev Team antiflood.amxx running
[ 10] Scrolling Message 1.9.0.5294 AMXX Dev Team scrollmsg.amxx running
[ 11] Info. Messages 1.9.0.5294 AMXX Dev Team imessage.amxx running
[ 12] Admin Votes 1.9.0.5294 AMXX Dev Team adminvote.amxx running
[ 13] NextMap 1.9.0.5294 AMXX Dev Team nextmap.amxx running
[ 14] Nextmap Chooser 1.9.0.5294 AMXX Dev Team mapchooser.amxx running
[ 15] TimeLeft 1.9.0.5294 AMXX Dev Team timeleft.amxx running
[ 16] Pause Plugins 1.9.0.5294 AMXX Dev Team pausecfg.amxx running
[ 17] Stats Configuration 1.9.0.5294 AMXX Dev Team statscfg.amxx running
[ 18] Restrict Weapons 1.9.0.5294 AMXX Dev Team restmenu.amxx running
[ 19] StatsX 1.9.0.5294 AMXX Dev Team statsx.amxx running
[ 20] CS Misc. Stats 1.9.0.5294 AMXX Dev Team miscstats.amxx running
[ 21] ReAimDetector API 0.2.2 ReHLDS Team reaimdetector.a running
[ 22] Ping Control 1.1 mx?! ping_control.am running
[ 23] AWP Limiter 1.2.0 Beta Nordic Warrior awp_limiter.amx running
[ 24] AFK Control 1.0.3 Emma Jule reapi_afk.amxx running
[ 25] [ReAPI] Healthnade 0.0.8f DEV-CS.RU Commun reapi_healthnad running
[ 26] Grenade Trail 1.0 Jim grenade_trail.a running
[ 27] [ReAPI] No Team Flash 0.0.3 Vaqtincha no_team_flash.a running
[ 28] CSNadeDrops 0.14 Avalanche csnadedrops.amx running
[ 29] Explode Effects Remove 0.3 Vaqtincha explode_effects running
[ 30] ResetScore 1.0 MakapoH. ResetScore.amxx running
[ 31] Frags Counter 1.0 CHEL74 frags_counter.a running
[ 32] Knife Duel with Telepo 1.2 neygomon knife_duel.amxx running
[ 33] C4 Timer on roundtime 0.3.3a neygomon c4timer.amxx running
[ 34] Advanced Kill Assists 1.3c Xelson next21_kill_ass running
[ 35] Print VIP Connection 0.0.7 Albertio print_vip_conne running
[ 36] Mode 2x2 2.5re s1lent mode.amxx running
[ 37] Back Weapons 1.1 Cheap_Suit backweapons.amx running
[ 38] [RS] Auto-Demo Recorde 1.0.2 vk/felhalas RS_DemoRecord.a running
[ 39] Custom skies 0.0.1 Nordic Warrior CustomSkies.amx running
[ 40] Parachute Lite [ReAPI] 11.0 Leo_[BH] parachute_lite. running
[ 41] Info After Death 0.0.3 Albertio info_after_deat running
[ 42] DhudMsg 1.0 Вадим dhudmsg.amxx running
[ 43] Accuracy Fix 3.0 Numb accuracy_fix.am running
[ 44] GameName Changer 1.0.0 Nordic Warrior GameNameChanger running
[ 45] [ReAPI] Hint blocker 0.1.0 F@tn0M reapi_hint_bloc running
[ 46] Game Messages & Sounds 3.0.2 OciXCrom crx_gamemessage running
[ 47] Weapon Icon 1.2 hoboman313/Zenix weapon_icon.amx running
[ 48] Nice Killer 1.6 Got Milk? / HoHo nice_killer.amx running
[ 49] VIP System 2.2.0 Emma Jule vip.amxx running
[ 50] Revive Teammates: Core 1.1.0 ufame & Albertio rt_core.amxx running
[ 51] Revive Teammates: Plan 1.1.0 ufame & Albertio rt_planting.amx running
[ 52] Revive Teammates: Rest 1.1.0 ufame & Albertio rt_restrictions running
[ 53] Revive Teammates: Time 1.1.0 ufame & Albertio rt_timer.amxx running
[ 54] Revive Teammates: Effe 1.1.0 ufame & Albertio rt_effects.amxx running
[ 55] Revive Teammates: Soun 1.1.0 ufame & Albertio rt_sounds.amxx running
[ 56] Revive Teammates: Bonu 1.1.0 ufame & Albertio rt_bonus.amxx running
[ 57] [RE] Talisman 1.4 BiZaJe talisman.amxx running
[ 58] [RE] Talisman Health 1.0 BiZaJe talisman_health running
[ 59] [RE] Talisman Glow Pla 1.0 BiZaJe talisman_glow.a running
[ 60] [RE] Talisman HUD 1.0 BiZaJe talisman_hud.am running
[ 61] [RE] Talisman Sound 1.0 BiZaJe talisman_sound. running
61 plugins, 61 running
- Автор плагина
- (oxicrom) , ( Got Milk? / HoHo )
- Версия плагина
- (3.0.2) , (1.6)
- Исходный код
-
-----------------------------------------------------------------------CRX GAMEMESSAGES------------------------------------------------------------------------------------------------
#include <amxmodx>
#include <amxmisc>
#include <cromchat>
#if AMXX_VERSION_NUM < 183
#include <dhudmessage>
#endif
new const PLUGIN_VERSION[] = "3.0.2"
new const Float:POS_DEFAULT = 9.99
new const SYM_SUBSTRING[] = "%s"
new const SYM_NEWLINE[] = "%n"
new const REP_NEWLINE_HUD[] = "^n"
new const REP_NEWLINE_CENTER[] = "^r"
enum _:Cvars
{
CVAR_XPOS,
CVAR_YPOS,
CVAR_EFFECTS,
CVAR_FXTIME,
CVAR_HOLDTIME,
CVAR_FADEINTIME,
CVAR_FADEOUTTIME
}
enum _:Values
{
VALUE_EFFECTS,
Float:VALUE_FXTIME,
Float:VALUE_HOLDTIME,
Float:VALUE_FADEINTIME,
Float:VALUE_FADEOUTTIME
}
enum _:Messages
{
MSG_NEW[128],
Types:MSG_TYPE,
MSG_COLOR[3],
Float:MSG_POSITION[2]
}
enum _:Types
{
TYPE_CHAT,
TYPE_CENTER,
TYPE_HUD,
TYPE_DHUD
}
new g_eCvars[Cvars],
g_eValues[Values],
Array:g_aMessages,
Trie:g_tMessages,
Trie:g_tSounds,
g_iMessagesNum
public plugin_init()
{
register_plugin("Game Messages & Sounds Manager", PLUGIN_VERSION, "OciXCrom")
register_cvar("WinMessages", PLUGIN_VERSION, FCVAR_SERVER|FCVAR_SPONLY|FCVAR_UNLOGGED)
register_message(get_user_msgid("TextMsg"), "OnTextMsg")
register_message(get_user_msgid("SendAudio"), "OnSendAudio")
g_eCvars[CVAR_XPOS] = register_cvar("gmsm_hud_xpos", "-1.0")
g_eCvars[CVAR_YPOS] = register_cvar("gmsm_hud_ypos", "0.25")
g_eCvars[CVAR_EFFECTS] = register_cvar("gmsm_hud_effects", "0")
g_eCvars[CVAR_FXTIME] = register_cvar("gmsm_hud_fxtime", "2.0")
g_eCvars[CVAR_HOLDTIME] = register_cvar("gmsm_hud_holdtime", "5.0")
g_eCvars[CVAR_FADEINTIME] = register_cvar("gmsm_hud_fadeintime", "0.5")
g_eCvars[CVAR_FADEOUTTIME] = register_cvar("gmsm_hud_fadeouttime", "1.0")
}
public plugin_precache()
{
g_aMessages = ArrayCreate(Messages)
g_tMessages = TrieCreate()
g_tSounds = TrieCreate()
ReadFile()
}
public plugin_end()
{
ArrayDestroy(g_aMessages)
TrieDestroy(g_tMessages)
TrieDestroy(g_tSounds)
}
public plugin_cfg()
{
new Float:fPosition[2]
fPosition[0] = get_pcvar_float(g_eCvars[CVAR_XPOS])
fPosition[1] = get_pcvar_float(g_eCvars[CVAR_YPOS])
for(new eMessage[Messages], i, j; i < g_iMessagesNum; i++)
{
ArrayGetArray(g_aMessages, i, eMessage)
for(j = 0; j < 2; j++)
{
if(eMessage[MSG_POSITION][j] == POS_DEFAULT)
eMessage[MSG_POSITION][j] = _:fPosition[j]
}
ArraySetArray(g_aMessages, i, eMessage)
}
g_eValues[VALUE_EFFECTS] = get_pcvar_num(g_eCvars[CVAR_EFFECTS])
g_eValues[VALUE_FXTIME] = _:get_pcvar_float(g_eCvars[CVAR_FXTIME])
g_eValues[VALUE_HOLDTIME] = _:get_pcvar_float(g_eCvars[CVAR_HOLDTIME])
g_eValues[VALUE_FADEINTIME] = _:get_pcvar_float(g_eCvars[CVAR_FADEINTIME])
g_eValues[VALUE_FADEOUTTIME] = _:get_pcvar_float(g_eCvars[CVAR_FADEOUTTIME])
}
ReadFile()
{
new szFilename[256]
get_configsdir(szFilename, charsmax(szFilename))
add(szFilename, charsmax(szFilename), "/GameMessages.ini")
new iFilePointer = fopen(szFilename, "rt")
if(iFilePointer)
{
new eMessage[Messages], szColors[3][4], szCoordinates[2][6], szData[256], szSound[128], szMessage[64], szFullColor[12], szPosition[12], szType[4], i
while(!feof(iFilePointer))
{
fgets(iFilePointer, szData, charsmax(szData))
trim(szData)
switch(szData[0])
{
case EOS, '#', ';': continue
case '%':
{
parse(szData, szMessage, charsmax(szMessage), szSound, charsmax(szSound))
TrieSetString(g_tSounds, szMessage, szSound)
if(szSound[0])
precache_generic(szSound)
szSound[0] = EOS
}
default:
{
szFullColor[0] = EOS
szPosition[0] = EOS
eMessage[MSG_NEW][0] = EOS
for(i = 0; i < 3; i++)
{
szColors[i][0] = EOS
eMessage[MSG_COLOR][i] = 0
}
for(i = 0; i < 2; i++)
{
szCoordinates[i][0] = EOS
eMessage[MSG_POSITION][i] = _:POS_DEFAULT
}
parse(szData, szMessage, charsmax(szMessage), eMessage[MSG_NEW], charsmax(eMessage[MSG_NEW]), szType, charsmax(szType), szFullColor, charsmax(szFullColor), szPosition, charsmax(szPosition))
format(szMessage, charsmax(szMessage), "#%s", szMessage)
TrieSetCell(g_tMessages, szMessage, g_iMessagesNum++)
switch(szType[2])
{
case 'A', 'a': eMessage[MSG_TYPE] = _:TYPE_CHAT
case 'N', 'n': eMessage[MSG_TYPE] = _:TYPE_CENTER
case 'D', 'd': eMessage[MSG_TYPE] = _:TYPE_HUD
case 'U', 'u': eMessage[MSG_TYPE] = _:TYPE_DHUD
}
if(_:eMessage[MSG_TYPE] == TYPE_HUD || _:eMessage[MSG_TYPE] == TYPE_DHUD)
{
if(szFullColor[0])
{
parse(szFullColor, szColors[0], charsmax(szColors[]), szColors[1], charsmax(szColors[]), szColors[2], charsmax(szColors[]))
for(i = 0; i < 3; i++)
eMessage[MSG_COLOR][i] = str_to_num(szColors[i])
}
if(szPosition[0])
{
parse(szPosition, szCoordinates[0], charsmax(szCoordinates[]), szCoordinates[1], charsmax(szCoordinates[]))
for(i = 0; i < 2; i++)
eMessage[MSG_POSITION][i] = _:str_to_float(szCoordinates[i])
}
}
ArrayPushArray(g_aMessages, eMessage)
}
}
}
fclose(iFilePointer)
}
}
public OnTextMsg(iMessage, iDest, id)
{
static szMessage[64]
get_msg_arg_string(2, szMessage, charsmax(szMessage))
if(TrieKeyExists(g_tMessages, szMessage))
{
new eMessage[Messages], iMessage
TrieGetCell(g_tMessages, szMessage, iMessage)
ArrayGetArray(g_aMessages, iMessage, eMessage)
new iArgs = get_msg_args()
if(iArgs > 2)
{
for(new szSubString[32], i = 2; i < iArgs; i++)
{
get_msg_arg_string(i + 1, szSubString, charsmax(szSubString))
replace(eMessage[MSG_NEW], charsmax(eMessage[MSG_NEW]), SYM_SUBSTRING, szSubString)
}
}
replace_all(eMessage[MSG_NEW], charsmax(eMessage[MSG_NEW]), SYM_SUBSTRING, "")
switch(eMessage[MSG_TYPE])
{
case TYPE_CHAT: CC_SendMessage(id, eMessage[MSG_NEW])
case TYPE_CENTER:
{
replace_all(eMessage[MSG_NEW], charsmax(eMessage[MSG_NEW]), SYM_NEWLINE, REP_NEWLINE_CENTER)
client_print(id, print_center, eMessage[MSG_NEW])
}
case TYPE_HUD, TYPE_DHUD:
{
replace_all(eMessage[MSG_NEW], charsmax(eMessage[MSG_NEW]), SYM_NEWLINE, REP_NEWLINE_HUD)
switch(eMessage[MSG_TYPE])
{
case TYPE_HUD:
{
set_hudmessage(handle_color(eMessage[MSG_COLOR][0]), handle_color(eMessage[MSG_COLOR][1]), handle_color(eMessage[MSG_COLOR][2]),\
eMessage[MSG_POSITION][0], eMessage[MSG_POSITION][1], g_eValues[VALUE_EFFECTS], g_eValues[VALUE_FXTIME], g_eValues[VALUE_HOLDTIME],\
g_eValues[VALUE_FADEINTIME], g_eValues[VALUE_FADEOUTTIME])
show_hudmessage(id, eMessage[MSG_NEW])
}
case TYPE_DHUD:
{
set_dhudmessage(handle_color(eMessage[MSG_COLOR][0]), handle_color(eMessage[MSG_COLOR][1]), handle_color(eMessage[MSG_COLOR][2]),\
eMessage[MSG_POSITION][0], eMessage[MSG_POSITION][1], g_eValues[VALUE_EFFECTS], g_eValues[VALUE_FXTIME], g_eValues[VALUE_HOLDTIME],\
g_eValues[VALUE_FADEINTIME], g_eValues[VALUE_FADEOUTTIME])
show_dhudmessage(id, eMessage[MSG_NEW])
}
}
}
}
return PLUGIN_HANDLED
}
return PLUGIN_CONTINUE
}
public OnSendAudio(MsgId, MsgDest, MsgEntity)
{
static szMessage[32]
get_msg_arg_string(2, szMessage, charsmax(szMessage))
if(TrieKeyExists(g_tSounds, szMessage))
{
new szNewMessage[128]
TrieGetString(g_tSounds, szMessage, szNewMessage, charsmax(szNewMessage))
if(szNewMessage[0])
client_cmd(0, "spk %s", szNewMessage)
return PLUGIN_HANDLED
}
return PLUGIN_CONTINUE
}
handle_color(iColor)
return iColor == -1 ? random(256) : iColor
--------------------------------------------------------------------------------NICE KILLER-------------------------------------------------------------------------------------------------
/**
* Modified by Safety1st
* 8/17/2014
*
* Home post:
* http://c-s.net.ua/forum/index.php?act=findpost&pid=610190
*
* Changes are:
* - a lot corrections to get nice plugin
* - multilingual support
* - added support for Russian words endings
*
* Notes:
* - each headshot is counted even if it didn't lead to death
* - self damage/kills, C4 damage and other world damage are ignored
*
* Credits:
* - Subb98 for some info about Ham_TakeDamage forward
*/
#include <amxmodx>
#include <hamsandwich>
#include <fakemeta>
/*---------------EDIT ME------------------*/
//#define IGNORE_TEAM_DAMAGE // uncomment this on servers where friendly fire is ON
#define MAX_PLAYERS 32
/*----------------------------------------*/
enum _:score {
frags,
Float:dmg,
hs
}
new niceP[MAX_PLAYERS + 1][score]
new hudsync
new maxplayers
enum _:Types { word_frag, word_hs }
#define m_iTeam 114
#define fm_cs_get_user_team_index(%1) get_pdata_int( %1, m_iTeam )
public plugin_init() {
register_plugin( "Nice Killer", "1.6", "Got Milk? / HoHoL / Safety1st" )
register_dictionary( "nice_killer.txt" )
RegisterHam( Ham_TakeDamage, "player", "hook_TakeDamage_Post", .Post = 1 )
register_event( "DeathMsg", "Event_DeathMessage", "a", "1!0" ) // killed by player ('1')
register_logevent( "event_round_end", 2, "1=Round_End" )
register_event( "HLTV", "event_round_start", "a", "1=0", "2=0" )
hudsync = CreateHudSyncObj()
maxplayers = get_maxplayers()
}
public event_round_end()
// delay is needed to count last round kill
set_task( 1.0, "GetTheBest" )
public GetTheBest() {
new iPlayers[32], iPlayersNum, player
new pfrags, Float:pdamage, tmpf, Float:tmpd, tmpid
get_players( iPlayers, iPlayersNum, "h" ) // except HLTV
for( new i; i < iPlayersNum; i++ ) {
player = iPlayers[i]
pfrags = niceP[player][frags]
if( pfrags < tmpf )
continue
pdamage = niceP[player][dmg]
if ( pfrags > tmpf || pdamage > tmpd ) {
tmpid = player
tmpf = pfrags
tmpd = pdamage
}
}
if( tmpf ) {
// there is a winner
static name[32], wordfrag[20], wordhs[40], msg[192]
get_user_name( tmpid, name, charsmax(name) )
set_hudmessage( 130, 130, 130, -1.0, 0.27, 0, 5.0 ) // 5.0 is max possible holdtime
for( new i = 1; i <= maxplayers; i++ ) {
if( !is_user_connected(i) )
continue
CreateWord( i, word_frag, tmpf, wordfrag, charsmax(wordfrag) )
CreateWord( i, word_hs, niceP[tmpid][hs], wordhs, charsmax(wordhs) )
formatex( msg, charsmax(msg), "%L", i, "NC_MESSAGE",
name, wordfrag, wordhs, floatround(tmpd) /* it's better to round float than ignore decimal part */ )
ShowSyncHudMsg(i, hudsync, msg)
}
}
}
CreateWord( id, type, value, word[], len = 0 ) {
enum _:Count { alone, afew, many }
static szWord[Types][Count][] = {
{ "NC_WORD_KILL_1", "NC_WORD_KILL_2_4", "NC_WORD_KILL_S" },
{ "NC_WORD_HS_1", "NC_WORD_HS_2_4", "NC_WORD_HS_S" }
}
new iLen = formatex( word, len, "%d ", value )
switch( value ) {
case 1, 21, 31, 41, 51, 61, 71, 81, 91 :
formatex( word[iLen], len - iLen, "%L", id, szWord[type][alone] )
case 2..4, 22..24, 32..34, 42..44, 52..54, 62..64, 72..74, 82..84, 92..94 :
formatex( word[iLen], len - iLen, "%L", id, szWord[type][afew] )
default :
formatex( word[iLen], len - iLen, "%L", id, szWord[type][many] )
}
}
public hook_TakeDamage_Post( victim, inflictor, attacker, Float:damage, damagebits ) {
#if !defined DMG_GRENADE
// for compatibility with old AMXX
#define DMG_GRENADE (1<<24) // hit by HE grenade
#endif
if( !attacker || attacker > maxplayers || victim == attacker /* ignore self-damage */ )
return HAM_IGNORED
// forward is fired even if mp_friendlyfire = 0
if( fm_cs_get_user_team_index(victim) == fm_cs_get_user_team_index(attacker) )
// ignore team damage
return HAM_IGNORED
if( inflictor == attacker || damagebits & DMG_GRENADE ) {
niceP[attacker][dmg] += damage
#define m_LastHitGroup 75
if( get_pdata_int( victim, m_LastHitGroup ) == HIT_HEAD )
niceP[attacker][hs]++
}
return HAM_IGNORED
}
public Event_DeathMessage() {
#define KillerID 1
#define VictimID 2
static iKiller, iVictim
iKiller = read_data(KillerID)
iVictim = read_data(VictimID)
if( iKiller != iVictim /* except suicides; BTW death due to amx_slay is a suicide too */ ) {
#if defined IGNORE_TEAM_DAMAGE
if( fm_cs_get_user_team_index(iKiller) == fm_cs_get_user_team_index(iVictim) )
// ignore TKs
return
#endif
niceP[iKiller][frags]++
}
}
public event_round_start() {
for( new i = 1; i <= maxplayers; i++ )
arrayset( niceP[i], 0, score )
}
public client_disconnect(id)
arrayset( niceP[id], 0, score )
в двух плагинах вывод сообщений в DHUD но разным шрифтом
В этой теме было размещено решение! Перейти к решению.