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

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

Чат (Новых сообщений с момента вашего последнего визита нет)
Загрузка...
Задавайте ваши вопросы на форуме. Чат предназначен для небольших разговоров.
 
Ответ
 
Опции темы Опции просмотра
Старый 23.06.2009, 21:05   #1
Новичок
 
Аватар для dev
 
Регистрация: 21.06.2009
Сообщений: 5
Сказал Спасибо: 7
Имеет 4 спасибок в 3 сообщенях
dev пока неопределено
По умолчанию

Обновил, дополнил:
Код:
// Ядро от mks.
// Модификация ядра от HORSE.
// Конечный продукт от dev.
// http://coderx.ru/showthread.php?t=1684

// Настройики
const
    characterName='dev'; // Имя персоонажа
    useEnchant=hstr('19 E6 C0 09 10 00 00 00 00'); // [0x19 (UseItem)]
    requestEnchant=hstr('5F E2 22 09 10 00 00 00 00'); // [0x5F (RequestEnchantItem)]
    itemID=9421; // ID предмета [0x21 (InventoryUpdate)]
    enchant=10; // До сколько скрипт должен заточить указанный предмет
    speed=150; // Скорость заточки
    start=2; // Соц. действие hello, запускает скрипт
    stop=3; // Соц. действие victory, остонавливает скрипт

// Ниже ничего можно не трогать    
var  
    timer:TTimer;  
    x:byte;

procedure Init;  
    begin  
        timer:=TTimer.Create(nil);  
        timer.interval:=speed;
        timer.OnTimer:=@fireTimer;  
        timer.enabled:=false;  
        x:=1;
    end;

procedure Free;  
    begin  
        timer.Free;  
    end; 

procedure fireTimer(Sender: TObject);  
    begin  
        case x of  
            1:begin  
                buf:=useEnchant;
                SendToServerEx(characterName);  
                inc(x);  
            end;  
            2:begin  
                buf:=requestEnchant;
                SendToServerEx(characterName);  
                x:=1;  
            end;  
        end;{case}
    end;

begin
    if FromClient then
        begin  
            case pck[1] of  
                #$34: begin
                    if (ReadD(2)=start) then timer.enabled:=true;
                    if (ReadD(2)=stop) then timer.enabled:=false;
                end;  
            end;
        end;
    if FromServer then  
        begin  
            case pck[1] of  
                #$21: begin
                    if (ReadD(12)=itemID) and (ReadD(34)=Enchant) then timer.enabled:=false;
                end; 
            end;
        end;
end.

Последний раз редактировалось dev, 28.06.2009 в 01:19. Причина: Исправлен лёгкий надочёт.
dev вне форума   Ответить с цитированием
За это сообщение dev нажился 2 спасибками от:
Старый 04.07.2009, 19:00   #2
Новичок
 
Регистрация: 04.07.2009
Сообщений: 18
Сказал Спасибо: 0
Имеет 0 спасибок в 0 сообщенях
SyMaSvoD пока неопределено
По умолчанию

Цитата:
Сообщение от dev Посмотреть сообщение
Обновил, дополнил:
Код:
// Ядро от mks.
// Модификация ядра от HORSE.
// Конечный продукт от dev.
// http://coderx.ru/showthread.php?t=1684

// Настройики
const
    characterName='dev'; // Имя персоонажа
    useEnchant=hstr('19 E6 C0 09 10 00 00 00 00'); // [0x19 (UseItem)]
    requestEnchant=hstr('5F E2 22 09 10 00 00 00 00'); // [0x5F (RequestEnchantItem)]
    itemID=9421; // ID предмета [0x21 (InventoryUpdate)]
    enchant=10; // До сколько скрипт должен заточить указанный предмет
    speed=150; // Скорость заточки
    start=2; // Соц. действие hello, запускает скрипт
    stop=3; // Соц. действие victory, остонавливает скрипт

// Ниже ничего можно не трогать    
var  
    timer:TTimer;  
    x:byte;

procedure Init;  
    begin  
        timer:=TTimer.Create(nil);  
        timer.interval:=speed;
        timer.OnTimer:=@fireTimer;  
        timer.enabled:=false;  
        x:=1;
    end;

procedure Free;  
    begin  
        timer.Free;  
    end; 

procedure fireTimer(Sender: TObject);  
    begin  
        case x of  
            1:begin  
                buf:=useEnchant;
                SendToServerEx(characterName);  
                inc(x);  
            end;  
            2:begin  
                buf:=requestEnchant;
                SendToServerEx(characterName);  
                x:=1;  
            end;  
        end;{case}
    end;

begin
    if FromClient then
        begin  
            case pck[1] of  
                #$34: begin
                    if (ReadD(2)=start) then timer.enabled:=true;
                    if (ReadD(2)=stop) then timer.enabled:=false;
                end;  
            end;
        end;
    if FromServer then  
        begin  
            case pck[1] of  
                #$21: begin
                    if (ReadD(12)=itemID) and (ReadD(34)=Enchant) then timer.enabled:=false;
                end; 
            end;
        end;
end.
слушай что то у меня не получаеться. пробовал не фига не точиться. играю на серве lineagetwo.ru. опиши плиз по подробно как пользоваться скприптом. что и какие данные куда вписывать)
__________________
Жизнь хороша, когда бухаешь не спеша
SyMaSvoD вне форума   Ответить с цитированием
Старый 11.07.2009, 21:10   #3
Пользователь
 
Регистрация: 11.07.2009
Сообщений: 65
Сказал Спасибо: 64
Имеет 0 спасибок в 0 сообщенях
Imperial2008 пока неопределено
По умолчанию

Цитата:
Сообщение от dev Посмотреть сообщение
Обновил, дополнил:
Код:
// Ядро от mks.
// Модификация ядра от HORSE.
// Конечный продукт от dev.
// http://coderx.ru/showthread.php?t=1684

// Настройики
const
    characterName='dev'; // Имя персоонажа
    useEnchant=hstr('19 E6 C0 09 10 00 00 00 00'); // [0x19 (UseItem)]
    requestEnchant=hstr('5F E2 22 09 10 00 00 00 00'); // [0x5F (RequestEnchantItem)]
    itemID=9421; // ID предмета [0x21 (InventoryUpdate)]
    enchant=10; // До сколько скрипт должен заточить указанный предмет
    speed=150; // Скорость заточки
    start=2; // Соц. действие hello, запускает скрипт
    stop=3; // Соц. действие victory, остонавливает скрипт

// Ниже ничего можно не трогать    
var  
    timer:TTimer;  
    x:byte;

procedure Init;  
    begin  
        timer:=TTimer.Create(nil);  
        timer.interval:=speed;
        timer.OnTimer:=@fireTimer;  
        timer.enabled:=false;  
        x:=1;
    end;

procedure Free;  
    begin  
        timer.Free;  
    end; 

procedure fireTimer(Sender: TObject);  
    begin  
        case x of  
            1:begin  
                buf:=useEnchant;
                SendToServerEx(characterName);  
                inc(x);  
            end;  
            2:begin  
                buf:=requestEnchant;
                SendToServerEx(characterName);  
                x:=1;  
            end;  
        end;{case}
    end;

begin
    if FromClient then
        begin  
            case pck[1] of  
                #$34: begin
                    if (ReadD(2)=start) then timer.enabled:=true;
                    if (ReadD(2)=stop) then timer.enabled:=false;
                end;  
            end;
        end;
    if FromServer then  
        begin  
            case pck[1] of  
                #$21: begin
                    if (ReadD(12)=itemID) and (ReadD(34)=Enchant) then timer.enabled:=false;
                end; 
            end;
        end;
end.
Нет, ну все работает отлично, за исключением того, что:
1. Необходимо вписывать вручную хексы, что не очень удобно...
2. Самое главное, не работает остановка по достижению определонного значения точки...
Гляньте, плиз что с последним пунктом, так как отладить его нормально я точно не смогу.
Заранее благодарю)
Imperial2008 вне форума   Ответить с цитированием
Старый 12.07.2009, 15:41   #4
Рыцарь
 
Аватар для mks
 
Регистрация: 21.09.2007
Сообщений: 376
Сказал Спасибо: 11
Имеет 218 спасибок в 106 сообщенях
mks пока неопределено
По умолчанию

Цитата:
Сообщение от Imperial2008 Посмотреть сообщение
Нет, ну все работает отлично, за исключением того, что:
1. Необходимо вписывать вручную хексы, что не очень удобно...
2. Самое главное, не работает остановка по достижению определонного значения точки...
Гляньте, плиз что с последним пунктом, так как отладить его нормально я точно не смогу.
Заранее благодарю)
1. В первых 3х скриптах ниче вписывать не надо, ни хексы, ни ид.
2. Если юзаешь 1й скрипт и заточка не останавливается, то юзай 2й, если не останавливается ни в 1м ни во 2м, что мало вероятно, выкладывай сюда лог пакетов будем править под твой серв....
mks вне форума   Ответить с цитированием
Старый 12.07.2009, 16:05   #5
Пользователь
 
Регистрация: 11.07.2009
Сообщений: 65
Сказал Спасибо: 64
Имеет 0 спасибок в 0 сообщенях
Imperial2008 пока неопределено
По умолчанию

Цитата:
Сообщение от mks Посмотреть сообщение
1. В первых 3х скриптах ниче вписывать не надо, ни хексы, ни ид.
2. Если юзаешь 1й скрипт и заточка не останавливается, то юзай 2й, если не останавливается ни в 1м ни во 2м, что мало вероятно, выкладывай сюда лог пакетов будем править под твой серв....
Такс с 1 я уже разобрался))) Нормально все) Ошибка была за мной - не вписывал верный ID - вписывал Object вместо Item. Ты говоришь, что в первом (втором) не надо вписывать ничего (ну кроме ника чара), объясни мне (я не профи))) как скрипт будет понимать что нужно точить? А то я так кидаю делаю соц действие и все, больше ничего не происходит) Буду очень-очень благодарен если объяснишь)
Imperial2008 вне форума   Ответить с цитированием
Ответ

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



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

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


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

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

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