Показать сообщение отдельно
Старый 23.06.2009, 21:05   #102
Новичок
 
Аватар для 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 спасибками от: