NCrashed
offline
Опыт:
13,553Активность: |
Баг системы поездов
Специально для LIC я создал систему движения поездов, с ускорением/замедлением, остановками и т.п. Но после конечного дебага оставался не совсем понятный недочет. Пожалуйста помогите разобраться в причинах его возникновения. Я понимаю, что мы все не телепаты, поэтому придется ознакомить всех с устройством системы и с ее кодом. Само описание бага находится после описания самой системы.
Описание системы1. Существуют "точки маршрута" - области, по которым ориентируется движение поезда. (Зеленые на рисунке) DEAD URL 2.Этих областей мало не мало 51+- 3 штук поэтому пришлось создать для них базу данных. (см. 2.txt) Как видите для удобства записи данных я использую SCV и присваиваю каждому ректу свой номер. Для любителей оптимизации сообщаю, что это безобразие долго в памяти не храниться =). 3. Вот это необходимые функции для работы системы. Они понадобятся ниже. (см. 3.txt) 4. Инициализация (какое умное слово) системы: (Главное не испугайтесь при первом просмотре) (4.txt) 5. Теперь сам движок поезда (благодарю тех, кто дочитал до сюда) (см. 5.txt) 6. Не буду описывать триггеры посадки, высадки и камеры. БагПроблема заключается в развороте. Он то сам функционирует нормально, но при первом прохождении (на рисунке) поезд замирает на 9 секунд и баг больше не повторяется. Этот эффект нужно убрать. Конкретный номер региона 49. DEAD URL P.SСпасибо всем, кто попытается мне помочь. Я не против, если кто-то будет использовать эту систему, но обязательно оповестите меня об этом. Какие-то части системы пока не используются (ISPovorot), но обязательно будут реализованы в финальной версии системы. Отредактировано ShadoW DaemoN, 19.10.2008 в 15:28. |
18.10.2008, 01:25 | #1
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Van Damm
wait... what?
offline
Опыт:
22,268Активность: |
думаю, без хотя бы минимальной карты-примера с присутствием бага, дела не будет |
18.10.2008, 01:34 | #2
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
J
expert
offline
Опыт:
48,447Активность: |
чето ужасное нагромождение всего, ифы лупы как иголки из подушки торчат, куча location которых вообще не должно быть, мне кажется все можно реализовать намного проще и понятнее... ну я по диагонале посмотрел вроде большую част кода более мение понянта... ща еще глаза пощуру мб замечу че...
Jon добавил: эх.. нет, мне вообще все ненравится, выложи карту, я тебе пряим на ней попробую код оптимизить и заодно увижу где ошибка |
18.10.2008, 02:06 | #3
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Toadcop
offline
Опыт:
54,313Активность: |
джон, диод нумеро 2 xD ...
ну кстати это относительный вопрос про поезд... можно его и альтернативно реализовать напр вейпоинтами... и даже кастомным передвижением =) |
18.10.2008, 02:23 | #4
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
user_jasser
offline
Опыт:
232Активность: |
Цитата:
это скорей проблема твоей логики и ошибка в алгоритме...убрать за тебя ошибку это значит переписать весь код заново, а по сабжу : чтото эти функции мне не нравяться:: Код:
|
|
18.10.2008, 03:43 | #5
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
adic3x
offline
Опыт:
108,439Активность: |
код неоптимальный и того запутанный, ректы, локации и т.д. втопку. кеш мб туда же) |
18.10.2008, 08:55 | #6
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
NCrashed
offline
Опыт:
13,553Активность: |
user_jasser, весь код переписывать не надо, это сделаю я сам). Эти функции разбились на 2 из-за непонятной причины зацикливания в polledwait, доходит до него и все ни шагу дальше.
Jon подкинь идейку как реализовать иначе. Карта, мягко говоря, выкладываться не может, хотя попробую перенести систему на пустую. ADOLF был бы код идеальным, я его тогда бы не выложил). "ректы, локации и т.д. втопку. кеш мб туда же)" и как же тогда делать ), что-то все равно придется использовать. Система работает, даже с таким кодом), но оптимизировать определено надо. |
18.10.2008, 16:23 | #7
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
kvaDrug
offline
Опыт:
1,601Активность: |
Возможно, все дело в том что ты юзаешь SCV. Используй массивы, тогда легче будет отловить баг твоего кода, а не системы SCV. Локации, ректы - тоже лишнее. Железную дорогу или её участки можно описать функцией. Оптимизируй по этим двум пунктам, потом разбирайся с багом. Так проще (так для тебя лучше). |
18.10.2008, 17:48 | #8
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Hellfim
Новичок
offline
Опыт:
79,700Активность: |
NCrashed
Ты выяснил хоть в какой функции у тебя баг? Попробуй расставить дебаговые сообщения в каждой функции с ее названием. Затем если ты найдешь функцию, но не поймешь причину бага, то просто выложи ее и те функции которые она вызывает, думаю тебе помогут. |
18.10.2008, 18:47 | #9
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
NCrashed
offline
Опыт:
13,553Активность: |
kvaDrug, попробую описать это в функции. Но тогда будет тяжелее изменить маршрут поезда, тут передвинул несколько локаций, или добавил новую (и 2 строчки в инициализацию). Массивную систему я не жалую, т.к потом не сумею его уничтожить. Вообще удивляюсь, почему в ждаззе нету функции dispose(); )) так бы от локалок бы исбавлялись.
Hellfim в том то дело, что самостоятельный дебаг ни к чему не привел. Поезд перенаправляется на область 50 и усе стоит, триггер перенаправления или двигающий не сработал не ясно (но это точно не остановка) |
19.10.2008, 10:54 | #10
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Van Damm
wait... what?
offline
Опыт:
22,268Активность: |
Описывать путь поезда в функции не имеет смысла в случае его сложности и вариативности. Вывод - юзать вейпоинты вместо локаций, так оптимальнее и удобнее.
Если тебе удобнее хранить данные в кеше - оставляй так, почти все оптимизационные советы носят рекомендательный характер =) |
19.10.2008, 13:56 | #11
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Hellfim
Новичок
offline
Опыт:
79,700Активность: |
Van Damm, чисто для себя, что есть вейпоинты? С англиского переводятся как точки пути, а вот как их сделать?
|
19.10.2008, 14:15 | #12
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
adic3x
offline
Опыт:
108,439Активность: |
два массива типа риал, Х и У.
индексы связанны, т.е. вейтПоинт 0 - это первый елементы обоих массивов |
19.10.2008, 19:28 | #13
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
NCrashed
offline
Опыт:
13,553Активность: |
Van Damm а как я буду координаты вбивать, ручками? Если брать координаты центров областей, то легче через области и делать. И потом как я буду отслеживать, когда перенаправлять поезд, ведь он не всегда точно попадает на координаты вейпойнта.
|
19.10.2008, 20:18 | #14
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
adic3x
offline
Опыт:
108,439Активность: |
имхо написать два числа в коде куда прооооще чем поставить регион и выровнять его |
19.10.2008, 20:22 | #15
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
NCrashed
offline
Опыт:
13,553Активность: |
ADOLF, это машинный труд: вбить 102 четырёхзначных числа. Легче просто копипастить строки кода и менять номер региона.
|
19.10.2008, 21:30 | #16
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Mihahail
๏̯͡๏
offline
Опыт:
17,766Активность: |
А если заставить поезд двигаться по одному типу тайла? Чтоб двигался по там по траве.. =) |
19.10.2008, 21:40 | #17
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
ScorpioT1000
Работаем
online
Опыт: отключен
|
Цитата:
Имхо наоборот. Автоматизация рулит, ну и хрен что 20 байт, зато тут быстрей в сто раз |
|
19.10.2008, 23:07 | #18
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Hellfim
Новичок
offline
Опыт:
79,700Активность: |
NCrashed, сначала будет долго, а потом просто расширяешь массив, забиваешь значения, чуть-чуть корректируешь код и вуаля, поезд уже шастает по другому маршруту.
|
19.10.2008, 23:30 | #19
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
adic3x
offline
Опыт:
108,439Активность: |
Цитата:
я с трудом могу представить что бы расстановка на карте региона и его подгонка была быстрее чем копипаст строки кода и вставляние туда двух чисел опять же смотрите как в ТсХ боты делаются... |
|
20.10.2008, 20:13 | #20
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|