Page 1 of 1
Подскажите где ошибка пожалуста ...
Posted: 25.02.2008 18:43
by m0nya
Code: Select all
program fightDexter;
var t : Integer;
bandage,en:Cardinal;
tweapon:word;
{$Include 'all.inc'}
procedure weaponckeck;
begin
if (not dead) and (connected) then begin
checksave;
if (getquantity(findtype(tweapon,backpack)) > 0) and (gettype(ObjAtLayer(RhandLayer)) <> gettype(finditem)) then begin
addtosystemjournal('Weapon Change'+inttostr(findcount));
UnEquip(RHandLayer);
wait(500);
Equip(RhandLayer,finditem);
end;
end;
end;
Begin
tweapon := $0F51;
en:=$001FAFD6;
SetARStatus(true);
clearjournal;
while not Dead do
begin
WaitConnection(1000);
if Connected then
begin
Attack(en);
for t := 0 to 60 do
begin
if Life<(GetMaxHP(Self)-40) then
begin
if TargetPresent then CancelTarget;
checkSave;
bandage:=findtype($0E21,backpack);
UseObject(bandage);
WaitTargetSelf;
Wait(100);
end;
wait(100)
end;
weaponckeck;
hungry(1,ground);
clearjournal;
end;
end;
end
смотрю немогу найти ...
стелс пишет Compiler: [Error] (153:1): period ('.') expected
Posted: 25.02.2008 21:14
by grundick
в саом конце после енда точку поставь
Posted: 28.02.2008 14:30
by MeLFiS
Code: Select all
program fightDexter;
var t : Integer;
bandage,en:Cardinal;
tweapon:word;
{$Include 'all.inc'}
procedure weaponckeck;
begin
if (not dead) and (connected) then begin
checksave;
if (getquantity(findtype(tweapon,backpack)) > 0) and (gettype(ObjAtLayer(RhandLayer)) <> gettype(finditem)) then begin
addtosystemjournal('Weapon Change'+inttostr(findcount));
UnEquip(RHandLayer);
wait(500);
Equip(RhandLayer,finditem);
end;
end;
end;
Begin
tweapon := $0F51;
en:=$001FAFD6;
SetARStatus(true);
clearjournal;
while not Dead do
begin
WaitConnection(1000);
if Connected then
begin
Attack(en);
for t := 0 to 60 do
begin
if Life<(GetMaxHP(Self)-40) then
begin
if TargetPresent then CancelTarget;
checkSave;
bandage:=findtype($0E21,backpack);
UseObject(bandage);
WaitTargetSelf;
Wait(100);
end;
wait(100)
end;
begin
if Life<(GetMaxHP(en)-40) then
begin
if TargetPresent then CancelTarget;
checkSave;
bandage:=findtype($0E21,backpack);
UseObject(bandage);
WaitTarget(en);
Wait(100);
end;
wait(100)
end;
weaponckeck;
hungry(1,ground);
clearjournal;
end;
end;
end
А чтобы он хилил не токо себя но и партнера я правильно написал ?
Posted: 28.02.2008 18:11
by Edred
Врядли. Чужое здоровье УО не умеет показывать (специально) точно, поэтому можно определить только процентовку от него. То есть GetHP(en)*100/GetMaxHP(en) - это сколько процентов осталось от здоровья врага. Для партнера по спаррингу ты, конечно, знаешь сколько у него максимум, так что высчитать можешь.
А вообще, чем спрашивать - проще потестить. И не забудь поставить точку после последнего end.
Posted: 28.02.2008 19:44
by MeLFiS
Code: Select all
Compiler: [Error] (Òåêñòîâûé äîêóìåíò (5).txt at 55:17): Unknown identifier 'WaitTarget'
Первая ошибка какую комунду использовать для веит таргета ?
Posted: 28.02.2008 19:48
by Edred
Дык стоит почитать вот эту тему:
http://stealth.od.ua/forum/viewtopic.php?t=475
Ведь там легко находится: WaitTargetObject
Posted: 28.02.2008 19:50
by MeLFiS
Code: Select all
program fightDexter;
var t : Integer;
bandage,en:Cardinal;
tweapon:word;
{$Include 'all.inc'}
procedure weaponckeck;
begin
if (not dead) and (connected) then begin
checksave;
if (getquantity(findtype(tweapon,backpack)) > 0) and (gettype(ObjAtLayer(RhandLayer)) <> gettype(finditem)) then begin
addtosystemjournal('Weapon Change'+inttostr(findcount));
UnEquip(RHandLayer);
wait(500);
Equip(RhandLayer,finditem);
end;
end;
end;
Begin
tweapon := $0F51;
en:=$001DFCAB;
SetARStatus(true);
clearjournal;
while not Dead do
begin
WaitConnection(1000);
if Connected then
begin
Attack(en);
for t := 0 to 60 do
begin
if Life<(GetMaxHP(Self)-40) then
begin
if TargetPresent then CancelTarget;
checkSave;
bandage:=findtype($0E21,backpack);
UseObject(bandage);
WaitTargetSelf;
Wait(100);
end;
wait(100)
end;
begin
if Life<(GetMaxHP(en)-40) then
begin
if TargetPresent then CancelTarget;
checkSave;
bandage:=findtype($0E21,backpack);
waittargetobject(en);
UseObject(bandage);
Wait(100);
end;
wait(100)
end;
weaponckeck;
hungry(1,ground);
clearjournal;
end;
end;
end.
Все вот готовый и рабочий скрипт на спаринг 2 чаров и хилит тоже обоих чаров .Юзайте каму нада.
Posted: 28.02.2008 20:03
by MeLFiS
А команда GetHP(en)*100/GetMaxHP(en) не работает
Posted: 28.02.2008 23:12
by Edred
Она работает, "просто ты не умеешь ее готовить"...
Насчет рабочего скрипта - сильно сомневаюсь. Рабочий - это не только когда при компиляции нет ошибок, но и когда скрипт работает именно с той логикой, которая была придумана.
А вот тут:
логики я вообще никакой не вижу. Читаем: "если здоровье нашего чара (Life) меньше здоровья врага минус 40 чего-то, делай то-то". Ты сравниваешь здоровье двух разных чаров! То есть если у твоего чара здоровья будет много, партнер по спаррингу сдохнет за милую душу, никакого подхила ему не будет. Ну и если у него здоровья максимум, а твой чар полудохлый, то вместо того, чтобы хилить своего чара, скрипт будет старательно хилить здорового противника.
Posted: 28.02.2008 23:23
by MeLFiS
Да скриптец не валом помоги тада доделать его чтобы логически правильно было )) а нешет етого хп он просто после того как нанес какойто урон сразу хилит и ето тупо, без твоей помоши у меня не получитса доделать его чтобы он нормально хилил и себя и противника.
Posted: 29.02.2008 0:56
by Edred
Не понимаю идеи. Почему один чар на скрипте должен хилить двух чаров? Почему каждый чар не может хилить себя сам? На стелсе ты можешь запустить обоих чаров, обоим запустить скрипт и они прекрасно будут хилить себя сами. Такой скрипт я уже помещал на этот форум, поищи. Там один скрипт сразу на двух чаров, с автонастройкой и кучей всяческих дополнений. Плюс с отходом чаров если подхил "не успевает" за потерей здоровья. Это гораздо надежнее.
Posted: 29.02.2008 14:54
by MeLFiS
Code: Select all
Не понимаю идеи. Почему один чар на скрипте должен хилить двух чаров? Почему каждый чар не может хилить себя сам?
Ну а если ты стоиш не с воином а с кемто еше у каго нету хилинга и ктомуже хилить и себя и противника так лутше хилинг будет расти