Выкладываю новый пример скриптов для сдачи квестов!
Эта тема является дополнением к этой http://zhyk.ru/forum/showthread.php?t=375291.
В теме присутствуют 3 готовых разлчиных скрипта для асмо, в котрых не нужно нечего менять: на АП, кач, и знаки арены!
Как пользоваться:
Добавляем скрипт в пункт Автоматизация-скрипты, и ставим напротив него галочку
берем квест
берем себя в таргет (клавиша F1), затем конечного НПЦ
вводим в чат команду .ы для начала процесса дюпа квеста
вводим в чат команду .ы для завершения процесса дюпа
Также:
необходимо взять квест хотя-бы раз! (проходить необязательно)
необходимо быть рядом с конечным НПЦ во время сдачи, и держать на нем таргет
во время испольщования скрипта будут высвечиваться сообщения с подсказками
если вы используете команду отката квеста, .request quest <id> вручную, то нужно держать таргет на себе
[Ссылки могут видеть только зарегистрированные пользователи. ], брать у Гримхильд, сдавать Агамо.
PHP код:
//Script by Usilok var MyPck:array[1..10] of string; //выделяем память под пакеты квеста (опционально 10 строк) name:string; //имя соединения (аккаунта) NPCid,CHARid:integer; Timer:TTimer; i,CountPck:integer; //счетчик пакетов и их количество
procedure OnTimer(Sender: TObject); begin buf:=MyPck[i]; if (i=2) then //вставляем айди персонажа во 2й пакет WriteD(CHARid,6); if (i>=4) then //вставляем айди НПЦ во все пакеты, начиная с 4го WriteD(NPCid,6); SendToServerEx(name); inc(i); if (i>CountPck) then i:=1; end;
begin //включение/выключение скрипта (команда в чат .ы) if FromClient and (pck[1]=#$B2) then begin if (ReadS(7)='.ы') then //тут можете поменять привязанную к скрипту команду ".ы" на любую другую... begin if (CHARid=0) then Msg('Айди персонажа не найден, возьмите себя в таргет (клавиша F1)!') else if (NPCid=0) then Msg('Айди НПЦ не найден, возьмите в таргет НПЦ "Агамо"!') else if (NPCid<>0) and (CHARid<>0) then begin name:=ConnectName; i:=1; if(Timer.enabled) then Timer.enabled:=false else Timer.enabled:=true; end; pck:=''; end; end; //ловим айди из таргета if FromClient and (pck[1]=#$CE) then begin if (pck[6]<>#$00) then if ((pck[8]=#$00) or (pck[8]=#$01)) and (ReadD(6)<>NPCid) then begin NPCid:=readD(6); Msg('Айди НПЦ найден!'); end else if (pck[8]<>#$00) and (pck[8]<>#$01) and (ReadD(6)<>CHARid) then begin CHARid:=readD(6); Msg('Айди персонажа найден!'); end; name:=ConnectNameByID(ConnectID); end; if FromClient and (pck[1]=#$45) and (ReadD(6)<>CHARid) then begin CHARid:=readD(6); Msg('Айди персонажа найден!'); end; end.
[Ссылки могут видеть только зарегистрированные пользователи. ], брать из предмета "нестабильная стигма" (берется в кротане из сундука), сдавать Зигфриду.
PHP код:
//Script by Usilok var MyPck:array[1..10] of string; //выделяем память под пакеты квеста (опционально 10 строк) name:string; //имя соединения (аккаунта) NPCid,CHARid:integer; Timer:TTimer; i,CountPck:integer; //счетчик пакетов и их количество
procedure OnTimer(Sender: TObject); begin buf:=MyPck[i]; if (i=2) then //вставляем айди персонажа во 2й пакет WriteD(CHARid,6); if (i>=4) then //вставляем айди НПЦ во все пакеты, начиная с 4го WriteD(NPCid,6); SendToServerEx(name); inc(i); if (i>CountPck) then i:=1; end;
begin //включение/выключение скрипта (команда в чат .ы) if FromClient and (pck[1]=#$B2) then begin if (ReadS(7)='.ы') then //тут можете поменять привязанную к скрипту команду ".ы" на любую другую... begin if (CHARid=0) then Msg('Айди персонажа не найден, возьмите себя в таргет (клавиша F1)!') else if (NPCid=0) then Msg('Айди НПЦ не найден, возьмите в таргет НПЦ "Зигфрид"!') else if (NPCid<>0) and (CHARid<>0) then begin name:=ConnectName; i:=1; if(Timer.enabled) then Timer.enabled:=false else Timer.enabled:=true; end; pck:=''; end; end; //ловим айди из таргета if FromClient and (pck[1]=#$CE) then begin if (pck[6]<>#$00) then if ((pck[8]=#$00) or (pck[8]=#$01)) and (ReadD(6)<>NPCid) then begin NPCid:=readD(6); Msg('Айди НПЦ найден!'); end else if (pck[8]<>#$00) and (pck[8]<>#$01) and (ReadD(6)<>CHARid) then begin CHARid:=readD(6); Msg('Айди персонажа найден!'); end; name:=ConnectNameByID(ConnectID); end; if FromClient and (pck[1]=#$45) and (ReadD(6)<>CHARid) then begin CHARid:=readD(6); Msg('Айди персонажа найден!'); end; end.
[Ссылки могут видеть только зарегистрированные пользователи. ], брать у Кидзана (в храме Маркутана), сдавать Тиморре.
PHP код:
//Script by Usilok var MyPck:array[1..10] of string; //выделяем память под пакеты квеста (опционально 10 строк) name:string; //имя соединения (аккаунта) NPCid,CHARid:integer; Timer:TTimer; i,CountPck:integer; //счетчик пакетов и их количество
procedure OnTimer(Sender: TObject); begin buf:=MyPck[i]; if (i=2) then //вставляем айди персонажа во 2й пакет WriteD(CHARid,6); if (i>=4) then //вставляем айди НПЦ во все пакеты, начиная с 4го WriteD(NPCid,6); SendToServerEx(name); inc(i); if (i>CountPck) then i:=1; end;
begin //включение/выключение скрипта (команда в чат .ы) if FromClient and (pck[1]=#$B2) then begin if (ReadS(7)='.ы') then //тут можете поменять привязанную к скрипту команду ".ы" на любую другую... begin if (CHARid=0) then Msg('Айди персонажа не найден, возьмите себя в таргет (клавиша F1)!') else if (NPCid=0) then Msg('Айди НПЦ не найден, возьмите в таргет НПЦ "Тиморра"!') else if (NPCid<>0) and (CHARid<>0) then begin name:=ConnectName; i:=1; if(Timer.enabled) then Timer.enabled:=false else Timer.enabled:=true; end; pck:=''; end; end; //ловим айди из таргета if FromClient and (pck[1]=#$CE) then begin if (pck[6]<>#$00) then if ((pck[8]=#$00) or (pck[8]=#$01)) and (ReadD(6)<>NPCid) then begin NPCid:=readD(6); Msg('Айди НПЦ найден!'); end else if (pck[8]<>#$00) and (pck[8]<>#$01) and (ReadD(6)<>CHARid) then begin CHARid:=readD(6); Msg('Айди персонажа найден!'); end; name:=ConnectNameByID(ConnectID); end; if FromClient and (pck[1]=#$45) and (ReadD(6)<>CHARid) then begin CHARid:=readD(6); Msg('Айди персонажа найден!'); end; end.
P.S. Пусть они служат вам примером для своих модификаций, но авторское право закрепляю за собой, поэтому не трогайте 1ю строчку в скрипте
А вот ЕЩЕ СКриптик Загадочная РУДА))) Асмо его все знают
PHP код:
//Script by Usilok
var
MyPck:array[1..10] of string; //выделяем память под пакеты квеста (опционально 10 строк)
name:string; //имя соединения (аккаунта)
NPCid,CHARid:integer;
Timer:TTimer;
i,CountPck:integer; //счетчик пакетов и их количество
procedure OnTimer(Sender: TObject);
begin
buf:=MyPck[i];
if (i=2) then //вставляем айди персонажа во 2й пакет
WriteD(CHARid,6);
if (i>=4) then //вставляем айди НПЦ во все пакеты, начиная с 4го
WriteD(NPCid,6);
SendToServerEx(name);
inc(i);
if (i>CountPck) then
i:=1;
end;
begin
//включение/выключение скрипта (команда в чат .ы)
if FromClient and (pck[1]=#$B2) then
begin
if (ReadS(7)='.ы') then //тут можете поменять привязанную к скрипту команду ".ы" на любую другую...
begin
if (CHARid=0) then
Msg('Айди персонажа не найден, возьмите себя в таргет (клавиша F1)!')
else if (NPCid=0) then
Msg('Айди НПЦ не найден, возьмите в таргет НПЦ "Зигфрид"!')
else if (NPCid<>0) and (CHARid<>0) then
begin
name:=ConnectName;
i:=1;
if(Timer.enabled) then
Timer.enabled:=false
else
Timer.enabled:=true;
end;
pck:='';
end;
end;
//ловим айди из таргета
if FromClient and (pck[1]=#$CE) then
begin
if (pck[6]<>#$00) then
if ((pck[8]=#$00) or (pck[8]=#$01)) and (ReadD(6)<>NPCid) then
begin
NPCid:=readD(6);
Msg('Айди НПЦ найден!');
end
else if (pck[8]<>#$00) and (pck[8]<>#$01) and (ReadD(6)<>CHARid) then
begin
CHARid:=readD(6);
Msg('Айди персонажа найден!');
end;
name:=ConnectNameByID(ConnectID);
end;
if FromClient and (pck[1]=#$45) and (ReadD(6)<>CHARid) then
begin
CHARid:=readD(6);
Msg('Айди персонажа найден!');
end;
end.
Пишет чет на английском! Пробывал себя в таргет брать при отмене и все тож самое((( команда .qres и ид кв)
Добавлено через 13 минут
Цитата:
Сообщение от iulian
А вот ЕЩЕ СКриптик Загадочная РУДА))) Асмо его все знают
PHP код:
//Script by Usilok
var
MyPck:array[1..10] of string; //выделяем память под пакеты квеста (опционально 10 строк)
name:string; //имя соединения (аккаунта)
NPCid,CHARid:integer;
Timer:TTimer;
i,CountPck:integer; //счетчик пакетов и их количество
procedure OnTimer(Sender: TObject);
begin
buf:=MyPck[i];
if (i=2) then //вставляем айди персонажа во 2й пакет
WriteD(CHARid,6);
if (i>=4) then //вставляем айди НПЦ во все пакеты, начиная с 4го
WriteD(NPCid,6);
SendToServerEx(name);
inc(i);
if (i>CountPck) then
i:=1;
end;
begin
//включение/выключение скрипта (команда в чат .ы)
if FromClient and (pck[1]=#$B2) then
begin
if (ReadS(7)='.ы') then //тут можете поменять привязанную к скрипту команду ".ы" на любую другую...
begin
if (CHARid=0) then
Msg('Айди персонажа не найден, возьмите себя в таргет (клавиша F1)!')
else if (NPCid=0) then
Msg('Айди НПЦ не найден, возьмите в таргет НПЦ "Зигфрид"!')
else if (NPCid<>0) and (CHARid<>0) then
begin
name:=ConnectName;
i:=1;
if(Timer.enabled) then
Timer.enabled:=false
else
Timer.enabled:=true;
end;
pck:='';
end;
end;
//ловим айди из таргета
if FromClient and (pck[1]=#$CE) then
begin
if (pck[6]<>#$00) then
if ((pck[8]=#$00) or (pck[8]=#$01)) and (ReadD(6)<>NPCid) then
begin
NPCid:=readD(6);
Msg('Айди НПЦ найден!');
end
else if (pck[8]<>#$00) and (pck[8]<>#$01) and (ReadD(6)<>CHARid) then
begin
CHARid:=readD(6);
Msg('Айди персонажа найден!');
end;
name:=ConnectNameByID(ConnectID);
end;
if FromClient and (pck[1]=#$45) and (ReadD(6)<>CHARid) then
begin
CHARid:=readD(6);
Msg('Айди персонажа найден!');
end;
end.
Пакеты меняются?
Последний раз редактировалось AnataK; 13.03.2012 в 16:57.
Причина: Добавлено сообщение