BANNED
|
07-31-2013
, 02:26
[DUDA] HLTV Record - PUG SERVER
|
#1
|
Hola amigos del Foro, pues encontré un HLTV para mi servidor PUG, pero en realidad no se si funciona quiero asegurarme antes de montarlo, creo que este HLTV si no recuerdo mal, lo saque de un Post que comento mi amigo kwpd y pues quiero asegurarme que sirva.
Aquí les dejare el Código y déjenme sus opiniones, y si no cuesta mucho dejarme las instrucciones, por que soy nuevo en esto apenas llevo 2 Meses metiéndome en esto del Pawn, y voy aprendiendo poco a poco mas bien se jejjeje, espero sus respuestas.
PHP Code:
#include <amxmodx>
#include <amxmisc>
#include <sockets>
#pragma semicolon 1
new g_HLTV[] = "[HLTV]";
new g_Address;
new p_Host,p_Port,p_Pass;
public plugin_init()
{
register_plugin("HLTV (Beta)",AMXX_VERSION_STR,"AMXX Dev Team");
g_Address = get_cvar_pointer("net_address");
p_Host = register_cvar("hltv_host","XXX.XXX.XXX.XXX",FCVAR_PROTECTED);
p_Port = register_cvar("hltv_port","XXXXX",FCVAR_PROTECTED);
p_Pass = register_cvar("hltv_pass","XXXXX",FCVAR_PROTECTED);
register_concmd("hltv_rcon","HLTV_Rcon",ADMIN_RCON,"<Command>");
register_concmd("hltv_record","HLTV_Record",ADMIN_RCON,"<File>");
register_concmd("hltv_stop","HLTV_Stop",ADMIN_RCON,"- Removes the HLTV from server");
}
public HLTV_Rcon(id,level,cid)
{
if(!cmd_access(id,level,cid,2)) return PLUGIN_HANDLED;
new szHost[32],szPass[32];
get_pcvar_string(p_Host,szHost,charsmax(szHost));
get_pcvar_string(p_Pass,szPass,charsmax(szPass));
new szCommand[128];
read_args(szCommand,charsmax(szCommand));
remove_quotes(szCommand);
Rcon_Command(szHost,get_pcvar_num(p_Port),szPass,szCommand);
return PLUGIN_HANDLED;
}
public HLTV_Record(id,level,cid)
{
if(!cmd_access(id,level,cid,2)) return PLUGIN_HANDLED;
new szHost[32],szPass[32];
get_pcvar_string(p_Host,szHost,charsmax(szHost));
get_pcvar_string(p_Pass,szPass,charsmax(szPass));
new szFile[32];
read_args(szFile,charsmax(szFile));
remove_quotes(szFile);
new szAddress[32];
get_pcvar_string(g_Address,szAddress,charsmax(szAddress));
new szCommand[128];
formatex(szCommand,charsmax(szCommand),"connect %s;record %s;autoretry 1",szAddress,szFile);
Rcon_Command(szHost,get_pcvar_num(p_Port),szPass,szCommand);
console_print(id,"%s Trying to connect in ^"%s^" (And recording in the file ^"%s^")",g_HLTV,szAddress,szFile);
return PLUGIN_HANDLED;
}
public HLTV_Stop(id,level,cid)
{
if(!cmd_access(id,level,cid,1)) return PLUGIN_HANDLED;
new szHost[32],szPass[32];
get_pcvar_string(p_Host,szHost,charsmax(szHost));
get_pcvar_string(p_Pass,szPass,charsmax(szPass));
Rcon_Command(szHost,get_pcvar_num(p_Port),szPass,"stop;disconnect;autoretry 0");
console_print(id,"%s O HLTV Disconnected!",g_HLTV);
return PLUGIN_HANDLED;
}
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;
}
|
|