Суббота, 27 Апреля 2024, 02:33

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 2 из 3
  • «
  • 1
  • 2
  • 3
  • »
Форум игроделов » Конструкторы игр и лёгкие в освоении системы разработки игр » Game Maker » Ищу помощь с 39длл онлайн проектом ^^ (ряд вопросов связанный с онлайн-проектами на гейм мейкере)
Ищу помощь с 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.
К стати если использовать этот способ, то мы избавляемся от одного лишнего пакета smile
Добавлено (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

из них две одинаковые кажется )

почему он ругается на сокет?
где можно почитать про создание ИИ в ммо?

____
пысы это не в гонках, теперь это космическая стрелялка happy (не надо ругать за смену проекта, пока туплю в одном чиню второй)

Добавлено (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.

Форум игроделов » Конструкторы игр и лёгкие в освоении системы разработки игр » Game Maker » Ищу помощь с 39длл онлайн проектом ^^ (ряд вопросов связанный с онлайн-проектами на гейм мейкере)
  • Страница 2 из 3
  • «
  • 1
  • 2
  • 3
  • »
Поиск:

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