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

Простенькая ходилка (только для RC1)

Only working scripts
Edred
Moderator
Moderator
Posts: 559
Joined: 28.03.2006 21:29

Простенькая ходилка (только для RC1)

Post by Edred »

Функция будет работать только начиная с версии стелса 1.00 RC1 (всем качать).

Внимание: При хождении чар периодически будет останавливаться без всяких причин на 1 мин. Это не ошибка скрипта, это фича стелса (то есть уже известная ошибка 8) ). Просто стелс в некоторых невыясненных ситуациях может не поймать ответ сервера на команду перемещения чара, тогда он ждет по таймауту, то есть 1 мин. Это будет (я надеюсь) поправлено в следующих версиях.

Code: Select all

	procedure GotoXY(x,y,prec : integer; runflag : boolean);
	// x,y - координаты, в которые идем
	// prec - точность подхода
	// runflag - бежать или идти
	// v. 1.04 (с) Edred, скрипт портирован с инжекта
	// оригинальная версия Yoko с доработкой AGRS и Edred.
	var ld, ldc, dx, dy, mx, my : Integer;
	begin
		ld := 0; ldc := 0;
		while true do
		begin
			dx := GetX(self) - x; if dx < 0 then dx := 0 - dx;
			dy := GetY(self) - y; if dy < 0 then dy := 0 - dy;
			if dy > dx then dx := dy;
			if dx <= prec then exit;
			mx := GetX(self); my := GetY(self);
			dx := mx - x; if dx < 0 then dx := 0 - dx;
			dy := my - y; if dy < 0 then dy := 0 - dy;
			if dy > dx then dx := dy;
			if dx <= prec then exit;
			if ld = dx then begin
				ldc := ldc + 1;
				if ldc > 100 then begin addtosystemjournal( 'GotoXY: Cannot reach location!' ); exit; end;
			end
			else ld := dx;
			waitconnection(5000);
			if mx = x then begin
				if my = y then exit;
				// North
				if my > y then begin Raw_Move(0,runflag); continue; end;
				// South
				Raw_Move(4,runflag); continue;
			end;
			if mx < x then begin
				// Northeast
				if my > y then begin Raw_Move(1,runflag); continue; end;
				// East
				if my = y then begin Raw_Move(2,runflag); continue; end;
				// Southeast
				Raw_Move(3,runflag); continue;
			end;
			// Southwest
			if my < y then begin Raw_Move(5,runflag); continue; end;
			// West
			if my = y then begin Raw_Move(6,runflag); continue; end;
			// Nortwest
			Raw_Move(7,runflag); continue;
		end;
	end;
Lokkie
Neophyte
Neophyte
Posts: 30
Joined: 02.08.2006 7:55

Post by Lokkie »

Спасибо партии родной за ходилку. Попробую сделать лесоруба. :oops: Выложу если получиться...
к ходилке стоит наверно тест на стамину прибавить ;)
Edred
Moderator
Moderator
Posts: 559
Joined: 28.03.2006 21:29

Post by Edred »

В ходилку встраивать тест стамины нет смысла, у меня в скрипте на мининг сделано отдельной процедурой:

Code: Select all

procedure RestoreStamina;
// если стамины мало, восстанавливаем ее чару до полной
begin
	if Stam < 20 then
	begin
		repeat
			waitconnection(3000);
			wait(1000);
		until Stam = MaxStam;
	end;
end;
Edred
Moderator
Moderator
Posts: 559
Joined: 28.03.2006 21:29

Post by Edred »

Кстати, рекомендую обратить внимание на одну важную вещь: эта ходилка устойчива к конлостам! То есть после реконнекта чар спокойно пойдет дальше, ничего не собъется. Подобными свойствами не могут похвастаться большинство ходилок на большинстве макросных программ...
SkvidvarD
Neophyte
Neophyte
Posts: 11
Joined: 27.09.2006 1:34
Location: Одесса-мама
Contact:

Post by SkvidvarD »

Молодцы, одним словом! :D :D :D
И овцы целы, и волки сыты, и светлая память пастуху.
Flash
Posts: 5
Joined: 03.11.2006 17:39

Post by Flash »

Как понять что ставить в переменной точность?
Я не пойму? Самое точное 1?
И насчет булевой переменной? Ставить false или true? Верно? :D
Flash
Posts: 5
Joined: 03.11.2006 17:39

Post by Flash »

И еще, х и у координаты экрана? просто нету не координаты зед ни тайла.
Edred
Moderator
Moderator
Posts: 559
Joined: 28.03.2006 21:29

Post by Edred »

Самое точное - 0. Придет точно в указанные координаты. Поставишь 1 - придет либо в координаты, либо в один из соседних тайлов. И т. д.

Координаты мировые. Какой на хрен экран в стелсе? Откуда ты его взял?

На фига ходилке тип тайла (или его сериал) не мог понять, даже перечитав твой пост 10 раз. Координата Z не принципиальна - чар ведь не летает, куда придет по поверхности (или в данже), такая координата z и будет. Толку тебе ее задавать, чар прыгать и в землю закапываться не умеет...

ЗЫ: Насчет булевой - молодец, наверное, в школе по логике пятерку имел... :shock:
SLAK
Novice
Novice
Posts: 65
Joined: 15.01.2006 3:20

Post by SLAK »

Edred wrote: наверное, в школе по логике пятерку имел... :shock:
Не гони :) Ну учится ещё человек, не нада с него так гнать :D
Lokkie
Neophyte
Neophyte
Posts: 30
Joined: 02.08.2006 7:55

Post by Lokkie »

Уважаемый Eldred,
а не было ли попытки научить ходилку простые препятствия обходить? А то сделал лесоруба, да только он если в дерево уперся пока вектор движения не поменяешь не сдвинется.

На сайте йоко есть пару альтернативных ходилок. Может кто-нибудь их портировал?
Edred
Moderator
Moderator
Posts: 559
Joined: 28.03.2006 21:29

Post by Edred »

Lokkie wrote:а не было ли попытки научить ходилку простые препятствия обходить?
В планах. Дальних. Причем перед этим в планах столько пунктов... Так что скоро не жди.

ЗЫ: Так что придется просто больше поработать. Ты сделал массив деревьев? А тебе надо еще массив точек, в которых должен стоять чар перед этими деревьями, да перемещаться чар между этими точками должен по прямой (либо прописывать еще точки изменения направления движения). В тех же моих планах, гораздо ближе к началу, написать скрипт для инжи на автоматическую разметку маршрута... Я такие уже писал раньше, надо порыться и переправить. Идея простая: записываются точки, в которых чар меняет направление "взгляда". Ну и точки, в которых он пытается что-то рубить или копать. К последним добавляются координаты куда он тыркает топором/киркой плюс тип статики/тайла. Тогда массив будет (естественно, в файл) будет разметить очень просто - один раз пройти по лесу и по разу тыркнуть топором в каждое рубимое дерево.

ЗЫ: Когда найду время написать - выложу. Здесь, а не на форуме инжи.
Diego
Neophyte
Neophyte
Posts: 15
Joined: 11.07.2006 8:08
Contact:

Post by Diego »

Lokkie wrote:Спасибо партии родной за ходилку. Попробую сделать лесоруба. :oops: Выложу если получиться...
к ходилке стоит наверно тест на стамину прибавить ;)
А кто то обещал сделать лесоруба... Ждём... )
*13*
Neophyte
Neophyte
Posts: 13
Joined: 17.02.2006 20:21

Post by *13* »

Diego wrote:
Lokkie wrote:Спасибо партии родной за ходилку. Попробую сделать лесоруба. :oops: Выложу если получиться...
к ходилке стоит наверно тест на стамину прибавить ;)
А кто то обещал сделать лесоруба... Ждём... )
а самому слабо написать, а не сидеть на форуме как последний нюб, просить "подправить" скрипты и ждать пока ктото чтото там напишет? ненавижу такой тип людей с храническим лентяйством. " не умею писать на паскале " не канает, я тоже когда вышла первая версия стелса, не умел. и научился.
хотя у нас основная масса фофовцев именно таких, как ты...
Diego
Neophyte
Neophyte
Posts: 15
Joined: 11.07.2006 8:08
Contact:

Post by Diego »

*13* wrote:
Diego wrote:
Lokkie wrote:Спасибо партии родной за ходилку. Попробую сделать лесоруба. :oops: Выложу если получиться...
к ходилке стоит наверно тест на стамину прибавить ;)
А кто то обещал сделать лесоруба... Ждём... )
а самому слабо написать, а не сидеть на форуме как последний нюб, просить "подправить" скрипты и ждать пока ктото чтото там напишет? ненавижу такой тип людей с храническим лентяйством. " не умею писать на паскале " не канает, я тоже когда вышла первая версия стелса, не умел. и научился.
хотя у нас основная масса фофовцев именно таких, как ты...
я может простенькие скрипты и могу написать... или что то изменить...
сложные... это ещё для меня сильно сложно... так что не надо...
Lokkie
Neophyte
Neophyte
Posts: 30
Joined: 02.08.2006 7:55

Post by Lokkie »

Diego wrote: А кто то обещал сделать лесоруба... Ждём... )
выложил
Post Reply