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

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

тут можно задать вопрос по скриптингу
Post Reply
Venom
Novice
Novice
Posts: 123
Joined: 25.08.2010 14:00

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

Post by Venom »

FindID ?
а если нету, то можно ли добавить ?
User avatar
Vizit0r
Developer
Developer
Posts: 3958
Joined: 24.03.2005 17:05
Contact:

Post by Vizit0r »

можно все. а вот нужно ли...
я должен догадываться, что делает функция?
"Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете". (с) Макконнелл, "Совершенный код".
Venom
Novice
Novice
Posts: 123
Joined: 25.08.2010 14:00

Post by Venom »

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

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

(Это вкратце)
User avatar
Vizit0r
Developer
Developer
Posts: 3958
Joined: 24.03.2005 17:05
Contact:

Post by Vizit0r »

ничего не понял, но попахивает совершенно неправильной организацией скрипта.
"Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете". (с) Макконнелл, "Совершенный код".
Fenix
Developer
Developer
Posts: 275
Joined: 24.08.2010 7:20
Location: Ставрополь
Contact:

Post by Fenix »

Venom wrote:К примеру, есть две процедуры:
И в первой и во второй процедуре, присутствует 0190 тайп цели.
Скрипт не понимает, что ему делать, то ли атаковать, то ли идти.
Толи дает знать о себе температура, толи литр пива, но я не понимаю, как скрипт может "не понимать что ему делать". Если вызвал процедуру атаки, то скрипту надо атаковать, если вызвал процедуру перемещения, то скрипту нужно идти. Конкретнее что ты хочешь от метода FindID? Если хочешь узнать есть ли объект с таким ID, то вызови GetType, вернул ноль - объекта нету.
Помните – ничто так не защищает ваши зубы 12 часов днем и 12 часов ночью как уважительное отношение к окружающим.
"Многие из вас знакомы с достоинствами программиста. Их всего три, и разумеется это: лень, нетерпеливость и гордыня"© Larry Wall
Venom
Novice
Novice
Posts: 123
Joined: 25.08.2010 14:00

Post 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
Если информацию по мобу не найдёт, то вернёт ноль. Хотя тоже не факт, что корректно отработает.
Fenix
Developer
Developer
Posts: 275
Joined: 24.08.2010 7:20
Location: Ставрополь
Contact:

Post by Fenix »

Сначала делаешь FindType, потом GetFindedList и в цикле проверяешь содержимое списка найденых объектов на предмет совпадения с prime.
Помните – ничто так не защищает ваши зубы 12 часов днем и 12 часов ночью как уважительное отношение к окружающим.
"Многие из вас знакомы с достоинствами программиста. Их всего три, и разумеется это: лень, нетерпеливость и гордыня"© Larry Wall
Post Reply