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

конкурс Программа для выдачи ежедневных бонусов

Рекомендуемые сообщения

А, ок.

Лучше-бы сборку облегчили а не моды сували...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А, ок.

Лучше-бы сборку облегчили а не моды сували...

Ты видимо иронии не понял про "мороз". Моды никому не надо, мне по крайней мере точно. Ты пишешь программу или нет?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

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

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

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

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

 

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

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

gifter.txt

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

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

 

Время конкурса подошло к концу. И так дал еще 12 дней. Спасибо всем, кто принял участие.

Так, как работ не много, а точнее одна, рассмотрим ее. Что можно сказать, работа сыровата, и находится на начальной стадии проектирования.

 

Вот как я в своей программке для Локи определял разницу во времени:

function getWorldTime()
    if not http then
        error("Set enable API_http in ComputerCraft.cfg")
    end
    local response = http.get("http://www.timeapi.org/pdt/in+11+hours")  --change args
    if response then
        local time_mess = response.readAll()
        response.close()
        return time_mess
        else
        return "not time"
    end
end

function differenceDates(date0, date1)
    local response = http.post("http://computercraft.ru/scr/days.php?d0="..date0.."&d1="..date1)
    if response then
        difference_of_dates = response.readAll()
        response.close()
    return difference_of_dates
    else return "not calculate time"
    end
end

function deltaTimeLastVisitPlayer(name_user)--2014-07-13T21:39:45-07:00
local current_time = getWorldTime()
if current_time == "not time" then return "error get time" end
    if fs.exists(UsersPath..name_user) then
        array_user = readFromFile(UsersPath..name_user)
        last_visit_user_time = array_user[1]
        if last_visit_user_time == "not time" then return "error get time user" end
    else return "not found file of player"   
    end
    date0 = string.sub(last_visit_user_time, 1,10).."%20"..string.sub(last_visit_user_time, 12,19)
    date1 = string.sub(current_time, 1,10).."%20"..string.sub(current_time, 12,19)
    diff = differenceDates(date0, date1)
    result_diff_time = tonumber(diff)
    if result_diff_time ~=  nil then return result_diff_time
    else return "not calculate time"
    end
end

function sayVisitLongAgo()
    while true do
    sleep(math.random(300, 700)) --600 3600 10 мин - 60 мин
        local array_user = getUserNames()
            if #array_user >= 1 then
            local target_user = array_user[math.random(1,#array_user)]
            result_info_visit = deltaTimeLastVisitPlayer(target_user)
                if result_info_visit == "not found file of player" then
                -- вы ни разу не посещали божество
                commandBlock.setCommand("/say "..target_user.."!"..getMsg("special", "79"))
                commandBlock.runCommand()
                end
                result_info_visit = tonumber(result_info_visit)
                if result_info_visit~=nil then
                hours = math.floor(result_info_visit/3600)
                minutes = math.floor((result_info_visit - hours*3600)/60)
                sec = result_info_visit - hours*3600 - minutes*60
                commandBlock.setCommand("/say "..target_user.."!"..getMsg("special", "80").." ("..hours..")"..getMsg("special", "81")..", ".."("..minutes..")"..getMsg("special", "82")..", ".."("..sec..")"..getMsg("special", "83")..getMsg("special", "84").."!")
                commandBlock.runCommand()
                end
            end
     end
end
Так и даты удобнее хранить, и время получаешь с точностью до секунды между двумя любыми датами.

 

За старания, учитывая возраст, и то, что в одиночку сражался с программой, получаешь статус победителя "Конкурса № 1".

Приз назначу сам, не так как планировалось рандомно при поморщи труб, а именно, комлект нано-костюма, и золотой префикс в чате [Winner]

Получишь костюм на новом сервере Computers & Science II, Аpocalypse.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Изображение

 

С AlexCC на пару сделали то, что не смогли игроки... Времени ушло ровно 1 вечер

Лог в файл и на монитор

Выдача призов каждые сутки. После 48 часов отсутствия счетчик сбрасывается до 1

Ну и тд и тд...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Самая крутая штучка, это буфер по обработке потоков данных, на обработку которых требуется разное время. Надо будет с подробными комментариями выложить исходник, как это все работает.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Изображение

 

С AlexCC на пару сделали то, что не смогли игроки... Времени ушло ровно 1 вечер

Лог в файл и на монитор

Выдача призов каждые сутки. После 48 часов отсутствия счетчик сбрасывается до 1

Ну и тд и тд...

Был бы рабочий лаунчер и время я б тоже сделал!

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Гость
Эта тема закрыта для публикации сообщений.

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