program fighter;
var i:Integer;
{$Include 'all.inc'}
Const
naparnik = $012EB700;
dager = $0F51;
binti = $0E21;
ghost = $0193;
procedure fight(object:Cardinal);
begin
If (GetHp(self)>((0.5)*GetMaxHp(self))) and (GetHp(object)>((0.5)*GetMaxHp(object))) then begin attack(object); end
else SetWarMode(false);
end;
procedure heal(object:Cardinal);
begin
if GetHp(object)<GetMaxHP(object) then begin
Useobject(FindType(binti,ground));
waittargetobject(object);
CheckTargetError(2,2);
WaitJournalLine(now,'you have healed', 14000);
end
end;
procedure reshim(object:Cardinal);
begin
If IsDead(object) then begin
FindType(ghost,ground); AddToSystemJournal('RESHIM');
heal(finditem);
end
end;
procedure resself;
begin
if dead then begin
UOSay('.forgivethee');
SetWarMode(true);
waitgump('1');
AddToSystemJournal('RESSELF');
while dead do
begin
wait(1000)
end;
end
end;
Begin
SetARStatus(true); finddistance:=2;
while connected do begin
for i:=1 to 7 do begin
while not dead do begin
checksave; wait(100);
//checkeq;
wait(100);
fight(naparnik); wait(200);
heal(naparnik); wait(200);
reshim(naparnik); wait(200);
end;
resself;
end;
Hungry(1,ground)
end;
End.
Forum in READ ONLY mode! All questions and discussions on Discord official server, invite link: https://discord.gg/VxsGzJ7
Мой скрипт на спаринг. Нужна помощь экспертов !!!
Мой скрипт на спаринг. Нужна помощь экспертов !!!
В процессе компиляции проблем нету.
Проблема есть и она возникает именно в процессе работы.
Суть в том, что Pascal Script не может сравнивать переменные различных типов. У тебя GetHp(self) имеет целочисленный тип, а (0.5)*GetMaxHp(self)) имеет вещественный тип. Тебе надо и то и другое привести к одному типу. Точнее необходимо просто целое число умножить на (1.0) и оно станет вещественным.
В результате будет:
Проблема есть и она возникает именно в процессе работы.
Code: Select all
If (GetHp(self)>((0.5)*GetMaxHp(self))) and (GetHp(object)>((0.5)*GetMaxHp(object))) then
В результате будет:
Code: Select all
If ((1.0)*GetHp(self)>((0.5)*GetMaxHp(self))) and ((1.0)*GetHp(object)>((0.5)*GetMaxHp(object))) then