Вернуться   CoderX :: Forums > Lineage II > L2PacketHack > Жесткий скриптинг
Войти через OpenID

Жесткий скриптинг Раздел для обсуждения готовых и тестируемых скриптов
Внимание! В разделе введена жесткая модерация, темы и сообщения публикуются только после проверки модераторами

Чат (Новых сообщений с момента вашего последнего визита нет)
Загрузка...
Задавайте ваши вопросы на форуме. Чат предназначен для небольших разговоров.
 
 
 
Опции темы Опции просмотра
Старый 07.07.2008, 00:05   #1
Пользователь
 
Регистрация: 10.12.2007
Сообщений: 54
Сказал Спасибо: 4
Имеет 46 спасибок в 16 сообщенях
clyr пока неопределено
По умолчанию dcChat: работа с чатом

Только что выложил где-то еще; подумал: скрипт вполне "завершенный", чтобы постить его сюда.

Основа:
Chat.txt из поставки l2phx 320

Возможности:

1. Отдельное окно чата.
2. "Автоспам": одна строчка раз в Х секунд
3. Длинный текст: отправка многострочного сообщения
4. Лог чата.

l2phx
delphi Код:
const      MaxMessages = 1000; var   m: TMemo;   frm:TForm;   penel: TPanel;   etext:  tedit;   button: tbutton;   box   : TCheckBox;   every : TEdit;   _Name : TEdit;   i: Integer;   tm:TTimer;   Message, Name: String; procedure SendMs(Sender: TObject); var   Msg, Nm: String;   dd: integer; begin   if etext.text<>'' then begin     buf:=#$38;     case etext.text[1] of       '!': begin         Msg:=Copy(etext.text,2,1000);         dd:=1;         nm:='';       end;       '$': begin         Msg:=Copy(etext.text,2,1000);         dd:=9;         nm:='';       end;       '+': begin         Msg:=Copy(etext.text,2,1000);         dd:=8;         nm:='';       end;       '"': begin         dd:=pos(' ', etext.text);         Msg:=Copy(etext.text,dd+1,1000);         nm:=Copy(etext.text,2,dd-3);         dd:=2;       end;       '#': begin         Msg:=Copy(etext.text,2,1000);         dd:=3;         nm:='';       end;       '@': begin         Msg:=Copy(etext.text,2,1000);         dd:=4;         nm:='';       end;       else begin         Msg:=etext.text;         dd:=0;         nm:='';       end;     end;     WriteS(Msg);     WriteD(dd);     if nm<>'' then WriteS(Nm);     SendToServerEx(_Name.Text);   end; end; procedure onNewCommand(obj:TObject;key:string); var i:integer; var symbol:Variant; var after:string; begin      if (key[1]=#$0D) then begin          SendMs(obj);          symbol := etext.Text[1];          after := '';          if symbol = '#' then after := '#';          if symbol = '!' then after := '!';          if symbol = '@' then after := '@';          if symbol = '$' then after := '$';          etext.Text := after;      end; end; procedure onTimer(Sender:TObject); begin   tm.Interval := StrToInt(every.Text);   if box.checked = true then SendMs(Sender); end; procedure Init; begin   frm := TForm.Create(nil);   frm.Caption := 'Chat';   frm.BorderStyle := bsSizeable;   frm.Position := poDesigned ;   frm.Width:=400;   frm.Height:=600;   m:=TMemo.Create(frm);   m.parent:=frm;   m.align:=alClient;   m.ReadOnly:=true;   m.ScrollBars:=ssBoth;   penel:=TPanel.Create(frm);   penel.parent:=frm;   penel.align:=alBottom;   penel.height:=48;   etext:=tedit.Create(penel);   etext.parent:=penel;   etext.align:=alTop;   button:=tbutton.Create(penel);   button.parent:=penel;   button.top := etext.height;   button.caption:='Send';   button.onClick:=@SendMs;   box := TCheckBox.Create(penel);   box.parent := penel;   box.Top := etext.height + 2;   box.Left := button.width + button.left +2;   box.Caption := 'Шторм через: ';   every:=tedit.Create(penel);   every.parent:=penel;   every.Left := box.Left + box.Width;   every.Top := button.top;   every.Text := IntToStr(3000);   tm := TTimer.Create(frm);   tm.Interval := 1000;   tm.Enabled := true;   tm.OnTimer := @OnTimer;   etext.OnKeyPress := @onNewCommand;   _Name:=tedit.Create(frm);   _Name.parent:=frm;   _Name.align := alTop;   _Name.Text := '';   frm.Show; end; procedure SaveToFile(prefix:string); var name:string; begin      name := prefix+'.'+ConnectName+'.'+DateToStr(Date)+'.'+TimeToStr(Time)+'.txt';      while Pos(':',name) <> 0 do begin            name[Pos(':',name)] := '-';      end;      m.Lines.SaveToFile(name); end; procedure Free; begin   SaveToFile('ChatLog');   box.Free;   every.Free;   tm.Free;   etext.Free;   button.Free;   penel.Free;   m.Free;   frm.Free; end; var tp:integer; var ct:string; var MessageCounter:integer; begin if _Name.Text = '' then _Name.Text := ConnectName; if FromServer and (ConnectName = _Name.Text) and (pck[1]=#$4a) then   begin     i:=10;     name:=ReadS(i);     message:=ReadS(i);     tp := ReadD(6);     ct := '???';     if tp = 0 then ct := 'GNR';     if tp = 8 then ct := 'TRD';     if tp = 3 then ct := 'PRT';     if tp = 4 then ct := 'CLN';     if tp = 9 then ct := 'ALY';     ct := DateToStr(Date) + ' '+ TimeToStr(Time) + ', '+ ct;     if name='' then name:='Объявление: ';     m.Lines.Add('['+ct+'] '+Name+': '+message);     if MessageCounter > MaxMessages then begin        SaveToFile('Backup');        //m.Lines.Add('BACKUPED');        MessageCounter := 0;     end;     MessageCounter := MessageCounter+1;   end; end.
clyr вне форума   Ответить с цитированием
За это сообщение clyr нажился 14 спасибками от:
 

  CoderX :: Forums > Lineage II > L2PacketHack > Жесткий скриптинг


Опции темы
Опции просмотра

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 13:19.

vBulletin style designed by MSC Team.
Powered by vBulletin® Version 3.6.11
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Locations of visitors to this page
Rambler's Top100

Вы хотите чувствовать себя в безопасности? чоп Белган обеспечит её!