Page 1 of 4
Обкастер.
Posted: 03.12.2010 7:45
by plotney
У когонибудь есть скрипт для обкаста?
пример: ставим дома мага, когда нужен обкаст гвоорим ему Cast! он на чара кидает блесс и протекшен. а для защиты от всяких нежелательных типов, проверка по ид персонажа. у меня есть такой скрипт на инжу, по по непонятным причинам постоянно канлостит\крашит.
заранее спасибо
Posted: 03.12.2010 8:42
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.
За возможные ошибки не бить - писал в блокнотике на память, не компилил. Команды "обкастеру" чувствительны к регистру.
Posted: 03.12.2010 19:25
by plotney
как домой вернусь обязательно попробую! спасибо!
Posted: 03.12.2010 21:27
by MuDaCk
Спасибо за скрипт.
Posted: 04.12.2010 7:13
by neverflash
прошу прощения...
а для чего это надо?
Posted: 04.12.2010 16:02
by plotney
ставишь дома прокаченного мага в дорогом магическом обвесе который дает довольно большой бонус для бафа, и когда надо боевыми чарами прилетаешь домой говоришь Каст! он тебя кастует и ты дальше летишь биться.
Posted: 04.12.2010 16:18
by grundick
Помню на зулу бегал, дык там обкаст ох сколько добавлял!
Без обкаста вообще не интересно было бегать

Posted: 04.12.2010 16:23
by plotney
ну нормально прокаченный маг дает в райноне 33, 35, а если со всей бижей магери там вообще за 40 наверно...
скрипт пишет "File not Exist:"
Posted: 04.12.2010 20:51
by plotney
ктонить может помочь? а то я в стелс скриптинге нифига не понимаю x(
Posted: 05.12.2010 14:20
by Fenix
Это при запуске скрипта пишет? Попробуй сохранить скрипт в какой-нить файл.
Posted: 05.12.2010 20:32
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.
Posted: 06.12.2010 8:31
by Fenix
Забыл в присваивании двоеточие поставить:
Code: Select all
Friends := [$0179686D, $018EF866]; //Пример наполнения массива игроков, указать правильные значения
Posted: 06.12.2010 9:03
by plotney
уррра! заработало

спасибо огромное)
а можно какнибудь вписать что-бы он каждые пол часа ел например? я дописал чтобы после каста кушал, а чтобы через какоето время, не могу ерализовать

Posted: 06.12.2010 10:11
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.
Posted: 06.12.2010 11:44
by plotney
а LastEat прописывать в варах не надо?