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

Скачал скрипт а он не работает. Помогите Плз!!!

тут можно задать вопрос по скриптингу
Post Reply
ParadoX
Apprentice
Apprentice
Posts: 256
Joined: 17.03.2005 16:06

Скачал скрипт а он не работает. Помогите Плз!!!

Post by ParadoX »

Code: Select all

program taming;
var

Char : Array[1..2] of string;
Zver : Array[1..2] of Cardinal;


procedure IsCurMessages;
var D : TDateTime; 
begin 
{5 minutes in DateTime = 5 / 1440 = 0.00347} 
D := Now - (0.00347);
InJournalBetweenTimes(CharName + ': I am already performing another action.',D,Now); 

if LineCount > 15 then 
   begin 
   AddToSystemJournal('Error with target. Disconnected'); 
   Disconnect; 
   end; 

end; 




procedure Hungry(NeededLevel : Integer); 
var HArray : array [0..10] of String; 
    CurrentLevel : Integer; 
    HasError : Boolean; 
    TimeSayHungry : TDateTime; 
    FoodID : Cardinal; 
    i,c,difference : Integer; 
begin
FindVertical:=26;
findtype($097B,0);
FoodID := FindItem; {You must SET FoodID!} 
if (NeededLevel < 0) or (NeededLevel > 10) then Exit; 
   HArray[0] := 'You are absolutely stuffed!'; 
   HArray[1] := 'You are stuffed'; 
   HArray[2] := 'hungry at all'; 
   HArray[3] := 'You are a little hungry'; 
   HArray[4] := 'You are somewhat hungry'; 
   HArray[5] := 'You are REALLY hungry'; 
   HArray[6] := 'Your stomash hurts'; 
   HArray[7] := 'Your stomash hurts and you feel dizzy'; 
   HArray[8] := 'You are starving'; 
   HArray[9] := 'You are almost dying of hunger'; 
   HArray[10] := 'You are DYING of hunger...'; 
HasError := true; 
TimeSayHungry := Now; 
UOSay('.hungry'); 
wait(100); 
i:=0; 
while i < 100 do 
   begin 
   for c := 0 to 10 do 
   if InJournalBetweenTimes(HArray[c],TimeSayHungry,Now) >= 0 then 
   begin 
   CurrentLevel := c; 
   HasError := false; 
   i := 100; 
   end; 
   wait(100); 
   i := i + 1; 
   end; 
if HasError then 
   begin 
   AddToSystemJournal('Error with Hungry: Lag? No connect? Something else?'); 
   Exit; 
   end; 
difference := CurrentLevel - NeededLevel; 
if difference > 0 then for i := 1 to difference do 
   begin 
   UseObject(FoodID); 
   wait(2000); 
   end; 
end; 






procedure First(Char : array of String; Zver : array of Cardinal);

var
b,f : TDateTime;
tmp,i : integer;

Begin
while True do
begin
IsCurMessages;
Hungry(1);

i:=0; 
	while i < 10 do 
   	begin 
  		for tmp:=1 to 2 do
		begin
		WaitTargetObject(zver[tmp]);
   		UseSkill('Animal Taming');
			b:=Now;
			WaitJournalLine(b, 'You successfully tame|You failed', 40000);
			WaitJournalLine(b, Char[2]+': all release', 4000);
		UOsay('all release');
		UOsay(IntToStr(tmp));
   		i := i + 1;
		end;
   	end; 
End;
End;






procedure Second(Char : array of String; Zver : array of Cardinal);
var


i,tmp : integer;
b,f     : TDateTime;


begin
f:=Now;
while true do
begin

IsCurMessages;
Hungry(1);

i:=0; 
	while i < 10 do 
   	begin 
		WaitJournalLine(f,Char[1]+': 1'+'|'+Char[2]+': 2',0);
   		if InJournalBetweenTimes(Char[1]+': 1',f,Now) >= 0 then tmp := 1; 
		if InJournalBetweenTimes(Char[2]+': 2',f,Now) >= 0 then tmp := 2;

		f:=Now;
		WaitTargetObject(Zver[tmp]);
   		UseSkill('Animal Taming');
		b:=Now;

		WaitJournalLine(b,'You successfully tame|You fail', 20000);
		
		UOsay('all release');
   		i := i + 1;
   	end; 
End;
End;





begin
SetARStatus(true);
FindVertical:=30;

Char[1]:='Barsuello';
Char[2]:='Generous';
Zver[1]:=$0114671E;
Zver[2]:=$01146D08;

Case CharName Of
	Char[1] : First(Char,Zver);
	Char[2] : Second(Char,Zver);
else AddToSystemJournal('Error');
End;

End.

что я неправильно делал ? компилятор ругается о Out Of Range... я так понял что-то с функцией Wait...

другие ошибки можете не говорить.. так как многа нашол :roll: но вот это Out Of Range оно и раньше было на некоторых функциях... щас вот на этом.. ваще не понимаю почему.... памяти чтоли не хватает... вобщем хелп :roll: :roll:
Miralex
Developer
Developer
Posts: 656
Joined: 11.03.2005 19:12
Contact:

Post by Miralex »

что я неправильно делал ? компилятор ругается о Out Of Range...
Здесь неправильно:

Code: Select all

procedure First(Char : array of String; Zver : array of Cardinal);
1. Внимательно читаем понятие открытого массива и динамического.
2. Передавать параметры процедуре ненадо в данном случае.
Массивы Char и Zver у тебя обьявлены в самом начале и они глобальны в пределах данного скрипта.

Процедура Second - то же самое.
Post Reply