Page 1 of 1

Есть ли такая функция ?

Posted: 29.03.2011 15:17
by Venom
FindID ?
а если нету, то можно ли добавить ?

Posted: 29.03.2011 15:29
by Vizit0r
можно все. а вот нужно ли...
я должен догадываться, что делает функция?

Posted: 29.03.2011 16:13
by Venom
К примеру, есть две процедуры:
Одна - атака
Вторая - ходьба.

И в первой и во второй процедуре, присутствует 0190 тайп цели.
Скрипт не понимает, что ему делать, то ли атаковать, то ли идти.

(Это вкратце)

Posted: 29.03.2011 16:15
by Vizit0r
ничего не понял, но попахивает совершенно неправильной организацией скрипта.

Posted: 29.03.2011 20:51
by Fenix
Venom wrote:К примеру, есть две процедуры:
И в первой и во второй процедуре, присутствует 0190 тайп цели.
Скрипт не понимает, что ему делать, то ли атаковать, то ли идти.
Толи дает знать о себе температура, толи литр пива, но я не понимаю, как скрипт может "не понимать что ему делать". Если вызвал процедуру атаки, то скрипту надо атаковать, если вызвал процедуру перемещения, то скрипту нужно идти. Конкретнее что ты хочешь от метода FindID? Если хочешь узнать есть ли объект с таким ID, то вызови GetType, вернул ноль - объекта нету.

Posted: 30.03.2011 10:08
by Venom
Fenix wrote:
Venom wrote:К примеру, есть две процедуры:
И в первой и во второй процедуре, присутствует 0190 тайп цели.
Скрипт не понимает, что ему делать, то ли атаковать, то ли идти.
Толи дает знать о себе температура, толи литр пива, но я не понимаю, как скрипт может "не понимать что ему делать". Если вызвал процедуру атаки, то скрипту надо атаковать, если вызвал процедуру перемещения, то скрипту нужно идти. Конкретнее что ты хочешь от метода FindID? Если хочешь узнать есть ли объект с таким ID, то вызови GetType, вернул ноль - объекта нету.
Конкретно:

Code: Select all

program test;
const
prime = $12345;

procedure MoveOn;
var
friend: cardinal;
begin
if findtype($0190, ground) <> 0 then
begin
if finditem= prime then
begin
friend:=finditem
movexy(getx(friend), gety(friend), false, 1, false);
.....
Я имел в виду следующее, можно ли заменить

Code: Select all

if findtype($0190, ground) <> 0
на

Code: Select all

if findID($12345, ground) <> 0

PS.
Fenix wrote:

Code: Select all

function GetType(ObjID: Cardinal): Word
Если информацию по мобу не найдёт, то вернёт ноль. Хотя тоже не факт, что корректно отработает.

Posted: 30.03.2011 11:09
by Fenix
Сначала делаешь FindType, потом GetFindedList и в цикле проверяешь содержимое списка найденых объектов на предмет совпадения с prime.