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

Добрый день!Помогите)

тут можно задать вопрос по скриптингу
Post Reply
oneblood
Posts: 3
Joined: 23.02.2014 11:57

Добрый день!Помогите)

Post by oneblood »

Добрый день !Ребята кому не сложно может кто набросает такой скрип
на два чара
Первый: стоит пьет бутылки пойсон(бутылки будут лежать рядом на полу в доме) умирает и ждет пока второй реснет.
Второй:Как появляется рядом на полу труп качает на нем скил Forensic Evalution , как исчезает труп(труп пропадает через 2000 сек, но сказали мне что дома он пропадает еще больше не знаю если честно) ресает бинтами первого и так знаго пока не будет 100 скила..
Half-Life
Novice
Novice
Posts: 86
Joined: 30.10.2012 12:06
Location: Одесса
Contact:

Re: Добрый день!Помогите)

Post by Half-Life »

FirstPart

Code: Select all

Program FirstPart;
{
Autor: Half-Life;
Description: В двух словах - стоит пьет бутылки пойзона(которые находятся в сундуке в доме), умирает и ждет пока его реснут.
UOStealthClientVersion: 6.2.1;
Warning! Будьте бдительны! - Администрация многих игровых серверов враждебно относится к использованию стелс клиента на своих серверах. Заподозрив вас в использовании стелс клиента и других неправославных программ они начинают сатанеть и в порыве слепой ярости могут попасть по вам Банхаммером;
}
const

Restock=0; // ID сундука с зельями.
PotionType=0; // Тип зелья.
ResurrectionGumpID=0; // ID гампа которое появляется при воскрешении чара.
ButtonOK='0'; // Кнопка которую надо нажать что бы чар реснулся.

procedure CheckConnect;
begin
  if Connected then Exit;
  while not Connected do begin
    Connect;
    AddToSystemJournal('Коннектимся...');
    Wait(10000);
  end;
  AddToSystemJournal('Законнектились.');
end;

procedure CheckDead;
begin
  if not Dead then Exit;
  AddToSystemJournal('Давление - атмосферное.');
  While Dead do begin
    CheckConnect;
    If not IsGump or (GetGumpID(GetGumpsCount-1)<>ResurrectionGumpID) then begin
      Wait(5000);
      CheckLag(10000);
      Continue;
    end;
    WaitGump(ButtonOK);
    Wait(1000);
    CheckLag(10000);
  end;
  AddToSystemJournal('Пациент начал подавать признаки жизни.');
end;

function CheckPotion:Boolean;
begin
  if LastContainer<>Restock then UseObject(Restock);
  Wait(1000);
  CheckLag(10000);
  AddToSystemJournal('Количество оставшихся зелий = ' + IntToStr(CountEx(PotionType,$FFFF,Restock)));
  Result:=FindType(PotionType,Restock)>0;
end;

procedure UsePotion;
begin
  AddToSystemJournal('Пьём зелье.');
  while not Dead do begin
    CheckConnect;
    if not Poisoned then UseObject(FindType(PotionType,Restock));
    Wait(5000);
    CheckLag(10000);
  end;
end;

begin
  CheckConnect;
  CheckDead;
  While CheckPotion do begin
    UsePotion;
    CheckDead;
  end;
end.
SecondPart

Code: Select all

Program SecondPart;
{
Autor: Half-Life;
Description: В двух словах - как только появляется рядом на полу труп, качает на нем скил Forensic Evalution , когда труп пропадает  ресает бинтами терпилу и так в цикле пока не будет 100 скила.
UOStealthClientVersion: 6.2.1;
Warning! Будьте бдительны! - Администрация многих игровых серверов враждебно относится к использованию стелс клиента на своих серверах. Заподозрив вас в использовании стелс клиента и других неправославных программ они начинают сатанеть и в порыве слепой ярости могут попасть по вам Банхаммером;
}
const

DoodleID=0; // ID терпилы.
CorpseType=0; // Тип трупа.
SkillName='Forensic Evalution'; // Название скила (можно не менять если написано правильно).
BandageType=0; // Тип бинтов
SkillDelay=0;  // Задержка на повторное использование скила.
BandageDelay=0; // Задержка на бинты.

procedure CheckConnect;
begin
  if Connected then Exit;
  while not Connected do begin
    Connect;
    AddToSystemJournal('Коннектимся...');
    Wait(10000);
  end;
  AddToSystemJournal('Законнектились.');
end;

function CheckCorpse:Boolean;
begin
  CheckConnect;
  Wait(1000);
  CheckLag(10000);
  Result:=FindType(CorpseType,Ground)>0;
end;

procedure Resurrection;
begin
  while IsDead(DoodleID) do begin
    CheckConnect;
    if FindType(BandageType,backpack)=0 then begin
      AddToSystemJournal('Закончились бинты. Скрипт остановлен');
      Halt;
    end;
    UseType(BandageType,$FFFF);
    WaitForTarget(5000);
    TargetToObject(DoodleID);
    Wait(BandageDelay+3000);
    CheckLag(10000);
  end;
  AddToSystemJournal('Пациент оживлён.');
end;

procedure TrainSkill(SkillName:String);
begin
  AddToSystemJournal('Измываемся над трупом.');
  while FindType(CorpseType,Ground)>0 do begin
    CheckConnect;
    UseSkill(SkillName);
    WaitForTarget(5000);
    TargetToObject(FindItem);
    Wait(SkillDelay);
    CheckLag(10000);
  end;
  AddToSystemJournal('Ресаем потерпевшего');
  Resurrection;
end;

begin
  CheckConnect;
  While CheckCorpse do begin
    TrainSkill(SkillName);
    if GetSkillValue(SkillName)=100 then Halt;
  end;
  Wait(1000);
end.
Писались в редакторе без проверок в ультиме. Возможны неполадки.
Post Reply