Проблема с мультиплеером в 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
|
|
| |