Page 1 of 1

Math error at 11.180

Posted: 19.10.2009 3:16
by pr0Zak
Math error at 11.180 что это за ошибка??
Вылетает постоянно при запуске скрипта!

Posted: 19.10.2009 7:51
by Beren
на ноль случаем не делишь?

Posted: 19.10.2009 14:18
by pr0Zak
Beren wrote:на ноль случаем не делишь?
Не понял, какой ноль?

Posted: 19.10.2009 15:54
by Beren
pr0Zak wrote:
Beren wrote:на ноль случаем не делишь?
Не понял, какой ноль?
на обыкновенный)
Math error это как я понимаю ошибка математическая, а самая распространённая это и есть деление на ноль.

Posted: 19.10.2009 17:05
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.

Posted: 19.10.2009 17:16
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)

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

Code: Select all

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

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

Code: Select all

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