Author Topic: Account System error  (Read 1031 times)

0 Members and 1 Guest are viewing this topic.

Offline mascarado

  • Major(1)
  • Posts: 16
Account System error
« on: July 13, 2011, 07:16:10 pm »
Because this script here, does not create the account. Appears on the console Soldat, who created, but when I look in the folder of accounts has nothing. Someone solves it.  ???

Code: [Select]
const
c_blue = $FFFFFF;
c_red = $FFFFFF;

var
Logado: array[1..32] of boolean;
Money: array[1..32] of integer;

procedure SalvarConta(ID: byte);
var
Arquivo : string;
begin
Arquivo := 'scripts/Account System/contas' + IDToName(ID) + '.ini';
WriteFile(Arquivo,GetPiece(ReadFile(Arquivo),#9,0) + #9 + IntToStr(Money[ID]) + #9);
WriteLn('Conta do jogador ' + IDToName(ID) + ' foi salva com sucesso.');
end;

procedure AppOnIdle(Ticks: integer);
var ID: byte;
begin
if Ticks mod (60 * 30) = 0 then
 for ID := 1 To 32 Do
  if GetPlayerStat(ID,'Human') then
   if GetPlayerStat(ID,'Active') then
   SalvarConta(ID); //Salvar contas a cada 30 segundos

end;

//Função no comando de um jogador
function OnPlayerCommand(ID: Byte; Text: string): boolean;
var
mon, Arquivo : string;
begin
Text := LowerCase(Text);
Arquivo := 'scripts/Account System/contas' + IDToName(ID) + '.ini';

// Criar Conta -----
 if GetPiece(Text,' ',0) = '/criar' then if GetPiece(text,' ',1) <> nil then begin
 if not Logado[ID] then begin
 if not FileExists(Arquivo) then begin
 if GetPlayerStat(ID,'team') = 1 then begin
 WriteFile(Arquivo,GetPiece(text,' ',1) + #9 + IntToStr(Money[ID]) + #9);
 WriteConsole(ID,'Você criou uma conta!',c_blue);
 WriteConsole(ID,'Senha: '+GetPiece(text,' ',1),c_blue);
 WriteConsole(ID,'Logue sua conta usando "/logar [senha]"!',c_blue);
 end else WriteConsole(ID,'Você não pode criar uma conta se não for do time 1!',c_red);
 end else WriteConsole(ID,'Ja existe uma conta com seu nome!',c_red);
 end else WriteConsole(ID,'Você já está logado!',c_red);
 end else WriteConsole(ID,'Digite uma senha válida!',c_red);

// Deslogar Conta -------
 if GetPiece(Text,' ',0) = '/deslogar' then
 if Logado[ID] then begin
 WriteConsole(ID,'Você foi deslogado!',c_blue);
 SalvarConta(ID);
 Logado[ID] := False;
 Money[ID] := 0;
 end else WriteConsole(ID,'Você não está logado!',c_red);

// Logar Conta -------
 if GetPiece(Text,' ',0) = '/logar' then if GetPiece(Text,' ',1) <> nil then begin
 if not Logado[ID] then begin
 if FileExists(Arquivo) then begin
 if GetPlayerStat(ID,'team') = 1 then begin
 if GetPiece(ReadFile(Arquivo),#9,0) = GetPiece(Text,' ',1) then begin
 Money[ID] := StrToInt(GetPiece(ReadFile(Arquivo),#9,1));
 WriteConsole(ID,'Seu Dinheiro: ' + IntToStr(Money[ID]),c_red);
 Logado[ID] := True;
 end else WriteConsole(ID,'Senha Incorreta',c_red);
 end else WriteConsole(ID,'Você não pode logar uma conta se não for do time 1!',c_red);
 end else WriteConsole(ID,'Conta não econtrada! Use "/criar [senha]"!',c_red);
 end else WriteConsole(ID,'Você já está logado!',c_red);
 end else WriteConsole(ID,'Digite uma senha válida!',c_red);
 end;
 
 procedure OnLeaveGame(ID, Team: byte;Kicked: boolean);
 begin
 if Logado[ID] then begin
 SalvarConta(ID);
 Logado[ID] := False;
 Money[ID] := 0;
 end;
 end;

DarkCrusade

  • Guest
Re: Account System error
« Reply #1 on: July 13, 2011, 11:32:42 pm »
I wonder who solves it.

Offline KEEN

  • Major
  • *
  • Posts: 95
  • soldat champagne
    • Soldat Argentina
Re: Account System error
« Reply #2 on: July 25, 2011, 07:43:35 am »
that script works, just check if "scripts/Account System" folder exists

Offline Falcon`

  • Flagrunner
  • ****
  • Posts: 792
  • A wanted lagger
Re: Account System error
« Reply #3 on: July 25, 2011, 11:10:38 am »
perhaps you should encode nicks to avoid invalid chars in file names. You can use HTTPEncode() function for that, or write your own.
If you're not paying for something, you're not the customer; you're the product being sold.
- Andrew Lewis

Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live.