Войти или зарегистрироваться

Туториал Citizens ver. 2.0.7 (полностью)

  • Автор темы Автор темы Mpa3oTa
  • Дата начала Дата начала
ребят помогите как сделать чтоб НПС дрался с игроками на сервере!
Для начала нужно создать Нипа /npc create имя --trait sentry
потом прописать ему агрессию
/sentry target add entity: Player
Виды анрессии:
entity:all
entity:eek:wner(owner)
entity:TYPE
entity:monster
entity:player(Player)
player:Name
entity:npc
гадские смайлы вместо : и P O
если ставишь /sentry target add entity:all он будет агриться даже на тебя.
в принципе нипу можно дать запрет агиться на кого-то определенного
/sentry ignore add group:Admin
или
/sentry ignore add player:zelnet
или так, на овцу...
/sentry ignore add entity:sheep
 
Блин как запретить игрокам трэйдеров делать, снести пришлось плагин из за этого (( Все перепробобовал, пишет нет доступа и все равно ставится
 
Надеюсь, что отвечаю не слишком поздно :D
НПСа можно заставить присесть, как игрока, командой /npc sneak. Есть еще команда /npc sit (не уверен, что именно так пишется :D), но как она работает, мне не совсем понятно. Я думаю, что с ее помощью НПСа можно посадить в вагонетку или лодку. Чтобы НПС снова встал, введи /npc stand.
З.Ы. Скрипт на бомжа (диалог взят из личной встречи :D):
Код:
"Бомж":
  type: assignment
  default constants:
    MoneyQty: 10
  interact scripts:
  - 10 Выручи
  actions:
    on assignment:
    - trigger name:chat toggle:true
    - trigger name:click toggle:true
    - trigger name:proximity toggle:true
"Выручи":
  type: interact
  steps:
    1:
      proximity trigger:
        entry:
          script:
          - chat "<yellow>Эй, дружище, выручи, а?"
      click trigger:
        script:
        - chat "<yellow>Слушай, друг. Я короче, с Байкала сюда работать приехал."
        - wait 3
        - chat "<yellow>Ну, Байкал, знаешь озеро такое большое?"
        - wait 3
        - chat "<yellow>И вот, короче, киданули меня тут."
        - wait 2
        - chat "<yellow>Друг, подкинь несколько монет, сколько не жалко, а?"
      chat trigger:
        'Да':
          Trigger: /Да/, конечно. Держи.
          script:
          - chat "<yellow>От души, друг!"
          - take money qty:<cons:MoneyQty>
        'Нет':
          Trigger: /Нет/, я ничего тебе не дам. Иди работать!
          script:
          - chat "<yellow>Ну ты и жлоб!"
          - execute as_server "say <player.name> зажопил бомжу <cons:MoneyQty> монет!"
Как прицепить к НПСу, писал выше.
З.З.Ы. Насчет файла assignments.yml. У меня этого файла вообще нет (версия 1.6.4), полагаю, что он был в более старых версиях плагина. Вообще этот гайд по Denizen уже порядочно устарел.

Slavyan, вы отлично разбиретесь в скриптах, классно, у меня такой вопрос, как поправить этот скрипт, чтобы данное действие игрок мог сделать только один раз, а если второй раз подойдет к бомжу то тот говорит: "Спасибо братюнь что помог мне раньше", ну а если он в тот раз не помог - тогда: "Я тебя жлоб запомнил, иди отсюда!"
Ну и в принципе, как сделать чтобы скрипт мог выполняться только один раз на одного игрока?
 
Slavyan, вы отлично разбиретесь в скриптах, классно, у меня такой вопрос, как поправить этот скрипт, чтобы данное действие игрок мог сделать только один раз, а если второй раз подойдет к бомжу то тот говорит: "Спасибо братюнь что помог мне раньше", ну а если он в тот раз не помог - тогда: "Я тебя жлоб запомнил, иди отсюда!"
Ну и в принципе, как сделать чтобы скрипт мог выполняться только один раз на одного игрока?
Тут базу данных надо (для памяти на игроков)...
 
Slavyan, вы отлично разбиретесь в скриптах, классно, у меня такой вопрос, как поправить этот скрипт, чтобы данное действие игрок мог сделать только один раз, а если второй раз подойдет к бомжу то тот говорит: "Спасибо братюнь что помог мне раньше", ну а если он в тот раз не помог - тогда: "Я тебя жлоб запомнил, иди отсюда!"
Ну и в принципе, как сделать чтобы скрипт мог выполняться только один раз на одного игрока?
Как всегда, пингую с ответом :D Но все же напишу.
Все очень просто - устанавливаем на игрока флаг, который изменяется после его ответа, и в зависимости от его значения (null, true, false) соответственно пишем бомжу реплику. Подобный пример я писал выше, когда меня просили сделать временный телепорт на мобокачалку с блокировкой нечестных игроков.

Короче, вот как я это представляю:
Код:
"Бомж":
  type: assignment
  default constants:
    MoneyQty: 10
  interact scripts:
  - 10 Выручи
  actions:
    on assignment:
    - trigger name:chat toggle:true
    - trigger name:click toggle:true
    - trigger name:proximity toggle:true
"Выручи":
  type: interact
  steps:
    1:
      proximity trigger:
        entry:
          script:
          - if <player.flag[Money]> == true chat "<yellow>Спасибо тебе, <player.name>! По гроб обязан!"
            else
            {
              - if <player.flag[Money]> == false chat "<yellow>Опять ты?! Проваливай, жлоб!"
                else chat "<yellow>Эй, дружище, выручи, а?"
            }
      click trigger:
        script:
        - if <player.flag[Money]> == true chat "<yellow>Спасибо тебе, <player.name>! По гроб обязан!"
          else
          {
            - if <player.flag[Money]> == false chat "<yellow>Опять ты?! Проваливай, жлоб!"
              else
              {
                - chat "<yellow>Слушай, друг. Я короче, с Байкала сюда работать приехал."
                - wait 3
                - chat "<yellow>Ну, Байкал, знаешь озеро такое большое?"
                - wait 3
                - chat "<yellow>И вот, короче, киданули меня тут."
                - wait 2
                - chat "<yellow>Друг, подкинь несколько монет, сколько не жалко, а?"
              }
          }
      chat trigger:
        'Да':
          Trigger: /Да/, конечно. Держи.
          script:
          - chat "<yellow>От души, друг!"
          - take money qty:<cons:MoneyQty>
          - flag <player> Money:true
        'Нет':
          Trigger: /Нет/, я ничего тебе не дам. Иди работать!
          script:
          - chat "<yellow>Ну ты и жлоб!"
          - execute as_server "say <player.name> зажопил бомжу <cons:MoneyQty> монет!"
          - flag <player> Money:false
 
Последнее редактирование:
Подскажите. Почему не работает часть команд плагина? Версия плагина 2.0.13, права себе прописал полные на плагин. Я могу создать нпс, но, к примеру, если пишу /script, сервер просто не отвечает. Ни оповещения об ошибках в синтаксисе, ни сообщения о недостатке прав - просто ничего. В чем проблема?
 
Кто поделится на ссылку Citizens и Denizen что бы в паре работали на 1.5.2 или в принципе готов купить сборку для 1.5.2 с Citizens2 full ....
... главная идея для чего мне нужен Denizen - продажа привилегий за игровую валюту
 
Я переустанавливал плагин. файл saves.yml сохранял, в нем хранится инфо о нпс. Как его подгрузить? /citizens reload только очищает saves, как и просто при старте сервера. Я в нем руками ничего не ковырял, повредить не мог.
 
Возможно ли одевать им броню?
И как можно поставить охранника,что бы он убивал агрессивных мобов?
 
Люди, продам плагин на Кейсы как в КС:ГО, цена всего лишь 70 рублей, писать в Вконтакте http://vk.com/id137237027, хотите посмотреть этот плагин? Зайдите на сервер Gamenix, IP: mc.gamenix.su
Возможно ли одевать им броню?
И как можно поставить охранника,что бы он убивал агрессивных мобов?
Насчет Агрессивных Мобов не знаю, а одеть броню можно, пропиши /npc equip и нажимай ПКМ той вещью на НПС, которую хочешь ему дать.
А Насчет Мобов, Посмотри Туториал по Доп.Плагину к Citizens, называется Sentry
 
Почему npc разговаривает только с админом? pex нужен какой-то?
 
У меня есть файл saves, от старого сервера, как его подгрузить на сервер?При рестарте файл обновляется!
 
Назад
Верх