Sentry

From Citizens Wiki

Sentry.png

Sentry
Author aufdemrand, jrbudda
Version 0.7
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.

General Information

Sentries are useful for guarding areas from intruders.

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.

To add a target, use:

/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

Removing a target is just as easy.

/sentry target remove [target]

You can also clear the target list.

/sentry target clear

To set a Sentries speed or health, use:

/sentry health [1-20] and /sentry speed [.1-1.0]

Note: default speed is 1.0 and default health is 20.

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.

To make the sentry drop his equipment on death use:

/sentry drops

To make the sentry impervious to damage and knockback use:

/sentry invincible

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

/sentry retaliate

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

/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.