Условия:
- Реализация может быть сделана абсолютно любыми методами, включая обман игрового клиента, исключая фотожоп. Только rfonline.ru сервер.
- Ответ на конкурс должен быть ответом в этой теме под хайдом 900, включающим скриншот и подробное описание способа реализации.
- Если два человека реализуют одинаковыми способами, то победителем считается тот, кто выложил ответ первым.
- Итоге конкурса будут подведены 30 числа, то есть через 8 дней.
- Конкурс не касается отцов пакетного дела типа котопса, биоварка, бровеймимо и так далее. Уж извините :) Хотя можете конечно попробовать, если призёров не будет, призы будут отданы вам.
Призы:
За самый изящный способ реализации на выбор: 50 постов или
Второе место: 30 постов или
Третье место: 15 постов или RFLogin
Последний раз редактировалось dark; 24.12.2009 в 00:37.
Я не оказываю услуги гаранта!
База данных кидал: blacklist.rf-cheats.ru
Обязательно проверяйте человека через чёрный список прежде чем совершать с ним сделку.
я же написал, должны быть скрины + ТОЧНЫЙ способ реализации, то есть включающим в твоём случае какие пакеты, что в них менять, каким образом (то есть скриптом или как), то есть готовый рабочий вариант. В теории любой может ответить, нужна практика
Я не оказываю услуги гаранта!
База данных кидал: blacklist.rf-cheats.ru
Обязательно проверяйте человека через чёрный список прежде чем совершать с ним сделку.
Создаём к примеру белку, ловим пакет при нажатие кнопки Enter. Это примерно 05 00 01 0Е 00. Потом на 2 слоте создаём кору и так же ловим пакет при нажатии Enter. Это будет 05 00 01 0Е 01. Видим что отличается только последним значением.. Теперь стоим в 1 слоте выбора персонажа, где у нас белка и отправляем пакет, тот когда заходили корой, тоесть на конце 01 и вуаля мы белкой в ГШ кор.
Последний раз редактировалось dark; 12.01.2010 в 22:57.
Немного модернизировал скрипт, теперь будет больше разнообразия.
PHP код:
// Скрипт оформителя v.0.2.
var packet:string; PID, count:integer;
procedure OnCreate; begin count := 0 end;
begin if length(_gBuff) < 4 then exit; PID := GInt(_gBuff,3,2); if _gFromServ then case PID of $1F03: begin _gOutBuff:= _gBuff; Delete(_gOutBuff, 14, 18); if count = 0 then Insert(HStr('000000000000000000000000000000000000'), _gOutBuff, 14); if count = 1 then Insert(HStr('011010100000100000100000100000100000'), _gOutBuff, 14); if count = 2 then Insert(HStr('022020200000200000200000200000200000'), _gOutBuff, 14); if count = 3 then Insert(HStr('033030300000300000300000300000300000'), _gOutBuff, 14); if count = 4 then Insert(HStr('044040400000400000400000400000400000'), _gOutBuff, 14); if count = 4 then count := 0 else count := count+1; end; end; end.
Также если немного модернизировать, то можно получить вот это (не для слабонервных)
Для начала нужен входящий пакет об информации персонажа. Это 031F с фиксированым размером 42h байта. Изучая его узнаем какие байты за что в нем отвечают. Нам нужен байт расы/пола, это 14й байт (00-бел м. 01-бел ж. 02-кор м. 03-кор ж. 04-акр). Заменяя только этот байт видим, что появляющиеся у нас на экране персонажи нужной расы, но при этом дофига косяков со шмотом. Продолжая изучать пакет видим что после расы идут 3 байта "кожи" и далее байты одежды. Самое простое что приходит в голову, это вместе с заменой расы делать персонажей голыми с дефолтной текстурой.
Способ: заменяем байты на нужные нам. Методом подбора отобраны 5 вариантов:
Бел М.
Можно написать скрипт фильтр-заменитель для WPF PPC или воспользоваться WPE PRO. Я выбрал второй способ т.к. в скриптах не очень.
[IMG]http://img705.**************/img705/7128/filteru.png[/IMG]
Что бы не отсылал нам сервер, мы будем видеть голого белку самца.
Вот несколько скриншотов с сидона, зацените лампу на 2м)Оффтоп
зеленым выделен шмот чара, который мы заменяем скриптом
я, с помощью скрипта, подменяю во входящем пакете значение расы (целиком блок 01000000) и меняю шмот на дефолтный.
вот собственно сам скрипт для WPF (строго не судите, я сам учился писать скрипты):
Код:
// script by altry1st
var
st : string;
ID : string;
ID1 : string;
rasa : string;
shmot : string;
BEGIN
if _gFromServ then
if StrCmp(copy(_gBuff,3,2), HStr('03 1F')) then
begin
ID := copy(_gBuff,1,10);
ID1 := copy(_gBuff,32,35);
if StrCmp(copy(_gBuff,14,1), HStr('00')) then begin //belka man
rasa := HStr('01 00 00 04'); // akret
shmot := HStr('40 40 400000 400000 400000 400000 400000');
st := ID + rasa + shmot + ID1;
WriteLogln('akret');
end;
if StrCmp(copy(_gBuff,14,1), HStr('01')) then begin//belka dev
rasa := HStr('01 00 00 03'); // kora dev
shmot := HStr('30 30 300000 300000 300000 300000 300000');
st := ID + rasa + shmot + ID1;
WriteLogln('kora');
end;
_gOutBuff := st ;
end;
END.
[/HIDE]
[HIDE="900"]можно просто заменять значения расы, тогда все персы будут в шмоте:
// script by altry1st
var
st : string;
ID : string;
ID1 : string;
rasa : string;
BEGIN
if _gFromServ then
if StrCmp(copy(_gBuff,3,2), HStr('03 1F')) then
begin
ID := copy(_gBuff,1,10);
ID1 := copy(_gBuff,15,52);
if StrCmp(copy(_gBuff,14,1), HStr('00')) then //belka man
rasa := HStr('01 00 00 04'); // akret
if StrCmp(copy(_gBuff,14,1), HStr('01')) then //belka dev
rasa := HStr('01 00 00 03'); // kora telka^^
st := ID + rasa + ID1;
_gOutBuff := st ;
WriteLogln('Ok');
end;
END.
Скрытый текст (вы должны войти под своим логином или зарегистрироваться и иметь 999 сообщение(ий)):
У вас нет прав чтобы видеть скрытый текст, содержащейся здесь.
Чтобы его прочитать, вы должны заработать сообщения. Как это сделать бесплатно, описано в правилах форума. Как купить доступ, описано в Платных услугах.
Если я правильно понял что нужно сделать по заданию то это вроде проще простого.
Если используем впф то пишем скрипт, с таким смыслом, что при получении пакета на появление перса в зоне видимости, мы меняем 1 байт отвечающий за расу.
Суть в том, что когда твой чар бежит, то клиенту посылается пакет, что в зоне видимости есть персонаж, отправляется его ник, раса и ещё некоторые данные.
Так вот если изменить 1 байт (если не изменяет память) и поставить другой, то у нас будут появляться разные расы.
В своём ответе точно уверен, есть траблы с инетом, поэтому скрины сделать не смогу. Но в ответе уверен, так как штормрайдер в своей программе подобное реализовал, он просто немного по другому использовал, а точнее он отправлял клиенту в пм инфо, что в зоне видимости есть какая то раса с определённым ником. Так как пакет отправляется гораздо раньше (от 1 до 2 секунд) чем появиться в реальной зоне видимости мы можем успеть телепортнуться.
Если нужно, то могу попробовать написать скрипт для ВПФ.
в впе тупо ставим фильтр и меняем на ту или иную расу основываясь на примере выше.
Если инет починють то смогу и скрины сделать, и точнее какой байт менять.
П.С. Так же есть второй вариант. Отредактировать память клиента. Найти ник того кто рядом, найти id расы (их уже не помню но на форуме поискать можно) и тупо в артмани или СЕ поменять ид. Как мы делали это для амулетов, так и тут должно прокатить.
П.С. И не понятно почему именно с руоффом связан конкурс, это прокатит везде)))
П.П.П.С. Дарк, я правильно ответил? если не полный ответ, то могу дополнить как инет починят. Если не правильный совсем то скажи это плиз.
Последний раз редактировалось dark; 12.01.2010 в 22:59.