Понедельник, 11 Ноября 2024, 04:48

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Проблема с мультиплеером в Game Maker
ЛеонидДата: Четверг, 09 Января 2014, 20:28 | Сообщение # 1
постоянный участник
Сейчас нет на сайте
Попробовал на стандартных функциях создать простенькую игру для мультиплеера. Реализовать движение (то есть передачу x и y) двух объектов получилось, но вот с никами проблема.
Работает это следующим образом: через get_string вводится глобальная переменная plname, затем (в зависимости от того, присоединяется игрок к сессии или создаёт) глобальная переменная host приравнивается к false или true, соответственно.
После этого, если находит другого игрока в сети, переходит в следующую комнату, в которой и расположены персонажи. И вот сама проблема. У клиента (того, кто подключился) оба ника отображаются правильно, у хоста (того, кто создает сессию) отображается только свой ник, вместо ника клиента отображается 0 (то есть данные не передаются, как я понимаю). Сначала код был в создании у обоих объектов, потом, так как я решил, что проблема заключается в неправильном порядке выполнения действий, я перенес код в один другой объект, но результат не изменился.Вот этот код (в создании):
Код
if global.host=true
mplay_data_write(10,global.plname)
if global.host=false
mplay_data_write(11,global.plname)

if global.host=false
global.botplname=mplay_data_read(10)
if global.host=true
global.botplname=mplay_data_read(11)


botplname - ник другого игрока (для хоста это клиент, для клиента - хост).
Вот код рисования ника у клиента (у хоста всё тоже самое по сути, но у хоста работает, а у клиента нет):
Код
if global.host=false
{
draw_text(x+16,y-16,global.plname)
}
else
{
draw_text(x+16,y-16,global.botplname)
}

Час пытался самостоятельно найти ошибку, но так ничего и не вышло. Надеюсь, что кто-нибудь поможет.
Quad69Дата: Четверг, 09 Января 2014, 21:01 | Сообщение # 2
заслуженный участник
Сейчас нет на сайте
Код
if global.host=[color=red]true[/color]  
{  
draw_text(x+16,y-16,global.plname)  
}  
else  
{  
draw_text(x+16,y-16,global.botplname)  
}

Пробуй изменить.
ЛеонидДата: Четверг, 09 Января 2014, 21:04 | Сообщение # 3
постоянный участник
Сейчас нет на сайте
То, что ты написал, это код рисования ника у хоста, не должен же он быть идентичным у клиента.
Quad69Дата: Четверг, 09 Января 2014, 21:07 | Сообщение # 4
заслуженный участник
Сейчас нет на сайте
Прокоментируй этот код
ЛеонидДата: Четверг, 09 Января 2014, 21:09 | Сообщение # 5
постоянный участник
Сейчас нет на сайте
Какой именно? Оригинальный?
Код

if global.host=false/// если игрок - клиент
{
draw_text(x+16,y-16,global.plname)/// рисуется ник, который он ввел в начале
}
else/// если игрок хост
{
draw_text(x+16,y-16,global.botplname)/// рисуется ник, который он получает от клиента
}
Quad69Дата: Четверг, 09 Января 2014, 21:12 | Сообщение # 6
заслуженный участник
Сейчас нет на сайте
Цитата Леонид ()
Код
if global.host=true
mplay_data_write(10,global.plname)
if global.host=false
mplay_data_write(11,global.plname)

if global.host=false
global.botplname=mplay_data_read(10)
if global.host=true
global.botplname=mplay_data_read(11)

botplname - ник другого игрока (для хоста это клиент, для клиента - хост).
Вот код рисования ника у клиента (у хоста всё тоже самое по сути, но у хоста работает, а у клиента нет):
Код
if global.host=false
{
draw_text(x+16,y-16,global.plname)
}
else
{
draw_text(x+16,y-16,global.botplname)
}



Это весь код? Или есть ещё?
ЛеонидДата: Четверг, 09 Января 2014, 21:20 | Сообщение # 7
постоянный участник
Сейчас нет на сайте
Это весь код, связанный именно с никами. Полагаю, что в нем проблема, ведь всё остальное работает как надо.
Quad69Дата: Четверг, 09 Января 2014, 21:31 | Сообщение # 8
заслуженный участник
Сейчас нет на сайте
Я больше не чем немогу помочь так как почти не учил функции mplay

  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг