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

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

Discussion in 'Руководства, инструкции, утилиты' started by Mpa3oTa, Dec 22, 2012.

  1. Ex4ak01

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

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

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

    Trophy Points:
    78
    Quests.
     
    Ex4ak01 likes this.
  4. DrAlex

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

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

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

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

    Code:
    "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 Активный участник Пользователь

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

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

    Trophy Points:
    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 Активный участник Пользователь

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

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

    Trophy Points:
    63
    Сразу говорю, на сервере не тестил. Возможны опечатки)
    И еще, если будешь писать другие скрипты, следи за тем, чтобы названия не повторялись. Даже если скрипты в разных файлах.
    Code:
    "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 Активный участник Пользователь

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

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

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

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

    Trophy Points:
    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 Старожил Пользователь

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

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

    Trophy Points:
    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 and GreenPoint like this.
  15. laokoon

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

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

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

    Trophy Points:
    63
    Надеюсь, что отвечаю не слишком поздно :D
    НПСа можно заставить присесть, как игрока, командой /npc sneak. Есть еще команда /npc sit (не уверен, что именно так пишется :D), но как она работает, мне не совсем понятно. Я думаю, что с ее помощью НПСа можно посадить в вагонетку или лодку. Чтобы НПС снова встал, введи /npc stand.
    З.Ы. Скрипт на бомжа (диалог взят из личной встречи :D):
    Code:
    "Бомж":
      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 уже порядочно устарел.
     
    Last edited: May 31, 2014
    Лайка2, mahimamax and Лайка like this.
  17. AlexWar

    AlexWar Новичок

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

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

    Trophy Points:
    63
    Есть люди, которые активно работают с Denizen или я такой один? :(
    Хотелось бы уточнить пару непонятных мне моментов, ну или наоборот, поделиться тем, что знаю сам.
     
  19. laokoon

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

    Trophy Points:
    88
    ребята. Последняя связка Citizens и Quests у меня не работает при привязке квеста к NPC. Кто что знает по этому поводу?
    Разработчики молчат :(
    http://pastebin.com/En2qscur - вот ошибка
     
  20. BroGamer

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

    Trophy Points:
    63
    Skype:
    Danchik_PROFI
    Имя в Minecraft:
    StyleAlfa
    Как удалить НПС Dtl?
     
  21. Riko!!@&

    Riko!!@& Ньюби

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

Share This Page