Доброго времени суток ! Проект (онлайн) Я хотел бы попросить мне объяснить (иль исходник) как сделать регистрацию и сохранение(чтение) позиции, жизней, денег игрока при выходе (входе) Исходник с makeyourmmorpg прошу не давать, а прошу помощи у вас форумчане ! Coder is like a King in his own realm
Алгоритм запроса на вход и на регистрацию один и тот же, поэтому создадим общий скрипт (пусть, scr_InOrOut). Именно скрипт, т.к., возможно, нам потребуется перезапускать алгоритм запроса на вход\выход.
Клиент (содержание скрипта scr_InOrOut):
Code
Спрашиваем у игрока логин, записываем его в переменную; Спрашиваем у игрока пароль, так же, записываем его в переменную; Отправляем серверу свои логин и пароль; Заводим будильник0 на секунду
Клиент (событие попытки входа на сервер):
Code
Выполняем скрипт scr_InOrOut
Сервер (Step):
Code
Если пришло сообщение с запросом на вход, тогда Читаем присланный логин и пароль; Открываем INI-файл или какой-то другой; // если не INI-файл, то открываем файл для ЧТЕНИЯ Ищем по всему файлу логин; Если логин не найден, тогда Отправляем клиенту сообщение о неудачном входе(0); Закрываем файл; Выходим из подпрограммы (exit) А если (else) логин найден, тогда Сверяем пароль от найденного логина с тем паролем, что получили от клиента Если пароли сходятся, тогда Отправляем клиенту сообщение об успешном входе(1); Читаем из файла данные о вошедшем, записываем их в переменные (для удобства); Отправляем значения переменных с записанными данными. Закрываем файл;
Клиент (Будильник0):
Code
Проверяем принятые сообщения; Если есть сообщение с ответом сервера, тогда Читаем ответ (1-успешно, 0-неудачно, неверен логин или пароль) Если ответ = 1, тогда Читаем данные о себе, присланные сервером; Сохраняем их в переменные; Переключаемся в комнату с игроками (для сохранения значений переменных, не забываем сделать объект, в котором выполняется этот код, "постоянным") Иначе Если ответ = 0, тогда Показываем сообщение о неудачном входе; Выключаем игру (а можно не выключать - например,перезапустить скрипт scr_login для повторного входа)
В клиенте алгоритм события регистрации будет точно такой же, как и алгоритм входа. См. спойлер "Вход" --> scr_InOrOut.
В Step сервера будет немного измененный алгоритм:
Code
Если пришло сообщение с запросом на регистрацию, тогда Читаем присланный логин и пароль; Открываем INI-файл или какой-то другой; // если не INI-файл, то открываем файл для ЧТЕНИЯ Если в файле найден логин такой же, как и полученный (т.е. логин уже существует), тогда Закрываем файл; Отправляем клиенту о неудачной регистрации Иначе Открываем INI-файл или какой-то другой; // если не INI-файл, то открываем файл для ЗАПИСИ данных Записываем в файл полученные логин и пароль; Отправляем клиенту сообщение об успешном входе(1); Закрываем файл
Клиент (Будильник0):
Code
Проверяем принятые сообщения; Если есть сообщение с ответом сервера, тогда Читаем ответ (1-успешно, 0-неудачно, пользователь с таким логином уже существует) Если ответ = 1, тогда Переключаемся в комнату с игроками (для сохранения значений переменных, не забываем сделать объект, в котором выполняется этот код, "постоянным") Иначе Если ответ = 0, тогда Перезапускаем скрипт scr_InOrOut
Клиент (событие выхода):
Code
Отправляем данные о себе на сервер; Выходим из игры;
Сервер (Step):
Code
Если пришло сообщение с предупреждением о выходе, тогда Читаем присланные клиентом данные; Записываем их в переменные; Открываем INI-файл или какой-то другой; // если не INI-файл, то открываем файл для ЗАПИСИ данных Записываем в файл данные; Закрываем файл
Добавлено (11.02.2012, 15:26) --------------------------------------------- А что в скрипте scr_INorOUT К каким объектам их привязывать ? Coder is like a King in his own realm
Сообщение отредактировал Fireguy - Суббота, 11 Февраля 2012, 15:30