 |
Возможно ли прибавить какое то значение к части пакета? - Общение и обсуждение Aion - События, информация, вопросы и ответы по Aion |
29.01.2012, 18:11
|
#16
|
|
|
|
Пехотинец
|
 Регистрация: 29.08.2010
 Сообщений: 87
 Популярность: 82
 Сказал(а) спасибо: 99
Поблагодарили 51 раз(а) в 28 сообщениях
|
Re: Возможно ли прибавить какое то значение к части пакета?
 |
Цитата: |
 |
|
|
|
|
|
|
|
|
Именно так. Все это есть по ссылке что вы скинули=)
|
|
 |
|
 |
|
сор ступил по этому вопросу
но есть другой
ReadD(var index:integer):integer - читает из переменной pck число (4 байта)
разве нам в хексе не все равно как читать?
считаю все равно
нам ведь пофиг как там клиент будет потрошить пакет, нам нужно только прибавить константу к координате.
нужно будет только константу подобрать в правильном формате и все.
Последний раз редактировалось manyunya; 29.01.2012 в 18:21.
|
|
|
29.01.2012, 18:54
|
#17
|
|
|
|
Сержант
|
 Регистрация: 10.09.2010
 Сообщений: 127
 Популярность: 233
 Сказал(а) спасибо: 13
Поблагодарили 99 раз(а) в 42 сообщениях
|
Re: Возможно ли прибавить какое то значение к части пакета?
Конечно не все равно как читать, DWord без плавающей запятой в отличие от Single. Значения совершенно неверные получатся.
В DWord z у нас 1144075706
А на самом деле в Single 586,769165039063
|
|
|
29.01.2012, 20:00
|
#18
|
|
|
|
Пехотинец
|
 Регистрация: 29.08.2010
 Сообщений: 87
 Популярность: 82
 Сказал(а) спасибо: 99
Поблагодарили 51 раз(а) в 28 сообщениях
|
Re: Возможно ли прибавить какое то значение к части пакета?
так яж написал что тока константой нужно будет поиграться
мы ведь не прелбразовываем пакет, что прочитали то и вернули+константа.
ведь 586,769165039063=1144075706
Последний раз редактировалось manyunya; 29.01.2012 в 20:06.
|
|
|
29.01.2012, 20:48
|
#19
|
|
|
|
Разведчик
|
 Регистрация: 21.10.2011
 Сообщений: 14
 Популярность: 12
 Сказал(а) спасибо: 4
Поблагодарили 1 раз в 1 сообщении
|
Re: Возможно ли прибавить какое то значение к части пакета?
 |
Цитата: |
 |
|
|
|
|
|
|
|
|
мы ведь не прелбразовываем пакет, что прочитали то и вернули+константа.
ведь 586,769165039063=1144075706
|
|
 |
|
 |
|
Ну по сути да. Я просто когда меняю координаты в пакете 9F я в преобразовании перевожу из HEX - 1142075706 и прибавляю 2000000 получаеться - 1144075706, перевожу снова в HEX и возвращаю в пакет 9F в место координаты соответсвенной. Я просто про Single не знала и работала с координатами через DWord.( Теперь буду знать и может так будет проще работать с ними. А по поводу скрипта
 |
Цитата: |
 |
|
|
|
|
|
|
|
|
var
x,y,z,n:integer;
if FromClient and (pck[1]=#$9F) then
begin
buf:=hstr('9F 00 57 5C FF'); //записываем в buf начало пакета (до координат)
n:=200; //наше число которое мы будем прибавлять
x:=readn(6); //считываем x из pck в формате Single
y:=readn(10); //считываем y из pck в формате Single
z:=readn(14); //считываем z из pck в формате Single
z:=z+n; //прибавляем к z число n
writen(x); //записываем x в buf в формате Single
writen(y); //записываем y в buf в формате Single
writen(z); //записываем z в buf в формате Single
buf:=buf+hstr('07 00'); //записываем в buf конец пакета
pck:=''; //удаляем все из pck
end;
end.
|
|
 |
|
 |
|
Как же тогда быть, если скрипт не привязан к эмоции. Ведь тогда на каждый пакет 9F будет выполняться скрипт. И он ведь не отправляет вроде уже изменённый пакет на сервер. Верно? А ещё По поводу привязки к эмоции, как активировать скрипт тогда? Если он выполняеться постоянно, то получаеться скрипт для ДОС атак.
А задумывался:
Игрок находясь в игре нажимает на эмоцию, и игрока поднимает на определённую высоту в том месте где он стоит. (Внутреняя структура скрипта: После пакета эмоции скрипт ловит ближайший пакет 9F, берёт из него координату Z, прибавляет к ней допустим 2000000 (варианты: можно непреобразовывая прибавлять заданую уже в HEX, а можно чтоб 2000000 переводилась в HEX и прибавлялась.), и отправляем на сервер.)
|
|
|
29.01.2012, 21:11
|
#20
|
|
|
|
Пехотинец
|
 Регистрация: 29.08.2010
 Сообщений: 87
 Популярность: 82
 Сказал(а) спасибо: 99
Поблагодарили 51 раз(а) в 28 сообщениях
|
Re: Возможно ли прибавить какое то значение к части пакета?
все возможно привязать как всегда
|
|
|
29.01.2012, 21:39
|
#21
|
|
|
|
Разведчик
|
 Регистрация: 21.10.2011
 Сообщений: 14
 Популярность: 12
 Сказал(а) спасибо: 4
Поблагодарили 1 раз в 1 сообщении
|
Re: Возможно ли прибавить какое то значение к части пакета?
Тогда наверно лучьше этот скрипет в процедуру сделать, и уже процедуру привязать к активатору. Верно? По крайней мере я только так умею пока.)
|
|
|
29.01.2012, 21:47
|
#22
|
|
|
|
Сержант
|
 Регистрация: 10.09.2010
 Сообщений: 127
 Популярность: 233
 Сказал(а) спасибо: 13
Поблагодарили 99 раз(а) в 42 сообщениях
|
Re: Возможно ли прибавить какое то значение к части пакета?
В Single все равно работать удобней, т.к. 1 единица соответствует 1 игровому метру.
На счет привязки к эмоции. Скрипты работают с 1 пакетом за раз. Т.е. он видит пакет движения, берет значения и сохраняет, но при приходе пакета эмоции эти значения обнуляются. И так с каждым последующим пакетом.
Можно просто уже измененный пакет движения вставить в скрипт и привязать к эмоции.
|
|
|
29.01.2012, 22:29
|
#23
|
|
|
|
Пехотинец
|
 Регистрация: 29.08.2010
 Сообщений: 87
 Популярность: 82
 Сказал(а) спасибо: 99
Поблагодарили 51 раз(а) в 28 сообщениях
|
Re: Возможно ли прибавить какое то значение к части пакета?
PHP код:
var
x,y,z,n:Single;
vkl:boolean;
procedure Init; //Вызывается при включении скрипта
begin
vkl:=FaLse;
end;
procedure Free; //Вызывается при выключении скрипта
begin
end;
begin
if FromClient and (pck=HStr('C2 00 57 61 FF 15 01 00 00 00 00 00')) then // смех
begin
if (vkl) then
begin
vkl:=false;
buf := HStr('16 00 54 D5 FF 0000000000 00 01 00 00 00');
WriteS('полет выкл!');
SendToClient;
end
else
begin
vkl:=true;
buf := HStr('16 00 54 D5 FF 0000000000 00 01 00 00 00');
WriteS('полет вкл!');
SendToClient;
end;
pck:='';
end;
if (vkl) and FromClient and (ReadC(1)=$9f) and (ReadC(2)=$00) then
begin
buf := HStr('16 00 54 D5 FF 0000000000 00 01 00 00 00');
WriteS('летим!');
SendToClient;
buf:=hstr('9F 00 57 5C FF'); //записываем в buf начало пакета (до координат)
n:=200; //наше число которое мы будем прибавлять
x:=readn(6); //считываем x из pck в формате Single
y:=readn(10); //считываем y из pck в формате Single
z:=readn(14); //считываем z из pck в формате Single
z:=z+n; //прибавляем к z число n
writen(x); //записываем x в buf в формате Single
writen(y); //записываем y в buf в формате Single
writen(z); //записываем z в buf в формате Single
buf:=buf+hstr('07 00'); //записываем в buf конец пакета
pck:=''; //удаляем все из pck
end;
end.
но саму функцию с модификацией пакета на полет не смотрел, оставил как есть
Последний раз редактировалось manyunya; 29.01.2012 в 23:07.
|
|
|
29.01.2012, 22:42
|
#24
|
|
|
|
Сержант
|
 Регистрация: 10.09.2010
 Сообщений: 127
 Популярность: 233
 Сказал(а) спасибо: 13
Поблагодарили 99 раз(а) в 42 сообщениях
|
Re: Возможно ли прибавить какое то значение к части пакета?
По правильному надо x,y,z,n:real; но можно интегер оставить, часть после запятой пропадет, но там десятые метра, можно пренебречь.
|
|
|
29.01.2012, 22:44
|
#25
|
|
|
|
Пехотинец
|
 Регистрация: 29.08.2010
 Сообщений: 87
 Популярность: 82
 Сказал(а) спасибо: 99
Поблагодарили 51 раз(а) в 28 сообщениях
|
Re: Возможно ли прибавить какое то значение к части пакета?
 |
Цитата: |
 |
|
|
|
|
|
|
|
|
По правильному надо x,y,z,n:real; но можно интегер оставить, часть после запятой пропадет, но там десятые метра, можно пренебречь.
|
|
 |
|
 |
|
на интегер ругается)
объявил x,y,z,n:Single;
с координатой пока не понял на что меняет
sendtoserver; вставил выкинуло)
Последний раз редактировалось manyunya; 29.01.2012 в 23:10.
|
|
|
29.01.2012, 22:59
|
#26
|
|
|
|
Сержант
|
 Регистрация: 10.09.2010
 Сообщений: 127
 Популярность: 233
 Сказал(а) спасибо: 13
Поблагодарили 99 раз(а) в 42 сообщениях
|
Re: Возможно ли прибавить какое то значение к части пакета?
Ой, самое главное забыл =)
sendtoserver; вставь.
|
|
|
30.01.2012, 16:16
|
#27
|
|
|
|
Разведчик
|
 Регистрация: 21.10.2011
 Сообщений: 14
 Популярность: 12
 Сказал(а) спасибо: 4
Поблагодарили 1 раз в 1 сообщении
|
Re: Возможно ли прибавить какое то значение к части пакета?
Обьясни по подробней пожалуйста ход работы скрипта.
|
|
|
30.01.2012, 22:41
|
#28
|
|
|
|
Пехотинец
|
 Регистрация: 29.08.2010
 Сообщений: 87
 Популярность: 82
 Сказал(а) спасибо: 99
Поблагодарили 51 раз(а) в 28 сообщениях
|
Re: Возможно ли прибавить какое то значение к части пакета?
Код:
if FromClient and (pck=HStr('C2 00 57 61 FF 15 01 00 00 00 00 00')) then // смех
begin
if (vkl) then
begin
vkl:=false;
buf := HStr('16 00 54 D5 FF 0000000000 00 01 00 00 00');
WriteS('полет выкл!');
SendToClient;
end
else
begin
vkl:=true;
buf := HStr('16 00 54 D5 FF 0000000000 00 01 00 00 00');
WriteS('полет вкл!');
SendToClient;
end;
pck:='';
end;
эта часть включает и выключает прибовление к координате(точнее меняет переменную vkl с положения вкл в вкл и наоборот пр каждом использовании эмоции
а нижняя часть я не трогал
нижняя часть начинает работать только когда переменная vkl включена.
сегодня не смотрел, вчера что то дисконектило, завтра может займусь отладкой.
|
|
|
31.01.2012, 01:42
|
#29
|
|
|
|
Сержант
|
 Регистрация: 10.09.2010
 Сообщений: 127
 Популярность: 233
 Сказал(а) спасибо: 13
Поблагодарили 99 раз(а) в 42 сообщениях
|
Re: Возможно ли прибавить какое то значение к части пакета?
Выкидывает, скорее всего, потому что без пакета на тп перемещать не будет, а какой он сейчас хз.
|
|
|
31.01.2012, 15:45
|
#30
|
|
|
|
Разведчик
|
 Регистрация: 21.10.2011
 Сообщений: 14
 Популярность: 12
 Сказал(а) спасибо: 4
Поблагодарили 1 раз в 1 сообщении
|
Re: Возможно ли прибавить какое то значение к части пакета?
Последний раз редактировалось martiniFresh; 31.01.2012 в 16:12.
Причина: Добавлено сообщение
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Похожие темы
|
Тема |
Автор |
Раздел |
Ответов |
Последнее сообщение |
какое значение скила менять?
|
minaret666 |
Общение и обсуждение, архив Point Blank |
3 |
20.10.2010 21:34 |
Заявление об ответственности / Список мошенников
Часовой пояс GMT +4, время: 20:18.
|
 |