Totoro
Гуру-
Публикации
1 950 -
Зарегистрирован
-
Посещение
-
Победитель дней
289
Тип публикации
Блоги
Профили
Форум
Багтрекер
Магазин
Все публикации пользователя Totoro
-
Вау. Дорога смахивает на хребет какого-то сильно здорового пресмыкающегося. =)
- 97 ответов
-
- 1
-
-
Приведи пример кода. А вообще если ты задаёшь окружение при выполнении файла, то для кода внутри файла это будет обычное глобальное окружение. Он сможет взять оттуда какие-то переменные просто по именам.
-
Ты можешь использовать семь пробелов для идентации, называть переменные транслитом, писать весь код в одной большой функции и перемещаться по ней исключительно с помощью goto. Два пробела - это просто стайлгайд, правило хорошего тона и немного стандартизации для разношёрстной компании Lua-программистов. Не вижу тут ничего плохого. :P
-
Что за "дисковый мегабит" и "обычный мегабит"? И почему они равны 125 и 125 килобит? Можно ссылочку куда-нибудь на вики?
-
Если функция возвращает несколько значений: function f() return 1, 2, 3, "Hello", "world" end То можно сохранить возвращаемые значения в несколько переменных, просто приравняв их к возвращаемому значению функции: local number1, number2, number3, greetings1, greetings2 = f() Или можно засунуть их в таблицу: local result = { f() } В таблице они расположатся по порядку под числовыми индексами, начиная с 1. То есть result[1] будет равен 1, result[4] будет равен "Hello" и т.п.
-
Учитывая, что у карточек есть название, мне кажется наиболее логичным записать имя файла и номер "чанка" в него. Допустим карточка называется cote.png [1/22]. Ну и тут как бы всё понятно. Название остаётся человекочитаемым, но при этом программа чтения карточек может распарсить из него всё что нужно для того, чтобы собрать файл обратно.
-
Под номерами банкнот я как раз и имел ввиду "айди бумажки" :P
-
Мне что-то кажется, в этом аспекте на ещё долго можно не беспокоиться Пока сотню-другую юзеров одновременно онлайн не накопим.
-
Да, с дюпом предметов придётся бороться как раньше. Ну можно только дополнительно в админ-магазине статистику вести - кто там что сбывает крупными партиями. База данных то без проблем выдержит нашу нагрузку. Для современных баз данных это смешные показатели. =) Тут главное чтобы сетевой канал ОС не подкачал. Но если там будет висеть какой-нибудь TCP сокет, один на банкомат, мне кажется это тоже будет фигня.
-
На самом деле тут есть простое решение. Надо использовать не простые айтемы-купюры, а купюры с номерами (зашитыми в NBT-теги, например). Банкомат, выдающий деньги, должен генерить эти номера и запоминать их в БД. При совершении каждой операции, банк должен сверяться с БД и проверять актуальность номера. И после завершения операции затирать его в БД. Таким образом, надюпать банкнот будет вполне реально, но воспользоваться ими - нет. А если банк будет запоминать, кому выдал банкноту, можно будет примерно отсделить цепочку, ведущую к "фальшивомонетчику". Конечно тут тоже могут быть накладки, но это уже будет достаточно прикольный экономический механизм, имхо.
-
Там по сути надо не банк сделать. А маленькую программку, которая будет только обналичивать виртуальную валюту на айтем-банкноты, и обратно. Остальная система готова и надо сделать только "банкомат".
-
Уже обращались (в ирке) =) Тотора занят, и запилить новый банк не может.
-
Нравится мне, когда темы заканчиваются такими фразами
-
Алекс, это будет в любом случае интереснее чем полное отсутствие серверов :P А что там было сложного на Прометее? Там всё как раз изи-бризи. Никакие терминалы не должны нигде стоять и бояться ребутов, чтобы не сломаться. Все программы контролирутся игроками - они сами за ними следят. Безопасный тесный посёлок окружённый стенами. А за ними - суровая пустошь, где ходят табунами зверские монстры. Кучи руин по всей карте, минимум ресурсов. Майн-миры по расписанию. На спавне майн мира - клетка из обсидиана с дырами для роботов. Первые ресурсы покупать в админшопе, в обмен на связки шкур от всяких монстров и т.п. Красота же.
-
Даёшь Прометей!
-
Помянем. P.S. , отличный трек.
-
Да, прошу прощения, твой вариант тоже нормальный. Это я просто давно на Луа не писал. Показалось что там массив объявляется.
-
А что это за наркомания вообще? Просто local wlist = { Gaap = true } На несколько человек, соответственно, будет так: local wlist = { A = true, B = true, C = true }. Сложные имена можно отдельно добавлять: wlist["Сложное имя, очень сложное"] = true.
-
Там тревога была реализована через мод Nuclear Control. То есть у тебя где-то стоит сирена, и ждёт сигнала редстоуна. А программа lock при возникновении тревоги шлёт этот сигнал. Управляет сигналом редстоуна красный контроллер (блок из OC который выдает сигналы редстоуна - Redstone I/O в англ. версии). А чтобы настроить где он находится и на какую сторону выдавать сигнал в программе есть команда alarm. Вот тут про неё немного. Там у команды всего несколько параметров - название триггера, параметр который обозначает разницу в уровнях того кто позвонил, и уровня двери (типа если нехватает уровня на сколько-то единиц - то тревога), адрес контроллера редстоуна, и сторона куда выдавать сигнал. Там вроде справка есть в программе по командам. Например: alarm ? выдаст подсказку по команде alarm.
-
Ты меня не слушаешь. blink - это не эвент. Это переменная с флагом. Она сохраняет своё состояние. Пока в переменной находится значение true - лампа будет мигать. Потому что главный цикл повторяется снова и снова. А чтобы главный цикл повторялся без задержек - тебе надо модифицировать вызов event.pull() и добавить туда ограничение на время. Тогда функция будет ждать эвентов пару десятых секунды, затем завершаться, потом будет мигать лампа (один раз), потом снова будет пара десятых секунды ожидания эвентов - а потом снова одно мигание. И так пока ты не сменишь значение флага.
