Здравствуйте!
Сразу просьба, не писать сообщений типа "посмотри подобные скрипты и напиши сам" - смотрел и не вышло.
Суть скрипта очень простая: при соц действии 1 - посылает на сервер 1 блок пакетов, при соц. действии 2 - посылает на сервер второй блок пакетов. И все, никаких таймеров и тому подобное. Под блоком пакетов имеется ввиду 10-15 пакетов. Не нужно вообще никакой автоматизации.
Чтобы не было лишних вопросов, я пробовал переделывать скрипт точки оружия:
Цитата:
// Ядро от 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.
|
Только я заменил
if (ReadD(2)=start) then timer.enabled:=true; таймер на пакеты, но у меня ничего не вышло( Скрипт не сложный, кто знает что делает)
Я не программер, по этому очень надеюсь на вашу помощь.