Перейти к содержимому

Фотография
* * * * * 1 Голосов

как настроить покупку ?


Лучший Ответ tvinpff, 02 Июль 2019 - 17:14

Настроил ! А можно писать для какого сервера делал ? Вдруг кому пригодится ?! Перейти к сообщению


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 3

#1
tvinpff

tvinpff
  • 42
    0
    Чертик
    • Lvl 23
    • Пользователь
в общем скрипте  рботет только после рестарта севера или после нажатия стоп-плай , как сделать что бы покупать при отсутсвии итемв ?
procedure rune;
function CheckItemCount (const itemID: Integer; const quest: Boolean = False) : Integer;
var
Npc: TL2Npc;
Item: TL2Item;
tempItem: TL2Item;
begin
   if quest then Inventory.Quest.ByID(itemID, tempItem)
   else Inventory.User.ByID(itemID, tempItem);
   Result := tempItem.Count;
end;

begin 
if CheckItemCount(30919) < 1 then begin
buyrune;
end;
end;

procedure buyrune;
   begin
   Engine.BypassToServer('_bbshome');
   delay(500);
   Engine.BypassToServer('_bbstop;merchant/main.html');
   delay(500);
   Engine.BypassToServer('_bbsmultisell;10008,merchant/main');
   delay(500);
   Engine.NpcExchange(30919,1);
   delay(500);
end;

Если нужен полный полный скрипт прошу в личку после 22:00 МСК отвечу


Сообщение отредактировал tvinpff: 27 Июнь 2019 - 00:18

  • 0

#2
anks

anks
  • 49
    14
    Не выбрано
    • Lvl 25
    • Пользователь

Чек итема для покупки вынеси в отдельную процедуру и зацикли


  • 1

#3
MEIDAN

MEIDAN
  • 46
    7
    Чертик
    • Lvl 24
    • Пользователь
    Город
    Грехов
uses  SysUtils, Classes, RegExpr; 
var   Item:    TL2Item;                
      obj:     TL2Npc;    
      Npc:     TL2Npc;

function Bypass(dlg: string): boolean; 
var
RegExp: TRegExpr;
SL: TStringList;
i: integer;
bps: string;

begin
Result:= true; 
RegExp:= TRegExpr.Create; 
SL:= TStringList.Create;
RegExp.Expression:= '(<a *(.+?)</a>)|(<button *(.+?)>)'; 

if RegExp.Exec(Engine.DlgText) then 
repeat SL.Add(RegExp.Match[0]);
until (not RegExp.ExecNext); 
for i:= 0 to SL.Count-1 do begin 

if (Pos(dlg, SL[i]) > 0) then begin 
RegExp.Expression:= '"bypass -h *(.+?)"'; 

if RegExp.Exec(SL[i]) then 
bps:= TrimLeft(Copy(RegExp.Match[0], 12, Length(RegExp.Match[0])-12));
end;
end;

Print(bps); 
if (Length(bps) > 0) then Engine.BypassToServer(bps); 
RegExp.Free; 
SL.Free;
end;

function CheckItemCount (const itemID: Integer; const quest: Boolean = False) : Integer;
var tempItem: TL2Item;
 
begin
if quest then Inventory.Quest.ByID(itemID, tempItem)
else Inventory.User.ByID(itemID, tempItem);
Result := tempItem.Count;
end;

	
function NpcExchange(ID, Count: Cardinal; ByIndex: Boolean = False): boolean;

begin
result:= false;
end;

function NpcTrade(Sell: Boolean; Items: array of Cardinal): Boolean;

begin
result:= false;
end;

procedure CheckMP; //Проверка количества МП банок и их покупка
begin
if CheckItemCount(728) < 250 then
if User.InRange(7999, -22854, -3702, 500, 300) then
begin
Print('Мало МП, надо закупить');
delay(222);
Engine.Settarget(50020); //Таргет GmShop
delay(222);
Engine.MoveToTarget(-70);
delay(222);
Engine.Dlgopen;
delay(1000);
Bypass('Other');
delay(1000);
Engine.NpcExchange(728, 1200);
delay(555);
end;
end;

begin
CheckMP;
end.

  • 0

#4
tvinpff

tvinpff
  • 42
    0
    Чертик
    • Lvl 23
    • Пользователь

Настроил ! А можно писать для какого сервера делал ? Вдруг кому пригодится ?!


  • 0


Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных

Rawr.pro - Сделано с для игроков.