Forum in READ ONLY mode! All questions and discussions on Discord official server, invite link: https://discord.gg/VxsGzJ7

Перемещение предмета

тут можно задать вопрос по скриптингу
Post Reply
Stels
Novice
Novice
Posts: 118
Joined: 15.02.2011 12:15

Перемещение предмета

Post by Stels »

добрый день. Никак не могу разобраться с функциями, помогите.
У меня следующая задача: взять из контейнера определенное количество вещей из стака, определенного цвета и переместить к себе в бэкпак. Вроде бы казалось, что тут сложного? Но не все так просто. Начнём :)

1. Команда MoveItem

Code: Select all

function MoveItem(ItemID : Cardinal; Count : Integer; MoveIntoID : Cardinal; X,Y,Z : Integer) : Boolean
здесь не указывается контейнер откуда брать и цвет

2. Команда MoveItems

Code: Select all

function MoveItems(Container : Cardinal; ItemsType : Word; ItemsColor : Word; MoveIntoID : Cardinal; X,Y,Z : Integer; DelayMS : Integer) : Boolean
Казалось бы, есть контейнер откуда брать и даже цвет предмета, что еще надо? Но не указывается кол-во предметов из стака...

3. Команда Grab

Code: Select all

function Grab(ItemID : Cardinal; Count : Integer) : Boolean
Вроде бы и предметы и кол-во, но нет контейнера откуда брать...

Попробовал написать свою функцию через дроп и драг и вот с чем столкнулся:
4. Команда DragItem

Code: Select all

function DragItem(ItemID : Cardinal; Count : Integer) : Boolean
не имеет в себе параметра контейнера, откуда брать предметы...

Как мне решить мою задачу, подскажите))))))
nah nah
Developer
Developer
Posts: 414
Joined: 13.07.2011 11:23
Contact:

Re: Перемещение предмета

Post by nah nah »

ItemID - это уникальный серийный номер объекта в игре. То есть у каждого он свой.
Type - это картинка предмета. Например у всех типов зелий один и тот же тип
Color - соответственно цвет. У разнотипных предметов может быть один и тот же цвет, но у тех же зелий он разный.

Суть в том, что если в функции используется серийник, то не нужно ни указывать контейнер, ни цвет, ни вообще ничего. Но в твоём случае серийник неизвестен, и его нужно найти.

Code: Select all

FindType(type, container)
FindTypeEx(type, color, container, recursion)
Эти функции в помощь. Они возвращают серийник.
Stels
Novice
Novice
Posts: 118
Joined: 15.02.2011 12:15

Re: Перемещение предмета

Post by Stels »

получается для моих целей спокойно подойдет команда Grab?
и получится что-то типа

Code: Select all

grab(FindTypeEx($0000,$0000,$00000000,False),10);
nah nah
Developer
Developer
Posts: 414
Joined: 13.07.2011 11:23
Contact:

Re: Перемещение предмета

Post by nah nah »

Тут когда-то были уроки :( Но да, Grab подойдёт.
Stels wrote:и получится что-то типа

Code: Select all

grab(FindTypeEx($0000,$0000,$00000000,False),10);
точно так
Post Reply