Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 04.01.2015, 21:23
кекеке кекеке вне форума
Прохожий
 
Регистрация: 04.01.2015
Сообщения: 4
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию Подскажите новичку, что не так ?

Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, StdCtrls, ScktComp;

type
  TForm1 = class(TForm)
    ClientSocket1: TClientSocket;
    Button1: TButton;
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    Edit4: TEdit;
    RadioButton1: TRadioButton;
    RadioButton2: TRadioButton;
    Timer1: TTimer;
    procedure Button1Click(Sender: TObject);
    procedure ClientSocket1Read(Sender: TObject; Socket: TCustomWinSocket);
    procedure Timer1Timer(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

  Pers = record
    ID: string;
    rait: integer;
    nick: string;
    clan: string;
    x: integer;
  end;

var
  Form1: TForm1;
  users: array [1..70] of pers;
  ParseStack: string;
  reccode, startedplanet: string;
  MyId,Mypass: string;
  Hash:string;
    var_6b8e: integer=0;
    var_6bae: integer=0;
    var_6b9e: integer=0;
    var_6b96: integer=0;
    ctc: integer=1;
    ctct: integer;

implementation

{$R *.dfm}

function NextStr(var s: string):string;
var
i: integer;
begin
i:=pos(' ',s);
if i<>0 then begin
  result:=copy(s,1,i-1);
  delete(s,1,i);
end else begin
  result:=s;
  s:='';
end;
end;


function UpperCaseRU(s: string): string;
var
  i: integer;
begin
  result := s;
  for i := 1 to length(result) do
    if (result[i] in ['a'..'z', 'а'..'я']) then
      result[i] := chr(ord(result[i]) - 32)
    else if result[i]='ё' then result[i]:='Ё';

end;

  function sub_1cfc(i,j:integer): integer;
  var
  k: integer;
  begin
  k:=1;
  while (j > 0) do begin
    if((j mod 2) = 1)
        then k:=k*i;
    j:= j shr 1;
    i := i*i;
  end;
  result:=k;
  end;

  function ConvertCTKey(s: string):integer;
  var
  l,r: integer;
  begin
    r:=0;
    for l:=1 to length(s) do begin
      r:=(r shl 8) + ord(s[l]);
    end;
    result:=r;
  end;

  procedure SendText(s:string);
    procedure ParseText(s:string);
    procedure ProgRun;

  procedure TForm1.SendText(s:string);
  var
  i,j: integer;
  begin
    var_6b9e:=var_6b9e+length(s);
    var_6bae:=var_6bae+1;
    s:=ansitoutf8(s);
    oursock.socket.SendText(s+#13#10);
    inc(ctc);
    if ctc=(ctct+1) then begin
      ctc:=1;
      if(var_6b8e = 0) then
        var_6b8e:= var_6b96;
      i:=sub_1cfc(var_6b8e,var_6bae);
      j:= var_6b96 shl var_6b9e;
      var_6b8e:= i xor j;
      oursock.socket.SendText('ct '+inttostr(var_6b8e)+#13#10);
    end;
end;

function GetEmptyUser:integer;
var
  i: integer;
begin
result:=-1;
  for i:=1 to 70 do
      if users[i].ID='0' then begin
        result:=i;
        break;
      end;
end;

procedure EraseUser(N: integer);
begin
  users[n].ID:='0';
  users[n].rait:=0;
  users[n].nick:='-';
  users[n].clan:='-';
  users[n].x:=0;
end;

procedure EraseAllUsers;
var
  i:byte;
begin
  for i:=1 to 70 do
    EraseUser(i);
end;

procedure LoadUsers(s:string);// парсинг юзеров
var
  i:integer;
  tpos:integer;
  ind: integer;
  sub:string;
begin
  s:=copy(s,pos(':',s)+1,length(s));
  s:=utf8toansi(s);
  i:=GetEmptyUser;
while true do begin
    if length(s)<10 then break;
    users[i].clan:=Nextstr(s);
    users[i].nick:=NextStr(s);
if users[i].nick[1]='+' then begin
    delete(users[i].nick,1,1);
end;
if users[i].nick[1]='@' then begin
    delete(users[i].nick,1,1);
end;
    users[i].id:=Nextstr(s);
if Nextstr(s) = '-1' then begin
NextStr(s); NextStr(s);
NextStr(s); NextStr(s);
NextStr(s);
end else begin
  NextStr(s);
end;
    users[i].x:=Strtoint(Nextstr(s));
    inc(i);
end;
end;

procedure TForm1.ParseText(s:string);
var
  sub:string;
  i:integer;
  cmd: string;
begin
if s='' then exit;
cmd:=NextStr(s);
if cmd='HAAAPSI' then begin
  sub:=NextStr(s);
  HASH:=GHash.CreateHash(sub);
  var_6b96:=ConvertCTKey(sub);
  ctct:=strtoint(NextStr(s));
  sendtext(':ru IDENT 111 -1 4030 1 2 :GALA');
  sendtext('RECOVER '+reccode);
end else
if cmd='REGISTER' then begin
  MyID:=NextStr(s);
  MyPass:=NextStr(s);
  sendtext('USER'+' '+MyId+' '+MyPass+' 0 '+HASH);
end else
if cmd='999' then begin
  Sendtext('FWLISTVER 0');
  sendtext('ADDONS');
  sendtext('MYADDONS');
  Sendtext('JOIN '+StartedPlanet);
end else
if cmd='PING' then begin
  sendtext('PONG');
end else
if cmd='LBS' then begin
  sendtext('LBS 2 platform=MPP cellid=null mcc=null mnc=null lac=null');
end else
if cmd='353' then begin
LoadUsers(s);
form1.ProgRun;
end;
end;

procedure TForm1.ProgRun;
begin
  Timer1.Interval:=StrToInt(Edit3.text);
  Timer1.Enabled:=true;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
var
  id: String;
  i: integer;
begin
Timer1.Enabled:=false;
id:='hz';
if RadioButton1.Checked then
  for i:=1 to 70 do
    if UpperCaseRU(Edit4.Text)=UpperCaseRu(Users[i].nick) then begin
        id:=users[i].ID;
        break;
    end;
if RadioButton2.Checked then
  for i:=1 to 70 do
    if UpperCaseRU(Edit5.Text)=UpperCaseRu(Users[i].clan) then begin
        id:=users[i].ID;
        break;
    end;
if id<>'hz' then SendText('ACTION 3 '+id);
SendText('QUIT :ds');
OurSock.Close;
end;

end;


procedure TForm1.Button1Click(Sender: TObject);
begin
EraseAllUsers;
  reccode:=Edit1.Text;
  StartedPlanet:=Edit2.text;
  OurSock.Active:=true;
end;

procedure TForm1.ClientSocket1Read(Sender: TObject;
  Socket: TCustomWinSocket);
begin
var
  recv: string;
  l: integer;
  send: string;
begin
recv:=Socket.ReceiveText;
ParseStack:=ParseStack+recv;
l:=pos(#13#10,ParseStack);;
while l>0 do begin
  recv:=copy(ParseStack,1,l+1);
  parsetext(recv);
  Delete(ParseStack,1,l+1);
  l:=pos(#13#10,ParseStack);
end;
end;

end.
Ответить с цитированием
  #2  
Старый 04.01.2015, 21:24
кекеке кекеке вне форума
Прохожий
 
Регистрация: 04.01.2015
Сообщения: 4
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Ответить с цитированием
  #3  
Старый 04.01.2015, 21:29
Аватар для Freeman
Freeman Freeman вне форума
Местный
 
Регистрация: 05.10.2012
Адрес: Санкт-Петербург
Сообщения: 577
Версия Delphi: 6
Репутация: выкл
По умолчанию

delete к черту!
__________________
Не стоит путать форумы с богадельнями. © Bargest

Последний раз редактировалось Freeman, 04.01.2015 в 21:32.
Ответить с цитированием
  #4  
Старый 05.01.2015, 01:08
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Код беззастенчиво содран с чужих исходников без понимания что и для чего и, компилироваться в принципе не может.
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
  #5  
Старый 05.01.2015, 06:42
кекеке кекеке вне форума
Прохожий
 
Регистрация: 04.01.2015
Сообщения: 4
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

ещё как может
Ответить с цитированием
  #6  
Старый 05.01.2015, 08:14
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

почитай как объявляются классы, добавляются методы, свойства...
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
  #7  
Старый 05.01.2015, 10:33
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Цитата:
Сообщение от кекеке
ещё как может
Тогда зачем вы здесь?
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
  #8  
Старый 05.01.2015, 12:40
кекеке кекеке вне форума
Прохожий
 
Регистрация: 04.01.2015
Сообщения: 4
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

я та позавчера только скачал дельфи, а другие собирают, закройте тему, все такие умные аж не знаю кого слушать
Ответить с цитированием
  #9  
Старый 05.01.2015, 14:03
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Ну попытайтесь хотя бы понять, что у вас делают строки 107-109.
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 04:23.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter