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

Math error at 11.180

тут можно задать вопрос по скриптингу
Post Reply
pr0Zak
Novice
Novice
Posts: 77
Joined: 15.09.2009 1:11
Location: Age of Power
Contact:

Math error at 11.180

Post by pr0Zak »

Math error at 11.180 что это за ошибка??
Вылетает постоянно при запуске скрипта!
Beren
Novice
Novice
Posts: 108
Joined: 08.09.2008 1:07

Post by Beren »

на ноль случаем не делишь?
pr0Zak
Novice
Novice
Posts: 77
Joined: 15.09.2009 1:11
Location: Age of Power
Contact:

Post by pr0Zak »

Beren wrote:на ноль случаем не делишь?
Не понял, какой ноль?
Beren
Novice
Novice
Posts: 108
Joined: 08.09.2008 1:07

Post by Beren »

pr0Zak wrote:
Beren wrote:на ноль случаем не делишь?
Не понял, какой ноль?
на обыкновенный)
Math error это как я понимаю ошибка математическая, а самая распространённая это и есть деление на ноль.
pr0Zak
Novice
Novice
Posts: 77
Joined: 15.09.2009 1:11
Location: Age of Power
Contact:

Post by pr0Zak »

Вот сам скрипт

Code: Select all

Program Magery;
var
Self : Cardinal;

//*************************************************************** 
// Медитируем
//*************************************************************** 
Procedure Medit;
Begin
useskill('Meditation');
wait(8000);
End;
//*************************************************************** 
// Кастуем Гейты
//*************************************************************** 
Procedure Kast;
Begin
cast('Gate Travel');
WaitTargetObject(FindType($1F14, backpack));
wait(3100);
End;
//*************************************************************** 
// ФУНКЦИЯ МАНЫ
//***************************************************************
function SelfManaControl : Double;
begin
Result := 100 * GetMana(FindType(Self, Ground)) / GetMaxMana(FindType(Self, Ground));
end;

BEGIN
while not dead do
begin
UseObject(Backpack); 
wait(1000);
if SelfManaControl < 23.0 then Medit;
if SelfManaControl > 23.0 then Kast;
wait(50);
end;
END.
Beren
Novice
Novice
Posts: 108
Joined: 08.09.2008 1:07

Post by Beren »

обрати внимание на эту строчку, тут скорее всего и происходит деление на ноль.

Code: Select all

Result := 100 * GetMana(FindType(Self, Ground)) / GetMaxMana(FindType(Self, Ground));
зачем ты объявляешь?

Code: Select all

var 
Self : Cardinal;
ведь она уже есть в стелсе, возможно этим ты перекрываешь стелсовскую переменную. соотвественно у тебя self=0 и GetMaxMana(0)=0

да и конструкция

Code: Select all

GetMana(FindType(Self, Ground)) 
избыточна, ведь можно просто

Code: Select all

GetMana(self)
WladL
Apprentice
Apprentice
Posts: 240
Joined: 27.07.2009 17:21
Location: DRW
Contact:

Post by WladL »

А если одним глазом заглянуть в ФАК, то конструкция может стать еще короче
function Mana: Integer; // Мана

Code: Select all

if Mana < 23 then Medit else Kast;
И было-бы нелохо проверку на сейв вставить.
pr0Zak
Novice
Novice
Posts: 77
Joined: 15.09.2009 1:11
Location: Age of Power
Contact:

Post by pr0Zak »

WladL wrote:А если одним глазом заглянуть в ФАК, то конструкция может стать еще короче
function Mana: Integer; // Мана

Code: Select all

if Mana < 23 then Medit else Kast;
И было-бы нелохо проверку на сейв вставить.
Спс)
Post Reply