Регистрация Главная Сообщество
Сообщения за день Справка Регистрация

Нужна помощь.

-

Общение и обсуждение, архив Lineage 2

- Cобытия, информация, вопросы и ответы по Lineage 2

Ответ
 
Опции темы
Старый 26.07.2012, 18:25   #1
 Разведчик
Аватар для spraypwnz
 
spraypwnz никому не известный тип
Регистрация: 26.07.2012
Сообщений: 0
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Нужна помощь.

Лагает при покупке точек и предметов, а при точке все нормально.
Помогите хочу что бы не залагивало при покупке.
Цитата:
program Enchant;

Const
CharName = 'ghhj' ;
ScrollID = 959 ;
ItemID = 6591 ;
EnchantTarget = 17 ;
MaxScrolls = 35;
MaxItems = 20 ;
TimerInterval = 270;

Var
ItemBase : Array[1..100,1..4] of integer ; // ItemID, ObjId, void, void
ItemCount : integer ;
ItemToEnchant, Scroll : Integer ;
Timer : TTimer ;
Enabled : boolean ;

procedure BuyItem ;
Var
i : integer ;
begin
buf := hstr('21 6D 00 65 00 6E 00 75 00 5F 00 73 00 65 00 6C 00 65 00 63 00 74 00 3F 00 61 00 73 00 6B 00 3D 00 2D 00 33 00 30 00 33 00 26 00 72 00 65 00 70 00 6C 00 79 00 3D 00 35 00 35 00 38 00 00 00') ;
SendToServerEx(CharName) ;
delay(500) ;

for i := 1 to MaxItems do
Begin
buf := hstr('A7 2E 02 00 00 27 00 00 00 01 00 00 00') ;
SendToServerEx(CharName) ;
delay(500) ;
End ;
end ;

procedure BuyScroll ;
Var
i : integer ;
begin
buf := hstr('21 6D 00 65 00 6E 00 75 00 5F 00 73 00 65 00 6C 00 65 00 63 00 74 00 3F 00 61 00 73 00 6B 00 3D 00 2D 00 33 00 30 00 33 00 26 00 72 00 65 00 70 00 6C 00 79 00 3D 00 35 00 39 00 30 00 00 00') ;
SendToServerEx(CharName) ;
delay(500) ;

For i := 1 to MaxScrolls do
Begin
buf := hstr('A7 4E 02 00 00 11 00 00 00 01 00 00 00') ;
sendtoserverEx(CharName) ;
delay(500) ;
End ;

end ;

Procedure GetItemBase ;
Var
i : integer ;
ReadIndex : integer ;
Begin
Timer.Enabled := False ;
For i := 1 to 8 do
Begin
ItemBase[i,1] := 0 ;
ItemBase[i,2] := 0 ;
ItemBase[i,3] := 0 ;
ItemBase[i,4] := 0 ;
End ;

ReadIndex := 4 ;
ItemCount := ReadH(ReadIndex) ;
For i := 1 to ItemCount do
Begin
ReadH(ReadIndex) ;
ItemBase[i,2] := ReadD(ReadIndex) ; //objID
ItemBase[i,1] := ReadD(ReadIndex) ; //ItemID
ReadD(ReadIndex) ;
ReadH(ReadIndex) ;
ReadH(ReadIndex) ;
ReadH(ReadIndex) ;
ReadD(ReadIndex) ;
ItemBase[i,3] := ReadH(ReadIndex) ; //EnchLvl
ReadH(ReadIndex) ;
End ;
Timer.Enabled := true ;
End ;

Procedure FindItemToEnchant ;
Var
I : Integer ;
Begin
ItemToEnchant := 0 ;
For i := 1 to 80 do
Begin
If (ItemBase[i,1] = ItemID) and (ItemBase[i,3] < EnchantTarget) then
Begin
ItemToEnchant := ItemBase[i,2] ;
Exit ;
End ;
End ;
End ;

Procedure FindScroll ;
Var
I : Integer ;
Begin
Scroll := 0 ;
For i := 1 to 80 do
Begin
If (ItemBase[i,1] = ScrollID) then
Begin
Scroll := ItemBase[i,2] ;
Exit ;
End ;
End ;
End ;

Procedure EnchantItem ;
Begin
buf := hstr('14') ;
WriteD(Scroll) ;
WriteD(0) ;
SendToServerEx(CharName) ;
delay(600) ;
buf := hstr('58') ;
WriteD(ItemToEnchant) ;
SendToServerEx(CharName)
End ;

Procedure OnTimer(Sender : TObject) ;
Var
i : Integer ;
Begin
Timer.Enabled := False ;
FindItemToEnchant ;
FindScroll ;
If (ItemToEnchant <> 0) and (Scroll <> 0) then
EnchantItem
Else
Begin
If Scroll = 0 then BuyScroll ;
If ItemToEnchant = 0 then BuyItem ;
buf:=hstr('0F');
SendToServerEx(CharName);
End ;
Timer.Enabled := True ;
End ;

Procedure Init ;
Var
i : Integer ;
Begin
Timer := TTimer.Create(nil) ;
Timer.Interval := TimerInterval ;
Timer.Enabled := False ;
Timer.Ontimer := @OnTimer ;

buf:=hstr('0F');
SendToServerEx(CharName);
End ;
Procedure Free ;
Begin
Timer.Free ;
End ;
{Begin
if FromServer then
Begin
if pck[1] = #$1B then
Begin
GetItemBase ;
Timer.Enabled := True ;
End ;
End ;
End. }

Procedure UpdateItemBase ;
Var
ReadIndex : Integer ;
Count : Integer ;
i, j : Integer ;
CItem : Integer ;
UpdType : integer ;
ObjID, IID, IC, EnchLvl : integer ;
Begin
ReadIndex := 2 ;
Count:=ReadH(ReadIndex) ;
For i := 1 to Count do
Begin
UpdType := ReadH(ReadIndex) ;
ReadH(ReadIndex) ;
ObjID := ReadD(ReadIndex) ;
IID := ReadD(ReadIndex) ;
ReadD(ReadIndex) ;
ReadH(ReadIndex) ;
ReadH(ReadIndex) ;
ReadH(ReadIndex) ;
ReadD(ReadIndex) ;
EnchLvl := ReadH(ReadIndex) ;
ReadH(ReadIndex) ;
Case UpdType of
1 : Begin
For j := 1 to 80 do
If ItemBase[j,1] = 0 then
Begin
ItemBase[j,1] := IID ;
ItemBase[j,2] := ObjID ;
ItemBase[j,3] := EnchLvl ;
j := 80 ;
End ;
End ;
2 : Begin
For j := 1 to 80 do
Begin
If ItemBase[j,2] = ObjID then
Begin
ItemBase[j,3] := EnchLvl ;
j := 80 ;
End ;

End ;
End ;
3 : Begin
For j := 1 to 80 do
Begin
if ItemBase[j,2] = ObjID then
Begin
ItemBase[j,1] := 0 ;
ItemBase[j,2] := 0 ;
ItemBase[j,3] := 0 ;
ItemBase[j,4] := 0 ;
j := 80 ;
End ;
End ;
End ;
End ;
End ;
End ;

Begin
If FromServer then
Begin
If pck[1] = #$27 then UpdateItemBase ;
If pck[1] = #$1B then GetItemBase ;
End ;

End .

  Ответить с цитированием
Ответ


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

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

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужна помощь по приложению Город(помощь оплачу) legorii Баги игр ВКонтакте 1 10.03.2010 17:37
[Помогите!] Нужна помощь! Нужна аватарка! Flapes Треп 40 28.12.2009 20:07

Заявление об ответственности / Список мошенников

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

Пишите нам: [email protected]
Copyright © 2024 vBulletin Solutions, Inc.
Translate: zCarot. Webdesign by DevArt (Fox)
G-gaMe! Team production | Since 2008
Hosted by GShost.net