Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Программирование игр, графики и искусственного интеллекта > мой IrrNet


Автор: Dronchik 11.2.2009, 18:33
Здарова всем. Сейчас работаю над созданием своей версии сетевого модуля для иррлихта. Пишу для ирр 1,4. Вот монолог, поясняющий суть проблемы:
"
Dronchik (20:44) :
проблема вот в чём

Dronchik (20:46) :
у меня клиент с ид 0 видит клиента с ид 1, а 1 не видит 0


Dronchik (20:46) :
с большим количеством клиентов пока не пробывал

Dronchik (20:46) :
в этом вся проблема

Dronchik (20:46) :
понять почему так происходит не могу
"
Вот вся трабла. Ссылка: http://dronchik.3dn.ru/network.rar . Для тех у кого нет библиотек и заголовочных файлов ирр 1,4 вот ссылка - http://dronchik.3dn.ru/irr1_4.rar 
Сам врубиться, почему происходит вышеописанное не могу. На мой взгляд, судя по коду, всё правильно, и должно работать так, как надо. Т.е. каждый клиент должен видеть другого клиента. Прошу помочь smile 

Автор: Rpahut 11.2.2009, 23:07
Ни фига не рублю в иррлихт, но вот ЭТО мне кажется странным
Код

if(connect[1]==true)
            {
                NLS_Message(0, MSG_SERVER_STRUCT, binary);                
            }

NLS_Message(0, MSG_SERVER_STRUCT, binary) - здесь разве не единица должна быть?

Автор: Dronchik 12.2.2009, 11:46
Rpahut, сенкс! smile  Исправил на верные номера массивов, но это не помогло. smile 

Автор: GoldFinch 12.2.2009, 12:35
if(connect[1]==true)
я понимаю еще зачем пишут if(true==connect[1]) но if(connect[1]==true) это глупость

Автор: Dronchik 12.2.2009, 14:46
GoldFinch, объясни вообще почему ты решил что это глупо. Если элемент массива с ид 1 равен труЪ то выполнять действие. А этот элемент массива отвечает за подключённость того или иного клиента.

Автор: Ryoga 12.2.2009, 17:16
Мне тоже интересно. smile И чем принципиально различаются эти два выражения, тоже. smile Только не говорите, что, дескать, это чтобы не забыть написать сравнение вместо присваивания. smile

Автор: Rpahut 12.2.2009, 22:02
Цитата(Dronchik @  12.2.2009,  11:46 Найти цитируемый пост)
не помогло. 

Интересно.
А сервер видит обоих клиентов?

Автор: GoldFinch 12.2.2009, 23:08
Ryoga, да, if(true==connect[1]) пишут затем чтобы не написать if(true=connect[1])

а if(connect[1]==true) это глупость потому что if принимает булево выражение, а x==TRUE тождественно x

Автор: Ryoga 13.2.2009, 00:17
Цитата
if(true==connect[1]) пишут затем чтобы не написать if(true=connect[1])

Странно, что Вы это глупостью не считаете, благо TRUE==x тождественно x. smile
Для себя могу сказать, что такой код мне зачастую легче читать - что часто важнее, чем потеря в производительности, которая там врятли велика.
Впрочем, своё мнение я никому не навязываю.

Автор: arilou 13.2.2009, 15:37
Ryoga, 
GoldFinch, 

не оффтопьте  smile 

Автор: Dronchik 13.2.2009, 17:25
Rpahut, сервер видит обоих клиентов. Если вы желаете увидить, что сервер видит обоих клиентов, то можете раскоментировать строки, отвечающие за создание моделей клиентов. Там видно всё, как, какой клиент, и куда перемещается и где находится в данный момент. А также в консоли сервера прописывается позиция каждого клиента каждую прорисовку окна(вне зависимости от того, активно окно или нет(выделенный сервер ведь не будет постоянно у каждого на компе активным быть?!)).

Ryoga, хз, но мне более удобно написать так, как я пишу. Хотя... Я могу писать и так как вы сказали. Мне это не составляет труда.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)