Показать сообщение отдельно
Старый 15.07.2009, 18:55   #1
Пользователь
 
Регистрация: 11.07.2009
Сообщений: 65
Сказал Спасибо: 64
Имеет 0 спасибок в 0 сообщенях
Imperial2008 пока неопределено
Печаль Помогите со скриптом

Здравствуйте!
Сразу просьба, не писать сообщений типа "посмотри подобные скрипты и напиши сам" - смотрел и не вышло.
Суть скрипта очень простая: при соц действии 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; таймер на пакеты, но у меня ничего не вышло( Скрипт не сложный, кто знает что делает)
Я не программер, по этому очень надеюсь на вашу помощь.
Imperial2008 вне форума   Ответить с цитированием