[РЕШЕНО] Как ПОЛНОСТЬЮ защитить спавн от ломания и засорения его блоками

lovout

Новичок
Регистрация
27 Фев 2024
Сообщения
0
Как сделать ПОЛНОСТЬЮ защищённый спавн? (Ранг: не выше Gamer)
Хочу сделать нормальную защиту от ломания и засорения блоков на спавне, но никак не получается (люди вне зоны спавна делают это), только, прошу, без костылей по типу: "Запрещённые блоки" и т.п.
 

Mee8YT

Эксперт
Регистрация
3 Май 2023
Сообщения
298
Как сделать ПОЛНОСТЬЮ защищённый спавн? (Ранг: не выше Gamer)
Хочу сделать нормальную защиту от ломания и засорения блоков на спавне, но никак не получается (люди вне зоны спавна делают это), только, прошу, без костылей по типу: "Запрещённые блоки" и т.п.
Код на уровне "только что узнал как работать с переменными"
Форматирование (BB-код):
Событие игрока - ЛЮБОЕ #единственное отличие - нужно будет менять яблоко, потом поймёшь про что я
Если игрок - Рядом (Координата, Число (можно любое, тут не в этом кроется механизм защиты, если у тебя спавн к примеру 50x50 - сделай 150 радиус) ) {
    Присв переменную - Равно (%player%_check_cord = яблоко (тут важно знать, если нужно защитить от взаимодействия с блоками - надо взять яблоко "местоположение целевого объекта", если взаимодействие с ентити-игроками "местоположение сущности") )
    Присв переменную - Получить значение из координаты%player%_check_cord_x из %player%_check_cord получить X)
    Присв переменную - Получить значение из координаты%player%_check_cord_y из %player%_check_cord получить Y)
    Присв переменную - Получить значение из координаты%player%_check_cord_z из %player%_check_cord получить Z)
    # Дальше мы делаем проверки, находится ли игрок в регионе блоков
    # Тебе нужно полетать вокруг спавна, и в F3 найти все корды, минимальный и максимальный X Y Z
    Если переменная - Сравнить число (%player%_check_cord_x <= 'макс. x', >= 'мин. x') {
        Если переменная - Сравнить число (%player%_check_cord_y <= 'макс. y', >= 'мин. y'') {
            Если переменная - Сравнить число (%player%_check_cord_z <= 'макс. z', >= 'мин. z') {
                Игровое действие - отменить событие
            }
        }
    }
}
 

TOPserebro

Участник
Регистрация
4 Май 2023
Сообщения
90
Код на уровне "только что узнал как работать с переменными"
Форматирование (BB-код):
Событие игрока - ЛЮБОЕ #единственное отличие - нужно будет менять яблоко, потом поймёшь про что я
Если игрок - Рядом (Координата, Число (можно любое, тут не в этом кроется механизм защиты, если у тебя спавн к примеру 50x50 - сделай 150 радиус) ) {
    Присв переменную - Равно (%player%_check_cord = яблоко (тут важно знать, если нужно защитить от взаимодействия с блоками - надо взять яблоко "местоположение целевого объекта", если взаимодействие с ентити-игроками "местоположение сущности") )
    Присв переменную - Получить значение из координаты%player%_check_cord_x из %player%_check_cord получить X)
    Присв переменную - Получить значение из координаты%player%_check_cord_y из %player%_check_cord получить Y)
    Присв переменную - Получить значение из координаты%player%_check_cord_z из %player%_check_cord получить Z)
    # Дальше мы делаем проверки, находится ли игрок в регионе блоков
    # Тебе нужно полетать вокруг спавна, и в F3 найти все корды, минимальный и максимальный X Y Z
    Если переменная - Сравнить число (%player%_check_cord_x <= 'макс. x', >= 'мин. x') {
        Если переменная - Сравнить число (%player%_check_cord_y <= 'макс. y', >= 'мин. y'') {
            Если переменная - Сравнить число (%player%_check_cord_z <= 'макс. z', >= 'мин. z') {
                Игровое действие - отменить событие
            }
        }
    }
}
Он наверное имел ввиду, чтобы нельзя было на спавн блоки поршнями затолкнуть или другим способом
 

lovout

Новичок
Регистрация
27 Фев 2024
Сообщения
0
Код на уровне "только что узнал как работать с переменными"
Форматирование (BB-код):
Событие игрока - ЛЮБОЕ #единственное отличие - нужно будет менять яблоко, потом поймёшь про что я
Если игрок - Рядом (Координата, Число (можно любое, тут не в этом кроется механизм защиты, если у тебя спавн к примеру 50x50 - сделай 150 радиус) ) {
    Присв переменную - Равно (%player%_check_cord = яблоко (тут важно знать, если нужно защитить от взаимодействия с блоками - надо взять яблоко "местоположение целевого объекта", если взаимодействие с ентити-игроками "местоположение сущности") )
    Присв переменную - Получить значение из координаты%player%_check_cord_x из %player%_check_cord получить X)
    Присв переменную - Получить значение из координаты%player%_check_cord_y из %player%_check_cord получить Y)
    Присв переменную - Получить значение из координаты%player%_check_cord_z из %player%_check_cord получить Z)
    # Дальше мы делаем проверки, находится ли игрок в регионе блоков
    # Тебе нужно полетать вокруг спавна, и в F3 найти все корды, минимальный и максимальный X Y Z
    Если переменная - Сравнить число (%player%_check_cord_x <= 'макс. x', >= 'мин. x') {
        Если переменная - Сравнить число (%player%_check_cord_y <= 'макс. y', >= 'мин. y'') {
            Если переменная - Сравнить число (%player%_check_cord_z <= 'макс. z', >= 'мин. z') {
                Игровое действие - отменить событие
            }
        }
    }
}
Да! Работает, но когда прокликиваешь слишком часто, то блоки в этой области все равно ставятся :(
 

kiryxa_vip

Эксперт
Регистрация
3 Май 2023
Сообщения
130
Да! Работает, но когда прокликиваешь слишком часто, то блоки в этой области все равно ставятся :(
используй локацию блока, вместо местоположения целевого блока
 

lovout

Новичок
Регистрация
27 Фев 2024
Сообщения
0
используй локацию блока, вместо местоположения целевого блока
Все также, но чуть лучше, все равно ставятся, если прокликиватся..
Сообщение объединено:

невозможно, это максимум фантомные блоки
К сожалению так, в этой области блоки земли ставятся
 

Mee8YT

Эксперт
Регистрация
3 Май 2023
Сообщения
298
Ой, я с координатами кажется ошибся, все заработало при локации, спасибо
угу, если бы не ошибся с моим способом - тоже всё-бы сработало
Сообщение объединено:

если нужна квадратная область, и баг остался - убери "рядом" из моего способа
 

legendaleto

Новичок
Регистрация
31 Янв 2024
Сообщения
5
угу, если бы не ошибся с моим способом - тоже всё-бы сработало
Сообщение объединено:

если нужна квадратная область, и баг остался - убери "рядом" из моего способа
Все таки надо в яблоко ставить "локация блока" Так как можно обмануть местоположение целевого блока если смотреть в один блок и резко поставить на другой блок то блоки ставятся
 

Mee8YT

Эксперт
Регистрация
3 Май 2023
Сообщения
298
Все таки надо в яблоко ставить "локация блока" Так как можно обмануть местоположение целевого блока если смотреть в один блок и резко поставить на другой блок то блоки ставятся
ок.
 
Сверху