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

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

Чат (Новых сообщений с момента вашего последнего визита нет)
Загрузка...
Задавайте ваши вопросы на форуме. Чат предназначен для небольших разговоров.
 
Ответ
 
Опции темы Опции просмотра
Старый 05.03.2010, 14:58   #11
Пользователь
 
Регистрация: 19.02.2010
Сообщений: 49
Сказал Спасибо: 1
Имеет 35 спасибок в 12 сообщенях
Vilson пока неопределено
По умолчанию

Цитата:
Сообщение от Sherman Посмотреть сообщение
Этот код работаит? Помоему case понимает только цыфры :-D
Цитата:
Expression -> SimpleExpression [RelOp SimpleExpression]...

SimpleExpression -> ['-'] Term [AddOp Term]...

Term -> Factor [MulOp Factor]...

Factor -> Designator
-> UnsignedNumber
-> String
-> '(' Expression ')'
-> NOT Factor
-> '[' SetConstructor ']'

CaseStmt -> CASE Expression OF CaseSelector/';'...
ЗЫ Не путай FasrScript и Паскаль.

Добавлено через 6 минут
Цитата:
Сообщение от supernewbie Посмотреть сообщение
дело не в пакетах, я переставлял их там. Хоть какие ставь, case pck of просто не работает!!! Эта проверка не робит и все. Дело не в пакетах. Инфа 100%.
Ты так и не ответил - ники чаров у тебя какие, 01 и 02? на остальные вопросы ты тоже не ответил. Ладно, замени case на if

Цитата:
if FromServer and (ConnectName='01') then
begin
if (pck= '29 1C 58 90 49 00 00 00 00 4D BF FE FF 08 57 02 00 A0 F3 FF FF') then TimerPck.Enabled := True;
if (pck='29 1C 58 90 49 01 00 00 00 4D BF FE FF 08 57 02 00 A0 F3 FF FF') and (TimerPck.Enabled) then PckIn := True;
end;
Что теперь?

Последний раз редактировалось Vilson, 05.03.2010 в 15:03. Причина: Добавлено сообщение
Vilson вне форума   Ответить с цитированием
Старый 05.03.2010, 15:06   #12
Местный
 
Аватар для Breadfan
 
Регистрация: 29.04.2008
Сообщений: 830
Сказал Спасибо: 80
Имеет 230 спасибок в 169 сообщенях
Breadfan пока неопределено
По умолчанию

точно-точно: жили-жили, и не замечали что оказывается case ... of просто не работает....
Зачем ты в условия пакет пихаешь с жестким указанием координат чаров?? Вот что мне интересно

PS: кстати да, "Дело не в пакетах. Инфа 100%" - это ты верно подметил ))))
__________________
На фразы в аську типа "слух карочь 1)как точить 2)как раскачаться за 5 мин" - игнор. ИМХО идиотизм
Дай голодному рыбу - он будет один день сыт. Покажи ему, как удить рыбу - он пошлёт тебя и скажет, что у него есть более интересные занятия, чем забрасывать снасти в воду
David Kastrup @ de.comp.text.tex.
"Приобретенные навыки общения с маленькими детьми - сильно упрощают взаимопонимание на форумах..."

А вы знаете, что для качественной сварки - место шва нужно протереть спиртом?

Последний раз редактировалось Breadfan, 05.03.2010 в 15:10.
Breadfan вне форума   Ответить с цитированием
Старый 05.03.2010, 15:15   #13
Пользователь
 
Регистрация: 19.02.2010
Сообщений: 49
Сказал Спасибо: 1
Имеет 35 спасибок в 12 сообщенях
Vilson пока неопределено
По умолчанию

да он вообще тут фигню проверяет, под его условие достаточно сделать так
delphi Код:
if FromServer and (ConnectName='01') then        case pck[1] of    #$29:if not TimerPck.Enabled then TimerPck.Enabled := True else PckIn := True;      end;

Моего терпения хватит еще на 1-2 ответа..

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

госпади все равно ничего не работает(
не хотел палить скрипт, но ладно, выложу...

Код:
Var
 PckIn: Boolean = False;
 TimerPck: TTimer;

procedure Init; 
begin
 TimerPck:=TTimer.Create(nil);
 TimerPck.OnTimer:=@OnTimerPck;
 TimerPck.Enabled:=False;
 TimerPck.interval:=5000;
end;

procedure OnTimerPck(Sender: TObject);
begin
 if PckIn then
 begin
   buf:=HStr('17 C7 53 35 40 01 00 00 00 7C C9 FE FF 6A 57 02 00 8D F3 FF FF');
   SendToServerEx('Jou');
 end;
 TimerPck.Enabled := False;
 PckIn := False;    
end;

procedure Free; 
begin
 TimerPck.Free;
end;

begin
if FromServer and (ConnectName='Karog') then
begin
if (pck='62 1E 00 00 00 01 00 00 00 03 00 00 00 B5 05 00 00') then TimerPck.Enabled := True;
if (pck='62 1E 00 00 00 01 00 00 00 03 00 00 00 53 08 00 00') and (TimerPck.Enabled) then PckIn := True;
end;           
end.
Не робит абсолютно(
supernewbie вне форума   Ответить с цитированием
Старый 05.03.2010, 15:51   #15
Пользователь
 
Регистрация: 19.02.2010
Сообщений: 49
Сказал Спасибо: 1
Имеет 35 спасибок в 12 сообщенях
Vilson пока неопределено
По умолчанию

Цитата:
Сообщение от supernewbie Посмотреть сообщение
не хотел палить скрипт, но ладно, выложу...
Не робит абсолютно(
Это не скрипт, это набор бессмысленного кода. Какие у тебя хроники и что по твоему должен делать этот "скрипт"?
Vilson вне форума   Ответить с цитированием
Старый 05.03.2010, 16:11   #16
Местный
 
Аватар для supernewbie
 
Регистрация: 23.09.2009
Сообщений: 1,232
Сказал Спасибо: 119
Имеет 172 спасибок в 134 сообщенях
supernewbie пока неопределено
По умолчанию

Цитата:
Сообщение от Vilson Посмотреть сообщение
Это не скрипт, это набор бессмысленного кода. Какие у тебя хроники и что по твоему должен делать этот скрипт?
Хроники ХБ. Скрипт должен проверять когда приходит сообщение что я получил кристал, потом он в течении 5 секунд проверяет не пришло ли сообщение что я получил гем, если гем я не получил, то Второй чел выбрасывает кристал.
supernewbie вне форума   Ответить с цитированием
Старый 05.03.2010, 16:52   #17
Пользователь
 
Регистрация: 19.02.2010
Сообщений: 49
Сказал Спасибо: 1
Имеет 35 спасибок в 12 сообщенях
Vilson пока неопределено
По умолчанию

Цитата:
Сообщение от supernewbie Посмотреть сообщение
Хроники ХБ. Скрипт должен проверять когда приходит сообщение что я получил кристал, потом он в течении 5 секунд проверяет не пришло ли сообщение что я получил гем, если гем я не получил, то Второй чел выбрасывает кристал.
Пакет который ты хочешь отправить:

Цитата:
Tип: 0x19 (UseItem)
Pазмер: 9+2
0002 d ObjectID: 1076569698 (0x402B2662)
0006 d Unknown: 0 (0x00000000)
---
Ты уверен что правильно получил ObjectID: 1076569698? Как ты его получил? Ты не забыл что при получении нового предмета ObjectID будет уже совсем другой?

Пакеты которые ты анализируешь выглядят не совсем правильно:

Цитата:
Tип: 0x62 (SystemMessage)
Pазмер: 17+2
0002 d MsgID: Получено: $s1. ID:30 (0x001E)
0006 d typesCount: 1 (0x00000001)
[Начало повторяющегося блока 1/1]
0010 d 0=Str,1=Int,2=NpcID,3=ItmID,4=SklID,6=Amnt: 3 (0x00000003)
0014 s data: ?
[Конец повторяющегося блока 1/1]
Vilson вне форума   Ответить с цитированием
Старый 05.03.2010, 17:35   #18
Местный
 
Аватар для supernewbie
 
Регистрация: 23.09.2009
Сообщений: 1,232
Сказал Спасибо: 119
Имеет 172 спасибок в 134 сообщенях
supernewbie пока неопределено
По умолчанию

если в стопке то не меняется.

Добавлено через 23 минуты
вообщем дело не в пакетах... он просто не врубает таймер, скорее всего проверка не робит твоя...

Последний раз редактировалось supernewbie, 05.03.2010 в 17:35. Причина: Добавлено сообщение
supernewbie вне форума   Ответить с цитированием
Старый 05.03.2010, 18:47   #19
Пользователь
 
Регистрация: 19.02.2010
Сообщений: 49
Сказал Спасибо: 1
Имеет 35 спасибок в 12 сообщенях
Vilson пока неопределено
По умолчанию

Цитата:
Сообщение от supernewbie Посмотреть сообщение
вообщем дело не в пакетах... он просто не врубает таймер, скорее всего проверка не робит твоя...
Ну да, в пакете которым ты пытаешься выкинуть итем не хватает Z координаты и по этому он никогда не сработает, но ты прав - дело не в пакетах, дело в руках.

delphi Код:
Var  PckIn: Boolean = False;  TimerPck: TTimer; procedure Init; begin  TimerPck:=TTimer.Create(nil);  TimerPck.OnTimer:=@OnTimerPck;  TimerPck.Enabled:=False;  TimerPck.interval:=5000; end; procedure OnTimerPck(Sender: TObject); begin  SendMsg2('Karog', 'сработал таймер');  if not PckIn then  begin    SendMsg2('Karog', 'вместо этого потом будем посылать пакет на выкинуть итем');           end;  TimerPck.Enabled := False;  PckIn := False;    end; procedure Free; begin  TimerPck.Free; end; procedure SendMsg2(MyName, msg:string); begin   buf:=#$4A;   WriteD(0);   WriteD(10);   WriteS('');   WriteS(msg);   SendToClientEx(MyName); end; begin  if FromServer and (ConnectName='Karog') then  begin   if (pck[1]=#$62) and (ReadD(6)=1) then   begin     if (ReadD(14)=1461) then     begin      SendMsg2('Karog', 'получен кристал А');      if not TimerPck.Enabled then TimerPck.Enabled := True;                end;     if (ReadD(14)=2131) and (TimerPck.Enabled) then     begin      SendMsg2('Karog', 'получен gem');      PckIn := True;                end;   end;  end;                        end.

Что пишет в гм-чате?

Последний раз редактировалось Vilson, 05.03.2010 в 18:54.
Vilson вне форума   Ответить с цитированием
Старый 05.03.2010, 18:59   #20
Местный
 
Аватар для supernewbie
 
Регистрация: 23.09.2009
Сообщений: 1,232
Сказал Спасибо: 119
Имеет 172 спасибок в 134 сообщенях
supernewbie пока неопределено
По умолчанию

Подбираю кристал - пишет подобран кристал, если подбираю гем, пишет что подобран гем, НО в любом случае, то есть, если подбираю или не подбираю, в любом случае пишет что таймер сработал...

Добавлено через 2 минуты
А мне надо чтобы таймер срабатывал только если я НЕ получил гем...

Последний раз редактировалось supernewbie, 05.03.2010 в 18:59. Причина: Добавлено сообщение
supernewbie вне форума   Ответить с цитированием
Ответ

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


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

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

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


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

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

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