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

Подскажите где ошибка пожалуста ...

тут можно задать вопрос по скриптингу
Post Reply
m0nya
Neophyte
Neophyte
Posts: 37
Joined: 08.02.2008 11:15
Contact:

Подскажите где ошибка пожалуста ...

Post 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
grundick
Developer
Developer
Posts: 272
Joined: 31.01.2008 21:16

Post by grundick »

в саом конце после енда точку поставь
MeLFiS
Novice
Novice
Posts: 147
Joined: 02.02.2008 12:21

Post 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 

А чтобы он хилил не токо себя но и партнера я правильно написал ?
Edred
Moderator
Moderator
Posts: 559
Joined: 28.03.2006 21:29

Post by Edred »

Врядли. Чужое здоровье УО не умеет показывать (специально) точно, поэтому можно определить только процентовку от него. То есть GetHP(en)*100/GetMaxHP(en) - это сколько процентов осталось от здоровья врага. Для партнера по спаррингу ты, конечно, знаешь сколько у него максимум, так что высчитать можешь.

А вообще, чем спрашивать - проще потестить. И не забудь поставить точку после последнего end.
MeLFiS
Novice
Novice
Posts: 147
Joined: 02.02.2008 12:21

Post by MeLFiS »

Code: Select all

Compiler: [Error] (Òåêñòîâûé äîêóìåíò (5).txt at 55:17):  Unknown identifier 'WaitTarget'
Первая ошибка какую комунду использовать для веит таргета ?
Edred
Moderator
Moderator
Posts: 559
Joined: 28.03.2006 21:29

Post by Edred »

Дык стоит почитать вот эту тему:
http://stealth.od.ua/forum/viewtopic.php?t=475

Ведь там легко находится: WaitTargetObject
MeLFiS
Novice
Novice
Posts: 147
Joined: 02.02.2008 12:21

Post 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 чаров и хилит тоже обоих чаров .Юзайте каму нада.
MeLFiS
Novice
Novice
Posts: 147
Joined: 02.02.2008 12:21

Post by MeLFiS »

А команда GetHP(en)*100/GetMaxHP(en) не работает
Edred
Moderator
Moderator
Posts: 559
Joined: 28.03.2006 21:29

Post by Edred »

Она работает, "просто ты не умеешь ее готовить"...

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

А вот тут:

Code: Select all

if Life<(GetMaxHP(en)-40) then
логики я вообще никакой не вижу. Читаем: "если здоровье нашего чара (Life) меньше здоровья врага минус 40 чего-то, делай то-то". Ты сравниваешь здоровье двух разных чаров! То есть если у твоего чара здоровья будет много, партнер по спаррингу сдохнет за милую душу, никакого подхила ему не будет. Ну и если у него здоровья максимум, а твой чар полудохлый, то вместо того, чтобы хилить своего чара, скрипт будет старательно хилить здорового противника.
MeLFiS
Novice
Novice
Posts: 147
Joined: 02.02.2008 12:21

Post by MeLFiS »

Да скриптец не валом помоги тада доделать его чтобы логически правильно было )) а нешет етого хп он просто после того как нанес какойто урон сразу хилит и ето тупо, без твоей помоши у меня не получитса доделать его чтобы он нормально хилил и себя и противника.
Edred
Moderator
Moderator
Posts: 559
Joined: 28.03.2006 21:29

Post by Edred »

Не понимаю идеи. Почему один чар на скрипте должен хилить двух чаров? Почему каждый чар не может хилить себя сам? На стелсе ты можешь запустить обоих чаров, обоим запустить скрипт и они прекрасно будут хилить себя сами. Такой скрипт я уже помещал на этот форум, поищи. Там один скрипт сразу на двух чаров, с автонастройкой и кучей всяческих дополнений. Плюс с отходом чаров если подхил "не успевает" за потерей здоровья. Это гораздо надежнее.
MeLFiS
Novice
Novice
Posts: 147
Joined: 02.02.2008 12:21

Post by MeLFiS »

Code: Select all

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