Difference between revisions of "GenAbility"

From CoffeeMud Wiki
Jump to navigation Jump to search
Line 92: Line 92:
 
A Scriptable-behavior parameter denoting the script that is active during invocation of this skill and during its tenure as an affect. See the Scriptable Guide for detailed information on how to use mobprog scripts. Enter ? for some short help on acceptable parameters here. *special note: during successful invocation of this ability, a special trigger event will occur that can be handled by an IMASK_PROG p <ability id>. Such a script trigger would, for example, be the appropriate place to put damage commands for skills that do damage. Periodic actions can be placed in RAND_PROG triggers.
 
A Scriptable-behavior parameter denoting the script that is active during invocation of this skill and during its tenure as an affect. See the Scriptable Guide for detailed information on how to use mobprog scripts. Enter ? for some short help on acceptable parameters here. *special note: during successful invocation of this ability, a special trigger event will occur that can be handled by an IMASK_PROG p <ability id>. Such a script trigger would, for example, be the appropriate place to put damage commands for skills that do damage. Periodic actions can be placed in RAND_PROG triggers.
  
===Examples===
+
; Scriptable Examples : IMASK_PROG P heartpunch;MPECHOAT $t Your heart has stopped, you haven't long to live!;~;DELAY_PROG 14 14;MPECHOAROUND $t $t grab(s) at $M chest before collapsing to the ground.;MPECHOAT $t You grab at your chest before collapsing to the ground.;MPDAMAGE $i 999999999 999999999 kill;~;
 
 
*: IMASK_PROG P heartpunch;MPECHOAT $t Your heart has stopped, you haven't long to live!;~;DELAY_PROG 14 14;MPECHOAROUND $t $t grab(s) at $M chest before collapsing to the ground.;MPECHOAT $t You grab at your chest before collapsing to the ground.;MPDAMAGE $i 999999999 999999999 kill;~;
 
  
 
==Target Mask==
 
==Target Mask==

Revision as of 00:16, 3 April 2020

CoffeeMUD
Administrator                                                  Builder                                                              Player
=CoffeeMUD Administrator Information=
Installation     Help     Development    Modification     Feature Requests     Mud Grinder     ini     Security     CMARE Share     Wiki
=CoffeeMUD MUDGrinder=
Control Panel     File Browser     Journal Browser    Account Manager     Player Manager     Clan Manager     Polls Manager     System Reports     Server Log     Statistics    Cache Resources     Races     Classes     Abilities     Skill Recipes     SkillComponents     Quest Manager    Achievements     Holidays     Factions     Socials     Deities     Catalog

GenAbilities are abilities that are created virtually within CoffeeMUD. Before creating GenAbilities, you should be familiar with the [Builder's Guide] and the [Guide].

Creating GenAbilities

Creating GenAbilities Using the Command Line

To create an ability in-game, use the command CREATE ABILITY [ability_name].

To create a crafting skill, use the command CREATE CRAFTSKILL [ability_name].

To create a language skill, use the command CREATE LANGUAGE [language_name].

  • [ability_name] should be very descriptive to the nature of the ability. For example, if you are creating an ability that only wolves would use, you may wish to name the ability Wolf_Rake. You will have an opportunity to provide a more user-friendly display name later. Uniqueness of this name is important for making help file entries.

Creating GenAbilities Using the MUDGrinder

Select the Abilities link in the main Grinder menu. Scroll to the bottom of the list in the Abilities Creator page and type your ability name in the appropriate skill type, then click the Create new (skill type) link to the left of the entry box you chose.

GenAbility Data

Ability/Skill name

This is the display name of the ability that players/mobs will use.

Type, Domain

The type of ability will determine where it appears on a player's abilities list, whether it is a chant, prayer, skill, song or spell. The Domain affects which expertises apply to it, as well as other domain-related affects.

  • Do not put a space between the type and the domain, only place a comma between the two fields.
  • The domain name should not have any spaces. Typically, an underscore is used between domains with multiple words, like nature_lore.
  • Do not attempt to create new domains with this field. It does not work.

Command Words

This is the command you must state before specifying the ability name and target. For spells, this is CAST, CA, C. For properties, this field is blank. This field can be any command word desired, but may result in some conflicts within your mud when players are using socials or other commands of the same name as this field.

Minimum Range

The minimum range in which the mob must be to use the ability on the target. This is a descriptive list, with values of:

  • Melee
  • Close
  • Short
  • Medium
  • Long
  • Longer
  • Longerstill
  • Extremelylong
  • Infinite

Maximum Range

The maximum range in which the mob must be to use the ability on the target. Maximum Range uses the same descriptive list as minimum range, and should be the same or further than Minimum Range.

Ticks Between Casts

This field determines the frequency in which the ability may be used. If set to 0, this ability may be used as frequently as commanded. Any positive integer will cause this ability to be unavailable for use until that number of ticks has gone by.

Duration Override

This field will override an ability's duration. Normally, abilities will last for a Standard Duration.

Affect String

This is the display players will see when using the AFFECTS or SCORE command for abilities that persist. Generally, the affect string should be enclosed in parentheses. This may be left blank if you do not desire a player to be able to detect the affect. Obvious affects (like paralysis, losing a limb, or having a horrid stench) should have an affect string. If the #Can Affect is not set properly, this field will not be used.

Is Auto-invoking

Whether this skill is automatically applied to a player as an affect when they learn the skill. If true, the ability will show no casting message, and proceed directly to affecthood.

Skill Flags

0 or more comma-delimited ability flags that describe the affects of your skill to the rest of the mud engine.

Override Cost

Designate the cost of using this skill in mana/movement/etc.

  • A value of -1 means to use the default system as defined in your coffeemud.ini file.
  • A value of 0 means its free.
  • A value from 0-99999 means to always use that amount.
  • A value of 2147483647 means to always use all of the mobs mana/move points.
  • A value of 2147483647-100 to 2147483647 means to use that percentage of the mobs mana/move points.

Cost Type

This field allows you to determine what resource(s) are used to activate the ability for the assigned cost from the previous field. Mana is the default, but Movement, Hit Points or any combination of the three may be selected.

Can Affect

This field determines what types of targets are eligible for affect by the ability. Options include: Rooms, Mobs, Items, Exits, Areas. Multiple target types can be selected via a comma-delimited list. This list should be a subset of the #Can Target field.

Can Target

This field determines what types of targets are eligible for using the ability on. Options include: Rooms, Mobs, Items, Exits, Areas. Multiple target types can be selected via a comma-delimited list.

Tick/Periodic Affects

The standard damage/healing and Extra Castings will apply at skill invocation time. However, if your skill is set to affect the target over time, AND this is set to true, then those things will happen every tick until the effect expires.

Quality Code

Whether this skill is malicious (hurts the target), beneficial to self or others (always gives a combat benefit), ok to self or others (sometimes gives a combat benefit under certain circumstances), or indifferent (usually for role-playing skills).

Affect Adjustments

For skills that affect their targets (see Can Affect), this is the list of affects and their values. It is modeled on the same syntax and format of the property Prop_HereAdjuster.

Caster Mask

A zappermask to determine if the invoker is allowed, under the circumstances, to use this skill.

Scriptable Parm

A Scriptable-behavior parameter denoting the script that is active during invocation of this skill and during its tenure as an affect. See the Scriptable Guide for detailed information on how to use mobprog scripts. Enter ? for some short help on acceptable parameters here. *special note: during successful invocation of this ability, a special trigger event will occur that can be handled by an IMASK_PROG p <ability id>. Such a script trigger would, for example, be the appropriate place to put damage commands for skills that do damage. Periodic actions can be placed in RAND_PROG triggers.

Scriptable Examples 
IMASK_PROG P heartpunch;MPECHOAT $t Your heart has stopped, you haven't long to live!;~;DELAY_PROG 14 14;MPECHOAROUND $t $t grab(s) at $M chest before collapsing to the ground.;MPECHOAT $t You grab at your chest before collapsing to the ground.;MPDAMAGE $i 999999999 999999999 kill;~;

Target Mask

A zappermask to determine if the target is allowed, under the circumstances, to be targeted by this skill.

Fizzle Message

The message shown when the mob or player fails their proficiency check for this skill. Use <S-NAME> as a substitute for the invoker, and <T-NAME> as a substitute for the name of the target. Use Scriptable Tags to control grammatical correctness of your Fizzle Message.

Auto-Cast Message

The message shown when the skill is invoked from a wand, scroll or other automatic means. Use <S-NAME> as a substitute for the invoker, and <T-NAME> as a substitute for the name of the target. Use Scriptable Tags to control grammatical correctness of your Auto-Cast Message.

Normal-Cast Message

The message shown when the skill successfully invoked. Use <S-NAME> as a substitute for the invoker, and <T-NAME> as a substitute for the name of the target. Use Scriptable Tags to control grammatical correctness of your Normal-Cast Message.

Post-Cast Message

The message shown after the skill is invoked, if the target did not make a saving throw against it. Use <S-NAME> as a substitute for the invoker, and <T-NAME> as a substitute for the name of the target. Use Scriptable Tags to control grammatical correctness of your Post-Cast Message.

Uninvoke Message

The message shown after this skill is uninvoked. If the target is a mob, or an item held by a mob, then the message will be seen only by the mob. If the target is an item in a room, then the whole room will see the message. Use Scriptable Tags to control grammatical correctness of your Uninvoke Message.

Attack-Type

An optional field for malicious skills. This is the Secondary Attack Type of the attack being made, where the Primary Attack Type is determined by the skill type (magic for spells, chants, prayers, etc). For instance, for a flame-shooting spell, FIRE would be an appropriate value.

Quiet Effect ID

This field can be used to provide the entire affect of an existing ability to this new ability, with all of the costs, messages, domains, etc determined by this ability instead of the Quiet Effect ID. In this fashion, you can rebrand an existing ability's affect. None of the messages from the Quiet Effect ID will be applied, including the #Affect String of the Quiet Effect ID (but this ability's affect string will apply).

Public Effects

This field allows you to add a semi-colon delimited list of ability affects to the new ability. All messages and affects will be displayed as if the Public Effects were each cast independently from the new ability.

Extra Castings

An optional semicolon delimited list of miscellanous skills or spells which will be invoked upon the target of this skill after all of the other above things have occurred. Enter ? or help on Prop_SpellAdder for more information on the syntax for this field.

Damage/Healing Formula

An optional formula describing either a range of damage or a range of healing which will be inflicted upon the target of this skill at invocation time. The syntax of this field is a formula. Use +-*/()?. @x1=caster level, @x2=target level. Formula evaluates >0 for damage, <0 for healing. Requires Can Target above! See help on MATH_FORMULA for more information on how to use this formula field.

Help Text

This field provides additional information from the HELP (ability_name) command to players. It should always start with the tag <ABILITY> and does not require a closing tag. It is also useful to add in any Usage and Example information to be consistent with other help files. To add these additional fields using the help text, include the field name and enough spaces to reach the tenth character, which should be a colon (:), then a space and your field information. For subsequent lines within the same field type, use a colon, eight spaces, a colon, a space, and subsequent text. Repeat for each additional field you wish to include. At the end of each field, include a carriage return or %0D to force the formatting. After including all of your field data, put in your abilities description to help players understand and use the ability.

Command Line Example 
<ABILITY>Usage : RAKE [TARGET NAME]%0DExample : rake orc%0DUsing his powerful hind-claws, a wolf may rake flesh from his opponent.


MUDGrinder Example 
<ABILITY>Usage : RAKE [TARGET NAME]
Example : rake orc
: : rake bob
Using his powerful hind-claws, a wolf may rake flesh from his opponent.

Language Data

Name

The name of the language. Make this anything you like, but uniqueness is important for making help file entries.

X Letter Words

Languages work by replacing the players native language words with words from these lists which are similar in length. Since most English words are under 10 letters, you would normally not need more than 10 word lists. These lists are a comma delimited set of words in the New language that are used to replace English words of similar length.

Hashed/Replacement Words

If you would actually like to have some direct word translations, here is where you would put them. For example, to have the word "CAT" always translated to "DIABLO" in your new language, you would define that fact here.

Help Text

Always starting with the string <ABILITY>, this is the entry players will see when they enter HELP ABILITYNAME.

Crafting Skill Data

Name

The name of the skill. Make this anything you like, but uniqueness is important for making help file entries.

Command Words

The command invocation word. This need not be unique to your skill! Use commas to separate different invocation words.

Skill Verb

A descriptive verb shown when the player is doing this skill, such as mixing, crafting, carving, hitting...

Recipe Filename

The name of the recipe file, which will be found in /resources/skills/

Raw Materials

Ff this skill supports making items out of a raw material (as opposed to making items out of other items), then here is where you would specify which raw material or resource types are used to make them. If nothing is specified here, then the skill can only be used to make items from other items.

Can Mend

Does this skill support mending the things it makes?

Can Refit

Does this skill support refitting the wearables it makes?

Can Bundle

Does this skill support bundling the raw materials you make things from with this skill?

Can Sit

Can this skill be performed while sitting down?

MSP file

The name of the sound file from /web/pub/sounds that should be played when the player does this skill.

Help Text

Always starting with the string <ABILITY>, this is the entry players will see when they enter HELP ABILITYNAME.

Notes

.