Sentry

From Citizens Wiki

Revision as of 17:46, 3 August 2012 by Jrbudda (talk | contribs)

Sentry.png

Sentry
Author aufdemrand, jrbudda
Version 0.7.1 8/3/2012
Citizens build 2.0 dev build #255
Other dependencies Vault, and a permissions system
Download Link
Description: Sentries guard entrances.


Updates

v. 0.7.1 beta 8/3/2012

  • Added commands: info, armor, strength
  • All combat (ranged, player-npc, npc-npc, mob-npc) goes through the same calculations for armor, strength, and critical hits.
  • More bugfixes and cleanup.

v. 0.7.0 beta 8/2/2012

  • MC 1.3.1 Compatible
  • Added commands: invincible, retaliate, drops, criticals
  • Added ability to shoot bows and projectiles.
  • Sentries respond to damage from arrows.
  • Lots of bugfixes and minor updates.

v. 0.5.6 beta

  • Now working with the new builds of C2.

v. 0.5.5 beta

  • Fixed bugs.

v. 0.5 beta

  • Added the ability to specify targets.
  • Added the ability to set the Health and Speed of a Sentry.
  • 'Stuck' Sentries now respawn after a while.
  • Fixed the death handling.
  • Fixed Sentries remembering their guard location on a restart.

v. 0.3 beta

  • Added ability to kill the NPCs. Swords kill faster. Built-in chance of criticals, etc.
  • Fixed targeting code, should be more efficient now.
  • Implemented respawning sequence.

Up next: Warning targeted Players.

How to Use

Installation

  • Ensure Citizens2 and Vault are installed
  • Download Sentry.jar
  • Place Sentry.jar in your Plugins folder.
  • Start Server

Note. Sentry folder and config.yml will generate when you add the first target or set the guard position.

Commands

Sentries are useful for guarding areas from intruders. Giving a Citizens NPC the Sentry trait will also make it killable.

Creation

To create a sentry, use:

/npc create '[NPC Name]' then

/npc trait sentry


To place your sentry use:

/npc path

And use the citizens waypoint editor to give your Sentry a place to stand, or a path to walk.


You can give Sentries weapons and armor to make them more lethal with the core Citizens2 command:

/npc equip

And right click with the desired weapon or armor. Sentries can be equipped with Bows, Blaze Rods (throw fireballs!) or any projectile.


Targets

To add a target: /sentry target add [target]

[target] can be entity:Name, entity:monster, group:Name, or player:Name

Example: /sentry target add PLAYER:Notch or /sentry target add ENTITY:CREEPER

To remove a target: /sentry target remove [target]

To view the target list: /sentry target list

To clear the target list: /sentry target clear

Stats

To set a Sentry's health: /sentry health [1-20] (Default is 20)

To set a Sentry's armor: /sentry armor [0-10] (Default is 0)

To set a Sentry's strength: /sentry strength [0-10] (Default is 0)

To set a Sentry's speed: /sentry speed[0.0-1.5] (Default is 1.0)

Options

To make the sentry drop his equipment on death:

/sentry drops

To make the sentry impervious to damage and knockback:

/sentry invincible

To make the sentry attack an attacker, even if not a target:

/sentry retaliate

To make the sentry take standard damage, instead of the default MUD-style critical hits and misses:

/sentry criticals

Advanced Usage

In Citizens 2 a single NPC can be multiple character types at the same time. This can lead to very powerful player interactions.

A Sentry-Denizen for example, can be used to create advanced aggression systems. Here's an example:


Let's say you have an adventure server with a town called Hillside, populated by shopkeepers, guards, blacksmiths, etc.

Create a number of Sentry-Denizens to act as your town's police force. Set each Sentry to target a GROUP called Hillside_Enemy.

Now create a Denizen script with a DamageTrigger. On that damage trigger call FLAG HillsideEnemy:++

Create another script with a requirement of FLAGGED HillsideEnemy 3, and a DamageTrigger. On that damage trigger execute your server's group plugin to place the offending player in group Hillside_Enemy.

Now assign those 2 scripts to all your town's NPCs.

Now if a player attacks a member of Hillside, he gets a strike. 3 strikes.. and every Sentry in town will become aggressive. Neat eh?


This is just a basic example and can be expanded in any number of ways, using the commands in denizen you could:

- warn the player he is commiting a crime.

- forgive the player after a period of time (remove the player from the hillside_enemy group)

- Create a quest for the player to earn forgiveness.

- Create hostility in other towns if harassment of Hillside continues.

- etc etc etc.

Known caveats and upcoming features

Using /citizens reload may break your sentries or waypoints.

Sentries may get lost or fall through the world.

Suggestions

Suggestions are, of course, always welcome! Visit us in #citizens on EsperNet.