[ДРВ] Хилинг со стиркой и одеванием оружия
Posted: 10.03.2012 20:58
Первое, типы
Второе, собственно мойка грязных бинтов. Тут все работает.
Ну и сама проблема: хилинг.
Проблема в том, что перс вроде как берет оружие обратно в руки.. Но если оставить его часа на пол, то после возвращения видно, что он бьет руками, а вещь лежит в инвентаре.
Пробовал вызывать его вот так (без equip в самом хилинге)
Та же хрень.. идей вообще нету, почему это может быть
Code: Select all
const
BandageType = $0E21; //Тип чистых бинтов
BloodyBandageType = $0E20; //Тип грязных бинтов
WashType = $1008; //Тип Тазика для мытья бинтов
Code: Select all
procedure WashBandages;
var
bandages : cardinal;
begin
bandages := FindType(BloodyBandageType,Backpack);
if (bandages <> 0) then begin
UseObject(bandages);
repeat
wait(100);
CheckWorldSave;
until (targetpresent); // or to_out(true));
WaitTargetObject(FindType(WashType,Backpack));
end;
end;
Code: Select all
function Bandageself: boolean;
var tmp: cardinal;
tmp_rhand,tmp_lhand : cardinal;
begin
tmp := FindType(BandageType, Backpack);
wait(100);
if TargetPresent then CancelTarget;
tmp_lhand := ObjAtLayer(LhandLayer);
tmp_rhand := ObjAtLayer(RhandLayer);
begin
repeat
AddToSystemJournal('*Лечусь...*');
WaitTargetSelf;
wait(100);
ClearJournal;
UseObject(tmp);
repeat
wait(500);
until (InJournal('You put the bloody') <> -1) OR (InJournal('You apply the') <> -1) OR (InJournal('Healing was') <> -1) OR (GetHP(Self) = GetMaxHP(Self));
wait(500);
ClearJournal;
until (GetHP(Self) = GetMaxHP(Self));
result := true;
AddToSystemJournal('*Здоров*');
end
if tmp_lhand <> 0 then equip(LhandLayer,tmp_lhand);
CheckLag();
if tmp_rhand <> 0 then equip(RhandLayer,tmp_rhand);
CheckLag();
end;
Пробовал вызывать его вот так (без equip в самом хилинге)
Code: Select all
SetDress();
disarm();
repeat
AddToSystemJournal('*Пора лечить...*');
SetWarMode(false);
BandageOther(enemy);
until GetHP(enemy)=GetMaxHP(enemy)
WashBandages();
UseSkillSpiritSpeak;
CheckLag;
EquipDressSet;