lokinam, ты вообще какой-то странный То тебе код нужен, то теперь не нужен. И кстати, не заметил, что ты вариант сменил. Там ещё сложнее будет. А чем тебя не устраивает второй вариант, не понимаю . Советую подтянуть GML до уровня 75-80%, а потом только пытаться создать ММО. Steel Standoff - 2D аркада. Мои статьи
Как сделать игрока в разброс чтобы при начале игры он был не в том месте где поставили персонажа а в разброс (в лубое место игры на уровне)?
Quote (lokinam)
(делаю онлайн)
Смело .
1) Игрок выбирает карту и подключается к серверу с этой картой; 2) Игрок заходит на сервер и попадает в комнату, которая выбрана сервером; Решение: получать от сервера при подключении имя карты и переходить к ней.
maps = 2; // количество карт lev_start = false; // стартовала ли комната
// ===== двумерный массив ===== lev[0,0] = "de_dust"; // название карты lev[0,1] = room_de_dust; // название комнаты с картой lev[1,0] = "office"; lev[1,1] = room_office;
ch_map = ""; // переменная, к которую будет записываться введённое название карты
// ========= и самый простой выбор уровня путём ввода названия карты ========= ch_map = get_string("Введите название: ",""); // запрашиваем название карты for (i=0; i<maps; i+=1) // цикл от первой карты до последней { if ch_map = lev[i,0] // если найдено название существующей комнаты, тогда... { room_goto(lev[i,1]); // переходим в комнату выбранной карты lev_start = true; // показываем, что комната стартовала break; // прерываем цикл } }
if lev_start = false // если комната стартовала { show_message("Некорректное название карты."); // показываем сообщение, если карта с введённым названием не существует break; // прерываем цикл }
Quote (lokinam)
Как сделать видеть все сервера созданые в игре?
1) Купить хостинг для хранения файлов; 2) Реализовать получение списка серверов путем считывания их "координаты" через php-скрипт. Если не ошибаюсь, 39dll умеет такое. Steel Standoff - 2D аркада. Мои статьи
Сообщение отредактировал GameMix - Воскресенье, 25 Декабря 2011, 17:58
Duskly, нечего готовое редактировать. Пиши своё. Но для этого нужно будет напрячь мозг и полистать справку по Game Maker 8. Steel Standoff - 2D аркада. Мои статьи
tifaso, не понимаю тебя Или ты не понимаешь код . Я в своих танках делал точно так же! Можешь сравнить, как у меня и как в battle city. Проект в подписи. Steel Standoff - 2D аркада. Мои статьи
Он то нормально я смотрел, но у него есть очень весомый недостаток он содаётся немного не так как хотелось бы.
Извини, я не телепат . Нарисовал бы хоть, как должно быть.
Quote (tifaso)
создавался обьект бонуса в случайной позиции, но при этом был вровень с сеткой
Так я и сделал. Смотри код внимательнее: irandom - случайная позиция, move_snap() - выравнивание по сетке (вровень с сеткой) .
А шахматный порядок расположения блоков сделал для усложнения поиска компом свободных ячеек! Т.е. это специально, чтобы точно убедиться в том, что пример действительно работает . Steel Standoff - 2D аркада. Мои статьи
Сообщение отредактировал GameMix - Среда, 14 Декабря 2011, 12:20
Создай объект-создатель o_creator, к примеру. В событии создания напиши:
Code
make = true; // создавать ли блок
for (i=0; i<room_height/sprite_get_height(sprite0); i+=1) // цикл, прогоняющий строки { for (j=0; j<room_width/sprite_get_width(sprite0); j+=1) // цикл, прогоняющий столбцы { if make // если можно создавать блок instance_create(j*sprite_get_height(sprite0),i*sprite_get_height(sprite0),o_block); // создаём его make = !make; // меняем значение на обратное } make = !make; // меняем значение на обратное }
alarm[0] = room_speed*2; // 2 секунды
Alarm0:
Code
//====== СЛУЧАЙНЫЕ КООРДИНАТЫ X и Y =====\\ X = irandom(room_width); Y = irandom(room_width);
bonus = instance_create(X,Y,o_bonus); // создаем объект бонуса with bonus // с бонусом выполняем следующие действия... { move_snap(sprite_width,sprite_height); // выравниваем по сетке (32х32 в данном случае) while position_meeting(x+sprite_width/2,y+sprite_height/2,o_block) // если в проверяемой ячейке занято { // тогда генерируем новые случайные координаты x = irandom(room_width); y = irandom(room_width); move_snap(sprite_width,sprite_height); // и снова выравниваем по сетке } }