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

Bowcraft на шафтах

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

Bowcraft на шафтах

Post by Edred »

Code: Select all

Program BowcraftUP; 
// v.1.00b (c) Edred 

// Из логов делаем шафты. Логи берем с пола, берем по 2, скидываем 1 обратно
// (это можно изменить в константах HowGetLogs, HowDropLogs).
// Шафты скидываем обратно на пол. Даггер может быть в руках или паке.
// Первый крафт через меню, последующие через .makelast (отменяется удалением строки
// FirstTime := false;
// Если вы эту строку удалите или закомментируете - все крафты будут через меню).

{$Include 'all.inc'} 

var 
ctime : TDateTime;
k, m : integer; 
LogsID : cardinal;
FirstTime : boolean;
OldSkill : Double;

const
TypLogs = $1BDD;					// Тип досок
TypShafts = $1BD4;
HowGetLogs = 2;
HowDropLogs = 1;
HowDropShafts = 100;
ToolsType = $0F51;					// даггер

	function GetRes : boolean;
	begin
		Result := True;
		if Count(TypLogs) = 0 then
		begin
			waitconnection(3000);
			findtype(TypLogs,ground);
			if GetQuantity(Finditem) < 3 then
			begin
				repeat
					addtosystemjournal('Warning: Мало логов на полу');
					wait(10000);
					findtype(TypLogs,ground);
				until GetQuantity(Finditem) >= 3;
			end;
			m := GetQuantity(finditem);
			Grab(FindItem,HowGetLogs);
			wait(1000);
			checksave;
			waitconnection(3000);
			findtype(TypLogs,backpack);
			Drop(FindItem,HowDropLogs,0,0,0); 
			wait(1000); 
			checksave;
		end;
	end;

	procedure DropShafts;
	var tmp1 : cardinal;
		tmp2, tmp3 : Integer;
	begin
		waitconnection(3000);
		if Count(TypShafts) < HowDropShafts then exit;
		tmp3 := 0;
		tmp1 := findtype(TypShafts,backpack);
		while findcount > 0 do
		begin
			tmp2 := GetQuantity(tmp1);
			Drop(tmp1,tmp2,0,0,0);
			wait(1000);
			checksave;
			tmp3 := tmp3 + tmp2;
			tmp1 := findtype(TypShafts,backpack);
		end;
	end;

Begin 
	FindDistance := 1; 
	CancelMenu; 
	AutoMenu('What do you want', 'shaft');
	FirstTime := true;
	// Первый раз через меню
	OldSkill := GetSkillValue('Bowcraft');
	repeat
		if not GetRes then exit;
		waitconnection(3000);
		ctime := Now;
		k := 0;
		if FirstTime then
		begin
			LogsID := Findtype(TypLogs,backpack);
			if TargetPresent then CancelTarget;
			UseType(ToolsType, $FFFF);
			WaitForTarget(5000);
			If TargetPresent then TargetToObject(LogsID);
			FirstTime := false;
		end
		else UOSay('.makelast');
		repeat 
			wait(100); 
			k := k + 1; 
			checksave; 
		until (InJournalBetweenTimes('You put|You fail to complete|You fail to create', ctime, Now)<>-1) or (k > 200);
		if InJournalBetweenTimes('You fail to complete', ctime, Now)<>-1 then wait(7000);
		wait(2000)
		DropShafts;
		if GetSkillValue('Bowcraft') > OldSkill then
		begin
			AddToSystemJournal('Скилл Bowcraft вырос. Теперь он равен ' + FloatToStr(GetSkillValue('Bowcraft')));
			OldSkill := GetSkillValue('Bowcraft');
		end;
	until GetSkillValue('Bowcraft') >= 100.0;
End.
*13*
Neophyte
Neophyte
Posts: 13
Joined: 17.02.2006 20:21

Post by *13* »

until GetSkillValue('Bowcraft') >= 100.0;

а чего?
Edred
Moderator
Moderator
Posts: 559
Joined: 28.03.2006 21:29

Post by Edred »

*13* wrote:until GetSkillValue('Bowcraft') >= 100.0;
а чего?
А что тебе не нравится-то? Я, честно говоря, не понял твоего вопроса. Скрипт полностью рабочий, я кладу только отлаженные.
MustDie
Neophyte
Neophyte
Posts: 11
Joined: 19.03.2008 12:51

Post by MustDie »

Народ а как его перенастоить под НДВ?
Acronym
Novice
Novice
Posts: 114
Joined: 10.05.2005 18:42
Location: Odessa, NDW
Contact:

Post by Acronym »

А зачем? Если НДВ - это New Dream World:
http://stealth.od.ua/forum/viewtopic.php?t=192
aka Trickster [YGG]
current version: 1.0 [RC3]
Post Reply