I also tried using DHUD but it's worse, when I remove the plugin that has 2 constant HUDs everything works, but I don't know why that plugin is interfering with this one when each of the HUDs have their own channel. Here's the code for the plugin that has 2 constant HUDs
PHP Code:
#include < amxmodx >
#include < amxmisc >
#include < hamsandwich >
#include < cs_battleroyale_faketeams >
#include < cs_battleroyale_roundmanager >
new g_iSyncHudObject;
new g_iSyncHudObject2;
new g_iMaxPlayers;
new g_iPlayerKills[ 33 ];
new const g_szFileIni[ ] = "GameSettings.ini"
enum ( += 200 )
{
TASK_1 = 100,
TASK_2,
}
enum _:DataInfo
{
Hud_Red,
Hud_Green,
Hud_Blue,
Float:Hud_X,
Float:Hud_Y,
Float:Hud_Time,
Hud_Red_F,
Hud_Green_F,
Hud_Blue_F,
Float:Hud_X_F,
Float:Hud_Y_F,
Float:Hud_Time_F,
}
new g_iDataSettings[ DataInfo ];
public plugin_init( )
{
register_plugin( "CS Battle Royale HUDs", "1.0", "DoNii" );
register_event( "HLTV", "OnNewRound", "a", "1=0", "2=0" ) ;
register_event( "TextMsg", "OnGameCommencing", "a", "2=#Game_Commencing", "2=#Game_will_restart_in" ) ;
RegisterHam( Ham_Spawn, "player", "fw_HamSpawnPost", 1 );
RegisterHam( Ham_Killed, "player", "fw_HamKilledPost", 1 );
ReadFile( );
g_iSyncHudObject = CreateHudSyncObj( );
g_iSyncHudObject2 = CreateHudSyncObj( );
set_task( g_iDataSettings[ Hud_Time ], "OnTaskHud", _, _, _, "b" );
g_iMaxPlayers = get_maxplayers( );
}
public client_connect( id )
g_iPlayerKills[ id ] = 0;
public fw_HamSpawnPost( id )
{
g_iPlayerKills[ id ] = 0;
ClearSyncHud( id, g_iSyncHudObject );
ClearSyncHud( id, g_iSyncHudObject2 );
if( 1 <= GetPlayerPerTeam( ) <= g_iMaxPlayers )
{
new szPlayers[ 32 ], iNum, iTempID, szMessage[ 256 ], szName[ 32 ];
get_players( szPlayers, iNum );
new iLen = format( szMessage, charsmax( szMessage ), "Your Team:" );
for( new i; i < iNum; i++ )
{
iTempID = szPlayers[ i ];
if( GetPlayerTeam( iTempID ) == GetPlayerTeam( id ) )
{
get_user_name( iTempID, szName, charsmax( szName ) );
iLen += format( szMessage[ iLen ], 255 - iLen, "^n%s", szName );
}
}
set_task( g_iDataSettings[ Hud_Time_F ], "OnTaskHudFriend", id+TASK_2, szMessage, sizeof szMessage, "b" );
}
}
public OnGameCommencing( )
{
new szPlayers[ 32 ], iNum, iTempID;
get_players( szPlayers, iNum );
for( new i; i < iNum; i++ )
{
iTempID = szPlayers[ i ];
g_iPlayerKills[ iTempID ] = 0;
}
}
public OnNewRound( )
{
new szPlayers[ 32 ], iNum, iTempID;
get_players( szPlayers, iNum );
for( new i; i < iNum; i++ )
{
iTempID = szPlayers[ i ];
g_iPlayerKills[ iTempID ] = 0;
}
}
public fw_HamKilledPost( iVictim, iAttacker, iShouldGib )
{
if( ! is_user_connected( iVictim ) || ! is_user_connected( iAttacker ) )
return HAM_IGNORED;
if( iVictim == iAttacker )
return HAM_IGNORED;
g_iPlayerKills[ iAttacker ]++;
return HAM_IGNORED;
}
public OnTaskHudFriend( szMessage[ ], id )
{
id -= TASK_2
set_hudmessage( g_iDataSettings[ Hud_Red_F ], g_iDataSettings[ Hud_Green_F ], g_iDataSettings[ Hud_Blue_F ], g_iDataSettings[ Hud_X_F ], g_iDataSettings[ Hud_Y_F ], 0, 0.0, g_iDataSettings[ Hud_Time_F ] + 0.1, _, _, -1 );
ShowSyncHudMsg( id, g_iSyncHudObject2, "%s", szMessage );
}
public OnTaskHud( )
{
new szPlayers[ 32 ], iNum, iTempID;
get_players( szPlayers, iNum );
for( new i; i < iNum; i++ )
{
iTempID = szPlayers[ i ];
set_hudmessage( g_iDataSettings[ Hud_Red ], g_iDataSettings[ Hud_Green ], g_iDataSettings[ Hud_Blue ], g_iDataSettings[ Hud_X ], g_iDataSettings[ Hud_Y ], 0, 0.0, g_iDataSettings[ Hud_Time ] + 0.1, _, _, -1 );
ShowSyncHudMsg( iTempID, g_iSyncHudObject, "| ** Your Team: %d ** |^n| ** Remaining Teams: %d ** |^n| ** Alive Players: %d ** |^n| ** Your Kills: %d ** |", GetPlayerTeam( iTempID ), GetRemainingTeams( ), GetAlivePlayers( ), g_iPlayerKills[ iTempID ] );
}
}
ReadFile( )
{
new szConfigsName[ 256 ], szFilename[ 512 ];
get_configsdir( szConfigsName, charsmax( szConfigsName ) );
formatex(szFilename, charsmax(szFilename), "%s/%s", szConfigsName, g_szFileIni );
new iFile = fopen( szFilename, "r" );
if( iFile )
{
new szData[ 128 ], szValue[ 64 ], szKey[ 32 ];
while( ! feof( iFile ) )
{
fgets( iFile, szData, charsmax( szData ) );
trim( szData );
switch( szData[ 0 ] )
{
case EOS, '#', ';':
continue;
default:
{
strtok( szData, szKey, charsmax( szKey ), szValue, charsmax( szValue ), '=' );
trim( szKey );
trim( szValue );
if( equal( szKey, "HUD_RED" ) )
g_iDataSettings[ Hud_Red ] = str_to_num( szValue );
else if( equal( szKey, "HUD_GREEN" ) )
g_iDataSettings[ Hud_Green ] = str_to_num( szValue );
else if( equal( szKey, "HUD_BLUE" ) )
g_iDataSettings[ Hud_Blue ] = str_to_num( szValue );
else if( equal( szKey, "HUD_X" ) )
g_iDataSettings[ Hud_X ] = _:str_to_float( szValue );
else if( equal( szKey, "HUD_Y" ) )
g_iDataSettings[ Hud_Y ] = _:str_to_float( szValue );
else if( equal( szKey, "HUD_TIME" ) )
g_iDataSettings[ Hud_Time ] = _:str_to_float( szValue );
else if( equal( szKey, "HUD_RED_FRIEND" ) )
g_iDataSettings[ Hud_Red_F ] = str_to_num( szValue );
else if( equal( szKey, "HUD_GREEN_FRIEND" ) )
g_iDataSettings[ Hud_Green_F ] = str_to_num( szValue );
else if( equal( szKey, "HUD_BLUE_FRIEND" ) )
g_iDataSettings[ Hud_Blue_F ] = str_to_num( szValue );
else if( equal( szKey, "HUD_X_FRIEND" ) )
g_iDataSettings[ Hud_X_F ] = _:str_to_float( szValue );
else if( equal( szKey, "HUD_Y_FRIEND" ) )
g_iDataSettings[ Hud_Y_F ] = _:str_to_float( szValue );
else if( equal( szKey, "HUD_TIME_FRIEND" ) )
g_iDataSettings[ Hud_Time_F ] = _:str_to_float( szValue );
}
}
}
}
fclose( iFile );
}
GetAlivePlayers( )
{
new szPlayers[ 32 ], iNum;
get_players( szPlayers, iNum, "a" );
return iNum;
}