Как сделать как во многих ORPG что бы другой игрок не смог брать предмет, который уже взял другой игрок?
Принятый ответ
У предметов (почему-то) тоже есть игрок-владелец. Только он всегда равен нейтрально-пассивному (по умолчанию).
Делая фиксацию владельца предмета, можно использовать этого владельца.
Делая фиксацию владельца предмета, можно использовать этого владельца.
При получении предмета, если его владелец = нейтрально-пассивный
то - установить предмету владельца (игрок владеющий юнитом, который подобрал предмет
он же - юнит-инициатор
иначе - выбросить предмет...
то - установить предмету владельца (игрок владеющий юнитом, который подобрал предмет
он же - юнит-инициатор
иначе - выбросить предмет...
Здесь можно по разному обыграть выбор предмета...
- Самый простой - просто дропнуть его, он вывалится из героя который его подобрал, но это позволит герою как бы подтаскивать предмет под себя, отходить, и снова подтаскивать под себя...
- Получше - при подборе смотреть где лежит предмет, и перемещать его не просто через "выбросить предмет", а через "переместить предмет в точку" (аналогично с координатами). Таким образом предмет будет падать там же, откуда был подобран.
- Хороший и практичный - при попытке юнитом отдать целевой приказ "smart" на предмет, которым он не владеет (при этом не нейтральный, как описано выше), то ... здесь так же пара вариантов: первый - отдать приказ "stop", юнит просто остановится; второй - отдать приказ "move" на предмет, юнит пойдёт куда был клик, выглядеть будет так как будто он пошёл подбирать предмет и тупо ничего не сделал.
При этом ещё можно вывести текст-таг с текстом "не твой" в месте предмета, который будет жить 1 сек и 0.8 сек исчезновения, но не будет никуда улетать (если много кликать - не будет спама летящим текстом). Скрыть его для всех игроков и показать только тому, кто владеет этим юнитом.
`
ОЖИДАНИЕ РЕКЛАМЫ...
Чтобы оставить комментарий, пожалуйста, войдите на сайт.
Когда берет другой игрок и не равно тот на которого записано- выкинуть предмет
Отредактирован Extremator
Делая фиксацию владельца предмета, можно использовать этого владельца.
то - установить предмету владельца (игрок владеющий юнитом, который подобрал предмет
он же - юнит-инициатор
иначе - выбросить предмет...