И так, всем доброго времени суток! Я создал одну очень необычную программу, которая предназначена для игры Minecraft. Нет, это не чит, не мод и не плагин, а программа, рандомно выбирающая мини-игру с какого-либо знаменитого сервера, к примеру HiveMC или Mineplex. Вам покажется, что сделать такую программу проще простого, однако я так не думаю, поскольку на ее создание я потратил несколько недель, и то до конца она еще не доделана. В нее входят 39 различных игр. Чем же она необычна? Во-первых, большим количеством кастомизаций, т.е. вы сможете настроить программу под вас: выбрать цвет текста, цвет фона, рисунок фона и т.д. Но хочу обратить внимание рисунок фона - хейтеры MLP - прошу не бить больно. Сначала программу я делал для себя и своих друзей, которые являются брони, поэтому все фоновые рисунки, за исключением одного, на котором вообще ничего не изображено, находятся арты с пони :3 Для начала немного скринов, а потом уже подробнее о функционале программы.
Теперь, думаю, можно рассказать о кнопках программы, чтобы никто не запутался. Первый экран (при запуске игры вы в нем) содержит 6 кнопок. Кнопка Quit завершает игру; Select - запускает механизм рандомного выбора игры; Options - переводит вас на экран опций программы; Save - сохранить текущие настройки (довольно коряво работает); Load - загрузить ранее сохраненные настройки; Delete Save - удалить файл с сохранением. Второй экран - экран опций, там 9 кнопок: Return - вернуться на первый экран; More - переводит на экран с доп. опциями (еще в разработке); Games - переводит на экран с выбором игр, которые могут выбраться при нажатии на кнопку Select на первом экране; затем следует средняя венюшка с шестью кнопками, которые и являются основными на этом экране: "Game Selector Text Color" - цвет текста игр, выбранных на первом экране; "Options Menu Text Color" - цвет текста в меню опций; "Background Color" - цвет фона на всех экранах; "Games Menu Text Color" - цвет текта в меню выбора игр; "Server & IP Text Color" - цвет текста вывода сервера и его IP под выбранной игрой на первом экране; "Background Image" - рисунок фона. И третий экран - Games. Здесь вы можете выбирать игры, которые будут и не будут выбираться по нажатию на "Select" в первом экране: красный квадратик напротив игры - может выбираться, белый - не может. Кнопка None выключает все игры, All - наоборот включает все игры. Return - возвращает в меню опций. P.S. Программа делалась почти месяц, думаю оцените. Она не доделана, могут быть опечатки и мелкие баги. Сохранения в игре - дно, надеюсь найдется человек, который сможет мне объяснить как делать сохранения не через game_save. Я побил личный рекорд - 525 строк кода в одном событии, во всей программе около 2000 строк кода. И теперь наконец ссылка на скачивание: https://yadi.sk/d/bkjiuV7ydi7Rk
Было бы вообще круто, если бы по нажатию кнопки не только высвечивался рандомный сервер, но и запускался сам Майн и переходил бы автоматически по заданному IP )) Для ваших вопросов по Game Maker есть специально созданный форум. Оставьте в покое мою личку. Спасибо за внимание!
Было бы вообще круто, если бы по нажатию кнопки не только высвечивался рандомный сервер, но и запускался сам Майн и переходил бы автоматически по заданному IP ))
И правда, жаль, что GM на такое не способен... ВАСЕЧКА - Попугай
Погугли работу с .bat файлами. Я через них, помню, Майн запускал, когда лицухи не было )) GM должен уметь с ними работать. В конце-концов, можно .dll присобачить. Для ваших вопросов по Game Maker есть специально созданный форум. Оставьте в покое мою личку. Спасибо за внимание!
Погугли работу с .bat файлами. Я через них, помню, Майн запускал, когда лицухи не было )) GM должен уметь с ними работать. В конце-концов, можно .dll присобачить.
Окей, попробую. Слушай, а как сохранять игру в .ini файле? Я вроде пробовал уже, что-то там ini_open... и т.д. Но все равно ничего не получилось. Это долго объяснять, или ты сможешь мне небольшой урок дать? ВАСЕЧКА - Попугай
Да ладно, я с вас фигею ) Чувствую, недалек тот час, когда с меня будут просить туториал по запуску Game Maker. Серьезно, в случае с INI достаточно просто пробежаться по справке:
ini_read_real('Секция', 'Ключ', Значение по умолчанию) - считывание числового значения и ini_read_string('Секция', 'Ключ', 'Значение по умолчанию') - считывание строчного значения по аналогии.
Ну и ini_write_real('Секция', 'Ключ', Новое значение) плюс по аналогии ini_write_string('Секция', 'Ключ', 'Новое значение');
Вот пример записи и загрузки переменной peremennaya:
ini_open('ini.cfg'); ini_write_real('Секция один', 'Переменная', 229); peremennaya=ini_read_real('Секция один', 'Переменная', 0); //0 - значение, которое будет возвращено, если в ini.cfg не будет нужной инфы ini_close(); Для ваших вопросов по Game Maker есть специально созданный форум. Оставьте в покое мою личку. Спасибо за внимание!
Вот пример записи и загрузки переменной peremennaya:
Ну, спасибо, однако. Я не профи, поэтому понял мало что, однако если попробовать на практике, то, думаю, все будет просто. Я вот помню, раньше думал: "Как вы вообще разбираетесь в этом GML?! Это же ад!". А сейчас...
Код
draw_set_font(font0) draw_set_alpha(0.5) draw_sprite(main_rect_spr,0,0,220) draw_set_alpha(1) if global.text=0 && global.e0=0 { global.text=irandom(38) } if global.text=1 && global.e1=0 { global.text=irandom(38) } if global.text=2 && global.e2=0 { global.text=irandom(38) } if global.text=3 && global.e3=0 { global.text=irandom(38) } if global.text=4 && global.e4=0 { global.text=irandom(38) } if global.text=5 && global.e5=0 { global.text=irandom(38) } if global.text=6 && global.e6=0 { global.text=irandom(38) } if global.text=7 && global.e7=0 { global.text=irandom(38) } if global.text=8 && global.e8=0 { global.text=irandom(38) } if global.text=9 && global.e9=0 { global.text=irandom(38) } if global.text=10 && global.e10=0 { global.text=irandom(38) } if global.text=11 && global.e11=0 { global.text=irandom(38) } if global.text=12 && global.e12=0 { global.text=irandom(38) } if global.text=13 && global.e13=0 { global.text=irandom(38) } if global.text=14 && global.e14=0 { global.text=irandom(38) } if global.text=15 && global.e15=0 { global.text=irandom(38) } if global.text=16 && global.e16=0 { global.text=irandom(38) } if global.text=17 && global.e17=0 { global.text=irandom(38) } if global.text=18 && global.e18=0 { global.text=irandom(38) } if global.text=19 && global.e19=0 { global.text=irandom(38) } if global.text=20 && global.e20=0 { global.text=irandom(38) } if global.text=21 && global.e21=0 { global.text=irandom(38) } if global.text=22 && global.e22=0 { global.text=irandom(38) } if global.text=23 && global.e23=0 { global.text=irandom(38) } if global.text=24 && global.e24=0 { global.text=irandom(38) } if global.text=25 && global.e25=0 { global.text=irandom(38) } if global.text=26 && global.e26=0 { global.text=irandom(38) } if global.text=27 && global.e27=0 { global.text=irandom(38) } if global.text=28 && global.e28=0 { global.text=irandom(38) } if global.text=29 && global.e29=0 { global.text=irandom(38) } if global.text=30 && global.e30=0 { global.text=irandom(38) } if global.text=31 && global.e31=0 { global.text=irandom(38) } if global.text=32 && global.e32=0 { global.text=irandom(38) } if global.text=33 && global.e33=0 { global.text=irandom(38) } if global.text=34 && global.e34=0 { global.text=irandom(38) } if global.text=35 && global.e35=0 { global.text=irandom(38) } if global.text=36 && global.e36=0 { global.text=irandom(38) } if global.text=37 && global.e37=0 { global.text=irandom(38) } if global.text=38 && global.e38=0 { global.text=irandom(38) } if global.textbegin=true { draw_set_color(global.textcolor) if global.text=0 { draw_text(32,216,"Hunger Games") draw_set_color(global.serveripcolor) draw_text(160,280,"MCSG") draw_text(80,320,"eu.mcsg.in") draw_set_color(global.textcolor) } if global.text=1 { draw_text(32,216,"Cops & Crims") draw_set_color(global.serveripcolor) draw_text(160,280,"Hypixel") draw_text(80,320,"mc.hypixel.net") draw_set_color(global.textcolor) }
if global.text=2 { draw_text(32,216,"TNT-Run") draw_set_color(global.serveripcolor) draw_text(160,280,"Hypixel") draw_text(80,320,"mc.hypixel.net") draw_set_color(global.textcolor) }
if global.text=3 { draw_text(32,216,"TNT-Tag") draw_set_color(global.serveripcolor) draw_text(160,280,"Hypixel") draw_text(80,320,"mc.hypixel.net") draw_set_color(global.textcolor) }
if global.text=4 { draw_text(32,216,"TNT-Wizards") draw_set_color(global.serveripcolor) draw_text(160,280,"Hypixel") draw_text(80,320,"mc.hypixel.net") draw_set_color(global.textcolor) }
if global.text=5 { draw_text(32,216,"Bow Spleef") draw_set_color(global.serveripcolor) draw_text(160,280,"Hypixel") draw_text(80,320,"mc.hypixel.net") draw_set_color(global.textcolor) }
if global.text=6 { draw_text(32,216,"Spleef+") draw_set_color(global.serveripcolor) draw_text(160,280,"Mineplex") draw_text(80,320,"eu.mineplex.com") draw_set_color(global.textcolor) }
if global.text=7 { draw_text(32,216,"Sky Wars") draw_set_color(global.serveripcolor) draw_text(160,280,"Woodycraft") draw_text(80,320,"woodycraft.net") draw_set_color(global.textcolor) }
if global.text=8 { draw_text(32,216,"The Herobrine") draw_set_color(global.serveripcolor) draw_text(160,280,"HiveMC") draw_text(80,320,"hivemc.eu") draw_set_color(global.textcolor) }
if global.text=9 { draw_text(32,216,"SG: Heroes") draw_set_color(global.serveripcolor) draw_text(160,280,"HiveMC") draw_text(80,320,"hivemc.eu") draw_set_color(global.textcolor) }
if global.text=10 { draw_text(32,216,"Kit PVP") draw_set_color(global.serveripcolor) draw_text(160,280,"Woodycraft") draw_text(80,320,"woodycraft.net") draw_set_color(global.textcolor) }
if global.text=11 { draw_text(32,216,"Quake Craft") draw_set_color(global.serveripcolor) draw_text(160,280,"HiveMC") draw_text(80,320,"hivemc.eu") draw_set_color(global.textcolor) }
if global.text=12 { draw_text(32,216,"Ghost Craft") draw_set_color(global.serveripcolor) draw_text(160,280,"Shotbow") draw_text(80,320,"eu.shotbow.net") draw_set_color(global.textcolor) }
if global.text=13 { draw_text(32,216,"DayZ") draw_set_color(global.serveripcolor) draw_text(160,280,"Shotbow") draw_text(80,320,"eu.shotbow.net") draw_set_color(global.textcolor) }
if global.text=14 { draw_text(32,216,"VampireZ") draw_set_color(global.serveripcolor) draw_text(160,280,"Hypixel") draw_text(80,320,"mc.hypixel.net") draw_set_color(global.textcolor) }
if global.text=15 { draw_text(32,216,"Run From The Beast") draw_set_color(global.serveripcolor) draw_text(160,280,"Mineplex") draw_text(80,320,"eu.mineplex.com") draw_set_color(global.textcolor) }
if global.text=16 { draw_text(32,216,"Speed Run") draw_set_color(global.serveripcolor) draw_text(160,280,"Woodycraft") draw_text(80,320,"woodycraft.net") draw_set_color(global.textcolor) }
if global.text=17 { draw_text(32,216,"X-Run") draw_set_color(global.serveripcolor) draw_text(160,280,"Null") draw_text(80,320,"Null") draw_set_color(global.textcolor) }
if global.text=18 { draw_text(32,216,"Splegg") draw_set_color(global.serveripcolor) draw_text(160,280,"HiveMC") draw_text(80,320,"hivemc.eu") draw_set_color(global.textcolor) }
if global.text=19 { draw_text(32,216,"Block Party") draw_set_color(global.serveripcolor) draw_text(160,280,"HiveMC") draw_text(80,320,"hivemc.eu") draw_set_color(global.textcolor) }
if global.text=20 { draw_text(32,216,"One In The Chamber") draw_set_color(global.serveripcolor) draw_text(160,280,"HiveMC") draw_text(80,320,"hivemc.eu") draw_set_color(global.textcolor) }
Понятия не имею, как ты пришел к такому бредовому коду, и что этот самый код вообще делает )) Для ваших вопросов по Game Maker есть специально созданный форум. Оставьте в покое мою личку. Спасибо за внимание!