AlliedModders

AlliedModders (https://forums.alliedmods.net/index.php)
-   Scripting Help (https://forums.alliedmods.net/forumdisplay.php?f=11)
-   -   Admin HUD chat with set_task (https://forums.alliedmods.net/showthread.php?t=252194)

Hackerpcs 11-28-2014 01:23

Admin HUD chat with set_task
 
Hi. I'm trying to modify the 1.8.2 adminchat.sma to have the hud admin announcements not disappear in round end, sv_restart 1, etc. I've done it but the message is being slow to appear. My code (only included the modified parts, rest can be checked on original .sma):
PHP Code:

#include <dhudmessage>

enum _:TaskData
{
    
messageEnum[128],
    
red,
    
green,
    
blue,
    
Float:x,
    
Float:y
}

new 
taskCount[367];

new 
hudAdminSeconds;

//plugin_init
hudAdminSeconds=register_cvar("amx_hud_seconds","6");

//cmdSayChat(id)
    
new Float:verpos g_Pos[i][1] + float(g_msgChannel) / 35.0
    
    get_user_authid
(idauthid31)
    
get_user_name(idname31)
    
userid get_user_userid(id)

    new 
tdDataTaskData ];
    
tdData[red]=g_Values[a][0];
    
tdData[green]=g_Values[a][1];
    
tdData[blue]=g_Values[a][2];
    
tdData[x]=_:g_Pos[i][0];
    
tdData[y]=_:verpos;
    
    new 
randTaskID id random_num(33333);
    
    switch ( 
get_pcvar_num(amx_show_activity) )
    {
        case 
2:
        {
            
formatex(tdData[messageEnum], 127"%s :  %s"namemessage[n]);
            
set_task(0.9"DhudTask"randTaskIDtdDatasizeoftdData ), "a"get_pcvar_num(hudAdminSeconds))
            
client_print(0print_notify"%s :  %s"namemessage[n])
        }
        default:
        {
            
formatex(tdData[messageEnum], 127"%s"message[n]);
            
set_task(0.9"DhudTask"randTaskIDtdDatasizeoftdData ), "a"get_pcvar_num(hudAdminSeconds))
            
client_print(0print_notify"%s"message[n])
        }
    }


public 
DhudTasktdIncomingTaskData ] , TaskID )
{
    if(
taskCount[TaskID]==0)
    {
        
set_dhudmessage(tdIncoming[red], tdIncoming[green], tdIncoming[blue], tdIncoming[x], tdIncoming[y], 01.01.00.50.0)
        
taskCount[TaskID] = taskCount[TaskID] + 1;
        
    }
    else if (
taskCount[TaskID]==get_pcvar_num(hudAdminSeconds)-1)
    {
        
set_dhudmessage(tdIncoming[red], tdIncoming[green], tdIncoming[blue], tdIncoming[x], tdIncoming[y], 01.01.00.00.15)
        
taskCount[TaskID] = 0;
    }
    else
    {
        
set_dhudmessage(tdIncoming[red], tdIncoming[green], tdIncoming[blue], tdIncoming[x], tdIncoming[y], 01.01.00.00.0)
        
taskCount[TaskID] = taskCount[TaskID] + 1;
    }
    
show_dhudmessage(0"%s"tdIncoming[messageEnum])


Where is the part that slows it down?

Hackerpcs 11-29-2014 12:35

Re: Admin HUD chat with set_task
 
The problem is that task in the first time runs after the specified time interval, is it possible to make it run instantly only on first time?


All times are GMT -4. The time now is 17:44.

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