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

Скриптинг Форум посвещенный созданию скриптов для L2PacketHack

Чат (Новых сообщений с момента вашего последнего визита нет)
Загрузка...
Задавайте ваши вопросы на форуме. Чат предназначен для небольших разговоров.
 
Ответ
 
Опции темы Опции просмотра
Старый 05.10.2010, 17:12   #1
Местный
 
Регистрация: 11.06.2010
Сообщений: 644
Сказал Спасибо: 119
Имеет 85 спасибок в 77 сообщенях
dyh9l пока неопределено
По умолчанию Синтаксис ругается)))

PHP код:
const
name 'tester1oo5oo' ;
var
Timer01:TTimer;
TimerCyrcle01:Integer;

procedure Init
begin
Timer01 
:= TTimer.Create(nil) ;
Timer01.Interval := 500;
Timer01.Enabled := False ;
Timer01.Ontimer := @OnTimer01 ;
end;

procedure Free
begin
Timer01
.Free ;
end;

Procedure OnTimer01(Sender TObject) ;
begin
case TimerCyrcle01 of
1
begin       buf := hstr('04 76 19 10 48') ;
               
SendToServerEx(name) ;
   
end;
2begin       buf := hstr('21 6D 00 65 00 6E 00 75 00 5F 00 73 00 65 00 6C 00 65 00 63 00 74 00 3F 00 61 00 73 00 6B 00 3D 00 2D 00 33 00 30 00 33 00 26 00 72 00 65 00 70 00 6C 00 79 00 3D 00 35 00 37 00 37 00 00 00') ;
               
SendToServerEx(name) ;
   
end;
3begin       buf := hstr('21 6D 00 65 00 6E 00 75 00 5F 00 73 00 65 00 6C 00 65 00 63 00 74 00 3F 00 61 00 73 00 6B 00 3D 00 2D 00 33 00 30 00 33 00 26 00 72 00 65 00 70 00 6C 00 79 00 3D 00 35 00 37 00 37 00 00 00') ;
               
SendToServerEx(name) ;
   
end;
end;
begin
if FromClient and((pck=HStr('38 41 04 42 04 30 04 40 04 42 04 00 00 00 00 00 00'))) then begin
Timer01
.enabled:=true;
end
На последнем энде ругается, где ошибка?
dyh9l вне форума   Ответить с цитированием
Старый 05.10.2010, 17:27   #2
Местный
 
Аватар для J-Fobos
 
Регистрация: 09.06.2008
Сообщений: 867
Сказал Спасибо: 175
Имеет 468 спасибок в 259 сообщенях
J-Fobos пока неопределено
По умолчанию

Еще одного end; не хватает. После включения таймера.
Ну или убрать лишний begin, после then.
__________________

В любом из нас спит гений. И с каждым днем все крепче.

Переходим на протокол нового поколения jabber
J-Fobos вне форума   Ответить с цитированием
Старый 05.10.2010, 18:16   #3
Местный
 
Регистрация: 11.06.2010
Сообщений: 644
Сказал Спасибо: 119
Имеет 85 спасибок в 77 сообщенях
dyh9l пока неопределено
По умолчанию

Цитата:
Сообщение от J-Fobos Посмотреть сообщение
Еще одного end; не хватает. После включения таймера.
Ну или убрать лишний begin, после then.
PHP код:
const
name 'tester1oo5oo' ;
var
Timer01:TTimer;
TimerCyrcle01:Integer;

procedure Init
begin
Timer01 
:= TTimer.Create(nil) ;
Timer01.Interval := 500;
Timer01.Enabled := False ;
Timer01.Ontimer := @OnTimer01 ;
end;

procedure Free
begin
Timer01
.Free ;
end;

Procedure OnTimer01(Sender TObject) ;
begin
case TimerCyrcle01 of
1
begin       buf := hstr('04 76 19 10 48') ;
               
SendToServerEx(name) ;
   
end;
2begin       buf := hstr('21 6D 00 65 00 6E 00 75 00 5F 00 73 00 65 00 6C 00 65 00 63 00 74 00 3F 00 61 00 73 00 6B 00 3D 00 2D 00 33 00 30 00 33 00 26 00 72 00 65 00 70 00 6C 00 79 00 3D 00 35 00 37 00 37 00 00 00') ;
               
SendToServerEx(name) ;
   
end;
3begin       buf := hstr('21 6D 00 65 00 6E 00 75 00 5F 00 73 00 65 00 6C 00 65 00 63 00 74 00 3F 00 61 00 73 00 6B 00 3D 00 2D 00 33 00 30 00 33 00 26 00 72 00 65 00 70 00 6C 00 79 00 3D 00 35 00 37 00 37 00 00 00') ;
               
SendToServerEx(name) ;
   
end;
end;
begin
if FromClient and((pck=HStr('38 41 04 42 04 30 04 40 04 42 04 00 00 00 00 00 00'))) then begin
Timer01
.enabled:=trueend;
end
все ровно не хочет, пробывал добавлять еще эндов, получилось что на
end;end;end; оно еще кричало на последний энд с точкой, а если ставить уже 4 энд то кричало на 4-ый и забывало на то что с точкой
dyh9l вне форума   Ответить с цитированием
Старый 05.10.2010, 18:47   #4
Местный
 
Регистрация: 27.01.2009
Сообщений: 154
Сказал Спасибо: 23
Имеет 26 спасибок в 19 сообщенях
guplen пока неопределено
По умолчанию

Case Должен заканчиваться end'ом.

Код:
Procedure OnTimer01(Sender : TObject) ;
begin
    case TimerCyrcle01 of
          1: begin       
                  buf := hstr('04 76 19 10 48') ;
                  SendToServerEx(name) ;
             end;
          2: begin       
                  buf := hstr('21 6D ... 00') ;
                  SendToServerEx(name) ;
             end;
          3: begin       
                  buf := hstr('21 6D ... 00') ;
                  SendToServerEx(name) ;
             end;
    end;
end;

Последний раз редактировалось guplen, 05.10.2010 в 18:53.
guplen вне форума   Ответить с цитированием
За это сообщение guplen нажился спасибкой от:
Старый 05.10.2010, 20:38   #5
Местный
 
Регистрация: 11.06.2010
Сообщений: 644
Сказал Спасибо: 119
Имеет 85 спасибок в 77 сообщенях
dyh9l пока неопределено
По умолчанию

спасибо буду знать

Добавлено через 8 минут
А теперь помогите пож разобратся с самим скриптом.
PHP код:
const
name 'tester1oo5oo' ;
var
Timer01:TTimer;
TimerCyrcle01:Integer;

procedure Init
begin
Timer01 
:= TTimer.Create(nil) ;
Timer01.Interval := 1500;
Timer01.Enabled := False ;
Timer01.Ontimer := @OnTimer01 ;
end;

procedure Free
begin
Timer01
.Free ;
end;

Procedure OnTimer01(Sender TObject) ;
begin
case TimerCyrcle01 of
1
begin       buf := hstr('04 76 19 10 48') ;
               
SendToServerEx(name) ;
   
end;
2begin       buf := hstr('04 76 19 10 48') ;
               
SendToServerEx(name) ;
   
end;
3begin       buf := hstr('21 6D 00 65 00 6E 00 75 00 5F 00 73 00 65 00 6C 00 65 00 63 00 74 00 3F 00 61 00 73 00 6B 00 3D 00 2D 00 33 00 30 00 33 00 26 00 72 00 65 00 70 00 6C 00 79 00 3D 00 35 00 37 00 37 00 00 00') ;
               
SendToServerEx(name) ;
   
end;
   
end;
end;
begin
if FromClient and((pck=HStr('38 41 04 42 04 30 04 40 04 42 04 00 00 00 00 00 00'))) then begin
TimerCyrcle01
:=1;
Timer01.enabled:=trueend;
end
Все время выполняется первый (или второй пакет) циклом, тоесть неперходит на третий пакет

Добавлено через 1 час 28 минут
эй ребят, нельзя чтоб тема упала без ответа)

Последний раз редактировалось dyh9l, 05.10.2010 в 20:38. Причина: Добавлено сообщение
dyh9l вне форума   Ответить с цитированием
За это сообщение dyh9l нажился спасибкой от:
Старый 05.10.2010, 20:48   #6
Местный
 
Аватар для supernewbie
 
Регистрация: 23.09.2009
Сообщений: 1,232
Сказал Спасибо: 119
Имеет 172 спасибок в 134 сообщенях
supernewbie пока неопределено
По умолчанию

а что с ним собственно? почему не увеличиваешь переменную?

delphi Код:
Procedure OnTimer01(Sender : TObject) ; begin case TimerCyrcle01 of 1: begin       buf := hstr('04 76 19 10 48') ;                SendToServerEx(name) ;                TimerCyrcle01:=2;    end; 2: begin       buf := hstr('04 76 19 10 48') ;                SendToServerEx(name) ;                TimerCyrcle01:=3;    end; 3: begin       buf := hstr('21 6D 00 65 00 6E 00 75 00 5F 00 73 00 65 00 6C 00 65 00 63 00 74 00 3F 00 61 00 73 00 6B 00 3D 00 2D 00 33 00 30 00 33 00 26 00 72 00 65 00 70 00 6C 00 79 00 3D 00 35 00 37 00 37 00 00 00') ;                SendToServerEx(name) ;               TimerCyrcle01:=1;    end;    end; end;
__________________
Начало.

Последний раз редактировалось supernewbie, 05.10.2010 в 20:48. Причина: Добавлено сообщение
supernewbie вне форума   Ответить с цитированием
За это сообщение supernewbie нажился спасибкой от:
Старый 05.10.2010, 22:21   #7
Местный
 
Регистрация: 11.06.2010
Сообщений: 644
Сказал Спасибо: 119
Имеет 85 спасибок в 77 сообщенях
dyh9l пока неопределено
По умолчанию

Цитата:
Сообщение от supernewbie Посмотреть сообщение
а что с ним собственно? почему не увеличиваешь переменную?

delphi Код:
Procedure OnTimer01(Sender : TObject) ; begin case TimerCyrcle01 of 1: begin       buf := hstr('04 76 19 10 48') ;                SendToServerEx(name) ;                TimerCyrcle01:=2;    end; 2: begin       buf := hstr('04 76 19 10 48') ;                SendToServerEx(name) ;                TimerCyrcle01:=3;    end; 3: begin       buf := hstr('21 6D 00 65 00 6E 00 75 00 5F 00 73 00 65 00 6C 00 65 00 63 00 74 00 3F 00 61 00 73 00 6B 00 3D 00 2D 00 33 00 30 00 33 00 26 00 72 00 65 00 70 00 6C 00 79 00 3D 00 35 00 37 00 37 00 00 00') ;                SendToServerEx(name) ;               TimerCyrcle01:=1;    end;    end; end;
спасиб, а можно чтоб он выполнил все нужные пакеты тока 1 раз, а не зацикленно?

Добавлено через 3 минуты
и от чего зависят эти цифры?
TimerCyrcle01:=1;

Последний раз редактировалось dyh9l, 05.10.2010 в 22:21. Причина: Добавлено сообщение
dyh9l вне форума   Ответить с цитированием
Старый 05.10.2010, 22:31   #8
Местный
 
Аватар для supernewbie
 
Регистрация: 23.09.2009
Сообщений: 1,232
Сказал Спасибо: 119
Имеет 172 спасибок в 134 сообщенях
supernewbie пока неопределено
По умолчанию

delphi Код:
Procedure OnTimer01(Sender : TObject) ; begin case TimerCyrcle01 of 1: begin       buf := hstr('04 76 19 10 48') ;                SendToServerEx(name) ;                TimerCyrcle01:=2;    end; 2: begin       buf := hstr('04 76 19 10 48') ;                SendToServerEx(name) ;                TimerCyrcle01:=3;    end; 3: begin       buf := hstr('21 6D 00 65 00 6E 00 75 00 5F 00 73 00 65 00 6C 00 65 00 63 00 74 00 3F 00 61 00 73 00 6B 00 3D 00 2D 00 33 00 30 00 33 00 26 00 72 00 65 00 70 00 6C 00 79 00 3D 00 35 00 37 00 37 00 00 00') ;                SendToServerEx(name) ;                TimerCyrcle01:=1;                Timer01.Enabled := False;    end;    end; end;

Дак ты проверяешь, если 1: то отправлять такой пакет, если 2: то отправлять такой пакет, если 3: то отправлять такой пакет.
А тут ты делаешь переменную равную 1, таймер проверяет, переменная равна 1... Отправляет пакет и делает её равной 2. Потом снова палит, переменная равна 2, отпраляет пакет и делает её равной 3 и так по кругу) короче хреновый из меня учитель)
я лично не вижу различей вот в этом коде

delphi Код:
Procedure OnTimer01(Sender : TObject) ; begin if TimerCyrcle01=1 then begin buf := hstr('04 76 19 10 48') ; SendToServerEx(name) ; TimerCyrcle01:=2; exit; end; if TimerCyrcle01=2 then begin        buf := hstr('04 76 19 10 48') ;              SendToServerEx(name) ;                TimerCyrcle01:=3; exit; end; if TimerCyrcle01=3 then begin        buf := hstr('21 6D 00 65 00 6E 00 75 00 5F 00 73 00 65 00 6C 00 65 00 63 00 74 00 3F 00 61 00 73 00 6B 00 3D 00 2D 00 33 00 30 00 33 00 26 00 72 00 65 00 70 00 6C 00 79 00 3D 00 35 00 37 00 37 00 00 00') ; SendToServerEx(name) ;                TimerCyrcle01:=1;                Timer01.Enabled := False; exit; end; end;

разве что case удобнее
__________________
Начало.

Последний раз редактировалось supernewbie, 05.10.2010 в 22:38.
supernewbie вне форума   Ответить с цитированием
За это сообщение supernewbie нажился спасибкой от:
Ответ

  CoderX :: Forums > Lineage II > L2PacketHack > Скриптинг



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

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


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

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

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