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

Проблема

тут можно задать вопрос по скриптингу
Post Reply
vissi d arte
Neophyte
Neophyte
Posts: 26
Joined: 03.10.2009 10:28

Проблема

Post by vissi d arte »

Code: Select all

Procedure findVendor;
Var
vType : Integer;
Begin
	For vType := 0 to High(venTypes) Do Begin
		While FindType(venTypes[vType], Ground) > 0 Do Begin
			If (pos(venNames[0], GetName(FindItem)) <> 0) then begin
				//AddToSystemJournal(IntToStr(GetX(FindItem))+' '+IntToStr(GetY(FindItem)));
				MoveXY(GetX(FindItem), GetY(FindItem), true, 0, true);
				Wait(500);
BuyGoods;
			Ignore(FindItem);
			End;
		End;
	End;
End;
Не работает на стелсе 3.7
1.0.8 все норм
не может найти вендора...
User avatar
Vizit0r
Developer
Developer
Posts: 3958
Joined: 24.03.2005 17:05
Contact:

Post by Vizit0r »

подробнее.
FindType не срабатывает?

если да - сутра в асю.
"Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете". (с) Макконнелл, "Совершенный код".
MeLFiS
Novice
Novice
Posts: 147
Joined: 02.02.2008 12:21

Post by MeLFiS »

тоже есть такое (
vissi d arte
Neophyte
Neophyte
Posts: 26
Joined: 03.10.2009 10:28

Post by vissi d arte »

If (pos(venNames[0], GetName(FindItem)) <> 0) then begin
вот что не работает
vissi d arte
Neophyte
Neophyte
Posts: 26
Joined: 03.10.2009 10:28

Post by vissi d arte »

кто-то подскажет как решить проблему?
User avatar
Vizit0r
Developer
Developer
Posts: 3958
Joined: 24.03.2005 17:05
Contact:

Post by Vizit0r »

Program Test;
begin
AddToSystemJournal(IntToStr(pos('gg','hhhgg')));
end.

08:02:43:518 [runuo - test]: Compiling
08:02:43:534 [runuo - test]: Compiled succesfully
08:02:43:534 [runuo - test]: 4
08:02:43:534 [runuo - test]: Succesfully executed
08:02:43:534 [runuo - test]: Script 222.sc stopped successfuly
если у тебя не работает - стучись в асю, будем разбираться.
"Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете". (с) Макконнелл, "Совершенный код".
vissi d arte
Neophyte
Neophyte
Posts: 26
Joined: 03.10.2009 10:28

Re: Проблема

Post by vissi d arte »

Code: Select all

Program Test;

Const
needName = 'Carpenter';
vendortype = $0190;

Begin
  FindDistance := 5;
  While FindType(vendorType, Ground) > 0 Do Begin
    uosay('found vendor and it''s name is '+GetName(FindItem));
    Wait(2000);
    If GetName(FindItem) <> needName then Begin
        UOSay('moving '+GetName(FindItem)+' to ignore');
        Ignore(FindItem);
    End;
  End;
  UOsay('no vendors around');
End.
[14:31:53:561] System: Reconnected.
[14:31:53:669] You see: Laird the Carpenter
[14:31:53:706] You see: [invulnerable]
[14:31:53:708] You see: Vsadnik T'mi
[14:32:04:103] Vsadnik T'mi: found vendor and it's name is Vsadnik T'mi
[14:32:06:109] Vsadnik T'mi: moving Vsadnik T'mi to ignore
[14:32:06:161] Vsadnik T'mi: found vendor and it's name is [invulnerable]
[14:32:08:108] Vsadnik T'mi: moving [invulnerable] to ignore
[14:32:08:147] Vsadnik T'mi: no vendors around

Как-то так...
Alex
Moderator
Moderator
Posts: 351
Joined: 07.04.2005 4:41

Re: Проблема

Post by Alex »

Code: Select all

GetName(FindItem) <> needName
такой код сравнивает на полное соответствие, а у тебя получается что

"Laird the Carpenter" != "Carpenter"

тебе поможет вот эта функция

Code: Select all

function BMSearch(StartPos: Integer; const S,P: String): Integer; // Возвращает первое вхождение подстроки в строке 
или выше Визитор советует вот так

Code: Select all

pos('gg','hhhgg')
если результат >= 0 значит есть совпадение
Новый стелс лежит тут. Стелс это произведение искусства! :)
Post Reply