Просмотр полной версии : помогите написать простенький скрипт.
Прошу помощи по написанию скрипта в этом я полный 0.
скрипт очень просной (я думаю).
нужно чтобы когда программа l2phx видела вот такой вот пакет "32 57 F1 7D 79 06 00 00 00 25 00 " сразуже отправляла на сервер вот такой "A1 57 5E 8F 00 00 00 01 00 01 00 7D 79 06 00 01 00 00 00 00 00 00 00 "
а в кратце мне нужно чтобы он выдерал id шмотки из пакета 32 "7D 79 06 00 " запихивал его в пакет А1 и отправлял на сервер.
Возможно ли его написать?
блин ну считать можно вот так:
var
IDpck:integer;
begin
if fromclient and (pck[1]=#$32) then
IDpck:=ReadD(4);
а вот как вставить я не знаю)
Добавлено через 16 минут
вот так попробуй:
var
IDpck:integer;
begin
if fromclient and (pck[1]=#$32) then
IDpck:=ReadD(4);
begin
buf:=hstr('A1 57 5E 8F 00 00 00 01 00 01 00');
WriteD(IDpck);
buf:=buf+Hstr('01 00 00 00 00 00 00 00');
sendtoserver;
end;
end.
Добавлено через 1 минуту
я правда не уверен, но я пока не могу ниче придумать, писал в блокноте :) ничего от делфи нету
Добавлено через 28 минут
ну че, помогло? :)
а то я проверить сам не могу даже правилен ли синтаксис
Добавлено через 5 минут
slokky, блин ты куда пропал, давай пиши помогло или нет, а то меня щас за флуд забанят, мне жэ интересно ё моё :D
щас проверю. да кстати все авкеты от клиента! я как понял ты от сервера if поставил.
ты посмотри как ты написал, так я и сделал, первый пакет от куда?
да кстати ты поставил фиксированый пакет "32 57 F1 7D 79 06 00 00 00 25 00" я имел ввиду каждый раз приходит новый пакет 32 с разными 4 парами. вот эти 4 пары "7D 79 06 00" каждый раз новые нужны для формированя пакета А1 понял?
ну измени FromCient это не сложно)) я просто не заметил
извиняюсь еще раз и повторяю все и все пакеты от клиента! это покупка и продажа!
блин, ну ты бы написал нормально сначала! исправил я
Добавлено через 30 секунд
ты меня запутал, они синие или красные? :D
друг мой все пакеты красные.
в моем 2м посте, там я исправил, там итак красные
запустил скрипт он не посылает пакет А1 хз
блин :) ну жди програмистов. я просто хотел помочь, я не вставлял еще рид ниразу
вот опишу еще подробнее.
клиент посылает пакет ----->32 57 F1 C4 A5 06 00 00 00 03 00 ----->скрипт вынимает id шмотки и вставляет ее в пакет А1----->A1 57 5E F3 00 00 00 01 00 01 00 C4 A5 06 00 01 00 00 00 00 00 00 00 ----> отсылает этот пакет на сервер.
пакет 32 постоянно меняется поэтом мне нужен скрипт который постояно будет подгонять правильный пакет А1. более понятно описать не могу.
да мне это понятно...я не помню команду правильно как рид вставлять
там pck[номер байта куда вставлять]:=WriteD помоему, я не работал с таким, могу только предполагать, поищи на сайте, тут должно быть где-то
Diverclaim
04.07.2011, 05:05
begin
if FromClient and (ReadC(1) = $32) then
begin
buf := HStr('57 5E F3 00 00 00 01 00 01 00');
WriteD(ReadD(4));
buf := buf + HStr('01 00 00 00 00 00 00 00');
SendToServer;
end;
end.
о ы, я не безнадежен :) мыслил в правильном направлении...
Еще вариант реализации, мне кажется более оптимальный:
begin
if FromClient and (pck[1] = #$00) then
begin
buf:=#$A1#$57#$5E#$F3#$00#$00#$00#$01#$00#$01#$00# $C4#$A5#$06#$00#$01#$00#$00#$00#$00#$00#$00#$00;
WriteD(ReadD(4),12);
SendToServerEx(name);
end;
end.
4 байта из пакета pck будут вставлены в пакет buf.
а как это? (pck[1]=$00) - что значит это :) я знаю если #$ то ловит именно первый байт обозначенный, а у тебя $ и нули
//J-Fobos: опечатался, исправил, спасибо
vBulletin® v3.6.11, Copyright ©2000-2024, Jelsoft Enterprises Ltd. Перевод: zCarot