- Баллы
- 173
- Имя в Minecraft
- fromgate
10. Как насчёт активатора, который срабатывает при присутствии другого игрока\игроков в радиусе от третьего игрока, где всем игрокам заданы флаги\переменные?
Например:
Хочу я сделать мини-игру на подобии гонок с боссом в NFS Carbon. Очки будут начисляться по времени нахождения одного игрока рядом с другим.
Игрок находится рядом с другим в трёх блоках от него: ему выдаётся переменная, которую увеличивает заранее созданный таймер на три единицы каждую одну секунду. Игрок находится рядом с другим в десяти блоках от другого - ему начисляется по той же схеме уже два очка. И, наконец, если он в пятнадцати блоках от него, то начисляется одно очко каждую секунду.
Это похоже на активатор "region" и "rgleave". При приближении одного игрока к другому, первый входит в динамическую зону вокруг другого игрока. При этом ему постоянно выдаётся переменная, которая говорит о том, что он в пяти блоках от соперника. Если он выходит из радиуса в пять блоков, то первая переменная снимается и устанавливается другая, которая говорит о том, что он в десяти блоках от него.
Если же это будет флаг, то, кроме радиуса, нужно ещё попытаться указать любые другие возможные флаги (а-ля флаг в флаге).
Например:
Примерно то же, что и с FLAG_SET.Код:flags: - RadiusPlayer=r:5 flags:{...}
Добавите когда-нибудь такие "динамические" активаторы\флаги?
P.S. Можно было бы указывать и радиус относительно точки\игрока. Тогда так:
Код:flags: - Radius=type-radius:<PLAYER|BLOCK> block:%here%(к примеру) r:<n> flags:{[...]}
Активатор забавный. Надо подумать. Оставлю на будущее.
Что-то подобное уже просили. Добавится рано или поздноМожно было бы добавить и точку, на которую должен смотреть игрок. Например: если указана локация, то место, куда должен смотреть игрок, будет в виде трёх блоков с локацей точки отсчёта в центре. С игроком тоже можно поступить аналогично, только уже нужно смотреть чётко на блоки тела другого игрока. Тогда флаг будет выглядеть так:
Код:flags: - Radius=type-radius:<PLAYER|BLOCK> block:%here%(к примеру) kick:[true] r:<n> flags:{[...]}
11. Как насчёт функции сохранения инвентаря, как во многих плагинах? Например:

Отличная идея. Вообще у меня есть планы касательно работы с предметами/инветарем. Добавлю в тот же список.Действием "SaveInv=%player%/NameSave" инвентарь будет сохранён в БД.
А действием "GiveInv=%player%/NameSave" инвентарь будет выдан игроку в те же слоты, где и был.
Просто, но чертовски экономит время![]()
Был уверен, что что-то подобное там есть. Надо будет сделать12. Желательно, чтобы при написании в сообщении %delay% показывалось оставшееся время в таком формате: "MM:SS", чтобы можно было написать "...осталось %delay% мин.". (Муторно возиться с окончаниями)

В принципе можно. Подумаю как это сделать.13. Насчёт WALK_BLOCK. Можно стоять на одном блоке (на его краю), а флаг будет считать, что игрок стоит на воздухе. Можно ли расширить зону проверки?
Это тоже в планах. Но до момента модификации работы с предметами добавлять не буду.14. Насчёт действия уменьшения прочности предметам. Нужно, чтобы можно было уменьшать прочность не только тем, что в руке. То есть, чтобы можно было нацелиться на весь инвентарь (и броню) по имени предмета.
15. Не получается сослаться на конкретное количество игроков в регионе (1):
Если указывать толькоКод:TNTRunFinish1Area1: region: tntrunfilterwinarea1-1 flags: - '!REGION_PLAYERS=tntrunarea1/2' actions: - message=player:%player% &6[&cTNT&e-&4Run&6] &3Вы заняли первое место! reactions: []
- '!REGION_PLAYERS=tntrunarea1/2'
То работает, а вместе с
- REGION_PLAYERS=tntrunarea1/2
- Нет. И вообще, что за дьявольская система? Если я говорю, что хочу проверять количество игроков меньше или равно одному, то почему я должен писать как '!REGION_PLAYERS=tntrunarea1/2'? Логика? Или логика в том, что эта проверка работает как "от n, не включая, n"?
Если я буду делать так:
То после исправления ошибки(?) будет считаться, как "от одного игрока до двух включительно"?Код:TNTRunFinish1Area1: region: tntrunfilterwinarea1-1 flags: - '!REGION_PLAYERS=tntrunarea1/2' - REGION_PLAYERS=tntrunarea1/1 actions: - message=player:%player% &6[&cTNT&e-&4Run&6] &3Вы заняли первое место! reactions: []
Насколько я помню
Сейчас проверять времени нет REGION_PLAYERS=tntrunarea1/2 — это два и выше. Соответственно !REGION_PLAYERS=tntrunarea1/2 — это один и меньше.Без использования DELAY (DELAY_PLAYER) и REGION_ENTER пока вроде не получится. Вообще подумаю такой флаг может быть полезен в разных случаях...16. Можно ли сделать флаг, который проверяет, стоит ли игрок на месте (одном блоке) заданное количество времени?
Пока ничего не могу сказать. У меня была мысль вообще уйти от отдельного действия ACTION_DELAY, а просто добавить параметр DELAY всем действиям (упроститься синтаксис)... Надо подумать.17. Есть вариант разделить action_delayed на 2 типа: первый будет сбрасываться при выходе игрока из игры, а второй будет работать не зависимо от выхода игрока, к которому привязан action_delayed, из игры.
А вот это странно. Потестирую. Раньше работало. Версия сервера какая?18. Плагин ScLoad не работает, если указать в качестве отправной точки не загруженный (не прогруженный чанк). Воспроизводится только один блок из всей схемы. Можно ли обновить плагин и загружать\прогружать чанки вместе со schematick'ом? Ну нет возможности держать игроков рядом с постройкой, которая должна регениться![]()
19. Что такое "join-state: ANY"? Об этом вообще ни где не написано о_ОКод:JOIN: TNTRunConnectInArea1: join-state: ANY flags: [] actions: [] reactions: []
Там вобщем-то два варианта - ANY и FIRST - для определения того, что игрок зашёл первый раз.
Забавно. Надо будет подумать об оптимизации этого действия. Размеры региона какие были?20. Проблема. При включённом ReActions TPS падает с 19 до 15. Может, из-за большого количества активаторов типа REGION?
Проблема была в двух действиях:
- region_clear=region:tnt2 type:all
- region_clear=region:tnt1 type:all
Перевёл в таймер - TPS 18
Возможно когда-то доберусь. Помнится я хотел и дополнительный режим показывающий как отрабатывают флаги выводить...21. Добавьте локальный дебаг-режим: /ra ldebug activator true\false\off [a|b]
a - переключить debug-режим
b - одноразовый debug-режим (активировал и off автоматом ставится)
Без "мучений" в виде вложенных активаторов похоже что никак. Но вообще, я всё мечтаю перевести работу с переменными на более высокий уровень. Сделать, чтобы поддерживались списки и разные типы (к примеру тип переменной - предмет (item), которому можно менять какие-то параметры... Останется ли это мечтой... пока неизвестно22. Как определить "первого игрока" и "последнего игрока" (центрального? третьего? предпоследнего?) из n-го количества игроков (в регионе), которые по очереди запускают активатор "финиша"? Получается, надо добавлять к личной переменной значение глобальной переменной при каждом исполнении активатора "финиша" и сравнивать личную переменную с количеством игроков в регионе... Но, я так понимаю, что такое не возможно провернуть?


