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
Она работает, "просто ты не умеешь ее готовить"...

Насчет рабочего скрипта - сильно сомневаюсь. Рабочий - это не только когда при компиляции нет ошибок, но и когда скрипт работает именно с той логикой, которая была придумана.

А вот тут:

Code: Select all

if Life<(GetMaxHP(en)-40) then
логики я вообще никакой не вижу. Читаем: "если здоровье нашего чара (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

Не понимаю идеи. Почему один чар на скрипте должен хилить двух чаров? Почему каждый чар не может хилить себя сам?
Ну а если ты стоиш не с воином а с кемто еше у каго нету хилинга и ктомуже хилить и себя и противника так лутше хилинг будет расти