Перейти к содержимому

MelnikovSM

Пользователи
  • Публикации

    24
  • Зарегистрирован

  • Посещение

Сообщения, опубликованные пользователем MelnikovSM


  1. В 2000-ном году компанией Bioware была выпущена игра MDK2 - продолжение игры MDK от Shiny Entertaiment.

    Сюжет и геймплей этих обеих игр весьма интересен:

     

    Действие игры начинается на околоземной орбите. Главные герои празднуют победу, Курт Хектик хочет вернуться к своим обязаностям уборщика, но на землю нападает новый майнкравлер, и доктор снова посылает Курта остановить его. Убив управляющего Курт собирается вернуться на станцию, но его захватывает Шванг Швинг. Доктор пытается его предупредить, но связь глушилась с корабля находящегося рядом на орбите, поэтому Доктор Хокинс посылает Макса разобраться с проблемой. Когда Макс пробивается с боем по кораблю его тоже берут в плен, а в это время на «Джим Денди» высаживаются инопланетяне. Доктор отважно сражается с инопланетянами, побеждает, присылает себе Курта, Курт без костюма, а доктор Хокинс даёт ему новый и отправляет спасти Макса. Курт прорывается на корабль, спасает Макса и побеждает Шванга Швинга. После битвы герои связались с Доктором, но услышали голос инопланетян и поняли, что их предводитель взят в плен. Шванг минирует корабль, а Курт устремляется за ним в открывшийся портал. Макс отправляется на челноке на "Джим Денди", чтобы спасти Доктора. Там же он уничтожает злого "собрата" - Робо-Пса и спасает своего изобретателя. Доктор отправляет его в портал, подразумевая, что оттуда и идут все инопланетные налёты, и продолжает очищать корабль от пришельцев во главе с конкурентом по интеллекту - Би Эф Би.

     

    В это время Курт попадает в инопланетный мегаполис - Свиззл Фирму - и преследует корабль, в котором находится Шванг Швинг. После взрыва корабля Шванг говорит, что нападать на людей - не его прихоть, а всего лишь исполнение приказов от инопланетного императора Зиззи Балубы. Курт улетает в его дворец. Макс тоже попадает в Свиззл Фирму, но на нижние районы; он попадает на склад боеприпасов и подслушал, что инопланетяне собрались уничтожить Землю ракетой. Шестиногий робот-пёс отправляется в ангар запуска, уничтожает Шванга Швинга в инвалидном кресле (видимо, тот оказался в нём после взрыва корабля), улетает на ракете во дворец, изменив её курс и встречается с Куртом. Они ловят связь с Доктором, и сообщают ему своё местонахождение, но тот по ошибке телепортируется на небоскрёбы Свиззл Фирмы, в переговорный пункт. Там он находит локатор, позитрон и дестабилизатор, устанавливает всё это в телефонную будку и улетает во дворец.

     

    Друзья теперь снова вместе. Они врываются во дворец и находят императора Зиззи Балубу. Оказывается, что жабоподобный инопланетный король устраивает нападения на Землю ради увеселения. Герои уничтожают императора, отомстив за родную планету. Итак, в очередной раз Курт, Макс и Доктор Хокинс прославились на всю вселенную! Они спасли тысячи жизней на планете Земля, не дав инопланетянам поработить человечество!

     

    Игроку предстоит играть за трёх героев: Курта Хектика, Доктора Флюка Хокинса и пса Макса. В зависимости от героя игровой процесс различается: Курт часто использует снайперскую винтовку для решения головоломок и борьбы с противниками, Макс может использовать одновременно до четырёх единиц оружия, а Доктор,комбинируя разные части найденные по дороге может собирать новые устройства.

     

    Но еще интереснее вот что: покопавшись в файлах игры(MDK2 - первая часть к Lua не имеет никакого отношения) я нашел zip архив с файлами *.lua. Немного покопавшись в самойвс игре я обнаружил командный интерпретатор Lua запускаемый кнопкой Ё или ~. В файлах игры я также нашел Debug функции (скачки между уровнями, god-mode и т.д.).

     

    В чем суть: в игре весь логический процесс - это Lua скрипты, которые подгружает движок Omen Engine.

     

    Что-ж, разрабы из BioWare добились такой плюшки как отсутствие необходимости перекомпиляции при любом изменении.

     

    P.S. В игры MDK и MDK2 я играл с 8 лет и все-еще люблю их перепроходить...


  2. Ну я в принципе прога то уже есть, но время она проверя5т все теми-же нагромождениями и выдача призов в праздники существует как куча if ... then ... end. В общем прогу я понемногу пилю но проверить нормально AMI всееще не получается и пишу я вслепую в том-же gedit'е...

    Пока реализовано:

    Основная функция

    Выдача по праздникам

    Информирование игрока о выйгрыше (пока только на инглише)

     

    В общем все еще сыро и нужна критика со стороны.

    P.S. Прикрепил сорц чтобы виден был текущий этап развития и для критики окружающих.

    gifter.txt


  3. Хмм... Я думаю, что добиться решения недочетов с переходом дат 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. Выкладываю сорц для теста ибо у самого нет возможности тестить. Напишите если че не так - постараюсь исправить.

    Gifter.txt


  4. Ну ладно, постараюсь....

    Ток до 2го не закрывайте конкурс плз...

    Я в Египте по вечерам в кафешке с WiFi-ем буду скидывать наработки и общаться..

     

    Кстате AMI эт из какого мода? Мне над сделать сборку...

     

    P.S. Я не играю на сервере (из-за безбожных лагов на моем железе) и приз мне не нужен...


  5. Ну я хз че жт за мод, я прогу написал, там можно изменять призы - массивы в начале функций gift. AlexCC, протести плз - а дни с выдачей суперпризов я могу добавить, а вот фикс с 30 по первое число нет.

     

    А победитель будет обьявлен по функционалу или по скорости написания?

     

    Ну тогда квантовый генератор буднт впервые выигран через 600 лет


  6. Так же я пока в замешательстве, как отслеживать смену месяца и года. Если сравнивать только дату, то как быть, если человек зашел 30-го, а потом 1-го числа. А в месяце сколько дней? 30 или 31? Как это отслеживать? Надо подумать..

    Я тоже думаю как это сделать и это в прогу не включил((


  7. AlexCC, спс - я прост чтот уже подзабыл так как изучал компкрафт полтора года назад.

    Сябро, в таком случае у тя прога выдаст призы если изменится дата, так в 11 зашел, получил, в час ночи зашел - еще получил.


  8. Окай, в египте по вечерам думать буду(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 существует, дайте ее код, а если есть в апи компкрафта - пинок в описание апи где я не заметил.


  9. Спс за инфу, Сябро.

    У меня к счастью планшет поддерживает подклучение перифирии по USB).

    Завтра протестирую... Хотя я пробовал вызвать вирт. клавиатуру через дыру в одной проге. Пишу - love2d пофиг((

    Ну надеюсь клава работать будет..


  10. Наверное каждый начинающий программист 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

  11. OpenComputers добавит красноглазие в minecraft) хотя.. хотел бы я посмотреть на сборку юниксового ядра на lua) а интерфейс похож на голый линукс(ну или юникс) - комманд промт sh(хотя даже в ведроиде уже стоит bash), струуктура фс тоже похожа. Автор мода явно линуксоид или бсдишник) Когда мод перестанет глючить то станет лучше cc( а может кого и на линукс переведет)). Разрешение экрана у моника тут лучше - может геймдев будет с юзаньем ascii псевдо графики. Я вот сам подобие линукса пописываю под компкрафт если честно( и ридав видел 0.3.1 релиз вроде). В общем слово open в названии как-бы намекает на опенсорц.

×
×
  • Создать...