[ДРВ] Хилинг со стиркой и одеванием оружия
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;