MelnikovSM
-
Публикации
24 -
Зарегистрирован
-
Посещение
Сообщения, опубликованные пользователем MelnikovSM
-
-
В 2000-ном году компанией Bioware была выпущена игра MDK2 - продолжение игры MDK от Shiny Entertaiment.
Сюжет и геймплей этих обеих игр весьма интересен:
Действие игры начинается на околоземной орбите. Главные герои празднуют победу, Курт Хектик хочет вернуться к своим обязаностям уборщика, но на землю нападает новый майнкравлер, и доктор снова посылает Курта остановить его. Убив управляющего Курт собирается вернуться на станцию, но его захватывает Шванг Швинг. Доктор пытается его предупредить, но связь глушилась с корабля находящегося рядом на орбите, поэтому Доктор Хокинс посылает Макса разобраться с проблемой. Когда Макс пробивается с боем по кораблю его тоже берут в плен, а в это время на «Джим Денди» высаживаются инопланетяне. Доктор отважно сражается с инопланетянами, побеждает, присылает себе Курта, Курт без костюма, а доктор Хокинс даёт ему новый и отправляет спасти Макса. Курт прорывается на корабль, спасает Макса и побеждает Шванга Швинга. После битвы герои связались с Доктором, но услышали голос инопланетян и поняли, что их предводитель взят в плен. Шванг минирует корабль, а Курт устремляется за ним в открывшийся портал. Макс отправляется на челноке на "Джим Денди", чтобы спасти Доктора. Там же он уничтожает злого "собрата" - Робо-Пса и спасает своего изобретателя. Доктор отправляет его в портал, подразумевая, что оттуда и идут все инопланетные налёты, и продолжает очищать корабль от пришельцев во главе с конкурентом по интеллекту - Би Эф Би.
В это время Курт попадает в инопланетный мегаполис - Свиззл Фирму - и преследует корабль, в котором находится Шванг Швинг. После взрыва корабля Шванг говорит, что нападать на людей - не его прихоть, а всего лишь исполнение приказов от инопланетного императора Зиззи Балубы. Курт улетает в его дворец. Макс тоже попадает в Свиззл Фирму, но на нижние районы; он попадает на склад боеприпасов и подслушал, что инопланетяне собрались уничтожить Землю ракетой. Шестиногий робот-пёс отправляется в ангар запуска, уничтожает Шванга Швинга в инвалидном кресле (видимо, тот оказался в нём после взрыва корабля), улетает на ракете во дворец, изменив её курс и встречается с Куртом. Они ловят связь с Доктором, и сообщают ему своё местонахождение, но тот по ошибке телепортируется на небоскрёбы Свиззл Фирмы, в переговорный пункт. Там он находит локатор, позитрон и дестабилизатор, устанавливает всё это в телефонную будку и улетает во дворец.
Друзья теперь снова вместе. Они врываются во дворец и находят императора Зиззи Балубу. Оказывается, что жабоподобный инопланетный король устраивает нападения на Землю ради увеселения. Герои уничтожают императора, отомстив за родную планету. Итак, в очередной раз Курт, Макс и Доктор Хокинс прославились на всю вселенную! Они спасли тысячи жизней на планете Земля, не дав инопланетянам поработить человечество!
Игроку предстоит играть за трёх героев: Курта Хектика, Доктора Флюка Хокинса и пса Макса. В зависимости от героя игровой процесс различается: Курт часто использует снайперскую винтовку для решения головоломок и борьбы с противниками, Макс может использовать одновременно до четырёх единиц оружия, а Доктор,комбинируя разные части найденные по дороге может собирать новые устройства.
Но еще интереснее вот что: покопавшись в файлах игры(MDK2 - первая часть к Lua не имеет никакого отношения) я нашел zip архив с файлами *.lua. Немного покопавшись в самойвс игре я обнаружил командный интерпретатор Lua запускаемый кнопкой Ё или ~. В файлах игры я также нашел Debug функции (скачки между уровнями, god-mode и т.д.).
В чем суть: в игре весь логический процесс - это Lua скрипты, которые подгружает движок Omen Engine.
Что-ж, разрабы из BioWare добились такой плюшки как отсутствие необходимости перекомпиляции при любом изменении.
P.S. В игры MDK и MDK2 я играл с 8 лет и все-еще люблю их перепроходить...
-
Ну я в принципе прога то уже есть, но время она проверя5т все теми-же нагромождениями и выдача призов в праздники существует как куча if ... then ... end. В общем прогу я понемногу пилю но проверить нормально AMI всееще не получается и пишу я вслепую в том-же gedit'е...
Пока реализовано:
Основная функция
Выдача по праздникам
Информирование игрока о выйгрыше (пока только на инглише)
В общем все еще сыро и нужна критика со стороны.
P.S. Прикрепил сорц чтобы виден был текущий этап развития и для критики окружающих.
-
А, ок.
Лучше-бы сборку облегчили а не моды сували...
-
Я благополучно прилетел из Египта....
А че конкурс заморозили?
-
в 10-11 по мск го в скайп
-
Syabro, cкайп есть? Или через редкол?
-
Syabro, если хочешь - можем работать в команде. У меня уже что-то понаписано, осталось добавить выдачу ресов по праздникам и дебажить...
-
Ну а я решил сделать так, результат же будет такой-же - тока привязка идет не к часам с момента последнего входа, а к дате.
-
Хмм... Я думаю, что добиться решения недочетов с переходом дат 30-1, 31-1, 29-1 можно добавив 5 дополнительных проверок в механизме проверки выполнения. Механизм вроде должен выглядеть так:
if tonumber(lastlogin)+1==tonumber(getDate()) then
count=totalDays+1
giftDaily(player)
writeAccountData(player, tonumber(getDate()), count)
elseif tonumber(string.sub(tostring(lastlogin))), 7,8)))==30 and tonumber(string.sub(tostring(getDate(), 7, 7))==1 then
--заплатка для случая перехода дат с 30 по 1, где длинна номера месяца больше 10(числа вроде 08 tonumber превращает в 8)
count=totalDays+1
giftDaily(player)
writeAccountData(player, tonumber(getDate()), count)
elseif tonumber(string.sub(tostring(lastlogin))), 7,8)))==31 and tonumber(string.sub(tostring(getDate(), 7, 7))==1 then
--заплатка для случая перехода дат с 31 по 1, где длинна номера месяца больше 10(числа вроде 08 tonumber превращает в 8)
count=totalDays+1
giftDaily(player)
writeAccountData(player, tonumber(getDate()), count)
elseif tonumber(string.sub(tostring(lastlogin))), 6,7)))==30 and tonumber(string.sub(tostring(getDate(), 6, 6))==1 then
--заплатка для случая перехода дат с 30 по 1, где длинна номера месяца не больше 10(числа вроде 08 tonumber превращает в 8)
count=totalDays+1
giftDaily(player)
writeAccountData(player, tonumber(getDate()), count)
elseif tonumber(string.sub(tostring(lastlogin))), 6,7)))==31 and tonumber(string.sub(tostring(getDate(), 6, 6))==1 then
--заплатка для случая перехода дат с 31 по 1, где длинна номера месяца небольше 10(числа вроде 08 tonumber превращает в 8)
count=totalDays+1
giftDaily(player)
writeAccountData(player, tonumber(getDate()), count)
elseif tonumber(string.sub(tostring(lastlogin))), 5,5)))==2 and tonumber(string.sub(tostring(lastlogin))), 6,7)))==29 and tonumber(string.sub(tostring(getDate(), 6, 6))==1 then
--заплатка для случая перехода дат с 29 по 1 (февраль-март), где длинна номера месяца больше 10(числа вроде 08 tonumber превращает в 8)
count=totalDays+1
giftDaily(player)
writeAccountData(player, tonumber(getDate()), count)
else
sayChat("[Gifter] " .. player .. "'s account reset: he not joined game yesterday!")
makeAccount(player)
end
Осталось тока пофиксить что я не нашел, добавить логирование, сообщения с помощью, которые бы писались после чьего-то захода, отправка инфы(скока дней осталось, скоко дней заходил итд) в ЛС игроку ну и конечно вывод лога на экран.
P.S. Выкладываю сорц для теста ибо у самого нет возможности тестить. Напишите если че не так - постараюсь исправить.
-
Ну ладно, постараюсь....
Ток до 2го не закрывайте конкурс плз...
Я в Египте по вечерам в кафешке с WiFi-ем буду скидывать наработки и общаться..
Кстате AMI эт из какого мода? Мне над сделать сборку...
P.S. Я не играю на сервере (из-за безбожных лагов на моем железе) и приз мне не нужен...
-
Ну до вылета написать это все не успею скорее всего - а до 2 августа никто ждать наверно не будет и пока я на море плаваю все уже сделают проги и победителя обявят...
В общем сдаю позиции(((
-
Как и .jar )
Я вчера в 3 часа ночи сидел и соображал не очень - даже string.sub потерял)))
Я юзаю клавиатуру для ведроида Hacker's Keyboard - в ней с эмулем все норм, есть куча клавиш(даже SysRq))...
-
Ну я хз че жт за мод, я прогу написал, там можно изменять призы - массивы в начале функций gift. AlexCC, протести плз - а дни с выдачей суперпризов я могу добавить, а вот фикс с 30 по первое число нет.
А победитель будет обьявлен по функционалу или по скорости написания?
Ну тогда квантовый генератор буднт впервые выигран через 600 лет
-
Так же я пока в замешательстве, как отслеживать смену месяца и года. Если сравнивать только дату, то как быть, если человек зашел 30-го, а потом 1-го числа. А в месяце сколько дней? 30 или 31? Как это отслеживать? Надо подумать..
Я тоже думаю как это сделать и это в прогу не включил((
-
Вот выкладываю, исправил что нашел... В 1.5.2 функция playerLoginDetect не реагирует на вход. Ну думаю это из-за версии.
-
У меня почти готова, ща тестить буду...
-
Угу, тока как из love файла достать файлы если порт тока их принимает?
-
AlexCC, спс - я прост чтот уже подзабыл так как изучал компкрафт полтора года назад.
Сябро, в таком случае у тя прога выдаст призы если изменится дата, так в 11 зашел, получил, в час ночи зашел - еще получил.
-
Окай, в египте по вечерам думать буду(18ого лечу)...
Вопрос у меня пока лишь как из текста на выводе получить понятнуюю информацию(дата ДДММГГГГ и время в виде 1415 где 14 это часы а 15 это минуты). Ответьте плз.
Ну или как выловить из стринга текст с одного до другого символа.
Вот кусок кода с переводом времени на понятный язык где я "ниасилил":
worldTime=getWorldTime()
function cfs(string, first, last) -- функция, возвращающая текст из стринга с одного смвола до другого
.... -- тут я незнаю че писать((
end
date=toNumber(cfs(worldTime,1,4) .. cfs(worldTime, 5,6) .. cfs(worldTime, 8, 9))
time=toNumber(cfs(worldTime, 12, 13) .. cfs(worldTime, 15, 16))
P. S. Если функция cfs существует, дайте ее код, а если есть в апи компкрафта - пинок в описание апи где я не заметил.
-
Спс за инфу, Сябро.
У меня к счастью планшет поддерживает подклучение перифирии по USB).
Завтра протестирую... Хотя я пробовал вызвать вирт. клавиатуру через дыру в одной проге. Пишу - love2d пофиг((
Ну надеюсь клава работать будет..
-
Наверное каждый начинающий программист ComputerCraft хотел тестировать свои программки без запуска Minecraft. Был когда-то эмулятор CCEmu, но проект закрылся и не у кого не осталось рабочей версии эмулятора. Но появился новый, кроссплатформенный (работает на винде, линуксе и маке) эмулятор на основе движка Love 2D(движок на том-же Lua). Для чего нужен эмулятор думаю всем понятно, напишу что эмулятор умеет а чего не умеет.
Умеет он:
* Работать на Windows, MacOSX и Linux
* Работать с HTTP-API
* Работать как цветной компьютер
НЕ умеет он:
* Менять размер экрана (хотя в конфиге есть такой пункт)
* Работать как обычный компьютер (хотя этот пункт есть в конфиге)
* Мульти-компьютерность (чтобы было много компьютеров)
* Эмуляции редстоуна
Скриншот с офф. сайта: https://camo.githubusercontent.com/23b40f9eea15d07ec64b72250451bd8578b4bf59/68747470733a2f2f646c2e64726f70626f7875736572636f6e74656e742e636f6d2f752f35333733303231322f63636c6f76655f64656d6f2e706e67
Офф. страница на GitHub: https://github.com/Sorroko/cclite
Версии для скачивания: https://github.com/Sorroko/cclite/releases
-
2
-
-
Портируем OpenWrt на Lua?))))))))))))))))))))))))))))))))))))
-
OpenComputers добавит красноглазие в minecraft) хотя.. хотел бы я посмотреть на сборку юниксового ядра на lua) а интерфейс похож на голый линукс(ну или юникс) - комманд промт sh(хотя даже в ведроиде уже стоит bash), струуктура фс тоже похожа. Автор мода явно линуксоид или бсдишник) Когда мод перестанет глючить то станет лучше cc( а может кого и на линукс переведет)). Разрешение экрана у моника тут лучше - может геймдев будет с юзаньем ascii псевдо графики. Я вот сам подобие линукса пописываю под компкрафт если честно( и ридав видел 0.3.1 релиз вроде). В общем слово open в названии как-бы намекает на опенсорц.

Программа для решения лабиринта
в Разное
Опубликовано:
Атмега это ардуинка