+ Responder Tópico
Página 2 de 4 Primeira 1 2 3 4 Última
  1. #26
    Membro
    Info
    Registro
    Jan 2003
    Mensagens
    4.901
    Verdinhas
    0

    Originalmente enviada por creep
    deus queira q tu tenha sido ironico...
    eu aprendo pascal como linguagem de programação na faculdade, me explica pq?

  2. # Publicidade
    Publicidade

  3. #27
    Membro Avatar de SpideR
    Info
    Sho'nnuf
    Registro
    Jan 2003
    Mensagens
    3.477
    Verdinhas
    673

    Originalmente enviada por creep
    deus queira q tu tenha sido ironico...
    COBOL eu concordo com vc que seria praticamente impossivel de se programar para este fim, mas em pascal não, inclusive o SW eh feito em um dos derivados do pascal (não é delphi).

    []s

  4. #28
    Membro Avatar de Fernando |CFC
    Info
    OldSchoolMOB
    Registro
    Dec 2003
    Mensagens
    22.452
    Verdinhas
    3588

    Originalmente enviada por >SpideR<
    COBOL eu concordo com vc que seria praticamente impossivel de se programar para este fim, mas em pascal não, inclusive o SW eh feito em um dos derivados do pascal (não é delphi).

    []s
    uma vez eu ganhei um curso de computação e veio u8ns livros junto. um deles era de cobol. eu só fiz o basic e larguei. o ano? 1989, 1990 no pau da goiaba.

    por isso a zoeira viu creep?

  5. #29
    Membro Avatar de SpideR
    Info
    Sho'nnuf
    Registro
    Jan 2003
    Mensagens
    3.477
    Verdinhas
    673

    Originalmente enviada por creep
    pergunta: como comunicar com o servidor de mohaa? sockets? se responderem como q se comunica com o server eu dou meu veredito sobre como fazer o programa(qual linguagem ;-0)
    Em Delphi eu tenho um exemplo funcionando de comunicação com o server, não to em casa para ver, por isso não me lembro o tipo de conexão.

    []s

  6. #30
    Membro
    Autor do tópico
    Info
    Registro
    Oct 2003
    Mensagens
    8.490
    Verdinhas
    0

    Originalmente enviada por >SpideR<
    COBOL eu concordo com vc que seria praticamente impossivel de se programar para este fim, mas em pascal não, inclusive o SW eh feito em um dos derivados do pascal (não é delphi).

    []s
    O SW é feito em Pascal For Windows mesmo...

    Sempre achei que fosse em C, até conhecer o alemão!

    E quanto ao projeto, estou querendo ir além...

    Quem já usou WAMBOT aqui, sabe que o mesmo possui um MENU de interação. Sim, Eu testo regularmente as novas versões no SWTeam! Se for tecnicamente possível, estava com a idéia de desenvolver (junto com a galera que manja BEM disso), um MOD (PK3) Server Side p/ que os banimentos fossem feito direto no servidor. Sem necessidade de minimizar o jogo p/ acionar um programa externo.

    Claro, que tudo depende da possibilidade da comunicação desse MOD, com um host (banco de dados) externo p/ o envio e recebimento dos bans. Vou tentar entrar em contato com o MCunha e vou também, ligar p/ um parceiro meu que saca muito de OpenGL.

    Porra, se rolasse seria show demais. PQP!

    []'s

  7. #31
    Membro Avatar de Tops
    Info
    Registro
    Oct 2002
    Mensagens
    8.550
    Verdinhas
    388

    Originalmente enviada por creep
    pergunta: como comunicar com o servidor de mohaa? sockets? se responderem como q se comunica com o server eu dou meu veredito sobre como fazer o programa(qual linguagem ;-0)
    Já ouviu falar em tcp/ip?

    Sim, usa sockets ...

    Melhor de tudo seria fazer em C, mas vai ser foda ...

  8. #32
    Membro
    Info
    Registro
    Jul 2004
    Mensagens
    650
    Verdinhas
    0

    Fala com o spy. Ele é nerd e faz umas qtas merdas dessas.

  9. #33
    nwb
    nwb está offline
    Membro
    Info
    Registro
    Aug 2003
    Mensagens
    1.608
    Verdinhas
    0

    Originalmente enviada por Pedrinhu
    eu to falando que o markinho explicou o que é isso...e que está sendo usado no server do war

    esse programa e outros

    p.s: Anão ão ão

    ra, vc tah por fora, mas deixa pra lah... soh eu i o tereh sabe dos esquema iuahiuaehaiuehaiu

  10. #34
    Membro Avatar de M4rkoTereH
    Info
    Registro
    Sep 2003
    Mensagens
    3.553
    Verdinhas
    188

    o autorespawnlingkick que ta rodando no WAR é foda meu ... quando ligo so vejo nego vazando do respaw com aquele antijogo filho da puta ..

  11. #35
    nwb
    nwb está offline
    Membro
    Info
    Registro
    Aug 2003
    Mensagens
    1.608
    Verdinhas
    0

    Originalmente enviada por M4rkoTereH
    o autorespawnlingkick que ta rodando no WAR é foda meu ... quando ligo so vejo nego vazando do respaw com aquele antijogo filho da puta ..

    aiuheiouheaiuoehaiouheaioheaiuoheioheaiuoheaiuheai uhe


    eh noi anao

  12. #36
    Membro
    Info
    Registro
    Aug 2004
    Mensagens
    467
    Verdinhas
    0

    Originalmente enviada por .:BaG:.XeRiFe
    Tu pode falar com o Poorlite, ele antigamente tinha scriptado um prog em PhP de ranking, aqueles que tinham de Cs nas Lan , top 10 SMG, Top 10 Geral.. Sniper.. etc.
    Seria massa fazer um portal da comunidade com tudo isso, ranking, banidos, controle de jogadores e tudo mais. Seria muito massa.
    O SW mostra o desempenho de cada player e tal...

  13. #37
    Membro Avatar de Terror de Léo
    Info
    FLN to CWB
    Registro
    Nov 2002
    Mensagens
    6.001
    Verdinhas
    2621

    interessante

  14. #38
    Membro
    Info
    Registro
    Jul 2003
    Mensagens
    1.764
    Verdinhas
    0

    ae sinister, quem fica apagando o canal do sia td hora no ts?

  15. #39
    Membro Avatar de .WanteD.
    Info
    Registro
    Nov 2002
    Mensagens
    3.457
    Verdinhas
    8

    Originalmente enviada por FeLiPE
    ae sinister, quem fica apagando o canal do sia td hora no ts?
    Provavelmente seja alguma pessoa.

    Sempre que tiver dúvidas, pode perguntar!

  16. #40
    Membro
    Info
    Registro
    Oct 2004
    Mensagens
    143
    Verdinhas
    0

    Esse script é para o battlefield, mas deve ser parecido:

    use strict;
    use IO::Socket::INET;

    # ignore socket read/write errors
    $SIG{'PIPE'} = 'IGNORE';

    my $OUT = \*STDOUT;

    my($host,$port)=split(/:/,$ARGV[0],2);
    $port=4711 if (!defined($port));
    my $server = 0;
    my $msg=$ARGV[1];
    if (!defined($host))
    {
    die "Usage: $0 Host[:Port] [Msg]\n";
    }

    my $bf=undef; # battlefield 1942 socket


    # Send messages
    select($OUT); $|=1;

    my $user=undef;
    my $pass=undef;
    # comment these in and change if you want to auto-login instead of prompting

    $user="yea";
    $pass="right";

    my $line = qq{game.sayall "$msg"};
    my $code;
    if (($code=sendConsole($line))==1)
    {
    print getLenStr($bf),"\n";
    }
    else
    {
    printf("[Server Error 0x%02X]\n",$code);
    }

    undef $bf;
    exit;

    sub Authenticate
    {
    #my(@xor,$xmitlen,$bytes);
    my $bytes;

    # Create a new socket
    print "Authenticating: ";
    undef $bf;
    print "connect: ";
    $bf=new IO::Socket::INET->new(
    PeerPort=>$port,
    Proto=>'tcp',
    PeerAddr=>$host);
    if (!defined($bf))
    {
    warn "Cannot connect to $host:$port: $!\n";
    return 0;
    }

    print "xor: ";
    # gank the xor pattern
    if (sysread($bf,$bytes,10)!=10)
    {
    warn "Server did not send authentication challenge\n";
    return 0;
    }
    my @xor=unpack("C10",$bytes);

    # since these strings can have nulls in them, we can't(?)
    # use the regular string-sending functions...
    # encrypt & send the username
    print "user: ";
    my $xmitlen=length($user)+1;
    $bytes=pack("V",$xmitlen);
    if (syswrite($bf,$bytes,4)!=4)
    {
    warn "Server hung up during authentication\n";
    return 0;
    }
    $bytes=pack("C" x $xmitlen,encryptXOR($user,@xor),0);
    if (syswrite($bf,$bytes,$xmitlen)!=$xmitlen)
    {
    warn "Server hung up during authentication\n";
    return 0;
    }

    # encrypt & send the password
    print "pass: ";
    $xmitlen=length($pass)+1;
    $bytes=pack("V",$xmitlen);
    if (syswrite($bf,$bytes,4)!=4)
    {
    warn "Server hung up during authentication\n";
    return 0;
    }
    $bytes=pack("C" x $xmitlen,encryptXOR($pass,@xor),0);
    if (syswrite($bf,$bytes,$xmitlen)!=$xmitlen)
    {
    warn "Server hung up during authentication\n";
    return 0;
    }

    # read back authentication result
    print "answer: ";
    if (sysread($bf,$bytes,1)!=1)
    {
    warn "Server hung up during authentication\n";
    return 0;
    }
    my @answer=unpack("C",$bytes);
    if ($answer[0]==1)
    {
    # start up console mode (what is this garbage?)
    unless (sendNum($bf,2) &&
    sendLenStr($bf,"ConsoleRun $server") &&
    sendNum($bf,2) &&
    sendString($bf,"") &&
    sendString($bf,""))
    {
    warn "Server hung up after authentication\n";
    return 0;
    }

    my $code=getNum($bf);
    my $response=getLenStr($bf);

    if ($code!=1)
    {
    warn "Failed during 'ConsoleRun'!?\n";
    return 0;
    }
    else
    {
    print "okay\n";
    return 1;
    }
    }
    else
    {
    warn "Bad username or password\n";
    return 0;
    }
    }

    sub encryptXOR
    {
    my($plain,@mask)[email protected]_;
    my $index=0;
    my $masklen=$#mask;
    my @ciphers=();
    my $letter;

    my @letters=split(//,$plain);
    foreach $letter (@letters)
    {
    $letter=ord($letter) ^ $mask[$index];
    push(@ciphers,$letter);

    $index=($index+1) % $masklen;
    }

    return @ciphers;
    }

    sub sendString
    {
    my ($sock,$line)[email protected]_;

    my $xmitlen=length($line)+1;
    # what's the right way to pack/unpack a null string?
    my @bytes=();
    grep(push(@bytes,ord($_)),split(//,$line));
    my $bytes=pack("C" x $xmitlen,@bytes,0);
    return (syswrite($bf,$bytes,$xmitlen)==$xmitlen);
    }

    sub sendNum
    {
    my ($sock,$num)[email protected]_;

    my $bytes=pack("V",$num);
    return (syswrite($sock,$bytes,4)==4);
    }

    sub sendLenStr
    {
    my ($sock,$line)[email protected]_;

    return (sendNum($sock,length($line)+1) &&
    sendString($sock,$line));
    }

    sub getNum
    {
    my ($sock)[email protected]_;

    my $bytes;
    if (sysread($sock,$bytes,4)==4)
    {
    my @answer=unpack("V",$bytes);
    return $answer[0];
    }
    return undef;
    }

    sub getString
    {
    my ($sock,$len)[email protected]_;

    my $bytes=undef;
    if ($len>0 && sysread($sock,$bytes,$len)==$len)
    {

    # how do I unpack this?
    my @bytes=unpack("C" x $len,$bytes);
    $bytes="";
    grep($bytes.=chr($_),@bytes);
    }
    return $bytes;
    }

    sub getLenStr
    {
    my ($sock)[email protected]_;

    return getString($sock,getNum($sock));
    }

    sub sendConsole
    {
    my ($command)[email protected]_;

    my $okay=0;
    my $code=undef;

    while (!$okay)
    {
    $okay=1;
    if (!defined($bf) ||
    !sendNum($bf,2) ||
    !sendLenStr($bf,"ConsoleMessage $server") ||
    !sendLenStr($bf,$command) ||
    !defined($code=getNum($bf))
    )
    {
    $okay=0;
    die "Aborting.\n" if (!Authenticate());
    }
    }
    $code;
    }

  17. #41
    Membro
    Info
    Registro
    Nov 2005
    Mensagens
    103
    Verdinhas
    0

    deus.... q merda é essa??
    ja é o tal programa feito?? duvido... em tao poucas linhas?

  18. #42
    Membro
    Info
    Registro
    Oct 2004
    Mensagens
    143
    Verdinhas
    0

    Originalmente enviada por HunteRidrick
    deus.... q merda é essa??
    ja é o tal programa feito?? duvido... em tao poucas linhas?

    Hehehe perl é foda

    A primeira coisa a ser feita é comunicar via rcon com o server, vai em Delphi agora:

    function Tform1.ExecRconCmd(const Cmd: string): string;
    begin
    with SSUNRCON.RCON do
    begin
    Host:=edServerIp.Text
    Port:=StrToInt(edServerPort.Text);
    Password:=edRconPassword.Text;
    Result:=SendCmd(Cmd);
    end;
    end;

    unit SSUNRCON;

    interface

    uses
    SysUtils, Classes, IdBaseComponent, IdComponent, IdUDPBase, IdUDPClient;

    type
    TRcon = class(TIdUDPClient)
    private
    FPswd: string;
    SendTries: integer;
    procedure SetPswd(const Value: string);
    function RconCmd(const Cmd: string): string;
    public
    property Password: string read FPswd write SetPswd;
    function SendCmd(const Cmd: string): string;
    function CvarValue(const CvarName: string): string;
    end;

    var RCON: TRcon;

    implementation

    function TRcon.RconCmd(const Cmd: string): string;
    var Start,Stop: string;
    RtnMsg: string;
    const MaxTries: integer = 2;
    begin
    Result:='';
    Active:=true;
    Send(Chr(255)+Chr(255)+Chr(255)+Chr(255)+Chr(2)+Cm d);
    with TStringList.Create do
    try
    DateTimeToString(Start,'ss',now);
    Text:=ReceiveString;
    DateTimeToString(Stop,'ss',now);
    if ((SendTries < MaxTries) and (StrToInt(Stop) = StrToInt(Start)+5)) then
    begin
    inc(SendTries);
    Result:=RconCmd(Cmd); //timed out, try again.
    Exit;
    end;
    if (SendTries < MaxTries) then
    RtnMsg:='Command Executed'
    else
    raise Exception.Create('Command Timed Out');
    if ((Count > 0) and (pos('',Strings[0])<>0)) then
    begin
    Delete(0); //get rid of top line, tells us what was done by rcon
    Result:=Text;
    end;
    finally
    Active:=false;
    SendTries:=0;
    if (Length(Result) = 0) then
    Result:=RtnMsg;
    Sleep(1000); //rcon is moody, pause between commands
    Free;
    end;
    end;

    function TRcon.SendCmd(const Cmd: string): string;
    begin
    Result:='';
    SendTries:=0;
    ReceiveTimeout:=5000;
    with TStringList.Create do
    try
    Text:=RconCmd('rcon "'+FPswd+'" '+Cmd);
    if (pos('BAD RCONPASSWORD.',UpperCase(Text))<>0) then
    raise Exception.Create(Text);
    Result:=Text;
    finally
    Free;
    end;
    end;

    function TRcon.CvarValue(const CvarName: string): string;
    var Start,Stop: integer;
    begin
    Result:=SendCmd(CvarName);
    Start:=pos('is:"',Result)+4;
    Stop:=pos('" default:',Result)-Start;
    Result:=Copy(Result,Start,Stop);
    end;

    procedure TRcon.SetPswd(const Value: string);
    begin
    FPswd:=Value;
    end;

    initialization
    RCON:=TRcon.Create(nil);
    finalization
    RCON.Free;
    end.

  19. #43
    Membro
    Info
    Registro
    Oct 2004
    Mensagens
    143
    Verdinhas
    0

    Se prefirir Visual Basic:

    Private Sub cmdConnect_Click()
    With Winsock1
    .RemoteHost = Me.txtServerIP
    .RemotePort = Me.txtPort
    .Bind 1002
    End With
    Winsock1.SendData ByteCode & "rconaddress " & Me.txtServerIP
    Winsock1.SendData ByteCode & "rconpassword " & Me.txtRCONPassword
    Winsock1.SendData ByteCode & "rcon status"
    End Sub


    Private Sub Winsock1_DataArrival _
    (ByVal bytesTotal As Long)
    Dim strData As String
    Winsock1.GetData strData
    txtOutput.Text = strData
    End Sub

  20. #44
    Membro Avatar de anderSEN!
    Info
    Registro
    Sep 2003
    Mensagens
    9.102
    Verdinhas
    90

    The Nerd Paradise is Back

  21. #45
    Membro
    Info
    Registro
    Nov 2004
    Mensagens
    781
    Verdinhas
    392

    Originalmente enviada por SlackWar //2006
    Esse script é para o battlefield, mas deve ser parecido:

    use strict;
    use IO::Socket::INET;

    # ignore socket read/write errors
    $SIG{'PIPE'} = 'IGNORE';

    my $OUT = \*STDOUT;

    my($host,$port)=split(/:/,$ARGV[0],2);
    $port=4711 if (!defined($port));
    my $server = 0;
    my $msg=$ARGV[1];
    if (!defined($host))
    {
    die "Usage: $0 Host[:Port] [Msg]\n";
    }

    my $bf=undef; # battlefield 1942 socket


    # Send messages
    select($OUT); $|=1;

    my $user=undef;
    my $pass=undef;
    # comment these in and change if you want to auto-login instead of prompting

    $user="yea";
    $pass="right";

    my $line = qq{game.sayall "$msg"};
    my $code;
    if (($code=sendConsole($line))==1)
    {
    print getLenStr($bf),"\n";
    }
    else
    {
    printf("[Server Error 0x%02X]\n",$code);
    }

    undef $bf;
    exit;

    sub Authenticate
    {
    #my(@xor,$xmitlen,$bytes);
    my $bytes;

    # Create a new socket
    print "Authenticating: ";
    undef $bf;
    print "connect: ";
    $bf=new IO::Socket::INET->new(
    PeerPort=>$port,
    Proto=>'tcp',
    PeerAddr=>$host);
    if (!defined($bf))
    {
    warn "Cannot connect to $host:$port: $!\n";
    return 0;
    }

    print "xor: ";
    # gank the xor pattern
    if (sysread($bf,$bytes,10)!=10)
    {
    warn "Server did not send authentication challenge\n";
    return 0;
    }
    my @xor=unpack("C10",$bytes);

    # since these strings can have nulls in them, we can't(?)
    # use the regular string-sending functions...
    # encrypt & send the username
    print "user: ";
    my $xmitlen=length($user)+1;
    $bytes=pack("V",$xmitlen);
    if (syswrite($bf,$bytes,4)!=4)
    {
    warn "Server hung up during authentication\n";
    return 0;
    }
    $bytes=pack("C" x $xmitlen,encryptXOR($user,@xor),0);
    if (syswrite($bf,$bytes,$xmitlen)!=$xmitlen)
    {
    warn "Server hung up during authentication\n";
    return 0;
    }

    # encrypt & send the password
    print "pass: ";
    $xmitlen=length($pass)+1;
    $bytes=pack("V",$xmitlen);
    if (syswrite($bf,$bytes,4)!=4)
    {
    warn "Server hung up during authentication\n";
    return 0;
    }
    $bytes=pack("C" x $xmitlen,encryptXOR($pass,@xor),0);
    if (syswrite($bf,$bytes,$xmitlen)!=$xmitlen)
    {
    warn "Server hung up during authentication\n";
    return 0;
    }

    # read back authentication result
    print "answer: ";
    if (sysread($bf,$bytes,1)!=1)
    {
    warn "Server hung up during authentication\n";
    return 0;
    }
    my @answer=unpack("C",$bytes);
    if ($answer[0]==1)
    {
    # start up console mode (what is this garbage?)
    unless (sendNum($bf,2) &&
    sendLenStr($bf,"ConsoleRun $server") &&
    sendNum($bf,2) &&
    sendString($bf,"") &&
    sendString($bf,""))
    {
    warn "Server hung up after authentication\n";
    return 0;
    }

    my $code=getNum($bf);
    my $response=getLenStr($bf);

    if ($code!=1)
    {
    warn "Failed during 'ConsoleRun'!?\n";
    return 0;
    }
    else
    {
    print "okay\n";
    return 1;
    }
    }
    else
    {
    warn "Bad username or password\n";
    return 0;
    }
    }

    sub encryptXOR
    {
    my($plain,@mask)[email protected]_;
    my $index=0;
    my $masklen=$#mask;
    my @ciphers=();
    my $letter;

    my @letters=split(//,$plain);
    foreach $letter (@letters)
    {
    $letter=ord($letter) ^ $mask[$index];
    push(@ciphers,$letter);

    $index=($index+1) % $masklen;
    }

    return @ciphers;
    }

    sub sendString
    {
    my ($sock,$line)[email protected]_;

    my $xmitlen=length($line)+1;
    # what's the right way to pack/unpack a null string?
    my @bytes=();
    grep(push(@bytes,ord($_)),split(//,$line));
    my $bytes=pack("C" x $xmitlen,@bytes,0);
    return (syswrite($bf,$bytes,$xmitlen)==$xmitlen);
    }

    sub sendNum
    {
    my ($sock,$num)[email protected]_;

    my $bytes=pack("V",$num);
    return (syswrite($sock,$bytes,4)==4);
    }

    sub sendLenStr
    {
    my ($sock,$line)[email protected]_;

    return (sendNum($sock,length($line)+1) &&
    sendString($sock,$line));
    }

    sub getNum
    {
    my ($sock)[email protected]_;

    my $bytes;
    if (sysread($sock,$bytes,4)==4)
    {
    my @answer=unpack("V",$bytes);
    return $answer[0];
    }
    return undef;
    }

    sub getString
    {
    my ($sock,$len)[email protected]_;

    my $bytes=undef;
    if ($len>0 && sysread($sock,$bytes,$len)==$len)
    {

    # how do I unpack this?
    my @bytes=unpack("C" x $len,$bytes);
    $bytes="";
    grep($bytes.=chr($_),@bytes);
    }
    return $bytes;
    }

    sub getLenStr
    {
    my ($sock)[email protected]_;

    return getString($sock,getNum($sock));
    }

    sub sendConsole
    {
    my ($command)[email protected]_;

    my $okay=0;
    my $code=undef;

    while (!$okay)
    {
    $okay=1;
    if (!defined($bf) ||
    !sendNum($bf,2) ||
    !sendLenStr($bf,"ConsoleMessage $server") ||
    !sendLenStr($bf,$command) ||
    !defined($code=getNum($bf))
    )
    {
    $okay=0;
    die "Aborting.\n" if (!Authenticate());
    }
    }
    $code;
    }
    eh esse ae eu conhecia já

  22. #46
    Membro
    Info
    Registro
    Aug 2004
    Mensagens
    9.512
    Verdinhas
    287

    Originalmente enviada por SlackWar //2006
    Hehehe perl é foda

    A primeira coisa a ser feita é comunicar via rcon com o server, vai em Delphi agora:

    function Tform1.ExecRconCmd(const Cmd: string): string;
    begin
    with SSUNRCON.RCON do
    begin
    Host:=edServerIp.Text
    Port:=StrToInt(edServerPort.Text);
    Password:=edRconPassword.Text;
    Result:=SendCmd(Cmd);
    end;
    end;

    unit SSUNRCON;

    interface

    uses
    SysUtils, Classes, IdBaseComponent, IdComponent, IdUDPBase, IdUDPClient;

    type
    TRcon = class(TIdUDPClient)
    private
    FPswd: string;
    SendTries: integer;
    procedure SetPswd(const Value: string);
    function RconCmd(const Cmd: string): string;
    public
    property Password: string read FPswd write SetPswd;
    function SendCmd(const Cmd: string): string;
    function CvarValue(const CvarName: string): string;
    end;

    var RCON: TRcon;

    implementation

    function TRcon.RconCmd(const Cmd: string): string;
    var Start,Stop: string;
    RtnMsg: string;
    const MaxTries: integer = 2;
    begin
    Result:='';
    Active:=true;
    Send(Chr(255)+Chr(255)+Chr(255)+Chr(255)+Chr(2)+Cm d);
    with TStringList.Create do
    try
    DateTimeToString(Start,'ss',now);
    Text:=ReceiveString;
    DateTimeToString(Stop,'ss',now);
    if ((SendTries < MaxTries) and (StrToInt(Stop) = StrToInt(Start)+5)) then
    begin
    inc(SendTries);
    Result:=RconCmd(Cmd); //timed out, try again.
    Exit;
    end;
    if (SendTries < MaxTries) then
    RtnMsg:='Command Executed'
    else
    raise Exception.Create('Command Timed Out');
    if ((Count > 0) and (pos('',Strings[0])<>0)) then
    begin
    Delete(0); //get rid of top line, tells us what was done by rcon
    Result:=Text;
    end;
    finally
    Active:=false;
    SendTries:=0;
    if (Length(Result) = 0) then
    Result:=RtnMsg;
    Sleep(1000); //rcon is moody, pause between commands
    Free;
    end;
    end;

    function TRcon.SendCmd(const Cmd: string): string;
    begin
    Result:='';
    SendTries:=0;
    ReceiveTimeout:=5000;
    with TStringList.Create do
    try
    Text:=RconCmd('rcon "'+FPswd+'" '+Cmd);
    if (pos('BAD RCONPASSWORD.',UpperCase(Text))<>0) then
    raise Exception.Create(Text);
    Result:=Text;
    finally
    Free;
    end;
    end;

    function TRcon.CvarValue(const CvarName: string): string;
    var Start,Stop: integer;
    begin
    Result:=SendCmd(CvarName);
    Start:=pos('is:"',Result)+4;
    Stop:=pos('" default:',Result)-Start;
    Result:=Copy(Result,Start,Stop);
    end;

    procedure TRcon.SetPswd(const Value: string);
    begin
    FPswd:=Value;
    end;

    initialization
    RCON:=TRcon.Create(nil);
    finalization
    RCON.Free;
    end.

    foda em

  23. #47
    Membro
    Info
    Registro
    Oct 2004
    Mensagens
    143
    Verdinhas
    0

    Originalmente enviada por Tops
    Já ouviu falar em tcp/ip?

    Sim, usa sockets ...

    Melhor de tudo seria fazer em C, mas vai ser foda ...
    Uma versão básica de conexão via rcon eu posso liberar em c compilável para linux em poucos dias. Mas gostaria que o nome do projeto mudasse, algo do tipo brteam_kick ou kick&ban.

  24. #48
    Membro Avatar de Green
    Info
    Registro
    Sep 2003
    Mensagens
    5.284
    Verdinhas
    693

    ae

    <html><head><meta http-equiv="content-type" content="text/html; charset=UTF-8"><title>Google</title><style><!--
    body,td,a,p,.h{font-family:arial,sans-serif;}
    .h{font-size: 20px;}
    .q{color:#0000cc;}
    //-->
    </style>
    <script>
    <!--
    function sf(){document.f.q.focus();}
    function clk(url,ct,cd,sg){if(document.images){var u="";if (url) u="&url="+escape(url).replace(/\+/g,"%2B");new Image().src="/url?sa=T&ct="+escape(ct)+"&cd="+escape(cd)+u+"&ei= TIPyQ-77Jbewapjn1dMM"+sg;}return true;}
    // -->
    </script>
    </head><body bgcolor=#ffffff text=#000000 link=#0000cc vlink=#551a8b alink=#ff0000 onLoad=sf() topmargin=3 marginheight=3><center><table border=0 cellspacing=0 cellpadding=0 width=100%><tr><td align=right nowrap><font size=-1>Página inicial personalizada|Efetuar login</font></td></tr><tr height=4><td><img alt="" width=1 height=1></td></tr></table><img src=/logos/olympics06_icedance.gif width=276 height=140 border=0 alt="Torino 2006" title="Torino 2006">


    <form action=/search name=f><script><!--
    function qs(el) {if (window.RegExp && window.encodeURIComponent) {var ue=el.href;var qe=encodeURIComponent(document.f.q.value);if(ue.in dexOf("q=")!=-1){el.href=ue.replace(new RegExp("q=[^&$]*"),"q="+qe);}else{el.href=ue+"&q="+qe;}}return 1;}
    // -->
    </script><table border=0 cellspacing=0 cellpadding=4><tr><td nowrap><font size=-1>WebImagensGruposDiretórioNotícias<sup><a style="text-decoration:none"><font color=red>Novo!</font></sup></a>mais&raquo;</font></td></tr></table><table cellspacing=0 cellpadding=0><tr><td width=25%></td><td align=center><input type=hidden name=hl value=pt-BR><input maxlength=2048 size=55 name=q value="" title="Pesquisa Google">
    <input type=submit value="Pesquisa Google" name=btnG><input type=submit value="Estou com sorte" name=btnI></td><td valign=top nowrap width=25%><font size=-2><a href=/advanced_search?hl=pt-BR>Pesquisa avançada</a>
    Ferramentas de idiomas</font></td></tr><tr><td colspan=3 align=center><font size=-1>Pesquisar: <input id=all type=radio name=meta value="" checked><label for=all> a web</label><input id=lgr type=radio name=meta value="lr=lang_pt" ><label for=lgr> páginas em português</label><input id=cty type=radio name=meta value="cr=countryBR" ><label for=cty>páginas do Brasil</label></font></td></tr></table></form>

    <font size=-1> - <a href=/intl/pt-BR/about.html>Tudo sobre o Google - <a href=http://www.google.com/ncr>Google.com in English</a><span id=hp style="behavior:url(#default#homepage)"></span>
    <script>
    //<!--
    if (!hp.isHomePage('http://www.google.com.br/')) {document.write("

    <a href=\"/mgyhp.html\" onClick=\"style.behavior='url(#default#homepage)'; setHomePage('http://www.google.com.br/');\">Use o Google como página inicial!</a>");}
    //-->
    </script></font>

    <font size=-2>&copy;2006 Google</font></p></center></body></html>

  25. #49
    Membro
    Autor do tópico
    Info
    Registro
    Oct 2003
    Mensagens
    8.490
    Verdinhas
    0

    Originalmente enviada por FeLiPE
    ae sinister, quem fica apagando o canal do sia td hora no ts?
    Eu.

    Os canais não usados são apagados de lá. SIA tem TS, ou pelo menos tinha nos servidores do Gozada. Se forem usar lá novamente, o canal ficará. Caso contrário, será apagado novamente. Assim como todos os inativos. São as regras do TS!

  26. #50
    Membro
    Autor do tópico
    Info
    Registro
    Oct 2003
    Mensagens
    8.490
    Verdinhas
    0

    Show os códigos Slack!

+ Responder Tópico Ir para o Fórum
Página 2 de 4 Primeira 1 2 3 4 Última

Assuntos do tópico

Compartilhar

Permissões