Page 1 of 1
Magery -Debug
Posted: 28.12.2009 9:58
by myownstyle
На стелсе всего недавно, вот прубую зделать скрипт, но кекак не получаеца скомпилировать правельно.
Code: Select all
program Magery;
{$Include 'all.inc'}
var
spell : string;
OldSkill : Double;
Bless : string;
Greater: string;
Paralyze: string;
Invisibility: string;
Earth: string;
Begin
OldSkill := GetSkillValue('Magery');
While (not Dead) AND (GetSkillValue('Magery') < 100.0) do
begin
if GetSkillValue('Magery') > 20.0 then spell := Bless;
if GetSkillValue('Magery') > 40.0 then spell := Greater;
if GetSkillValue('Magery') > 50.0 then spell := Paralyze;
if GetSkillValue('Magery') > 60.0 then spell := Invisibility;
if GetSkillValue('Magery') > 90.0 then spell := Earth;
while not connected do wait(100);
cast(spell);
wait(3500);
waitconnection(3000);
CheckSave;
if GetSkillValue('Magery') > OldSkill then
begin
AddToSystemJournal('Скилл Magery вырос. Теперь он равен ' + FloatToStr(GetSkillValue('Magery')));
OldSkill := GetSkillValue('Magery');
end;
waitconnection(3000);
end;
End.
Posted: 28.12.2009 16:35
by Vizit0r
мой стелс слегка разломан, так что проверить не на чем.
из того, что визуально обнаружил - должно быть
cast(spell) - ты не кастуешь заклинание с именем spell, а берешь из переменной spell
Posted: 28.12.2009 19:17
by myownstyle
как бы так и задумовалось. Он должен прочитовать Скилл, ставить переменую спелл - по скиллу - и кастовать то што нужно. я вот не пойму, как правельно ету переменую ставить. Смотрел другие скрипты, только у едреда чета подобное тут делалось но мне как начинаюшему писать на Стелс, ето пока не под силу понять хоть и я питаюсь, как могу.
Posted: 28.12.2009 20:30
by WladL
Ну так Виз же и говорит ты кастуешь магию 'spell' , а не магию из переменной spell
'spell' - это строка
spell - это переменная
ЗЫ. кавычки убери.
Posted: 28.12.2009 20:42
by myownstyle
если убрат кавички, то получаем такое -
Code: Select all
18:40:54 [^^]: Compiling
18:40:54 [^^]: Compiler: [Error] (magery_debug.txt at 7:7): colon (':') expected
18:40:54 [^^]: Compiling failed
18:40:54 [^^]: Script magery_debug.txt stopped successfuly
Posted: 28.12.2009 20:57
by Vizit0r
Posted: 29.12.2009 8:21
by CFA
myownstyle wrote:если убрат кавички, то получаем такое -
Code: Select all
18:40:54 [^^]: Compiling
18:40:54 [^^]: Compiler: [Error] (magery_debug.txt at 7:7): colon (':') expected
18:40:54 [^^]: Compiling failed
18:40:54 [^^]: Script magery_debug.txt stopped successfuly
и без кавычек так же.
spell : string;
OldSkill : Double;
Bless
; string;
Greater Heal
; string;
Paralize
; string;
Invisibility
; string
Вместо : стоят ; + пробелы в имени переменной
Posted: 15.03.2010 18:35
by myownstyle
спосибо за сылку. будем читать.
CFA wrote:myownstyle wrote:если убрат кавички, то получаем такое -
Code: Select all
18:40:54 [^^]: Compiling
18:40:54 [^^]: Compiler: [Error] (magery_debug.txt at 7:7): colon (':') expected
18:40:54 [^^]: Compiling failed
18:40:54 [^^]: Script magery_debug.txt stopped successfuly
и без кавычек так же.
spell : string;
OldSkill : Double;
Bless
; string;
Greater Heal
; string;
Paralize
; string;
Invisibility
; string
Вместо : стоят ; + пробелы в имени переменной
спосибо, за укозание ошыбок.
Code: Select all
program Magery;
{$Include 'all.inc'}
var
spell : string;
OldSkill : Double;
Begin
OldSkill := GetSkillValue('Magery');
While (not Dead) AND (GetSkillValue('Magery') < 100.0) do
begin
if GetSkillValue('Magery') > 20.0 then spell := 'Bless';
if GetSkillValue('Magery') > 40.0 then spell := 'Greater';
if GetSkillValue('Magery') > 50.0 then spell := 'Paralyze';
if GetSkillValue('Magery') > 60.0 then spell := 'Invisibility';
if GetSkillValue('Magery') > 90.0 then spell := 'Earth';
while not connected do wait(100);
cast(spell);
wait(3500);
waitconnection(3000);
CheckSave;
if GetSkillValue('Magery') > OldSkill then
begin
AddToSystemJournal('Скилл Magery вырос. Теперь он равен ' + FloatToStr(GetSkillValue('Magery')));
OldSkill := GetSkillValue('Magery');
end;
waitconnection(3000);
end;
End.
упдт; Большое спосибо Vizit0r за помошь с указанием ошыбок.
Posted: 15.03.2010 21:42
by Zeppelin
Code: Select all
program Magery;
{$Include 'all.inc'}
var
spell : string;
OldSkill : Double;
TempMana: Integer;
Begin
OldSkill := GetSkillValue('Magery');
While (not Dead) and (GetSkillValue('Magery') < 100.0) do
begin
case GetSkillValue('Magery') of
20..39.9 : spell := 'Bless';
40..49.9 : spell := 'Greater Heal';
50..59.9 : spell := 'Paralyze';
60..89.9 : spell := 'Invisibility';
90..99.9 : spell := 'Summon Earth Elemental';
end;
while not connected do wait(100);
clearjournal;
TempMana := Mana;
cast(spell);
repeat
wait(50);
until ((InJournal('fizzled')<>-1) or (Mana < TempMana)) and Connected;
CheckSave;
if GetSkillValue('Magery') > OldSkill then
begin
AddToSystemJournal('Скилл Magery вырос. Теперь он равен ' + FloatToStr(GetSkillValue('Magery')));
OldSkill := GetSkillValue('Magery');
end;
waitconnection(3000);
end;
End.
Вот так правильно. Ты в начале объявил переменные-строки(спеллы), которым ничего не присвоил и пытался кастовать спелы без названия, получается.
Да, и еще - тебе нужно будет для некоторых спелов, перед применением, ставить ловушку прицела на то, на что кастовать будешь, а то он просто будет ждать таргет и ничего не кастовать..
И еще - задержка в 3.5 секунды после спела - не лучшее решение, лучше ждать определенных сообщений журнала в цикле с маленькой задержкой:
Code: Select all
clearjournal;
TempMana := Mana;
cast(spell);
repeat
wait(50);
until ((InJournal('fizzled')<>-1) or (Mana < TempMana)) and Connected;
Если сфизлит, прекратит ожидание, и если кастанет (мана уменьшится) - тоже прекратит ожидание.. Так же он будет ожидать коннекта к серверу.
Ну как-то так, свежий набросок такой, много еще доработать можно =)
Posted: 16.03.2010 19:17
by myownstyle
Zeppelin wrote:
[...]
Вот так правильно. Ты в начале объявил переменные-строки(спеллы), которым ничего не присвоил и пытался кастовать спелы без названия, получается.
Да, и еще - тебе нужно будет для некоторых спелов, перед применением, ставить ловушку прицела на то, на что кастовать будешь, а то он просто будет ждать таргет и ничего не кастовать..
И еще - задержка в 3.5 секунды после спела - не лучшее решение, лучше ждать определенных сообщений журнала в цикле с маленькой задержкой:
[...]
Если сфизлит, прекратит ожидание, и если кастанет (мана уменьшится) - тоже прекратит ожидание.. Так же он будет ожидать коннекта к серверу.
Ну как-то так, свежий набросок такой, много еще доработать можно =)
Огромное спосибо, ето многое разеснило. Шас питаюсь разобраца как в одной строке две переменых поменять.
Posted: 17.03.2010 10:05
by Vizit0r
две переменные в одной строке? зачем?