BNWCS Target API

Intro

To make destructible objects compatible with the BNWCS, you will need the "BNWCS Developer's Kit."

The BNWCS Target API allows an in-world, rezzed object to take damage from physical collisions and BNWCS splash damage according to the same formula that avatars do. Targets

- Can have armor
- Can have any amount of HP
- Can be repaired
- Can be set to only take damage from explosives
- Can be set to automatically respawn

To make a BNWCS target, all you need is an object rezzed in-world. Then, follow these steps to turn it into a BNWCS Target.

  1. Place a "!BNWCS Target Settings" notecard in the root prim of the target.

    This target may contain the following options (Shown here with their default values):
    • target_health=100
      The target's hit points.
    • armor_factor=1
      You may change the "armor factor" to any number. Any damage taken will be divided by this number.
    • active_only=yes
      If this is "yes," the target will only take damage from avatars that are wearing an active BNWCS meter. Otherwise, all avatars will be able to damage it.
    • explosive_only=no
      If this is "yes," the target will only take damage from explosives. Use this for things like concrete walls and heavy blast doors that shouldn't ever yield to small-arms fire.
    • respawn_time=180
      - If this number is positive, the target will return to full health and able to be damaged, this many seconds after being destroyed.
      - If this number is zero, the target will not automatically reset itself.
      - If this number is negative, the target will use 180.
    • state_on_rez=off
      If this is "on," the target will be in the "combative" mode and able to take damage when it is rezzed. If it is "off," the target will be "non-combative" when it is rezzed, and will need to be turned on by its owner ("/8 ton") before it can take damage.
  2. Place the "BNWCS.api.target.lsl2" script in the target's root prim, right next to the notecard.
  3. If you want the target's health to be visible to everyone drop the "BNWCS.api.floating.lsl2" script into ANY prim in the target. It is a good idea to choose a prim that will keep the floating text as visible as possible.
  4. Done!

    There's one more optional step, though - the included "BNWCS.api.target.plugin.HPColor.lsl2" script will, when added to a BNWCS target, cause it to change in color to a darker and darker red as its HP approaches zero, then turn invisible and phantom (good for walls and doors and such) when destroyed. To test your target, put on your BNWCS, make sure the target is turned "on," and take a shot at it!

Usage

Targets respond to the following commands:

  • /8 ton
    Turns the target's BNWCS on, making it destructible.
  • /8 toff
    Turns the target's BNWCS off and hides its floating text, making it indestructible.
  • /8 treset
    - If the target is turned "off," this resets its script.
    - If the target is turned "on," this does nothing.
    - If the target is destroyed, this returns it to full HP in the "combative" mode.

Linked Messages

The BNWCS Target API script sends some link messages that you can use. A summary of these messages, and a description of when they will be sent, follows.

  • llMessageLinked(LINK_SET,state,"BNWCS Target State","");
    This message is sent when the target enters the combative, non-combative, or destroyed state. It is sent every time the state changes. The integer will be:
    0: Non-combative
    1: Combative
    2: Destroyed
  • llMessageLinked(LINK_SET,targetHealth,"BNWCS Target HP","");
    This message is sent every time the target's HP changes. "targetHealth" will be an integer representing the target's current remaining health.

In addition to sending link messages, the BNWCS Target API will listen for some, too, allowing you to control the script to some extent.

  • llMessageLinked(LINK_SET,newState,"Set BNWCS Target State,"");
    Sending this message allows you to change the target's state from combative or non-combative to one of the other states. The possible values of the "newState" integer are the same as the other link messages:
    -1: Revive the target (only works if target is destroyed; goes to combative)
    0: Non-combative (only works if target is combative)
    1: Combative (only works if target is non-combative)
    2: Destroyed (works whether target is combative or not)


Last updated Feb 18, 2010
meter_state
integer

Values:
0: Loading
1: Non-combative
2: Combative
3: Dead
Team
string

Values:
None, Red, Orange, Yellow, Green, Blue, Purple, Pink
Achievement_Type
string

Values:
headshot, multi_kill, killing_spree
This is a list of all the avatar's statistics and ranking information for the current sim, in stat=value format.

You would probably want to split this string at an ampersand (&) character, then split each of THOSE pieces at an equals sign (=).

The statistics are identified by shortened names in lower-case, as follows:

rtg: Rating
k: Kills
d: Deaths
a: Assists
kpd: Kills per Death
m: Longest Life
p: Total Playtime
r: Revived
hl: Healed
s: Sniped
hd: Headshots
mk: Multikills
ks: Killing Sprees
rnk: Rank
This is a list of all of the sim's settings, as provided by the "BNWCS Combat Zone Custom Settings Server" object.

You would probably want to split this string at an ampersand (&) character, then split each of THOSE pieces at an equals sign (=).

More information about all the different settings you will encounter in this string can be found at http://BNWCS.org/?zone_notes
Statistic_Name
string

Values:
Rating
Kills
Deaths
Assists
KPD (Kills per Death)
Maxlife (Longest Life)
Playtime (Total Playtime)
Revived
Healed
Sniped
Headshots
Multikills
Sprees (Killing Sprees)
Rank