ProgressionEvents

From PSwiki
Jump to navigation Jump to search

StatsOp

Used to affect a character stat (agility, intelligence, ...). This is used to change a character's stats live in game. StatsAOp are buffable (see ApplicativeScript).

Syntax:

 <agi aim="..."  value="..."/> or
 <end aim="..."  value="..."/> or
 <str aim="..."  value="..."/> or
 <cha aim="..."  value="..."/> or
 <int aim="..."  value="..."/> or
 <wil aim="..."  value="..."/> or

aim = "..." the operation's target, depending on the environment can be Actor or Target, inside a spell script Caster is a valid target.

value = "..." a mathscript defined value.


Examples: Reduce Actor's physical stats by 10% and raise mental stats by 10 points:

 <str aim="Actor" value="-0.1*Actor:GetSkillValue(50)"/>
 <agi aim="Actor" value="-0.1*Actor:GetSkillValue(46)"/>
 <end aim="Actor" value="-0.1*Actor:GetSkillValue(48)"/>
 <cha aim="Actor" value="10"/>
 <int aim="Actor" value="10"/>
 <wil aim="Actor" value="10"/>

LetOp

This operation allow to setup one or more variable which can be used inside the let operation block.

Syntax:

 <let vars="..."/> or <let vars="...">...</let> 

vars = "..." define a mathscript environment.

Examples: Setup Roll (random 0-100), Will and Power variables:

 <let vars="Roll=rnd(100);Will=Target:GetSkillValue(51); Power=0.8^(0.1*Will)*Roll;">
 ...
 </let>

IfOp

This operation allow to asses a condition and execute other operations if the result return true or false. It's a classic if/then/else operation.

Syntax:

 <if t="..."> 
   <then>...</then> 
   <else>...</else>
 </if> 

t = "..." a mathscript condition to verify.

Examples: Check if 'Water Barrier' spell is active on the target and send a message based on that:

 <if t="Target:ActiveSpellCount('Water Barrier') < 1">
   <then>
     <msg aim="Target" text="${Target} is not under Water Barrier spell."/>
   </then>
   <else>
     <msg aim="Target" text="${Target} is under Water Barrier spell."/>
   </else>
 </if>

TraitChangeOp

Used to create a change in character traits. This is used to change a character's appearance live in game. It takes the trait ID number and sends a broadcast out to all the players in range about the change.

Syntax:

 <trait value="#"/>
 value = "#" index id key into traits table

Examples: You apply trait 100 (grey hair) to actor and send message:

 <trait value="100" /><msg aim="actor" text="You drop the liquid on your hair."/>


ExperienceOp

Adjust the experience of the target.

Syntax:

 <exp type="allocate_last" value="#"/>

allocate_type = "allocate_last" means allocate damage last otherwise damage is allocated

value = "#" amount of experience to give single player or share with others