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

Parryng DRW Народ помогите пожалуйста!

Only working scripts
Post Reply
fr0st1c
Posts: 2
Joined: 18.03.2014 21:34

Parryng DRW Народ помогите пожалуйста!

Post by fr0st1c »

проблема в том что у персонажей постоянно заканчивается стамина, и бывает так что перс подбегает к другому отбежал обратно раз хельнулся раз подбежал и так пока не перезапустишь два скриптавот ниже скрипт помогите плз кто понимает в них(

program parring;
{$Include 'all.inc'}

Const
MinHP = 40; // debug
Dagger = $0F52;
ShieldType = $1b77;
clean_bandages = $0E21;
bloody_bandages = $0E20;
a_wash_basin = $1008;
fight_x = 2318;
fight_y = 914;


var
x, y: Word;
ctime: TDateTime;
enemy: Cardinal;

procedure Wash;
begin
UseObject(FindType(bloody_bandages,Backpack));
checksave;
WaitTargetObject(FindType(a_wash_basin,Backpack));
end;

procedure Heal;
var
ctime : TDateTime;
k : integer;
begin
SetWarMode(false);
repeat
checksave;
UseObject(FindType(clean_bandages,Backpack));
WaitTargetObject(self);
k := 0;
repeat
k:=k+1;
wait(100);
checksave;
until (((InJournalBetweenTimes('bloody|barely|does not need|bandage yet', ctime, Now))<>-1) or (k > 100));
wait(50);
until (GetHP(self) = GetMaxHP(self));
Wash;
end;

begin
moveThroughNPC := 0;
x := GetX(self);
y := GetY(self);
while true do
begin
AddToSystemJournal('Начали');
repeat
wait(10)
until newMoveXY(fight_x, fight_y, false, 0, true);
SetWarMode(true);
ctime := Now;
AddToSystemJournal('Атакуй');
FindDistance := 0;
Ignore(self);
if enemy = 0 then
begin
repeat
enemy := FindType($0190, ground);
if enemy = 0 then enemy := FindType($0191, ground);
wait(100);
until (enemy <> 0) and (enemy <> self) and (IsNPC(enemy) <> false);
end;
AddToSystemJournal('Подождем пока нас изобьют');
repeat
Attack(enemy);
wait(100)
if (fight_y <> GetY(self)) or (fight_x <> GetX(self)) then
begin
SetWarMode(false);
repeat
AddToSystemJournal('Возвращаемся на боевую клетку')
wait(100)
until newMoveXY(fight_x, fight_y, false, 0, true);
Attack(enemy);
end;
until (GetHP(enemy) < 10) or (GetHP(self) < MinHP) or (gettype(ObjAtLayer(RhandLayer)) <> Dagger) or ((GetDistance(enemy) > 0) and (GetHP(self) <> GetMaxHP(self)));
AddToSystemJournal('Отходим на лечение');
repeat
SetWarMode(false);
wait(100);
until newMoveXY(x, y, false, 0, true);
AddToSystemJournal('Лечимся');
Heal;
AddToSystemJournal('Одели щит');
UseObject(FindType(ShieldType, backpack));
UseObject(FindType(Dagger, backpack));
wait(500);
checksave;
if gettype(ObjAtLayer(RhandLayer)) <> Dagger then
exit;
end;
end.
drabadan
Expert
Expert
Posts: 730
Joined: 13.12.2012 17:35
Contact:

Re: Parryng DRW Народ помогите пожалуйста!

Post by drabadan »

fr0st1c wrote:проблема в том что у персонажей постоянно заканчивается стамина, и бывает так что перс подбегает к другому отбежал обратно раз хельнулся раз подбежал и так пока не перезапустишь два скриптавот ниже скрипт помогите плз кто понимает в них(
ой едрить колотить - расставляй отступы в коде, обрамляй его тегом "код", лучше - в спойлер засунь обрамленный в тег код.
Тут хрен пойми чего ты хочешь, еще и вырвиглаз...
fr0st1c
Posts: 2
Joined: 18.03.2014 21:34

Re: Parryng DRW Народ помогите пожалуйста!

Post by fr0st1c »

Ну а так на взгляд скрипт нормальный ?
drabadan
Expert
Expert
Posts: 730
Joined: 13.12.2012 17:35
Contact:

Re: Parryng DRW Народ помогите пожалуйста!

Post by drabadan »

fr0st1c wrote:Ну а так на взгляд скрипт нормальный ?
так как жеж его увидеть когда...
Image
Post Reply