Войти или зарегистрироваться
  • Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.

[DEV] LuaBucket (пишем плагины на lua скриптах)

Статус
Закрыто для дальнейших ответов.
ну так значит на х64 битной ОС никто не сможет использовать этот плагин?
 
а реально найти сам .dll файл на х64 bit-ую систему?
 
искал. не нашёл. похоже компилить нужно. и не факт что заведётся. один из пользователей на bukkit списался со мной. он сейчас делает другой плагин с луа где dll не нужны будут.
 
ну помоги мне чем нибудь!!! :(
 
обновил первый пост! кардинально сменился плагин! пробуйте
 
а можно ли запилить так что бы при определённом количевстве игроков была своя прорисовка?
например до 30 игроков максимальная, дальше при 35 меньше... меньше, меньше...
 
вроде нельзя, т.к. нужен рестарт после изменения дальности прорисовки.
 
работает?
какой параметр прорисовки?
 
все теперь все работает отлично:), только скрипт о том что "цени свою жизнь" без таймера... только умер, тебя выбросило с причиной цени свою жизнь, и тут же можно заходить.
Если говорить о прорисовке, то такой скрипт был бы ОЧЕНЬ крутой, и ОЧЕНЬ удобный!!!

кстати, а вообще реально ли сделать что-то с прорисовкой не выключая сервер?
 
все теперь все работает отлично:), только скрипт о том что "цени свою жизнь" без таймера... только умер, тебя выбросило с причиной цени свою жизнь, и тут же можно заходить.
Если говорить о прорисовке, то такой скрипт был бы ОЧЕНЬ крутой, и ОЧЕНЬ удобный!!!

кстати, а вообще реально ли сделать что-то с прорисовкой не выключая сервер?

нет, не реально.
 
исправленный под текущую версию LuaBucket скрипт DeadOrLive
после смерти выкидывает игрока и не даёт войти на сервер в течении 120-и секунд (настраиваемо)
 

Вложения:

  • DeadOrLive.zip
    DeadOrLive.zip
    Размер файла
    1,1 КБ
    Просмотров
    8
вроде нельзя, т.к. нужен рестарт после изменения дальности прорисовки.
Не соглашусь.Это можно реализовать с помощью своей системы подгрузки и выгрузки чанков.
 
Спс за скрипт , но плиз как сделать что игрок умер и его тп на спаун а потом кик, а то когда заходишь оказываешься на том месте где умер !И опять умираешь!
 
какой командой у тебя отправить себя на spawn?
 
проверь этот
PHP:
-- время в секундах
local DeadTime = 120
local DeadMessage = "Цени свою жизнь"
local filedir = BASEdir.."scripts\\DeadOrLive\\"

function onDeath(event)
    local player = event:getEntity()
    if (assistant:isPlayer(player)) then
        if (player:hasPermission("deadorlive.off")) then return
        else
            local name = player:getName()
            local file = io.open(filedir..name, "w+")
            if (file == nil) then
                os.execute("mkdir "..filedir)
                file = io.open(filedir..name, "w+")
            end
            local now = math.floor(os.time()/1000) --fix for luaj os.time return as 'ms'
            file:write(now)
            file:close()

            -- через 1 секунду после смерти выкинуть игрока из игры. сделано, что остальные плагины обработали событие onEntityDeath
            dispatcher:scheduleAsyncDelayedTask((function()
                        player:performCommand("spawn") -- выполняем команду /spawn от имени игрока, т.е. телепортируем его на Spawn
                        player:kickPlayer(DeadMessage);
            end), 20)
            return
        end
    end
end
dispatcher:registerListener(MC_EVENT_ENTITY_DEATH, onDeath)

function onLogin(event)
    local player = event:getPlayer()
    local name = player:getName()
    local file = io.open(filedir..name)

    --logger:info(tostring(player:hasPermission("deadorlive.off")))
    --player:loadData()
    --logger:info(tostring(player:hasPermission("deadorlive.off")))

    if (file) then
        local DeathTime = file:read('*l')
        file:close()
        local now = math.floor(os.time()/1000) --fix for luaj os.time return as 'ms'
        local canEnter = (now > DeathTime + DeadTime)
        if (canEnter) then
            os.remove(filedir..name)
        else
            local PlayerLoginEvent_Result = luajava.newInstance("org.bukkit.event.player.PlayerLoginEvent",player):getResult()
            local result = PlayerLoginEvent_Result:valueOf("KICK_OTHER")
            -- timeleft - сколько осталось времени пока можно войти в секундах
            local timeleft = (DeathTime + DeadTime - now)
            local timeleft_preffix = " осталось "
            local timeleft_suffix = "сек"
            event:disallow(result,DeadMessage..timeleft_preffix..timeleft..timeleft_suffix)
        end
    end
end
dispatcher:registerListener(MC_EVENT_PLAYER_LOGIN, onLogin)
 
Статус
Закрыто для дальнейших ответов.

Поделиться этой страницей

Назад
Верх