Хостинг серверов Minecraft playvds.com
  1. Вы находитесь в русском сообществе Bukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на русский язык плагины наших собратьев из других стран.
    Скрыть объявление

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

Тема в разделе "Руководства, инструкции, утилиты", создана пользователем Mpa3oTa, 22 дек 2012.

  1. Ex4ak01

    Ex4ak01 Активный участник Пользователь

    Баллы:
    78
    Skype:
    mc_kent_01
    Имя в Minecraft:
    Ex4ak
    Извиняюсь за тупой вопрос, а как привязать скрипт к НПС? Вот есть у меня НПС с названием lol как к нему привязать скрипт? :)
     
  2. Хостинг MineCraft
    <
  3. Snak3

    Snak3 Активный участник Пользователь

    Баллы:
    78
    Quests.
     
    Ex4ak01 нравится это.
  4. DrAlex

    DrAlex Активный участник Пользователь

    Баллы:
    78
    Skype:
    no
    Имя в Minecraft:
    Sanya
    У меня такой вопрос, как будет выглядеть скрипт который будет телепортировать игрока на координаты за 4 алмаза на пять минут, а потом на спавн?
     
  5. Slavyan

    Slavyan Активный участник Пользователь

    Баллы:
    63
    Ну, если в общем, то после взаимодействия с нпс запускается скрипт на телепорт на спавн, но с задержкой.
    Если же тебе нужен сам код скрипта, могу выложить, но позже, часов через 8.[DOUBLEPOST=1397542577,1397513585][/DOUBLEPOST]Вот пример скрипта:
    В самом начале указываешь число алмазов и время (s - секунда, m - минута, h - час, d - сутки, w - неделя), а также координаты, по которым игрока будет телепортировать. Чтобы навесить скрипт на НПСа, выбираешь его и пишешь /npc assignment --set "Teleport"

    Код:
    "Teleport":
      type: assignment
      default constants:
        Число_алмазов: 4
        Задержка: 5m
        X: 100
        Y: 100
        Z: 100
      interact scripts:
      - 1 Телепорт
      actions:
        on assignment:
        - trigger name:click toggle:true
    "Телепорт":
      Requirements:
        Mode: All
        List:
        - item diamond qty:<cons:Число_алмазов>
      type: interact
      steps:
        1:
          click trigger:
            script:
            - take item:diamond qty:<cons:Число_алмазов>
            - execute as_npc "tp <player.name> <cons:X> <cons:Y> <cons:Z>"
            - run "Телепорт на спавн" delay:<cons:Задержка>
    "Телепорт на спавн":
      type: task
      script:
      - execute as_player "spawn"
    Можно еще, конечно, сделать скрипт, когда игрок сам выбирает коорды, там будет чуть сложнее. Если надо будет, отпиши, накалякаю. Сейчас лень(
     
  6. DrAlex

    DrAlex Активный участник Пользователь

    Баллы:
    78
    Skype:
    no
    Имя в Minecraft:
    Sanya
    Спасибо! щас проверю, у меня просто есть npc и есть качалка на спавнерах, там запрещены команды, поэтому я хочу чтобы игрок на спавне кликал на npc и у него снималось 4 алмаза и телепортировало его на корды(то есть в качалку), а потом через 5 минут обратно на спавн. Мне щас главное понять суть написания этих скриптов... Как что пишется и так далее.
     
  7. Slavyan

    Slavyan Активный участник Пользователь

    Баллы:
    63
    У моего скрипта есть один недостаток - если игрок выйдет из игры до телепорта на спавн и до его захода на сервер истечет срок действия таймера, то после захода его не тпанёт обратно...
    По поводу изучения скриптов. На dev.bukkit.org и на Citizens wiki нет толкового гайда по Denizen.
    Я в основном учился по двум сайтам. Но там надо дружить с английским хотя бы на базовом уровне:
    1) https://docs.google.com/document/d/1ed3VvdcPNJxhm-YfhGVG6pTWPrC8Oj3pYhAhqvqkPdg/edit
    Это, можно сказать, "Официальный" гайд. Все типы скриптов и основные "операторы" там описаны.
    2) http://scripts.citizensnpcs.co/browse/all/mostLiked/1/200/
    Здесь люди выкладывают свои скрипты. Разбираешь их по косточкам, изучаешь, учишься писать свои скрипты.
    Я, когда только начал этим заниматься, взял оттуда пару готовых скриптов и частично их переписал. Со временем научился писать скрипты с нуля.
     
  8. DrAlex

    DrAlex Активный участник Пользователь

    Баллы:
    78
    Skype:
    no
    Имя в Minecraft:
    Sanya
    Спасибо, хочу потом попробовать сделать такую фишку, если игрок релогается, то его как бы заносит в черный список, то есть его в следующий раз не пустит, напишет типо тебе туда нельзя!
     
  9. Slavyan

    Slavyan Активный участник Пользователь

    Баллы:
    63
    Сразу говорю, на сервере не тестил. Возможны опечатки)
    И еще, если будешь писать другие скрипты, следи за тем, чтобы названия не повторялись. Даже если скрипты в разных файлах.
    Код:
    "Teleport":
      type: assignment
      default constants:
        Число_алмазов: 4
        Задержка: 5m
        X: 100
        Y: 100
        Z: 100
      interact scripts:
      - 1 Телепорт
      actions:
        on assignment:
        - trigger name:click toggle:true
    "Телепорт":
      Requirements:
        Mode: All
        List:
        - item diamond qty:<cons:Число_алмазов>
      type: interact
      steps:
        1:
          click trigger:
            script:
            - if <player.flag[Нехороший_игрок]> == true chat "<red>Ты пытался смухлевать, теперь тебе туда нельзя!"
              else {
                - take item:diamond qty:<cons:Число_алмазов>
                - execute as_npc "tp <player.name> <cons:X> <cons:Y> <cons:Z>"
                - flag <player> Телепортирован:1
                - run "Телепорт на спавн" delay:<cons:Задержка> }
    "Телепорт на спавн":
      type: task
      script:
      - execute as_player "spawn"
      - flag <player> Телепортирован:0
    "Чёрный список":
      type: world
      events:
        on player quit:
        - if <player.flag[Телепортирован]> == 1 flag <player> Нехороший_игрок:true
     
  10. DrAlex

    DrAlex Активный участник Пользователь

    Баллы:
    78
    Skype:
    no
    Имя в Minecraft:
    Sanya
    Спасибо, щас пойду разбирать скрипты, посмотрю что да как...
     
  11. Slavyan

    Slavyan Активный участник Пользователь

    Баллы:
    63
    Сколько искал, так и не понял, как работать с dChunk. Точнее, как привязать кубоид к названию. Может, кто в курсе?
     
  12. zelnet

    zelnet Активный участник

    Баллы:
    63
    Имя в Minecraft:
    zelnet
    А ты схематик делай без лишних слоев земли.[DOUBLEPOST=1400327568,1400327022][/DOUBLEPOST]
    Псле того как написал /text нужно в чат без слеша написать add, и следом опять без слеша пишешь текст сообщения. Если нужно добавить еще ондно сообщение опять add и текст. В конце когда добавил все сообщения /close и закрываем редактор /text. Только после этого все могут видеть сообщения НПС.[DOUBLEPOST=1400328218][/DOUBLEPOST]
    Заставить говорить нипа при подходе игрока: (Пишу очередность команд так как есть)
    1. /npc text
    2. add
    3. Привет, я админ блааблабвлалывао...
    4. close
    5. /npc text
    После этого он начинает говорить! По умолчанию расстояние до активации нипа 5 блоков.[DOUBLEPOST=1400328461][/DOUBLEPOST]
    /npc sel 3
    /builder load [schematic]
    /builder build
     
  13. GreenPoint

    GreenPoint Старожил Пользователь

    Баллы:
    153
    zelnet, раз ты разбираешься в плагине, то как можно сделать НПС агрессивным, чтобы он бил игроков?
     
  14. zelnet

    zelnet Активный участник

    Баллы:
    63
    Имя в Minecraft:
    zelnet
    Для начала нужно создать Нипа /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[DOUBLEPOST=1400330303,1400329811][/DOUBLEPOST]если ставишь /sentry target add entity:all он будет агриться даже на тебя.
    в принципе нипу можно дать запрет агиться на кого-то определенного
    /sentry ignore add group:Admin
    или
    /sentry ignore add player:zelnet
    или так, на овцу...
    /sentry ignore add entity:sheep[DOUBLEPOST=1400330844][/DOUBLEPOST]А вот у меня свой вопрос назрел!!!
    Как заставить НПС сидеть? Я слышал что такое возможно...
    Хочу на спавне посадить бомжа который просит денег)))
    Думаю скрипт тоже нужен будет для него, кто поможет?
    Даже если не сидеть просто стоять и просить денег. И чтобы он мог брать по 10-30 денег.
    в принципе пусть даже рандомно выдает какиенить предметы.
    Со словами "Спасибо друг, хочешь вот возми, мне всеравно не надо" и чаренные ботинки отдаёт, ну или еще чтонить.[DOUBLEPOST=1400541027][/DOUBLEPOST]
    А можно по подробней по этому файлу! Тем более было обещано "Каким образом его редактировать будет объяснено дальше." К сожалению я этого не увидел. Хотелось бы внести ясность... Как говорится с этого места по подробней.
     
    twixi007 и GreenPoint нравится это.
  15. laokoon

    laokoon Активный участник Пользователь

    Баллы:
    88
    Ребята! как привязать квест из Quests к NPC? создал и то и то, а связать не знаю как
     
    Лайка2 и mahimamax нравится это.
  16. Slavyan

    Slavyan Активный участник Пользователь

    Баллы:
    63
    Надеюсь, что отвечаю не слишком поздно :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 уже порядочно устарел.
     
    Последнее редактирование: 31 май 2014
    Лайка2, mahimamax и Лайка нравится это.
  17. AlexWar

    AlexWar Новичок

    Баллы:
    18
    Skype:
    Alex-War19
    Имя в Minecraft:
    AlexWar19
    Спасибо. Но я сам разобрался с ним. И уже давно)
    А так гайд хороший
     
    Лайка2 и mahimamax нравится это.
  18. Slavyan

    Slavyan Активный участник Пользователь

    Баллы:
    63
    Есть люди, которые активно работают с Denizen или я такой один? :(
    Хотелось бы уточнить пару непонятных мне моментов, ну или наоборот, поделиться тем, что знаю сам.
     
    Лайка3, Лайка2, mahimamax и ещё 1-му нравится это.
  19. laokoon

    laokoon Активный участник Пользователь

    Баллы:
    88
    ребята. Последняя связка Citizens и Quests у меня не работает при привязке квеста к NPC. Кто что знает по этому поводу?
    Разработчики молчат :(
    http://pastebin.com/En2qscur - вот ошибка
     
    Лайка3, Mr_RoboMan, Лайка2 и ещё 1-му нравится это.
  20. BroGamer

    BroGamer Активный участник Пользователь

    Баллы:
    63
    Skype:
    Danchik_PROFI
    Имя в Minecraft:
    StyleAlfa
    Как удалить НПС Dtl?
     
    Лайка3, Mr_RoboMan, Лайка2 и ещё 1-му нравится это.
  21. Riko!!@&

    Riko!!@& Ньюби

    Баллы:
    1
    Имя в Minecraft:
    Serfedorov
    ребят помогите как сделать чтоб НПС дрался с игроками на сервере!
     

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