Naruto-63, у вас вопросы сделаны через креат_инстанс? я незнаю как кодом... можно кнопками - ставите обьект без спрайта в комнату с игрой, ему в создание (или в степ неуверен) ставите кнопками (вкладка контрол, test chanse выглядит как зеленая игральная кость) шанс скажем 1 к 20 (тут наверно кол-во вопросов) что создается обьект такой-то и так все вопросы только они могут повторятся надо это допилить Мой проект по типу Guitar Hero ИГРА ВЫПУЩЕНА!
Фил, помоги, как сделать ИИ, как сделать другие обьекты видимыми другим игрокам (например пули, лазер там)
Добавлено (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 длл но очень хочу его освоить
Новый вопрос - как правильно расставить мобов? сделал что-то типа 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 длл? =(
Made_In_USSR, непомогло, вы тестировали? у меня в одном окне не поворачивает враг а в другом окне игрок поворачивается в туже сторну что и враг, хотя враг стоит недвигается
Добавлено (11.03.2011, 11:36) --------------------------------------------- в чем же все-таки дело?! ='(
Добавлено (11.03.2011, 16:23) --------------------------------------------- Ап, хэлп, почему обьект других игроков не крутится, зараза?
Добавлено (11.03.2011, 19:15) --------------------------------------------- ёмаё переписал код в новом файле сервер и клиент, сделал по уроку с 39длл о 4 местах втыкания переменной и хрен там был помогите очень прошу уже настроение проект делать ушло =(
спасибо NeZnay за дебаг опытным путем (врубил сервер задал там спрайт обьекту игрок чтоб следить за ним, врубил два окна, в сервере дебагом строчку поворота все работает) я заметил что сервер получает пакет с поворотом (хз правильно ли выразился) так как спрайты в окне сервера крутятся. значит ошибка в отправке, решил я. и точно - строчки в отправке НЕБЫЛО
_________
всем спасибо заставили меня искать баг самому вот я и вскрыл все что можно и нашол (yahoo)
супер, немог выбрать между Sholar - "Пейзаж загробного мира" и XPlay - "Демон в бане" проголосовал за пейзаж загробного мира Мой проект по типу Guitar Hero ИГРА ВЫПУЩЕНА!
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) --------------------------------------------- почему ругается на сокет?!
жирным выделен код обьекта которым в клиенте управляет игрок, то да, это оно.
значит оно
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; //Если не ошибаюсь, то разрыв соединения
вот как-то так читает если это то о чем ты спрашиваешь
Жирным выделено четние. А мне нужна запись. И не пакета а переменной.
я совсем запутался +_+
тебе нужно код степа для игрока?
{ if speed>32 speed-=0.5 //ограничение скорости if speed<-8 speed=-8; //ограничение скорости image_angle=direction; //поворот спрайта friction=0.05; //трение spd=speed*5; if qaz=1 and speed>12 speed-=0.5; //при первой передаче макс. скорость равна 10 if qaz=2 and speed>20 speed-=0.5; if qaz=3 and speed>26 speed-=0.5; if qaz=1 tah=speed*0.85/0.12; if qaz=2 tah=speed*0.85/0.2; if qaz=3 tah=speed*0.85/0.26; if qaz=4 tah=speed*0.85/0.32; if qaz=-1 tah=-speed*0.85/0.08; if qaz=0 and tah>0 tah-=1; if speed>0 prb+=speed/20250 else prb-=speed/20250; //пробег if ntr<100 ntr+=0.05; //восстановление нитро со временем if (keyboard_check(vk_up) or keyboard_check(vk_down)) and bnz>0 { if speed>0 bnz-=speed/202500 else bnz-=speed/202500; //топливо } } так чтоли?
Made_In_USSR, что, простите? если я правильно понял вот код степа(в нем все движение и все координаты как я просматривал)
while(1) //Начинается бесконечный цикл http://ru.wikipedia.org/wiki/Бесконечный_цикл { size = receivemessage(socket); //Получить следующее сообщение в очереди if(size < 0)break; //Если не получили сообщение, то выходим из цикла if(size == 0) //Если отключились от сокета - выходим { instance_destroy(); //уничтажаем обьект (а при уничтожении рассмотрим код ниже) break; } mid = readbyte(); //Прочитать сообщение (readbyte() читает данные)
switch(mid) { 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; //Если не ошибаюсь, то разрыв соединения
case playerlocation: player = players[readbyte()]; //Смотрим айди персонажа в playerlist player.x = readshort(); //set x player.y = readshort(); player.direction = readshort(); player.image_angle = readshort(); //тадамс! Читаем угол поворота других игроков! *_* break;
case exitgame: player = players[readbyte()]; //получить идентификатор игрока из playerlist with(player)instance_destroy(); //Уничтожаем break;
case playernick: player = players[readbyte()]; //Получить идентификатор игрока из playerlist player.nick = readstring(); //Смотрим никнейм break; } }
весело блин =( есть ли еще варианты? мне вот только этот баг (покачто) доделать и уже можно подставить графику и создавать тему в проектах в разработке ='( Мой проект по типу Guitar Hero ИГРА ВЫПУЩЕНА!
Dva_Kota, я даже описать не могу что произошло О_О
началась дикая колбаса @_@
http://rghost.ru/4709548 внимание версия не та что с исходниками там навороченная)
забыл добавить в архив 39длл... возьмите их с тех файлов, ок?
Добавлено (10.03.2011, 18:06) --------------------------------------------- Dva_Kota, ну игрок то поворачивает, другой игрок не видит этого, хотя первому видно (например играем я и ты. я у себя поворачиваю машинкой, ты у себя тоже а вот с моего компьютера ты двигаешся неменяя направление поворота, как начал прямоугольником так и скачешь
Добавлено (10.03.2011, 18:09) --------------------------------------------- может и исходник новый дать?
руководитель в клиенте objControl в сервере server сам игрок objPlayer другие игроки objRemote <- они то и не крутятся код рисующий других игроков draw_sprite_ext(sprite_index, image_index, x, y,1,1,image_angle,c_white,1); draw_text(x, y, nick); //по х у, относительно спрайта, пишем свой ник! Мой проект по типу Guitar Hero ИГРА ВЫПУЩЕНА!
незнаю) исходники не мои ) сервер/клиент делал по уроку Deswinga машина из car engine
мне бы понять в каком порядке что куда писать может сам бы допер но и вот по этому http://www.39dll.ru/publ/uroki/zamorochki/byl_o_chetyrekh_mestakh/7-1-0-10 делал нефига не спасает
сейчас выложу коды (но лучше все-таки скачать фаил) коды не с этой а с самой последней версии (роли не играет как там непашет так и тут х_х)
клиент объект objControl событие step
while(1) //Начинается бесконечный цикл http://ru.wikipedia.org/wiki/Бесконечный_цикл { size = receivemessage(socket); //Получить следующее сообщение в очереди if(size < 0)break; //Если не получили сообщение, то выходим из цикла if(size == 0) //Если отключились от сокета - выходим { instance_destroy(); //уничтажаем обьект (а при уничтожении рассмотрим код ниже) break; } mid = readbyte(); //Прочитать сообщение (readbyte() читает данные)
switch(mid) { 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; //Если не ошибаюсь, то разрыв соединения
case playerlocation: player = players[readbyte()]; //Смотрим айди персонажа в playerlist player.x = readshort(); //set x player.y = readshort(); player.direction = readshort(); player.image_angle = readshort(); //тадамс! Читаем угол поворота других игроков! *_* break;
case exitgame: player = players[readbyte()]; //получить идентификатор игрока из playerlist with(player)instance_destroy(); //Уничтожаем break;
case playernick: player = players[readbyte()]; //Получить идентификатор игрока из playerlist player.nick = readstring(); //Смотрим никнейм break; } }
draw_sprite_ext(sprite_index, image_index, x, y,1,1,image_angle,c_white,1); draw_text(x, y, nick); //по х у, относительно спрайта, пишем свой ник!
сервер, обьект server
player = tcpaccept(listen, 1); //Принимаем нового игрока if(player) //Иесли игрок зашел { playerid = newplayerid(); //Генерируем ему id if(playerid < 0)exit; //Если слишком много игроков, выходим i = instance_create(0, 0, objPlayer); //Создаем обьект игрока i.socketid = player; //Установливаем разъем ID для игрока в сокет, которого только что приняли i.playerid = playerid; players[playerid] = i; setnagle(player, false); //Выключить алгоритм Нагла для сокета
clearbuffer(); writebyte(playerlocation); //message id writebyte(playerid); //наш id writeshort(x); //позиция x writeshort(y); //позиция у writeshort(image_angle) //переменная image_angle, вращение //Отправляем другим with(objPlayer) { if(id != other.id) { sendmessage(socketid); } }
alarm[0] = 3;
сервер, объект player событие step
while(1) //Бесконечный цикл { size = receivemessage(socketid); if(size < 0)break; if(size == 0) { instance_destroy(); break; } timeout = 0; mid = readbyte(); //Читаем сообщение id switch(mid) { case playerlocation: //players location x = readshort(); //Читаем х y = readshort(); //Читаем у objPlayer.image_angle = readshort(); //тадамс! Читаем угол поворота других игроков! *_* break;
case playernick: //Новый никнейм nick = readstring(); //Читаем никнейм clearbuffer(); //Чистим буффер writebyte(playernick); //Пишем messageid writebyte(playerid); //Пишем мой id writestring(nick, true); //пишем nick //Отправляем игрокам with(objPlayer) { if(id != other.id) { sendmessage(socketid); } } break;
case exitgame: //Если игрок вышел instance_destroy(); //Уничтожаем break; } } timeout += current_time - deltatime; deltatime = current_time; if(timeout > 8000)instance_destroy(); //if havnt received a message in 8 seconds then destroy
Столкнулся с проблемкой... работает игра у одного игрока нормально - машина поворачивает, виден тормознуй путь, дым. когда включаю второе окно я вижу машину второго игрока... НО! при повороте спрайт нефига не поворачивает, как был прямоугольник так и скачет. нету ни дыма ни тормозного пути....
первый раз пробую 39длл, поэтому за код тапками некидайтесь, мой код смесь урока Deswinga и движка car_engine за спрайты не ругайте это не спрайты и не наброски это тестовая хрень (я про "машину")
прошу вас посмотреть на сие чудо
http://rghost.ru/4679795 - неактуален
управление поймете по исходнику
Добавлено (08.03.2011, 19:19) --------------------------------------------- очень прошу помогите 2 человека скачали но молчат как партизаны немогу понять в чем дело @_@
Добавлено (08.03.2011, 19:56) --------------------------------------------- кто качает хоть чтото прокоментируйте >...<
Добавлено (10.03.2011, 16:04) --------------------------------------------- ну помогите ктонибудь то что я только непопробывал я тут уже новую версию разрабатываю но нефига немогу понять почему не видит он угол поворота
Добавлено (10.03.2011, 16:05) --------------------------------------------- фаил скачан 6 раз и 0 коментариев ><
Добавлено (10.03.2011, 16:19) --------------------------------------------- если кто-то не может скачать а хочет помочь могу выложить код