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

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

Чат (Новых сообщений с момента вашего последнего визита нет)
Загрузка...
Задавайте ваши вопросы на форуме. Чат предназначен для небольших разговоров.
 
Ответ
 
Опции темы Опции просмотра
Старый 29.10.2009, 18:56   #1
Новичок
 
Аватар для Shadow
 
Регистрация: 06.08.2008
Сообщений: 27
Сказал Спасибо: 8
Имеет 11 спасибок в 7 сообщенях
Shadow пока неопределено
Восклицание Скрипт на обмен (HB)

Написал простой скрипт на обмен КоЛов, и обмен на гейтпассы. Но где-то ошибка, и не могу понять где. Скрипт нормально обменивает колы, но потом утыкается и не хочет переходить на вторую часть.
Да, и еще, как можно сделать проверку на конкретный пакет s19=NpcHtmlMessage:d(MessageID)s(HTML)d(d)?
Id у них одинаковые, но мессаги внутри разные. Нужно их как-то определять, и исходя из сообщения, направлять скрипт.

ЗЫ Сам запостил, сам поковырял, сам исправил =) Выкладываю рабочую версию. Запускается действием Приветствие.
Вложения
Тип файла: txt Exchange2.txt (6.3 Кб, 40 просмотров)
__________________
Shadows anywhere...

Последний раз редактировалось Shadow, 30.10.2009 в 01:14.
Shadow вне форума   Ответить с цитированием
Старый 29.10.2009, 19:01   #2
Новичок
 
Аватар для Shadow
 
Регистрация: 06.08.2008
Сообщений: 27
Сказал Спасибо: 8
Имеет 11 спасибок в 7 сообщенях
Shadow пока неопределено
По умолчанию

delphi Код:
//Константы const   Name='Nick'; //Вписать сюда имя чара   DebugMode=False; //***   Max=100;     //количество слотов в инвентаре чара   kID=1023000; //смещение C6 //------------------------------------------------------------------------------ //Список переменных var   Item, Cnt: integer;   ReadyBuy, ReadyChange, NeedToBuy, NeedToChange, Start, TimerRun: boolean;   Timer1: TTimer;   BuyDelay, ScriptDelay: integer;   MyX, MyY, MyZ, MyOID, ObjectID: integer; //Статы //============================================================================== //****************************************************************************** //21=RequestBypassToServer:s(Cmd) procedure RequestByPassToServer(cmd:string); begin   buf:=#$23;   WriteS(cmd);   SendToServerEx(Name); end; //****************************************************************************** procedure RequestMultiSellChoose(ListId, EntryID, Count:integer); begin   SendMsg_to_Private('Покупаем ListID:'+IntToStr(ListID)+' EntryID:'+IntToStr(EntryID)+' в кол-ве:'+IntToStr(count));   buf:=#$B0;   WriteD(ListID);   WriteD(EntryId);   WriteD(Count);   SendToServerEx(Name); end; //============================================================================== //****************************************************************************** procedure Init; //Вызывается при включении скрипта begin    Timer1:=TTimer.Create(nil);    Timer1.OnTimer:=@OnTimer1;    Timer1.Enabled:=false;    Timer1.Interval:=1000;    TimerRun:=False;    Cnt:=0;       Start:=True; end; //***--------------------------------------------------------------------------- procedure Free; //Вызывается при выключении скрипта begin   Timer1.free; end; //***--------------------------------------------------------------------------- //============================================================================== procedure OnTimer1(Sender: TObject); begin  if Start then begin   MenuChange;   Start:=False;  end;   if NeedToChange then begin   DebugMsg('Menu ->');   MenuChange;   DebugMsg('>- Change');  end;  if NeedToBuy then begin   DebugMsg('Menu ->');   MenuBuy;   DebugMsg('>- Buy');  end;  DebugMsg('Timer '+inttostr(Cnt)+' - '+(Name));  Cnt:=(Cnt+1); end; //***--------------------------------------------------------------------------- procedure MenuChange; begin   buf := HStr('22 7A 00 7A 00 7A 00 5F 00 72 00 65 00 6C 00 61 00 78 00 5F 00 63 00 61 00 74 00 31 00 5F 00 39 00 36 00 30 00 2E 00 68 00 74 00 6D 00 00 00');   ReadyChange:=True;   SendToServerEx(Name);   delay(150); end; //***--------------------------------------------------------------------------- procedure MenuBuy; begin   buf := HStr('22 7A 00 7A 00 7A 00 5F 00 72 00 65 00 6C 00 61 00 78 00 5F 00 63 00 61 00 74 00 31 00 5F 00 39 00 30 00 30 00 2E 00 68 00 74 00 6D 00 00 00');   SendToServerEx(Name);   DebugMsg('1 ->');   delay(300);   buf := HStr('22 7A 00 7A 00 7A 00 5F 00 72 00 65 00 6C 00 61 00 78 00 5F 00 63 00 61 00 74 00 31 00 5F 00 39 00 30 00 37 00 2E 00 68 00 74 00 6D 00 00 00');   ReadyBuy:=True;   SendToServerEx(Name);   DebugMsg('2 ->');   delay(150); end; //***--------------------------------------------------------------------------- procedure MenuReturn; begin   buf := HStr('22 7A 00 7A 00 7A 00 5F 00 72 00 65 00 6C 00 61 00 78 00 5F 00 63 00 61 00 74 00 31 00 5F 00 30 00 30 00 31 00 2E 00 68 00 74 00 6D 00 00 00');   SendToServerEx(Name);   delay(150); end; //***--------------------------------------------------------------------------- //###################### Сообщения ############################################# // послать сообщение в чат себе procedure SendMsg_to_Chat(ChatType: integer; msg:string)// отправка системных сообщений клиенту begin   buf:=#$4A;   WriteD(0);   WriteD(ChatType);   WriteS(Name);   WriteS(msg);   SendToClientEx(Name); end; // послать отладочное сообщение себе procedure DebugMsg(msg:string); begin   if DebugMode then     SendMsg_to_Private(msg); end; // послать сообщение себе в приват procedure SendMsg_to_Private(msg:string); begin   SendMsg_to_Chat(2,msg); end; //###############################################################################  
__________________
Shadows anywhere...

Последний раз редактировалось Shadow, 29.10.2009 в 20:48.
Shadow вне форума   Ответить с цитированием
За это сообщение Shadow нажился 2 спасибками от:
Старый 29.10.2009, 19:02   #3
Новичок
 
Аватар для Shadow
 
Регистрация: 06.08.2008
Сообщений: 27
Сказал Спасибо: 8
Имеет 11 спасибок в 7 сообщенях
Shadow пока неопределено
По умолчанию

Я чего-то не понял, как код теперь всталять, если ограничение в 5000 символов???
delphi Код:
//основная часть скрипта //вызывается при приходе каждого пакета если скрипт включен begin  //****************************************************************************  //не обрабатываем пустые пакеты  if pck='' then exit;  //****************************************************************************  if FromClient and (pck=#$34#$02#$00#$00#$00) then begin   if Not TimerRun then begin    Timer1.Enabled:=True;    TimerRun:=True;    DebugMsg('Timer Running');   end;   end;  if ReadyChange then begin  NeedToChange:=False;  NeedToBuy:=False;   if (ConnectName=Name) and FromServer then begin    DebugMsg('S>Need to Change. Timer Stop');    Timer1.Enabled:=False;    case pck[1] of    //s0F=NpcHtmlMessage:d(MessageID)s(HTML)d(d)     #$19: begin      //DebugMsg(IntToStr(ReadD(4)));      //шлем запрос выбора пункта - продажа c21=RequestBypassToServer:s(Cmd)      delay(150);      RequestByPassToServer('menu_select?ask=-11&reply=19001');      DebugMsg('C>Пакет RequestBypassToServer');     end;     #$D0: begin      Timer1.Enabled:=False;      DebugMsg('S>Пакет MultiSellList #$D0');      RequestMultiSellChoose(19001, 3, 1);      delay(350);      ReadyChange:=False;      MenuReturn;      NeedToBuy:=True;      Timer1.Enabled:=True;     end;    end;   end;  end;  if ReadyBuy then begin  NeedToChange:=False;  NeedToBuy:=False;   if (ConnectName=Name) and FromServer then begin    DebugMsg('S>Need to Buy. Timer Stop');    Timer1.Enabled:=False;    case pck[1] of    //s0F=NpcHtmlMessage:d(MessageID)s(HTML)d(d)     #$19: begin      //DebugMsg(IntToStr(ReadD(4)));      //шлем запрос выбора пункта - продажа c21=RequestBypassToServer:s(Cmd)      delay(150);      RequestByPassToServer('menu_select?ask=-9&reply=15006');      DebugMsg('C>Пакет RequestBypassToServer');     end;     #$D0: begin      Timer1.Enabled:=False;      DebugMsg('S>Пакет MultiSellList #$D0');      RequestMultiSellChoose(15006, 11, 1333);      delay(350);      ReadyBuy:=False;      MenuReturn;      NeedToChange:=True;      Timer1.Enabled:=True;     end;    end;   end;  end; end.
__________________
Shadows anywhere...

Последний раз редактировалось Shadow, 29.10.2009 в 20:48.
Shadow вне форума   Ответить с цитированием
За это сообщение Shadow нажился 2 спасибками от:
Старый 30.10.2009, 00:09   #4
Рыцарь
 
Аватар для NLObP
 
Регистрация: 25.02.2008
Адрес: г.Волгоград
Сообщений: 2,009
Сказал Спасибо: 1,285
Имеет 1,458 спасибок в 793 сообщенях
NLObP пока неопределено
По умолчанию

Цитата:
Сообщение от Shadow Посмотреть сообщение
Я чего-то не понял, как код теперь всталять, если ограничение в 5000 символов???
Прикрепляй файлом.
__________________
| Для самых ленивый | Телепаты в отпуске |Мы работаем над этим |
Не умеешь - учись, не хочешь учиться - плати © Суровый Закон Жизни


NLObP вне форума   Ответить с цитированием
За это сообщение NLObP нажился спасибкой от:
Ответ

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



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

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


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

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

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