Raised This Month: $ Target: $400
 0% 

Hud causing overflow


  
 
 
Thread Tools Display Modes
Prev Previous Post   Next Post Next
Author Message
Jhob94
AMX Mod X Donor
Join Date: Jul 2012
Old 07-30-2014 , 14:34   Hud causing overflow
Reply With Quote #1

Hum, i guess the code is fine. I don't code so much as i did before but i think i didn't became so noob
Or i am just great by making stupid bugged plugin, wich problably i am

PHP Code:
#include <amxmodx>
#include <amxmisc>
#include <sockets>

#define PLUGIN "Alternative Redirect"
#define VERSION "0.0.9"

#define AREDIRECT_PREFIX "AREDIRECT"

new show_playershud_timehud_redhud_greenhud_blue
new configsdir[200], serversfile[200]
new 
Data[255], charnum
new Left[25], Right[50]
new 
g_iServersg_iMaxPlayers
new IP[22]

public 
plugin_init()
{
    
register_plugin(PLUGINVERSION"Jhob94")
    
    
get_configsdir(configsdircharsmax(configsdir))
    
format(serversfilecharsmax(serversfile), "%s/servers.cfg"configsdir)
    
    if(!
file_exists(serversfile))
    {
        new 
error[100]
        
formatex(errorcharsmax(error), "[%s] Server Can't Load The File: %s!"AREDIRECT_PREFIXserversfile)
        
set_fail_state(error)
        return
    }
    
    
show_players register_cvar("ar_show_players""0"// Turn 1 to display amount of players and maxplayers in servers menu
    
    
hud_time register_cvar("ar_hud_delay""60.0"// Time to show again the HUD message of servers
    
set_task(get_pcvar_float(hud_time), "Servers_Hud"___"b")
        
    
/* RGB HUD COLORS */
    
hud_red register_cvar("ar_hud_red""0")
    
hud_green register_cvar("ar_hud_green""0")
    
hud_blue register_cvar("ar_hud_blue""250")
    
    
get_user_ip(0IP21false)
    
    
g_iServers file_size(serversfile1)
    
g_iMaxPlayers get_maxplayers()
}

public 
Servers_Hud()
{
    new 
hudservers[500], playersmaxplayers
    formatex
(hudserverscharsmax(hudservers), "%s^n"PLUGIN)
    
    for(new 
ig_iServersi++)
    {
        
read_file(serversfileiDatacharsmax(Data), charnum)
        if(
strlen(Data) < || Data[0] == ';' || equali(Data"//"2))
            continue
        
        
strbreak(DataLeftcharsmax(Left), Rightcharsmax(Right))
        
        if(
get_pcvar_num(show_players) && containi(LeftIP) == -1// I guess containi is fine. I cant remove quotes yet and i dont want to add unnecessary lines
            
get_data(Leftplayersmaxplayers)
            
        
remove_quotes(Right)
        
        if(
equali(LeftIP))
            
formatex(Rightcharsmax(Right), "%s - (%d/%d)"Rightget_playersnum(1), g_iMaxPlayers)
        
        else
            
formatex(Rightcharsmax(Right), "%s - (%d/%d)"Rightplayersmaxplayers)
        
        
formatex(hudserverscharsmax(hudservers), "%s%s^n"hudserversRight)
    }
    
    
set_hudmessage(get_pcvar_num(hud_red), get_pcvar_num(hud_green), get_pcvar_num(hud_blue), -1.00.106.012.0)
    
show_hudmessage(0hudservers)
}

stock get_data(host[], &players, &maxplayers)
{
    new 
ip[32], port[10], err
    copy
(ipcharsmax(ip), host)
    
copy(portcharsmax(port), "27015")
    if(
containi(host":") != -1)
        
strtok(hostipcharsmax(ip), portcharsmax(port), ':')
        
    
players maxplayers = -1
    
new sock socket_open(ipstr_to_num(port), SOCKET_UDPerr)
    if(
sock || err)
    {
        
AR_Log("[SOCKET] Socket error")
        
socket_close(sock)
        return
    }
    
    new 
buffer[1500]
    
copy(buffercharsmax(buffer), "^xFF^xFF^xFF^xFF^x54Source Engine Query")
    
socket_send2(sockbufferstrlen(buffer) + 1)
    
    new 
socket_recv(sockbuffersizeof(buffer))
    
socket_close(sock)
    if(
2)
    {
        
AR_Log("[SOCKET] No data")
        return
    }
    
    new 
ij5
    
while(c)
    {
        if(
buffer[c+i++] == '^0'
            
j++
            
        if(
== c)
        {
            
players buffer[j+i]
            
maxplayers buffer[++j+i]
            
0
        
}
    }
}

AR_Log(const message_fmt[], any:...)
{
    static 
message[256]
    
vformat(messagesizeof(message) - 1message_fmt2)
    
    static 
filename[96]
    static 
dir[64]
    if(!
dir[0])
    {
        
get_basedir(dirsizeof(dir) - 1)
        
add(dirsizeof(dir) - 1"/logs")
    }
    
    
format_time(filenamesizeof(filename) - 1"%m-%d-%Y")
    
format(filenamesizeof(filename) - 1"%s/%s_%s.log"dirAREDIRECT_PREFIXfilename)
    
    
log_to_file(filename"%s"message)

Note: this is just one part of the plugin, i dont want to show all that is coming on next version
__________________
Jhob94 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 13:09.


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