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

Обкастер.

Only working scripts
plotney
Neophyte
Neophyte
Posts: 18
Joined: 19.11.2010 18:45

Обкастер.

Post by plotney »

У когонибудь есть скрипт для обкаста?
пример: ставим дома мага, когда нужен обкаст гвоорим ему Cast! он на чара кидает блесс и протекшен. а для защиты от всяких нежелательных типов, проверка по ид персонажа. у меня есть такой скрипт на инжу, по по непонятным причинам постоянно канлостит\крашит.
заранее спасибо
Fenix
Developer
Developer
Posts: 275
Joined: 24.08.2010 7:20
Location: Ставрополь
Contact:

Post by Fenix »

Должно быть что-то вроде этого:

Code: Select all

var
  Casting: Boolean;
  Friends: array of Cardinal;

procedure DoCast(Character: Cardinal);
begin
  //пример каста заклинаний на игрока.
  CheckLag(15000);
  if TargetPresent then CancelTarget;
  Cast('Protection');
  CheckLag(15000);
  WaitForTarget(5000);
  TargetToObject(Character);
  CheckLag(15000);
  Wait(3000);
end;

procedure OnSpeech(Text, SenderName: String;  SenderID: Cardinal);
begin
  if (not Casting) and (Text = 'Cast!') then begin
    for i := 0 to Length(Friends) - 1 do begin
      if i >= Length(Friends) then Break;
      if SenderID = Friends[i] then begin
        Casting := True;
        DoCast(SenderID);
        Casting := False;
        Break;
      end;
    end;
  end;
end;

begin
  Friends = [$00000001, $00000002]; //Пример наполнения массива игроков, указать правильные значения
  SetEventProc(evUnicodeSpeech, 'OnSpeech');
  SetEventProc(evSpeech, 'OnSpeech');
  while not Dead do
  begin
    if not Connected then
    begin
      Connect;
      Wait(5000);
      Continue;
    end;
    Wait(10000);
  end;
  SetEventProc(evUnicodeSpeech, '');
  SetEventProc(evSpeech, '');
end.
За возможные ошибки не бить - писал в блокнотике на память, не компилил. Команды "обкастеру" чувствительны к регистру.
Помните – ничто так не защищает ваши зубы 12 часов днем и 12 часов ночью как уважительное отношение к окружающим.
"Многие из вас знакомы с достоинствами программиста. Их всего три, и разумеется это: лень, нетерпеливость и гордыня"© Larry Wall
plotney
Neophyte
Neophyte
Posts: 18
Joined: 19.11.2010 18:45

Post by plotney »

как домой вернусь обязательно попробую! спасибо!
MuDaCk
Apprentice
Apprentice
Posts: 393
Joined: 10.10.2006 0:03
Contact:

Post by MuDaCk »

Спасибо за скрипт.
My name is Игорёшка Image
Пишу скрипты за едуImage
neverflash
Novice
Novice
Posts: 70
Joined: 14.09.2010 16:04
Location: BY, Minsk

Post by neverflash »

прошу прощения...

а для чего это надо?
plotney
Neophyte
Neophyte
Posts: 18
Joined: 19.11.2010 18:45

Post by plotney »

ставишь дома прокаченного мага в дорогом магическом обвесе который дает довольно большой бонус для бафа, и когда надо боевыми чарами прилетаешь домой говоришь Каст! он тебя кастует и ты дальше летишь биться.
grundick
Developer
Developer
Posts: 272
Joined: 31.01.2008 21:16

Post by grundick »

Помню на зулу бегал, дык там обкаст ох сколько добавлял!
Без обкаста вообще не интересно было бегать :)
plotney
Neophyte
Neophyte
Posts: 18
Joined: 19.11.2010 18:45

Post by plotney »

ну нормально прокаченный маг дает в райноне 33, 35, а если со всей бижей магери там вообще за 40 наверно...


скрипт пишет "File not Exist:"
plotney
Neophyte
Neophyte
Posts: 18
Joined: 19.11.2010 18:45

Post by plotney »

ктонить может помочь? а то я в стелс скриптинге нифига не понимаю x(
Fenix
Developer
Developer
Posts: 275
Joined: 24.08.2010 7:20
Location: Ставрополь
Contact:

Post by Fenix »

Это при запуске скрипта пишет? Попробуй сохранить скрипт в какой-нить файл.
Помните – ничто так не защищает ваши зубы 12 часов днем и 12 часов ночью как уважительное отношение к окружающим.
"Многие из вас знакомы с достоинствами программиста. Их всего три, и разумеется это: лень, нетерпеливость и гордыня"© Larry Wall
plotney
Neophyte
Neophyte
Posts: 18
Joined: 19.11.2010 18:45

Post by plotney »

пишет

18:29:58:843 [puremage]: Compiling
18:29:58:875 [puremage]: Compiler: [Error] (caster.sc at 35:24): Type mismatch
18:29:58:921 [puremage]: Compiling failed
18:29:58:921 [puremage]: Script caster.sc stopped successfuly

Code: Select all

var
  i: Integer;
  Casting: Boolean;
  Friends: array of Cardinal;

procedure DoCast(Character: Cardinal);
begin
  //пример каста заклинаний на игрока.
  CheckLag(15000);
  if TargetPresent then CancelTarget;
  Cast('Protection');
  CheckLag(15000);
  WaitForTarget(5000);
  TargetToObject(Character);
  CheckLag(15000);
  Wait(3000);
end;

procedure OnSpeech(Text, SenderName: String;  SenderID: Cardinal);
begin
  if (not Casting) and (Text = 'Cast!') then begin
    for i := 0 to Length(Friends) - 1 do begin
      if i >= Length(Friends) then Break;
      if SenderID = Friends[i] then begin
        Casting := True;
        DoCast(SenderID);
        Casting := False;
        Break;
      end;
    end;
  end;
end;

begin
  Friends = [$0179686D, $018EF866]; //Пример наполнения массива игроков, указать правильные значения
  SetEventProc(evUnicodeSpeech, 'OnSpeech');
  SetEventProc(evSpeech, 'OnSpeech');
  while not Dead do
  begin
    if not Connected then
    begin
      Connect;
      Wait(5000);
      Continue;
    end;
    Wait(10000);
  end;
  SetEventProc(evUnicodeSpeech, '');
  SetEventProc(evSpeech, '');
end.
Fenix
Developer
Developer
Posts: 275
Joined: 24.08.2010 7:20
Location: Ставрополь
Contact:

Post by Fenix »

Забыл в присваивании двоеточие поставить:

Code: Select all

Friends := [$0179686D, $018EF866]; //Пример наполнения массива игроков, указать правильные значения
Помните – ничто так не защищает ваши зубы 12 часов днем и 12 часов ночью как уважительное отношение к окружающим.
"Многие из вас знакомы с достоинствами программиста. Их всего три, и разумеется это: лень, нетерпеливость и гордыня"© Larry Wall
plotney
Neophyte
Neophyte
Posts: 18
Joined: 19.11.2010 18:45

Post by plotney »

уррра! заработало ;) спасибо огромное)
а можно какнибудь вписать что-бы он каждые пол часа ел например? я дописал чтобы после каста кушал, а чтобы через какоето время, не могу ерализовать :(
Fenix
Developer
Developer
Posts: 275
Joined: 24.08.2010 7:20
Location: Ставрополь
Contact:

Post by Fenix »

Довольно тривиальные изменения:

Code: Select all

const
  EatDelay = 0.02; //один час = 1/24, полчаса соотв. 1/48 


var 
  i: Integer; 
  Casting: Boolean; 
  Friends: array of Cardinal; 


procedure Eat;
begin
  //... тут алгоритм для "кормления" чара
end;


procedure DoCast(Character: Cardinal); 
begin 
  //пример каста заклинаний на игрока. 
  CheckLag(15000); 
  if TargetPresent then CancelTarget; 
  Cast('Protection'); 
  CheckLag(15000); 
  WaitForTarget(5000); 
  TargetToObject(Character); 
  CheckLag(15000); 
  Wait(3000); 
end; 


procedure OnSpeech(Text, SenderName: String;  SenderID: Cardinal); 
begin 
  if (not Casting) and (Text = 'Cast!') then begin 
    for i := 0 to Length(Friends) - 1 do begin 
      if i >= Length(Friends) then Break; 
      if SenderID = Friends[i] then begin 
        Casting := True; 
        DoCast(SenderID); 
        Casting := False; 
        Break; 
      end; 
    end; 
  end; 
end; 


begin
  LastEat := Now; //инициализируем переменную. Считаем, что чар сыт
  Friends = [$0179686D, $018EF866]; //Пример наполнения массива игроков, указать правильные значения 
  SetEventProc(evUnicodeSpeech, 'OnSpeech'); 
  SetEventProc(evSpeech, 'OnSpeech'); 
  while not Dead do 
  begin 
    if not Connected then 
    begin 
      Connect; 
      Wait(5000); 
      Continue; 
    end;
    if LastEat + EatDelta < Now then begin
      Eat;
      LastEat := Now;
    end;
    Wait(10000); 
  end; 
  SetEventProc(evUnicodeSpeech, ''); 
  SetEventProc(evSpeech, ''); 
end.
Помните – ничто так не защищает ваши зубы 12 часов днем и 12 часов ночью как уважительное отношение к окружающим.
"Многие из вас знакомы с достоинствами программиста. Их всего три, и разумеется это: лень, нетерпеливость и гордыня"© Larry Wall
plotney
Neophyte
Neophyte
Posts: 18
Joined: 19.11.2010 18:45

Post by plotney »

а LastEat прописывать в варах не надо?
Post Reply