Предложения по устранению багов.

Сообщение LuZaR » 28 янв 2005, 07:21

Предлагаю в эту тему постить по следующему формату:
1. Описание бага.
2. Алгоритм решения (или просьба предложить вариант решения).
Аватара пользователя
LuZaR
Путешественник
Путешественник
 
Автор темы
Сообщения: 364
Зарегистрирован:
11 ноя 2003, 12:04
Откуда: Новосибирск
Has thanked: 0 time
Have thanks: 0 time

Сообщение St.Elena » 28 янв 2005, 07:27

LuZaR писал(а):Предлагаю в эту тему постить по следующему формату:
1. Описание бага.
2. Алгоритм решения (или просьба предложить вариант решения).
в личке - бум обсуждать новые баги - счас слишком широкий доступ сюда
Вы не можете справиться с вирусами ? Добро пожаловать на Virusinfo.info
Аватара пользователя
St.Elena
Местный
Местный
 
Сообщения: 1228
Зарегистрирован:
02 дек 2003, 12:34
Откуда: Novosibirsk
Has thanked: 0 time
Have thanks: 0 time

Сообщение LuZaR » 28 янв 2005, 07:42

1. Описание бага:
Один персонаж заходит в лавку, снимает с полки вещь или стопку (свитков или банок) до полного освобождения ячейки.
Заходит второй персонаж, первый при этом возвращает на прилавок ранее взятое на стол покупки. Место у второго игрока в массиве/стеке, отведенном для хранения вещей, находящихся в лавке, под эту/эти шмотки не отведено, игра не знает куда их положить и падает.
Однако, если оба игрока сидят в лавке, первый продает какую-то шмотку, игра же не падает? А шмотка появляется у второго игрока. Таким образом, массив/стек явно динамический и постоянно обновляется.
Почему падает игра? Возможно, процедура обновления этого массива жестко прописана, и при известном срыве происходит так:

Нормальный вариант......................Вариант с дропом

Заход в лавку................................Заход в лавку
Генерация массива (размер)...........Генерация массива (размер)
Наполнение массива.......................{Наполнение не успевает произойти}
Обновление:
*Массив изменен*..........................*Массив изменен*
Запрос на обновление....................Первоначальное наполнение массива
Новый размер массива....................Наполнение не совпадает с размером старым
Новое наполнение массива.............Идет код ошибки с клиента на сервер
ИДТИ_на_метку (Обновление).........Производится сброс игры

2. Вариант решения.
Отследить, какой именно код ошибки проходит на сервер и отрубить эту проверку... При этом теоретически игра остается целой, последствия - в клиенте в лавке не будет 1 шмотки. Думаю, это не очень критично в большинстве случаев.

Критика принимается, более того, желательна!
Последний раз редактировалось LuZaR 28 янв 2005, 08:25, всего редактировалось 1 раз.
Аватара пользователя
LuZaR
Путешественник
Путешественник
 
Автор темы
Сообщения: 364
Зарегистрирован:
11 ноя 2003, 12:04
Откуда: Новосибирск
Has thanked: 0 time
Have thanks: 0 time

Сообщение цЫцА » 29 янв 2005, 13:49

карта - interception qeust
не знаю, мой личный баг это или это глюк.
если закупаться с северного правого угла лавки, через определенной время игра начинает тормозить, а потом выкидывает. Возвращаешься в игру - стоишь в полном стартовом касте (броня 150 и все защиты).
Он же Ыг. 28.11.2003.
Аватара пользователя
цЫцА
Новичок
Новичок
 
Сообщения: 80
Зарегистрирован:
11 авг 2004, 05:47
Откуда: Нск
Has thanked: 0 time
Have thanks: 0 time

Сообщение Freamer » 29 янв 2005, 14:33

цЫцА писал(а):карта - interception qeust
не знаю, мой личный баг это или это глюк.
если закупаться с северного правого угла лавки, через определенной время игра начинает тормозить, а потом выкидывает. Возвращаешься в игру - стоишь в полном стартовом касте (броня 150 и все защиты).


зависание игры и выкидывание зависит от твоего коннекта , а броня 150 и все защиты появляються если ты залипнишь в магазе и потом вернешься , чтобы исправить этот баг на интерсепшене надо магаз вниз просто подвинуть а щас лучше сверху не закупаца
Аватара пользователя
Freamer
Школота
Школота
 
Сообщения: 30
Зарегистрирован:
09 апр 2004, 10:51
Has thanked: 0 time
Have thanks: 0 time

Сообщение Frostik » 29 янв 2005, 15:00

да еще можно самому очень легко этот баг или лучше сказать глюк делать,просто один чел садится в лавку,другой скидывает лавочку там где он зашел стенами ,тот который сидел выходит и у него все обкасты , но до первого каста, как только что нить на себя кастанешь все скидывается на свое оновное
все что было твоим станет моим
Аватара пользователя
Frostik
Обыватель
Обыватель
 
Сообщения: 691
Зарегистрирован:
07 май 2003, 11:25
Откуда: Днепропетровск
Has thanked: 0 time
Have thanks: 0 time

Сообщение XStyler » 29 янв 2005, 16:27

LuZaR писал(а):
Заход в лавку................................Заход в лавку
Генерация массива (размер)...........Генерация массива (размер)
Наполнение массива.......................{Наполнение не успевает произойти}
Обновление:
*Массив изменен*..........................*Массив изменен*
Запрос на обновление....................Первоначальное наполнение массива
Новый размер массива....................Наполнение не совпадает с размером старым
Новое наполнение массива.............Идет код ошибки с клиента на сервер
ИДТИ_на_метку (Обновление).........Производится сброс игры

Критика принимается, более того, желательна!


Луз, закрутил.... :lol:

Я про это писал уже.... И вот что конкретно предлагаю.......

1. Есть ли у вас исходник сервака и клиента?????
2. Там нужно найти Процедурку (оброботчик) МАГАЗИНА.....
У ней должна бвть функция со следующей моралью:
<новый перс заходит в лавку>
<клиентская часть игры>
ОТПРАВКА ЗАПРСА НА ФОРМИРОВАНИЕ СТЕКА (МАСИВА) под шмот..
<сервер>
ОТПРАВКА ЧИСЛА ячеек......

<клиентская часть игры> НЕ ОБЯЗАТЕЛЬНО (все может проходить за один Этап)
ОТПРАВКА ЗАПРСА НА описание шмота который нужно положить в ячейки клиента....
<сервер>
ОТПРАВКА ШМОТА......

<ДАННЫЕ ЗАНЕСЕНЫ>

Вот тут то и происходит срыв А суть его такова.....

Почему рвется сервер??? А не клиент.....
(по идее липовые данные передаются клиенту...... и значит клиентская часть должна упасть получив число ячеек меньше чем число видов шмота на 1)

Значит Сервер вормирует 1+n СТЕКов(масивов) ГДЕ N-число персов зашедших в МАГАЗ:
1. СТЕК (МАСИВ) Магазина...... Существует всегда в нем и обновляются данные....по шмоту....
n. Для каждого перса...... ДАнные в стек попадают с СТЕКА (МАГАЗИНА)... И ЕСЛИ ПЕРС ЧЕТО СНИМАЕТ (не обязательно покупает) с ячейки (ТОЕСТЬ ОПУСТОШАЕТ ЕЕ)... СТЕК МАГАЗИНА УМЕНЬШАЕТСЯ НА 1 И НАООБОРОТ.....

2. Т.Е. ПОСЛЕДОВАТЕЛЬНОСТЬ ТАКОВА....
<СТЕК МАГАЗИНА (12 ячеек)>
Заходит новый перс...
СОЗДАНИЕ НОВОГО СТЕКА....
<СТЕК ПЕРСА-1 (12 ячеек)>
ЗАПОЛНЕНИЕ СТЕКА ПЕРСА-1 (НА СЕРВЕРЕ)....
<СТЕК ПЕРСА-1 (12 ячеек)>
ОТПРАВКА ДАННЫХ КЛИЕНТСКОЙ ЧАСТИ ПЕРСА-1....
<СТЕК ПЕРСА-1 (12 ячеек)>
ОПУСТОШЕНИЕ ОДНОЙ ЯЧЕЙКИ (взятие всех или единственной вещи лиш бы ячейка была пуста)
<СТЕК ПЕРСА-1 (11 ячеек)>
<СТЕК МАГАЗИНА (11 ячеек) (-1 какую опустошили)>
Заходит новый перс...
СОЗДАНИЕ НОВОГО СТЕКА....
<СТЕК ПЕРСА-2 (11ячеек)>
ЗАПОЛНЕНИЕ СТЕКА ПЕРСА-2 (НА СЕРВЕРЕ)....
<СТЕК ПЕРСА-2 (11ячеек) (НО 11 ЕДЕНИЦ ДАННЫХ)>
ОТПРАВКА ДАННЫХ КЛИЕНТСКОЙ ЧАСТИ ПЕРСА-2....
<СТЕК ПЕРСА-2 (11 ячеек)>

ЕСЛИ ПЕРС-1 НЕ ОТПУСТИТ ТОВАР ТО НЕ СОРВЕТ..... ТАК КАК ВСЕГО по 11......

НО ЕСЛИ ОТПУСТИТ.............
<СТЕК МАГАЗИНА (12 ячеек)>
Заходит новый перс...
СОЗДАНИЕ НОВОГО СТЕКА....
<СТЕК ПЕРСА-1 (12 ячеек)>
ЗАПОЛНЕНИЕ СТЕКА ПЕРСА-1 (НА СЕРВЕРЕ)....
<СТЕК ПЕРСА-1 (12 ячеек)>
ОТПРАВКА ДАННЫХ КЛИЕНТСКОЙ ЧАСТИ ПЕРСА-1....
<СТЕК ПЕРСА-1 (12 ячеек)>
ОПУСТОШЕНИЕ ОДНОЙ ЯЧЕЙКИ (взятие всех или единственной вещи лиш бы ячейка была пуста)
<СТЕК ПЕРСА-1 (11 ячеек)>
<СТЕК МАГАЗИНА (11 ячеек) (-1 какую опустошили)>
Заходит новый перс...
СОЗДАНИЕ НОВОГО СТЕКА....
<СТЕК ПЕРСА-2 (11ячеек)>

ПЕРС-1 отпускает взятый шмот....
<СТЕК ПЕРСА-1 (12 ячеек)>
<СТЕК МАГАЗИНА (12 или даже 11 если он уже начал заполнять стек ПЕРСА-2 ячеек) (+1 какую отпустили)>


ЗАПОЛНЕНИЕ СТЕКА ПЕРСА-2 (НА СЕРВЕРЕ)....
<СТЕК ПЕРСА-2 (11ячеек) (НО 12 ЕДЕНИЦ ДАННЫХ)>
ОТПРАВКА ДАННЫХ КЛИЕНТСКОЙ ЧАСТИ ПЕРСА-2....
<СТЕК ПЕРСА-2 (11 ячеек)>

ВОТ ТУТ ТО ИСРЫВ!!!!!!!


3. НУЖНО ИСПРАВИТ ТАК ЧТОБ ПРИ ПОСТУПЛЕНИИ ДАННЫХ О ИЗМЕНЕНИИ с КЛИЕНСКОЙ ЧАСТИ СЕРВЕР ПРОВЕРЯЛ СООТВЕТСТВИЕ размера СТЕКА(КОЛИЧЕСТВО ЯЧЕК ) с поступившего пакета от клиента и размер собственного СТЕКА МАГАЗИНА и СТЕКОВ ПЕРСОВ!!!! ..... ЕСЛИ НЕТ ДОБАВИТЬ ВСЕМ КТО В МАГАЗЕ НЕДОСТАЮЩЕЕ...
То, что ты видеш, не всегда есть правда.....
Аватара пользователя
XStyler
Новичок
Новичок
 
Сообщения: 114
Зарегистрирован:
17 фев 2004, 19:12
Откуда: Украина, г. Запорожье
Has thanked: 0 time
Have thanks: 0 time


Вернуться в Закрытый форум Главных Хранителей

Кто сейчас на конференции

Посетителей: 1, из них зарегистрированных: 0, скрытых: 0 и гостей: 1 (находятся на конференции)
Этот раздел просматривают: нет зарегистрированных пользователей и гости: 1

cron