Spider_System, можно было не понтоваться, а просто сообщить об этом админам, они бы исправили недочет. Но нет, нужно же издеваться над пользователями сайта!
Grendaiser: не сказать, чтобы идея была оригинальна, но она придает платформеру необычности + смотрится красиво. Но маловато особенностей. Оценка: 5 баллов. overbolt: особенность, как я понял, тут - стрельба. Возможность стрельбы в платформере - не так оригинально (даже сказал бы, обычно, имхо) + выполнено неаккуратно. Оценка: 3 балла. Steel Standoff - 2D аркада. Мои статьи
Поэтому думаю создать новую тему с голосованием, где люди смогут скачать exe, swf, fla и посмотреть скриншоты работ. Я не хочу закрытого голосования жюри и т.п.
apoptom, насколько я знаю, у опроса есть уязвимое место - при повторном входе через один и тот же браузер или при входе через другой, появляется возможность отдать голос повторно. Значит, результаты голосования могут быть несправедливыми. Поэтому закрытое голосование или голосование постом с именем участника дуели прямо в этой теме будут куда лучше Steel Standoff - 2D аркада. Мои статьи
Алгоритм запроса на вход и на регистрацию один и тот же, поэтому создадим общий скрипт (пусть, 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-файл, то открываем файл для ЗАПИСИ данных Записываем в файл данные; Закрываем файл
Fade, я понял, в чем проблема у Laush'а. Проверил, если при нажатии кнопки смещать объект на 64 пикс., то события пересечения\выхода за пределы комнаты не работают. Скорее всего, нужно использовать не move_wrap(), а что-то другое Steel Standoff - 2D аркада. Мои статьи
Reckrad, я тебе о том, что прежде чем задавать такой вопрос, нужно хотя бы чуть-чуть подумать головой. Глядишь, и мысль какая придет. Изучай русскую справку по Game Maker. Закрепляй изученное на практике. Так элементарных вопросов станет гораздо меньше . Steel Standoff - 2D аркада. Мои статьи
Сообщение отредактировал GameMix - Среда, 08 Февраля 2012, 14:29
-MaX-, если отвечать на такие элементарные вопросы кодом, то новички в конец обленятся, поняв, что проще взять готовое, чем заглянуть в справку и подумать головой. Steel Standoff - 2D аркада. Мои статьи