Raised This Month: $ Target: $400
 0% 

Solved game_text l4d2 help


  
 
 
Thread Tools Display Modes
Prev Previous Post   Next Post Next
Aceleracion
Member
Join Date: Jul 2017
Location: Ecuador
Old 11-28-2017 , 00:31   Re: game_text l4d2 help
Reply With Quote #22

Quote:
Originally Posted by Emilio3 View Post
i dont know to do for my speaker plugin read the vscripts
if you give me small help im gratefull

spanish: aceleracion no se como hacerlo pero me printa en el centro del server y me gustaria ke me printara a la derecha abajo. ayudame si tu sabes como conseguirlo, y gracias amigo por resolver el statico logo

PHP Code:
#include <sourcemod>

forward OnClientSpeaking(client);

public 
Extension:__ext_voice 
{
    
name "VoiceHook",
    
file "VoiceHook.ext",
    
autoload 1,
    
required 1,
}

bool ClientSpeaking[MAXPLAYERS+1];
int iCount;
char SpeakingPlayers[128];

public 
void OnPluginStart()
{
    
CreateTimer(0.7UpdateSpeaking_TIMER_REPEAT);
}

public 
OnClientSpeaking(client)
{
    
ClientSpeaking[client] = true;
}

public 
Action UpdateSpeaking(Handle timer)
{
    
iCount 0;
    
SpeakingPlayers[0] = '\0';
    for (
int i 1<= MaxClientsi++)
    {
        if (
ClientSpeaking[i])
        {
            if (!
IsClientInGame(i)) continue;
            
            
Format(SpeakingPlayerssizeof(SpeakingPlayers), "%s\n%N"SpeakingPlayersi);
            
iCount++;
        }
        
ClientSpeaking[i] = false;
    }
    if (
iCount 0)
    {
        for (
int i 1<= MaxClientsi++)
        {
            
PrintCenterText(i"Players Speaking:%s"SpeakingPlayers);
        }
    }


I had the idea of doing it this way, but I have not tried it so I do not know if it will work. It is already warned.

VScript by default: "speakerhud.nut"
Code:
HUDTable <-
{
    Fields = 
    {
        speak = 
        {
            slot = HUD_MID_BOX,
            dataval = "",
            flags = HUD_FLAG_ALIGN_LEFT| HUD_FLAG_NOBG,
            name = "speak" 
        }
    }
}

HUDSetLayout(HUDTable)
HUDPlace(HUD_MID_BOX, 0.8 , 0.5 , 0.2 , 0.1)
//g_RoundState
The plugin should create it by default, but since I have not tried xdd.

PHP Code:
#include <sourcemod>

forward OnClientSpeaking(client);

public 
Extension:__ext_voice 
{
    
name "VoiceHook",
    
file "VoiceHook.ext",
    
autoload 1,
    
required 1,
}

ConVar cvar_speakerlist_type;
int iSpeakListType;

bool ClientSpeaking[MAXPLAYERS+1];
int iCount;
char SpeakingPlayers[128];

char sPath_VscriptHUD[PLATFORM_MAX_PATH];

public 
void OnPluginStart()
{
    
cvar_speakerlist_type CreateConVar("l4d2_speakerlist_type",  "0""Speaker list type (0: Center text, 1: Hud Layout) [DEFAULT: 0]"PLUGIN_FCVARtrue0.0true1.0);

    
RegAdminCmd("sm_runvscript"Command_RunVscriptADMFLAG_ROOT);

    
HookConVarChange(cvar_speakerlist_typeCvar_Changed);

    
char sPath[PLATFORM_MAX_PATH];
    
strcopy(sPathsizeof(sPath), "scripts/vscripts");
    if(
DirExists(sPath) == false)
    {
        
CreateDirectory(sPath511);
    }

    
Format(sPath_VscriptHUDsizeof(sPath_VscriptHUD), "scripts/vscripts/speakerhud.nut")
    if(
FileExists(sPath_VscriptHUD) == false || FileSize(sPath_VscriptHUD) == 0)
    {
        
SaveVscriptHUD();
    }

    
CreateTimer(0.7UpdateSpeaking_TIMER_REPEAT);
}

public 
OnClientSpeaking(client)
{
    
ClientSpeaking[client] = true;
}

public 
void OnConfigsExecuted()
{
    
GetCvars();
}

public 
void Cvar_Changed(ConVar convar, const char[] oldValue, const char[] newValue)
{
    
GetCvars();
}

void GetCvars()
{
    
iSpeakListType GetConVarInt(cvar_speakerlist_type);
}

public 
Action Command_RunVscript(int clientint args)
{
    if(
args 1)
    {
        return 
Plugin_Handled
    
}

    
char vscriptFile[40];
    
GetCmdArg(1vscriptFilesizeof(vscriptFile));

    
int entity CreateEntityByName("logic_script");
    if( 
entity != -)
    {
        
DispatchKeyValue(entity"vscripts"vscriptFile);
        
DispatchSpawn(entity);
        
SetVariantString("OnUser1 !self:RunScriptCode::0:-1");
        
AcceptEntityInput(entity"AddOutput");
        
SetVariantString("OnUser1 !self:Kill::1:-1");
        
AcceptEntityInput(entity"AddOutput");
        
AcceptEntityInput(entity"FireUser1");
    }
    return 
Plugin_Handled;
}

public 
Action UpdateSpeaking(Handle timer)
{
    
iCount 0;
    
SpeakingPlayers[0] = '\0';
    for (
int i 1<= MaxClientsi++)
    {
        if (
ClientSpeaking[i])
        {
            if (!
IsClientInGame(i)) continue;
            
            if(
iSpeakListType)
            {
                
Format(SpeakingPlayerssizeof(SpeakingPlayers), "%s\n> %N"SpeakingPlayersi);
            }
            else
            {
                
Format(SpeakingPlayerssizeof(SpeakingPlayers), "%s\n%N"SpeakingPlayersi);
            }
            
iCount++;
        }
        
ClientSpeaking[i] = false;
    }
    if (
iCount 0)
    {
        if(
iSpeakListType)
        {
            
UpdateDatavalHUD("Players Speaking:%s"SpeakingPlayers);
            
ServerCommand("sm_runvscript speakerhud");
            
//ServerCommand("script_execute speakerhud.nut"); //Try this if the previous command does not work
        
}
        else
        {
            for (
int i 1<= MaxClientsi++)
            {
                
PrintCenterText(i"Players Speaking:%s"SpeakingPlayers);
            }
        }
    }
    else
    {
        if(
iSpeakListType)
        {
            
ResetHUD();
            
ServerCommand("sm_runvscript speakerhud");
            
//ServerCommand("script_execute speakerhud.nut"); //Try this if the previous command does not work
        
}
    }
}

void UpdateDatavalHUD(const char[] formatany ...)
{
    
char buffer[200];
    
VFormat(buffersizeof(buffer), format2);

    
SaveVscriptHUD(buffer);
}

void ResetHUD()
{
    
SaveVscriptHUD();
}

void SaveVscriptHUD(const char[] dataval "")
{
    
Handle hFile OpenFile(sPath_VscriptHUD"w");
    if(
hFile)
    {
        
WriteFileLine(hFile"HUDTable <-");
        
WriteFileLine(hFile"{");
        
WriteFileLine(hFile"    Fields = ");
        
WriteFileLine(hFile"    {");
        
WriteFileLine(hFile"        speak = ");
        
WriteFileLine(hFile"        {");
        
WriteFileLine(hFile"            slot = HUD_MID_BOX,");
        if(!
StrEqual(dataval""))
        {
            
WriteFileLine(hFile"            dataval = \"%s\","dataval);
        }
        
WriteFileLine(hFile"            flags = HUD_FLAG_ALIGN_LEFT| HUD_FLAG_NOBG,");
        
WriteFileLine(hFile"            name = \"speak\"");
        
WriteFileLine(hFile"        }");
        
WriteFileLine(hFile"    }");
        
WriteFileLine(hFile"}");
        
WriteFileLine(hFile"HUDSetLayout(HUDTable)");
        
WriteFileLine(hFile"HUDPlace(HUD_MID_BOX, 0.8 , 0.5 , 0.2 , 0.1)");
        
//WriteFileLine(hFile, "g_RoundState");
        
CloseHandle(hFile);
    }

I upload the beta plugin that I have made.
Attached Files
File Type: sp Get Plugin or Get Source (speakerlisthud.sp - 211 views - 5.1 KB)
__________________
by Aceleración
To succeed in your goals, use your true potential
Aceleracion is offline
 



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 23:41.


Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Theme made by Freecode