Rcon / HLTV Command stock

For scripting examples for learning how to use AMXX.
User avatar
Archive-Poster
Posts: 1367
Gender:
United States of America

Rcon / HLTV Command stock

Post by Archive-Poster »

Hi, i find in my files, a stock to send any command to HLTV Server or another server, i think its a rcon based protocol.

I not remember the author, but if it someone its the author, reply this

Ps.
If someone have a better method, reply this topic.

EDIT: Its required to use the stock Socket module, have fun

Code: Select all

stock Rcon_Command(const szHost[],iPort,const szPass[],const szCommand[])
{
    new iError;
    new iSocket = socket_open(szHost,iPort,SOCKET_UDP,iError);
    
    switch(iError)
    {
        case 1:
        {
            socket_close(iSocket);
            server_print("* Error on creating the socket.");
            
            return PLUGIN_HANDLED;
        }
        case 2:
        {
            socket_close(iSocket);
            server_print("* Error on resolve the given hostname.");
            
            return PLUGIN_HANDLED;
        }
        case 3:
        {
            socket_close(iSocket);
            server_print("* Error on connecting.");

            return PLUGIN_HANDLED;
        }
    }
    
    new iSend[256],szCmd[256],szRcon[32],szNone[64];
    
    formatex(iSend,sizeof(iSend),"%c%c%c%cchallenge rcon",255,255,255,255);
    socket_send2(iSocket,iSend,charsmax(iSend));
    
    if(!socket_change(iSocket,2000000)) // If socket not change in 2 seconds, then stop it
    {
        socket_close(iSocket);
        server_print("* No response from %s:%d",szHost,iPort);

        return PLUGIN_HANDLED;
    }
    socket_recv(iSocket,szCmd,charsmax(szCmd));
    parse(szCmd,szNone,charsmax(szNone),szNone,charsmax(szNone),szRcon,charsmax(szRcon));
    
    formatex(szCmd,sizeof(szCmd),"%c%c%c%crcon %s ^"%s^" %s",255,255,255,255,szRcon,szPass,szCommand);
    socket_send2(iSocket,szCmd,charsmax(szCmd));
    
    if(socket_change(iSocket))
    {
        new szBuffer[2048];
        socket_recv(iSocket,szBuffer,charsmax(szBuffer));

        server_print(szBuffer);
    }
    socket_close(iSocket);

    return PLUGIN_HANDLED;
} 

Who is online

Users browsing this forum: No registered users and 1 guest