LuZaR писал(а):
Заход в лавку................................Заход в лавку
Генерация массива (размер)...........Генерация массива (размер)
Наполнение массива.......................{Наполнение не успевает произойти}
Обновление:
*Массив изменен*..........................*Массив изменен*
Запрос на обновление....................Первоначальное наполнение массива
Новый размер массива....................Наполнение не совпадает с размером старым
Новое наполнение массива.............Идет код ошибки с клиента на сервер
ИДТИ_на_метку (Обновление).........Производится сброс игры
Критика принимается, более того, желательна!
Луз, закрутил....
Я про это писал уже.... И вот что конкретно предлагаю.......
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. НУЖНО ИСПРАВИТ ТАК ЧТОБ ПРИ ПОСТУПЛЕНИИ ДАННЫХ О ИЗМЕНЕНИИ с КЛИЕНСКОЙ ЧАСТИ СЕРВЕР ПРОВЕРЯЛ СООТВЕТСТВИЕ размера СТЕКА(КОЛИЧЕСТВО ЯЧЕК ) с поступившего пакета от клиента и размер собственного СТЕКА МАГАЗИНА и СТЕКОВ ПЕРСОВ!!!! ..... ЕСЛИ НЕТ ДОБАВИТЬ ВСЕМ КТО В МАГАЗЕ НЕДОСТАЮЩЕЕ...
То, что ты видеш, не всегда есть правда.....