Регистрация Главная Сообщество
Сообщения за день Справка Регистрация
Навигация
Zhyk.org LIVE! Реклама на Zhyk.org Правила Форума Награды и достижения Доска "почета"

Ответ
 
Опции темы
Старый 05.11.2010, 17:11   #1
Заблокирован
 Пехотинец
Аватар для booot
 
booot скоро будет известенbooot скоро будет известенbooot скоро будет известен
Регистрация: 04.06.2010
Сообщений: 97
Популярность: 284
Сказал(а) спасибо: 46
Поблагодарили 123 раз(а) в 33 сообщениях
 
По умолчанию Изучаем скрипты WP. Часть шестая

Изучаем скрипты WP. Часть шестая

В данной статье мы с вами рассмотрим команду движения корабля, подробно изучим структуру карты, а также узнаем, что
такое рассинхронизация.
Итак, обо всём по порядку. Перед тем как мы научимся летать, неплохо было бы изучить местность наших будущих
полётов. В противном случае можно улететь в радиацию, а это нам естественно ни к чему.
В качестве примера я рассмотрю карту 1-1, остальные карты как вы уже скорей всего догадываетесь, пойдут вам как
домашнее задание.
[Ссылки могут видеть только зарегистрированные пользователи. ]
Как видно из рисунка, основная область карты 210(ширина)Х135(высота).
Штриховкой обозначена безопасная зона. Обратите внимание, что там где находится база, безопасная зона выглядит
в форме многоугольника, а не в форме квадрата, как это может показаться.
Безопасная зона есть не только у базы, но и у порта. У порта вы видите два диаметра:
18 - это диаметр безопасной зоны
10 - это диаметр круга, внутри которого можно совершить телепортацию (прыжок на другую карту).
Основную область карты мы рассмотрели. Теперь рассмотрим область радиации.
Радиация имеет пять зон:
1 зона - здесь начинается радиация, но она ещё не бьёт. Ширина данной зоны 2 деления.
2 зона - здесь радиация начинает бить, урон зависит от корабля, ширина зоны также зависит от корабля. Урон 1%
от прочности корабля.
3 зона - здесь урон от радиации возрастает. Ширина зоны 3 деления. Процент урона зависит от корабля.
4 зона - здесь урон от радиации ещё раз возрастает. Ширина зоны 3 деления. Процент урона зависит от корабля.
5 зона - здесь урон от радиации достигает максимального значения (5% от прочности корабля). Ширина
зоны - бесконечность.
У вас может возникнуть вопрос: "А на каком корабле лучше летать в радиации"? Ответ - ямато. Почему именно он? Да
всё просто. Если вы соберётесь в далёкую экспедицию (ну скажем за 1000 координату), то единственный способ так
далеко залететь - это многократная покупка корабля. Пипку (бесплатный корабль) купить не получится, пока ваш
корабль полностью не разрушится. А другие корабли более дорогие. Поэтому если вы соберётесь в далёкую экспедицию
в радиации, то купите себе ямато, запаситесь большим количеством кредитов (думаю 5 миллионов вам хватит) и вперёд
на освоение неизведанных просторов...
Ну чтож, структуру карты мы рассмотрели, теперь давайте раздобудем команду движения нашего корабля.
Как добывать команды, было подробно объяснено в пятой главе. Поэтому останавливаться на этом моменте не буду, а
лишь напомню порядок действий. Для добычи команды движения, вам нужно будет загрузить звёздную карту, запустить WP,
включить захват пакетов, щёлкнуть в свободном месте карты, остановить захват пакетов, найти пакет C>S (от клиента
к серверу). Всё, команда раздобыта. Давайте её теперь расшифруем.
317C31383731327C31323632357C31383336357C3132323538 0A00 (шестнадцатеричный код)
1|18712|12625|18365|12258.. (символьный код)
Символьный код проще для понимания, поэтому мы будем рассматривать именно его.
1|a|b|c|d..
a - новая координата по горизонтали
b - новая координата по вертикали
c - старая координата по горизонтали
d - старая координата по вертикали
Строчка из примера означает следующее, корабль переместился из координаты (183;122) в координату (187;126).
А как же остальные цифры спросите вы? Дело в том, что хоть мы и видим целые координаты у себя на карте, на самом
деле это дробные числа и именно с дробными числами работает сервер игры darkorbit. Теперь становится понятно,
откуда берутся лаги. Дело в том, что числа обрабатывает процессор и целые числа ему обработать гораздо проще, чем
дробные. Это связано с тем, что под дробные числа отводится больше памяти и задействуется большее количество ресурсов
процессора, нежели чем при работе с целыми числами. Конечно, когда мы создаём простенькую программку, выигрыш в
быстродействии будет не заметен. Подумаешь, скажете вы, ну выиграли мы 2 байта от одной переменной, разве это
так существенно. Для локальной программы выигрыша в быстродействии вы не заметите. Но вот для браузерной игры, выбор
типа переменной, становится очень актуальным. Только представьте, от каждого игрока поступает бессмысленная нагрузка
на сервер, а ведь игроков не 10, не 100, а тысячи. Более того, было бы пол беды, если бы переменная редко участвовала
в работе. Но увы, переменная движения корабля присутствует ПОЧТИ В КАЖДОМ пакете.
Лично мне не понятно, зачем сделана такая детализация координат. Это лишь ещё раз доказывает, что немцам плевать
на оптимизацию кода. И что самое интересное, ведь данную проблему очень легко решить, достаточно поменять одну
строчку в коде, т.е. поменять тип переменной движения корабля (дробное число -> целое число). И всё, проблема будет
решена, нагрузка на сервер значительно снизится. Ладно, оставим это на совести разработчиков и продолжим обучение.
Мы с вами подробно рассмотрели структуру карты, добыли команду движения корабля. Теперь самое время рассмотреть
понятие рассинхронизации.
Рассинхронизация - это грубо говоря ситуация, когда картинка на сервере и ваша картинка на мониторе не совпадают.
Т.е. например у себя на экране вы можете стоять в безопасной зоне, а на самом деле (на сервере) вас будет
кто-нибудь бить. Рассинхринизация может возникнуть не только из-за потери пакетов, но и из-за тормозов вашего
компа, т.е. запаздалого обновления картинки на мониторе.
Ну думаю теории достаточно, давайте посмотрим, как это всё будет выглядеть на практике. Игровое окно у вас уже открыто,
WP тоже запущен. Первым делом нужно получить исходные координаты (мы ведь пока не умеем их определять, поэтому
пока придётся всё делать в ручную). Включите захват пакетов, щёлкните по свободному месту на карте, выключите захват
пакетов. Найдите строчку движения, отредактируйте её и отправьте на сервер.
Редактировать удобнее в шестнадцатеричном редакторе, поищите, в интернете их полно. Если пакет не большой (как в
данном случае), то редактировать можно прямо в WP.
Пример:
у вас была строка:
1|18712|12625|18365|12258.. (исходные координаты 187;126)
Новая команда:
1|20034|12856|18712|12625.. (новые координаты 200;128)
Как видите вторая часть новой команды (18712|12625..) полностью совпадает с первой частью предыдущей команды.
Здесь следует отметить особенность движения. Отправив команду серверу, у себя на мониторе вы не увидите никаких
изменений. Почему так происходит, для меня пока загадка. Возможно подпольщики соизволят нам объяснить данный факт
и скажут как избежать данной неприятности. Ну а пока давайте проверим, что движение действительно есть. Для этого
задайте не произвольные координаты, а координаты радиации (хех, не зря же мы изучали так подробно карту). Далеко
лететь в радиацию не нужно, нам ведь потребуется от туда выбраться. Если вам не охото лететь в радиацию, то можете
просто посмотреть как всё это будет выглядеть:
[Ссылки могут видеть только зарегистрированные пользователи. ]
На видео представлена наглядная рассинхронизация. Т.е. после отправки пакета на сервер, корабль начинает двигаться
на сервере, но у нас на мониторе он стоит на месте. Движение можно заметить только по миникарте.
Характерными признаками рассинхронизации, как вы уже могли заметить могут служить:
1) отсутствие на карте ресурсов, мобов и игроков
2) движение по миникарте
После того, как мы попали в радиацию, оттуда надо было выбраться. Щелчки по миникарте не очень эффективынй метод, как
вы уже могли заметить. Ведь на карте мы стоим в безопасной зоне. Намного эффективнее щёлкать по обычной карте, пока
всё не придёт в норму. В конце видео мы видим, что объекты начинают появляться вокруг (ресурсы, мобы, игроки), а слив
стрюнера подтверждает, что рассинхронизация закончилась и можно дальше играть.
На этом данную статью заканчиваю. Изучайте, экспериментируйте и ждите следующих глав.
  Ответить с цитированием
7 пользователя(ей) сказали cпасибо:
AlanUmnik (05.11.2010), DonQuatro (11.10.2011), picpoc (05.11.2010), SergyK85 (05.11.2010), Soutch_park (05.11.2010), wmw55 (05.11.2010), Юпитер (07.11.2010)
Старый 05.11.2010, 18:39   #2
 Разведчик
Аватар для Duke3D
 
Duke3D никому не известный тип
Регистрация: 10.07.2010
Сообщений: 11
Популярность: 10
Сказал(а) спасибо: 3
Поблагодарили 1 раз в 1 сообщении
 
По умолчанию Re: Изучаем скрипты WP. Часть шестая

компас )
  Ответить с цитированием
Старый 05.11.2010, 20:04   #3
 Пехотинец
Аватар для rider22
 
rider22 скоро будет известенrider22 скоро будет известенrider22 скоро будет известенrider22 скоро будет известен
Регистрация: 12.04.2010
Сообщений: 77
Популярность: 330
Сказал(а) спасибо: 26
Поблагодарили 47 раз(а) в 27 сообщениях
Отправить сообщение для rider22 с помощью Skype™
 
По умолчанию Re: Изучаем скрипты WP. Часть шестая

Можноли экспереминтировать на основном акк?? не забанят ли меня ??
________________
Ищy выход из Интеpнета...
  Ответить с цитированием
Старый 06.11.2010, 09:09   #4
Заблокирован
 Пехотинец
Аватар для booot
 
booot скоро будет известенbooot скоро будет известенbooot скоро будет известен
Регистрация: 04.06.2010
Сообщений: 97
Популярность: 284
Сказал(а) спасибо: 46
Поблагодарили 123 раз(а) в 33 сообщениях
 
По умолчанию Re: Изучаем скрипты WP. Часть шестая

Цитата:
Сообщение от Duke3DПосмотреть сообщение
компас )

Что-то против компаса имеешь?
Цитата:
Сообщение от rider22Посмотреть сообщение
Можноли экспереминтировать на основном акк?? не забанят ли меня ??

Лично я все тесты провожу на левых акках, а на основном акке играю честно. Чего и вам советую. В случае бана, акк будет не жалко.
Если же хоть раз пользовались ботом на основном акке, или другим запрещённым ПО, то смело можете использовать и WP. Обнаружить WP гораздо сложнее, чем другое запрещённое ПО.
Более того, в последнее время я стал сомневаться в профессионализме команды немецких разработчиков, так что если WP использовать с умом вас вряд ли поймают
  Ответить с цитированием
Старый 06.11.2010, 09:51   #5
 Разведчик
Аватар для Duke3D
 
Duke3D никому не известный тип
Регистрация: 10.07.2010
Сообщений: 11
Популярность: 10
Сказал(а) спасибо: 3
Поблагодарили 1 раз в 1 сообщении
 
По умолчанию Re: Изучаем скрипты WP. Часть шестая

Цитата:
Сообщение от boootПосмотреть сообщение
Что-то против компаса имеешь?

Нет, даже наоборот, он проще и удобнее чем например солид или инвентор.
  Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Статья] Изучаем скрипты WP. Часть первая. booot Общение и обсуждение 38 04.01.2011 17:24
[Статья] Изучаем скрипты WP. Часть третья booot Общение и обсуждение 14 16.12.2010 07:19
[Статья] Изучаем скрипты WP. Часть пятая booot Общение и обсуждение 30 08.11.2010 04:32
[Статья] Изучаем скрипты WP. Часть четвёртая booot Общение и обсуждение 6 28.10.2010 13:04
[Статья] Изучаем скрипты WP. Часть вторая booot Общение и обсуждение 20 24.10.2010 20:30

Заявление об ответственности / Список мошенников

Часовой пояс GMT +4, время: 11:56.

Пишите нам: [email protected]
Copyright © 2024 vBulletin Solutions, Inc.
Translate: zCarot. Webdesign by DevArt (Fox)
G-gaMe! Team production | Since 2008
Hosted by GShost.net