Давай уроки по больше. И лучше бы не ммо. А обычные тдски пол года учил GML. GameMaker отказывается теперь работать на моем компе... Здравствуй Construct!
Deswing, ок. Допустим вы решили отправить значение переменной x, которая равна 389, для этого мы не можем использовать writebyte, т.к. byte - это число от 0 до 256. Следовательно будем использовать writeshort, с помощью которого можно передавать значения от -32768 до +32767 Если вам не хватит и этого диапазона (что маловероятно), тогда можно взять int, который поддерживает -2147483648 до +2147483647
Сообщение отредактировал Фил - Воскресенье, 26 Декабря 2010, 18:23
Deswing, текст мы будем тоже отправлять байтами. var len, str, i; str = /*наша строка, например*/ "Hello world!" len = string_length(str); // Измеряем длину строки dll39_write_byte(len, 0); // Записываем величину строки в буфер 0 для последующей отправки (т.к. мы используем write_byte, то мы не сможем отправить строку, длиннее 255. Если нужно больше - нужно отправлять шортами) for (i = 1; i <= len; i += 1) { dll39_write_byte(ord(string_char_at(str, i)), 0); // string_char_at(str, index) Возвращает символ в строке str на позиции index. // ord(str) Возвращает asci-код первого символа в строке str. // Записываем все символы побайтово в буфер } // Ну а потом отправляем данные из буфера.
Теперь как принимать эти данные
var len, i, str; str = ''; len = dll39_read_byte(0); // Считываем длину строки for(i = 1; i <= len; i += 1) { str += chr(dll39_read_byte(0)); // chr(val) Возвращает строку, содержащую символ asci-кода val. } // Теперь str принимает значение отправленного нами текста, т.е "Hello World!"
Статья хороша. Хоть я уже не занимаюсь GM и 39dll, но старания оценить могу. Думаю будет полезно так и для новичков, так и для мастеров самого GM и 39dll в частности. My Games: · [2D, TDS] Death Embrace.