- Рег
- 19 Апр 2016
- Сообщения
- 25
- Реакции
- 0
Пишу простенький скрипт на использование одного айтема из инвентаря до тех пор, пока его не останется 1 штучка.
Возникла проблема, почему то в цикле каунт этого айтема корректно отображается только через 1.
Пример систем лога бота:
Script: Start: 87
Script: Каунт в цикле: 3145776
Script: Каунт в цикле: 85
Script: Каунт в цикле: 3145776
Script: Каунт в цикле: 83
Script: Каунт в цикле: 3145776
И так далее. Цикл останавливается только если стартовое число было нечетным.
Сам код:
uses
SysUtils;
var item: tl2item;
begin
inventory.user.byid(5592, item) ;
print('Start: '+IntToStr(item.count));
while (item.count > 1) do
begin
Engine.Useitem(5592);
delay(1000);
print('Каунт в цикле: '+IntToStr(item.count));
end;
print ('Finished');
print('Item count: '+IntToStr(item.count));
end.
Возникла проблема, почему то в цикле каунт этого айтема корректно отображается только через 1.
Пример систем лога бота:
Script: Start: 87
Script: Каунт в цикле: 3145776
Script: Каунт в цикле: 85
Script: Каунт в цикле: 3145776
Script: Каунт в цикле: 83
Script: Каунт в цикле: 3145776
И так далее. Цикл останавливается только если стартовое число было нечетным.
Сам код:
uses
SysUtils;
var item: tl2item;
begin
inventory.user.byid(5592, item) ;
print('Start: '+IntToStr(item.count));
while (item.count > 1) do
begin
Engine.Useitem(5592);
delay(1000);
print('Каунт в цикле: '+IntToStr(item.count));
end;
print ('Finished');
print('Item count: '+IntToStr(item.count));
end.
Понимаю, что можно обойти путем i:= item.count и в цикле убавлять i, или вообще пустить через for i, но хочется разобраться в этом