Вернуться   CoderX :: Forums > Lineage II > L2PacketHack > Скриптинг
Войти через OpenID

Скриптинг Форум посвещенный созданию скриптов для L2PacketHack

Чат (Новых сообщений с момента вашего последнего визита нет)
Загрузка...
Задавайте ваши вопросы на форуме. Чат предназначен для небольших разговоров.
 
Ответ
 
Опции темы Опции просмотра
Старый 01.04.2009, 02:01   #1
Рыцарь
 
Аватар для mks
 
Регистрация: 21.09.2007
Сообщений: 376
Сказал Спасибо: 11
Имеет 218 спасибок в 106 сообщенях
mks пока неопределено
По умолчанию Автозаточка скиллов

закупаемся книжками, выставляем уровень заточки и ник
точим на +1, скрипт продолжает пока не точнет до указанного уровня
ЗЫ точить надо с нуля, иначе счетчик не правильно считать начнет

delphi Код:
const    nik='xxxxx';    Enchant=13; var    SubID, SkillID, SkillLvl, CurrEnch: integer; procedure Init; //Вызывается при включении скрипта begin end; procedure OnTimer01(Sender: TObject); begin end; procedure Free; //Вызывается при выключении скрипта begin  CurrEnch:=0; end; procedure OnConnect(WithClient: Boolean); //Вызывается при установке соединения begin end; procedure OnDisonnect(WithClient: Boolean); //Вызывается при потере соединения begin end; //основная часть скрипта //вызывается при приходе каждого пакета если скрипт включен begin     if FromServer and (pck[1]=#$62) then case pck[2] of         #$A0:   //точнулся                 if CurrEnch<Enchant then                    begin                      CurrEnch:=CurrEnch+1;                      Buf:=#$D0;                      WriteH(SubID);                      WriteD(SkillID);                      WriteD(SkillLvl+CurrEnch);                      SendToServerEx(nik);                    end;         #$A1:   //не точнулся              begin                      CurrEnch:=1;                      Buf:=#$D0;                      WriteH(SubID);                      WriteD(SkillID);                      WriteD(SkillLvl+CurrEnch);                      SendToServerEx(nik);              end;     end;     if FromClient and (pck[1]=#$D0) then         begin            SubID:=ReadH(2);            SkillID:=ReadD(4);            SkillLvl:=ReadD(8)-1;            CurrEnch:=1;         end; end.
mks вне форума   Ответить с цитированием
За это сообщение mks нажился 8 спасибками от:
Старый 01.04.2009, 13:16   #2
Пользователь
 
Регистрация: 05.02.2009
Сообщений: 62
Сказал Спасибо: 1
Имеет 18 спасибок в 9 сообщенях
lexayar пока неопределено
По умолчанию

В тему выложу свою версию такого скрипта. Сделано на скорую руку, есть лишние моменты, легко переделать, чтоб работало для всех подключенных персонажей, и не надо было указывать ник. Основное отличие от предыдущего скрипта - не важен начальный уровень заточки, остальное почти все также:
delphi Код:
// @ LexaYar  v.1.0 от 2009.03.18 // Скрипт на точку скилов под hellbound // Настраиваем параметры скрипта: Имя персонажа и Максимальный уровень заточки // Включаем скрипт, подходим к НПЦ, у которого точим скилы, выбираем точить нужный скил, // после чего скрипт автоматически продолжает его точить до тех пор пока не будет // достигнут нужный уровень заточки, либо пока не кончатся книги, либо exp. // Остановить работу скрипта можно только сняв галку с его имени в Пакетхаке. Const   // ============= НАСТРОЙКИ ===============   NickName = 'Ваш ник';   MaxEnchantLevel = 7;   // =======================================   // задержка между точками в сек.   interval = 0;   // отладочные сообщения   MainDebug = false; var   CurLevel: integer;   tick: integer;   SKillID: integer; procedure Init; //Вызывается при включении скрипта begin   CurLevel := -1; end; procedure Free; //Вызывается при выключении скрипта begin end; // пауза в секундах function Wait(var tick: integer; Timewait: Integer): Boolean; // сквозная проверка без остановки скрипта var   t: integer; begin   result:=false;   t:=Round(Time*86400);   if t>(tick+Timewait) then begin     if tick>0 then result:=true;     tick:=t;   end; end; //###################### Сообщения ############################################# // послать сообщение в чат себе procedure SendMsg_to_Chat(ChatType: integer; msg:string);                                  // отправка системных сообщений клиенту begin   buf:=#$4A;   WriteD(0);   WriteD(ChatType);   WriteS(NickName);   WriteS(msg);   SendToClientEx(NickName); end; // послать отладочное сообщение себе procedure DebugMsg(msg:string); begin   if MainDebug then     SendMsg_to_Private(msg); end; // послать сообщение себе в приват procedure SendMsg_to_Private(msg:string); begin   SendMsg_to_Chat(2,msg); end; //основная часть скрипта //вызывается при приходе каждого пакета если скрипт включен begin   if pck = '' then exit;   // Т.к. использоваться будет только для одного чара, остальных сразу отсеиваем   if ConnectName<>NickName then Exit;   // пакет - сообщение со статусом заточки   if FromServer and (pck[1]=#$62) and (pck[3]+pck[4]+pck[5] = HStr('05 00 00')) then begin     if (pck[2] = #$A0)or(pck[2] = #$A1)then begin       SKillID := ReadD(14);       CurLevel := ReadD(18);       // заточка была не удачной, обнуляем текущий уровень заточки       if pck[2] = #$A1 then         CurLevel := (CurLevel div 100)*100// округляем       DebugMsg('SKillID='+inttostr(SKillID)+'; CurLevel='+inttostr(CurLevel));       if (CurLevel mod 100) >= MaxEnchantLevel then         CurLevel := -1;       tick := 0;       Wait(tick, interval);     end;   end;   //  Можно закомментировать "and Wait(tick, interval)", точиться будет намного быстрее,   // только ощущение такое, что шанс точки меньше, хотя может и показалось   if (CurLevel >= 0) and Wait(tick, interval) then  begin     DebugMsg('точим');     buf := HStr('D0 0F 00');     WriteD(SKillID);     WriteD(CurLevel+1);     SendToServerEx(NickName);     CurLevel := -1;   end; end.

Последний раз редактировалось lexayar, 01.04.2009 в 13:31.
lexayar вне форума   Ответить с цитированием
За это сообщение lexayar нажился 6 спасибками от:
Старый 10.04.2009, 14:19   #3
Новичок
 
Аватар для Vklu4atel^^
 
Регистрация: 19.03.2009
Сообщений: 18
Сказал Спасибо: 16
Имеет 0 спасибок в 0 сообщенях
Vklu4atel^^ пока неопределено
По умолчанию

первий скрипт под кие хроны??
Vklu4atel^^ вне форума   Ответить с цитированием
Старый 15.04.2009, 02:16   #4
Рыцарь
 
Аватар для mks
 
Регистрация: 21.09.2007
Сообщений: 376
Сказал Спасибо: 11
Имеет 218 спасибок в 106 сообщенях
mks пока неопределено
По умолчанию

Цитата:
Сообщение от Vklu4atel^^ Посмотреть сообщение
первий скрипт под кие хроны??
грация 2
mks вне форума   Ответить с цитированием
Старый 25.04.2009, 23:23   #5
Новичок
 
Регистрация: 27.07.2008
Сообщений: 4
Сказал Спасибо: 1
Имеет 0 спасибок в 0 сообщенях
korp пока неопределено
По умолчанию

А под Интерлюде есть?
korp вне форума   Ответить с цитированием
Старый 25.04.2009, 23:57   #6
Рыцарь
 
Аватар для mks
 
Регистрация: 21.09.2007
Сообщений: 376
Сказал Спасибо: 11
Имеет 218 спасибок в 106 сообщенях
mks пока неопределено
По умолчанию

Цитата:
Сообщение от korp Посмотреть сообщение
А под Интерлюде есть?
под интерлюд не писал, может у кого и есть....
mks вне форума   Ответить с цитированием
Старый 27.04.2009, 01:02   #7
Новичок
 
Регистрация: 19.04.2009
Сообщений: 11
Сказал Спасибо: 2
Имеет 0 спасибок в 0 сообщенях
Auromy пока неопределено
По умолчанию

У меня скрипт под грацию не заработал

Добавлено через 23 часа 47 минут
А как сделать в скрипте в первом задержку? А то он точит без остановки и сбивается

Последний раз редактировалось Auromy, 27.04.2009 в 01:02. Причина: Добавлено сообщение
Auromy вне форума   Ответить с цитированием
Старый 27.04.2009, 01:31   #8
Рыцарь
 
Аватар для mks
 
Регистрация: 21.09.2007
Сообщений: 376
Сказал Спасибо: 11
Имеет 218 спасибок в 106 сообщенях
mks пока неопределено
По умолчанию

Цитата:
Сообщение от Auromy Посмотреть сообщение
А как сделать в скрипте в первом задержку? А то он точит без остановки и сбивается
тоесть сбивается? по подробней....
mks вне форума   Ответить с цитированием
Старый 27.04.2009, 11:47   #9
Новичок
 
Регистрация: 19.04.2009
Сообщений: 11
Сказал Спасибо: 2
Имеет 0 спасибок в 0 сообщенях
Auromy пока неопределено
По умолчанию

Скрип работает быстро очень, и останавливается на 9 на 3 на 5 и т.п.
Добавить маленькую задержку нужно, чтобы он не останавливался, а точил до того значения что было указано

Добавлено через 40 минут
PHP код:
begin
    
if FromServer and (pck[1]=#$62) then case pck[2] of
        #$A0:   //òî÷íóëñÿ
                
if CurrEnch<Enchant then
                   begin

                     CurrEnch
:=CurrEnch+1;
                     
Buf:=#$43;
                     
WriteH(SubID);
                     
WriteD(SkillID);
                     
WriteD(SkillLvl+CurrEnch);
                     
SendToServerEx(nik);
                     
delay(100)
                   
end
Делэй прописал, просто в скриптах не бум бум, но вставил, хотя и 50 хватит

Последний раз редактировалось Auromy, 27.04.2009 в 11:47. Причина: Добавлено сообщение
Auromy вне форума   Ответить с цитированием
Старый 27.04.2009, 13:18   #10
Рыцарь
 
Аватар для mks
 
Регистрация: 21.09.2007
Сообщений: 376
Сказал Спасибо: 11
Имеет 218 спасибок в 106 сообщенях
mks пока неопределено
По умолчанию

вообще странное дело, этот скрипт определяет заточился скилл или нет по системному сообщению в чат, и соответственно только после прихода этого пакета он точит или не точит дальше....
Приходят в голову только две возможные причины: - на том серве где ты играешь пакет изменения в скилах приходит после системного сообщения(в этом случаи Delay бы тебе не помог), либо на серве спецом выставлена задержка между заточкой скилов
mks вне форума   Ответить с цитированием
Ответ

  CoderX :: Forums > Lineage II > L2PacketHack > Скриптинг


Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 17:10.

vBulletin style designed by MSC Team.
Powered by vBulletin® Version 3.6.11
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Locations of visitors to this page
Rambler's Top100

Вы хотите чувствовать себя в безопасности? чоп Белган обеспечит её!