L2PacketHack Форум программы L2PacketHack, всё что с ней связано находится тут.
Правила раздела! Категорически запрещено:
* Просить пакеты/скрипты на шмот/адену/другие вещи;
* Просить (помочь) взломать/сломать сервак/аккаунт или раздеть/наказать кого-то на любом серваке;
* Просить научить работать с программой, если не понимаете элементарных вещей в отношениях клиент-сервер (так как, если вы их понимаете, то вопросов по основным возможностям программы быть недолжно);
* Все посты не удовлетворяющие этим запретам, а так же не относящиеся к теме будут удаляться при первой возможности.
* Запрещается создавать темы с просьбой выполнить какую-то работу за автора темы.
* Форум является средством общения и общего поиска решения. Вашу работу за Вас никто выполнять не будет.
* Данные запреты неподлежат обсуждению.
Обсуждение багов Lineage ЗАПРЕЩЕНО!
17.04.2009, 21:46
#41
Новичок
Регистрация: 17.04.2009
Сообщений: 17
Сказал Спасибо: 2
Имеет 2 спасибок в 2 сообщенях
что бы не создовать лишней темы решил спросить тут поскольку касается абисса:
дело в том что на абиссе при трейде с кем то во время этого нельзя удалять или перемещать вещи страйдеру к примеру, есть ли способ обойти это?
17.04.2009, 21:54
#42
Рыцарь
Регистрация: 07.03.2009
Сообщений: 9,139
Сказал Спасибо: 70
Имеет 2,820 спасибок в 1,735 сообщенях
QaK ,так и сделаю...
(я серьезно)
__________________
L2Ext - project closed.
18.04.2009, 01:35
#43
Новичок
Регистрация: 17.04.2009
Сообщений: 3
Сказал Спасибо: 0
Имеет 0 спасибок в 0 сообщенях
какие все умные,а я то и читать не умею как будто...
настроил всё,не пашет
18.04.2009, 12:23
#44
Новичок
Регистрация: 25.03.2009
Адрес: NovosiBEERsk
Сообщений: 8
Сказал Спасибо: 6
Имеет 0 спасибок в 0 сообщенях
Цитата:
Сообщение от
NLObP
...
Для проверки исправил скрипт рыбалки для грации, теперь он записывает маршрут, бегает по нему в обе стороны, видит инвентарь.
Будь добр, выложи этот скрипт. Именно под кривую Грацию Абисса
буду признателен.
18.04.2009, 15:43
#45
Рыцарь
Регистрация: 25.02.2008
Адрес: г.Волгоград
Сообщений: 2,009
Сказал Спасибо: 1,285
Имеет 1,458 спасибок в 793 сообщенях
Цитата:
Сообщение от
Dimka
Будь добр, выложи этот скрипт. Именно под кривую Грацию Абисса
буду признателен.
Скрипт рыбалки by NLObP для Абисс
delphi Код:
//Автоматизация ловли рыбы by NLObP для L2PacketHack v.3.5.4 (C)CoderX.ru
//version 0.10.10 от 06.05.2009г. для мага или воина
//специально для TheAbyss.ru
program Fishing_Abyss_ru;
{
А.Пушкин "Сказка о рыбном четверге"
==============================================================================
Проверялось на L2.RU в течении 2-х часов
==============================================================================
Перед использованием скрипта изменяем:
- Name='имя своего чара';
По необходимости:
- изменить перемещение к месту ловли (Mestolovli), смена места ловли (MenayemMesto),
репозицию после боя (Reposition), перемещение после смерти (AfterDeath);
1)
- покупаем удочку, крючки и при необходимости фишин-шоты;
- учим соответствующие скилы рыбалки;
- при желании защищаться - купить подходящее оружие, щит, соулшоты.
2) каждый раз для инициализации скрипта:
- запускаем скрипт (ставим галочку);
- ставим галочи в панели управления напротив необходимых позиций (обязательно
выбрать удочку и крючки);
- становимся перед фишермэном, выбираем первое место ловли, жмем GO;
- чар сам идет на место рыбалки;
- дождавшись прихода на место ловли жмем START;
- при необходимости, включть соулшоты в автоматический режим.
Примечание:
- ловить лучше всего гномом;
- пути движения к местам ловли начинать от фишермэна;
- путь движения после смерти начинается с места появления после смерти.
Скрипт настроен под определённое место. Для других мест нужно изменить перемещение
к месту рыбалки, смену места рыбалки, репозицию после боя, путь после смерти
(в скрипте зашито три места ловли). Теперь это сделать очень легко! Спасибо Alexsl!
******************************************************************************
Спасибо Xkor за пакетхак!
Спасибо участникам форума CoderX.ru за идеи для скрипта!
Скрипт распространяется как есть, и я не несу ответственности за то,
что ВЫ натворили у себя, его используя.
MyICQ 402988808
******************************************************************************
Возможности скрипта:
--------------------
0.10.1
- Контроль рыбалки с панели управления;
- Статистика ловли;
- Может работать одновременно несколько скриптов для разных чаров;
- При нападении моба может атаковать его и может лечиться бутылками;
- Потрошит пойманную рыбу;
- Подбирает выпавшие предметы из убитого моба;
- Возвращается на место рыбалки после смерти;
- Когда закончатся крючки, бежит к фишермэну и продает/покупает/обменивает предметы
(продажа Fish Oil и Great Fish Oil не производится, см. ниже);
- Меняет место ловли при неудачных попытках (в скрипте три места ловли);
- В процессе рыбалки преобразует Fish Oil в Great Fish Oil, Great Fish Oil в Premium
Fish Oil (требуются соответствующие рецепты).
0.10.2
+ проверка на то, что мы действительно рыбачим, с репозицией;
+ проверка на застревание с возвратом на одну позицию назад;
0.10.3
+ правильно работает остановка рыбалки (Stop);
+ возобновляет рыбалку если моб исчез сам;
+ исправлено лечение бутылками;
+ исправлена репозиция;
+ показывает количество HP напавшего моба.
0.10.4
+ by MHz: Попробовав юзать твой скрипт с ботом L2Jes столкнулся с тем, что
полностью полагаться на пакет клиента 48 - ValidatePosition нельзя, поэтому
предлагаю дополнительно подтверждать свои координаты из пакета сервера
01 MoveBackwardToLocation.
0.10.5
+ сменил код выбора ItemID предметов;
+ если не выбрали продавца, то по окончанию крючков продовать не бежим;
0.10.6
+ рефакторинг кода;
+ вроде нашел место где после боя останавливается;
0.10.7
+ добавил отключение клиента (социал YES);
0.10.7.1
+ маг теперь атакует магической атакой (воином лучше не ловить);
настройки:
Hurricane=1239; //ID MagicSkill Hurricane
OnTimerA.Interval:=3000; //время задержки
0.10.7.2
+ исправил таргет на фишермана при торговле;
0.10.8
+ для русского оффа l2.ru;
+ небольшая правка кода;
0.10.8.1
+ использование с6E=RequestRecordInfo, спс Xelat;
0.10.8.2
+ использование GoodUse при рыбалке;
+ оптимизация кода;
0.10.9
+ делаю для Абисс;
+ серверные ID пакетов поменял на ID от интерлюдии;
0.10.10
+ Спасибо StekloReZ за предоставленных чаров для тестирования;
+ поменял работу с инвентарем;
+ поменял работу продажа/покупка/обмен;
+ удочку/крючок, оружие чар должен брать нормально;
*****************************************************************************}
const
//v---------НЕ ЗАБУДЬТЕ ИСПРАВИТЬ ПОД СВОИ НУЖДЫ----v
Name='NLObP' ; //имя чара для которого включаем скрипт
//если используем мага, то ставим ID желаемого скила, иначе поставить =0 для воина
Hurricane=0 ; //ID MagicSkill Hurricane
//путь где хранятся наши файлы
//RecordFilesPath='.\scripts\fishing\TALKIN_ISLAND\'; //путь где хранятся наши файлы
RecordFilesPath='.\scripts\fishing\giran_harbor\' ;
IniFilesPath='.\settings\' ;
//^---------НЕ ЗАБУДЬТЕ ИСПРАВИТЬ ПОД СВОИ НУЖДЫ----^
//v--------- изменять при необходимости ----v
//сюда вписываем ItemID предметов для автопродажи
TradeSellItem=[6904 ,6905 ,6906 ,6907 ,6920 ,6921 ,6922 ,6923 ,6924 ,6925 ,7686 ,7695 ,7696 ,7697 ,7698 ,7699 ,7700 ];
//количество предметов в массиве TradeSellItem
TradeSellItemCount=17 ;
//-----------------------------
//сюда вписываем ItemID предметов для автообмена
TradeMultiItem=[6908 ,6909 ,6910 ,6911 ,6912 ,6913 ,6914 ,6915 ,6916 ]; //нельзя изменять, собъется обмен!
//-----------------------------
//количество предметов в массиве TradeMultiItem
TradeMultiItemCount=9 ;//нельзя изменять, собъется обмен!
//-----------------------------
//требуется если используем преобразования масла, иначе поставить =0
FO=6908 ; //запомним, чтобы отменять обен на пруфы
GFO=6909 ;
//-----------------------------
debug=false ; //если не хотим видеть отладочной информации
//^--------- изменять при необходимости ----^
//*************ниже лучше не трогать****************************************
//эта переменная указывает уничтожить пакет или нет если он обработан
//может данные нужны для других скриптов
EraseCommandFromChat=true ;
kID=1000000 ; //коэфф вычитаемый из NpcID
//покупаем только выбранные крючки для ловли
TradeBuyItemCount=1 ;
//*******************************************************
fish=1312 ; //ID fishing
pump=1313 ; //ID pumping
reel=1314 ; //ID reeling
//*******************************************************
// RecordFilesPath='.\scripts\fishing\TALKIN_ISLAND\'; //путь где хранятся наши файлы
// RecordFilesPath='.\scripts\fishing\giran_harbor\'; //путь где хранятся наши файлы
RecordPathName='Mestolovli1' ; //файл по умолчанию
RecordFileExt='.txt' ;//расширение по умолчанию
RangeToCheckPoint=150 ;//дистанция до чекпоинта при которой считается , что мы достигли оного
MoveTrigerDelay=800 ; //срабатывание таймера на движение 0,8 сек
cmdPrefix='===' ; //с этих символов начинается команда
cmdDlm =' ' ; //разделитель параметров команды, параметры не должены содержать разделитель
//команды в общий чат
//пример
cmdRecordPath='rec' ; //в общий чат "===rec giran1"
cmdSavePath='save' ; //в общий чат "===save"
cmdMove='go' ; //в общий чат "===go giran1"
cmdBack='back' ; //в общий чат "===back giran1"
cmdStop='stop' ; //останавливает следование по маршруту
maxitems=250 ; //max количество предметов в базе
maxnpc=50 ; //max количество контролируемых NPC
go=true ; //бежать от продавца на место ловли
back=false ; //бежать от места ловли к продавцу
//***************************************************************
var
HtmlRcv, //сигнал, что пакета NpcHtmlMessage получен
SellListRcv,
BuyListRcv,
MultiSellListRcv : boolean ;
getbuylist, getselllist, getmultisell : string ;
PercentHP : integer ; //при каком количестве HP в % юзать бутылку лечения
WeaponUse1 : boolean ; //использовать оружие? true-да, false-нет
ShieldUse1 : boolean ; //использовать щит? true-да, false-нет
HPuse1 : boolean ; //использовать ли бутылки лечения? true-да, false-нет
ShotUse1 : boolean ; //использовать ли фишин-шоты? true-да, false-нет
TradeBuyItem: array[0 ] of integer ; //что надо купить [MyLureID];
NpcBase: array[1 ..2 ,1 ..maxnpc ] of integer ; //все NPC вокруг
KolvoNpc : integer ; //количество Npc в базе
{
1 - OID
2 - ID
}
// ItemBase: array[1..4,1..maxitems] of integer; //все предметы в инвентаре
// ItemBase2: array[1..4,1..maxitems] of integer; //найденные по ItemID
{
1 - ObjectID
2 - ItemID
3 - ItemCount
4 - IsEquipped
}
//ITEMs
BaseItems: array[1 ..maxitems , 1 ..12 ] of integer ; //все предметы в инвентаре
MestoLovli, PMMesto, MMesto : integer ;
isFishing : boolean ;
NeedBuy, FishermanOID, ListID, ColvoItm, ColvoItm2, SocialID : integer ;
ReadyToBuy, ReadyToSell, ReadyToMultiSell, add, CanFishHere : boolean ;
trd, TradeCount, TradeID, EndTradeID, UpdType, ItemOID, ItemID, colv, trade: integer ;
lucky1, failed1, fish1, fish2, mob1, death1: integer ;
GoodUse: integer ; //пора reeling/pumping
StartTime, EndTime: TDateTime ;
fishin, ShowInf, MoveTimer, Trade1, CreatePFO, OnTimerA: TTimer;
//ID вещей которыми пользуемся при рыбалке
MyWeaponID : integer ;
MyShieldID : integer ;
MyRodID : integer ;
MyLureID : integer ;
MyRodEq : integer ;
MyLureEq : integer ;
MyShotID : integer ;
MyHPID : integer ;
FishermanID : integer ;
HPOID, ColvoHP, RodOID, LureOID, ColvoLure, ShotOID, ColvoShot : Integer ;
iii, i, j: integer ;
//защита от мобов
WeaponID, ShieldID, WeaponOID, ShieldOID : Integer ;
but: integer ;
Lure1, Rod1, distanciya, status : boolean ;
underAttack, HPuse2, Weapon2, Shield2, Lure2, Rod2, Shot2 : boolean ;
//movement data
MovePath, //данные по которому мы будем двигатся в данный момент
RecordPath, //данные для записи пути
ItemsName, NpcsName, StringList, StringList2 : TStringList ; //названия предметов, имена продавцов
Cmd, //команда на определенное действие 'fishing' 'trade' 'death' 'move'
RecordPathFileName: string ; //название файла для записи
PointsCount: integer ; //кол-во поинтов в процессе записи пути
SavePathEnabled: boolean ; //флаг записи пути
MoveToPathEnabled: boolean ; //флаг движения по пути
MoveToForward: boolean ; //направление движения да-вперед, нет - назад
MoveStepIndex: integer ; //текущ. чекпоинт (куды бежим сейчас)
old_X,old_Y,old_Z,old_time,chk_time: integer ;
stop : boolean ;
myX,myY,myZ: integer ; //наши статы
myOID,myHP,myMP,myMaxHP,myMaxMP: integer ;
AttackerID, AttackerOID,AttackerX,AttackerY,AttackerZ,AttackerMaxHP,AttackerHP : integer ;
NetPing: string ; // здесь запомним Нетпинг от клиента, будем сами его посылать
LogOutOk: boolean ; // флаг показывающий, что мы отключили клиент
//............................................
//Список переменных формы
FormMain : TForm; //Создаваемая форма
Splitter1,Splitter2 : TSplitter;
Panel1 : TPanel;
ButtonPathBack,ButtonPathStop,ButtonPathGo,ButtonPathSave,ButtonPathRec,
ButtonFishingStart,ButtonFishingStop : TButton;
GroupBox1,GroupBox2,GroupBox3,GroupBox4 : TGroupBox;
Label1,Label2,Label4,Label5,Label6,Label7,Label12,Label13,Label8,Label9,Label17,
Label10,Label11,Label3,Label14,Label15 : TLabel;
CheckBoxRod,CheckBoxLure,CheckBoxWeapon,CheckBoxShield,CheckBoxFShot,CheckBoxFO,CheckBoxPU,
CheckBoxFisherman,CheckBoxHPotion : TCheckBox;
ComboBoxPath,ComboBoxRod,ComboBoxFShot,ComboBoxLure,ComboBoxWeapon,ComboBoxShield,
ComboBoxFisherman,ComboBoxHPotion : TComboBox;
EditPath,EditRodVal,EditLureVal,EditWeaponVal,EditShieldVal,EditFShotVal,
EditLureOID,EditWeaponOID,EditShieldOID,EditFShotOID,EditRodOID,EditFishermanOID,
EditLure,EditHealt,EditHpotionOID,EditHPotionVal : TEdit;
Stats, Msg : TMemo;
pbMyHP,pbMyMP,pbTargetHP:TProgressBar;
gbMyPanel,gbTargetPanel,gbMyCP,gbMyHP,gbMyMP,gbTargetHP:TGroupBox;
//............................................
procedure OnAttack( Sender: TObject ) ;
begin
MagicSkillUse( Hurricane) ; //магическая атака
end ;
//............................................
//***************************************************************
//Вызывается при включении скрипта
//***************************************************************
procedure Init;
begin
gooduse:=0 ;
HtmlRcv:=false ;
FormMain:=Create_FormMain;
//RequestBypassToServer(command)
//off
getselllist:='menu_select?ask=-1&reply=8' ; //sell
//local server
//getselllist:='npc_268469209_Sell';
//off
getbuylist:='menu_select?ask=-1&reply=0' ; //buy
//local server
//getbuylist:='npc_268469209_Buy 3157300';
//off
getmultisell:='menu_select?ask=-303&reply=517' ; //multisell
//local server
//getmultisell:='npc_268469209_multisell 009';
//Управление сменой места рыбалки. Скрипт считает всех сорвавшихся с крючка.
PMMesto:=50 ; //количество рыб, для начала смены места ловли
MMesto:=0 ; //здесь будем подсчитывать сорвавшуюся рыбу, для смены позиции
MestoLovli:=1 ; //номер места позиции ловли 1..3
lucky1:=0 ;
failed1:=0 ;
fish1:=0 ;
fish2:=0 ;
mob1:=0 ;
death1:=0 ;
FishermanOID:=0 ;
CanFishHere:=true ; //здесь можно ловить
ReadyToBuy:=false ;
ReadyToSell:=false ;
ReadyToMultiSell:=false ;
stop:=false ; //нажали кнопку STOP?
isFishing:=false ; //ловим?
StartTime:=time ;
ShotOID:=0 ;
LureOID:=0 ;
Status:=false ;
rod1:=true ;
lure1:=true ;
HPuse2:=false ; //задействовано true-да, false-нет
weapon2:=false ;
shield2:=false ;
rod2:=false ;
lure2:=false ;
Shot2:=false ;
underattack:=false ; //атакован?
RecordPathFileName:='' ;
RecordPath:=TStringList .Create ;
MovePath:=TStringList .Create ;
ItemsName:=TStringList .Create ;
NpcsName:=TStringList .Create ;
StringList:=TStringList .Create ;
StringList2:=TStringList .Create ;
NpcsName.LoadFromFile ( RecordFilesPath+'npcsid.ini' ) ;
ItemsName.LoadFromFile ( IniFilesPath+'ItemsID.ini' ) ;
with ComboBoxFisherman do
begin
Items.Clear ;
Items.Assign ( NpcsName) ;
ItemIndex:=0 ;
end ;
//таймеры, можно поправить время по обстоятельствам
OnTimerA:=TTimer.Create ( nil ) ;
OnTimerA.Enabled :=False ;
OnTimerA.Interval :=3000 ; //время задержки
OnTimerA.OnTimer :=@OnAttack;
MoveTimer:=TTimer.Create ( nil ) ;
MoveTimer.Enabled :=False ;
MoveTimer.Interval :=MoveTrigerDelay; //время задержки
MoveTimer.OnTimer :=@OnMove;
trade1:=TTimer.Create ( nil ) ;
trade1.OnTimer :=@OnTrade;
trade1.enabled :=false ;
trade1.interval :=1000 ; //время задержки
fishin:=TTimer.Create ( nil ) ;
fishin.OnTimer :=@OnFishing;
fishin.enabled :=false ;
fishin.interval :=5000 ; //время задержки
ShowInf:=TTimer.Create ( nil ) ;
ShowInf.OnTimer :=@OnShowInfo;
ShowInf.enabled :=true ;
ShowInf.interval :=1000 ; //время задержки
CreatePFO:=TTimer.Create ( nil ) ;
CreatePFO.OnTimer :=@OnCreatePFO;
CreatePFO.enabled :=false ;
CreatePFO.interval :=300000 ; //время задержки 5 мин
WeaponUse1:=false ;
ShieldUse1:=false ;
HPuse1:=false ;
ShotUse1:=false ;
MyWeaponID:=0 ;
MyShieldID:=0 ;
MyRodID:=0 ;
MyLureID:=0 ;
MyShotID:=0 ;
MyHPID:=0 ;
FishermanID:=0 ;
//RequestItemList вызываем инвентарь
buf:=hstr( '14' ) ;
SendToServerEx( Name) ;
//delay(350);
end ;
//............................................
//***************************************************************
//Вызывается при выключении скрипта
//***************************************************************
procedure Free;
begin
//таймеры
ShowInf.Enabled :=false ; ShowInf.Interval :=0 ; ShowInf.Free ;
fishin.Enabled :=false ; fishin.Interval :=0 ; fishin.Free ;
trade1.Enabled :=false ; trade1.Interval :=0 ; trade1.Free ;
createpfo.Enabled :=false ; createpfo.Interval :=0 ; createpfo.Free ;
movetimer.Enabled :=false ; movetimer.Interval :=0 ; movetimer.Free ;
WeaponOID:=0 ; ShieldOID:=0 ; HPOID:=0 ; RodOID:=0 ; LureOID:=0 ; ShotOID:=0 ;
ColvoLure:=0 ; ColvoShot:=0 ;
RecordPath.Free ; MovePath.Free ; ItemsName.Free ; NpcsName.Free ; StringList.Free ; StringList2.Free ;
//достаточно освободить форму
FormMain.Free ;
//отключение клиента
// YesFreeOnClientDisconnect;
// YesFreeOnServerDisconnect;
end ;
//............................................
//***************************************************************
function Create_FormMain : TForm;
//Создаем форму и соотв. компоненты на ней ...
Var
Yes : boolean ;
begin
Yes := FALSE ;
Result := TForm.Create ( nil ) ;
TRY
//............................................
//Свойства формы
Result.Caption := 'FishingBot by NLObP v.0.10.10 for TheAbyss' ;
Result.Left := 0 ;
Result.Top := 0 ;
Result.Width := 620 ;
Result.Height := 730 ;
// Result.FormStyle := fsNormal;
Result.FormStyle := FsStayOnTop;
Result.Position := poDesigned;
Result.BorderStyle := bsSizeable;
Result.BorderWidth := 0 ;
Result.WindowState := wsNormal;
Result.Color := clBtnFace;
Result.Font .Name := 'Tahoma' ;
Result.Font .Size := 8 ;
Result.Font .Color := clWindowText;
Result.Font .CharSet := 1 ;
//......................................
//......................................
//Panel1
Panel1 := TPanel.Create ( Result) ;
Panel1.Parent := Result;
Panel1.Left := 0 ;
Panel1.Top := 0 ;
Panel1.Width := 425 ;
Panel1.Height := 471 ;
Panel1.Visible := TRUE ;
Panel1.Tag := 0 ;
Panel1.Enabled := TRUE ;
Panel1.Hint := '' ;
Panel1.ShowHint := FALSE ;
Panel1.Caption := '' ;
Panel1.Align := alClient;
Panel1.Color := clBtnFace;
Panel1.Font .Name := 'Tahoma' ;
Panel1.Font .Size := 8 ;
Panel1.Font .Color := clWindowText;
Panel1.Font .CharSet := 1 ;
Panel1.BevelWidth := 1 ;
Panel1.BorderWidth := 0 ;
Panel1.BevelInner := bvNone;
Panel1.BevelOuter := bvRaised;
Panel1.TabOrder := 0 ;
Panel1.TabStop := FALSE ;
Panel1.AutoSize := FALSE ;
//......................................
//=============== My Attr Panel ========
gbMyPanel:=TGroupBox.Create ( Panel1) ;
gbMyPanel.parent :=Panel1;
gbMyPanel.caption :=' [' +Name+'] ' ;
gbMyPanel.ShowHint :=true ;
gbMyPanel.Hint :=' [' +Name+'] ' ;
gbMyPanel.height :=115 ;
gbMyPanel.width :=210 ;
gbMyPanel.left :=1 ;
gbMyPanel.top :=420 ;
//......................................
//==================== HP ==============
gbMyHP:=TGroupBox.Create ( gbMyPanel) ;
gbMyHP.parent :=gbMyPanel;
gbMyHP.Color :=clRed;
gbMyHP.caption :=' HP: 0/0 ' ;
gbMyHP.height :=33 ;
gbMyHP.width :=200 ;
gbMyHP.left :=5 ;
gbMyHP.top :=14 ;
//......................................
pbMyHP:=TProgressBar.Create ( gbMyPanel) ;
pbMyHP.parent :=gbMyPanel;
pbMyHP.smooth :=true ;
pbMyHP.max :=1200 ;
pbMyHP.min :=0 ;
pbMyHP.position :=0 ;
pbMyHP.step :=10 ;
pbMyHP.height :=16 ;
pbMyHP.width :=190 ;
pbMyHP.left :=10 ;
pbMyHP.top :=26 ;
//......................................
//==================== MP ==============
gbMyMP:=TGroupBox.Create ( gbMyPanel) ;
gbMyMP.parent :=gbMyPanel;
gbMyMP.Color :=$FF7000;
gbMyMP.caption :=' MP: 0/0 ' ;
gbMyMP.height :=33 ;
gbMyMP.width :=200 ;
gbMyMP.left :=5 ;
gbMyMP.top :=50 ;
//......................................
pbMyMP:=TProgressBar.Create ( gbMyPanel) ;
pbMyMP.parent :=gbMyPanel;
pbMyMP.smooth :=true ;
pbMyMP.max :=1200 ;
pbMyMP.min :=0 ;
pbMyMP.position :=0 ;
pbMyMP.step :=10 ;
pbMyMP.height :=16 ;
pbMyMP.width :=190 ;
pbMyMP.left :=10 ;
pbMyMP.top :=62 ;
//......................................
//================== Target Info Panel =
gbTargetPanel:=TGroupBox.Create ( Panel1) ;
gbTargetPanel.parent :=Panel1;
gbTargetPanel.caption :=' [TargetName] ' ;
gbTargetPanel.ShowHint :=true ;
gbTargetPanel.Hint :=' [TargetName] ' ;
gbTargetPanel.height :=115 ;
gbTargetPanel.width :=210 ;
gbTargetPanel.left :=212 ;
gbTargetPanel.top :=420 ;
//......................................
//==================== HP ==============
gbTargetHP:=TGroupBox.Create ( gbTargetPanel) ;
gbTargetHP.parent :=gbTargetPanel;
gbTargetHP.Color :=clRed;
gbTargetHP.caption :=' HP: 0/0 ' ;
gbTargetHP.height :=33 ;
gbTargetHP.width :=200 ;
gbTargetHP.left :=5 ;
gbTargetHP.top :=14 ;
//......................................
pbTargetHP:=TProgressBar.Create ( gbTargetPanel) ;
pbTargetHP.parent :=gbTargetPanel;
pbTargetHP.smooth :=true ;
pbTargetHP.max :=1200 ;
pbTargetHP.min :=0 ;
pbTargetHP.position :=0 ;
pbTargetHP.step :=10 ;
pbTargetHP.height :=16 ;
pbTargetHP.width :=190 ;
pbTargetHP.left :=10 ;
pbTargetHP.top :=26 ;
//......................................
//......................................
//GroupBox1
GroupBox1 := TGroupBox.Create ( Result) ;
GroupBox1.Parent := Panel1;
GroupBox1.Left := 1 ;
GroupBox1.Top := 343 ;
GroupBox1.Width := 421 ;
GroupBox1.Height := 76 ;
GroupBox1.Visible := TRUE ;
GroupBox1.Tag := 0 ;
GroupBox1.Enabled := TRUE ;
GroupBox1.Hint := '' ;
GroupBox1.ShowHint := FALSE ;
GroupBox1.Caption := 'Создание путей движения' ;
GroupBox1.Align := alNone;
GroupBox1.Color := clBtnFace;
GroupBox1.Font .Name := 'Tahoma' ;
GroupBox1.Font .Size := 8 ;
GroupBox1.Font .Color := clWindowText;
GroupBox1.Font .CharSet := 1 ;
GroupBox1.TabOrder := 0 ;
GroupBox1.TabStop := FALSE ;
//......................................
//......................................
//Label1
Label1 := TLabel.Create ( Result) ;
Label1.Parent := GroupBox1;
Label1.Left := 3 ;
Label1.Top := 18 ;
Label1.Width := 58 ;
Label1.Height := 13 ;
Label1.Visible := TRUE ;
Label1.Tag := 0 ;
Label1.Enabled := TRUE ;
Label1.Hint := '' ;
Label1.ShowHint := FALSE ;
Label1.Caption := 'Имя файла:' ;
Label1.Transparent := TRUE ;
Label1.WordWrap := FALSE ;
Label1.Alignment := taLeftJustify;
Label1.Layout := tlTop;
Label1.AutoSize := TRUE ;
Label1.Align := alNone;
Label1.Font .Name := 'Tahoma' ;
Label1.Font .Size := 8 ;
Label1.Font .Color := clWindowText;
Label1.Color := clBtnFace;
//......................................
//......................................
//ButtonPathBack
ButtonPathBack := TButton.Create ( Result) ;
ButtonPathBack.Parent := GroupBox1;
ButtonPathBack.Left := 265 ;
ButtonPathBack.Top := 42 ;
ButtonPathBack.Width := 75 ;
ButtonPathBack.Height := 25 ;
ButtonPathBack.Visible := TRUE ;
ButtonPathBack.Tag := 0 ;
ButtonPathBack.Enabled := TRUE ;
ButtonPathBack.Hint := '' ;
ButtonPathBack.ShowHint := FALSE ;
ButtonPathBack.Caption := 'Back' ;
ButtonPathBack.Font .Name := 'Tahoma' ;
ButtonPathBack.Font .Size := 8 ;
ButtonPathBack.Font .Color := clWindowText;
ButtonPathBack.Font .CharSet := 1 ;
ButtonPathBack.TabOrder := 0 ;
ButtonPathBack.TabStop := TRUE ;
ButtonPathBack.Cancel := FALSE ;
ButtonPathBack.ModalResult := 0 ;
ButtonPathBack.OnClick := @ButtonPathBack_Click;
//......................................
//......................................
//ButtonPathStop
ButtonPathStop := TButton.Create ( Result) ;
ButtonPathStop.Parent := GroupBox1;
ButtonPathStop.Left := 343 ;
ButtonPathStop.Top := 42 ;
ButtonPathStop.Width := 75 ;
ButtonPathStop.Height := 25 ;
ButtonPathStop.Visible := TRUE ;
ButtonPathStop.Tag := 0 ;
ButtonPathStop.Enabled := TRUE ;
ButtonPathStop.Hint := '' ;
ButtonPathStop.ShowHint := FALSE ;
ButtonPathStop.Caption := 'Stop' ;
ButtonPathStop.Font .Name := 'Tahoma' ;
ButtonPathStop.Font .Size := 8 ;
ButtonPathStop.Font .Color := clWindowText;
ButtonPathStop.Font .CharSet := 1 ;
ButtonPathStop.TabOrder := 1 ;
ButtonPathStop.TabStop := TRUE ;
ButtonPathStop.Cancel := FALSE ;
ButtonPathStop.ModalResult := 0 ;
ButtonPathStop.OnClick := @ButtonPathStop_Click;
//......................................
//......................................
//ButtonPathGo
ButtonPathGo := TButton.Create ( Result) ;
ButtonPathGo.Parent := GroupBox1;
ButtonPathGo.Left := 187 ;
ButtonPathGo.Top := 42 ;
ButtonPathGo.Width := 75 ;
ButtonPathGo.Height := 25 ;
ButtonPathGo.Visible := TRUE ;
ButtonPathGo.Tag := 0 ;
ButtonPathGo.Enabled := TRUE ;
ButtonPathGo.Hint := '' ;
ButtonPathGo.ShowHint := FALSE ;
ButtonPathGo.Caption := 'Go' ;
ButtonPathGo.Font .Name := 'Tahoma' ;
ButtonPathGo.Font .Size := 8 ;
ButtonPathGo.Font .Color := clWindowText;
ButtonPathGo.Font .CharSet := 1 ;
ButtonPathGo.TabOrder := 2 ;
ButtonPathGo.TabStop := TRUE ;
ButtonPathGo.Cancel := FALSE ;
ButtonPathGo.ModalResult := 0 ;
ButtonPathGo.OnClick := @ButtonPathGo_Click;
//......................................
//......................................
//ButtonPathSave
ButtonPathSave := TButton.Create ( Result) ;
ButtonPathSave.Parent := GroupBox1;
ButtonPathSave.Left := 101 ;
ButtonPathSave.Top := 42 ;
ButtonPathSave.Width := 75 ;
ButtonPathSave.Height := 25 ;
ButtonPathSave.Visible := TRUE ;
ButtonPathSave.Tag := 0 ;
ButtonPathSave.Enabled := TRUE ;
ButtonPathSave.Hint := '' ;
ButtonPathSave.ShowHint := FALSE ;
ButtonPathSave.Caption := 'Save' ;
ButtonPathSave.Font .Name := 'Tahoma' ;
ButtonPathSave.Font .Size := 8 ;
ButtonPathSave.Font .Color := clWindowText;
ButtonPathSave.Font .CharSet := 1 ;
ButtonPathSave.TabOrder := 3 ;
ButtonPathSave.TabStop := TRUE ;
ButtonPathSave.Cancel := FALSE ;
ButtonPathSave.ModalResult := 0 ;
ButtonPathSave.OnClick := @ButtonPathSave_Click;
//......................................
//......................................
//ButtonPathRec
ButtonPathRec := TButton.Create ( Result) ;
ButtonPathRec.Parent := GroupBox1;
ButtonPathRec.Left := 14 ;
ButtonPathRec.Top := 42 ;
ButtonPathRec.Width := 75 ;
ButtonPathRec.Height := 25 ;
ButtonPathRec.Visible := TRUE ;
ButtonPathRec.Tag := 0 ;
ButtonPathRec.Enabled := TRUE ;
ButtonPathRec.Hint := '' ;
ButtonPathRec.ShowHint := FALSE ;
ButtonPathRec.Caption := 'Rec' ;
ButtonPathRec.Font .Name := 'Tahoma' ;
ButtonPathRec.Font .Size := 8 ;
ButtonPathRec.Font .Color := clWindowText;
ButtonPathRec.Font .CharSet := 1 ;
ButtonPathRec.TabOrder := 4 ;
ButtonPathRec.TabStop := TRUE ;
ButtonPathRec.Cancel := FALSE ;
ButtonPathRec.ModalResult := 0 ;
ButtonPathRec.OnClick := @ButtonPathRec_Click;
//......................................
//......................................
//EditPath
EditPath := TEdit.Create ( Result) ;
EditPath.Parent := GroupBox1;
EditPath.Left := 67 ;
EditPath.Top := 15 ;
EditPath.Width := 109 ;
EditPath.Height := 21 ;
EditPath.Visible := TRUE ;
EditPath.Tag := 0 ;
EditPath.Enabled := TRUE ;
EditPath.Hint := 'Введи имя файла для сохранения пути' ;
EditPath.ShowHint := TRUE ;
EditPath.Text := 'Mestolovli1' ;
EditPath.Font .Name := 'Tahoma' ;
EditPath.Font .Size := 8 ;
EditPath.Font .Color := clWindowText;
EditPath.Color := clWindow;
EditPath.TabOrder := 5 ;
EditPath.TabStop := TRUE ;
EditPath.ReadOnly := FALSE ;
EditPath.MaxLength := 0 ;
EditPath.AutoSize := TRUE ;
// EditPath.OnChange := @EditPath_Change;
//......................................
//......................................
//ComboBoxPath
ComboBoxPath := TComboBox.Create ( Result) ;
ComboBoxPath.Parent := GroupBox1;
ComboBoxPath.Left := 187 ;
ComboBoxPath.Top := 15 ;
ComboBoxPath.Width := 231 ;
ComboBoxPath.Height := 21 ;
ComboBoxPath.Visible := TRUE ;
ComboBoxPath.Tag := 0 ;
ComboBoxPath.Enabled := TRUE ;
ComboBoxPath.Hint := 'Выбери из списка путь для движения' ;
ComboBoxPath.ShowHint := TRUE ;
ComboBoxPath.Text := 'Mestolovli1' ;
ComboBoxPath.Font .Name := 'Tahoma' ;
ComboBoxPath.Font .Size := 8 ;
ComboBoxPath.Font .Color := clWindowText;
ComboBoxPath.Color := clWindow;
ComboBoxPath.TabOrder := 6 ;
ComboBoxPath.TabStop := TRUE ;
ComboBoxPath.Sorted := FALSE ;
ComboBoxPath.ItemHeight := 13 ;
ComboBoxPath.OnChange := @ComboBoxPath_Change;
ComboBoxPath.Items .ADD ( 'Mestolovli1' ) ;
ComboBoxPath.Items .ADD ( 'Mestolovli2' ) ;
ComboBoxPath.Items .ADD ( 'Mestolovli3' ) ;
ComboBoxPath.Items .ADD ( 'MenayemMesto1' ) ;
ComboBoxPath.Items .ADD ( 'MenayemMesto2' ) ;
ComboBoxPath.Items .ADD ( 'MenayemMesto3' ) ;
ComboBoxPath.Items .ADD ( 'Reposition1' ) ;
ComboBoxPath.Items .ADD ( 'Reposition2' ) ;
ComboBoxPath.Items .ADD ( 'Reposition3' ) ;
ComboBoxPath.Items .ADD ( 'AfterDeath1' ) ;
ComboBoxPath.Items .ADD ( 'AfterDeath2' ) ;
ComboBoxPath.Items .ADD ( 'AfterDeath3' ) ;
ComboBoxPath.ItemIndex := 0 ;
//......................................
//......................................
//GroupBox2
GroupBox2 := TGroupBox.Create ( Result) ;
GroupBox2.Parent := Panel1;
GroupBox2.Left := 1 ;
GroupBox2.Top := -2 ;
GroupBox2.Width := 421 ;
GroupBox2.Height := 195 ;
GroupBox2.Visible := TRUE ;
GroupBox2.Tag := 0 ;
GroupBox2.Enabled := TRUE ;
GroupBox2.Hint := '' ;
GroupBox2.ShowHint := FALSE ;
GroupBox2.Caption := 'Рыбалка' ;
GroupBox2.Align := alNone;
GroupBox2.Color := clBtnFace;
GroupBox2.Font .Name := 'Tahoma' ;
GroupBox2.Font .Size := 8 ;
GroupBox2.Font .Color := clWindowText;
GroupBox2.Font .CharSet := 1 ;
GroupBox2.TabOrder := 1 ;
GroupBox2.TabStop := FALSE ;
//......................................
//......................................
//Label2
Label2 := TLabel.Create ( Result) ;
Label2.Parent := GroupBox2;
Label2.Left := 400 ;
Label2.Top := 19 ;
Label2.Width := 18 ;
Label2.Height := 13 ;
Label2.Visible := TRUE ;
Label2.Tag := 0 ;
Label2.Enabled := TRUE ;
Label2.Hint := '' ;
Label2.ShowHint := FALSE ;
Label2.Caption := 'шт.' ;
Label2.Transparent := TRUE ;
Label2.WordWrap := FALSE ;
Label2.Alignment := taLeftJustify;
Label2.Layout := tlTop;
Label2.AutoSize := TRUE ;
Label2.Align := alNone;
Label2.Font .Name := 'Tahoma' ;
Label2.Font .Size := 8 ;
Label2.Font .Color := clWindowText;
Label2.Color := clBtnFace;
//......................................
//......................................
//Label4
Label4 := TLabel.Create ( Result) ;
Label4.Parent := GroupBox2;
Label4.Left := 400 ;
Label4.Top := 43 ;
Label4.Width := 18 ;
Label4.Height := 13 ;
Label4.Visible := TRUE ;
Label4.Tag := 0 ;
Label4.Enabled := TRUE ;
Label4.Hint := '' ;
Label4.ShowHint := FALSE ;
Label4.Caption := 'шт.' ;
Label4.Transparent := TRUE ;
Label4.WordWrap := FALSE ;
Label4.Alignment := taLeftJustify;
Label4.Layout := tlTop;
Label4.AutoSize := TRUE ;
Label4.Align := alNone;
Label4.Font .Name := 'Tahoma' ;
Label4.Font .Size := 8 ;
Label4.Font .Color := clWindowText;
Label4.Color := clBtnFace;
//......................................
//......................................
//Label5
Label5 := TLabel.Create ( Result) ;
Label5.Parent := GroupBox2;
Label5.Left := 400 ;
Label5.Top := 67 ;
Label5.Width := 18 ;
Label5.Height := 13 ;
Label5.Visible := TRUE ;
Label5.Tag := 0 ;
Label5.Enabled := TRUE ;
Label5.Hint := '' ;
Label5.ShowHint := FALSE ;
Label5.Caption := 'шт.' ;
Label5.Transparent := TRUE ;
Label5.WordWrap := FALSE ;
Label5.Alignment := taLeftJustify;
Label5.Layout := tlTop;
Label5.AutoSize := TRUE ;
Label5.Align := alNone;
Label5.Font .Name := 'Tahoma' ;
Label5.Font .Size := 8 ;
Label5.Font .Color := clWindowText;
Label5.Color := clBtnFace;
//......................................
//......................................
//Label6
Label6 := TLabel.Create ( Result) ;
Label6.Parent := GroupBox2;
Label6.Left := 400 ;
Label6.Top := 91 ;
Label6.Width := 18 ;
Label6.Height := 13 ;
Label6.Visible := TRUE ;
Label6.Tag := 0 ;
Label6.Enabled := TRUE ;
Label6.Hint := '' ;
Label6.ShowHint := FALSE ;
Label6.Caption := 'шт.' ;
Label6.Transparent := TRUE ;
Label6.WordWrap := FALSE ;
Label6.Alignment := taLeftJustify;
Label6.Layout := tlTop;
Label6.AutoSize := TRUE ;
Label6.Align := alNone;
Label6.Font .Name := 'Tahoma' ;
Label6.Font .Size := 8 ;
Label6.Font .Color := clWindowText;
Label6.Color := clBtnFace;
//......................................
//......................................
//Label7
Label7 := TLabel.Create ( Result) ;
Label7.Parent := GroupBox2;
Label7.Left := 400 ;
Label7.Top := 116 ;
Label7.Width := 18 ;
Label7.Height := 13 ;
Label7.Visible := TRUE ;
Label7.Tag := 0 ;
Label7.Enabled := TRUE ;
Label7.Hint := '' ;
Label7.ShowHint := FALSE ;
Label7.Caption := 'шт.' ;
Label7.Transparent := TRUE ;
Label7.WordWrap := FALSE ;
Label7.Alignment := taLeftJustify;
Label7.Layout := tlTop;
Label7.AutoSize := TRUE ;
Label7.Align := alNone;
Label7.Font .Name := 'Tahoma' ;
Label7.Font .Size := 8 ;
Label7.Font .Color := clWindowText;
Label7.Color := clBtnFace;
//......................................
//......................................
//Label12
Label12 := TLabel.Create ( Result) ;
Label12.Parent := GroupBox2;
Label12.Left := 257 ;
Label12.Top := 3 ;
Label12.Width := 33 ;
Label12.Height := 13 ;
Label12.Visible := TRUE ;
Label12.Tag := 0 ;
Label12.Enabled := TRUE ;
Label12.Hint := '' ;
Label12.ShowHint := FALSE ;
Label12.Caption := 'ItemID' ;
Label12.Transparent := TRUE ;
Label12.WordWrap := FALSE ;
Label12.Alignment := taLeftJustify;
Label12.Layout := tlTop;
Label12.AutoSize := TRUE ;
Label12.Align := alNone;
Label12.Font .Name := 'Tahoma' ;
Label12.Font .Size := 8 ;
Label12.Font .Color := clWindowText;
Label12.Color := clBtnFace;
//......................................
//......................................
//Label13
Label13 := TLabel.Create ( Result) ;
Label13.Parent := GroupBox2;
Label13.Left := 333 ;
Label13.Top := 3 ;
Label13.Width := 35 ;
Label13.Height := 13 ;
Label13.Visible := TRUE ;
Label13.Tag := 0 ;
Label13.Enabled := TRUE ;
Label13.Hint := '' ;
Label13.ShowHint := FALSE ;
Label13.Caption := 'Кол-во' ;
Label13.Transparent := TRUE ;
Label13.WordWrap := FALSE ;
Label13.Alignment := taLeftJustify;
Label13.Layout := tlTop;
Label13.AutoSize := TRUE ;
Label13.Align := alNone;
Label13.Font .Name := 'Tahoma' ;
Label13.Font .Size := 8 ;
Label13.Font .Color := clWindowText;
Label13.Color := clBtnFace;
//......................................
//......................................
//CheckBoxRod
CheckBoxRod := TCheckBox.Create ( Result) ;
CheckBoxRod.Parent := GroupBox2;
CheckBoxRod.Left := 18 ;
CheckBoxRod.Top := 18 ;
CheckBoxRod.Width := 55 ;
CheckBoxRod.Height := 17 ;
CheckBoxRod.Visible := TRUE ;
CheckBoxRod.Tag := 0 ;
CheckBoxRod.Enabled := TRUE ;
CheckBoxRod.Hint := 'Поставить галочку если выбрали удочку' ;
CheckBoxRod.ShowHint := TRUE ;
CheckBoxRod.Caption := 'Rod' ;
CheckBoxRod.Font .Name := 'Tahoma' ;
CheckBoxRod.Font .Size := 8 ;
CheckBoxRod.Font .Color := clWindowText;
CheckBoxRod.Color := clBtnFace;
CheckBoxRod.TabOrder := 0 ;
CheckBoxRod.TabStop := TRUE ;
CheckBoxRod.Checked := FALSE ;
CheckBoxRod.AllowGrayed := FALSE ;
CheckBoxRod.State := cbUnchecked;
CheckBoxRod.OnClick := @CheckBoxRod_Click;
//......................................
//......................................
//ComboBoxRod
ComboBoxRod := TComboBox.Create ( Result) ;
ComboBoxRod.Parent := GroupBox2;
ComboBoxRod.Left := 74 ;
ComboBoxRod.Top := 16 ;
ComboBoxRod.Width := 169 ;
ComboBoxRod.Height := 21 ;
ComboBoxRod.Visible := TRUE ;
ComboBoxRod.Tag := 0 ;
ComboBoxRod.Enabled := TRUE ;
ComboBoxRod.Hint := 'Выбери из списка удочку' ;
ComboBoxRod.ShowHint := TRUE ;
ComboBoxRod.Text := 'ComboBoxRod' ;
ComboBoxRod.Font .Name := 'Tahoma' ;
ComboBoxRod.Font .Size := 8 ;
ComboBoxRod.Font .Color := clWindowText;
ComboBoxRod.Color := clWindow;
ComboBoxRod.TabOrder := 1 ;
ComboBoxRod.TabStop := TRUE ;
ComboBoxRod.ItemIndex := -1 ;
ComboBoxRod.Sorted := FALSE ;
ComboBoxRod.ItemHeight := 13 ;
ComboBoxRod.OnChange := @ComboBoxRod_Change;
//......................................
//......................................
//ComboBoxFShot
ComboBoxFShot := TComboBox.Create ( Result) ;
ComboBoxFShot.Parent := GroupBox2;
ComboBoxFShot.Left := 74 ;
ComboBoxFShot.Top := 113 ;
ComboBoxFShot.Width := 169 ;
ComboBoxFShot.Height := 21 ;
ComboBoxFShot.Visible := TRUE ;
ComboBoxFShot.Tag := 0 ;
ComboBoxFShot.Enabled := TRUE ;
ComboBoxFShot.Hint := 'Выбери из списка фишиншоты' ;
ComboBoxFShot.ShowHint := TRUE ;
ComboBoxFShot.Text := 'ComboBoxFShot' ;
ComboBoxFShot.Font .Name := 'Tahoma' ;
ComboBoxFShot.Font .Size := 8 ;
ComboBoxFShot.Font .Color := clWindowText;
ComboBoxFShot.Color := clWindow;
ComboBoxFShot.TabOrder := 2 ;
ComboBoxFShot.TabStop := TRUE ;
ComboBoxFShot.ItemIndex := -1 ;
ComboBoxFShot.Sorted := FALSE ;
ComboBoxFShot.ItemHeight := 13 ;
ComboBoxFShot.OnChange := @ComboBoxFShot_Change;
//......................................
//......................................
//ButtonFishingStart
ButtonFishingStart := TButton.Create ( Result) ;
ButtonFishingStart.Parent := GroupBox2;
ButtonFishingStart.Left := 168 ;
ButtonFishingStart.Top := 159 ;
ButtonFishingStart.Width := 75 ;
ButtonFishingStart.Height := 25 ;
ButtonFishingStart.Visible := TRUE ;
ButtonFishingStart.Tag := 0 ;
ButtonFishingStart.Enabled := TRUE ;
ButtonFishingStart.Hint := 'Начать рыбалку' ;
ButtonFishingStart.ShowHint := TRUE ;
ButtonFishingStart.Caption := 'Start' ;
ButtonFishingStart.Font .Name := 'Tahoma' ;
ButtonFishingStart.Font .Size := 8 ;
ButtonFishingStart.Font .Color := clWindowText;
ButtonFishingStart.Font .CharSet := 1 ;
ButtonFishingStart.TabOrder := 3 ;
ButtonFishingStart.TabStop := TRUE ;
ButtonFishingStart.Cancel := FALSE ;
ButtonFishingStart.ModalResult := 0 ;
ButtonFishingStart.OnClick := @ButtonFishingStart_Click;
//......................................
//......................................
//ButtonFishingStop
ButtonFishingStop := TButton.Create ( Result) ;
ButtonFishingStop.Parent := GroupBox2;
ButtonFishingStop.Left := 306 ;
ButtonFishingStop.Top := 159 ;
ButtonFishingStop.Width := 75 ;
ButtonFishingStop.Height := 25 ;
ButtonFishingStop.Visible := TRUE ;
ButtonFishingStop.Tag := 0 ;
ButtonFishingStop.Enabled := TRUE ;
ButtonFishingStop.Hint := 'Остановить рыбалку' ;
ButtonFishingStop.ShowHint := TRUE ;
ButtonFishingStop.Caption := 'Stop' ;
ButtonFishingStop.Font .Name := 'Tahoma' ;
ButtonFishingStop.Font .Size := 8 ;
ButtonFishingStop.Font .Color := clWindowText;
ButtonFishingStop.Font .CharSet := 1 ;
ButtonFishingStop.TabOrder := 4 ;
ButtonFishingStop.TabStop := TRUE ;
ButtonFishingStop.Cancel := FALSE ;
ButtonFishingStop.ModalResult := 0 ;
ButtonFishingStop.OnClick := @ButtonFishingStop_Click;
//......................................
//......................................
//CheckBoxLure
CheckBoxLure := TCheckBox.Create ( Result) ;
CheckBoxLure.Parent := GroupBox2;
CheckBoxLure.Left := 18 ;
CheckBoxLure.Top := 41 ;
CheckBoxLure.Width := 55 ;
CheckBoxLure.Height := 23 ;
CheckBoxLure.Visible := TRUE ;
CheckBoxLure.Tag := 0 ;
CheckBoxLure.Enabled := TRUE ;
CheckBoxLure.Hint := 'Поставить галочку если выбрали крючёк' ;
CheckBoxLure.ShowHint := TRUE ;
CheckBoxLure.Caption := 'Lure' ;
CheckBoxLure.Font .Name := 'Tahoma' ;
CheckBoxLure.Font .Size := 8 ;
CheckBoxLure.Font .Color := clWindowText;
CheckBoxLure.Color := clBtnFace;
CheckBoxLure.TabOrder := 5 ;
CheckBoxLure.TabStop := TRUE ;
CheckBoxLure.Checked := FALSE ;
CheckBoxLure.AllowGrayed := FALSE ;
CheckBoxLure.State := cbUnchecked;
CheckBoxLure.OnClick := @CheckBoxLure_Click;
//......................................
//......................................
//CheckBoxWeapon
CheckBoxWeapon := TCheckBox.Create ( Result) ;
CheckBoxWeapon.Parent := GroupBox2;
CheckBoxWeapon.Left := 18 ;
CheckBoxWeapon.Top := 64 ;
CheckBoxWeapon.Width := 55 ;
CheckBoxWeapon.Height := 22 ;
CheckBoxWeapon.Visible := TRUE ;
CheckBoxWeapon.Tag := 0 ;
CheckBoxWeapon.Enabled := TRUE ;
CheckBoxWeapon.Hint := 'Поставить галочку если выбрали оружие' ;
CheckBoxWeapon.ShowHint := TRUE ;
CheckBoxWeapon.Caption := 'Weapon' ;
CheckBoxWeapon.Font .Name := 'Tahoma' ;
CheckBoxWeapon.Font .Size := 8 ;
CheckBoxWeapon.Font .Color := clWindowText;
CheckBoxWeapon.Color := clBtnFace;
CheckBoxWeapon.TabOrder := 6 ;
CheckBoxWeapon.TabStop := TRUE ;
CheckBoxWeapon.Checked := FALSE ;
CheckBoxWeapon.AllowGrayed := FALSE ;
CheckBoxWeapon.State := cbUnchecked;
CheckBoxWeapon.OnClick := @CheckBoxWeapon_Click;
//......................................
//......................................
//CheckBoxShield
CheckBoxShield := TCheckBox.Create ( Result) ;
CheckBoxShield.Parent := GroupBox2;
CheckBoxShield.Left := 18 ;
CheckBoxShield.Top := 92 ;
CheckBoxShield.Width := 52 ;
CheckBoxShield.Height := 17 ;
CheckBoxShield.Visible := TRUE ;
CheckBoxShield.Tag := 0 ;
CheckBoxShield.Enabled := TRUE ;
CheckBoxShield.Hint := 'Поставить галочку если выбрали щит' ;
CheckBoxShield.ShowHint := TRUE ;
CheckBoxShield.Caption := 'Shield' ;
CheckBoxShield.Font .Name := 'Tahoma' ;
CheckBoxShield.Font .Size := 8 ;
CheckBoxShield.Font .Color := clWindowText;
CheckBoxShield.Color := clBtnFace;
CheckBoxShield.TabOrder := 7 ;
CheckBoxShield.TabStop := TRUE ;
CheckBoxShield.Checked := FALSE ;
CheckBoxShield.AllowGrayed := FALSE ;
CheckBoxShield.State := cbUnchecked;
CheckBoxShield.OnClick := @CheckBoxShield_Click;
//......................................
//......................................
//CheckBoxFShot
CheckBoxFShot := TCheckBox.Create ( Result) ;
CheckBoxFShot.Parent := GroupBox2;
CheckBoxFShot.Left := 18 ;
CheckBoxFShot.Top := 116 ;
CheckBoxFShot.Width := 52 ;
CheckBoxFShot.Height := 17 ;
CheckBoxFShot.Visible := TRUE ;
CheckBoxFShot.Tag := 0 ;
CheckBoxFShot.Enabled := TRUE ;
CheckBoxFShot.Hint := 'Поставить галочку если выбрали фишиншоты' ;
CheckBoxFShot.ShowHint := TRUE ;
CheckBoxFShot.Caption := 'FShot' ;
CheckBoxFShot.Font .Name := 'Tahoma' ;
CheckBoxFShot.Font .Size := 8 ;
CheckBoxFShot.Font .Color := clWindowText;
CheckBoxFShot.Color := clBtnFace;
CheckBoxFShot.TabOrder := 8 ;
CheckBoxFShot.TabStop := TRUE ;
CheckBoxFShot.Checked := FALSE ;
CheckBoxFShot.AllowGrayed := FALSE ;
CheckBoxFShot.State := cbUnchecked;
CheckBoxFShot.OnClick := @CheckBoxFShot_Click;
//......................................
//......................................
//ComboBoxLure
ComboBoxLure := TComboBox.Create ( Result) ;
ComboBoxLure.Parent := GroupBox2;
ComboBoxLure.Left := 74 ;
ComboBoxLure.Top := 40 ;
ComboBoxLure.Width := 169 ;
ComboBoxLure.Height := 21 ;
ComboBoxLure.Visible := TRUE ;
ComboBoxLure.Tag := 0 ;
ComboBoxLure.Enabled := TRUE ;
ComboBoxLure.Hint := 'Выбери из списка крючёк' ;
ComboBoxLure.ShowHint := TRUE ;
ComboBoxLure.Text := 'ComboBoxLure' ;
ComboBoxLure.Font .Name := 'Tahoma' ;
ComboBoxLure.Font .Size := 8 ;
ComboBoxLure.Font .Color := clWindowText;
ComboBoxLure.Color := clWindow;
ComboBoxLure.TabOrder := 9 ;
ComboBoxLure.TabStop := TRUE ;
ComboBoxLure.ItemIndex := -1 ;
ComboBoxLure.Sorted := FALSE ;
ComboBoxLure.ItemHeight := 13 ;
ComboBoxLure.OnChange := @ComboBoxLure_Change;
//......................................
//......................................
//ComboBoxWeapon
ComboBoxWeapon := TComboBox.Create ( Result) ;
ComboBoxWeapon.Parent := GroupBox2;
ComboBoxWeapon.Left := 74 ;
ComboBoxWeapon.Top := 64 ;
ComboBoxWeapon.Width := 169 ;
ComboBoxWeapon.Height := 21 ;
ComboBoxWeapon.Visible := TRUE ;
ComboBoxWeapon.Tag := 0 ;
ComboBoxWeapon.Enabled := TRUE ;
ComboBoxWeapon.Hint := 'Выбери из списка оружие' ;
ComboBoxWeapon.ShowHint := TRUE ;
ComboBoxWeapon.Text := 'ComboBoxWeapon' ;
ComboBoxWeapon.Font .Name := 'Tahoma' ;
ComboBoxWeapon.Font .Size := 8 ;
ComboBoxWeapon.Font .Color := clWindowText;
ComboBoxWeapon.Color := clWindow;
ComboBoxWeapon.TabOrder := 10 ;
ComboBoxWeapon.TabStop := TRUE ;
ComboBoxWeapon.ItemIndex := -1 ;
ComboBoxWeapon.Sorted := FALSE ;
ComboBoxWeapon.ItemHeight := 13 ;
ComboBoxWeapon.OnChange := @ComboBoxWeapon_Change;
//......................................
//......................................
//ComboBoxShield
ComboBoxShield := TComboBox.Create ( Result) ;
ComboBoxShield.Parent := GroupBox2;
ComboBoxShield.Left := 74 ;
ComboBoxShield.Top := 88 ;
ComboBoxShield.Width := 169 ;
ComboBoxShield.Height := 21 ;
ComboBoxShield.Visible := TRUE ;
ComboBoxShield.Tag := 0 ;
ComboBoxShield.Enabled := TRUE ;
ComboBoxShield.Hint := 'Выбери из списка щит' ;
ComboBoxShield.ShowHint := TRUE ;
ComboBoxShield.Text := 'ComboBoxShield' ;
ComboBoxShield.Font .Name := 'Tahoma' ;
ComboBoxShield.Font .Size := 8 ;
ComboBoxShield.Font .Color := clWindowText;
ComboBoxShield.Color := clWindow;
ComboBoxShield.TabOrder := 11 ;
ComboBoxShield.TabStop := TRUE ;
ComboBoxShield.ItemIndex := -1 ;
ComboBoxShield.Sorted := FALSE ;
ComboBoxShield.ItemHeight := 13 ;
ComboBoxShield.OnChange := @ComboBoxShield_Change;
//......................................
//......................................
//CheckBoxFO
CheckBoxFO := TCheckBox.Create ( Result) ;
CheckBoxFO.Parent := GroupBox2;
CheckBoxFO.Left := 18 ;
CheckBoxFO.Top := 140 ;
CheckBoxFO.Width := 105 ;
CheckBoxFO.Height := 17 ;
CheckBoxFO.Visible := TRUE ;
CheckBoxFO.Tag := 0 ;
CheckBoxFO.Enabled := TRUE ;
CheckBoxFO.Hint := 'Поставить галочку если хотим преобразовывать масло' ;
CheckBoxFO.ShowHint := TRUE ;
CheckBoxFO.Caption := 'FO->GFO->PFO' ;
CheckBoxFO.Font .Name := 'Tahoma' ;
CheckBoxFO.Font .Size := 8 ;
CheckBoxFO.Font .Color := clWindowText;
CheckBoxFO.Color := clBtnFace;
CheckBoxFO.TabOrder := 12 ;
CheckBoxFO.TabStop := TRUE ;
CheckBoxFO.Checked := FALSE ;
CheckBoxFO.AllowGrayed := FALSE ;
CheckBoxFO.State := cbUnchecked;
CheckBoxFO.OnClick := @CheckBoxFO_Click;
//......................................
//......................................
//CheckBoxPU
CheckBoxPU := TCheckBox.Create ( Result) ;
CheckBoxPU.Parent := GroupBox2;
CheckBoxPU.Left := 18 ;
CheckBoxPU.Top := 163 ;
CheckBoxPU.Width := 105 ;
CheckBoxPU.Height := 17 ;
CheckBoxPU.Visible := TRUE ;
CheckBoxPU.Tag := 0 ;
CheckBoxPU.Enabled := TRUE ;
CheckBoxPU.Hint := 'Поставить галочку если хотим потрошить улов' ;
CheckBoxPU.ShowHint := TRUE ;
CheckBoxPU.Caption := 'Потрошить улов' ;
CheckBoxPU.Font .Name := 'Tahoma' ;
CheckBoxPU.Font .Size := 8 ;
CheckBoxPU.Font .Color := clWindowText;
CheckBoxPU.Color := clBtnFace;
CheckBoxPU.TabOrder := 13 ;
CheckBoxPU.TabStop := TRUE ;
CheckBoxPU.Checked := FALSE ;
CheckBoxPU.AllowGrayed := FALSE ;
CheckBoxPU.State := cbUnchecked;
CheckBoxPU.OnClick := @CheckBoxPU_Click;
//......................................
//......................................
//EditRodVal
EditRodVal := TEdit.Create ( Result) ;
EditRodVal.Parent := GroupBox2;
EditRodVal.Left := 325 ;
EditRodVal.Top := 16 ;
EditRodVal.Width := 72 ;
EditRodVal.Height := 21 ;
EditRodVal.Visible := TRUE ;
EditRodVal.Tag := 0 ;
EditRodVal.Enabled := TRUE ;
EditRodVal.Hint := '' ;
EditRodVal.ShowHint := FALSE ;
EditRodVal.Text := '0' ;
EditRodVal.Font .Name := 'Tahoma' ;
EditRodVal.Font .Size := 8 ;
EditRodVal.Font .Color := clWindowText;
EditRodVal.Color := clWindow;
EditRodVal.TabOrder := 14 ;
EditRodVal.TabStop := TRUE ;
EditRodVal.ReadOnly := TRUE ;
EditRodVal.MaxLength := 0 ;
EditRodVal.AutoSize := TRUE ;
//......................................
//......................................
//EditLureVal
EditLureVal := TEdit.Create ( Result) ;
EditLureVal.Parent := GroupBox2;
EditLureVal.Left := 325 ;
EditLureVal.Top := 40 ;
EditLureVal.Width := 72 ;
EditLureVal.Height := 21 ;
EditLureVal.Visible := TRUE ;
EditLureVal.Tag := 0 ;
EditLureVal.Enabled := TRUE ;
EditLureVal.Hint := '' ;
EditLureVal.ShowHint := FALSE ;
EditLureVal.Text := '0' ;
EditLureVal.Font .Name := 'Tahoma' ;
EditLureVal.Font .Size := 8 ;
EditLureVal.Font .Color := clWindowText;
EditLureVal.Color := clWindow;
EditLureVal.TabOrder := 15 ;
EditLureVal.TabStop := TRUE ;
EditLureVal.ReadOnly := TRUE ;
EditLureVal.MaxLength := 0 ;
EditLureVal.AutoSize := TRUE ;
//......................................
//......................................
//EditWeaponVal
EditWeaponVal := TEdit.Create ( Result) ;
EditWeaponVal.Parent := GroupBox2;
EditWeaponVal.Left := 325 ;
EditWeaponVal.Top := 64 ;
EditWeaponVal.Width := 72 ;
EditWeaponVal.Height := 21 ;
EditWeaponVal.Visible := TRUE ;
EditWeaponVal.Tag := 0 ;
EditWeaponVal.Enabled := TRUE ;
EditWeaponVal.Hint := '' ;
EditWeaponVal.ShowHint := FALSE ;
EditWeaponVal.Text := '0' ;
EditWeaponVal.Font .Name := 'Tahoma' ;
EditWeaponVal.Font .Size := 8 ;
EditWeaponVal.Font .Color := clWindowText;
EditWeaponVal.Color := clWindow;
EditWeaponVal.TabOrder := 16 ;
EditWeaponVal.TabStop := TRUE ;
EditWeaponVal.ReadOnly := TRUE ;
EditWeaponVal.MaxLength := 0 ;
EditWeaponVal.AutoSize := TRUE ;
//......................................
//......................................
//Edit6
EditShieldVal := TEdit.Create ( Result) ;
EditShieldVal.Parent := GroupBox2;
EditShieldVal.Left := 325 ;
EditShieldVal.Top := 88 ;
EditShieldVal.Width := 72 ;
EditShieldVal.Height := 21 ;
EditShieldVal.Visible := TRUE ;
EditShieldVal.Tag := 0 ;
EditShieldVal.Enabled := TRUE ;
EditShieldVal.Hint := '' ;
EditShieldVal.ShowHint := FALSE ;
EditShieldVal.Text := '0' ;
EditShieldVal.Font .Name := 'Tahoma' ;
EditShieldVal.Font .Size := 8 ;
EditShieldVal.Font .Color := clWindowText;
EditShieldVal.Color := clWindow;
EditShieldVal.TabOrder := 17 ;
EditShieldVal.TabStop := TRUE ;
EditShieldVal.ReadOnly := TRUE ;
EditShieldVal.MaxLength := 0 ;
EditShieldVal.AutoSize := TRUE ;
//......................................
//......................................
//Edit7
EditFShotVal := TEdit.Create ( Result) ;
EditFShotVal.Parent := GroupBox2;
EditFShotVal.Left := 325 ;
EditFShotVal.Top := 113 ;
EditFShotVal.Width := 72 ;
EditFShotVal.Height := 21 ;
EditFShotVal.Visible := TRUE ;
EditFShotVal.Tag := 0 ;
EditFShotVal.Enabled := TRUE ;
EditFShotVal.Hint := '' ;
EditFShotVal.ShowHint := FALSE ;
EditFShotVal.Text := '0' ;
EditFShotVal.Font .Name := 'Tahoma' ;
EditFShotVal.Font .Size := 8 ;
EditFShotVal.Font .Color := clWindowText;
EditFShotVal.Color := clWindow;
EditFShotVal.TabOrder := 18 ;
EditFShotVal.TabStop := TRUE ;
EditFShotVal.ReadOnly := TRUE ;
EditFShotVal.MaxLength := 0 ;
EditFShotVal.AutoSize := TRUE ;
//......................................
//......................................
//EditLureOID
EditLureOID := TEdit.Create ( Result) ;
EditLureOID.Parent := GroupBox2;
EditLureOID.Left := 248 ;
EditLureOID.Top := 40 ;
EditLureOID.Width := 72 ;
EditLureOID.Height := 21 ;
EditLureOID.Visible := TRUE ;
EditLureOID.Tag := 0 ;
EditLureOID.Enabled := TRUE ;
EditLureOID.Hint := '' ;
EditLureOID.ShowHint := FALSE ;
EditLureOID.Text := '0' ;
EditLureOID.Font .Name := 'Tahoma' ;
EditLureOID.Font .Size := 8 ;
EditLureOID.Font .Color := clWindowText;
EditLureOID.Color := clWindow;
EditLureOID.TabOrder := 19 ;
EditLureOID.TabStop := TRUE ;
EditLureOID.ReadOnly := TRUE ;
EditLureOID.MaxLength := 0 ;
EditLureOID.AutoSize := TRUE ;
//......................................
//......................................
//EditWeaponOID
EditWeaponOID := TEdit.Create ( Result) ;
EditWeaponOID.Parent := GroupBox2;
EditWeaponOID.Left := 248 ;
EditWeaponOID.Top := 64 ;
EditWeaponOID.Width := 72 ;
EditWeaponOID.Height := 21 ;
EditWeaponOID.Visible := TRUE ;
EditWeaponOID.Tag := 0 ;
EditWeaponOID.Enabled := TRUE ;
EditWeaponOID.Hint := '' ;
EditWeaponOID.ShowHint := FALSE ;
EditWeaponOID.Text := '0' ;
EditWeaponOID.Font .Name := 'Tahoma' ;
EditWeaponOID.Font .Size := 8 ;
EditWeaponOID.Font .Color := clWindowText;
EditWeaponOID.Color := clWindow;
EditWeaponOID.TabOrder := 20 ;
EditWeaponOID.TabStop := TRUE ;
EditWeaponOID.ReadOnly := TRUE ;
EditWeaponOID.MaxLength := 0 ;
EditWeaponOID.AutoSize := TRUE ;
//......................................
//......................................
//EditShieldOID
EditShieldOID := TEdit.Create ( Result) ;
EditShieldOID.Parent := GroupBox2;
EditShieldOID.Left := 248 ;
EditShieldOID.Top := 88 ;
EditShieldOID.Width := 72 ;
EditShieldOID.Height := 21 ;
EditShieldOID.Visible := TRUE ;
EditShieldOID.Tag := 0 ;
EditShieldOID.Enabled := TRUE ;
EditShieldOID.Hint := '' ;
EditShieldOID.ShowHint := FALSE ;
EditShieldOID.Text := '0' ;
EditShieldOID.Font .Name := 'Tahoma' ;
EditShieldOID.Font .Size := 8 ;
EditShieldOID.Font .Color := clWindowText;
EditShieldOID.Color := clWindow;
EditShieldOID.TabOrder := 21 ;
EditShieldOID.TabStop := TRUE ;
EditShieldOID.ReadOnly := TRUE ;
EditShieldOID.MaxLength := 0 ;
EditShieldOID.AutoSize := TRUE ;
//......................................
//......................................
//EditFShotOID
EditFShotOID := TEdit.Create ( Result) ;
EditFShotOID.Parent := GroupBox2;
EditFShotOID.Left := 248 ;
EditFShotOID.Top := 113 ;
EditFShotOID.Width := 72 ;
EditFShotOID.Height := 21 ;
EditFShotOID.Visible := TRUE ;
EditFShotOID.Tag := 0 ;
EditFShotOID.Enabled := TRUE ;
EditFShotOID.Hint := '' ;
EditFShotOID.ShowHint := FALSE ;
EditFShotOID.Text := '0' ;
EditFShotOID.Font .Name := 'Tahoma' ;
EditFShotOID.Font .Size := 8 ;
EditFShotOID.Font .Color := clWindowText;
EditFShotOID.Color := clWindow;
EditFShotOID.TabOrder := 22 ;
EditFShotOID.TabStop := TRUE ;
EditFShotOID.ReadOnly := TRUE ;
EditFShotOID.MaxLength := 0 ;
EditFShotOID.AutoSize := TRUE ;
//......................................
//......................................
//EditRodOID
EditRodOID := TEdit.Create ( Result) ;
EditRodOID.Parent := GroupBox2;
EditRodOID.Left := 248 ;
EditRodOID.Top := 16 ;
EditRodOID.Width := 72 ;
EditRodOID.Height := 21 ;
EditRodOID.Visible := TRUE ;
EditRodOID.Tag := 0 ;
EditRodOID.Enabled := TRUE ;
EditRodOID.Hint := '' ;
EditRodOID.ShowHint := FALSE ;
EditRodOID.Text := '0' ;
EditRodOID.Font .Name := 'Tahoma' ;
EditRodOID.Font .Size := 8 ;
EditRodOID.Font .Color := clWindowText;
EditRodOID.Color := clWindow;
EditRodOID.TabOrder := 23 ;
EditRodOID.TabStop := TRUE ;
EditRodOID.ReadOnly := TRUE ;
EditRodOID.MaxLength := 0 ;
EditRodOID.AutoSize := TRUE ;
//......................................
//......................................
//GroupBox3
GroupBox3 := TGroupBox.Create ( Result) ;
GroupBox3.Parent := Panel1;
GroupBox3.Left := 1 ;
GroupBox3.Top := 270 ;
GroupBox3.Width := 421 ;
GroupBox3.Height := 75 ;
GroupBox3.Visible := TRUE ;
GroupBox3.Tag := 0 ;
GroupBox3.Enabled := TRUE ;
GroupBox3.Hint := '' ;
GroupBox3.ShowHint := FALSE ;
GroupBox3.Caption := 'Продать/купить' ;
GroupBox3.Align := alNone;
GroupBox3.Color := clBtnFace;
GroupBox3.Font .Name := 'Tahoma' ;
GroupBox3.Font .Size := 8 ;
GroupBox3.Font .Color := clWindowText;
GroupBox3.Font .CharSet := 1 ;
GroupBox3.TabOrder := 2 ;
GroupBox3.TabStop := FALSE ;
//......................................
//......................................
//Label8
Label8 := TLabel.Create ( Result) ;
Label8.Parent := GroupBox3;
Label8.Left := 18 ;
Label8.Top := 44 ;
Label8.Width := 77 ;
Label8.Height := 13 ;
Label8.Visible := TRUE ;
Label8.Tag := 0 ;
Label8.Enabled := TRUE ;
Label8.Hint := '' ;
Label8.ShowHint := FALSE ;
Label8.Caption := 'Покупать Lure:' ;
Label8.Transparent := TRUE ;
Label8.WordWrap := FALSE ;
Label8.Alignment := taLeftJustify;
Label8.Layout := tlTop;
Label8.AutoSize := TRUE ;
Label8.Align := alNone;
Label8.Font .Name := 'Tahoma' ;
Label8.Font .Size := 8 ;
Label8.Font .Color := clWindowText;
Label8.Color := clBtnFace;
//......................................
//......................................
//Label9
Label9 := TLabel.Create ( Result) ;
Label9.Parent := GroupBox3;
Label9.Left := 175 ;
Label9.Top := 44 ;
Label9.Width := 18 ;
Label9.Height := 13 ;
Label9.Visible := TRUE ;
Label9.Tag := 0 ;
Label9.Enabled := TRUE ;
Label9.Hint := '' ;
Label9.ShowHint := FALSE ;
Label9.Caption := 'шт.' ;
Label9.Transparent := TRUE ;
Label9.WordWrap := FALSE ;
Label9.Alignment := taLeftJustify;
Label9.Layout := tlTop;
Label9.AutoSize := TRUE ;
Label9.Align := alNone;
Label9.Font .Name := 'Tahoma' ;
Label9.Font .Size := 8 ;
Label9.Font .Color := clWindowText;
Label9.Color := clBtnFace;
//......................................
//......................................
//Label17
Label17 := TLabel.Create ( Result) ;
Label17.Parent := GroupBox3;
Label17.Left := 257 ;
Label17.Top := 3 ;
Label17.Width := 29 ;
Label17.Height := 13 ;
Label17.Visible := TRUE ;
Label17.Tag := 0 ;
Label17.Enabled := TRUE ;
Label17.Hint := '' ;
Label17.ShowHint := FALSE ;
Label17.Caption := 'NpcOID' ;
Label17.Transparent := TRUE ;
Label17.WordWrap := FALSE ;
Label17.Alignment := taLeftJustify;
Label17.Layout := tlTop;
Label17.AutoSize := TRUE ;
Label17.Align := alNone;
Label17.Font .Name := 'Tahoma' ;
Label17.Font .Size := 8 ;
Label17.Font .Color := clWindowText;
Label17.Color := clBtnFace;
//......................................
//......................................
//CheckBoxFisherman
CheckBoxFisherman := TCheckBox.Create ( Result) ;
CheckBoxFisherman.Parent := GroupBox3;
CheckBoxFisherman.Left := 18 ;
CheckBoxFisherman.Top := 18 ;
CheckBoxFisherman.Width := 66 ;
CheckBoxFisherman.Height := 17 ;
CheckBoxFisherman.Visible := TRUE ;
CheckBoxFisherman.Tag := 0 ;
CheckBoxFisherman.Enabled := TRUE ;
CheckBoxFisherman.Hint := 'Поставить галочку если выбрали продавца' ;
CheckBoxFisherman.ShowHint := TRUE ;
CheckBoxFisherman.Caption := 'Fisherman' ;
CheckBoxFisherman.Font .Name := 'Tahoma' ;
CheckBoxFisherman.Font .Size := 8 ;
CheckBoxFisherman.Font .Color := clWindowText;
CheckBoxFisherman.Color := clBtnFace;
CheckBoxFisherman.TabOrder := 0 ;
CheckBoxFisherman.TabStop := TRUE ;
CheckBoxFisherman.Checked := FALSE ;
CheckBoxFisherman.AllowGrayed := FALSE ;
CheckBoxFisherman.State := cbUnchecked;
CheckBoxFisherman.OnClick := @CheckBoxFisherman_Click;
//......................................
//......................................
//ComboBoxFisherman
ComboBoxFisherman := TComboBox.Create ( Result) ;
ComboBoxFisherman.Parent := GroupBox3;
ComboBoxFisherman.Left := 90 ;
ComboBoxFisherman.Top := 16 ;
ComboBoxFisherman.Width := 144 ;
ComboBoxFisherman.Height := 21 ;
ComboBoxFisherman.Visible := TRUE ;
ComboBoxFisherman.Tag := 0 ;
ComboBoxFisherman.Enabled := TRUE ;
ComboBoxFisherman.Hint := 'Выбери из списка продавца' ;
ComboBoxFisherman.ShowHint := TRUE ;
ComboBoxFisherman.Text := 'ComboBoxFisherman' ;
ComboBoxFisherman.Font .Name := 'Tahoma' ;
ComboBoxFisherman.Font .Size := 8 ;
ComboBoxFisherman.Font .Color := clWindowText;
ComboBoxFisherman.Color := clWindow;
ComboBoxFisherman.TabOrder := 1 ;
ComboBoxFisherman.TabStop := TRUE ;
ComboBoxFisherman.ItemIndex := -1 ;
ComboBoxFisherman.Sorted := FALSE ;
ComboBoxFisherman.ItemHeight := 13 ;
ComboBoxFisherman.OnChange := @ComboBoxFisherman_Change;
//......................................
//......................................
//EditFishermanOID
EditFishermanOID := TEdit.Create ( Result) ;
EditFishermanOID.Parent := GroupBox3;
EditFishermanOID.Left := 240 ;
EditFishermanOID.Top := 16 ;
EditFishermanOID.Width := 72 ;
EditFishermanOID.Height := 21 ;
EditFishermanOID.Visible := TRUE ;
EditFishermanOID.Tag := 0 ;
EditFishermanOID.Enabled := TRUE ;
EditFishermanOID.Hint := '' ;
EditFishermanOID.ShowHint := FALSE ;
EditFishermanOID.Text := '0' ;
EditFishermanOID.Font .Name := 'Tahoma' ;
EditFishermanOID.Font .Size := 8 ;
EditFishermanOID.Font .Color := clWindowText;
EditFishermanOID.Color := clWindow;
EditFishermanOID.TabOrder := 2 ;
EditFishermanOID.TabStop := TRUE ;
EditFishermanOID.ReadOnly := TRUE ;
EditFishermanOID.MaxLength := 0 ;
EditFishermanOID.AutoSize := TRUE ;
// EditFishermanOID.OnClick := @EditFishermanOID_Click;
//......................................
//......................................
//EditLure
EditLure := TEdit.Create ( Result) ;
EditLure.Parent := GroupBox3;
EditLure.Left := 97 ;
EditLure.Top := 41 ;
EditLure.Width := 72 ;
EditLure.Height := 21 ;
EditLure.Visible := TRUE ;
EditLure.Tag := 0 ;
EditLure.Enabled := TRUE ;
EditLure.Hint := 'Введи количество крючков для закупки' ;
EditLure.ShowHint := TRUE ;
EditLure.Text := '300' ;
EditLure.Font .Name := 'Tahoma' ;
EditLure.Font .Size := 8 ;
EditLure.Font .Color := clWindowText;
EditLure.Color := clWindow;
EditLure.TabOrder := 3 ;
EditLure.TabStop := TRUE ;
EditLure.ReadOnly := FALSE ;
EditLure.MaxLength := 0 ;
EditLure.AutoSize := TRUE ;
// EditLure.OnClick := @EditLure_Click;
EditLure.OnEnter := @EditLure_Change;
//......................................
//......................................
//GroupBox4
GroupBox4 := TGroupBox.Create ( Result) ;
GroupBox4.Parent := Panel1;
GroupBox4.Left := 1 ;
GroupBox4.Top := 194 ;
GroupBox4.Width := 421 ;
GroupBox4.Height := 78 ;
GroupBox4.Visible := TRUE ;
GroupBox4.Tag := 0 ;
GroupBox4.Enabled := TRUE ;
GroupBox4.Hint := '' ;
GroupBox4.ShowHint := FALSE ;
GroupBox4.Caption := 'Лечение' ;
GroupBox4.Align := alNone;
GroupBox4.Color := clBtnFace;
GroupBox4.Font .Name := 'Tahoma' ;
GroupBox4.Font .Size := 8 ;
GroupBox4.Font .Color := clWindowText;
GroupBox4.Font .CharSet := 1 ;
GroupBox4.TabOrder := 3 ;
GroupBox4.TabStop := FALSE ;
//......................................
//......................................
//Label10
Label10 := TLabel.Create ( Result) ;
Label10.Parent := GroupBox4;
Label10.Left := 18 ;
Label10.Top := 44 ;
Label10.Width := 69 ;
Label10.Height := 13 ;
Label10.Visible := TRUE ;
Label10.Tag := 0 ;
Label10.Enabled := TRUE ;
Label10.Hint := '' ;
Label10.ShowHint := FALSE ;
Label10.Caption := 'Лечиться при' ;
Label10.Transparent := TRUE ;
Label10.WordWrap := FALSE ;
Label10.Alignment := taLeftJustify;
Label10.Layout := tlTop;
Label10.AutoSize := TRUE ;
Label10.Align := alNone;
Label10.Font .Name := 'Tahoma' ;
Label10.Font .Size := 8 ;
Label10.Font .Color := clWindowText;
Label10.Color := clBtnFace;
//......................................
//......................................
//Label11
Label11 := TLabel.Create ( Result) ;
Label11.Parent := GroupBox4;
Label11.Left := 400 ;
Label11.Top := 17 ;
Label11.Width := 18 ;
Label11.Height := 13 ;
Label11.Visible := TRUE ;
Label11.Tag := 0 ;
Label11.Enabled := TRUE ;
Label11.Hint := '' ;
Label11.ShowHint := FALSE ;
Label11.Caption := 'шт.' ;
Label11.Transparent := TRUE ;
Label11.WordWrap := FALSE ;
Label11.Alignment := taLeftJustify;
Label11.Layout := tlTop;
Label11.AutoSize := TRUE ;
Label11.Align := alNone;
Label11.Font .Name := 'Tahoma' ;
Label11.Font .Size := 8 ;
Label11.Font .Color := clWindowText;
Label11.Color := clBtnFace;
//......................................
//......................................
//Label3
Label3 := TLabel.Create ( Result) ;
Label3.Parent := GroupBox4;
Label3.Left := 171 ;
Label3.Top := 44 ;
Label3.Width := 11 ;
Label3.Height := 13 ;
Label3.Visible := TRUE ;
Label3.Tag := 0 ;
Label3.Enabled := TRUE ;
Label3.Hint := '' ;
Label3.ShowHint := FALSE ;
Label3.Caption := '%' ;
Label3.Transparent := TRUE ;
Label3.WordWrap := FALSE ;
Label3.Alignment := taLeftJustify;
Label3.Layout := tlTop;
Label3.AutoSize := TRUE ;
Label3.Align := alNone;
Label3.Font .Name := 'Tahoma' ;
Label3.Font .Size := 8 ;
Label3.Font .Color := clWindowText;
Label3.Color := clBtnFace;
//......................................
//......................................
//Label14
Label14 := TLabel.Create ( Result) ;
Label14.Parent := GroupBox4;
Label14.Left := 333 ;
Label14.Top := 3 ;
Label14.Width := 35 ;
Label14.Height := 13 ;
Label14.Visible := TRUE ;
Label14.Tag := 0 ;
Label14.Enabled := TRUE ;
Label14.Hint := '' ;
Label14.ShowHint := FALSE ;
Label14.Caption := 'Кол-во' ;
Label14.Transparent := TRUE ;
Label14.WordWrap := FALSE ;
Label14.Alignment := taLeftJustify;
Label14.Layout := tlTop;
Label14.AutoSize := TRUE ;
Label14.Align := alNone;
Label14.Font .Name := 'Tahoma' ;
Label14.Font .Size := 8 ;
Label14.Font .Color := clWindowText;
Label14.Color := clBtnFace;
//......................................
//......................................
//Label15
Label15 := TLabel.Create ( Result) ;
Label15.Parent := GroupBox4;
Label15.Left := 257 ;
Label15.Top := 3 ;
Label15.Width := 33 ;
Label15.Height := 13 ;
Label15.Visible := TRUE ;
Label15.Tag := 0 ;
Label15.Enabled := TRUE ;
Label15.Hint := '' ;
Label15.ShowHint := FALSE ;
Label15.Caption := 'ItemID' ;
Label15.Transparent := TRUE ;
Label15.WordWrap := FALSE ;
Label15.Alignment := taLeftJustify;
Label15.Layout := tlTop;
Label15.AutoSize := TRUE ;
Label15.Align := alNone;
Label15.Font .Name := 'Tahoma' ;
Label15.Font .Size := 8 ;
Label15.Font .Color := clWindowText;
Label15.Color := clBtnFace;
//......................................
//......................................
//CheckBoxHPotion
CheckBoxHPotion := TCheckBox.Create ( Result) ;
CheckBoxHPotion.Parent := GroupBox4;
CheckBoxHPotion.Left := 18 ;
CheckBoxHPotion.Top := 16 ;
CheckBoxHPotion.Width := 52 ;
CheckBoxHPotion.Height := 17 ;
CheckBoxHPotion.Visible := TRUE ;
CheckBoxHPotion.Tag := 0 ;
CheckBoxHPotion.Enabled := TRUE ;
CheckBoxHPotion.Hint := 'Поставить галочку если выбрали бутылки лечения' ;
CheckBoxHPotion.ShowHint := TRUE ;
CheckBoxHPotion.Caption := 'HPotion' ;
CheckBoxHPotion.Font .Name := 'Tahoma' ;
CheckBoxHPotion.Font .Size := 8 ;
CheckBoxHPotion.Font .Color := clWindowText;
CheckBoxHPotion.Color := clBtnFace;
CheckBoxHPotion.TabOrder := 0 ;
CheckBoxHPotion.TabStop := TRUE ;
CheckBoxHPotion.Checked := FALSE ;
CheckBoxHPotion.AllowGrayed := FALSE ;
CheckBoxHPotion.State := cbUnchecked;
CheckBoxHPotion.OnClick := @CheckBoxHPotion_Click;
//......................................
//......................................
//EditHealt
EditHealt := TEdit.Create ( Result) ;
EditHealt.Parent := GroupBox4;
EditHealt.Left := 93 ;
EditHealt.Top := 41 ;
EditHealt.Width := 72 ;
EditHealt.Height := 21 ;
EditHealt.Visible := TRUE ;
EditHealt.Tag := 0 ;
EditHealt.Enabled := TRUE ;
EditHealt.Hint := 'Введи процент при котором начинать пить бутылки' ;
EditHealt.ShowHint := TRUE ;
EditHealt.Text := '80' ;
EditHealt.Font .Name := 'Tahoma' ;
EditHealt.Font .Size := 8 ;
EditHealt.Font .Color := clWindowText;
EditHealt.Color := clWindow;
EditHealt.TabOrder := 1 ;
EditHealt.TabStop := TRUE ;
EditHealt.ReadOnly := FALSE ;
EditHealt.MaxLength := 0 ;
EditHealt.AutoSize := TRUE ;
// EditHealt.OnClick := @EditHealt_Click;
EditHealt.OnEnter := @EditHealt_Change;
//......................................
//......................................
//ComboBoxHPotion
ComboBoxHPotion := TComboBox.Create ( Result) ;
ComboBoxHPotion.Parent := GroupBox4;
ComboBoxHPotion.Left := 74 ;
ComboBoxHPotion.Top := 14 ;
ComboBoxHPotion.Width := 169 ;
ComboBoxHPotion.Height := 21 ;
ComboBoxHPotion.Visible := TRUE ;
ComboBoxHPotion.Tag := 0 ;
ComboBoxHPotion.Enabled := TRUE ;
ComboBoxHPotion.Hint := 'Выбери из списка бутылку лечения' ;
ComboBoxHPotion.ShowHint := TRUE ;
ComboBoxHPotion.Text := 'ComboBoxHPotion' ;
ComboBoxHPotion.Font .Name := 'Tahoma' ;
ComboBoxHPotion.Font .Size := 8 ;
ComboBoxHPotion.Font .Color := clWindowText;
ComboBoxHPotion.Color := clWindow;
ComboBoxHPotion.TabOrder := 2 ;
ComboBoxHPotion.TabStop := TRUE ;
ComboBoxHPotion.ItemIndex := -1 ;
ComboBoxHPotion.Sorted := FALSE ;
ComboBoxHPotion.ItemHeight := 13 ;
ComboBoxHPotion.OnChange := @ComboBoxHPotion_Change;
//......................................
//......................................
//EditHpotionOID
EditHpotionOID := TEdit.Create ( Result) ;
EditHpotionOID.Parent := GroupBox4;
EditHpotionOID.Left := 248 ;
EditHpotionOID.Top := 14 ;
EditHpotionOID.Width := 72 ;
EditHpotionOID.Height := 21 ;
EditHpotionOID.Visible := TRUE ;
EditHpotionOID.Tag := 0 ;
EditHpotionOID.Enabled := TRUE ;
EditHpotionOID.Hint := '' ;
EditHpotionOID.ShowHint := FALSE ;
EditHpotionOID.Text := '0' ;
EditHpotionOID.Font .Name := 'Tahoma' ;
EditHpotionOID.Font .Size := 8 ;
EditHpotionOID.Font .Color := clWindowText;
EditHpotionOID.Color := clWindow;
EditHpotionOID.TabOrder := 3 ;
EditHpotionOID.TabStop := TRUE ;
EditHpotionOID.ReadOnly := TRUE ;
EditHpotionOID.MaxLength := 0 ;
EditHpotionOID.AutoSize := TRUE ;
//......................................
//......................................
//EditHPotionVal
EditHPotionVal := TEdit.Create ( Result) ;
EditHPotionVal.Parent := GroupBox4;
EditHPotionVal.Left := 325 ;
EditHPotionVal.Top := 14 ;
EditHPotionVal.Width := 72 ;
EditHPotionVal.Height := 21 ;
EditHPotionVal.Visible := TRUE ;
EditHPotionVal.Tag := 0 ;
EditHPotionVal.Enabled := TRUE ;
EditHPotionVal.Hint := '' ;
EditHPotionVal.ShowHint := FALSE ;
EditHPotionVal.Text := '0' ;
EditHPotionVal.Font .Name := 'Tahoma' ;
EditHPotionVal.Font .Size := 8 ;
EditHPotionVal.Font .Color := clWindowText;
EditHPotionVal.Color := clWindow;
EditHPotionVal.TabOrder := 4 ;
EditHPotionVal.TabStop := TRUE ;
EditHPotionVal.ReadOnly := TRUE ;
EditHPotionVal.MaxLength := 0 ;
EditHPotionVal.AutoSize := TRUE ;
//......................................
//......................................
//Stats
Stats := TMemo.Create ( Result) ;
Stats.Parent := Result;
Stats.Left := 428 ;
Stats.Top := 0 ;
Stats.Width := 185 ;
Stats.Height := 471 ;
Stats.Visible := TRUE ;
Stats.Tag := 0 ;
Stats.Enabled := TRUE ;
Stats.Hint := '' ;
Stats.ShowHint := FALSE ;
Stats.Font .Name := 'Tahoma' ;
Stats.Font .Size := 8 ;
Stats.Font .Color := clWindowText;
Stats.Color := clWindow;
Stats.TabOrder := 1 ;
Stats.TabStop := TRUE ;
Stats.Align := alRight;
Stats.WordWrap := TRUE ;
Stats.Alignment := taLeftJustify;
Stats.WantTabs := FALSE ;
Stats.WantReturns := TRUE ;
Stats.HideSelection := TRUE ;
Stats.MaxLength := 0 ;
Stats.OEMConvert := FALSE ;
Stats.ReadOnly := FALSE ;
Stats.ScrollBars := ssNone;
//......................................
//......................................
//Msg
Msg := TMemo.Create ( Result) ;
Msg.Parent := Result;
Msg.Left := 0 ;
Msg.Top := 474 ;
Msg.Width := 613 ;
Msg.Height := 112 ;
Msg.Visible := TRUE ;
Msg.Tag := 0 ;
Msg.Enabled := TRUE ;
Msg.Hint := '' ;
Msg.ShowHint := FALSE ;
Msg.Font .Name := 'Tahoma' ;
Msg.Font .Size := 8 ;
Msg.Font .Color := clWindowText;
Msg.Color := clWindow;
Msg.TabOrder := 2 ;
Msg.TabStop := TRUE ;
Msg.Align := alBottom;
Msg.WordWrap := TRUE ;
Msg.Alignment := taLeftJustify;
Msg.WantTabs := FALSE ;
Msg.WantReturns := TRUE ;
Msg.HideSelection := TRUE ;
Msg.MaxLength := 0 ;
Msg.OEMConvert := FALSE ;
Msg.ReadOnly := FALSE ;
Msg.ScrollBars := ssNone;
//......................................
//......................................
//Splitter1
Splitter1 := TSplitter.Create ( Result) ;
Splitter1.Parent := Result;
Splitter1.Align := alBottom;
Splitter1.Color := clBtnFace;
Splitter1.Left := 0 ;
Splitter1.Top := 471 ;
Splitter1.Width := 613 ;
Splitter1.Height := 3 ;
Splitter1.Visible := TRUE ;
Splitter1.Tag := 0 ;
//......................................
//......................................
//Splitter2
Splitter2 := TSplitter.Create ( Result) ;
Splitter2.Parent := Result;
Splitter2.Align := alRight;
Splitter2.Color := clBtnFace;
Splitter2.Left := 425 ;
Splitter2.Top := 0 ;
Splitter2.Width := 3 ;
Splitter2.Height := 471 ;
Splitter2.Visible := TRUE ;
Splitter2.Tag := 0 ;
//......................................
Yes := TRUE ;
FINALLY
if not Yes then begin
//Освобождаем ресурсы, если неудачно ...
if Result<>NIL then begin
Result.Free ;
// Result:=NIL;
end ;
end ;
END ;
Result.Show ;
msg.Lines .Add ( 'Автоматизация ловли рыбы by NLObP!' ) ;
//msg.Lines.Add('Для инициализации скрипта снять/одеть удочку, крючки!!!');
end ;
//............................................
//***************************************************************
//Обработчики событий для элементов управления на форме
//***************************************************************
//ButtonPathBack
procedure ButtonPathBack_Click( Sender: TButton) ;
//Event : OnClick
begin
//идти в начало пути
RecordPathFileName:=EditPath.text ;
try
MovePath.LoadFromFile ( RecordFilesPath+RecordPathFileName+RecordFileExt) ;
except
SendMsg2( 'файл пути не найден' ) ;
exit ;
end ;
cmd:='move' ; GoToPath( back) ;
end ;
//......................................
//......................................
//ButtonPathStop
procedure ButtonPathStop_Click( Sender: TButton) ;
//Event : OnClick
begin
MoveToPathEnabled:=False ;
end ;
//......................................
//......................................
//ButtonPathGo
procedure ButtonPathGo_Click( Sender: TButton) ;
//Event : OnClick
begin
//идти в конец пути
RecordPathFileName:=EditPath.text ;
try
MovePath.LoadFromFile ( RecordFilesPath+RecordPathFileName+RecordFileExt) ;
except
SendMsg2( 'файл пути не найден' ) ;
exit ;
end ;
cmd:='move' ; GoToPath( go) ;
end ;
//......................................
//......................................
//ButtonPathSave
procedure ButtonPathSave_Click( Sender: TButton) ;
//Event : OnClick
begin
StopRecord;
end ;
//......................................
//......................................
//ButtonPathRec
procedure ButtonPathRec_Click( Sender: TButton) ;
//Event : OnClick
begin
RecordPathFileName:=EditPath.text ;
StartRecord;
end ;
//......................................
//......................................
//EditPath
procedure EditPath_Change( Sender: TEdit) ;
//Event : OnChange
begin
RecordPathFileName:=EditPath.text ;
end ;
//......................................
//......................................
//ComboBoxPath
procedure ComboBoxPath_Change( Sender: TComboBox) ;
//Event : OnChange
begin
EditPath.text :=ComboBoxPath.Items .Strings [ComboBoxPath.ItemIndex ];
end ;
//......................................
//......................................
//ButtonFishingStart
procedure ButtonFishingStart_Click( Sender: TButton) ;
//Event : OnClick
begin
if not status then begin
msg.Lines .Add ( 'Скрипт не инициализирован...' ) ;
exit ;
end ;
fishin.enabled :=true ;
stop:=false ; //нажали Sart
msg.Lines .Add ( 'Начнем рыбачить...' ) ;
end ;
//......................................
//......................................
//ButtonFishingStop
procedure ButtonFishingStop_Click( Sender: TButton) ;
//Event : OnClick
begin
// Status:=false;
fishin.enabled :=false ;
trade1.enabled :=false ;
CreatePFO.enabled :=false ;
MoveTimer.Enabled :=False ;
MoveToPathEnabled:=False ;
stop:=true ;
if isEquip( RodOID) and isFishing then MagicSkillUse( fish) ;
isFishing:=false ; //ловим?
msg.Lines .Add ( 'Останавливаем всё! Хватит на сегодня!' ) ;
end ;
//......................................
//......................................
//CheckBoxRod
procedure CheckBoxRod_Click( Sender: TCheckBox) ;
//Event : OnClick
begin
if CheckBoxRod.Checked
then begin
ComboBoxRod.Enabled :=false ; //выключаем
end else begin
MyRodID:=0 ; //отмена
RodOID:=0 ;
ComboBoxRod.Enabled :=true ; //включаем
//Пакет RequestItemList
buf:=hstr( '14' ) ;
SendToServerEx( Name) ;
end ;
end ;
//......................................
//......................................
//ComboBoxRod
procedure ComboBoxRod_Change( Sender: TComboBox) ;
//Event : OnChange
begin
RodOID:=BaseItems[ComboBoxRod.ItemIndex +1 ,2 ];
myRodID:=BaseItems[ComboBoxRod.ItemIndex +1 ,3 ];
EditRodOID.Text :=Inttostr ( myRodID) ;
EditRodVal.text :=inttostr ( GetItem( RodOID,2 ,5 ) ) ;
end ;
//......................................
//......................................
//CheckBoxLure
procedure CheckBoxLure_Click( Sender: TCheckBox) ;
//Event : OnClick
begin
if CheckBoxLure.Checked
then begin
ComboBoxLure.Enabled :=false ; //выключаем
TradeBuyItem[0 ]:=MyLureID; //что будем покупать?
end else begin
MyLureID:=0 ; //отмена
LureOID:=0 ;
TradeBuyItem[0 ]:=MyLureID; //что будем покупать?
ComboBoxLure.Enabled :=true ; //включаем
//Пакет c0F=RequestItemList c4
//Пакет c14=RequestItemList gracia
buf:=hstr( '14' ) ; //
SendToServerEx( Name) ;
end ;
end ;
//......................................
//......................................
//ComboBoxLure
procedure ComboBoxLure_Change( Sender: TComboBox) ;
//Event : OnChange
begin
LureOID:=BaseItems[ComboBoxLure.ItemIndex +1 ,2 ];
myLureID:=BaseItems[ComboBoxLure.ItemIndex +1 ,3 ];
EditLureOID.Text :=Inttostr ( myLureID) ;
EditLureVal.text :=inttostr ( getitem( LureOID,2 ,5 ) ) ;
end ;
//......................................
//......................................
//CheckBoxWeapon
procedure CheckBoxWeapon_Click( Sender: TCheckBox) ;
//Event : OnClick
begin
if CheckBoxWeapon.Checked
then begin
ComboBoxWeapon.Enabled :=false ; //выключаем
WeaponUse1:=true ;
end else begin
WeaponUse1:=false ;
MyWeaponID:=0 ; //отмена
WeaponOID:=0 ;
ComboBoxWeapon.Enabled :=true ; //включаем
//Пакет c0F=RequestItemList c4
//Пакет c14=RequestItemList gracia
buf:=hstr( '14' ) ;
SendToServerEx( Name) ;
end ;
end ;
//......................................
//......................................
//ComboBoxWeapon
procedure ComboBoxWeapon_Change( Sender: TComboBox) ;
//Event : OnChange
begin
WeaponOID:=BaseItems[ComboBoxWeapon.ItemIndex +1 ,2 ];
myWeaponID:=BaseItems[ComboBoxWeapon.ItemIndex +1 ,3 ];
EditWeaponOID.Text :=Inttostr ( myWeaponID) ;
EditWeaponVal.text :=inttostr ( getitem( WeaponOID,2 ,5 ) ) ;
end ;
//......................................
//......................................
//CheckBoxShield
procedure CheckBoxShield_Click( Sender: TCheckBox) ;
//Event : OnClick
begin
if CheckBoxShield.Checked
then begin
ComboBoxShield.Enabled :=false ; //выключаем
ShieldUse1:=true ;
end else begin
ShieldUse1:=false ;
MyShieldID:=0 ; //отмена
ShieldOID:=0 ;
ComboBoxShield.Enabled :=true ; //включаем
//Пакет c0F=RequestItemList c4
//Пакет c14=RequestItemList gracia
buf:=hstr( '14' ) ;
SendToServerEx( Name) ;
end ;
end ;
//......................................
//......................................
//ComboBoxShield
procedure ComboBoxShield_Change( Sender: TComboBox) ;
//Event : OnChange
begin
ShieldOID:=BaseItems[ComboBoxShield.ItemIndex +1 ,2 ];
myShieldID:=BaseItems[ComboBoxShield.ItemIndex +1 ,3 ];
EditShieldOID.Text :=Inttostr ( myShieldID) ;
EditShieldVal.text :=inttostr ( getitem( ShieldOID,2 ,5 ) ) ;
end ;
//......................................
//......................................
//CheckBoxFShot
procedure CheckBoxFShot_Click( Sender: TCheckBox) ;
//Event : OnClick
begin
if CheckBoxFShot.Checked
then begin
ComboBoxFShot.Enabled :=false ; //выключаем
ShotUse1:=true ;
end else begin
ShotUse1:=false ;
MyShotID:=0 ; //отмена
ShotOID:=0 ;
ComboBoxFShot.Enabled :=true ; //включаем
//Пакет c0F=RequestItemList c4
//Пакет c14=RequestItemList gracia
buf:=hstr( '14' ) ;
SendToServerEx( Name) ;
end ;
end ;
//......................................
//......................................
//ComboBoxFShot
procedure ComboBoxFShot_Change( Sender: TComboBox) ;
//Event : OnChange
begin
ShotOID:=BaseItems[ComboBoxFShot.ItemIndex +1 ,2 ];
myShotID:=BaseItems[ComboBoxFShot.ItemIndex +1 ,3 ];
EditFShotOID.Text :=Inttostr ( myShotID) ;
EditFShotVal.text :=inttostr ( getitem( ShotOID,2 ,5 ) ) ;
end ;
//......................................
//......................................
//EditLure
//procedure EditLure_Click(Sender: TEdit);
procedure EditLure_Change( Sender: TEdit) ;
//Event : OnChange
begin
NeedBuy:=strtoint ( EditLure.Text ) ;
end ;
//......................................
//......................................
//CheckBoxFO
procedure CheckBoxFO_Click( Sender: TCheckBox) ;
//Event : OnClick
begin
//FO->GFO-PFO
if CheckBoxFO.Checked
then CreatePFO.enabled :=true
else CreatePFO.enabled :=false ;
if CreatePFO.enabled then begin
// buf:=hstr('2F 2A 05 00 00 00 00 00 00 00'); //common craft
buf:=hstr( '39 2A 05 00 00 00 00 00 00 00' ) ; //common craft
SendToServerEx( Name) ;
end ;
end ;
//......................................
//......................................
//CheckBoxPU
procedure CheckBoxPU_Click( Sender: TCheckBox) ;
//Event : OnClick
begin
end ;
//......................................
//......................................
//CheckBoxFisherman
procedure CheckBoxFisherman_Click( Sender: TCheckBox) ;
//Event : OnClick
begin
if CheckBoxFisherman.Checked
then begin
FishermanID:=ExtractIDValues( ComboBoxFisherman.Items .Strings [ComboBoxFisherman.ItemIndex ]) ; //берем ID
ComboBoxFisherman.Enabled :=false ; //выключаем
FishermanOID:=strtoint ( EditFishermanOID.text ) ;
end else begin
FishermanID:=0 ; //отмена
FishermanOID:=0 ;
ComboBoxFisherman.Enabled :=true ; //включаем
end ;
end ;
//......................................
//......................................
//ComboBoxFisherman
procedure ComboBoxFisherman_Change( Sender: TComboBox) ;
//Event : OnChange
begin
//by Xelat
{я видел у тебя там проблемы с пакетом UserInfo - отправляешь на сервер пакет 6E
- RequestRecordInfo и тебе придёт и юзеринфо, и инфа о всех нпц и игроках,
которые тут есть}
buf:=#$6E;
SendToServerEx( Name) ;
delay( 1000 ) ;
FishermanID:=ExtractIDValues( ComboBoxFisherman.Items .Strings [ComboBoxFisherman.ItemIndex ]) ;
for i:=1 to maxnpc do begin
// msg.Lines.Add('i='+inttostr(i)+'ID='+inttostr(NpcBase[2,i])+' FishermanID='+inttostr(FishermanID));
if NpcBase[2 ,i]=FishermanID then begin
EditFishermanOID.text :=inttostr ( NpcBase[1 ,i]) ;
break ;
end ;
// else EditFishermanOID.text:='000';
end ;
end ;
//......................................
//......................................
//EditFishermanOID
procedure EditFishermanOID_Click( Sender: TEdit) ;
//Event : OnClick
begin
end ;
//......................................
//......................................
//CheckBoxHPotion
procedure CheckBoxHPotion_Click( Sender: TCheckBox) ;
//Event : OnClick
begin
if CheckBoxHPotion.Checked
then begin
ComboBoxHPotion.Enabled :=false ; //выключаем
PercentHP:=strtoint ( EditHealt.Text ) ;
ColvoHP:=strtoint ( EditHPotionVal.Text ) ;
HPUse1:=true ;
end else begin
HPUse1:=false ;
MyHPID:=0 ; //отмена
PercentHP:=0 ;
HPOID:=0 ;
ColvoHP:=0 ;
ComboBoxHPotion.Enabled :=true ; //включаем
//Пакет c0F=RequestItemList c4
//Пакет c14=RequestItemList gracia
buf:=hstr( '14' ) ;
SendToServerEx( Name) ;
end ;
end ;
//......................................
//......................................
//ComboBoxHPotion
procedure ComboBoxHPotion_Change( Sender: TComboBox) ;
//Event : OnChange
begin
HPOID:=BaseItems[ComboBoxHPotion.ItemIndex +1 ,2 ];
myHPID:=BaseItems[ComboBoxHPotion.ItemIndex +1 ,3 ];
EditHPotionOID.Text :=Inttostr ( myHPID) ;
EditHPotionVal.text :=inttostr ( getitem( HPOID,2 ,5 ) ) ;
end ;
//......................................
//......................................
//EditHealt
//procedure EditHealt_Click(Sender: TEdit);
procedure EditHealt_Change( Sender: TEdit) ;
//Event : OnChange
begin
PercentHP:=strtoint ( EditHealt.Text ) ;
end ;
//......................................
//......................................
procedure CheckBox11Click( Sender: TObject ) ;
begin
//потрошить улов
end ;
//......................................
//......................................
procedure CheckBox7Click( Sender: TObject ) ;
begin
//
end ;
//......................................
//......................................
procedure CheckBox8Click( Sender: TObject ) ;
begin
//
end ;
procedure CheckBox9Click( Sender: TObject ) ;
begin
//
end ;
//......................................
//......................................
procedure ComboBox1Change( Sender: TObject ) ;
begin
//
end ;
//......................................
//......................................
procedure ComboBox2Change( Sender: TObject ) ;
begin
//
end ;
//......................................
//......................................
procedure ComboBox3Change( Sender: TObject ) ;
begin
//
end ;
//......................................
//......................................
procedure ComboBox4Change( Sender: TObject ) ;
begin
//
end ;
//......................................
//......................................
procedure ComboBox5Change( Sender: TObject ) ;
begin
//
end ;
//......................................
//......................................
procedure ComboBox6Change( Sender: TObject ) ;
begin
//
end ;
//......................................
//......................................
procedure ComboBox7Change( Sender: TObject ) ;
begin
//
end ;
//......................................
//......................................
procedure ComboBox8Change( Sender: TObject ) ;
begin
//
end ;
//......................................
//******************************************************************************
procedure FormClose( Sender: TObject ; var Action: TCloseAction) ;
begin
//Action:=caNone;
end ;
//......................................
//***************************************************************
procedure debugmsg( msg: string ) ;
begin
if debug then SendMsg2( msg) ;
end ;
//......................................
//***************************************************************
procedure SendMsg2( msg:string ) ; //отправка системных сообщений клиенту
begin
buf:=#$4A;
WriteD( 0 ) ;
WriteD( 10 ) ;
WriteS( '' ) ;
WriteS( msg) ;
SendToClientEx( Name) ;
end ;
//......................................
//***************************************************************
function GetValue( ValName: string ) : string ;
begin
result:=RecordPath.Values [ValName];
end ;
//......................................
//***************************************************************
procedure SetValue( ValName: string ; Value: string ) ;
begin
RecordPath.Values [ValName]:=Value;
end ;
//......................................
//***************************************************************
procedure StartRecord;
begin
if SavePathEnabled then exit ;
if MoveToPathEnabled then
begin
SendMsg2( 'Во время следования по маршруту запись не возможна' ) ;
msg.Lines .Add ( 'Во время следования по маршруту запись не возможна' ) ;
exit ;
end ;
RecordPath.Clear ;
PointsCount:=0 ;
SendMsg2( 'Начата запись маршрута' ) ;
msg.Lines .Add ( 'Начата запись маршрута' ) ;
SavePathEnabled:=True
end ;
//......................................
//***************************************************************
procedure StopRecord;
begin
if not SavePathEnabled then exit ;
//записываем
RecordPath.SaveToFile ( GetRecordFileName) ;
SendMsg2( 'Запись маршрута завершена' ) ;
msg.Lines .Add ( 'Запись маршрута завершена' ) ;
SavePathEnabled:=False ;
end ;
//......................................
//***************************************************************
function GetRecordFileName: string ;
begin
result:=RecordFilesPath+RecordPathFileName+RecordFileExt;
end ;
//......................................
//***************************************************************
procedure ParseMoveClient;
var
i,x,y,z: integer ; s: string ;
begin
if not SavePathEnabled then exit ;
i:=2 ;
x:=readd( i) ;
y:=readd( i) ;
z:=readd( i) ;
inc ( PointsCount) ;
s:='|' +inttostr ( x) +'|' +inttostr ( y) +'|' +inttostr ( z) +'|' ;
RecordPath.Add ( s) ;
SendMsg2( 'добавлен чекпоинт № ' +inttostr ( PointsCount) ) ;
msg.Lines .Add ( 'добавлен чекпоинт № ' +inttostr ( PointsCount) ) ;
end ;
//......................................
//***************************************************************
function delta( xpos1, ypos1, xpos2, ypos2:extended ) :integer ; //возвращает растоянием между 2 точками
var
dx,dy,summa: extended ;
begin
try
dx:=xpos1-xpos2;
dy:=ypos1-ypos2;
summa:=dx*dx+dy*dy;
if summa=0 then result:=0 else result:=Round ( sqrt ( summa) ) ;
debugmsg( 'delta=' +inttostr ( result) ) ;
except
debugmsg( 'error in delta' ) ;
end ;
end ;
{function delta(xpos1, ypos1, xpos2, ypos2:extended):integer; //возвращает растоянием между 2 точками
begin
result:= Round(Sqrt(((xpos1-xpos2)*(xpos1-xpos2))+((ypos1-ypos2)*(ypos1-ypos2))));
end;}
//......................................
//***************************************************************
function GetMinCheckPoint( PointsList: TStringList ) : integer ;
var
i,m,min_dist: integer ;
s: string ;
x,y,z: integer ;
begin
result:=-1 ;
min_dist:=-1 ;
//проверка на наличие маршрута
if PointsList.Count =0 then
begin
MoveTimer.Enabled :=False ;
MoveToPathEnabled:=False ;
SendMsg2( 'Нет данных по маршруту' ) ;
msg.Lines .Add ( 'Нет данных по маршруту' ) ;
exit ;
end ;
try
for i:=0 to PointsList.count -1 do
begin
s:=PointsList[i];
y:=ExtractValue( s,2 ) ;
x:=ExtractValue( s,1 ) ;
debugMsg( 'GetMinCheckPoint:' +s+' x:=' +inttostr ( x) +' y:=' +inttostr ( y) +' myx:=' +inttostr ( myx) +' myy:=' +inttostr ( myy) ) ;
m:=delta( x,y,myx,myy) ;
if m>0 then begin
if ( result=-1 ) then begin
min_dist:=m;
result:=i;
end else
if m<min_dist then begin
min_dist:=m;
result:=i;
end ;
end ;
end ;
except
debugMsg( 'error in GetMinCheckPoint' ) ;
msg.Lines .Add ( 'error in GetMinCheckPoint' ) ;
end ;//try
end ;
//......................................
//***************************************************************
procedure GoToPath( ToForward: boolean ) ;
var
x,y,z,i: integer ;
s: string ;
begin
MoveToPathEnabled:=not MoveToPathEnabled;
MoveToForward:=ToForward;
if not MoveToPathEnabled then
begin
MoveTimer.Enabled :=False ;
SendMsg2( 'Следование по маршруту остановлено' ) ;
msg.Lines .Add ( 'Следование по маршруту остановлено' ) ;
exit ;
end ;
//
//предположительно путь уже прописан в MovePath
//
SendMsg2( 'Пробуем выйти на путь...' ) ;
msg.Lines .Add ( 'Пробуем выйти на путь...' ) ;
//сперва идем к ближайшему чекпоинту
i:=GetMinCheckPoint( MovePath) ;
if i<0 then
begin
SendMsg2( 'чекпоинт не найден' ) ;
msg.Lines .Add ( 'чекпоинт не найден' ) ;
MoveToPathEnabled:=False ;
end else
begin
SendMsg2( 'найден ближайший чекпоинт #' +inttostr ( i) +' бежим туда' ) ;
msg.Lines .Add ( 'найден ближайший чекпоинт #' +inttostr ( i) +' бежим туда' ) ;
MoveToPathEnabled:=True ;
MoveStepIndex:=i;
if debug then SendMsg2( 'checkpoint #' +inttostr ( i) ) ;
s:=MovePath[MoveStepIndex];
x:=ExtractValue( s,1 ) ;
y:=ExtractValue( s,2 ) ;
z:=ExtractValue( s,3 ) ;
if ( old_x<>x) and ( old_y<>y) and ( old_z<>z) then
begin
MoveTo( x,y,z) ;
old_x:=x;
old_y:=y;
old_z:=z;
old_time:=0 ;
end ;
end ;
MoveTimer.Enabled :=True ;
chk_time:=0 ;
end ;
//......................................
//******************************************************************
//Идти в точку с координатами x,y,z
procedure MoveTo( TargetX,TargetY,TargetZ:integer ) ;
begin
//проверка на допустимость координат
if not PosInRange( targetx,targety,targetz,5000 ) then begin
MoveTimer.Enabled :=False ;
MoveTimer.Enabled :=False ;
SendMsg2( 'Слишком большая Дельта! Проверить папку с файлами перемещения! Движение остановлено!' ) ;
msg.Lines .Add ( 'Слишком большая Дельта! Проверить папку с файлами перемещения! Движение остановлено!' ) ;
end else begin
//c01=MoveBackwardToLocation:d(targetX)d(targetY)d(targetZ)d(originX)d(originY)d(originZ)d(moveByMouse)
//c0F=MoveBackwardToLocation:d(ToX)d(ToY)d(ToZ)d(OrigX)d(OrigY)d(OrigZ)d(MoveMovement)
buf:=#$0F;
WriteD( targetx) ; //куда
WriteD( targety) ;
WriteD( targetz) ;
WriteD( MyX) ; //откуда
WriteD( MyY) ;
WriteD( MyZ) ;
WriteD( 1 ) ; //используем 1-мышь 0-клавиатура
SendToServerEx( Name) ;
end ;
end ;
//......................................
//***************************************************************
//Проверка находится ли заданная точка в пределах досягаемости.
function PosInRange( targetx,targety,targetz,distanciya:integer ) :boolean ;
begin
if delta( targetx, targety, MyX, MyY) <=distanciya
then result:=true else result:=false ;
end ;
//......................................
//***************************************************************
procedure OnMove( Sender: TObject ) ;
var
x,y,z: integer ; s: string ;
begin
inc ( old_time) ;//счетчик, сколько тиков прошло с последнего клика. исп. при следованию по маршруту
inc ( chk_time) ;//счетчик
if not MoveToPathEnabled then begin
try
TTimer( Sender) .Enabled :=False ;
except
end ;
SendMsg2( 'Движение остановлено' ) ;
msg.Lines .Add ( 'Движение остановлено' ) ;
exit ;
end ;
{ //возможно мы пали смертью храбрых, то не дергаемся пока
if myHP<=0 then begin
SendMsg2('Die!');
msg.Lines.Add('Умерли!');
MoveToPathEnabled:=False;
exit;
end;}
MoveTimer.Interval :=MoveTrigerDelay;
debugmsg( 'MoveTrigerDelay:' +inttostr ( MoveTimer.Interval ) ) ;
try
//проверяем на существ. объекта
//при отладке всякое может быть
MovePath.Count ;
except
TTimer( Sender) .Enabled :=False ;
exit ;
end ;
s:=MovePath[MoveStepIndex];
x:=ExtractValue( s,1 ) ;
y:=ExtractValue( s,2 ) ;
z:=ExtractValue( s,3 ) ;
if PosInRange( x,y,z,RangeToCheckPoint) then begin
if MoveToForward then begin
if MoveStepIndex=MovePath.Count -1 then begin
MoveToPathEnabled:=False ;
//эта точка на месте рыбалки или у фишермэна если после смерти
SendMsg2( 'Мы по идее в конечной точке' ) ;
case cmd of
'move' : begin {просто идем по маршруту} end ;
'fishing' : begin //ловим
CanFishHere:=true ; //здесь можно ловить
fishin.enabled :=true ; //продолжим ловить рыбу
msg.Lines .Add ( 'Продолжим ловить рыбу!!!' ) ;
debugmsg( 'Продолжим ловить рыбу!!!' ) ;
end ;
'death' : begin //продаём
msg.Lines .Add ( 'Мы у фишермэна, бежим рыбачить...' ) ;
SendMsg2( 'Мы у фишермэна, бежим рыбачить...' ) ;
case MestoLovli of
1 : begin cmd:='fishing' ; MestoLovli1; end ;
2 : begin cmd:='fishing' ; MestoLovli2; end ;
3 : begin cmd:='fishing' ; MestoLovli3; end ;
end ;
end ;
end ;
exit ;
end
else begin
inc ( MoveStepIndex) ;
end ;
end
else begin
if MoveStepIndex>0 then dec ( MoveStepIndex)
else begin
MoveToPathEnabled:=False ;
//эта точка у фишермэна
SendMsg2( 'Мы по идее в начальной точке' ) ;
case cmd of
'move' : begin {просто идем по маршруту} end ;
'fishing' : begin //ловим
CanFishHere:=true ; //здесь можно ловить
fishin.enabled :=true ; //продолжим ловить рыбу
msg.Lines .Add ( 'Продолжим ловить рыбу!!!' ) ;
SendMsg2( 'Продолжим ловить рыбу!!!' ) ;
end ;
'trade' : begin //продаём
trade:=200 ;
trade1.enabled :=true ;
TradeCount:=0 ;
msg.Lines .Add ( 'Продадим/купим/обменяем...' ) ;
SendMsg2( 'Продадим/купим/обменяем...' ) ;
end ;
end ;
exit ;
end ;
end ;
//мы достигли чекпоинта идем далее
debugMsg( 'бежим к #' +inttostr ( MoveStepIndex) ) ;
msg.Lines .Add ( 'бежим к #' +inttostr ( MoveStepIndex) ) ;
s:=MovePath[MoveStepIndex];
x:=ExtractValue( s,1 ) ;
y:=ExtractValue( s,2 ) ;
z:=ExtractValue( s,3 ) ;
MoveTo( x,y,z) ;
chk_time:=0 ; //сбрасываем если дошли до чекпоинта
end ;
//проверка на застревание1
if chk_time=15 then //сколько ждем секунд, чтобы решить что застряли
begin
MoveTo( x,y,z) ; //тыкаем ещё раз, чтобы не стоял
debugMsg( 'тыкаем ещё раз:' +s+' x:=' +inttostr ( x) +' y:=' +inttostr ( y) +' myx:=' +inttostr ( myx) +' myy:=' +inttostr ( myy) ) ;
msg.Lines .Add ( 'тыкаем ещё раз:' +s+' x:=' +inttostr ( x) +' y:=' +inttostr ( y) +' myx:=' +inttostr ( myx) +' myy:=' +inttostr ( myy) ) ;
end ;
//проверка на застревание2
if chk_time=30 then //сколько ещё ждем секунд, чтобы решить что застряли и вернуться на точку назад
begin
chk_time:=0 ;
if MoveToForward and ( MoveStepIndex>0 ) then begin
dec ( MoveStepIndex) ;
SendMsg2( 'Проверка на застревание - бежим к #' +inttostr ( MoveStepIndex) ) ;
msg.Lines .Add ( 'Проверка на застревание - бежим к #' +inttostr ( MoveStepIndex) ) ;
end else if MoveStepIndex<MovePath.Count then begin
inc ( MoveStepIndex) ;
SendMsg2( 'Проверка на застревание - бежим к #' +inttostr ( MoveStepIndex) ) ;
msg.Lines .Add ( 'Проверка на застревание - бежим к #' +inttostr ( MoveStepIndex) ) ;
end ;
end ;
end ;
//......................................
//***************************************************************
function ExtractValue( sData: string ;nIndex: integer ) : integer ;
var
s: string ;
i,j: integer ;
begin
i:=0 ;j:=0 ;s:='' ;
s:=sData;
while j<nIndex do
begin
i:=pos ( '|' ,S) ;
if i>=0 then
begin
s:=copy ( s,i+1 ,length ( s) -i) ;
inc ( j) ;
end
else
break ;
end ;
i:=pos ( '|' ,s) ;
if i>=0 then
s:=copy ( s,1 ,i-1 ) ;
try
result:=strtoint ( s) ;
except
end ;
end ;
//......................................
//***************************************************************
function ExtractIDValues( sData: string ) : integer ;
var
s: string ;
i,j: integer ;
begin
i:=0 ;s:='' ;
s:=sData;
i:=pos ( '=' ,s) ;
if i>=0 then
s:=copy ( s,1 ,i-1 ) ;
try
result:=strtoint ( s) ;
except
result:=110 ;
end ;
end ;
//......................................
//***************************************************************
// Все перемещения чара здесь!!!
//***************************************************************
//1 бежим от фишермана на берег в Гиран-харбор
//-------------------------------------------------
procedure Mestolovli1;
begin
//загружаем маршрут
try
MovePath.LoadFromFile ( RecordFilesPath+'Mestolovli1' +RecordFileExt) ;
msg.Lines .Add ( 'Место ловли: Mestolovli1' ) ;
except
SendMsg2( 'файл пути не найден' ) ;
exit ;
end ;
case cmd of
'fishing' : GoToPath( go) ; //бежим ловить
'trade' : GoToPath( back) ; //бежим продавать
end ;
end ;
//......................................
//-------------------------------------------------
//2 бежим от фишермана на берег в Гиран-харбор
//-------------------------------------------------
procedure Mestolovli2;
begin
//загружаем маршрут
try
MovePath.LoadFromFile ( RecordFilesPath+'Mestolovli2' +RecordFileExt) ;
msg.Lines .Add ( 'Место ловли: Mestolovli2' ) ;
except
SendMsg2( 'файл пути не найден' ) ;
exit ;
end ;
case cmd of
'fishing' : GoToPath( go) ; //бежим ловить
'trade' : GoToPath( back) ; //бежим продавать
end ;
end ;
//......................................
//-------------------------------------------------
//3 бежим от фишермана на берег в Гиран-харбор
//-------------------------------------------------
procedure Mestolovli3;
begin
//загружаем маршрут
try
MovePath.LoadFromFile ( RecordFilesPath+'Mestolovli3' +RecordFileExt) ;
msg.Lines .Add ( 'Место ловли: Mestolovli3' ) ;
except
SendMsg2( 'файл пути не найден' ) ;
exit ;
end ;
case cmd of
'fishing' : GoToPath( go) ; //бежим ловить
'trade' : GoToPath( back) ; //бежим продавать
end ;
end ;
//......................................
//-------------------------------------------------
//1 меняем место
//-------------------------------------------------
procedure MenayemMesto1;
begin
//загружаем маршрут
try
MovePath.LoadFromFile ( RecordFilesPath+'MenayemMesto1' +RecordFileExt) ;
msg.Lines .Add ( 'Меняю место ловли: MenayemMesto1' ) ;
except
SendMsg2( 'файл пути не найден' ) ;
exit ;
end ;
GoToPath( go) ; //бежим ловить
end ;
//......................................
//-------------------------------------------------
//2 меняем место
//-------------------------------------------------
procedure MenayemMesto2;
begin
//загружаем маршрут
try
MovePath.LoadFromFile ( RecordFilesPath+'MenayemMesto2' +RecordFileExt) ;
msg.Lines .Add ( 'Меняю место ловли: MenayemMesto2' ) ;
except
SendMsg2( 'файл пути не найден' ) ;
exit ;
end ;
GoToPath( go) ; //бежим ловить
end ;
//......................................
//-------------------------------------------------
//3 меняем место
//-------------------------------------------------
procedure MenayemMesto3;
begin
//загружаем маршрут
try
MovePath.LoadFromFile ( RecordFilesPath+'MenayemMesto3' +RecordFileExt) ;
msg.Lines .Add ( 'Меняю место ловли: MenayemMesto3' ) ;
except
SendMsg2( 'файл пути не найден' ) ;
exit ;
end ;
GoToPath( go) ; //бежим ловить
end ;
//......................................
//-------------------------------------------------
//1 Репозиция на месте рыбалки после боя с мобом
//-------------------------------------------------
procedure Reposition1;
begin
//загружаем маршрут
try
MovePath.LoadFromFile ( RecordFilesPath+'Reposition1' +RecordFileExt) ;
msg.Lines .Add ( '->Reposition1' ) ;
except
SendMsg2( 'файл пути не найден' ) ;
exit ;
end ;
MoveToForward:=go;
MoveStepIndex:=0 ;
MoveToPathEnabled:=True ;
MoveTimer.Enabled :=True ;
end ;
//......................................
//-------------------------------------------------
//2 Репозиция на месте рыбалки после боя с мобом
//-------------------------------------------------
procedure Reposition2;
begin
//загружаем маршрут
try
MovePath.LoadFromFile ( RecordFilesPath+'Reposition2' +RecordFileExt) ;
msg.Lines .Add ( 'Репозиция после боя: Reposition2' ) ;
except
SendMsg2( 'файл пути не найден' ) ;
exit ;
end ;
MoveToForward:=go;
MoveStepIndex:=0 ;
MoveToPathEnabled:=True ;
MoveTimer.Enabled :=True ;
end ;
//......................................
//-------------------------------------------------
//3 Репозиция на месте рыбалки после боя с мобом
//-------------------------------------------------
procedure Reposition3;
begin
//загружаем маршрут
try
MovePath.LoadFromFile ( RecordFilesPath+'Reposition3' +RecordFileExt) ;
msg.Lines .Add ( 'Репозиция после боя: Reposition3' ) ;
except
SendMsg2( 'файл пути не найден' ) ;
exit ;
end ;
MoveToForward:=go;
MoveStepIndex:=0 ;
MoveToPathEnabled:=True ;
MoveTimer.Enabled :=True ;
end ;
//......................................
//-------------------------------------------------
//Оживаем после боя с мобом
//-------------------------------------------------
procedure AfterDeath;
var
s:string ;
x,y,z : integer ;
begin
//загружаем маршрут
try
MovePath.LoadFromFile ( RecordFilesPath+'afterdeath1' +RecordFileExt) ;
msg.Lines .Add ( 'После смерти: AfterDeath1' ) ;
except
SendMsg2( 'файл пути не найден' ) ;
exit ;
end ;
MoveToForward:=go;
MoveStepIndex:=0 ;
MoveToPathEnabled:=True ;
MoveTimer.Enabled :=True ;
msg.Lines .Add ( 'Бежим к фишермэну...' ) ;
end ;
//......................................
//***************************************************************
procedure UserInfo; //обновление данных о себе
var
i:word ;
begin
MyOID:=ReadD( 18 ) ;
MyX:=ReadD( 2 ) ;
MyY:=ReadD( 6 ) ;
MyZ:=ReadD( 10 ) ;
i:=22 ;
ReadS( i) ;
inc ( i,48 ) ;
MyMaxHP:=ReadD( i) ;
MyHP:=ReadD( i) ;
MyMaxMP:=ReadD( i) ; //чисто информативно
MyMP:=ReadD( i) ;
pbMyHP.max :=MyMaxHP;
pbMyHP.position :=MyHP;
pbMyMP.max :=MyMaxMP;
pbMyMP.position :=MyMP;
gbMyHP.caption :=' HP: ' +inttostr ( MyHP) +'/' +inttostr ( MyMaxHP) +' ' ;
gbMyMP.caption :=' MP: ' +inttostr ( MyMP) +'/' +inttostr ( MyMaxMP) +' ' ;
end ;
//......................................
//***************************************************************
procedure StatusUpdate; //обновление данных о себе
var
i: integer ;
begin
for i:=0 to ReadD( 6 ) -1 do
case pck[i*8 +10 ] of
#$09 : MyHP:=ReadD( i*8 +14 ) ;
#$0A: MyMaxHP:=ReadD( i*8 +14 ) ;
#$0B: MyMP:=ReadD( i*8 +14 ) ;
#$0C: MyMaxMP:=ReadD( i*8 +14 ) ;
end ;
pbMyHP.max :=MyMaxHP;
pbMyHP.position :=MyHP;
pbMyMP.max :=MyMaxMP;
pbMyMP.position :=MyMP;
gbMyHP.caption :=' HP: ' +inttostr ( MyHP) +'/' +inttostr ( MyMaxHP) +' ' ;
gbMyMP.caption :=' MP: ' +inttostr ( MyMP) +'/' +inttostr ( MyMaxMP) +' ' ;
if ( MyMaxHP<>0 ) then //вычисляем процентное соотношение хп
begin
PercentHP:=strtoint ( EditHealt.Text ) ;
NeedBuy:=strtoint ( EditLure.Text ) ;
but:=Round ( ( MyMaxHP/100 ) *PercentHP) ; //при каком количестве хп юзать бутылку лечения
end ;
end ;
//......................................
//***************************************************************
//04=UserInfo:d(X)d(Y)d(Z)d(Heading)d(ObjectID)s(Name)d(Race)d(Sex)d(ClassID)d(Level)f(Exp)d(STR)d(DEX)d(CON)d(INT)d(WIT)d(MEN)d(MaxHP)d(CurHP)d(MaxMP)d(CurMP)d(SP)d(CurLoad)d(MaxLoad)d(d)d(DHair)d(Rear)d(Lear)d(Neck)d(RFinger)d(LFinger)d(Head)d(RHand)d(LHand)d(Gloves)d(Chest)d(Legs)d(Feet)d(Back)d(LRHand)d(Hair)d(Face)d(DHair)d(Rear)d(Lear)d(Neck)d(RFinger)d(LFinger)d(Head)d(RHand)d(LHand)d(Gloves)d(Chest)d(Legs)d(Feet)d(Back)d(LRHand)d(Hair)d(Face)-(0068)d(Patk)d(Paspd)d(Pdef)d(evasion)d(accur)d(crithit)d(Matk)d(Maspd)d(Paspd)d(Mdef)d(PvpFlag)d(Karma)d(runSpd)d(walkSpd)d(swimRSpd)d(swimWSpd)d(flRSpd)d(flWSpd)d(flyRSpd)d(flyWSpd)f(MoveMul)f(aspdMul)f(collisRadius)f(collisHeight)d(HairStyle)d(HairColor)d(Face)d(AccessLvl)s(Title)d(clanID)d(clanCrestId)d(AllyID)d(AllyCrestId)d(ClanLeader)b(Mount)b(shop)b(DwarfCraft)d(PKkills)d(PVPkills)w(cubics)w(cubID)b(findparty)d(abnEffects)b(c)d(clanPrivil)w(RecomLeft)w(RecomHave)d(d)w(InventLimit)d(classId)d(sEff)d(maxCP)d(curCP)b(Mount)b(Team)d(clanBigCrestId)b(Noble)b(Hero)b(Fishing)d(fishX)d(fishY)d(fishZ)d(NameColor)b(isRun)d(PledgeClass)d(d)d(TitleColor)d(d)d(CurseWeap)
//03=CharInfo:d(X)d(Y)d(Z)d(Heading)d(ObjectID)s(Name)d(Race)d(Sex)h(ClassID)d(DHair)i(Head)i(RHand)i(LHand)i(Gloves)i(Chest)i(Legs)i(Feet)i(Back)i(LRHand)i(Hair)i(PvpFlag)d(Karma)d(MSpeed)d(PSpeed)d(PvpFlag)d(Karma)d(runSpd)d(walkSpd)d(swimRSpd)d(swimWSpd)d(flRunSpd)d(flWalkSpd)d(flyRSpd)d(flyWSpd)f(SpdMul)f(ASpdMul)f(collisRadius)f(collisHeight)d(HairStyle)d(HairColor)d(Face)s(Title)d(clanID)d(clanCrest)d(allyID)d(allyCrest)d(siegeFlag)b(isStand)b(isRun)b(isInFight)b(isAlikeDead)b(Invis)b(Mount)b(shop)w(cubics)w(cubID)b(findparty)d(abnEffects)b(RecomLeft)w(RecomHave)h(ClassID)d(maxCP)d(curCP)b(isMounted)b(Team)d(clanBigCrestId)b(isNoble)b(isHero)b(isFishing)d(fishX)d(fishY)d(fishZ)d(NameColor)b(isRun)d(d)d(PItem)d(PledgeClass)d(PledgeColor)d(TitleColor)d(Cursed)
procedure TargetInfo; //обновление данных о цели
var
i:word ;
begin
AttackerOID:=ReadD( 18 ) ;
AttackerX:=ReadD( 2 ) ;
AttackerY:=ReadD( 6 ) ;
AttackerZ:=ReadD( 10 ) ;
i:=22 ;
ReadS( i) ;
inc ( i,48 ) ;
AttackerMaxHP:=ReadD( i) ;
AttackerHP:=ReadD( i) ;
pbTargetHP.max :=AttackerMaxHP;
pbTargetHP.position :=AttackerHP;
gbTargetHP.caption :=' HP: ' +inttostr ( AttackerHP) +'/' +inttostr ( AttackerMaxHP) +' ' ;
end ;
//......................................
//***************************************************************
procedure TargetStatusUpdate; //обновление данных о цели
var
i: integer ;
begin
for i:=0 to ReadD( 6 ) -1 do
case pck[i*8 +10 ] of
#$09 : AttackerHP:=ReadD( i*8 +14 ) ;
#$0A: AttackerMaxHP:=ReadD( i*8 +14 ) ;
end ;
pbTargetHP.max :=AttackerMaxHP;
pbTargetHP.position :=AttackerHP;
gbTargetHP.caption :=' HP: ' +inttostr ( AttackerHP) +'/' +inttostr ( AttackerMaxHP) +' ' ;
end ;
//......................................
//***************************************************************
function ParseCmd( cmd: string ) :boolean ;
var
s: string ;
i,j,k: integer ;
params: array[0 ..9 ] of string ; //до 10 параметров, должно хватить
begin
result:=False ;
try
j:=-1 ;
i:=pos ( cmdPrefix,trim( cmd) ) ;
if i=0 then
exit ;
debugmsg( 'start ParseCmd: idx:' +inttostr ( i) +' cmd: ' +cmd) ;
result:=true ;
k:=length ( cmdPrefix) ;
s:=trim( lowercase ( cmd) ) ;
s:=trim( copy ( s,i+k,length ( cmd) -i) ) ;
debugmsg( 'trim:' +s) ;
repeat
inc ( j) ;
k:=pos ( cmdDlm,s) ;
if k>0 then
begin
params[j]:=copy ( s,1 ,k-1 ) ;
s:=trim( copy ( s,k+length ( cmdDlm) ,length ( s) -k) ) ;
debugmsg( 'extract idx:' +inttostr ( j) +' param:' +params[j]) ;
end
else
begin
params[j]:=s;
debugmsg( 'param is one' ) ;
end ;
until pos ( cmdDlm,S) =0 ;
if j>-1 then
begin
inc ( j) ;
params[j]:=s;
debugmsg( 'extract idx:' +inttostr ( j) +' param:' +params[j]) ;
end ;
if j=-1 then
exit ;
//*******************************************************
//пропарсили команду, теперь выполняем
//*******************************************************
if params[0 ]=cmdRecordPath then
begin
if params[1 ]<>'' then
RecordPathFileName:=params[1 ]
else
RecordPathFileName:=RecordPathName;
StartRecord;
end
else
if params[0 ]=cmdSavePath then
begin
StopRecord;
end
else
if params[0 ]=cmdMove then
begin
if params[1 ]='' then
begin
SendMsg2( 'хз куда бежать, укажите имя' ) ;
exit ;
end ;
try
MovePath.LoadFromFile ( RecordFilesPath+params[1 ]+RecordFileExt) ;
except
SendMsg2( 'файл пути не найден' ) ;
exit ;
end ;
GoToPath( true ) ;
end
else
if params[0 ]=cmdBack then
begin
if params[1 ]='' then
begin
SendMsg2( 'хз куда бежать, укажите имя' ) ;
exit ;
end ;
try
MovePath.LoadFromFile ( RecordFilesPath+params[1 ]+RecordFileExt) ;
except
SendMsg2( 'файл пути не найден' ) ;
exit ;
end ;
GoToPath( false ) ;
end
else
if ( params[0 ]=cmdStop) and MoveToPathEnabled then
MoveToPathEnabled:=False ;
except
debugmsg( 'error in ParseCmd,params=' +cmd) ;
end ;
end ;
//......................................
//***************************************************************
procedure ShowInfo;
var
i: integer ;
begin
stats.Lines .Clear ;
stats.Lines .Add ( 'Имя чара :' +Name) ;
stats.Lines .Add ( 'Время старта :' +TimeToStr ( starttime) ) ;
stats.Lines .Add ( 'Время ловли :' +TimeToStr ( time-starttime) ) ;
stats.Lines .Add ( 'Поймали: ' +IntToStr ( fish1) ) ;
stats.Lines .Add ( 'Сорвалось: ' +IntToStr ( fish2) ) ;
stats.Lines .Add ( 'Преобр. успешно: ' +IntToStr ( lucky1) ) ;
stats.Lines .Add ( 'Преобр. неуспешно: ' +IntToStr ( failed1) ) ;
stats.Lines .Add ( 'На нас напали: ' +IntToStr ( mob1) +' раз' ) ;
stats.Lines .Add ( 'Погибли: ' +IntToStr ( death1) +' раз' ) ;
stats.Lines .Add ( '' ) ;
stats.Lines .Add ( 'MyMaxHP: ' +IntToStr ( MyMaxHP) ) ;
stats.Lines .Add ( 'MyHP: ' +IntToStr ( MyHP) ) ;
stats.Lines .Add ( 'MyOID: ' +IntToStr ( MyOID) ) ;
stats.Lines .Add ( 'MyXpos: ' +IntToStr ( MyX) ) ;
stats.Lines .Add ( 'MyYpos: ' +IntToStr ( MyY) ) ;
stats.Lines .Add ( 'MyZpos: ' +IntToStr ( MyZ) ) ;
stats.Lines .Add ( '' ) ;
stats.Lines .Add ( 'ReadyToSell: ' +VarToStr( ReadyToSell) ) ;
stats.Lines .Add ( 'ReadyToBuy: ' +VarToStr( ReadyToBuy) ) ;
stats.Lines .Add ( 'ReadyToMultiSell: ' +VarToStr( ReadyToMultiSell) ) ;
stats.Lines .Add ( 'NeedBuy: ' +VarToStr( NeedBuy) ) ;
stats.Lines .Add ( '' ) ;
stats.Lines .Add ( 'PMMesto: ' +IntToStr ( PMMesto) ) ;
stats.Lines .Add ( 'MMesto: ' +IntToStr ( MMesto) ) ;
stats.Lines .Add ( 'MestoLovli: ' +IntToStr ( MestoLovli) ) ;
stats.Lines .Add ( 'CanFishHere: ' +VarToStr( CanFishHere) ) ;
stats.Lines .Add ( 'isFishing: ' +VarToStr( isFishing) ) ;
// stats.Lines.Add('old_time: '+IntToStr(old_time));
// stats.Lines.Add('chk_time: '+IntToStr(chk_time));
// stats.Lines.Add('');
// stats.Lines.Add('but: '+IntToStr(but));
// stats.Lines.Add('PercentHP: '+IntToStr(PercentHP));
// stats.Lines.Add('Colvohp: '+VarToStr(Colvohp));
// stats.Lines.Add('iii: '+IntToStr(iii));
stats.Lines .Add ( '' ) ;
if ( WeaponUse1=false ) then stats.Lines .Add ( 'Юзать оружие?: НЕТ!' ) else stats.Lines .Add ( 'Юзать оружие?: ДА!' ) ;
if ( ShieldUse1=false ) then stats.Lines .Add ( 'Юзать щит?: НЕТ!' ) else stats.Lines .Add ( 'Юзать щит?: ДА!' ) ;
if ( HPuse1=false ) then stats.Lines .Add ( 'Юзать бутылки?: НЕТ!' ) else stats.Lines .Add ( 'Юзать бутылки?: ДА!' ) ;
if ( ShotUse1=false ) then stats.Lines .Add ( 'Юзать фишин-шоты?: НЕТ!' ) else stats.Lines .Add ( 'Юзать фишин-шоты?: ДА!' ) ;
if not CheckBoxPU.Checked then stats.Lines .Add ( 'Потрошим?: НЕТ!' ) else stats.Lines .Add ( 'Потрошим?: ДА!' ) ;
if not CheckBoxFO.Checked then stats.Lines .Add ( 'FO->PFO: НЕТ!' ) else stats.Lines .Add ( 'FO->PFO?: ДА!' ) ;
end ;
//......................................
//***************************************************************
procedure OnShowInfo( Sender: TObject ) ; //выводим в форму
begin
ShowInfo;
if ( MyHP<but) and HPuse1 then begin //если разрешено использование бутылок, то используем
if ( iii>=5 ) and ( colvohp>0 ) then begin
UseItem( HPOID) ; //проверка количества бутылок
iii:=0 ; //счетчик для личилок, чтобы не спамить
end else inc ( iii)
end ;
end ;
//......................................
//***************************************************************
procedure OnCreatePFO( Sender: TObject ) ; //выводим в форму
begin
buf:=hstr( 'B8 A8 02 00 00' ) ; //create GFO
SendToServerEx( Name) ;
delay( 2000 ) ;
buf:=hstr( 'B8 A9 02 00 00' ) ; //create PFO
SendToServerEx( Name) ;
end ;
//......................................
//***************************************************************
procedure RequestRestartPoint;
//c7D=RequestRestartPoint
begin
buf:=#$7D;
WriteD( 00 ) ; //00-в город
SendToServerEx( Name) ;
MoveTimer.Interval :=10000 ;
delay( 150 ) ;
end ;
//......................................
//***************************************************************
//RequestBypassToServer:s(Cmd)
//c23=RequestBypassToServer gracia
//посылаем, чтобы получить пакет BuyItem с ListID
procedure RequestByPassToServer( cmd:string ) ;
begin
buf:=#$23 ;
WriteS( cmd) ;
SendToServerEx( Name) ;
delay( 150 ) ;
end ;
//......................................
//***************************************************************
//s06=SellList:d(Money)d(Lease)h(ListSize:Loop.01.0018)h(ItemType1)d(ObjectID)d(ItemID:Get.Func01)d(Count)h(ItemType2)h(0)d(ItemBodyPart)h(EnchantLevel)h(0)h(0)d(ReferencePrice/2)d(AttackAttrElement)d(AttackAttrElementVal)d(DefAttrFire)d(DefAttrWater)d(DefAttrWind)d(DefAttrEarth)d(DefAttrHoly)d(DefAttrUnholy)
//c37=RequestSellItem:d(ListID)d(ListSize:Loop.01.0003)d(ObjectID)d(ItemID:Get.Func01)d(Count)
//продаем по одному типу
procedure RequestSellItem( ListID,ItemOID,ItemID,Count:integer ) ;
begin
if ReadyToSell then begin
msg.Lines .Add ( 'Продадим предмет OID:' +inttostr ( ItemOID) +' ID:' +inttostr ( ItemID) +' в кол-ве:' +inttostr ( count) ) ;
buf:=#$37 ;
WriteD( ListID) ;
WriteD( 1 ) ;
WriteD( ItemOID) ;
WriteD( ItemID) ;
WriteD( Count) ;
SendToServerEx( Name) ;
delay( 150 ) ;
end ;
end ;
//......................................
//***************************************************************
//c40=RequestBuyItem:d(ListID)d(ListSize:Loop.01.0002)d(ItemID:Get.Func01)d(Count)
//купим по одному типу
procedure RequestBuyItem( ListID,ItemID,Count:integer ) ;
begin
if ReadyToBuy then begin
msg.Lines .Add ( 'Купим предмет ID:' +inttostr ( ItemID) +' в кол-ве:' +inttostr ( count) ) ;
buf:=#$40 ;
WriteD( ListID) ; //ListID
WriteD( 1 ) ; //ListSize
//повторять ListSize раз
WriteD( ItemID) ; //ItemID
WriteD( Count) ; //Count
//
SendToServerEx( Name) ;
delay( 150 ) ;
end ;
end ;
//......................................
//***************************************************************
//cB0=MultiSellChoose:d(ListID)d(EntryID)d(Amount)h(Enchantment)
//продаем по одному типу
procedure RequestMultiSellItem( ListId,EntryID,Count:integer ) ;
begin
msg.Lines .Add ( 'Обменяем предмет ListID:' +inttostr ( ListID) +' EntryID:' +inttostr ( EntryID) +' в кол-ве:' +inttostr ( count) ) ;
if ReadyToMultiSell then begin
buf:=#$B0;
WriteD( ListID) ;
WriteD( EntryId) ;
WriteD( Count) ;
//buf:=buf+hstr('00 00 00 00 00 00 FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00');
buf:=buf+hstr( '00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00' ) ;
SendToServerEx( Name) ;
delay( 150 ) ;
end ;
end ;
//......................................
//***************************************************************
procedure UseItem( OID:integer ) ;
//c19=UseItem:d(ObjectID)d(Unknown)
begin
buf:=#$19 ;
WriteD( OID) ;
WriteD( 0 ) ;
SendToServerEx( Name) ;
delay( 150 ) ;
end ;
//......................................
//***************************************************************
//c39=RequestMagicSkillUse:dMagicID)d(CtrlPressed)b(ShiftPressed)
procedure MagicSkillUse( MagicID:integer ) ;
begin
buf:=#$39 ;
WriteD( MagicID) ;
WriteD( 00 ) ; //CtrlPressed
WriteC( 00 ) ; //ShiftPressed
SendToServerEx( Name) ;
delay( 150 ) ;
end ;
//......................................
//***************************************************************
procedure Pumping;
begin
if ( ShotOID<>0 ) and ( strtoint ( EditFShotVal.text ) >0 ) then UseItem( ShotOID)
else if shotuse1 then msg.Lines .Add ( 'Кончились шоты!' ) ; //просто сообщаем, без шотов можно ловить
MagicSkillUse( pump) ;
end ;
//......................................
//***************************************************************
procedure Reeling;
begin
if ( ShotOID<>0 ) and ( strtoint ( EditFShotVal.text ) >0 ) then UseItem( ShotOID)
else if shotuse1 then msg.Lines .Add ( 'Кончились шоты!' ) ; //просто сообщаем, без шотов можно ловить
MagicSkillUse( reel) ;
end ;
//......................................
//***************************************************************
procedure Fishing;
begin
if strtoint ( EditLureVal.text ) >1 then begin //оставляем один крючек, чтобы не сбился ItemOID
if not CanFishHere then begin
msg.Lines .Add ( 'Здесь нельзя ловить...' ) ;
case MestoLovli of
1 : begin cmd:='fishing' ; Reposition1; end ;
2 : begin cmd:='fishing' ; Reposition2; end ;
3 : begin cmd:='fishing' ; Reposition3; end ;
end ;
exit ;
end ;
MagicSkillUse( fish) ;
end
else begin
msg.Lines .Add ( 'Кончились крючки!' ) ;
fishin.enabled :=false ;
if CheckBoxFisherman.Checked then begin
case MestoLovli of
1 : begin cmd:='trade' ; MestoLovli1; end ;
2 : begin cmd:='trade' ; MestoLovli2; end ;
3 : begin cmd:='trade' ; MestoLovli3; end ;
end ;
msg.Lines .Add ( 'Бежим в магазин...' ) ;
end ;
end ;
end ;
//......................................
//***************************************************************
procedure OnFishing( Sender: TObject ) ;
begin
if not isEquip( RodOID) then begin
msg.Lines .Add ( 'Берем удочку' ) ;
giverod;
exit ;
end else
msg.Lines .Add ( 'Уже взята удочка' ) ;
if not isEquip( LureOID) then begin
msg.Lines .Add ( 'Цепляем крючок' ) ;
givelure;
exit ;
end else
msg.Lines .Add ( 'Уже прицеплен крючок' ) ;
fishin.enabled :=false ;
isFishing:=true ; //ловим
Fishing;
end ;
//......................................
//***************************************************************
//c1F=Action:d(ObjectID)d(OriginX)d(OriginY)d(OriginZ)c(ActionID)
procedure Target( Attacker: Integer ) ;
begin
buf:=#$1F;
WriteD( Attacker) ;
WriteD( MyX) ;
WriteD( MyY) ;
WriteD( MyZ) ;
WriteC( 00 ) ;
SendToServerEx( Name) ;
delay( 800 ) ;
end ;
//......................................
//***************************************************************
//c01=AttackRequest:d(ObjectID)d(OriginX)d(OriginY)d(OriginZ)c(AttackID)
procedure Attack( Attacker: Integer ) ;
begin
buf:=#$01 ;
WriteD( Attacker) ;
WriteD( MyX) ;
WriteD( MyY) ;
WriteD( MyZ) ;
WriteC( 00 ) ;
SendToServerEx( Name) ;
delay( 800 ) ;
end ;
//......................................
//***************************************************************
procedure TargetAttacker( Attacker: Integer ) ;
begin
msg.Lines .Add ( 'Attacker=' +IntToStr ( Attacker) +' Player=' +IntToStr ( MyOID) ) ;
fishin.enabled :=false ;
Target( Attacker) ;
delay( 150 ) ;
end ;
//......................................
//***************************************************************
procedure TargetFisherman;
begin
fishin.enabled :=false ;
Target( FishermanOID) ;
delay( 150 ) ;
Target( FishermanOID) ;
delay( 150 ) ;
end ;
//......................................
//***************************************************************
procedure GiveWeapon;
begin
msg.Lines .Add ( 'Берём=' +IntToStr ( WeaponOID) +' ID=' +inttostr ( MyWeaponID) +' Equip=' +inttostr ( GetItem( MyWeaponID,3 ,8 ) ) ) ;
if WeaponOID=0 then exit ;
if not isEquip( WeaponOID) then begin
UseItem( WeaponOID) ; //попробуем одеть снова
delay( 650 ) ;
end ;
end ;
//......................................
//***************************************************************
procedure GiveShield;
begin
msg.Lines .Add ( 'Берём=' +IntToStr ( ShieldOID) +' ID=' +inttostr ( MyShieldID) +' Equip=' +inttostr ( GetItem( MyShieldID,3 ,8 ) ) ) ;
if ShieldOID=0 then exit ;
if not isEquip( ShieldOID) then begin
UseItem( ShieldOID) ; //попробуем одеть снова
delay( 650 ) ;
end ;
end ;
//......................................
//***************************************************************
procedure GiveRod;
begin
msg.Lines .Add ( 'Берём=' +IntToStr ( RodOID) +' ID=' +inttostr ( MyRodID) +' Equip=' +inttostr ( GetItem( MyRodID,3 ,8 ) ) ) ;
if RodOID=0 then exit ;
if not isEquip( RodOID) then begin
UseItem( RodOID) ; //попробуем одеть снова
delay( 650 ) ;
end ;
end ;
//......................................
//***************************************************************
procedure GiveLure;
begin
msg.Lines .Add ( 'Берём=' +IntToStr ( LureOID) +' ID=' +inttostr ( MyLureID) +' Equip=' +inttostr ( GetItem( MyLureID,3 ,8 ) ) ) ;
if LureOID=0 then exit ;
if not isEquip( LureOID) then begin
UseItem( LureOID) ; //попробуем одеть снова
delay( 650 ) ;
end ;
end ;
//......................................
//***************************************************************
function isEquip( ItemID:integer ) : boolean ;
begin
if GetItem( ItemID,2 ,8 ) =0 then Result:=false else Result:=true ;
end ;
//......................................
//***************************************************************
// Вся торговля здесь!!!
//***************************************************************
procedure OnTrade( Sender: TObject ) ;
begin
case trade of
//-------------------------------------------------
//продаем фишерману из массива TradeSellItem
//-------------------------------------------------
200 : begin
//мы у фишермана, продаем всё ненужное
if FishermanOID=0 then begin
//RequestRecordInfo и тебе придёт и юзеринфо, и инфа о всех нпц и игроках, которые тут есть
buf:=#$6E;
SendToServerEx( Name) ;
//Trade1.enabled:=false; //останавливаем торговлю
msg.Lines .Add ( 'Не готовы к торговле, нет OID фишермана! Запросили сервер OID фишермана.' ) ;
exit ; //выходим
end ;
if ReadyToSell and ( FishermanOID<>0 ) then begin //exit; //если мы в процессе продажи (еще не продали предыдущую вещь), то выходим сразу
if HtmlRcv then begin //ReadD(2)=FishermanOID then begin
RequestByPassToServer( GetSellList) ;
msg.Lines .Add ( 'C>Пакет RequestBypassToServer #$23 (sell)' ) ;
HtmlRcv:=false ;
//exit;
end ;
if SellListRcv then begin
msg.Lines .Add ( 'FindItem: OID:' +IntToStr ( GetItem( TradeSellItem[Trd],3 ,2 ) ) +' ID:' +IntToStr ( TradeSellItem[Trd]) +' Count:' +IntToStr ( GetItem( TradeSellItem[Trd],3 ,5 ) ) ) ;
RequestSellItem( ListID,GetItem( TradeSellItem[Trd],3 ,2 ) ,TradeSellItem[Trd],GetItem( TradeSellItem[Trd],3 ,5 ) ) ;
msg.Lines .Add ( 'C>Пакет RequestSellItem #$37' ) ;
ReadyToSell:=false ; //закончили с предметом
SellListRcv:=false ;
//exit;
end ;
end else begin
if ( TradeCount=TradeSellItemCount) then begin //проверка на выход из массива
trade:=300 ;
msg.Lines .Add ( 'Всё продали!' ) ;
msg.Lines .Add ( 'Переход к покупкам...' ) ;
TradeCount:=0 ; //начнем сначала массива
end else begin
if GetItem( TradeSellItem[TradeCount],3 ,5 ) >0 then begin //проверка, что предмет есть в инвентаре и его можно продать
TargetFisherman; //фишермана в таргет
msg.Lines .Add ( 'Готовы продать:' +inttostr ( TradeSellItem[TradeCount]) ) ;
ReadyToSell:=true ; //готовы продавать
Trd:=TradeCount;
end else msg.Lines .Add ( 'Нет такого предмета:' +inttostr ( TradeSellItem[TradeCount]) ) ;
inc ( TradeCount) ; //выбираем следующий предмет
msg.Lines .Add ( 'TradeCount/TradeSellItemCount:' +inttostr ( TradeCount) +'/' +inttostr ( TradeSellItemCount-1 ) ) ;
end ;
end ;
end ;
//-------------------------------------------------
//покупаем у фишермана из массива TradeBuyItem
//-------------------------------------------------
300 : begin
//мы у фишермана, покупаем крючки
if FishermanOID=0 then begin
//RequestRecordInfo и тебе придёт и юзеринфо, и инфа о всех нпц и игроках, которые тут есть
buf:=#$6E;
SendToServerEx( Name) ;
// Trade1.enabled:=false; //останавливаем торговлю
msg.Lines .Add ( 'Не готовы к торговле, нет OID фишермана! Запросили сервер OID фишермана.' ) ;
exit ; //выходим
end ;
if ReadyToBuy and ( FishermanOID<>0 ) then begin //exit; //если мы в процессе покупки (еще не купили предыдущую вещь), то выходим сразу
if HtmlRcv then begin //ReadD(2)=FishermanOID then begin
//шлем запрос выбора пункта - продажа
//c23=RequestBypassToServer:s(Cmd)
RequestByPassToServer( getbuylist) ;
msg.Lines .Add ( 'C>Пакет RequestBypassToServer #$23 (buy)' ) ;
HtmlRcv:=false ;
//exit;
end ;
if BuyListRcv then begin
//после выбора пункта - продажа, приходит этот пакет
//s07=BuyList:d(Money)d(ListID)h(ListSize:Loop.01.0019)h(ItemType1)d(0)d(ItemID:Get.Func01)d(CurrentCount)h(ItemType2)h(0)d(BodyPart)d(0)d(0)d(0)d(Price*TaxRate)d(-2)d(0)d(0)d(0)d(0)d(0)d(0)d(0) #$11: begin
//формируем запрос на покупку
//1F=RequestBuyItem:h(ListID)d(BuyCount)i(ItemID)d(Count)
msg.Lines .Add ( 'C>Пакет RequestBuyItem #$1F' ) ;
//продадим первый из списка
msg.Lines .Add ( 'Item: ID:' +IntToStr ( TradeBuyItem[Trd]) +' Count:' +IntToStr ( NeedBuy) ) ;
RequestBuyItem( ListID,TradeBuyItem[Trd],NeedBuy) ;
ReadyToBuy:=false ;
BuyListRcv:=false ;
//exit;
end ;
end else begin
if TradeCount=TradeBuyItemCount then begin //проверка на выход из массива
trade:=400 ;
msg.Lines .Add ( 'Всё купили!' ) ;
msg.Lines .Add ( 'Переход к обмену...' ) ;
TradeCount:=0 ; //начнем сначала массива
end else begin
if GetItem( TradeBuyItem[TradeCount],3 ,5 ) <strtoint( EditLure.text ) then begin
TargetFisherman; //фишермана в таргет
msg.Lines .Add ( 'Готовы купить:' +inttostr ( TradeBuyItem[TradeCount]) ) ;
ReadyToBuy:=true ; //готовы покупать
Trd:=TradeCount;
NeedBuy:=strtoint ( EditLure.text ) -strtoint ( EditLureVal.Text ) ; //докупаем до нужного количества
msg.Lines .Add ( 'Требуется докупит крючков:' +inttostr ( NeedBuy) ) ;
end else msg.Lines .Add ( 'Не надо покупать, уже есть:' +EditLureVal.Text ) ;
inc ( TradeCount) ;
msg.Lines .Add ( 'TradeCount/TradeBuyItemCount:' +inttostr ( TradeCount) +'/' +inttostr ( TradeBuyItemCount-1 ) ) ;
end ;
end ;
end ;
//-------------------------------------------------
//обмениваем у фишермана на пруфы
//-------------------------------------------------
400 : begin
//мы у фишермана, обмениваем всё на пруфы
if FishermanOID=0 then begin
// Trade1.enabled:=false; //останавливаем торговлю
//RequestRecordInfo и тебе придёт и юзеринфо, и инфа о всех нпц и игроках, которые тут есть
buf:=#$6E;
SendToServerEx( Name) ;
msg.Lines .Add ( 'Не готовы к торговле, нет OID фишермана! Запросили сервер OID фишермана.' ) ;
exit ; //выходим
end ;
if ReadyToMultiSell and ( FishermanOID<>0 ) then begin //exit; //если еще не обменяли предыдущую вещь, то выходим сразу
if HtmlRcv then begin //ReadD(2)=FishermanOID then begin
//шлем запрос выбора пункта - продажа
//c23=RequestBypassToServer:s(Cmd)
RequestByPassToServer( getmultisell) ;
msg.Lines .Add ( 'C>Пакет RequestBypassToServer #$23 (multisell)' ) ;
HtmlRcv:=false ;
//exit;
end ;
if MultiSellListRcv then begin
//шлем запрос на обмен
//cA7=RequestMultiSellChoose:h(ListID)d(EntryID)d(Amount)
msg.Lines .Add ( 'C>Пакет RequestMultiSellChoose #$A7(ListId:' +IntToStr ( ListId) +' EntryId:' +IntToStr ( Trd*2 +1 ) +' Count:' +IntToStr ( GetItem( TradeMultiItem[Trd],3 ,5 ) ) +')' ) ;
RequestMultiSellItem( ListId,( Trd*2 +1 ) ,GetItem( TradeMultiItem[Trd],3 ,5 ) ) ;
ReadyToMultiSell:=false ;
MultiSellListRcv:=false ;
//exit;
end ;
end else begin
if TradeCount=TradeMultiItemCount then begin //проверка на выход из массива
Trade1.enabled :=false ; //останавливаем торговлю
msg.Lines .Add ( 'Всё обменяли!' ) ;
case MestoLovli of
1 : begin cmd:='fishing' ; MestoLovli1; end ;
2 : begin cmd:='fishing' ; MestoLovli2; end ;
3 : begin cmd:='fishing' ; MestoLovli3; end ;
end ;
msg.Lines .Add ( 'Бежим на берег...' ) ;
TradeCount:=0 ;
end else begin
if ( TradeMultiItem[TradeCount]<>FO) and ( TradeMultiItem[TradeCount]<>GFO) then begin
if GetItem( TradeMultiItem[TradeCount],3 ,5 ) >0 then begin
TargetFisherman; //фишермана в таргет
msg.Lines .Add ( 'Готовы обменять:' +inttostr ( TradeMultiItem[TradeCount]) ) ;
ReadyToMultiSell:=true ; //готовы обменивать
Trd:=TradeCount;
end else msg.Lines .Add ( 'Нет такого предмета:' +inttostr ( TradeMultiItem[TradeCount]) ) ;
end ;
inc ( TradeCount) ;
msg.Lines .Add ( 'TradeCount/TradeMultiItemCount:' +inttostr ( TradeCount) +'/' +inttostr ( TradeMultiItemCount-1 ) ) ;
end ;
end ;
end ;
end ;
end ;
//......................................
//******************************************************************************
procedure ItemList;
{Создаем базу Items}
//11=ItemList:h(ShowWindow)h(ListSize:Loop.01.0021)h(ItemType1)d(ObjectID)
// d(ItemID:Get.Func01)d(LocationSlot)d(Count)h(ItemType2)h(CustomType1)
// h(isEquipped)d(BodyPart)h(EnchantLevel)h(CustType2)d(AugmentationID)
// d(Mana)d(AttackAttrElement)d(AttackAttrElementVal)d(DefAttrFire)
// d(DefAttrWater)d(DefAttrWind)d(DefAttrEarth)d(DefAttrHoly)d(DefAttrUnholy)
var
i, j, k: integer ;
ListCount: integer ;
begin
j:=4 ; //смещение для ListCount
ListCount:=ReadH( j) ; //количество итемов не должно превышать max!
for i:=1 to maxitems do
begin
if ( i<=ListCount) then
begin
BaseItems[i,1 ]:=ReadH( j) ; //ItemType1
BaseItems[i,2 ]:=ReadD( j) ; //ObjectID
BaseItems[i,3 ]:=ReadD( j) ; //ItemID
BaseItems[i,4 ]:=ReadD( j) ; //LocationSlot
BaseItems[i,5 ]:=ReadD( j) ; //Count
BaseItems[i,6 ]:=ReadH( j) ; //ItemType2
BaseItems[i,7 ]:=ReadH( j) ; //CustomType1
BaseItems[i,8 ]:=ReadH( j) ; //isEquipped
BaseItems[i,9 ]:=ReadD( j) ; //BodyPart
BaseItems[i,10 ]:=ReadH( j) ; //EnchantLevel
BaseItems[i,11 ]:=ReadH( j) ; //CustType2
BaseItems[i,12 ]:=ReadD( j) ; //AugmentationID
//debugmsg('OID='+inttostr(BaseItems[i,2])+' ID='+inttostr(BaseItems[i,3]));
//собираем ID и OID предметов и оружия
case BaseItems[i,3 ] of //ID
//MyWeaponID : begin
//WeaponOId:=BaseItems[i,2];
//WeaponId:=itemBase[i,3];
//end;
//MyShieldID : begin
//ShieldOId:=BaseItems[i,2];
//ShieldId:=itemBase[i,3];
//end;
MyShotID : begin
//ShotOID:=BaseItems[i,2];
ColvoShot:=BaseItems[i,5 ];
EditFShotVal.Text :=inttostr ( BaseItems[i,5 ]) ;
end ;
//MyRodID : begin
//RodOId:=BaseItems[i,2];
//MyRodEq:=BaseItems[i,8];
//end;
MyLureID : begin
//LureOId:=BaseItems[i,2];
ColvoLure:=BaseItems[i,5 ];
EditLureVal.Text :=inttostr ( BaseItems[i,5 ]) ;
//MyLureEq:=BaseItems[i,8];
end ;
MyHPID : begin
//HPOId:=BaseItems[i,2];
ColvoHP:=BaseItems[i,5 ];
EditHPotionVal.Text :=inttostr ( BaseItems[i,5 ]) ;
end ;
end ;
inc ( j,40 ) ;
end else
for k:=1 to 12 do BaseItems[i,k]:=0 ; // забиваем нулями
end ;
ColvoItm:=ListCount;
if debug then msg.Lines .Add ( '>ColvoItm=' +IntToStr ( Colvoitm) ) ;
//вносим изменения в массив
StringList.Clear ;
try
for i:=1 to ListCount do begin
try
StringList.Add ( ItemsName.Values [IntToStr( BaseItems[i,3 ]) ]) ; //записываем название вещей из инвентаря
except ;
msg.Lines .Add ( 'Пропускаем! Нет ItemID=' +inttostr ( BaseItems[i,3 ]) +' в itemsid.ini' ) ;
end
end ;
except ;
msg.Lines .Add ( 'ошибка в CreateItemBase->StringList.Add()' ) ;
msg.Lines .Add ( inttostr ( BaseItems[i,3 ]) ) ;
exit ;
end ;
if not CheckBoxRod.Checked then begin //наполняем комбобокс
with ComboBoxRod do
begin
Items.Clear ;
Items.Assign ( StringList) ;
ItemIndex:=0 ;
end ;
end ;
if not CheckBoxLure.Checked then begin //наполняем комбобокс
with ComboBoxLure do
begin
Items.Clear ;
Items.Assign ( StringList) ;
ItemIndex:=0 ;
end ;
end ;
if not CheckBoxWeapon.Checked then begin //наполняем комбобокс
with ComboBoxWeapon do
begin
Items.Clear ;
Items.Assign ( StringList) ;
ItemIndex:=0 ;
end ;
end ;
if not CheckBoxShield.Checked then begin //наполняем комбобокс
with ComboBoxShield do
begin
Items.Clear ;
Items.Assign ( StringList) ;
ItemIndex:=0 ;
end ;
end ;
if not CheckBoxFShot.Checked then begin //наполняем комбобокс
with ComboBoxFShot do
begin
Items.Clear ;
Items.Assign ( StringList) ;
ItemIndex:=0 ;
end ;
end ;
if not CheckBoxHPotion.Checked then begin //наполняем комбобокс
with ComboBoxHPotion do
begin
Items.Clear ;
Items.Assign ( StringList) ;
ItemIndex:=0 ;
end ;
end ;
end ;
//......................................
//******************************************************************************
procedure InventoryUpdate; //пакет 21, Создает базу ObjectID по ItemID
var
i, ii, j, k, ListCount, UpdType : integer ;
ItemType1, ObjectID, ItemID, LocationSlot, Count, ItemType2, CustomType1,
isEquipped, BodyPart, EnchantLevel, CustType2, AugmentationID :integer ;
additem : boolean ;
begin
additem:=true ;
ListCount:=ReadH( 2 ) ; //количество итемов
// debugmsg('ListCount='+inttostr(ListCount));
j:=4 ; //смещение для действия с предметом 1-добавлен 2-изменен 3-удален
for i:=1 to ListCount do
begin
UpdType:=ReadH( j) ;
ItemType1:=ReadH( j) ;
ObjectID:=ReadD( j) ;
ItemID:=ReadD( j) ;
LocationSlot:=ReadD( j) ;
Count:=ReadD( j) ;
ItemType2:=ReadH( j) ;
CustomType1:=ReadH( j) ;
isEquipped:=ReadH( j) ;
BodyPart:=ReadD( j) ;
EnchantLevel:=ReadH( j) ;
CustType2:=ReadH( j) ;
AugmentationID:=ReadD( j) ;
case UpdType of
1 : k:=0 ; //добавлен новый предмет
2 : k:=ObjectID; //изменен предмет в инвентаре
3 : begin //удален
for ii:=1 to maxitems do
if ( BaseItems[ii,2 ]=ObjectID) then
begin
//debugmsg('удаляем OID='+inttostr(BaseItems[ii,2])+' ID='+inttostr(BaseItems[ii,3]));
for k:=1 to 12 do BaseItems[ii,k]:=0 ;
break ;
end ;
end ;
end ;
for ii:=1 to maxitems do
begin
if ( BaseItems[ii,2 ]=k) then
begin
BaseItems[ii,1 ]:=ItemType1;
BaseItems[ii,2 ]:=ObjectID;
BaseItems[ii,3 ]:=ItemID;
BaseItems[ii,4 ]:=LocationSlot;
BaseItems[ii,5 ]:=Count;
BaseItems[ii,6 ]:=ItemType2;
BaseItems[ii,7 ]:=CustomType1;
BaseItems[ii,8 ]:=isEquipped;
BaseItems[ii,9 ]:=BodyPart;
BaseItems[ii,10 ]:=EnchantLevel;
BaseItems[ii,11 ]:=CustType2;
BaseItems[ii,12 ]:=AugmentationID;
msg.Lines .Add ( 'доб/изм OID=' +inttostr ( ObjectID) +' ID=' +inttostr ( ItemID) +' Equip=' +inttostr ( isEquipped) ) ;
break ;
end ;
end ;
inc ( j,40 ) ;
case ItemID of
6411 ..6518 ,7726 ..7806 ,8351 ..8359 ,8403 ..8483 : begin
if not CheckBoxPU.Checked then exit ;
delay( 500 ) ; //стоит здесь и меньше нельзя
msg.Lines .Add ( 'Потрошим! ObjectID=' +IntToStr ( ObjectID) +' ItemID=' +IntToStr ( ItemID) +' ColvoItem=' +IntToStr ( colv) ) ;
UseItem( ObjectID) ;//потрошим рыбу
end ;
7807 ..7809 ,6519 ..6527 : begin
if ItemID=MyLureID then begin
//LureOID:=ItemOID;
ColvoLure:=Count;
EditLureVal.Text :=inttostr ( Count) ;
//MyLureEq:=isEquipped;
end ;
end ;
6535 ..6540 : begin
if ItemID=MyShotID then begin
//ShotOID:=ItemOID;
ColvoShot:=Count;
EditFShotVal.Text :=inttostr ( Count) ;
end ;
end ;
1060 ..1061 : begin
if not CheckBoxHPotion.Checked then exit ;
if ItemID=MyHPID then begin
//HPOID:=ItemOID;
ColvoHP:=Count;
EditHPotionVal.Text :=inttostr ( Count) ;
end ;
end ;
end ;
end ;
end ;
//..............................................................................
function GetItem( ID, FieldIn, FieldOut : integer ) : integer ;
{GetInv(по чему будем искать, номер того по чему будем искать, номер того что надо найти)
где:
ID - искомый код;
FieldIn - по какому полю ищем;
FieldOut - какое поле возвращаем;
1=ItemType1; 2=ObjectID;3=ItemID;4=LocationSlot;5=Count;6=ItemType2;7=CustomType1;
8=isEquipped;9=BodyPart;10=EnchantLevel;11=CustType2;12=AugmentationID;
ex1: GetInv(6408,2,1) - вернет ObjectID свадебного платья, если онное лежит в
инвентаре, иначе вернет -1
ex2: GetInv(6408,2,8) - вернет уровень заточки первого попавшегося в инвентаре
свадебного платья, если свадебного платья нет, то вернет -1
}
var
i: integer ;
begin
for i:=1 to maxitems do
if ( BaseItems[i,FieldIn]=ID) then begin
Result:=BaseItems[i,FieldOut];
debugmsg( 'Нашли=' +inttostr ( result) ) ;
exit ;
end ;
Result:=-1 ;
end ;
//......................................
//******************************************************************************
function SumItem( Item: integer ) :integer ;
var
sum , i : integer ;
begin
result:=0 ;
//находим подходящий предмет по ItemID
for i:=1 to maxitems do begin
if ( BaseItems[i,3 ]=item) then begin
msg.Lines .Add ( 'Нашли предмет ItemOID=' +inttostr ( BaseItems[i,2 ]) +' ItemID=' +inttostr ( BaseItems[i,3 ]) +' ItemCol=' +inttostr ( BaseItems[i,5 ]) +' Equip=' +inttostr ( BaseItems[i,8 ]) ) ;
msg.Lines .Add ( 'i=' +inttostr ( i) ) ;
result:=result+BaseItems[i,5 ];
end ;
end ;
end ;
//......................................
//***************************************************************
procedure AppendNpc( OID, ID : integer ) ;
//добавляем в базу данных мобов с коррекцией расстояния до них
var
i: integer ;
ispovtor:boolean ;
begin
isPovtor:=false ;
for i:=1 to maxnpc do begin
//если нашли в базе, то коректируем его координаты на новые
if ( NpcBase[1 ,i]=OID) and ( MyOID<>OID) then begin
NpcBase[2 ,i]:=ID-kID; //ID
isPovtor:=true ;
//msg.Lines.Add('Корректируем координаты Npc '+IntToStr(i)+' OID:'+IntToStr(NpcBase[1,i])+' ID:'+IntToStr(NpcBase[2,i]));
//msg.Lines.Add('KolvoNpc='+inttostr(kolvonpc));
end ;
end ;
if not isPovtor then
begin //иначе, перебираем базу, ищем свободную ячейку в ней и добавляем нового
for i:=1 to maxnpc do begin
if ( NpcBase[1 ,i]=0 ) and ( MyOID<>OID) then begin
//запоминаем моба в свободную ячейку
NpcBase[1 ,i]:=OID; //OID
NpcBase[2 ,i]:=ID-kID; //ID
inc ( kolvonpc) ;
//добавляем имя Npc
//msg.Lines.Add('Вносим координаты Npc '+IntToStr(i)+' OID:'+IntToStr(NpcBase[1,i])+' ID:'+IntToStr(NpcBase[2,i]));
break ;
end ;
end ;
end ;
end ;
//......................................
//***************************************************************
procedure DeleteNpc( OID : integer ) ; //удаляем Npc
var
i : integer ;
begin
for i:=1 to maxnpc do begin
//если нашли в базе, то удаляем его
if ( NpcBase[1 ,i]=OID) then begin
//msg.Lines.Add('Удаляем '+inttostr(NpcBase[1,i])+' '+inttostr(NpcBase[2,i]));
NpcBase[1 ,i]:=0 ; //OID
NpcBase[2 ,i]:=0 ; //ID
dec ( kolvonpc) ;
//msg.Lines.Add('Удаляем Npc'+' KolvoNpc='+inttostr(kolvonpc));
break ;
end ;
end ;
end ;
//......................................
//******************************************************************************
// вызывается при приходе каждого пакета, если скрипт включен
//******************************************************************************
begin
//**************************************************************************
//не обрабатываем пустые пакеты
if pck='' then exit ;
//**************************************************************************
//проверка на готовность скрипта
if ( MyOID<>0 ) and ( LureOID<>0 ) and ( RodOID<>0 ) and not status then begin
msg.Lines .Add ( 'Скрипт инициализирован!' ) ;
status:=true ;
end ;
//****************************************************************************
//серверные пакеты с ID - от хроник Интерлюдия
if ( ConnectName=Name) and FromServer then begin
case pck[1 ] of
//************************************************************************
//01=MoveBackwardToLocation:d(ToX)d(ToY)d(ToZ)d(OrigX)d(OrigY)d(OrigZ)d(MoveMovement)
#$01 : begin // MoveBackwardToLocation
//msg.Lines.Add('S>Пакет MoveBackwardToLocation #$01');
if ReadD( 2 ) = MyOID then
begin
MyX := ReadD( 18 ) ;
MyY := ReadD( 22 ) ;
MyZ := ReadD( 26 ) ;
end ;
end ;
//************************************************************************
#$04 : begin //пакет с инфой о моём чаре
//msg.Lines.Add('S>Пакет UserInfo #$04');
UserInfo;
end ;
//************************************************************************
//s05=Attack:d(AttackerID)d(TargetID)d(Damage)c(Flags)d(X)d(Y)d(Z)h(HitsSize:Loop.01.0003)d(TargetID)d(Damage)c(Flags)
#$05 : begin
msg.Lines .Add ( 'S>Пакет Attack #$05' ) ;
if ( MyOID=ReadD( 6 ) ) and ( MyOID<>ReadD( 2 ) ) then begin
fishin.enabled :=false ;
isFishing:=false ; //сейчас не ловим
if MoveToPathEnabled then MoveTimer.Enabled :=false ; //если бежали, то остановимся
if not underattack then begin
//сохраним OID напавшего
AttackerOID:=ReadD( 2 ) ;
msg.Lines .Add ( 'На нас напали! ObjectID=' +IntToStr ( AttackerOID) ) ;
//берем в руки оружие
if WeaponUse1 and not isEquip( WeaponOID) then giveweapon;
delay( 650 ) ;
//берем в руки щит
if ShieldUse1 and not isEquip( ShieldOID) then giveshield;
delay( 650 ) ;
//ставим таргет на врага
TargetAttacker( AttackerOID) ;
inc ( mob1) ;
underattack:=true ;
//выбираем воин или маг
if Hurricane=0
then TargetAttacker( AttackerOID) //атакуем оружием
else OnTimerA.Enabled :=True ; //включаем магическую атаку
end ;
//берем в руки оружие
//if WeaponUse1 and not isEquip(WeaponOID) then giveweapon;
//delay(650);
//берем в руки щит
//if ShieldUse1 and not isEquip(ShieldOID) then giveshield;
//delay(650);
end ;
end ;
//************************************************************************
//пакет Die (моб умер)
//06=Die:d(CharID)d(1)d(HasHideout)d(HasCastle)d(Flags)d(Sweepable)d(Access)
#$06 : begin
msg.Lines .Add ( 'S>Пакет Die #$06 ObjectID=' +IntToStr ( ReadD( 2 ) ) ) ;
if ( AttackerOID=ReadD( 2 ) ) then begin
pbTargetHP.min :=0 ;
msg.Lines .Add ( 'Убили моба ObjectID=' +IntToStr ( AttackerOID) +' в ' +TimeToStr ( time ) ) ;
OnTimerA.Enabled :=false ; //выключаем магическую атаку
if MoveToPathEnabled then MoveTimer.Enabled :=True ; //если бежали, то продолжим путь
underattack:=false ;
//репозиция
fishin.enabled :=false ;
isFishing:=false ; //сейчас не ловим
case MestoLovli of
1 : begin cmd:='fishing' ; Reposition1; end ;
2 : begin cmd:='fishing' ; Reposition2; end ;
3 : begin cmd:='fishing' ; Reposition3; end ;
end ;
msg.Lines .Add ( 'Репозиция на месте рыбалки после боя с мобом...' ) ;
end ;
if ( MyOID=ReadD( 2 ) ) then begin
msg.Lines .Add ( 'Нас убили в ' +TimeToStr ( time ) ) ;
underattack:=false ;
inc ( death1) ;
OnTimerA.Enabled :=false ; //выключаем магическую атаку
fishin.enabled :=false ;
isFishing:=false ; //сейчас не ловим
RequestRestartPoint; //оживаем после смерти в городе
end ;
end ;
//************************************************************************
#$07 : begin //пакет Revive
//07=Revive:d(ObjectID)
msg.Lines .Add ( 'S>Пакет Revive #$07' ) ;
if ( MyOID=ReadD( 2 ) ) then begin
cmd:='death' ; AfterDeath;
end ;
end ;
//************************************************************************
//0C=DropItem:d(PlayerID)d(ObjectID)d(ItemID:Get.Func01)d(X)d(Y)d(Z)d(Stackable)d(Count)d(1)
#$0C: begin
msg.Lines .Add ( 'S>Пакет DropItem #$0C' ) ;
if ( AttackerOID=ReadD( 2 ) ) then begin //дроп только с наших мобов
if ( delta( MyX, MyY, ReadD( 14 ) , ReadD( 18 ) ) <=200 ) then begin
//по ItemID здесь можно отсеивать ненужные предметы
//if ReadD(10)=57 then exit; //не поднимать адену
//msg.Lines.Add('Выпала вещь!!!');
fishin.enabled :=false ;
isFishing:=false ; //сейчас не ловим
Target( ReadD( 6 ) ) ;
msg.Lines .Add ( ' Пробую поднять дроп!!!' ) ;
delay( 1000 ) ;
fishin.enabled :=true ;
end ;
end ;
end ;
//************************************************************************
#$0E: begin
//msg.Lines.Add('S>Пакет StatusUpdate #$0E');
//0E=StatusUpdate:d(ObjectID)d(ListSize:Loop.01.0002)d(AttrID:Get.FSup)d(Value)
if ( MyOID=ReadD( 2 ) ) then StatusUpdate; //обновление информации о хп
if ( AttackerOID=ReadD( 2 ) ) then TargetStatusUpdate; //обновление информации о хп
end ;
//************************************************************************
//19 (NpcHtmlMessage)
#$0F: begin //abyss
//#$19: begin
//debugmsg('S>C Пакет NpcHtmlMessage #$19');
if ReadD( 2 ) =FishermanOID then begin
HtmlRcv:=true ; // сигналим, что был нужный HTML
end ;
end ;
//************************************************************************
#$10 : begin //abyss
msg.Lines .Add ( 'S>Пакет SellList #$10' ) ;
ListID:=ReadD( 6 ) ; //запоминаем, он все время разный
msg.Lines .Add ( 'ListID=' +inttostr ( ListID) ) ;
SellListRcv:=true ; // сигналим, что был нужный пакет
end ;
//************************************************************************
#$11 : begin //abyss
msg.Lines .Add ( 'S>Пакет BuyList #$11' ) ;
ListID:=ReadD( 6 ) ; //запоминаем, он все время разный
msg.Lines .Add ( 'ListID=' +inttostr ( ListID) ) ;
BuyListRcv:=true ; // сигналим, что был нужный пакет
end ;
//************************************************************************
#$D0: begin //abyss
msg.Lines .Add ( 'S>Пакет MultiSellList #$D0' ) ;
ListID:=ReadD( 2 ) ; //запоминаем, он все время разный
msg.Lines .Add ( 'ListID=' +inttostr ( ListID) ) ;
MultiSellListRcv:=true ; // сигналим, что был нужный пакет
end ;
//************************************************************************
//12=DeleteObject:d(ObjectID)d(0)
#$12 : begin
msg.Lines .Add ( 'S>C $12 DeleteObject ' +inttostr ( ReadD( 2 ) ) ) ;
DeleteNpc( ReadD( 2 ) ) ;
if ( AttackerOID=ReadD( 2 ) ) then begin
pbTargetHP.min :=0 ;
msg.Lines .Add ( 'Исчез напавший на нас ObjectID=' +IntToStr ( AttackerOID) +' в ' +TimeToStr ( time ) ) ;
if MoveToPathEnabled then MoveTimer.Enabled :=True ; //если бежали, то продолжим путь
underattack:=false ;
OnTimerA.Enabled :=false ; //выключае магическую атаку
//репозиция
fishin.enabled :=false ;
isFishing:=false ; //сейчас не ловим
case MestoLovli of
1 : begin cmd:='fishing' ; Reposition1; end ;
2 : begin cmd:='fishing' ; Reposition2; end ;
3 : begin cmd:='fishing' ; Reposition3; end ;
end ;
msg.Lines .Add ( 'Репозиция на месте рыбалки после боя с мобом...' ) ;
end ;
end ;
//************************************************************************
//16=NpcInfo:d(ObjectID)d(NpcTypeId:Get.NpcId)d(IsAttackable)d(X)d(Y)d(Z)
#$16 : begin
msg.Lines .Add ( 'S>Пакет NpcInfo #$16' +inttostr ( ReadD( 2 ) ) ) ;
// OID ID
AppendNpc( ReadD( 2 ) , ReadD( 6 ) ) ; //добавляем в базу данных
if ( FishermanID=ReadD( 6 ) -kID) then begin
EditFishermanOID.text :=inttostr ( ReadD( 2 ) ) ;
FishermanOID:=strtoint ( EditFishermanOID.text ) ;
end ;
end ;
//************************************************************************
//1B=ItemList:h(ShowWindow)h(ListSize:Loop.01.0021)h(ItemType1)d(ObjectID)d(ItemID:Get.Func01)d(LocationSlot)d(Count)h(ItemType2)h(CustomType1)h(isEquipped)d(BodyPart)h(EnchantLevel)h(CustType2)d(AugmentationID)d(Mana)d(AttackAttrElement)d(AttackAttrElementVal)d(DefAttrFire)d(DefAttrWater)d(DefAttrWind)d(DefAttrEarth)d(DefAttrHoly)d(DefAttrUnholy)
#$1B: begin
msg.Lines .Add ( 'S>Пакет ItemListPacket #$1B' ) ;
ItemList; //создание базы предметов
end ;
//************************************************************************
//27=InventoryUpdate:h(ListSize:Loop.01.0021)h(Change)h(ItemType1)d(ObjectID)d(ItemID:Get.Func01)d(Location)d(Count)h(ItemType2)h(CustomType1)h(isEquipped)d(BodyPart)h(EnchantLevel)h(CustType2)d(AugmentationBonus)d(Mana)d(AttackAttrElement)d(AttackAttrElementVal)d(DefAttrFire)d(DefAttrWater)d(DefAttrWind)d(DefAttrEarth)d(DefAttrHoly)d(DefAttrUnholy)
#$27 : begin // 41(42) для IL, 32(34) для С4
msg.Lines .Add ( 'S>Пакет InventoryUpdate #$27' ) ;
InventoryUpdate; //Обновление базы
end ;
//************************************************************************
#$64 : begin
//64=SystemMessage:d(MsgID:Get.MsgID)d(typesCount)
//msg.Lines.Add('S>Пакет Messages #$64');
//сорвалась или вышло время
if ( ( pck[2 ]+pck[3 ]=#$AC#$05 ) ) or ( ( pck[2 ]+pck[3 ]=#$AA#$05 ) ) then begin
inc ( fish2) ;
exit ;
end ;
//что-то поймали
if ( pck[2 ]+pck[3 ]=#$AD#$05 ) then //проверка, что мы начали ловить без удочки
begin
fishin.enabled :=true ;
isFishing:=false ;
giverod;
givelure;
end ;
if ( pck[2 ]+pck[3 ]=#$36 #$00 ) then inc ( fish1) ; //поймали рыбу
if ( pck[2 ]+pck[3 ]=#$85 #$06 ) then inc ( failed1) ; //ничего не нашли в рыбе
if ( pck[2 ]+pck[3 ]=#$35 #$00 ) then inc ( lucky1) ; //lucky1:=fish1-failed1; //удачно вскрыли
if ( pck[2 ]+pck[3 ]=#$B1#$05 ) then begin //You can't fish here
//репозиция
if isEquip( RodOID) and isFishing then MagicSkillUse( fish) ;
fishin.enabled :=false ;
isFishing:=false ; //сейчас не ловим
CanFishHere:=false ; //можно тут ловить?
msg.Lines .Add ( 'Здесь нельзя ловить...' ) ;
case MestoLovli of
1 : begin cmd:='fishing' ; Reposition1; end ;
2 : begin cmd:='fishing' ; Reposition2; end ;
3 : begin cmd:='fishing' ; Reposition3; end ;
end ;
exit ;
end ;
end ;
//************************************************************************
#$D3: begin // D3=NetPing:d(kID) на Нетпинг сервера шлем сохранённый пакет Нетпинга от клиента
//msg.Lines.Add('S>Пакет NetPing #$D3');
if LogOutOk then begin
buf:=NetPing;
SendToServerEx( Name) ;
//msg.Lines.Add('C>Пакет NetPing #$A8');
end ;
end ;
//************************************************************************
//ловим рыбу
//FE1300=ExFishingStart:h(charOID)d(fishType)d(X)d(Y)d(Z)b(isNightLure)b(c)
//-----FE1E00=ExFishingStart:h(subID)d(ObjectID)d(FishType)d(X)d(Y)d(Z)c(0)c(0)c(isNightLure)c(0)
//FE1400=ExFishingEnd:h(charObjtId)b(isWin)
//-----FE1F00=ExFishingEnd:h(subID)d(CharID)c(isWin)
//FE1500=ExFishingStartCombat:h(charOID)d(time)d(HP)b(Fighting)b(LureType)b(isFishDeceptive)
//FE16=ExFishingHpRegen:h(subID)d(charObjID)d(time)d(fish_HP)c(HPstop/rise)c(GoodUse)c(anim)d(penalty)c(BarColor)
//-----FE2800=ExFishingHPRegen:h(subID)d(ObjectID)d(Time)d(FishHP)c(HPstop/Rise)c(GoodUse)c(Anim)d(Penalty)c(BarColor)
#$FE: begin
if Status and ( MyOID<>0 ) then begin
case pck[2 ] of
//FE1400=ExFishingEnd:h(charObjtId)b(isWin)
#$14 : begin
//msg.Lines.Add('S>Пакет ExFishingEnd #$FE1400');
if MyOID=ReadD( 4 ) then begin
gooduse:=0 ;
isFishing:=false ; //сейчас не ловим
inc ( MMesto) ;
if ReadC( 8 ) =1 then begin
msg.Lines .Add ( 'Поймали!' ) ;
end else begin
if stop then exit ; //нажали кнопку стоп!
msg.Lines .Add ( 'Сорвалась!' ) ;
end ;
//не пора ли поменять место ловли?
if ( MMesto>=PMMesto) then begin
MMesto:=0 ; //сбрасываем готовность смены места
inc ( MestoLovli) ;
if ( MestoLovli>3 ) then MestoLovli:=1 ;
fishin.enabled :=false ;
case MestoLovli of
1 : begin cmd:='fishing' ; MenayemMesto1; end ;
2 : begin cmd:='fishing' ; MenayemMesto2; end ;
3 : begin cmd:='fishing' ; MenayemMesto3; end ;
end ;
msg.Lines .Add ( 'Бежим на новое место...' ) ;
exit ;
end ;
fishin.enabled :=true ;
end ;
end ;
//FE1600=ExFishingHPRegen:h(subID)d(ObjectID)d(Time)d(FishHP)c(HPstop/Rise)c(GoodUse)c(Anim)d(Penalty)c(BarColor)
#$16 : begin
//msg.Lines.Add('S>Пакет ExFishingHpRegen #$FE1600');
if MyOID=ReadD( 4 ) then begin
if ( pck[16 ]+pck[17 ]=#$00 #$00 ) then begin
inc ( gooduse) ;
if gooduse>=1 then pumping;
exit ;
end ;
if ( pck[16 ]+pck[17 ]=#$01 #$00 ) then begin
inc ( gooduse) ;
if gooduse>=1 then reeling;
exit ;
end ;
if ( pck[17 ]=#$01 ) then gooduse:=0 ;
end ;
end ;
end ;
end ;
end ;
end ;
end ;
//****************************************************************************
//клиентские пакеты с ID - от хроник Грация
if ( ConnectName=Name) and FromClient then begin
case pck[1 ] of
//************************************************************************
#$09 : begin //C>09=LogoutRequest - выходим ручками из клиента
//msg.Lines.Add('S>Пакет LogoutRequest #$09');
// вроде не надо тут их ставить?
// NoFreeOnClientDisconnect;
// NoFreeOnServerDisconnect;
pck:='' ;
// шлем s7E=LogOutOk, для отключения клиента
//msg.Lines.Add('S>Пакет LogOutOk #$7E');
buf:=#$7E;
SendToClientEx( Name) ;
LogOutOk:=true ;
end ;
//************************************************************************
//0F=MoveBackwardToLocation:d(ToX)d(ToY)d(ToZ)d(OrigX)d(OrigY)d(OrigZ)d(MoveMovement)
#$0F: ParseMoveClient; //move
//************************************************************************
//34=RequestSocialAction:d(Action:Get.Func09)
#$34 : begin
//msg.Lines.Add('C>Пакет RequestSicialAction #$1B');
case ReadD( 2 ) of
//социальное действие Yes для начала ловли
6 : begin
//msg.Lines.Add('Отключили клиент из скрипта...');
//для версии 3.1.9+ можно попробовать отключить клиента
//Варнинг! Опасно для жизни! =)
LogOutOk:=true ;
buf:=#$7E;
SendToClientEx( Name) ; // отключаем клиент
//msg.Lines.Add('S>Пакет LogOutOk #$7E');
//не передаем серверу социальное действие
pck:='' ;
end ;
end ;
end ;
//************************************************************************
//49=Say2:s(Text)d(Type)s(Target)
#$49 : //say2
//если это команда и она обработана и надо очистить чат
if ParseCmd( ReadS( 2 ) ) and EraseCommandFromChat then pck:='' ;//kill packet
//ValidatePosition пакет от клиента с моими кординатами
//59=ValidatePosition:d(X)d(Y)d(Z)d(Heading)d(Data)
//************************************************************************
#$59 : begin
//msg.Lines.Add('C>Пакет ValidatePosition #$48');
MyX:=ReadD( 2 ) ; //получаю координату х моего чара
MyY:=ReadD( 6 ) ; //получаю координату у моего чара
MyZ:=ReadD( 10 ) ; //получаю координату z моего чара
end ;
//************************************************************************
#$A8: begin // C>A8=NetPing:d(kID)d(PING)d(dta)
//msg.Lines.Add('C>Пакет NetPing #$A8');
NetPing:=pck; // запомним его
pck:='' ;
end ;
end ; //case
end ;
end .
Последний раз редактировалось NLObP, 06.05.2009 в 03:42 .
Причина: исправления в скрипте
За это сообщение NLObP нажился 4 спасибками от:
18.04.2009, 15:53
#46
Новичок
Регистрация: 17.04.2009
Сообщений: 17
Сказал Спасибо: 2
Имеет 2 спасибок в 2 сообщенях
Цитата:
Сообщение от
pickwick
что бы не создовать лишней темы решил спросить тут поскольку касается абисса:
дело в том что на абиссе при трейде с кем то во время этого нельзя удалять или перемещать вещи страйдеру к примеру, есть ли способ обойти это?
может мне хотя бы кто нить обяснить от чего это зависит, от сервера или клиента?
19.04.2009, 21:09
#47
Новичок
Регистрация: 19.04.2009
Сообщений: 4
Сказал Спасибо: 2
Имеет 0 спасибок в 0 сообщенях
а какие настройки ставить в хаке? а то он у меня почему то не видит удочку, приманку и тд...
Последний раз редактировалось Romka, 19.04.2009 в 22:21 .
19.04.2009, 21:52
#48
Новичок
Регистрация: 19.04.2009
Адрес: Украина
Сообщений: 3
Сказал Спасибо: 3
Имеет 0 спасибок в 0 сообщенях
Камелот ну кто здает манор? Я) И здают его не ботом а простой отправкой пакета.
19.04.2009, 23:14
#49
Новичок
Регистрация: 19.04.2009
Сообщений: 4
Сказал Спасибо: 2
Имеет 0 спасибок в 0 сообщенях
ну наконец-то рыбачит
теперь осталась одна проблема - не видит Monakana (( какой у него ID? или что сделать?
Добавлено через 51 минуту
Еще проблема
после того как убьет моба не берет удочку обратно в руки...ХЭЛП
Последний раз редактировалось Romka, 19.04.2009 в 23:14 .
Причина: Добавлено сообщение
21.04.2009, 23:55
#50
Пользователь
Регистрация: 07.01.2008
Сообщений: 39
Сказал Спасибо: 11
Имеет 3 спасибок в 3 сообщенях
Цитата:
Сообщение от
xkor
эх, сделать чтоль к абису платный патчик для валкера пока на шоках админы думают как привести в порядок то что они создали...
Уже передумал?)
__________________
Блекджек же без шлюх практически безопасен.
Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
Часовой пояс GMT +4, время: 03:00 .
vBulletin style designed by
MSC Team .
Powered by vBulletin® Version 3.6.11
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод:
zCarot
Вы хотите чувствовать себя в безопасности? чоп Белган обеспечит её!