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

Злостный Hide и Stealth

Only working scripts
Post Reply
Alexej
Novice
Novice
Posts: 79
Joined: 06.06.2008 11:55
Contact:

Злостный Hide и Stealth

Post by Alexej »

Работа всей ночи (вместе с тестированием на добывающих скриптах)
кто что сможет упростить? покритиковать? подсказать?
(GetSkillValue не работает, посему паузы и кол-во шагов от велечины скилов реализовать нет возможности)
var sTime : TDateTime; - в основном скрипте

Code: Select all

procedure Hide; // Прячемся
// ======================
// You have hidden yourself well   501240 // cliloc# 0xA5F8
// You fail to hide.	501241 // cliloc# 0xA5F9
// You must wait a few moments to use another skill.	500118    // cliloc# 0xA196
// ======================
begin
  while not Hidden do
  begin
    if TargetPresent then CancelTarget;
    if isWarMode(Self) = true Then SetWarMode(false);
    sTime := Now;
    AddToSystemJournal('Прячусь');
    UseSkill('Hiding');
    wait(500);
    If (InJournalBetweenTimes('cliloc# 0xA196',sTime,Now)<>-1) Then Continue;
    repeat
      wait(100);
	    checksave;
    until (InJournalBetweenTimes('cliloc# 0xA5F8|cliloc# 0xA5F9',sTime,Now)<>-1);
  end; 
  wait(500);
end;

Code: Select all

procedure Stealth; // Невидимость
// ======================
// You begin to move quietly. // 502730 // cliloc# 0xABCA
// You fail in your attempt to move unnoticed.	502731 // cliloc# 0xABCB
// You must hide first	502725 // cliloc# 0xABC5
// You are not hidden well enough.  Become better at hiding.	502726  // cliloc# 0xABC6
// ======================
begin
  if not Hidden then
  begin
    While not Hidden Do
    begin
      AddToSystemJournal('Прячусь St 1');
      UseSkill('Hiding');
      wait(1000);
      If (InJournalBetweenTimes('cliloc# 0xA196',sTime,Now)<>-1) Then Continue;
      repeat
        wait(500);
	      checksave;
//      CheckDead;
      until (InJournalBetweenTimes('cliloc# 0xA5F8|cliloc# 0xA5F9',sTime,Now)<>-1);
    end;
    wait(5000);
  end;

  if Hidden then
  begin
      sTime := Now;
    While not (InJournalBetweenTimes('cliloc# 0xABCA',sTime,Now)<>-1) Do
    begin
      AddToSystemJournal('Включаю Стелс');
      UseSkill('Stealth');
      wait(1000);
      If (InJournalBetweenTimes('cliloc# 0xABC5|cliloc# 0xABC6',sTime,Now)<>-1) or (not Hidden) Then 
      begin
        While not Hidden Do
        begin
          AddToSystemJournal('Прячусь St 0');
          UseSkill('Hiding');
          wait(1000);
          If (InJournalBetweenTimes('cliloc# 0xA196',sTime,Now)<>-1) Then Continue;
          repeat
            wait(500);
	          checksave;
//          CheckDead;
          until (InJournalBetweenTimes('cliloc# 0xA5F8|cliloc# 0xA5F9',sTime,Now)<>-1);
          end;
          wait(5000);
        end;
      If (InJournalBetweenTimes('cliloc# 0xA196',sTime,Now)<>-1) Then Continue;
      repeat
        wait(500);
	      checksave;
//      CheckDead;
      until (InJournalBetweenTimes('cliloc# 0xABCA|cliloc# 0xABCB',sTime,Now)<>-1);
    end;

  end;      
  wait(500); 
end;
отзывов от админов сервера по нагрузке еще пока не слышал :)
из-за постоянных - надо подождать ('cliloc# 0xA196')...
volhram
Novice
Novice
Posts: 73
Joined: 25.08.2006 22:47

Post by volhram »

а почему не используешь function Hidden() : Boolean, не работает?
вроде так красивее будет, чем клилоки ловить...
Alexej
Novice
Novice
Posts: 79
Joined: 06.06.2008 11:55
Contact:

Post by Alexej »

даже не придумал заюзать функцию, а переделывать уже чтото мозги не стоят...
счаз поймал еще пару багов (нестандартные игровые ситуации), понемногу подправляю...
Post Reply