Ищу помощь с 39длл онлайн проектом ^^
| |
NeZnayu | Дата: Четверг, 10 Марта 2011, 18:50 | Сообщение # 21 |
__танцуй!__
Сейчас нет на сайте
| neksins, проверяй как клиент принимает direction.
CombatForce - 2d TDS долгожданный релиз Noobster - самый простой конструктор игр в мире LaLaLaLAMA! - игра не про Ламу
|
|
| |
Made_In_USSR | Дата: Четверг, 10 Марта 2011, 18:55 | Сообщение # 22 |
заслуженный участник
Сейчас нет на сайте
| Quote (neksins) тебе нужно код степа для игрока? Хоспади! Мне нужны исходные данные. Откуда берется тот image_angle, который ты потом отправляешь на сервер? Если жирным выделен код обьекта которым в клиенте управляет игрок, то да, это оно.
Новичкам изучающим GML кликать сюда. Много примеров, исходников, библиотек и вообще всего что вам только может пригодиться. Автор портала, прости меня за ссылку, наболело =)
Сообщение отредактировал Made_In_USSR - Четверг, 10 Марта 2011, 18:57 |
|
| |
Dva_Kota | Дата: Четверг, 10 Марта 2011, 18:58 | Сообщение # 23 |
заслуженный участник
Сейчас нет на сайте
| на сервере в степе у objPlayer закоментирована строка с углом поворота спрайта
Новый пример инвентаря! /20.06.2012/
Energy Wars
|
|
| |
neksins | Дата: Четверг, 10 Марта 2011, 19:06 | Сообщение # 24 |
постоянный участник
Сейчас нет на сайте
| Quote (Made_In_USSR) жирным выделен код обьекта которым в клиенте управляет игрок, то да, это оно. значит оно NeZnayu, всмысле на ф6 есть дебаг? ну запуск игры там есть только смысл какой в фразе про ф6?) Dva_Kota, да нет -> case playerlocation: //players location x = readshort(); //Читаем х y = readshort(); //Читаем у objPlayer.image_angle = readshort(); //тадамс! Читаем угол поворота других игроков! *_* Добавлено (10.03.2011, 19:06) --------------------------------------------- NeZnayu, case newplayer: pid = readbyte(); //Читаем данные, которые отправил нам сервер (у нас это - playerid) player = instance_create(0, 0, objRemote); //Создаем objRemote player.x = readshort(); //Читаем координаты х player.y = readshort(); //Читаем координаты у player.image_angle = readshort(); player.nick = readstring(); //Читаем ник (переменную) players[pid] = player; //Добавляем в playerlist break; //Если не ошибаюсь, то разрыв соединения вот как-то так читает если это то о чем ты спрашиваешь
Мой проект по типу Guitar Hero ИГРА ВЫПУЩЕНА!
|
|
| |
NeZnayu | Дата: Четверг, 10 Марта 2011, 19:15 | Сообщение # 25 |
__танцуй!__
Сейчас нет на сайте
| Quote (neksins) всмысле на ф6 есть дебаг? ну запуск игры там есть только смысл какой в фразе про ф6? Смысл в том что на F5 запуск игры, а на F6 дебаг. В окошке дебага вводишь переменную, которую необходимо проверить. Например: ob_player.image_angle Смотришь как она себя ведет.
CombatForce - 2d TDS долгожданный релиз Noobster - самый простой конструктор игр в мире LaLaLaLAMA! - игра не про Ламу
|
|
| |
Made_In_USSR | Дата: Четверг, 10 Марта 2011, 19:59 | Сообщение # 26 |
заслуженный участник
Сейчас нет на сайте
| Актуальные исходники битые. Перезалей и проверь после упаковки на всяк случай.
Новичкам изучающим GML кликать сюда. Много примеров, исходников, библиотек и вообще всего что вам только может пригодиться. Автор портала, прости меня за ссылку, наболело =)
|
|
| |
neksins | Дата: Четверг, 10 Марта 2011, 21:30 | Сообщение # 27 |
постоянный участник
Сейчас нет на сайте
| http://rghost.ru/4712705 перезалил NeZnayu, спасибо сейчас попробую посмотрю может что и найду Добавлено (10.03.2011, 21:01) --------------------------------------------- NeZnayu, вбил objPlayer.image_angle вот такое получил в ответ ___________________________________________ ERROR in action number 1 of Alarm Event for alarm 0 for object objPlayer: Error in code at line 7: sendmessage(objControl.socket); ^ at position 25: Unknown variable socket Добавлено (10.03.2011, 21:02) --------------------------------------------- нажал игнор игра работает показывает угол наклона Добавлено (10.03.2011, 21:03) --------------------------------------------- NeZnayu, а вот objRemote так непосмотреть, в таком виде онлайн-мод не включается Добавлено (10.03.2011, 21:04) --------------------------------------------- я нажимаю watch потом add вот сейчас норм без ошибки Добавлено (10.03.2011, 21:07) --------------------------------------------- если верить дебагу он матюгается на это clearbuffer(); writebyte(playerlocation); writeshort(x); writeshort(y); writeshort(image_angle); writeshort(direction); sendmessage(objControl.socket); alarm[0] = 2; objPlayer событие alarm[0] Добавлено (10.03.2011, 21:30) --------------------------------------------- почему ругается на сокет?!
Мой проект по типу Guitar Hero ИГРА ВЫПУЩЕНА!
|
|
| |
Made_In_USSR | Дата: Четверг, 10 Марта 2011, 22:32 | Сообщение # 28 |
заслуженный участник
Сейчас нет на сайте
| Я не знаю причину, по которой direction каждый второй шаг обнуляется, но вот что мне помогло решить проблему: Либо в драв изменить поворот спрайта на дирэкшн, либо в степ написать имаж_англ=дирэкшн. И устанавливать аларм не на 2 а на 1. К стати если использовать этот способ, то мы избавляемся от одного лишнего пакета Добавлено (10.03.2011, 22:32) --------------------------------------------- Собственно работающий клиент, если я не понятно обьяснил.
Новичкам изучающим GML кликать сюда. Много примеров, исходников, библиотек и вообще всего что вам только может пригодиться. Автор портала, прости меня за ссылку, наболело =)
Сообщение отредактировал Made_In_USSR - Четверг, 10 Марта 2011, 22:38 |
|
| |
neksins | Дата: Пятница, 11 Марта 2011, 19:25 | Сообщение # 29 |
постоянный участник
Сейчас нет на сайте
| Made_In_USSR, непомогло, вы тестировали? у меня в одном окне не поворачивает враг а в другом окне игрок поворачивается в туже сторну что и враг, хотя враг стоит недвигается Добавлено (11.03.2011, 11:36) --------------------------------------------- в чем же все-таки дело?! ='( Добавлено (11.03.2011, 16:23) --------------------------------------------- Ап, хэлп, почему обьект других игроков не крутится, зараза? Добавлено (11.03.2011, 19:15) --------------------------------------------- ёмаё переписал код в новом файле сервер и клиент, сделал по уроку с 39длл о 4 местах втыкания переменной и хрен там был помогите очень прошу уже настроение проект делать ушло =( Добавлено (11.03.2011, 19:25) --------------------------------------------- УРРРРРРРРЯЯЯЯЯЯЯЯ товарищи - ЗАРАБОТАЛО спасибо NeZnay за дебаг опытным путем (врубил сервер задал там спрайт обьекту игрок чтоб следить за ним, врубил два окна, в сервере дебагом строчку поворота все работает) я заметил что сервер получает пакет с поворотом (хз правильно ли выразился) так как спрайты в окне сервера крутятся. значит ошибка в отправке, решил я. и точно - строчки в отправке НЕБЫЛО _________ всем спасибо заставили меня искать баг самому вот я и вскрыл все что можно и нашол (yahoo)
Мой проект по типу Guitar Hero ИГРА ВЫПУЩЕНА!
|
|
| |
BornInUSSR | Дата: Пятница, 11 Марта 2011, 20:26 | Сообщение # 30 |
почетный гость
Сейчас нет на сайте
| Quote (neksins) Made_In_USSR, непомогло, вы тестировали? Сейчас проверю файл по ссылке, но у меня точно все работало. Как выясняется из твоего поста работало потому что все нужные пакеты отправлялись и получались клиентом, а вместо поворота спрайта использовался пакет с дирекшн. Как я уже говорил это минус один лишний пакет.
|
|
| |
neksins | Дата: Суббота, 12 Марта 2011, 14:53 | Сообщение # 31 |
постоянный участник
Сейчас нет на сайте
| Новый вопрос - как правильно расставить мобов? сделал что-то типа objPlayer назвал objEnemy Взял куски кода с игрока, те что связанны с отправкой данных на сервер. заменил все найденные плауер (playerlocation И т.п.) на enemy (enemylocation) получил три ошибки ERROR in action number 1 of Alarm Event for alarm 0 for object objEnemy: Error in code at line 2: writebyte(enemylocation); ^ at position 12: Unknown variable enemylocation ERROR in action number 1 of Alarm Event for alarm 0 for object objEnemy: Error in code at line 2: writebyte(enemylocation); ^ at position 12: Unknown variable enemylocation ERROR in action number 1 of Alarm Event for alarm 0 for object objPlayer: Error in code at line 8: sendmessage(objControl.socket); ^ at position 25: Unknown variable socket из них две одинаковые кажется ) почему он ругается на сокет? где можно почитать про создание ИИ в ммо? ____ пысы это не в гонках, теперь это космическая стрелялка (не надо ругать за смену проекта, пока туплю в одном чиню второй) Добавлено (11.03.2011, 21:45) --------------------------------------------- сервер не ругается при входе игрока в игру Добавлено (11.03.2011, 21:46) --------------------------------------------- и после добавления ИИ игра включила "оффлайн-мод" Добавлено (11.03.2011, 21:55) --------------------------------------------- перемудрил еще больше покапавшись в сервере вылетело куча ошибок я аж растерялся очень прошу посмотрите http://rghost.ru/4727944 я там некоторые вещи прокомментировал на спрайты внимания не обращайте на несостыковавшиеся бекграунды тоже перерисую завтра )) Добавлено (12.03.2011, 08:11) --------------------------------------------- ребят дайте ссылки на уроки по созданию полноценной ммо на гм8 +39длл на школе39длл черт ногу сломит, все их примеры с моим 39длл несостыковываются Добавлено (12.03.2011, 14:53) --------------------------------------------- никто не знает 39 длл? =(
Мой проект по типу Guitar Hero ИГРА ВЫПУЩЕНА!
|
|
| |
Фил | Дата: Суббота, 12 Марта 2011, 16:36 | Сообщение # 32 |
Томатный революционер
Сейчас нет на сайте
| Quote (neksins) все их примеры с моим 39длл несостыковываются Мы используем 39dll.ged
|
|
| |
neksins | Дата: Суббота, 12 Марта 2011, 16:50 | Сообщение # 33 |
постоянный участник
Сейчас нет на сайте
| Фил, помоги, как сделать ИИ, как сделать другие обьекты видимыми другим игрокам (например пули, лазер там) Добавлено (12.03.2011, 16:50) --------------------------------------------- пример EPI незапускается __________________________________________ FATAL ERROR in action number 1 of Create Event for object con: COMPILATION ERROR in code action Error in code at line 3: server = dll39_tcp_connect(ip, 13777, true);//Подключаемся к серверу ^ at position 11: Unknown function or script: dll39_tcp_connect закинута дллка из бейсикмморпг и та что ты мне дал, + dll gex Добавлено (12.03.2011, 16:50) --------------------------------------------- очень прошу помогите немогу найти уроков/примеров и я совершенный чайник в 39 длл но очень хочу его освоить
Мой проект по типу Guitar Hero ИГРА ВЫПУЩЕНА!
Сообщение отредактировал neksins - Суббота, 12 Марта 2011, 16:50 |
|
| |
BornInUSSR | Дата: Суббота, 12 Марта 2011, 17:42 | Сообщение # 34 |
почетный гость
Сейчас нет на сайте
| А что там осваивать? Все функции которые предоставляет эта длл описаны в туториале (она лежит в архиве с длл). Они все к стати использованы и в твоих исходниках, о каких еще примерах может идти речь?!?
|
|
| |
neksins | Дата: Суббота, 12 Марта 2011, 17:48 | Сообщение # 35 |
постоянный участник
Сейчас нет на сайте
| BornInUSSR, пример ботов (на основе бейсикммо (мой исходник)), пример видимых сервером других обьектов, пример чата с чатбоксом, чтото типа того... прошу покопайтесь тут http://rghost.ru/4727944 и потом скажите что делать чтобы настроить мобов (они же ИИ, они же боты)
Мой проект по типу Guitar Hero ИГРА ВЫПУЩЕНА!
|
|
| |
BornInUSSR | Дата: Суббота, 12 Марта 2011, 18:19 | Сообщение # 36 |
почетный гость
Сейчас нет на сайте
| Quote (neksins) BornInUSSR, пример ботов (на основе бейсикммо (мой исходник)), пример видимых сервером других обьектов, пример чата с чатбоксом, чтото типа того... ИИ для ммо и для сингл плеера ничем не отличается. Единственное что тебе нужно это передавать координаты врага, результат выполнения атаки и анимацию. Ищи любой пример ИИ и сиди разбирайся. "Настраивать" мобов будешь сам. Точнее писать им ИИ. Я могу помочь только в конкретной проблеме.
|
|
| |
neksins | Дата: Суббота, 12 Марта 2011, 18:23 | Сообщение # 37 |
постоянный участник
Сейчас нет на сайте
| Quote (BornInUSSR) ИИ для ммо и для сингл плеера ничем не отличается. я бы так несказал я незнаю как послать пакет с информацией о ИИ и отправить его по клиентам, вот в чем вся соль и незнаю какие пакеты кидать в информациях о предметах чтобы например было видно выстрелы чтобы было видно пушки на кораблях и т.п.
Мой проект по типу Guitar Hero ИГРА ВЫПУЩЕНА!
|
|
| |
BornInUSSR | Дата: Суббота, 12 Марта 2011, 19:05 | Сообщение # 38 |
почетный гость
Сейчас нет на сайте
| Quote (neksins) я незнаю как послать пакет с информацией о ИИ и отправить его по клиентам, вот в чем вся соль ИИ обрабатывается сервером. Ты только отсылаешь необходимые переменные и функции. Какие, зависит от ИИ. Ты вообще когда нибудь писал ИИ? Попробуй на каком нибудь новом проекте, получишь массу опыта и перестанешь задавать глупые вопросы. Quote (neksins) и незнаю какие пакеты кидать в информациях о предметах чтобы например было видно выстрелы чтобы было видно пушки на кораблях и т.п. Чтобы было видно выстрел (если пули это объекты) нужно отправить клиенту: 1. instance_create(); 2. x и y места где создается пуля; 3. direction; В объекте пули в клиенте должны быть указаны параметры движения, такие как скорость, радиус разброса ну и в объекте-контроллере нужно не забыть принять пакет с информацией которую отправил сервер. Все то же самое и касательно пушек, мобов и прочего.
|
|
| |
neksins | Дата: Суббота, 12 Марта 2011, 19:14 | Сообщение # 39 |
постоянный участник
Сейчас нет на сайте
| BornInUSSR, это мой первый опыт в 39длл вот логику я понимаю что и где но незнаю как в этом то вся соль, я незнаю как делать пакеты для отправки и приема
Мой проект по типу Guitar Hero ИГРА ВЫПУЩЕНА!
|
|
| |
BornInUSSR | Дата: Суббота, 12 Марта 2011, 19:18 | Сообщение # 40 |
почетный гость
Сейчас нет на сайте
| Quote (neksins) BornInUSSR, это мой первый опыт в 39длл вот логику я понимаю что и где но незнаю как в этом то вся соль, я незнаю как делать пакеты для отправки и приема Цитата из хелпа, поставляемого вместе с 39длл: Quote Sending and recieving messages For our game to work we need to know the y position of the paddle that the other player controls and the client needs to know the x, y position of the ball which will be controlled by the server. Sending In the paddle which is controlled by you, you must send your Y co-ordinate to the other player so they can draw your paddle in the right position. To do this, put this code in both the keyboard UP event and the keyboard DOWN event: clearbuffer(); writebyte(0); writeshort(y); sendmessage(global.otherplayer); The first line clears the internal buffer of any data. This is used in case there is data already in the buffer. The second line writes the byte that represents the Message Id. In this game the message id 0 will indicate the message containing the Y position. The next line writes the actual Y position to the buffer. We have used the data type "short" because a short can be any number between -32000 to +32000. A short utilizes 2 bytes. If we had used one byte to represent the Y position and the Y position is bigger than 255 it will end up being not what you wanted. The last line sends all the data in the internal buffer to the other player. In this case the data is the Message Id byte and the 2 bytes used for the Y position. Now we need to send the x, y position to the other player if we are the server. To do this put in the step event of the ball object: if(!global.master)exit; clearbuffer(); writebyte(1); writeshort(x); writeshort(y); sendmessage(global.otherplayer); The first line checks to see if we are the server. If we are NOT the server then exit the screen and do not execute the code below. If however we are the server then first clear the internal buffer. Now write the Message Id "1" which will indicate the message is the balls position. Now write a short which represents the x co-ordinate and write another short which represents the y co-ordinate. Now just send the message to the other player. Recieving a message. In the paddle that you do not control..the one which is controlled by the other player, put this code in the step event: var size; while(true) { size = receivemessage(global.otherplayer); if(size < 0) break; if(size == 0) { show_message("The other player left the game"); game_end(); } messageid = readbyte(); switch(messageid) { case 0: y = readshort(); break; case 1: objBall.x = readshort(); objBall.y = readshort();: break; } } First this creates an infinite loop using while(true). The first line of the loop recieves any messages from the other player and sets the variable "size" to how much bytes we recieved. The second line checks to see if no message was recieved. If no message was recieved then exit the infinite loop. The third line checks to see if the other player disconnected from the game. If the message size == 0 that means the player left the game. If the player did leave, then end the game. If we did recieve a message then all data from the message is placed inside the internal buffer. We can now use the buffer scripts to return the data from the message. The first part returns the message ID. After that it uses the switch() statement to check what the ID equals. If the ID is 0 then this means the message is for the other players y co-ordinate. We simply use readshort() to return the y position. Remember because we wrote the Y position as a short, we now must read the Y position using a short. If the Message ID equals 1, which represents the balls x, y position then use readshort() to set the balls x position to the right place and readshort() again to set the balls y position in the right place.
|
|
| |
|