<?xml version="1.0" encoding="iso-8859-1"?>
<rss version="2.0">
	<channel>

	<title>Placement des PNJ en fonction du JOUR/NUIT</title>
	<link>http://www.nwn2.fr/forum/viewtopic.php?t=2646&amp;start=0&amp;postdays=0&amp;postorder=asc&amp;highlight=</link>
    <description>Placement des PNJ en fonction du JOUR/NUIT</description>
    <language>fr</language>
    <webMaster>webmaster@nwn2.fr</webMaster>
	<pubDate>Wed, 16 Jun 2010 09:46:55 +0200</pubDate>
	 <image>
      <url>http://www.nwn2.fr/logo-nwn2fr.jpg</url>
      <title>Nwn2.fr : Nouvelles sur Neverwinter Nights 2</title>
      <link>http://www.nwn2.fr</link>
    </image>


	<item>
	  <title>Posté par FeudeDaisy le 16/06/2010  8:46</title>
	  <link>http://www.nwn2.fr/forum/viewtopic.php?p=18935#18935</link>
	  <guid></guid>
	  <description>hello  &lt;img src=&quot;images/smiles/icon_smile.gif&quot; alt=&quot;Smile&quot; border=&quot;0&quot; /&gt; 
&lt;br /&gt;

&lt;br /&gt;
Voià, j'ai remarqué que la plupart des scripts pour NWN fonctionne sous NWN2!
&lt;br /&gt;
Dans mon module NWN j'avais deux scripts qui permettait d'avoir les PNJ à un emplacement différent le jour et la nuit grâce à des tags...
&lt;br /&gt;
Il suffisait de plaçait le PNJ sur la map &quot;de jour&quot; en mettant sous lui un tag &quot;DAY_NOMPNJ&quot; puis un tag &quot;EXIT_NOMPNJ&quot; pour la maison vers laquelle il se dirige la nuit venu!
&lt;br /&gt;
Dans la maison il suffisait de mettre un tag &quot;NIGHT_NOMPNJ&quot; pour l'endroit où est le PNJ de nuit et un tag &quot;EXIT_NOMPNJ&quot; devant la porte de sortie de la maison!
&lt;br /&gt;

&lt;br /&gt;
Deux scripts qu'il fallait mettre sur le OnSpawn et le OnHeartBeat : 
&lt;br /&gt;

&lt;br /&gt;
OnHeartBeat: 
&lt;br /&gt;
&lt;div class=&quot;centre&quot;&gt;&lt;div class=&quot;mep-new-cit-titre&quot;&gt;Spoiler&lt;/div&gt;&lt;div class=&quot;mep-new-cit-mi&quot; style=&quot;color:#b3a99f;&quot;&gt;
&lt;br /&gt;
       &lt;table width=&quot;90%&quot; cellspacing=&quot;1&quot; cellpadding=&quot;3&quot; border=&quot;0&quot; align=&quot;center&quot;&gt;&lt;tr&gt; 	  &lt;td&gt;&lt;span class=&quot;mep-p-g&quot;&gt;Code:&lt;/span&gt;&lt;/td&gt;	&lt;/tr&gt;	&lt;tr&gt;	  &lt;td class=&quot;code&quot;&gt;//&amp;#58;///////////////////////// /////////////////////
&lt;br /&gt;
//&amp;#58;&amp;#58; Heartbeat personnalise
&lt;br /&gt;
//&amp;#58;&amp;#58; RAV_ANIMHB
&lt;br /&gt;
//&amp;#58;///////////////////////// ////////////////////
&lt;br /&gt;
/* 
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; Animations personnalisees 
&lt;br /&gt;
*/
&lt;br /&gt;
//&amp;#58;///////////////////////// ////////////////////
&lt;br /&gt;
//&amp;#58;&amp;#58; Created By&amp;#58; Serge GANDOLPHE
&lt;br /&gt;
//&amp;#58;&amp;#58; Created On&amp;#58; 13 fevrier 2003
&lt;br /&gt;
//&amp;#58;///////////////////////// ////////////////////
&lt;br /&gt;
#include &amp;quot;NW_I0_GENERIC&amp;quot;
&lt;br /&gt;
#include &amp;quot;nw_i0_plot&amp;quot;
&lt;br /&gt;

&lt;br /&gt;
void main&amp;#40;&amp;#41;
&lt;br /&gt;
&amp;#123;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; //if&amp;#40;!GetIsInCombat&amp;#40;&amp;#41; &amp;amp;amp;&amp;amp;amp; !IsInConversation&amp;#40;OBJECT_SELF&amp;#41; &amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; //&amp;nbsp; &amp;nbsp; ActionRandomWalk&amp;#40;&amp;#41;;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; if&amp;#40;GetSpawnInCondition&amp;#40;NW_FLAG_FAST_BUFF_ENEMY&amp;#41;&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if&amp;#40;TalentAdvancedBuff&amp;#40;40.0&amp;#41;&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; SetSpawnInCondition&amp;#40;NW_FLAG_FAST_BUFF_ENEMY, FALSE&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; if&amp;#40;GetSpawnInCondition&amp;#40;NW_FLAG_DAY_NIGHT_POSTING&amp;#41;&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int nDay = FALSE;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if&amp;#40;GetIsDay&amp;#40;&amp;#41; || GetIsDawn&amp;#40;&amp;#41;&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; nDay = TRUE;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if&amp;#40;GetLocalInt&amp;#40;OBJECT_SELF, &amp;quot;NW_GENERIC_DAY_NIGHT&amp;quot;&amp;#41; != nDay&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if&amp;#40;nDay == TRUE&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; SetLocalInt&amp;#40;OBJECT_SELF, &amp;quot;NW_GENERIC_DAY_NIGHT&amp;quot;, TRUE&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; else
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; SetLocalInt&amp;#40;OBJECT_SELF, &amp;quot;NW_GENERIC_DAY_NIGHT&amp;quot;, FALSE&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; WalkWayPoints&amp;#40;&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; if&amp;#40;!GetHasEffect&amp;#40;EFFECT_TYPE_SLEEP&amp;#41;&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if&amp;#40;!GetIsPostOrWalking&amp;#40;&amp;#41;&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if&amp;#40;!GetIsObjectValid&amp;#40;GetAttemptedAttackTarget&amp;#40;&amp;#41;&amp;#41; &amp;amp;&amp;amp; !GetIsObjectValid&amp;#40;GetAttemptedSpellTarget&amp;#40;&amp;#41;&amp;#41;&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if&amp;#40;!GetIsObjectValid&amp;#40;GetNearestCreature&amp;#40;CREATURE_TYPE_REPUTATION, REPUTATION_TYPE_ENEMY, OBJECT_SELF, 1, CREATURE_TYPE_PERCEPTION, PERCEPTION_SEEN&amp;#41;&amp;#41;&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if&amp;#40;!GetBehaviorState&amp;#40;NW_FLAG_BEHAVIOR_SPECIAL&amp;#41; &amp;amp;&amp;amp; !IsInConversation&amp;#40;OBJECT_SELF&amp;#41;&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if&amp;#40;GetSpawnInCondition&amp;#40;NW_FLAG_AMBIENT_ANIMATIONS&amp;#41; || GetSpawnInCondition&amp;#40;NW_FLAG_AMBIENT_ANIMATIONS_AVIAN&amp;#41;&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; PlayMobileAmbientAnimations&amp;#40;&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; else if&amp;#40;GetIsEncounterCreature&amp;#40;&amp;#41; &amp;amp;&amp;amp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; !GetIsObjectValid&amp;#40;GetNearestCreature&amp;#40;CREATURE_TYPE_REPUTATION, REPUTATION_TYPE_ENEMY, OBJECT_SELF, 1, CREATURE_TYPE_PERCEPTION, PERCEPTION_SEEN&amp;#41;&amp;#41;&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; PlayMobileAmbientAnimations&amp;#40;&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; else if&amp;#40;GetSpawnInCondition&amp;#40;NW_FLAG_IMMOBILE_AMBIENT_ANIMATIONS&amp;#41; &amp;amp;&amp;amp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; !GetIsObjectValid&amp;#40;GetNearestCreature&amp;#40;CREATURE_TYPE_REPUTATION, REPUTATION_TYPE_ENEMY, OBJECT_SELF, 1, CREATURE_TYPE_PERCEPTION, PERCEPTION_SEEN&amp;#41;&amp;#41;&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; PlayImmobileAmbientAnimations&amp;#40;&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; else
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; DetermineSpecialBehavior&amp;#40;&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; else
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //DetermineCombatRound&amp;#40;&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; else
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if&amp;#40;GetSpawnInCondition&amp;#40;NW_FLAG_SLEEPING_AT_NIGHT&amp;#41;&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; effect eVis = EffectVisualEffect&amp;#40;VFX_IMP_SLEEP&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if&amp;#40;d10&amp;#40;&amp;#41; &amp;gt; 6&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ApplyEffectToObject&amp;#40;DURATION_TYPE_INSTANT, eVis, OBJECT_SELF&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; if&amp;#40;GetSpawnInCondition&amp;#40;NW_FLAG_HEARTBEAT_EVENT&amp;#41;&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; SignalEvent&amp;#40;OBJECT_SELF, EventUserDefined&amp;#40;1001&amp;#41;&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; //Ca se passe ici
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; /*Le jour le pnj se ballade dans le village et a la tombee de la nuit il rentre chez lui*/
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if&amp;#40;GetLocalInt&amp;#40;OBJECT_SELF,&amp;quot;isoutside&amp;quot;&amp;#41;&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if&amp;#40;&amp;#40;GetIsNight&amp;#40;&amp;#41; || GetIsDusk&amp;#40;&amp;#41;&amp;#41; &amp;amp;&amp;amp; !GetLocalInt&amp;#40;OBJECT_SELF,&amp;quot;movedinside&amp;quot;&amp;#41;&amp;#41;&amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; SetLocalInt&amp;#40;OBJECT_SELF,&amp;quot;isoutside&amp;quot;, FALSE&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; SetLocalInt&amp;#40;OBJECT_SELF,&amp;quot;movedoutside&amp;quot;,FALSE&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; SetLocalInt&amp;#40;OBJECT_SELF,&amp;quot;movedinside&amp;quot;,TRUE&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ClearAllActions&amp;#40;TRUE&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; EscapeArea&amp;#40;FALSE,&amp;quot;EXIT_&amp;quot;+GetTag&amp;#40;OBJECT_SELF&amp;#41;&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; object OPnj = CreateObject&amp;#40;OBJECT_TYPE_CREATURE,GetResRef&amp;#40;OBJECT_SELF&amp;#41;,GetLocation&amp;#40;GetWaypointByTag&amp;#40;&amp;quot;NIGHT_&amp;quot;+GetTag&amp;#40;OBJECT_SELF&amp;#41;&amp;#41;&amp;#41;&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; DestroyObject&amp;#40;OBJECT_SELF,10.0f&amp;#41;;//Pour etre certain de ne pas avoir de clones
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; else&amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if&amp;#40;&amp;#40;GetIsDay&amp;#40;&amp;#41; || GetIsDawn&amp;#40;&amp;#41;&amp;#41; &amp;amp;&amp;amp; !GetLocalInt&amp;#40;OBJECT_SELF,&amp;quot;movedoutside&amp;quot;&amp;#41;&amp;#41;&amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; SetLocalInt&amp;#40;OBJECT_SELF,&amp;quot;isoutside&amp;quot;, TRUE&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; SetLocalInt&amp;#40;OBJECT_SELF,&amp;quot;movedoutside&amp;quot;,TRUE&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; SetLocalInt&amp;#40;OBJECT_SELF,&amp;quot;movedinside&amp;quot;,FALSE&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ClearAllActions&amp;#40;TRUE&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; EscapeArea&amp;#40;FALSE,&amp;quot;EXIT_&amp;quot;+GetTag&amp;#40;OBJECT_SELF&amp;#41;&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; object OPnj = CreateObject&amp;#40;OBJECT_TYPE_CREATURE,GetResRef&amp;#40;OBJECT_SELF&amp;#41;,GetLocation&amp;#40;GetWaypointByTag&amp;#40;&amp;quot;DAY_&amp;quot;+GetTag&amp;#40;OBJECT_SELF&amp;#41;&amp;#41;&amp;#41;&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; DestroyObject&amp;#40;OBJECT_SELF,10.0f&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;#125;&lt;/td&gt;	&lt;/tr&gt;&lt;/table&gt; &lt;/div&gt;&lt;/div&gt;
&lt;br /&gt;

&lt;br /&gt;

&lt;br /&gt;
OnSpawn:
&lt;br /&gt;
&lt;div class=&quot;centre&quot;&gt;&lt;div class=&quot;mep-new-cit-titre&quot;&gt;Spoiler&lt;/div&gt;&lt;div class=&quot;mep-new-cit-mi&quot; style=&quot;color:#b3a99f;&quot;&gt;       &lt;table width=&quot;90%&quot; cellspacing=&quot;1&quot; cellpadding=&quot;3&quot; border=&quot;0&quot; align=&quot;center&quot;&gt;&lt;tr&gt; 	  &lt;td&gt;&lt;span class=&quot;mep-p-g&quot;&gt;Code:&lt;/span&gt;&lt;/td&gt;	&lt;/tr&gt;	&lt;tr&gt;	  &lt;td class=&quot;code&quot;&gt;//&amp;#58;///////////////////////// /////////////////////
&lt;br /&gt;
//&amp;#58;&amp;#58; Default&amp;#58; On Spawn In
&lt;br /&gt;
//&amp;#58;&amp;#58; rav_os_commoner
&lt;br /&gt;
//&amp;#58;&amp;#58; Par Serge GANDOLPHE
&lt;br /&gt;
//&amp;#58;///////////////////////// ////////////////////
&lt;br /&gt;
/* 
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; Determines the course of action to be taken 
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; after having just been spawned in 
&lt;br /&gt;
*/
&lt;br /&gt;
//&amp;#58;///////////////////////// ////////////////////
&lt;br /&gt;
//&amp;#58;&amp;#58; Created By&amp;#58; Preston Watamaniuk
&lt;br /&gt;
//&amp;#58;&amp;#58; Created On&amp;#58; Oct 25, 2001
&lt;br /&gt;
//&amp;#58;///////////////////////// ////////////////////
&lt;br /&gt;
#include &amp;quot;NW_O2_CONINCLUDE&amp;quot;
&lt;br /&gt;
#include &amp;quot;NW_I0_GENERIC&amp;quot;
&lt;br /&gt;

&lt;br /&gt;
void main&amp;#40;&amp;#41;
&lt;br /&gt;
&amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; //Ici il faut lister vos zones de JOUR!!!!
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; //Remplacez simplement zone1 et zone2 par les tags de vos zones et rajoutez autant de&amp;nbsp; || areaTag ==&amp;quot;zonex&amp;quot; que vous avez de zones de jour
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; string areaTag = GetTag&amp;#40;GetArea&amp;#40;OBJECT_SELF&amp;#41;&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; if&amp;#40;areaTag ==&amp;quot;valkenas&amp;quot; || areaTag ==&amp;quot;valkenasecurie&amp;quot; || areaTag ==&amp;quot;valkenasmoulin&amp;quot; || areaTag ==&amp;quot;valkenasferme&amp;quot; || areaTag ==&amp;quot;valkenashouse1&amp;quot; || areaTag ==&amp;quot;valkenashouse2&amp;quot; &amp;#41;&amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; SetLocalInt&amp;#40;OBJECT_SELF,&amp;quot;isoutside&amp;quot;, TRUE&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; SetLocalInt&amp;#40;OBJECT_SELF,&amp;quot;movedoutside&amp;quot;,TRUE&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; SetLocalInt&amp;#40;OBJECT_SELF,&amp;quot;movedinside&amp;quot;,FALSE&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; else&amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; SetLocalInt&amp;#40;OBJECT_SELF,&amp;quot;isoutside&amp;quot;, FALSE&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; SetLocalInt&amp;#40;OBJECT_SELF,&amp;quot;movedoutside&amp;quot;,FALSE&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; SetLocalInt&amp;#40;OBJECT_SELF,&amp;quot;movedinside&amp;quot;,TRUE&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
// OPTIONAL BEHAVIORS &amp;#40;Comment In or Out to Activate &amp;#41; ****************************** ****************************** ****************
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; //SetSpawnInCondition&amp;#40;NW_FLAG_ SPECIAL_CONVERSATION&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; //SetSpawnInCondition&amp;#40;NW_FLAG_ SPECIAL_COMBAT_CONVERSATION&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // This causes the creature to say a special greeting in their conversation file
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // upon Perceiving the player. Attach the &amp;#91;NW_D2_GenCheck.nss&amp;#93; script to the desired
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // greeting in order to designate it. As the creature is actually saying this to
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // himself, don't attach any player responses to the greeting.
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; //SetSpawnInCondition&amp;#40;NW_FLAG_ SHOUT_ATTACK_MY_TARGET&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // This will set the listening pattern on the NPC to attack when allies call
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; //SetSpawnInCondition&amp;#40;NW_FLAG_ STEALTH&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // If the NPC has stealth and they are a rogue go into stealth mode
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; //SetSpawnInCondition&amp;#40;NW_FLAG_ SEARCH&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // If the NPC has Search go into Search Mode
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; //SetSpawnInCondition&amp;#40;NW_FLAG_ SET_WARNINGS&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // This will set the NPC to give a warning to non-enemies before attacking
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; //SetSpawnInCondition&amp;#40;NW_FLAG_ SLEEP&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //Creatures that spawn in during the night will be asleep.
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; //SetSpawnInCondition&amp;#40;NW_FLAG_ DAY_NIGHT_POSTING&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; //SetSpawnInCondition&amp;#40;NW_FLAG_ APPEAR_SPAWN_IN_ANIMATION&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; //SetSpawnInCondition&amp;#40;NW_FLAG_ IMMOBILE_AMBIENT_ANIMATIONS&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; //SetSpawnInCondition&amp;#40;NW_FLAG_ AMBIENT_ANIMATIONS&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //This will play Ambient Animations until the NPC sees an enemy or is cleared.
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //NOTE that these animations will play automatically for Encounter Creatures.
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; // NOTE&amp;#58; ONLY ONE OF THE FOLOOWING ESCAPE COMMANDS SHOULD EVER BE ACTIVATED AT ANY ONE TIME.
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; //SetSpawnInCondition&amp;#40;NW_FLAG_ ESCAPE_RETURN&amp;#41;;&amp;nbsp; &amp;nbsp; // OPTIONAL BEHAVIOR &amp;#40;Flee to a way point and return a short time later.&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; //SetSpawnInCondition&amp;#40;NW_FLAG_ ESCAPE_LEAVE&amp;#41;;&amp;nbsp; &amp;nbsp; // OPTIONAL BEHAVIOR &amp;#40;Flee to a way point and do not return.&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; //SetSpawnInCondition&amp;#40;NW_FLAG_ TELEPORT_LEAVE&amp;#41;;&amp;nbsp; // OPTIONAL BEHAVIOR &amp;#40;Teleport to safety and do not return.&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; //SetSpawnInCondition&amp;#40;NW_FLAG_ TELEPORT_RETURN&amp;#41;;&amp;nbsp; // OPTIONAL BEHAVIOR &amp;#40;Teleport to safety and return a short time later.&amp;#41;
&lt;br /&gt;

&lt;br /&gt;
// CUSTOM USER DEFINED EVENTS
&lt;br /&gt;
/* 
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; The following settings will allow the user to fire one of the blank user defined events in the NW_D2_DefaultD.&amp;nbsp; Like the 
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; On Spawn In script this script is meant to be customized by the end user to allow for unique behaviors.&amp;nbsp; The user defined 
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; events user 1000 - 1010 
&lt;br /&gt;
*/
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; //SetSpawnInCondition&amp;#40;NW_FLAG_ HEARTBEAT_EVENT&amp;#41;;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //OPTIONAL BEHAVIOR - Fire User Defined Event 1001
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; //SetSpawnInCondition&amp;#40;NW_FLAG_ PERCIEVE_EVENT&amp;#41;;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //OPTIONAL BEHAVIOR - Fire User Defined Event 1002
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; //SetSpawnInCondition&amp;#40;NW_FLAG_ ATTACK_EVENT&amp;#41;;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //OPTIONAL BEHAVIOR - Fire User Defined Event 1005
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; //SetSpawnInCondition&amp;#40;NW_FLAG_ DAMAGED_EVENT&amp;#41;;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //OPTIONAL BEHAVIOR - Fire User Defined Event 1006
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; //SetSpawnInCondition&amp;#40;NW_FLAG_ DISTURBED_EVENT&amp;#41;;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //OPTIONAL BEHAVIOR - Fire User Defined Event 1008
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; //SetSpawnInCondition&amp;#40;NW_FLAG_ END_COMBAT_ROUND_EVENT&amp;#41;; //OPTIONAL BEHAVIOR - Fire User Defined Event 1003
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; //SetSpawnInCondition&amp;#40;NW_FLAG_ ON_DIALOGUE_EVENT&amp;#41;;&amp;nbsp; &amp;nbsp; &amp;nbsp; //OPTIONAL BEHAVIOR - Fire User Defined Event 1004
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; //SetSpawnInCondition&amp;#40;NW_FLAG_ DEATH_EVENT&amp;#41;;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //OPTIONAL BEHAVIOR - Fire User Defined Event 1007
&lt;br /&gt;

&lt;br /&gt;
// DEFAULT GENERIC BEHAVIOR &amp;#40;DO NOT TOUCH&amp;#41; ****************************** ****************************** *****************************
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; SetListeningPatterns&amp;#40;&amp;#41;; // Goes through and sets up which shouts the NPC will listen to.
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; WalkWayPoints&amp;#40;&amp;#41;; // Optional Parameter&amp;#58; void WalkWayPoints&amp;#40;int nRun = FALSE, float fPause = 1.0&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // 1. Looks to see if any Way Points in the module have the tag &amp;quot;WP_&amp;quot; + NPC TAG + &amp;quot;_0X&amp;quot;, if so walk them
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // 2. If the tag of the Way Point is &amp;quot;POST_&amp;quot; + NPC TAG the creature will return this way point after
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //&amp;nbsp; &amp;nbsp; combat.
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; GenerateNPCTreasure&amp;#40;&amp;#41;; //* Use this to create a small amount of treasure on the creature
&lt;br /&gt;
&amp;#125;&lt;/td&gt;	&lt;/tr&gt;&lt;/table&gt; &lt;/div&gt;&lt;/div&gt;
&lt;br /&gt;

&lt;br /&gt;

&lt;br /&gt;
Le script inclus dans NWN : &quot;NW_I0_GENERIC&quot;, ne fonctionnant pas correctement (une erreur dans la commande &quot;GetIsPostOrWalking&quot;) m'a obligé à rajouté ceci avant le script :
&lt;br /&gt;
       &lt;table width=&quot;90%&quot; cellspacing=&quot;1&quot; cellpadding=&quot;3&quot; border=&quot;0&quot; align=&quot;center&quot;&gt;&lt;tr&gt; 	  &lt;td&gt;&lt;span class=&quot;mep-p-g&quot;&gt;Code:&lt;/span&gt;&lt;/td&gt;	&lt;/tr&gt;	&lt;tr&gt;	  &lt;td class=&quot;code&quot;&gt;
&lt;br /&gt;
int GetIsPostOrWalking&amp;#40;object oWalker = OBJECT_SELF&amp;#41;
&lt;br /&gt;
&amp;#123;
&lt;br /&gt;
if &amp;#40;!GetWalkCondition&amp;#40;NW_WALK_FLAG_INITIALIZED, oWalker&amp;#41;&amp;#41;
&lt;br /&gt;
&amp;#123;
&lt;br /&gt;
AssignCommand&amp;#40;oWalker, LookUpWalkWayPoints&amp;#40;GetWWPController&amp;#40;oWalker&amp;#41;&amp;#41;&amp;#41;;
&lt;br /&gt;
&amp;#125;
&lt;br /&gt;

&lt;br /&gt;
string sPrefix = GetWPPrefix&amp;#40;&amp;#41;;
&lt;br /&gt;
if &amp;#40;GetLocalInt&amp;#40;oWalker, sPrefix +&amp;quot;NUM&amp;quot;&amp;#41; &amp;gt; 0&amp;#41;
&lt;br /&gt;
return TRUE;
&lt;br /&gt;

&lt;br /&gt;
return FALSE;
&lt;br /&gt;
&amp;#125;&lt;/td&gt;	&lt;/tr&gt;&lt;/table&gt;
&lt;br /&gt;

&lt;br /&gt;

&lt;br /&gt;
Le problème est que le PNJ spawn toutes les 6 secondes (donc un problème dans le HeartBeat je présume) au lieu de ne pas spawn du tout car le PNJ est déjà dans la zone JOUR!
&lt;br /&gt;
Si quelqu'un à le courage d'essayer de résoudre le problème pour rendre le script opérationnel, j'avoue que ce serait un soulagement pour moi... car là, je suis dans une impasse...  &lt;img src=&quot;images/smiles/icon_rolleyes.gif&quot; alt=&quot;Rolling Eyes&quot; border=&quot;0&quot; /&gt;</description>
	  <pubDate>Wed, 16 Jun 2010 09:46:55 +0200</pubDate>
	  <author>FeudeDaisy</author>
	</item>
	<item>
	  <title>Posté par Tink le 17/06/2010  11:46</title>
	  <link>http://www.nwn2.fr/forum/viewtopic.php?p=18944#18944</link>
	  <guid></guid>
	  <description>C'est pas du petit script, pour sûr. ^^'
&lt;br /&gt;
Il est possible que certaines fonctions de marchent pas sous nwn2. J'avais un problème avec celle qui permet d'ajuster l'hostilité des factions vis-à-vis des PJs alors qu'elle fonctionnait très bien sous nwn1. Je vais voir ce que je peut faire avec ton script mais je promet rien. :s
&lt;br /&gt;

&lt;br /&gt;
[Edit : tu as rajouté les lignes dans le script de OnSpawn ou dans le script NW_I0_GENERIC...?]
&lt;br /&gt;

&lt;br /&gt;
[Redit : j'ai fais le test du script... pas de soucis de répétition de spawn, mais le script fait que le PNJ attaque la plus proche personne... même si celle-ci est alliée. Je vais faire encore quelques tests pour fixer ça]</description>
	  <pubDate>Thu, 17 Jun 2010 12:46:18 +0200</pubDate>
	  <author>Tink</author>
	</item>
	<item>
	  <title>Posté par FeudeDaisy le 17/06/2010  14:13</title>
	  <link>http://www.nwn2.fr/forum/viewtopic.php?p=18945#18945</link>
	  <guid></guid>
	  <description>je l'ai rajouté dans le &quot;onheartbeat&quot; pour contrer la non compilation causé par la balise GetIsPostOrWalking!!!
&lt;br /&gt;

&lt;br /&gt;
c'est louche tout ça!</description>
	  <pubDate>Thu, 17 Jun 2010 15:13:19 +0200</pubDate>
	  <author>FeudeDaisy</author>
	</item>
	<item>
	  <title>Posté par Tink le 17/06/2010  15:11</title>
	  <link>http://www.nwn2.fr/forum/viewtopic.php?p=18948#18948</link>
	  <guid></guid>
	  <description>En fait c'était pas le script qui me faisait attaquer le personnage, c'était juste Aldanon (PNJ que j'avais élu pour tester le script) qui était victime de pulsions homicides... Oo
&lt;br /&gt;

&lt;br /&gt;
A part ça moi j'ai pas de soucis avec ce script, il fonctionne sans problèmes... Ceci dit, il doit forcément y avoir baleine sous gravillon pour que ça fonctionne pas chez toi (quoique avec nwn2 tout est possible &amp;gt;_o), mais où est le problème, ça... :/
&lt;br /&gt;
Juste comme ça, les lignes que tu as rajouté tu les as mises avant ou après les includes ? (on sait jamais :s)</description>
	  <pubDate>Thu, 17 Jun 2010 16:11:56 +0200</pubDate>
	  <author>Tink</author>
	</item>
	<item>
	  <title>Posté par FeudeDaisy le 17/06/2010  15:58</title>
	  <link>http://www.nwn2.fr/forum/viewtopic.php?p=18950#18950</link>
	  <guid></guid>
	  <description>j'ai rajouté entre le dernier #include et le premier void main!
&lt;br /&gt;

&lt;br /&gt;
Peut-être que j'ai pas mis dans la bonne ligne dans l'éditeur?
&lt;br /&gt;
Moi j'ai mis le script OnSpawn sur la ligne &quot;spawn&quot; et le &quot;onheartbeat&quot; sur la ligne récurant (pulsation toutes les 6 secondes!)?</description>
	  <pubDate>Thu, 17 Jun 2010 16:58:27 +0200</pubDate>
	  <author>FeudeDaisy</author>
	</item>
	<item>
	  <title>Posté par Tink le 17/06/2010  16:07</title>
	  <link>http://www.nwn2.fr/forum/viewtopic.php?p=18951#18951</link>
	  <guid></guid>
	  <description>C'est bien ça.
&lt;br /&gt;
Ça devrait exécuter le script toutes les 6 secondes, mais il contient des structures conditionnelles qui devraient empêcher que ça fasse des répétitions... ce qui fonctionne chez moi.  &lt;img src=&quot;images/smiles/icon_confused.gif&quot; alt=&quot;Confused&quot; border=&quot;0&quot; /&gt; 
&lt;br /&gt;
Je voit pas trop comment t'aider, du coup. :/</description>
	  <pubDate>Thu, 17 Jun 2010 17:07:14 +0200</pubDate>
	  <author>Tink</author>
	</item>
	<item>
	  <title>Posté par FeudeDaisy le 21/06/2010  9:20</title>
	  <link>http://www.nwn2.fr/forum/viewtopic.php?p=18953#18953</link>
	  <guid></guid>
	  <description>salut
&lt;br /&gt;

&lt;br /&gt;
quelles versions de NWN2 tu utilise?
&lt;br /&gt;
Peut-tu poster ici le contenu des scripts suivants stp? : 
&lt;br /&gt;
#include &quot;NW_I0_GENERIC&quot; 
&lt;br /&gt;
#include &quot;nw_i0_plot&quot;
&lt;br /&gt;

&lt;br /&gt;
Si tu as un NWN2 avec extension c'est possible qu'il y ait un script plus avancée que ce dont je dispose!</description>
	  <pubDate>Mon, 21 Jun 2010 10:20:05 +0200</pubDate>
	  <author>FeudeDaisy</author>
	</item>
	<item>
	  <title>Posté par Tink le 21/06/2010  10:39</title>
	  <link>http://www.nwn2.fr/forum/viewtopic.php?p=18954#18954</link>
	  <guid></guid>
	  <description>Effectivement, j'ai Mask of the Betrayer &amp;amp; Storm of Zehir, donc une mise à jour de ces 2 scripts à pu être faite dans l'une ou l'autre. J'espère qu'ils passeront sur ta version, si c'est le cas.
&lt;br /&gt;

&lt;br /&gt;
&lt;span style=&quot;font-weight: bold&quot;&gt;NW_I0_GENERIC&lt;/span&gt;
&lt;br /&gt;

&lt;br /&gt;
       &lt;table width=&quot;90%&quot; cellspacing=&quot;1&quot; cellpadding=&quot;3&quot; border=&quot;0&quot; align=&quot;center&quot;&gt;&lt;tr&gt; 	  &lt;td&gt;&lt;span class=&quot;mep-p-g&quot;&gt;Code:&lt;/span&gt;&lt;/td&gt;	&lt;/tr&gt;	&lt;tr&gt;	  &lt;td class=&quot;code&quot;&gt;// nw_i0_generic
&lt;br /&gt;
/*
&lt;br /&gt;
//&amp;#58;&amp;#58;///////////////////////////////////////////////
&lt;br /&gt;
//&amp;#58;&amp;#58; Generic Scripting Include v1.0
&lt;br /&gt;
//&amp;#58;&amp;#58; NW_I0_GENERIC
&lt;br /&gt;
//&amp;#58;&amp;#58; Copyright &amp;#40;c&amp;#41; 2001 Bioware Corp.
&lt;br /&gt;
//&amp;#58;&amp;#58;//////////////////////////////////////////////
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; December 7 2002, Naomi Novik
&lt;br /&gt;
&amp;nbsp; Many functions removed to separate libraries&amp;#58;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; x0_i0_behavior
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; behavior constants
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; SetBehaviorState
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; GetBehaviorState
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; x0_i0_anims
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; PlayMobileAmbientAnimations_NonAvian
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; PlayMobileAmbientAnimations_Avian
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#40;with PlayMobileAmbientAnimations changed to
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; just a call to one of these two&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; PlayImmobileAmbientAnimations
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;|
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; x0_i0_walkway
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; WalkWayPoints
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; RunNextCircuit
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; RunCircuit
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; CheckWayPoints
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; GetIsPostOrWalking
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;|
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; x0_i0_spawncond
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; OnSpawn condition constants
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; SetSpawnInCondition
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; GetSpawnInCondition
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; SetSpawnInLocals
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; SetListeningPatterns
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;|
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;x0_i0_combat
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;Combat Conditions and Special abilities&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;|
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; x0_i0_talent
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ALL the talent functions
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;|
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; nwn2_inc_talent
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;Warlock and other new talents - mostly an addendum to x0_i0_talent
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;|&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; x0_inc_generic
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Pretty much everything else
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;|
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; x0_i0_equip
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Equipping functions
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;|&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; x0_i0_enemy
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;Finding/Identifying Enemies&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;|
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; x0_i0_match
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Matching functions
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; x0_i0_assoc
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; associate constants &amp;#40;NW_ASC_...&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; GetPercentageHPLoss &amp;#40;only used in GetAssociateHealMaster&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; SetAssociateState
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; GetAssociateState
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ResetHenchmenState
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; AssociateCheck
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; GetAssociateHealMaster
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; GetFollowDistance
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; SetAssociateStartLocation
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; GetAssociateStartLocation
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; x0_i0_debug
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; MyPrintString
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; DebugPrintTalentId
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; newdebug
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; ***********************************************'
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; CHANGE SUMMARY
&lt;br /&gt;

&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; February 6 2003&amp;#58; Commented out the Henchman RespondToShout because now using
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;the newer bkRespondToShout function in x0_i0_henchman
&lt;br /&gt;

&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; September 18 2002&amp;#58; DetermineCombatRound broken into smaller functions
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 19&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;#58; Removed randomness from Talent system. You can't
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;have smart AI and random behavior. Only healing
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;has the possiblity of being random.
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;I may want to add the possibility of getting a
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;random talent only in the Talent filter if
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;something fails &amp;#40;*&amp;#41;
&lt;br /&gt;

&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; ********************************************
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; WARNING THIS SCRIPT IS CHANGED AT YOUR PERIL
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; ********************************************
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; This is the master generic script and currently
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; handles all combat and some plot behavior
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; within NWN. If this script is tampered
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; with there is a chance of introducing game
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; breaking bugs.&amp;nbsp; But other than that enjoy.
&lt;br /&gt;
*/
&lt;br /&gt;
//&amp;#58;&amp;#58; Created By&amp;#58; Preston Watamaniuk
&lt;br /&gt;
//&amp;#58;&amp;#58; Created On&amp;#58; Sept 20, 2001
&lt;br /&gt;
//&amp;nbsp; &amp;nbsp;6/22/05 ChazM - changed commoners to always attempt to flee in chooseTactics&amp;#40;&amp;#41;
&lt;br /&gt;
//&amp;nbsp; &amp;nbsp;7/29/05&amp;nbsp; &amp;nbsp;EPF &amp;#40;OEI&amp;#41; - Short circuited combat if creature is attacking a party member who's in a conversation
&lt;br /&gt;
//&amp;nbsp; &amp;nbsp;3/10/06 BMA-OEI - modified GetIsInCutscene&amp;#40;&amp;#41; to check only the PC party
&lt;br /&gt;
//&amp;nbsp; &amp;nbsp;6/6/06 EPF - Incorporated new Warlock spellcasting AI, made additions for Warlock invisibility AI.
&lt;br /&gt;
//&amp;nbsp; &amp;nbsp;6/6/06 ChazM - Incorporated prestige classes
&lt;br /&gt;
//&amp;nbsp; &amp;nbsp;6/20/06 ChazM - Fixed Barbarian Rage.
&lt;br /&gt;
//&amp;nbsp; &amp;nbsp;6/21/06 ChazM - Fixed Frenzy of Frenzied Berserker.&amp;nbsp; Fix to DetermineClassToUse&amp;#40;&amp;#41;
&lt;br /&gt;
//&amp;nbsp; &amp;nbsp;9/07/06 DBR - To prevent knockdown overuse we moved it to a talent in chooseTactics&amp;#40;&amp;#41;
&lt;br /&gt;
//&amp;nbsp; &amp;nbsp;9/12/06 DBR - Removed MoveToPoint as a case where combat rounds are turned off. __IsInCombatRound&amp;#40;&amp;#41;
&lt;br /&gt;
//&amp;nbsp; &amp;nbsp;9/13/06 DBR - Moved random chance of knockdown from TalentKnockdown&amp;#40;&amp;#41; in x0_i0_talent to chooseTactics&amp;#40;&amp;#41;.
&lt;br /&gt;
//&amp;nbsp; &amp;nbsp;9/19/06 ChazM - Removed excess commented code.
&lt;br /&gt;
//&amp;nbsp; &amp;nbsp;9/22/06 DBR - Prevented BashDoorCheck&amp;#40;&amp;#41; from letting a creature run standard tactics if oIntruder was a door.
&lt;br /&gt;
//&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;- Also invalidated target if the creature was trying to attack a trigger or non-usable object &amp;#40;since they can't&amp;#41;
&lt;br /&gt;
//&amp;nbsp; ChazM 1/16/07 - moved nwn2_inc_talent into the AI include chain below x0_i0_talent
&lt;br /&gt;
//&amp;nbsp; &amp;nbsp;ChazM 1/17/07 - moved InvisibleTrue&amp;#40;&amp;#41; to x0_inc_generic
&lt;br /&gt;
//&amp;nbsp; &amp;nbsp;ChazM 1/18/07 - Added EvenFlw functions, re-org of chooseTactics&amp;#40;&amp;#41;
&lt;br /&gt;
//&amp;nbsp; &amp;nbsp;ChazM 1/29/07 - modified CheckNonOffensiveMagic&amp;#40;&amp;#41;
&lt;br /&gt;
//&amp;nbsp; &amp;nbsp;ChazM 2/16/07 - removed call to ResetModes&amp;#40;&amp;#41; from chooseTactics&amp;#40;&amp;#41;; commented out PrintMode&amp;#40;&amp;#41;, ClearAIVariables, ResetModes&amp;#40;&amp;#41; and EVENFLW_AI_MODE
&lt;br /&gt;
//&amp;nbsp; &amp;nbsp;ChazM 4/27/07 - removed a few hundred lines of commented code, structural enhancements.
&lt;br /&gt;
// ChazM 5/31/07 -&amp;nbsp; added AssignDCR&amp;#40;&amp;#41;
&lt;br /&gt;
// MDiekmann 6/27/07 - Modified DetermineActionFromTactics, to not make animal companions go into defensive casting mode.
&lt;br /&gt;
// MDiekmann 7/3/07 - Modified DetermineActionFromTactics, to not make anyone go into defensive casting mode who isn't capable.
&lt;br /&gt;
// MDiekmann 7/17/07 - Fixes for determing whether or not companions go into defensive casting mode
&lt;br /&gt;

&lt;br /&gt;
//#include &amp;quot;x0_i0_assoc&amp;quot; - included in x0_inc_generic
&lt;br /&gt;
//#include &amp;quot;x0_inc_generic&amp;quot; - included in x0_i0_talent
&lt;br /&gt;
//#include &amp;quot;x0_i0_talent&amp;quot; - included in x0_i0_combat
&lt;br /&gt;

&lt;br /&gt;
//#include &amp;quot;x0_i0_combat&amp;quot;&amp;nbsp; &amp;nbsp; - include in x0_i0_anims
&lt;br /&gt;

&lt;br /&gt;
//#include &amp;quot;x0_i0_walkway&amp;quot;&amp;nbsp; &amp;nbsp;- include in x0_i0_anims
&lt;br /&gt;
#include &amp;quot;x0_i0_behavior&amp;quot;
&lt;br /&gt;
#include &amp;quot;x0_i0_anims&amp;quot;
&lt;br /&gt;
//#include &amp;quot;nwn2_inc_talent&amp;quot; - include in x0_i0_talent
&lt;br /&gt;

&lt;br /&gt;
//==============================================================
&lt;br /&gt;
// CONSTANTS
&lt;br /&gt;
//==============================================================
&lt;br /&gt;
const string VAR_NW_GENERIC_LAST_ATTACK_TARGET &amp;nbsp; &amp;nbsp;= &amp;quot;NW_GENERIC_LAST_ATTACK_TARGET&amp;quot;;
&lt;br /&gt;
const string VAR_X2_NW_I0_GENERIC_INTRUDER&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;= &amp;quot;X2_NW_I0_GENERIC_INTRUDER&amp;quot;;
&lt;br /&gt;
const string VAR_X2_SPECIAL_COMBAT_AI_SCRIPT &amp;nbsp; &amp;nbsp;= &amp;quot;X2_SPECIAL_COMBAT_AI_SCRIPT&amp;quot;;
&lt;br /&gt;
const string VAR_X2_SPECIAL_COMBAT_AI_SCRIPT_OK&amp;nbsp; &amp;nbsp;= &amp;quot;X2_SPECIAL_COMBAT_AI_SCRIPT_OK&amp;quot;;
&lt;br /&gt;
const string VAR_X2_L_MUTEXCOMBATROUND &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;= &amp;quot;X2_L_MUTEXCOMBATROUND&amp;quot;;
&lt;br /&gt;

&lt;br /&gt;

&lt;br /&gt;
//const string EVENFLW_AI_MODE &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;= &amp;quot;EVENFLW_AI_MODE&amp;quot;;
&lt;br /&gt;
//const string EVENFLW_AI_LAST_STATE &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;= &amp;quot;EVENFLW_AI_LAST_STATE&amp;quot;;
&lt;br /&gt;
const string EVENFLW_NOT_SILENCE_SCARED = &amp;quot;EVENFLW_NOT_SILENCE_SCARED&amp;quot;;
&lt;br /&gt;
const string EVENFLW_SILENCE &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;= &amp;quot;EVENFLW_SILENCE&amp;quot;;
&lt;br /&gt;

&lt;br /&gt;
//==============================================================
&lt;br /&gt;
// Flee and move constants
&lt;br /&gt;
//==============================================================
&lt;br /&gt;

&lt;br /&gt;
const int NW_GENERIC_FLEE_EXIT_FLEE = 0;
&lt;br /&gt;
const int NW_GENERIC_FLEE_EXIT_RETURN = 1;
&lt;br /&gt;
const int NW_GENERIC_FLEE_TELEPORT_FLEE = 2;
&lt;br /&gt;
const int NW_GENERIC_FLEE_TELEPORT_RETURN = 3;
&lt;br /&gt;

&lt;br /&gt;
//==============================================================
&lt;br /&gt;
// Shout constants
&lt;br /&gt;
//==============================================================
&lt;br /&gt;

&lt;br /&gt;
// NOT USED
&lt;br /&gt;
const int NW_GENERIC_SHOUT_I_WAS_ATTACKED = 1;
&lt;br /&gt;

&lt;br /&gt;
//IN OnDeath Script
&lt;br /&gt;
const int NW_GENERIC_SHOUT_I_AM_DEAD = 12;
&lt;br /&gt;

&lt;br /&gt;
//IN TalentMeleeAttacked
&lt;br /&gt;
const int NW_GENERIC_SHOUT_BACK_UP_NEEDED = 13;
&lt;br /&gt;

&lt;br /&gt;
const int NW_GENERIC_SHOUT_BLOCKER = 2;
&lt;br /&gt;

&lt;br /&gt;
//==============================================================
&lt;br /&gt;
// chooseTactics constants
&lt;br /&gt;
//==============================================================
&lt;br /&gt;

&lt;br /&gt;
const int&amp;nbsp; &amp;nbsp; &amp;nbsp; chooseTactics_MEMORY_OFFENSE_MELEE&amp;nbsp; &amp;nbsp; = 0;
&lt;br /&gt;
const int&amp;nbsp; &amp;nbsp; &amp;nbsp; chooseTactics_MEMORY_DEFENSE_OTHERS&amp;nbsp; &amp;nbsp;= 1;
&lt;br /&gt;
const int&amp;nbsp; &amp;nbsp; &amp;nbsp; chooseTactics_MEMORY_DEFENSE_SELF&amp;nbsp; &amp;nbsp; &amp;nbsp;= 2;
&lt;br /&gt;
const int&amp;nbsp; &amp;nbsp; &amp;nbsp; chooseTactics_MEMORY_OFFENSE_SPELL&amp;nbsp; &amp;nbsp; = 3;
&lt;br /&gt;

&lt;br /&gt;

&lt;br /&gt;
// MISCELLANEOUS CONSTANTS
&lt;br /&gt;

&lt;br /&gt;
// This is the determine combat round script.
&lt;br /&gt;
// Used to decouple DCR from other scripts so that it can be updated independently.
&lt;br /&gt;
const string SCRIPT_DCR&amp;nbsp; &amp;nbsp;= &amp;quot;gr_dcr&amp;quot;;
&lt;br /&gt;

&lt;br /&gt;
//==============================================================
&lt;br /&gt;
// STRUCTURES
&lt;br /&gt;
//==============================================================
&lt;br /&gt;

&lt;br /&gt;
// instance Prefix for rTactics is tac
&lt;br /&gt;
// ex&amp;#58;
&lt;br /&gt;
// struct rTactics tacAI
&lt;br /&gt;
struct rTactics
&lt;br /&gt;
&amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;// amount of each to use in decison making
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; int nOffense;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; int nCompassion;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; int nMagic;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; int nMagicOld;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;int nStealth;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;int bScaredOfSilence;&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;int bTacticChosen;
&lt;br /&gt;
&amp;#125;;
&lt;br /&gt;

&lt;br /&gt;
//==============================================================
&lt;br /&gt;
// FUNCTION PROTOTYPES
&lt;br /&gt;
//==============================================================
&lt;br /&gt;

&lt;br /&gt;
// * New Functions September - 2002
&lt;br /&gt;

&lt;br /&gt;

&lt;br /&gt;
// * The class-specific tactics have been broken out from DetermineCombatRound
&lt;br /&gt;
// * for readability. This function determines the actual tactics each class
&lt;br /&gt;
// * will use.
&lt;br /&gt;
int chooseTactics&amp;#40;object oIntruder&amp;#41;;
&lt;br /&gt;

&lt;br /&gt;
// Adds all three of the class levels together.&amp;nbsp; Used before
&lt;br /&gt;
// GetHitDice became available
&lt;br /&gt;
int GetCharacterLevel&amp;#40;object oTarget&amp;#41;;
&lt;br /&gt;

&lt;br /&gt;
//If using ambient sleep this will remove the effect
&lt;br /&gt;
void RemoveAmbientSleep&amp;#40;&amp;#41;;
&lt;br /&gt;

&lt;br /&gt;
//Searches for the nearest locked object to the master
&lt;br /&gt;
object GetLockedObject&amp;#40;object oMaster&amp;#41;;
&lt;br /&gt;

&lt;br /&gt;
//==============================================================
&lt;br /&gt;
// DetermineCombatRound subfunctions
&lt;br /&gt;
//==============================================================
&lt;br /&gt;

&lt;br /&gt;
//&amp;nbsp; &amp;nbsp; &amp;nbsp;Used in DetermineCombatRound to keep a
&lt;br /&gt;
//&amp;nbsp; &amp;nbsp; &amp;nbsp;henchmen bashing doors.
&lt;br /&gt;
int BashDoorCheck&amp;#40;object oIntruder = OBJECT_INVALID&amp;#41;;
&lt;br /&gt;

&lt;br /&gt;
//&amp;nbsp; &amp;nbsp; &amp;nbsp;Determines which of a NPCs three classes to
&lt;br /&gt;
//&amp;nbsp; &amp;nbsp; &amp;nbsp;use in DetermineCombatRound
&lt;br /&gt;
int DetermineClassToUse&amp;#40;&amp;#41;;
&lt;br /&gt;

&lt;br /&gt;

&lt;br /&gt;
//==============================================================
&lt;br /&gt;
// Core AI Functions
&lt;br /&gt;
//==============================================================
&lt;br /&gt;

&lt;br /&gt;
//&amp;nbsp; &amp;nbsp; This function is the master function for the
&lt;br /&gt;
//&amp;nbsp; &amp;nbsp; generic include and is called from the main
&lt;br /&gt;
//&amp;nbsp; &amp;nbsp; script.&amp;nbsp; This function is used in lieu of
&lt;br /&gt;
//&amp;nbsp; &amp;nbsp; any actual scripting.
&lt;br /&gt;
//&amp;#58;&amp;#58; Created By&amp;#58; Preston Watamaniuk
&lt;br /&gt;
//&amp;#58;&amp;#58; Created On&amp;#58; Oct 16, 2001
&lt;br /&gt;
void DetermineCombatRound&amp;#40;object oIntruder = OBJECT_INVALID, int nAI_Difficulty = 10&amp;#41;;
&lt;br /&gt;

&lt;br /&gt;
//&amp;#58;&amp;#58;///////////////////////////////////////////////
&lt;br /&gt;
//&amp;#58;&amp;#58; Respond To Shouts
&lt;br /&gt;
//&amp;#58;&amp;#58; Copyright &amp;#40;c&amp;#41; 2001 Bioware Corp.
&lt;br /&gt;
//&amp;#58;&amp;#58;//////////////////////////////////////////////
&lt;br /&gt;
//&amp;nbsp; &amp;nbsp; &amp;nbsp;Allows the listener to react in a manner
&lt;br /&gt;
//&amp;nbsp; &amp;nbsp; &amp;nbsp;consistant with the given shout but only to one
&lt;br /&gt;
//&amp;nbsp; &amp;nbsp; &amp;nbsp;combat shout per round
&lt;br /&gt;
//&amp;#58;&amp;#58;//////////////////////////////////////////////
&lt;br /&gt;
//&amp;#58;&amp;#58; Created By&amp;#58; Preston Watamaniuk
&lt;br /&gt;
//&amp;#58;&amp;#58; Created On&amp;#58; Oct 25, 2001
&lt;br /&gt;
//&amp;#58;&amp;#58;//////////////////////////////////////////////
&lt;br /&gt;
//NOTE ABOUT COMMONERS
&lt;br /&gt;
//&amp;nbsp; &amp;nbsp; &amp;nbsp;Commoners are universal cowards.&amp;nbsp; If you attack anyone
&lt;br /&gt;
//&amp;nbsp; &amp;nbsp; &amp;nbsp;they will flee for 4 seconds away from the attacker.
&lt;br /&gt;
//&amp;nbsp; &amp;nbsp; &amp;nbsp;However to make the commoners into a mob, make a single
&lt;br /&gt;
//&amp;nbsp; &amp;nbsp; &amp;nbsp;commoner at least 10th level of the same faction.
&lt;br /&gt;
//&amp;nbsp; &amp;nbsp; &amp;nbsp;If that higher level commoner is attacked or killed then
&lt;br /&gt;
//&amp;nbsp; &amp;nbsp; &amp;nbsp;the commoners will attack the attacker.&amp;nbsp; They will disperse again
&lt;br /&gt;
//&amp;nbsp; &amp;nbsp; &amp;nbsp;after some of them are killed.&amp;nbsp; Should NOT make multi-class
&lt;br /&gt;
//&amp;nbsp; &amp;nbsp; &amp;nbsp;creatures using commoners.
&lt;br /&gt;
//
&lt;br /&gt;
//NOTE ABOUT BLOCKERS
&lt;br /&gt;
//&amp;nbsp; &amp;nbsp; &amp;nbsp;It should be noted that the Generic Script for On Dialogue
&lt;br /&gt;
//&amp;nbsp; &amp;nbsp; &amp;nbsp;attempts to get a local set on the shouter by itself.
&lt;br /&gt;
//&amp;nbsp; &amp;nbsp; &amp;nbsp;This object represents the LastOpenedBy object.&amp;nbsp; It is this
&lt;br /&gt;
//&amp;nbsp; &amp;nbsp; &amp;nbsp;object that becomes the oIntruder within this function.
&lt;br /&gt;
//
&lt;br /&gt;
//NOTE ABOUT INTRUDERS
&lt;br /&gt;
//&amp;nbsp; &amp;nbsp; &amp;nbsp;The intruder object is for cases where a placable needs to
&lt;br /&gt;
//&amp;nbsp; &amp;nbsp; &amp;nbsp;pass a LastOpenedBy Object or a AttackMyAttacker
&lt;br /&gt;
//&amp;nbsp; &amp;nbsp; &amp;nbsp;needs to make his attacker the enemy of everyone.
&lt;br /&gt;
void RespondToShout&amp;#40;object oShouter, int nShoutIndex, object oIntruder = OBJECT_INVALID&amp;#41;;
&lt;br /&gt;

&lt;br /&gt;

&lt;br /&gt;
//******** PLOT FUNCTIONS
&lt;br /&gt;

&lt;br /&gt;
// NPCs who have warning status set to TRUE will allow
&lt;br /&gt;
// one 'free' attack by PCs from a non-hostile faction.
&lt;br /&gt;
void SetNPCWarningStatus&amp;#40;int nStatus = TRUE&amp;#41;;
&lt;br /&gt;

&lt;br /&gt;
// NPCs who have warning status set to TRUE will allow
&lt;br /&gt;
// one 'free' attack by PCs from a non-hostile faction.
&lt;br /&gt;
int GetNPCWarningStatus&amp;#40;&amp;#41;;
&lt;br /&gt;

&lt;br /&gt;
// * Presently Does not work with the current implementation
&lt;br /&gt;
// * of encounter triggers!
&lt;br /&gt;
//
&lt;br /&gt;
//&amp;nbsp; &amp;nbsp; &amp;nbsp;This function works in tandem with an encounter
&lt;br /&gt;
//&amp;nbsp; &amp;nbsp; &amp;nbsp;to spawn in guards to fight for the attacked
&lt;br /&gt;
//&amp;nbsp; &amp;nbsp; &amp;nbsp;NPC.&amp;nbsp; MAKE SURE THE ENCOUNTER TAG IS SET TO&amp;#58;
&lt;br /&gt;
//
&lt;br /&gt;
//&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;quot;ENC_&amp;quot; + NPC TAG
&lt;br /&gt;
//&amp;#58;&amp;#58; Created By&amp;#58; Preston Watamaniuk
&lt;br /&gt;
//&amp;#58;&amp;#58; Created On&amp;#58; Oct 29, 2001
&lt;br /&gt;
void SetSummonHelpIfAttacked&amp;#40;&amp;#41;;
&lt;br /&gt;

&lt;br /&gt;
//&amp;nbsp; &amp;nbsp; &amp;nbsp;The target object flees to the specified
&lt;br /&gt;
//&amp;nbsp; &amp;nbsp; &amp;nbsp;way point and then destroys itself, to be
&lt;br /&gt;
//&amp;nbsp; &amp;nbsp; &amp;nbsp;respawned at a later point.&amp;nbsp; For unkillable
&lt;br /&gt;
//&amp;nbsp; &amp;nbsp; &amp;nbsp;sign post characters who are not meant to fight
&lt;br /&gt;
//&amp;nbsp; &amp;nbsp; &amp;nbsp;back.
&lt;br /&gt;
// This function is used only because ActionDoCommand can
&lt;br /&gt;
// only accept void functions.
&lt;br /&gt;
void CreateSignPostNPC&amp;#40;string sTag, location lLocal&amp;#41;;
&lt;br /&gt;

&lt;br /&gt;
//&amp;nbsp; &amp;nbsp; &amp;nbsp;The target object flees to the specified
&lt;br /&gt;
//&amp;nbsp; &amp;nbsp; &amp;nbsp;way point and then destroys itself, to be
&lt;br /&gt;
//&amp;nbsp; &amp;nbsp; &amp;nbsp;respawned at a later point.&amp;nbsp; For unkillable
&lt;br /&gt;
//&amp;nbsp; &amp;nbsp; &amp;nbsp;sign post characters who are not meant to fight
&lt;br /&gt;
//&amp;nbsp; &amp;nbsp; &amp;nbsp;back.
&lt;br /&gt;
void ActivateFleeToExit&amp;#40;&amp;#41;;
&lt;br /&gt;

&lt;br /&gt;
//&amp;nbsp; &amp;nbsp; &amp;nbsp;The target object flees to the specified
&lt;br /&gt;
//&amp;nbsp; &amp;nbsp; &amp;nbsp;way point and then destroys itself, to be
&lt;br /&gt;
//&amp;nbsp; &amp;nbsp; &amp;nbsp;respawned at a later point.&amp;nbsp; For unkillable
&lt;br /&gt;
//&amp;nbsp; &amp;nbsp; &amp;nbsp;sign post characters who are not meant to fight
&lt;br /&gt;
//&amp;nbsp; &amp;nbsp; &amp;nbsp;back.
&lt;br /&gt;
int GetFleeToExit&amp;#40;&amp;#41;;
&lt;br /&gt;

&lt;br /&gt;
//&amp;nbsp; &amp;nbsp; &amp;nbsp;Checks that an item was unlocked.
&lt;br /&gt;
//&amp;#58;&amp;#58; Created By&amp;#58; Preston Watamaniuk
&lt;br /&gt;
//&amp;#58;&amp;#58; Created On&amp;#58; Nov 19, 2001
&lt;br /&gt;
void CheckIsUnlocked&amp;#40;object oLastObject&amp;#41;;
&lt;br /&gt;

&lt;br /&gt;
// This function is now just a wrapper around the functions
&lt;br /&gt;
// PlayMobileAmbientAnimations_Nonavian&amp;#40;&amp;#41; and
&lt;br /&gt;
// PlayMobileAmbientAnimations_Avian&amp;#40;&amp;#41;, in x0_i0_anims
&lt;br /&gt;
void PlayMobileAmbientAnimations&amp;#40;&amp;#41;;
&lt;br /&gt;

&lt;br /&gt;
//&amp;nbsp; &amp;nbsp; &amp;nbsp;Determines the special behavior used by the NPC.
&lt;br /&gt;
//&amp;nbsp; &amp;nbsp; &amp;nbsp;Generally all NPCs who you want to behave differently
&lt;br /&gt;
//&amp;nbsp; &amp;nbsp; &amp;nbsp;than the defualt behavior.
&lt;br /&gt;
//&amp;nbsp; &amp;nbsp; &amp;nbsp;For these behaviors, passing in a valid object will
&lt;br /&gt;
//&amp;nbsp; &amp;nbsp; &amp;nbsp;cause the creature to become hostile the the attacker.
&lt;br /&gt;
void DetermineSpecialBehavior&amp;#40;object oIntruder = OBJECT_INVALID&amp;#41;;
&lt;br /&gt;

&lt;br /&gt;
// * Am I in a invisible or stealth state or sanctuary?
&lt;br /&gt;
//int InvisibleTrue&amp;#40;object oSelf = OBJECT_SELF&amp;#41;;
&lt;br /&gt;

&lt;br /&gt;
//&amp;#58;&amp;#58;/////////////////////////////////////////////////////////////////////////////////
&lt;br /&gt;
//&amp;#58;&amp;#58; GetIsInCutscene&amp;#40;&amp;#41;
&lt;br /&gt;
//&amp;#58;&amp;#58; Determines whether the target is a member of the PC's faction and if any member
&lt;br /&gt;
//&amp;#58;&amp;#58; is involved in a conversation -- this is a condition for short circuiting 
&lt;br /&gt;
//&amp;#58;&amp;#58; DetermineCombatRound&amp;#40;&amp;#41; so that hostile creatures can't attack conversing PCs or
&lt;br /&gt;
//&amp;#58;&amp;#58; their party.
&lt;br /&gt;
//&amp;#58;&amp;#58;
&lt;br /&gt;
//&amp;#58;&amp;#58; EPF, OEI 7/29/05
&lt;br /&gt;
//&amp;#58;&amp;#58; DBR, OEI 5/30/06 - changed check to MP flagged cutscenes.
&lt;br /&gt;
//&amp;#58;&amp;#58;/////////////////////////////////////////////////////////////////////////////////
&lt;br /&gt;
int GetIsInCutscene&amp;#40;object oTarget&amp;#41;;
&lt;br /&gt;

&lt;br /&gt;
//ChooseTacticsForDoor&amp;#40;oDoorIntruder&amp;#41;
&lt;br /&gt;
//&amp;nbsp; &amp;nbsp;This function is for choosing what tactics to use when fighting a door.
&lt;br /&gt;
//&amp;nbsp; &amp;nbsp;oDoorIntruder is the door to fight, and the function is run on the combating creature.
&lt;br /&gt;
//&amp;nbsp; &amp;nbsp;Returns 1 on a succesful choice of tactic &amp;#40;which should always occur&amp;#41; and 0 when no tactics were chosen.
&lt;br /&gt;
//&amp;nbsp; Originally from BashDoorCheck&amp;#40;&amp;#41;, taken out.
&lt;br /&gt;
int ChooseTacticsForDoor&amp;#40;object oDoorIntruder = OBJECT_INVALID&amp;#41;;
&lt;br /&gt;

&lt;br /&gt;

&lt;br /&gt;
//void PrintMode&amp;#40;object party, int mode, object boss&amp;#41;;
&lt;br /&gt;
//void ClearAIVariables&amp;#40;int all=FALSE&amp;#41;;
&lt;br /&gt;
//void ResetModes&amp;#40;&amp;#41;;
&lt;br /&gt;
int CheckForInvis&amp;#40;object oIntruder&amp;#41;;
&lt;br /&gt;
int CheckNonOffensiveMagic&amp;#40;object oIntruder, int nOffense, int nCompassion, int nMagic, int iCastingMode&amp;#41;;
&lt;br /&gt;
int GetScaledCastingMagic&amp;#40;int iCastingMode, int nMagic, int def, int random=FALSE&amp;#41;;
&lt;br /&gt;
void InitializeSeed&amp;#40;int iCastingMode, object oIntruder&amp;#41;;
&lt;br /&gt;

&lt;br /&gt;
// New Functions used by chooseTactics&amp;#40;&amp;#41;
&lt;br /&gt;
int GetHPPercentage&amp;#40;object oTarget=OBJECT_SELF&amp;#41;;
&lt;br /&gt;
int GetCastingMode&amp;#40;int iMyHPPercentage&amp;#41;;
&lt;br /&gt;
struct rTactics CreateTactics&amp;#40;int nOffense=0, int nCompassion=0, int nMagic=0, int nMagicOld=0, int nStealth=0, int bScaredOfSilence=0, int bTacticChosen=0&amp;#41;;
&lt;br /&gt;
int TryClassTactic&amp;#40;object oIntruder, int nClass, int bNoFeats&amp;#41;;
&lt;br /&gt;
struct rTactics CalculateTacticsByClass &amp;#40;struct rTactics tacAI, object oIntruder, int nClass, int iCastingMode&amp;#41;;
&lt;br /&gt;
struct rTactics CalculateTactics&amp;#40;struct rTactics tacAI, object oIntruder, float fDistanceToIntruder, int nClass, int iCastingMode, int isSilenced&amp;#41;;
&lt;br /&gt;
int DetermineActionFromTactics&amp;#40;struct rTactics tacAI, object oIntruder, float fDistanceToIntruder, int nClass, int iCastingMode, int isSilenced, int bNoFeats&amp;#41;;
&lt;br /&gt;

&lt;br /&gt;

&lt;br /&gt;
//==============================================================
&lt;br /&gt;
// FUNCTION DEFINITIONS
&lt;br /&gt;
//==============================================================
&lt;br /&gt;

&lt;br /&gt;
// Put on queue of creature to do a DCR.
&lt;br /&gt;
// Using this allows the DCR call to be decoupled from the script, allowing it to take
&lt;br /&gt;
// advantage of DCR enhancements without needing to be recompiled.
&lt;br /&gt;
void AssignDCR&amp;#40;object oCreature&amp;#41;
&lt;br /&gt;
&amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;AssignCommand&amp;#40;oCreature, ExecuteScript&amp;#40;SCRIPT_DCR, oCreature&amp;#41;&amp;#41;;
&lt;br /&gt;
&amp;#125;
&lt;br /&gt;

&lt;br /&gt;
//&amp;#58;&amp;#58;///////////////////////////////////////////////
&lt;br /&gt;
//&amp;#58;&amp;#58; AdjustBehaviorVariable
&lt;br /&gt;
//&amp;#58;&amp;#58; Copyright &amp;#40;c&amp;#41; 2001 Bioware Corp.
&lt;br /&gt;
//&amp;#58;&amp;#58;//////////////////////////////////////////////
&lt;br /&gt;

&lt;br /&gt;
// Overriding &amp;quot;behavior&amp;quot; variables.
&lt;br /&gt;
// If a variable has been stored on the creature it overrides the above
&lt;br /&gt;
// class defaults
&lt;br /&gt;

&lt;br /&gt;
int AdjustBehaviorVariable&amp;#40;int nVar, string sVarName&amp;#41;
&lt;br /&gt;
&amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; int nPlace =GetLocalInt&amp;#40;OBJECT_SELF, sVarName&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; if &amp;#40;nPlace &amp;gt; 0&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return nPlace;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; //return nVar; // * return the original value
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; return 0;
&lt;br /&gt;
&amp;#125;
&lt;br /&gt;

&lt;br /&gt;
//&amp;nbsp; &amp;nbsp; A more intelligent invisibility solution,
&lt;br /&gt;
//&amp;nbsp; &amp;nbsp; along the lines of the one used in
&lt;br /&gt;
//&amp;nbsp; &amp;nbsp; the various end-user AIs.
&lt;br /&gt;
//&amp;#58;&amp;#58; Created By&amp;#58;&amp;nbsp; Brent
&lt;br /&gt;
//&amp;#58;&amp;#58; Created On&amp;#58;&amp;nbsp; June 14, 2003
&lt;br /&gt;
// EPF 6/5/06 -- Added Warlock options for invisibility.
&lt;br /&gt;

&lt;br /&gt;
int InvisibleBecome&amp;#40;object oSelf = OBJECT_SELF, int isInvis=FALSE&amp;#41;
&lt;br /&gt;
&amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;if&amp;#40;GetLocalInt&amp;#40;oSelf, &amp;quot;X2_L_STOPCASTING&amp;quot;&amp;#41; == 10&amp;#41; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;if &amp;#40;GetHasFeat&amp;#40;FEAT_HIDE_IN_PLAIN_SIGHT, oSelf&amp;#41;&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;SetActionMode&amp;#40;OBJECT_SELF, ACTION_MODE_STEALTH, TRUE&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;return FALSE;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;int hasDarkness&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;=&amp;nbsp; GetHasSpellEffect&amp;#40;SPELL_DARKNESS, oSelf&amp;#41; 
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;|| GetHasSpellEffect&amp;#40;SPELL_I_DARKNESS, oSelf&amp;#41; 
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;|| GetHasSpellEffect&amp;#40;SPELL_SHADOW_CONJURATION_DARKNESS, oSelf&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;int iWarlockDarkness = GetHasSpell&amp;#40;SPELL_I_DARKNESS, oSelf&amp;#41; &amp;amp;&amp;amp; !hasDarkness;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; int iDarkness &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;= GetHasSpell&amp;#40;SPELL_DARKNESS, oSelf&amp;#41; &amp;amp;&amp;amp; !hasDarkness;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;if &amp;#40;GetHasSpell&amp;#40;SPELL_GREATER_INVISIBILITY, oSelf&amp;#41; 
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;|| GetHasSpell&amp;#40;SPELL_INVISIBILITY, oSelf&amp;#41; 
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;|| GetHasSpell&amp;#40;724, oSelf&amp;#41; 
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;|| GetHasSpell&amp;#40;SPELL_INVISIBILITY_SPHERE, oSelf&amp;#41; 
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;|| iDarkness 
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;|| iWarlockDarkness 
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;|| GetHasSpell&amp;#40;SPELL_SANCTUARY, oSelf&amp;#41; 
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;|| GetHasSpell&amp;#40;SPELL_ETHEREALNESS, oSelf&amp;#41; 
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;|| GetHasFeat&amp;#40;FEAT_HIDE_IN_PLAIN_SIGHT, oSelf&amp;#41; == TRUE 
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;|| GetHasSpell&amp;#40;SPELL_I_RETRIBUTIVE_INVISIBILITY, oSelf&amp;#41; 
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;|| GetHasSpell&amp;#40;SPELL_I_WALK_UNSEEN, oSelf&amp;#41;&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if&amp;#40;isInvis&amp;lt;=0&amp;#41; // close or not invisible
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; object oSeeMe = GetNearestCreature&amp;#40;CREATURE_TYPE_REPUTATION, REPUTATION_TYPE_ENEMY, OBJECT_SELF, 1, CREATURE_TYPE_PERCEPTION, PERCEPTION_SEEN, CREATURE_TYPE_HAS_SPELL_EFFECT, SPELL_TRUE_SEEING&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if&amp;#40;!GetIsObjectValid&amp;#40;oSeeMe&amp;#41;&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; int nDiff = GetCombatDifficulty&amp;#40;oSelf, TRUE&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if &amp;#40;nDiff &amp;gt; -1&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;if &amp;#40;GetHasSpell&amp;#40;SPELL_ETHEREALNESS, oSelf&amp;#41;&amp;#41; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ClearActions&amp;#40;1001&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;ActionCastSpellAtObject&amp;#40;SPELL_ETHEREALNESS, oSelf&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return TRUE;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;#125; else if&amp;#40;GetHasSpell&amp;#40;724, oSelf&amp;#41;&amp;#41; &amp;#123; // ethereal jaunt
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ClearActions&amp;#40;1001&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;ActionCastSpellAtObject&amp;#40;724, oSelf&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return TRUE;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;if&amp;#40;!isInvis&amp;#41; 
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;#123; // don't do if close
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;oSeeMe = GetNearestCreature&amp;#40;CREATURE_TYPE_REPUTATION, REPUTATION_TYPE_ENEMY, OBJECT_SELF, 1, CREATURE_TYPE_PERCEPTION, PERCEPTION_SEEN, CREATURE_TYPE_HAS_SPELL_EFFECT, SPELL_SEE_INVISIBILITY&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;if&amp;#40;!GetIsObjectValid&amp;#40;oSeeMe&amp;#41;&amp;#41; 
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;ClearActions&amp;#40;1001&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;if&amp;#40;GetHasSpell&amp;#40;SPELL_I_RETRIBUTIVE_INVISIBILITY, oSelf&amp;#41;&amp;#41; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;ActionCastSpellAtObject&amp;#40;SPELL_I_RETRIBUTIVE_INVISIBILITY, oSelf, METAMAGIC_NONE, TRUE&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;return TRUE;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;#125; else if&amp;#40;GetHasSpell&amp;#40;SPELL_GREATER_INVISIBILITY, oSelf&amp;#41;&amp;#41; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;ActionCastSpellAtObject&amp;#40;SPELL_GREATER_INVISIBILITY, oSelf&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;return TRUE;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;#125; else if&amp;#40;GetHasSpell&amp;#40;SPELL_I_WALK_UNSEEN, oSelf&amp;#41;&amp;#41; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;ActionCastSpellAtObject&amp;#40;SPELL_I_WALK_UNSEEN, oSelf, METAMAGIC_NONE, TRUE&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;return TRUE;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;#125; else if &amp;#40;GetHasSpell&amp;#40;SPELL_INVISIBILITY, oSelf&amp;#41;&amp;#41; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;ActionCastSpellAtObject&amp;#40;SPELL_INVISIBILITY, oSelf&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;return TRUE;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;#125; else if &amp;#40;GetHasSpell&amp;#40;SPELL_INVISIBILITY_SPHERE, oSelf&amp;#41;&amp;#41; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;ActionCastSpellAtObject&amp;#40;SPELL_INVISIBILITY_SPHERE, oSelf&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;return TRUE;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;if &amp;#40;iWarlockDarkness&amp;#41; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;ClearActions&amp;#40;1001&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;ActionCastSpellAtObject&amp;#40;SPELL_I_DARKNESS, oSelf, METAMAGIC_NONE, TRUE&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return TRUE;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;#125; else if &amp;#40;iDarkness==TRUE&amp;#41; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;ClearActions&amp;#40;1001&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ActionCastSpellAtObject&amp;#40;SPELL_DARKNESS, oSelf&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return TRUE;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125; else if &amp;#40;GetHasSpell&amp;#40;SPELL_SANCTUARY, oSelf&amp;#41;&amp;#41; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;ClearActions&amp;#40;1001&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ActionCastSpellAtObject&amp;#40;SPELL_SANCTUARY, oSelf&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return TRUE;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125; else if &amp;#40;GetHasFeat&amp;#40;FEAT_HIDE_IN_PLAIN_SIGHT, oSelf&amp;#41;&amp;#41; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; SetActionMode&amp;#40;OBJECT_SELF, ACTION_MODE_STEALTH, TRUE&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;return FALSE;
&lt;br /&gt;
&amp;#125;
&lt;br /&gt;

&lt;br /&gt;

&lt;br /&gt;
// * Returns true if a wizard, warlock, or sorcerer and wearing armor
&lt;br /&gt;
int GetShouldNotCastSpellsBecauseofArmor&amp;#40;object oTarget, int nClass&amp;#41;
&lt;br /&gt;
&amp;#123;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; if &amp;#40;GetArcaneSpellFailure&amp;#40;oTarget&amp;#41; &amp;gt; 15 &amp;amp;&amp;amp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;#40;nClass == CLASS_TYPE_SORCERER || nClass == CLASS_TYPE_WIZARD || nClass == CLASS_TYPE_WARLOCK || nClass == CLASS_TYPE_BARD&amp;#41;&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return TRUE;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; return FALSE;
&lt;br /&gt;
&amp;#125;
&lt;br /&gt;

&lt;br /&gt;

&lt;br /&gt;

&lt;br /&gt;
//&amp;nbsp; &amp;nbsp; Tests to see if already running a determine
&lt;br /&gt;
//&amp;nbsp; &amp;nbsp; combatround this round.
&lt;br /&gt;
//&amp;#58;&amp;#58; Created By&amp;#58;&amp;nbsp; &amp;nbsp;Brent
&lt;br /&gt;
//&amp;#58;&amp;#58; Created On&amp;#58;&amp;nbsp; &amp;nbsp;July 11 2003
&lt;br /&gt;
int __InCombatRound&amp;#40;&amp;#41;
&lt;br /&gt;
&amp;#123;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; // * if just in attackaction, turn combat round off
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; // * if simply fighting it is okay to turn the combat round off
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; // * and try again because it doesn't hurt an attackaction
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; // * to be reiniated whereas it does break a spell
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; int nCurrentAction =&amp;nbsp; GetCurrentAction&amp;#40;OBJECT_SELF&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; if &amp;#40;nCurrentAction == ACTION_ATTACKOBJECT || nCurrentAction == ACTION_INVALID&amp;#41;// || nCurrentAction == ACTION_MOVETOPOINT&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return FALSE;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; if &amp;#40;GetLocalInt&amp;#40;OBJECT_SELF, VAR_X2_L_MUTEXCOMBATROUND&amp;#41; == TRUE&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //SpeakString&amp;#40;&amp;quot;DEBUG&amp;#58;&amp;#58; In Combat Round, busy.&amp;quot;&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return TRUE;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; return FALSE;
&lt;br /&gt;
&amp;#125;
&lt;br /&gt;

&lt;br /&gt;
//&amp;nbsp; &amp;nbsp; Will set the exclusion variable on whether
&lt;br /&gt;
//&amp;nbsp; &amp;nbsp; in combat or not.
&lt;br /&gt;
//&amp;nbsp; &amp;nbsp; This is to prevent multiple firings
&lt;br /&gt;
//&amp;nbsp; &amp;nbsp; of determinecombatround in one round
&lt;br /&gt;
//&amp;#58;&amp;#58; Created By&amp;#58; Brent
&lt;br /&gt;
//&amp;#58;&amp;#58; Created On&amp;#58; July 11 2003
&lt;br /&gt;
void __TurnCombatRoundOn&amp;#40;int bBool&amp;#41;
&lt;br /&gt;
&amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; if &amp;#40;bBool == TRUE&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; SetLocalInt&amp;#40;OBJECT_SELF, VAR_X2_L_MUTEXCOMBATROUND, TRUE&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; else
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // * delay it turning off like an action
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ActionDoCommand&amp;#40;SetLocalInt&amp;#40;OBJECT_SELF, VAR_X2_L_MUTEXCOMBATROUND, FALSE&amp;#41;&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;#125;
&lt;br /&gt;

&lt;br /&gt;
//&amp;#58;&amp;#58;/////////////////////////////////////////////////////////////////////////////////
&lt;br /&gt;
//&amp;#58;&amp;#58; GetIsInCutscene&amp;#40;&amp;#41;
&lt;br /&gt;
//&amp;#58;&amp;#58; Determines whether the target is a member of the PC's faction and if any member
&lt;br /&gt;
//&amp;#58;&amp;#58; is involved in a conversation -- this is a condition for short circuiting 
&lt;br /&gt;
//&amp;#58;&amp;#58; DetermineCombatRound&amp;#40;&amp;#41; so that hostile creatures can't attack conversing PCs or
&lt;br /&gt;
//&amp;#58;&amp;#58; their party.
&lt;br /&gt;
//&amp;#58;&amp;#58;
&lt;br /&gt;
//&amp;#58;&amp;#58; EPF, OEI 7/29/05
&lt;br /&gt;
//&amp;#58;&amp;#58; DBR, OEI 5/30/06 - changed check to MP flagged cutscenes.
&lt;br /&gt;
//&amp;#58;&amp;#58;/////////////////////////////////////////////////////////////////////////////////
&lt;br /&gt;
int GetIsInCutscene&amp;#40;object oTarget&amp;#41;
&lt;br /&gt;
&amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;// BMA-OEI 3/10/06
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;object oPC = GetFirstPC&amp;#40;&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;// If oTarget is not in the PC faction
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;if &amp;#40;GetFactionEqual&amp;#40;oTarget, oPC&amp;#41; == FALSE&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;return &amp;#40;FALSE&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;#125;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp;// For each member in PC faction
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;object oMem = GetFirstFactionMember&amp;#40;oPC, FALSE&amp;#41;;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp;while &amp;#40;GetIsObjectValid&amp;#40;oMem&amp;#41; == TRUE&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;// If any member is in conversation
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;if &amp;#40;IsInMultiplayerConversation&amp;#40;oMem&amp;#41; == TRUE&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;return &amp;#40;TRUE&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;oMem = GetNextFactionMember&amp;#40;oPC, FALSE&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;#125;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp;return &amp;#40;FALSE&amp;#41;;
&lt;br /&gt;
&amp;#125;
&lt;br /&gt;

&lt;br /&gt;
//&amp;nbsp; &amp;nbsp; This function is the master function for the
&lt;br /&gt;
//&amp;nbsp; &amp;nbsp; generic include and is called from the main
&lt;br /&gt;
//&amp;nbsp; &amp;nbsp; script.&amp;nbsp; This function is used in lieu of
&lt;br /&gt;
//&amp;nbsp; &amp;nbsp; any actual scripting.
&lt;br /&gt;
//&amp;#58;&amp;#58; Created By&amp;#58; Preston Watamaniuk
&lt;br /&gt;
//&amp;#58;&amp;#58; Created On&amp;#58; Oct 16, 2001
&lt;br /&gt;
void DetermineCombatRound&amp;#40;object oIntruder = OBJECT_INVALID, int nAI_Difficulty = 10&amp;#41;
&lt;br /&gt;
&amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;//MyPrintString&amp;#40;&amp;quot;************** DETERMINE COMBAT ROUND START *************&amp;quot;&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; //MyPrintString&amp;#40;&amp;quot;**************&amp;nbsp; &amp;quot; + GetTag&amp;#40;OBJECT_SELF&amp;#41; + &amp;quot;&amp;nbsp; ************&amp;quot;&amp;#41;;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; // Abort out of here, if petrified
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; if &amp;#40;GetHasEffect&amp;#40;EFFECT_TYPE_PETRIFY, OBJECT_SELF&amp;#41; == TRUE&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; // Fix for ActionRandomWalk blocking the action queue under certain circumstances
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; if &amp;#40;GetCurrentAction&amp;#40;&amp;#41; == ACTION_RANDOMWALK&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ClearAllActions&amp;#40;&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; // ----------------------------------------------------------------------------------------
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; // July 27/2003 - Georg Zoeller,
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; // Added to allow a replacement for determine combat round
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; // If a creature has a local string variable named X2_SPECIAL_COMBAT_AI_SCRIPT
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; // set, the script name specified in the variable gets run instead
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; // see x2_ai_behold for details&amp;#58;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; // ----------------------------------------------------------------------------------------
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; string sSpecialAI = GetLocalString&amp;#40;OBJECT_SELF, VAR_X2_SPECIAL_COMBAT_AI_SCRIPT&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; if &amp;#40;sSpecialAI != &amp;quot;&amp;quot;&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; SetLocalObject&amp;#40;OBJECT_SELF, VAR_X2_NW_I0_GENERIC_INTRUDER, oIntruder&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ExecuteScript&amp;#40;sSpecialAI, OBJECT_SELF&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if &amp;#40;GetLocalInt&amp;#40;OBJECT_SELF, VAR_X2_SPECIAL_COMBAT_AI_SCRIPT_OK&amp;#41;&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; DeleteLocalInt&amp;#40;OBJECT_SELF, VAR_X2_SPECIAL_COMBAT_AI_SCRIPT_OK&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;

&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; // ----------------------------------------------------------------------------------------
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; // DetermineCombatRound&amp;#58; EVALUATIONS
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; // ----------------------------------------------------------------------------------------
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; if&amp;#40;GetAssociateState&amp;#40;NW_ASC_IS_BUSY&amp;#41;&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; if&amp;#40;BashDoorCheck&amp;#40;oIntruder&amp;#41;&amp;#41; &amp;#123;return;&amp;#125;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp;if &amp;#40;GetObjectType&amp;#40;oIntruder&amp;#41;==OBJECT_TYPE_TRIGGER&amp;#41; //Don't try to attack trigger. You will be unable to.
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;oIntruder = OBJECT_INVALID;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;if &amp;#40;&amp;#40;GetObjectType&amp;#40;oIntruder&amp;#41;==OBJECT_TYPE_PLACEABLE&amp;#41; &amp;amp;&amp;amp; &amp;#40;!GetUseableFlag&amp;#40;oIntruder&amp;#41;&amp;#41;&amp;#41; //Don't try to attack non-usable placeables. You will be unable to.
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;oIntruder = OBJECT_INVALID;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; // ----------------------------------------------------------------------------------------
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; // BK&amp;#58; stop fighting if something bizarre that shouldn't happen, happens
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; // ----------------------------------------------------------------------------------------
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; if &amp;#40;bkEvaluationSanityCheck&amp;#40;oIntruder, GetFollowDistance&amp;#40;&amp;#41;&amp;#41; == TRUE&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; // ** Store How Difficult the combat is for this round
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; int nDiff = GetCombatDifficulty&amp;#40;&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; SetLocalInt&amp;#40;OBJECT_SELF, &amp;quot;NW_L_COMBATDIFF&amp;quot;, nDiff&amp;#41;;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; // MyPrintString&amp;#40;&amp;quot;COMBAT&amp;#58; &amp;quot; + IntToString&amp;#40;nDiff&amp;#41;&amp;#41;;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; // ----------------------------------------------------------------------------------------
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; // If no special target has been passed into the function
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; // then choose an appropriate target
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; // ----------------------------------------------------------------------------------------
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;if &amp;#40;GetIsObjectValid&amp;#40;oIntruder&amp;#41; == FALSE&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; oIntruder = bkAcquireTarget&amp;#40;&amp;#41;;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp;// ----------------------------------------------------------------------------------------
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;// 7/29/05 -- EPF, OEI
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;// Due to the many, many plot-related cutscenes, we have decided to prevent anyone in the 
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;// PC faction from being attacked while they are in conversation.&amp;nbsp; Eventually, this should
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;// probably include a check to see if the conversation itself is a plot cutscene, but for
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;// now that flag is NYI.&amp;nbsp; Effectively, this is just a &amp;quot;pause&amp;quot; on combat until the
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;// conversation ends.&amp;nbsp; Then the PC party is fair game.
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;// 5/30/06 -- DBR, OEI
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;// Flag is IN! GetIsInCutscene&amp;#40;&amp;#41; now only checks for multiplayer flagged cutscenes.
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;// ----------------------------------------------------------------------------------------
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;if&amp;#40;GetIsInCutscene&amp;#40;oIntruder&amp;#41;&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;PrintString&amp;#40;&amp;quot;DetermineCombatRound&amp;#40;&amp;#41;&amp;#58; In cutscene.&amp;nbsp; Aborting function.&amp;quot;&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;ClearAllActions&amp;#40;TRUE&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;ActionWait&amp;#40;3.f&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;ActionDoCommand&amp;#40;DetermineCombatRound&amp;#40;&amp;#41;&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;return;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; // If for some reason my target is dead, then leave
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; // the poor guy alone. Jeez. What kind of monster am I?
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; if &amp;#40;GetIsDead&amp;#40;oIntruder&amp;#41; == TRUE&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; // ----------------------------------------------------------------------------------------
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; //&amp;nbsp; &amp;nbsp;JULY 11 2003
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; //&amp;nbsp; &amp;nbsp;If in combat round already &amp;#40;variable set&amp;#41; do not enter it again.
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; //&amp;nbsp; &amp;nbsp;This is meant to prevent multiple calls to DetermineCombatRound
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; //&amp;nbsp; &amp;nbsp;from happening during the *same* round.
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;//
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; //&amp;nbsp; &amp;nbsp;This variable is turned on at the start of this function call.
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; //&amp;nbsp; &amp;nbsp;It is turned off at each &amp;quot;return&amp;quot; point for this function
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; // ----------------------------------------------------------------------------------------
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; if &amp;#40;__InCombatRound&amp;#40;&amp;#41; == TRUE&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; __TurnCombatRoundOn&amp;#40;TRUE&amp;#41;;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; // ----------------------------------------------------------------------------------------
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; // DetermineCombatRound&amp;#58; ACTIONS
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; // ----------------------------------------------------------------------------------------
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; if&amp;#40;GetIsObjectValid&amp;#40;oIntruder&amp;#41;&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if&amp;#40;TalentPersistentAbilities&amp;#40;&amp;#41;&amp;#41; // * Will put up things like Auras quickly
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; __TurnCombatRoundOn&amp;#40;FALSE&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // If a succesful tactic has been chosen then exit this function directly
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if &amp;#40;chooseTactics&amp;#40;oIntruder&amp;#41; == 99&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; __TurnCombatRoundOn&amp;#40;FALSE&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // This check is to make sure that people do not drop out of
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // combat before they are supposed to.
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; object oNearEnemy = GetNearestSeenEnemy&amp;#40;&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; DetermineCombatRound&amp;#40;oNearEnemy&amp;#41;;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;__TurnCombatRoundOn&amp;#40;FALSE&amp;#41;;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; // ----------------------------------------------------------------------------------------
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; // This is a call to the function which determines which
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; // way point to go back to.
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; // ----------------------------------------------------------------------------------------
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; ClearActions&amp;#40;CLEAR_NW_I0_GENERIC_658&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; SetLocalObject&amp;#40;OBJECT_SELF, VAR_NW_GENERIC_LAST_ATTACK_TARGET, OBJECT_INVALID&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; WalkWayPoints&amp;#40;&amp;#41;;
&lt;br /&gt;
&amp;#125;
&lt;br /&gt;

&lt;br /&gt;
//&amp;nbsp; &amp;nbsp; Allows the listener to react in a manner
&lt;br /&gt;
//&amp;nbsp; &amp;nbsp; consistant with the given shout but only to one
&lt;br /&gt;
//&amp;nbsp; &amp;nbsp; combat shout per round
&lt;br /&gt;
//&amp;#58;&amp;#58; Created By&amp;#58; Preston Watamaniuk
&lt;br /&gt;
//&amp;#58;&amp;#58; Created On&amp;#58; Oct 25, 2001
&lt;br /&gt;

&lt;br /&gt;
//NOTE ABOUT COMMONERS
&lt;br /&gt;
//&amp;nbsp; &amp;nbsp; Commoners are universal cowards.&amp;nbsp; If you attack anyone they will flee for 4 seconds away from the attacker.
&lt;br /&gt;
//&amp;nbsp; &amp;nbsp; However to make the commoners into a mob, make a single commoner at least 10th level of the same faction.
&lt;br /&gt;
//&amp;nbsp; &amp;nbsp; If that higher level commoner is attacked or killed then the commoners will attack the attacker.&amp;nbsp; They will disperse again
&lt;br /&gt;
//&amp;nbsp; &amp;nbsp; after some of them are killed.&amp;nbsp; Should NOT make multi-class creatures using commoners.
&lt;br /&gt;
//
&lt;br /&gt;
//NOTE ABOUT BLOCKERS
&lt;br /&gt;
//&amp;nbsp; &amp;nbsp; It should be noted that the Generic Script for On Dialogue attempts to get a local set on the shouter by itself.
&lt;br /&gt;
//&amp;nbsp; &amp;nbsp; This object represents the LastOpenedBy object.&amp;nbsp; It is this object that becomes the oIntruder within this function.
&lt;br /&gt;

&lt;br /&gt;
//NOTE ABOUT INTRUDERS
&lt;br /&gt;
//
&lt;br /&gt;
//&amp;nbsp; &amp;nbsp; The intruder object is for cases where a placable needs to pass a LastOpenedBy Object or a AttackMyAttacker
&lt;br /&gt;
//&amp;nbsp; &amp;nbsp; needs to make his attacker the enemy of everyone.
&lt;br /&gt;

&lt;br /&gt;
void RespondToShout&amp;#40;object oShouter, int nShoutIndex, object oIntruder = OBJECT_INVALID&amp;#41;
&lt;br /&gt;
&amp;#123;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; // Pausanias&amp;#58; Do not respond to shouts if you've surrendered.
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; int iSurrendered = GetLocalInt&amp;#40;OBJECT_SELF,&amp;quot;Generic_Surrender&amp;quot;&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; if &amp;#40;iSurrendered&amp;#41; return;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; switch &amp;#40;nShoutIndex&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 1&amp;#58;//NW_GENERIC_SHOUT_I_WAS_ATTACKED&amp;#58;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; object oTarget = oIntruder;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if&amp;#40;!GetIsObjectValid&amp;#40;oTarget&amp;#41;&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; oTarget = GetLastHostileActor&amp;#40;oShouter&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if&amp;#40;!GetBehaviorState&amp;#40;NW_FLAG_BEHAVIOR_SPECIAL&amp;#41;&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;// if I am not a commoner, and not trying to attack something, and the shouter is a friend and the intruder is not a friend
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;// then wake up and attack focus on the last person to be hostile to the shouter. 
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if&amp;#40;!GetLevelByClass&amp;#40;CLASS_TYPE_COMMONER&amp;#41;&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if&amp;#40;!GetIsObjectValid&amp;#40;GetAttemptedAttackTarget&amp;#40;&amp;#41;&amp;#41; &amp;amp;&amp;amp; !GetIsObjectValid&amp;#40;GetAttemptedSpellTarget&amp;#40;&amp;#41;&amp;#41;&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if&amp;#40;GetIsObjectValid&amp;#40;oTarget&amp;#41;&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if&amp;#40;!GetIsFriend&amp;#40;oTarget&amp;#41; &amp;amp;&amp;amp; GetIsFriend&amp;#40;oShouter&amp;#41;&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; RemoveAmbientSleep&amp;#40;&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //DetermineCombatRound&amp;#40;oTarget&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; DetermineCombatRound&amp;#40;GetLastHostileActor&amp;#40;oShouter&amp;#41;&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;// If I'm a commoner, and the shouter is a high level commoner, attack like mob!
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; else if &amp;#40;GetLevelByClass&amp;#40;CLASS_TYPE_COMMONER, oShouter&amp;#41; &amp;gt;= 10&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; WrapperActionAttack&amp;#40;GetLastHostileActor&amp;#40;oShouter&amp;#41;&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; else // I'm a commoner - Determine combat round should result in me fleeing.
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; DetermineCombatRound&amp;#40;oIntruder&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; else
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; DetermineSpecialBehavior&amp;#40;&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 2&amp;#58;//NW_GENERIC_SHOUT_MOB_ATTACK&amp;#58;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if&amp;#40;!GetBehaviorState&amp;#40;NW_FLAG_BEHAVIOR_SPECIAL&amp;#41;&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //Is friendly check to make sure that only like minded commoners attack.
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if&amp;#40;GetIsFriend&amp;#40;oShouter&amp;#41;&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; WrapperActionAttack&amp;#40;GetLastHostileActor&amp;#40;oShouter&amp;#41;&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //if&amp;#40;TalentMeleeAttack&amp;#40;&amp;#41;&amp;#41; &amp;#123;return;&amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; else
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; DetermineSpecialBehavior&amp;#40;&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 3&amp;#58;//NW_GENERIC_SHOUT_I_AM_DEAD&amp;#58;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if&amp;#40;!GetBehaviorState&amp;#40;NW_FLAG_BEHAVIOR_SPECIAL&amp;#41;&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //Use I was attacked script above
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if&amp;#40;!GetLevelByClass&amp;#40;CLASS_TYPE_COMMONER&amp;#41;&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if&amp;#40;!GetIsObjectValid&amp;#40;GetAttemptedAttackTarget&amp;#40;&amp;#41;&amp;#41; &amp;amp;&amp;amp; !GetIsObjectValid&amp;#40;GetAttemptedSpellTarget&amp;#40;&amp;#41;&amp;#41;&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if&amp;#40;GetIsObjectValid&amp;#40;GetLastHostileActor&amp;#40;oShouter&amp;#41;&amp;#41;&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if&amp;#40;!GetIsFriend&amp;#40;GetLastHostileActor&amp;#40;oShouter&amp;#41;&amp;#41; &amp;amp;&amp;amp; GetIsFriend&amp;#40;oShouter&amp;#41;&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; DetermineCombatRound&amp;#40;GetLastHostileActor&amp;#40;oShouter&amp;#41;&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; else if &amp;#40;GetLevelByClass&amp;#40;CLASS_TYPE_COMMONER, oShouter&amp;#41; &amp;gt;= 10&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; WrapperActionAttack&amp;#40;GetLastHostileActor&amp;#40;oShouter&amp;#41;&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; else
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; DetermineCombatRound&amp;#40;&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; else
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; DetermineSpecialBehavior&amp;#40;&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //For this shout to work the object must shout the following
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //string sHelp = &amp;quot;NW_BLOCKER_BLK_&amp;quot; + GetTag&amp;#40;OBJECT_SELF&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 4&amp;#58; //BLOCKER OBJECT HAS BEEN DISTURBED
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if&amp;#40;!GetLevelByClass&amp;#40;CLASS_TYPE_COMMONER&amp;#41;&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if&amp;#40;!GetIsObjectValid&amp;#40;GetAttemptedAttackTarget&amp;#40;&amp;#41;&amp;#41; &amp;amp;&amp;amp; !GetIsObjectValid&amp;#40;GetAttemptedSpellTarget&amp;#40;&amp;#41;&amp;#41;&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if&amp;#40;GetIsObjectValid&amp;#40;oIntruder&amp;#41;&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; SetIsTemporaryEnemy&amp;#40;oIntruder&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; DetermineCombatRound&amp;#40;oIntruder&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; else if &amp;#40;GetLevelByClass&amp;#40;CLASS_TYPE_COMMONER, oShouter&amp;#41; &amp;gt;= 10&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; WrapperActionAttack&amp;#40;oIntruder&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; else
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; DetermineCombatRound&amp;#40;&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 5&amp;#58; //ATTACK MY TARGET
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; AdjustReputation&amp;#40;oIntruder, OBJECT_SELF, -100&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if&amp;#40;GetIsFriend&amp;#40;oShouter&amp;#41;&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; SetIsTemporaryEnemy&amp;#40;oIntruder&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ClearActions&amp;#40;CLEAR_NW_I0_GENERIC_834&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; DetermineCombatRound&amp;#40;oIntruder&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 6&amp;#58; //CALL_TO_ARMS
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //This was once commented out.
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; DetermineCombatRound&amp;#40;&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;#125;
&lt;br /&gt;

&lt;br /&gt;
//&amp;#58;&amp;#58; Set and Get NPC Warning Status
&lt;br /&gt;
//&amp;nbsp; &amp;nbsp; This function sets a local int on OBJECT_SELF
&lt;br /&gt;
//&amp;nbsp; &amp;nbsp; which will be checked in the On Attack, On
&lt;br /&gt;
//&amp;nbsp; &amp;nbsp; Damaged and On Disturbed scripts to check if
&lt;br /&gt;
//&amp;nbsp; &amp;nbsp; the offending party was a PC and was friendly.
&lt;br /&gt;
//&amp;nbsp; &amp;nbsp; The Get will return the status of the local.
&lt;br /&gt;
//&amp;#58;&amp;#58; Created By&amp;#58; Preston Watamaniuk
&lt;br /&gt;
//&amp;#58;&amp;#58; Created On&amp;#58; Oct 29, 2001
&lt;br /&gt;

&lt;br /&gt;
// NPCs who have warning status set to TRUE will allow
&lt;br /&gt;
// one 'free' attack by PCs from a non-hostile faction.
&lt;br /&gt;
void SetNPCWarningStatus&amp;#40;int nStatus = TRUE&amp;#41;
&lt;br /&gt;
&amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; SetLocalInt&amp;#40;OBJECT_SELF, &amp;quot;NW_GENERIC_WARNING_STATUS&amp;quot;, nStatus&amp;#41;;
&lt;br /&gt;
&amp;#125;
&lt;br /&gt;

&lt;br /&gt;
// NPCs who have warning status set to TRUE will allow
&lt;br /&gt;
// one 'free' attack by PCs from a non-hostile faction.
&lt;br /&gt;
int GetNPCWarningStatus&amp;#40;&amp;#41;
&lt;br /&gt;
&amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; return GetLocalInt&amp;#40;OBJECT_SELF, &amp;quot;NW_GENERIC_WARNING_STATUS&amp;quot;&amp;#41;;
&lt;br /&gt;
&amp;#125;
&lt;br /&gt;

&lt;br /&gt;
//&amp;nbsp; &amp;nbsp; This function works in tandem with an encounter
&lt;br /&gt;
//&amp;nbsp; &amp;nbsp; to spawn in guards to fight for the attacked
&lt;br /&gt;
//&amp;nbsp; &amp;nbsp; NPC.&amp;nbsp; MAKE SURE THE ENCOUNTER TAG IS SET TO&amp;#58;
&lt;br /&gt;
//&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;ENC_&amp;quot; + NPC TAG
&lt;br /&gt;
//&amp;#58;&amp;#58; Created By&amp;#58; Preston Watamaniuk
&lt;br /&gt;
//&amp;#58;&amp;#58; Created On&amp;#58; Oct 29, 2001
&lt;br /&gt;

&lt;br /&gt;
//Presently Does not work with the current implementation of encounter trigger
&lt;br /&gt;
void SetSummonHelpIfAttacked&amp;#40;&amp;#41;
&lt;br /&gt;
&amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; string sEncounter = &amp;quot;ENC_&amp;quot; + GetTag&amp;#40;OBJECT_SELF&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; object oTrigger = GetObjectByTag&amp;#40;sEncounter&amp;#41;;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; if&amp;#40;GetIsObjectValid&amp;#40;oTrigger&amp;#41;&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; SetEncounterActive&amp;#40;TRUE, oTrigger&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;#125;
&lt;br /&gt;

&lt;br /&gt;
//==============================================================
&lt;br /&gt;
// ESCAPE FUNCTIONS
&lt;br /&gt;
//==============================================================
&lt;br /&gt;

&lt;br /&gt;
//&amp;#58;&amp;#58; Set, Get Activate,Flee to Exit
&lt;br /&gt;
//&amp;nbsp; &amp;nbsp; The target object flees to the specified
&lt;br /&gt;
//&amp;nbsp; &amp;nbsp; way point and then destroys itself, to be
&lt;br /&gt;
//&amp;nbsp; &amp;nbsp; respawned at a later point.&amp;nbsp; For unkillable
&lt;br /&gt;
//&amp;nbsp; &amp;nbsp; sign post characters who are not meant to fight back.
&lt;br /&gt;
//&amp;#58;&amp;#58; Created By&amp;#58; Preston Watamaniuk
&lt;br /&gt;
//&amp;#58;&amp;#58; Created On&amp;#58; Oct 29, 2001
&lt;br /&gt;

&lt;br /&gt;
//This function is used only because ActionDoCommand can only accept void functions
&lt;br /&gt;
void CreateSignPostNPC&amp;#40;string sTag, location lLocal&amp;#41;
&lt;br /&gt;
&amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; CreateObject&amp;#40;OBJECT_TYPE_CREATURE, sTag, lLocal&amp;#41;;
&lt;br /&gt;
&amp;#125;
&lt;br /&gt;

&lt;br /&gt;
void ActivateFleeToExit&amp;#40;&amp;#41;
&lt;br /&gt;
&amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;//minor optimizations - only grab these variables when actually needed
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;//can make for larger code, but it's faster
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;//object oExitWay = GetWaypointByTag&amp;#40;&amp;quot;EXIT_&amp;quot; + GetTag&amp;#40;OBJECT_SELF&amp;#41;&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;//location lLocal = GetLocalLocation&amp;#40;OBJECT_SELF, &amp;quot;NW_GENERIC_START_POINT&amp;quot;&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;//string sTag = GetTag&amp;#40;OBJECT_SELF&amp;#41;;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;//I suppose having this as a variable made it easier to change at one point....
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;//but it never changes, and is only used twice, so we don't need it
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;//float fDelay =&amp;nbsp; 6.0;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;int nPlot = GetLocalInt&amp;#40;OBJECT_SELF, &amp;quot;NW_GENERIC_MASTER&amp;quot;&amp;#41;;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;if&amp;#40;nPlot &amp;amp; NW_FLAG_TELEPORT_RETURN || nPlot &amp;amp; NW_FLAG_TELEPORT_LEAVE&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //effect eVis = EffectVisualEffect&amp;#40;VFX_IMP_UNSUMMON&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //ApplyEffectToObject&amp;#40;DURATION_TYPE_INSTANT, eVis, OBJECT_SELF&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if&amp;#40;nPlot &amp;amp; NW_FLAG_TELEPORT_RETURN&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; location lLocal = GetLocalLocation&amp;#40;OBJECT_SELF, &amp;quot;NW_GENERIC_START_POINT&amp;quot;&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; string sTag = GetTag&amp;#40;OBJECT_SELF&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; DelayCommand&amp;#40;6.0, ActionDoCommand&amp;#40;CreateSignPostNPC&amp;#40;sTag, lLocal&amp;#41;&amp;#41;&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ActionDoCommand&amp;#40;DestroyObject&amp;#40;OBJECT_SELF, 0.75&amp;#41;&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;else
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if&amp;#40;nPlot &amp;amp; NW_FLAG_ESCAPE_LEAVE&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; object oExitWay = GetWaypointByTag&amp;#40;&amp;quot;EXIT_&amp;quot; + GetTag&amp;#40;OBJECT_SELF&amp;#41;&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ActionMoveToObject&amp;#40;oExitWay, TRUE&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ActionDoCommand&amp;#40;DestroyObject&amp;#40;OBJECT_SELF, 1.0&amp;#41;&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; else if&amp;#40;nPlot &amp;amp; NW_FLAG_ESCAPE_RETURN&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; string sTag = GetTag&amp;#40;OBJECT_SELF&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; object oExitWay = GetWaypointByTag&amp;#40;&amp;quot;EXIT_&amp;quot; + sTag&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ActionMoveToObject&amp;#40;oExitWay, TRUE&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; location lLocal = GetLocalLocation&amp;#40;OBJECT_SELF, &amp;quot;NW_GENERIC_START_POINT&amp;quot;&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; DelayCommand&amp;#40;6.0, ActionDoCommand&amp;#40;CreateSignPostNPC&amp;#40;sTag, lLocal&amp;#41;&amp;#41;&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ActionDoCommand&amp;#40;DestroyObject&amp;#40;OBJECT_SELF, 1.0&amp;#41;&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;#125;
&lt;br /&gt;
&amp;#125;
&lt;br /&gt;

&lt;br /&gt;
int GetFleeToExit&amp;#40;&amp;#41;
&lt;br /&gt;
&amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; int nPlot = GetLocalInt&amp;#40;OBJECT_SELF, &amp;quot;NW_GENERIC_MASTER&amp;quot;&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; if&amp;#40;nPlot &amp;amp; NW_FLAG_ESCAPE_RETURN&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return TRUE;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; else if&amp;#40;nPlot &amp;amp; NW_FLAG_ESCAPE_LEAVE&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return TRUE;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; else if&amp;#40;nPlot &amp;amp; NW_FLAG_TELEPORT_RETURN&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return TRUE;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; else if&amp;#40;nPlot &amp;amp; NW_FLAG_TELEPORT_LEAVE&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return TRUE;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; return FALSE;
&lt;br /&gt;
&amp;#125;
&lt;br /&gt;

&lt;br /&gt;

&lt;br /&gt;

&lt;br /&gt;
//==============================================================
&lt;br /&gt;
// PRIVATE FUNCTIONS
&lt;br /&gt;
//==============================================================
&lt;br /&gt;

&lt;br /&gt;
//This is experimental and has not been looked at closely.
&lt;br /&gt;
void ExitAOESpellArea&amp;#40;object oAOEObject&amp;#41;
&lt;br /&gt;
&amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; ClearActions&amp;#40;CLEAR_NW_I0_GENERIC_ExitAOESpellArea&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; ActionMoveAwayFromObject&amp;#40;oAOEObject, TRUE, 5.0&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; AssignCommand&amp;#40;OBJECT_SELF, DetermineCombatRound&amp;#40;&amp;#41;&amp;#41;;
&lt;br /&gt;
&amp;#125;
&lt;br /&gt;

&lt;br /&gt;

&lt;br /&gt;
//&amp;nbsp; &amp;nbsp; Returns the combined class levels of the target.
&lt;br /&gt;
int GetCharacterLevel&amp;#40;object oTarget&amp;#41;
&lt;br /&gt;
&amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; return GetHitDice&amp;#40;oTarget&amp;#41;;
&lt;br /&gt;
&amp;#125;
&lt;br /&gt;

&lt;br /&gt;
//&amp;nbsp; &amp;nbsp; Checks if the NPC has sleep on them because
&lt;br /&gt;
//&amp;nbsp; &amp;nbsp; of ambient animations. Sleeping creatures
&lt;br /&gt;
//&amp;nbsp; &amp;nbsp; must make a DC 15 listen check.
&lt;br /&gt;
//&amp;#58;&amp;#58; Created By&amp;#58; Preston Watamaniuk
&lt;br /&gt;
//&amp;#58;&amp;#58; Created On&amp;#58; Feb 27, 2002
&lt;br /&gt;
void RemoveAmbientSleep&amp;#40;&amp;#41;
&lt;br /&gt;
&amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; if&amp;#40;GetHasEffect&amp;#40;EFFECT_TYPE_SLEEP&amp;#41;&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; effect eSleep = GetFirstEffect&amp;#40;OBJECT_SELF&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; while&amp;#40;GetIsEffectValid&amp;#40;eSleep&amp;#41;&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if&amp;#40;GetEffectCreator&amp;#40;eSleep&amp;#41; == OBJECT_SELF&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int nRoll = d20&amp;#40;&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; nRoll += GetSkillRank&amp;#40;SKILL_LISTEN&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; nRoll += GetAbilityModifier&amp;#40;ABILITY_WISDOM&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if&amp;#40;nRoll &amp;gt; 15&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; RemoveEffect&amp;#40;OBJECT_SELF, eSleep&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; eSleep = GetNextEffect&amp;#40;OBJECT_SELF&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;#125;
&lt;br /&gt;

&lt;br /&gt;

&lt;br /&gt;
//&amp;nbsp; &amp;nbsp; Finds the closest locked object to the object
&lt;br /&gt;
//&amp;nbsp; &amp;nbsp; passed in up to a maximum of 10 objects.
&lt;br /&gt;
//&amp;#58;&amp;#58; Created By&amp;#58; Preston Watamaniuk
&lt;br /&gt;
//&amp;#58;&amp;#58; Created On&amp;#58; March 15, 2002
&lt;br /&gt;
object GetLockedObject&amp;#40;object oMaster&amp;#41;
&lt;br /&gt;
&amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; int nCnt = 1;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; int bValid = TRUE;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; object oLastObject = GetNearestObjectToLocation&amp;#40;OBJECT_TYPE_DOOR | OBJECT_TYPE_PLACEABLE, GetLocation&amp;#40;oMaster&amp;#41;, nCnt&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; while &amp;#40;GetIsObjectValid&amp;#40;oLastObject&amp;#41; &amp;amp;&amp;amp; bValid == TRUE&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //COMMENT THIS BACK IN WHEN DOOR ACTION WORKS ON PLACABLE.
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //object oItem = GetFirstItemInInventory&amp;#40;oLastObject&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if&amp;#40;GetLocked&amp;#40;oLastObject&amp;#41;&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return oLastObject;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; nCnt++;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if&amp;#40;nCnt == 10&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; bValid = FALSE;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; oLastObject = GetNearestObjectToLocation&amp;#40;OBJECT_TYPE_DOOR | OBJECT_TYPE_PLACEABLE, GetLocation&amp;#40;oMaster&amp;#41;, nCnt&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; return OBJECT_INVALID;
&lt;br /&gt;
&amp;#125;
&lt;br /&gt;

&lt;br /&gt;

&lt;br /&gt;
//&amp;nbsp; &amp;nbsp; Checks that an item was unlocked.
&lt;br /&gt;
void CheckIsUnlocked&amp;#40;object oLastObject&amp;#41;
&lt;br /&gt;
&amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; if&amp;#40;GetLocked&amp;#40;oLastObject&amp;#41;&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ActionDoCommand&amp;#40;VoiceCuss&amp;#40;&amp;#41;&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; else
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ActionDoCommand&amp;#40;VoiceCanDo&amp;#40;&amp;#41;&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;#125;
&lt;br /&gt;

&lt;br /&gt;

&lt;br /&gt;
//&amp;#58;&amp;#58; Play Mobile Ambient Animations
&lt;br /&gt;
//&amp;#58;&amp;#58; This function is now just a wrapper around
&lt;br /&gt;
//&amp;#58;&amp;#58; code from x0_i0_anims.
&lt;br /&gt;
void PlayMobileAmbientAnimations&amp;#40;&amp;#41;
&lt;br /&gt;
&amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; if&amp;#40;!GetSpawnInCondition&amp;#40;NW_FLAG_AMBIENT_ANIMATIONS_AVIAN&amp;#41;&amp;#41; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // not a bird
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; PlayMobileAmbientAnimations_NonAvian&amp;#40;&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#125; else &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // a bird
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; PlayMobileAmbientAnimations_Avian&amp;#40;&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;#125;
&lt;br /&gt;

&lt;br /&gt;
//&amp;nbsp; &amp;nbsp; Determines the special behavior used by the NPC.
&lt;br /&gt;
//&amp;nbsp; &amp;nbsp; Generally all NPCs who you want to behave differently
&lt;br /&gt;
//&amp;nbsp; &amp;nbsp; than the defualt behavior.
&lt;br /&gt;
//&amp;nbsp; &amp;nbsp; For these behaviors, passing in a valid object will
&lt;br /&gt;
//&amp;nbsp; &amp;nbsp; cause the creature to become hostile the the attacker.
&lt;br /&gt;
//
&lt;br /&gt;
//&amp;nbsp; &amp;nbsp; MODIFIED February 7 2003&amp;#58;
&lt;br /&gt;
//&amp;nbsp; &amp;nbsp; - Rearranged logic order a little so that the creatures
&lt;br /&gt;
//&amp;nbsp; &amp;nbsp; will actually randomwalk when not fighting
&lt;br /&gt;
//&amp;#58;&amp;#58; Created By&amp;#58; Preston Watamaniuk
&lt;br /&gt;
//&amp;#58;&amp;#58; Created On&amp;#58; Dec 14, 2001
&lt;br /&gt;
void DetermineSpecialBehavior&amp;#40;object oIntruder = OBJECT_INVALID&amp;#41;
&lt;br /&gt;
&amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; object oTarget = GetNearestSeenEnemy&amp;#40;&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; if&amp;#40;GetBehaviorState&amp;#40;NW_FLAG_BEHAVIOR_OMNIVORE&amp;#41;&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int bAttack = FALSE;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if&amp;#40;!GetIsObjectValid&amp;#40;oIntruder&amp;#41;&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if&amp;#40;!GetIsObjectValid&amp;#40;GetAttemptedAttackTarget&amp;#40;&amp;#41;&amp;#41; &amp;amp;&amp;amp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;!GetIsObjectValid&amp;#40;GetAttemptedSpellTarget&amp;#40;&amp;#41;&amp;#41; &amp;amp;&amp;amp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;!GetIsObjectValid&amp;#40;GetAttackTarget&amp;#40;&amp;#41;&amp;#41;&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if&amp;#40;GetIsObjectValid&amp;#40;oTarget&amp;#41; &amp;amp;&amp;amp; GetDistanceToObject&amp;#40;oTarget&amp;#41; &amp;lt;= 8.0&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if&amp;#40;!GetIsFriend&amp;#40;oTarget&amp;#41;&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if&amp;#40;GetLevelByClass&amp;#40;CLASS_TYPE_DRUID, oTarget&amp;#41; == 0 &amp;amp;&amp;amp; GetLevelByClass&amp;#40;CLASS_TYPE_RANGER, oTarget&amp;#41; == 0&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; SetIsTemporaryEnemy&amp;#40;oTarget, OBJECT_SELF, FALSE, 20.0&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; bAttack = TRUE;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; DetermineCombatRound&amp;#40;oTarget&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; else if&amp;#40;!IsInConversation&amp;#40;OBJECT_SELF&amp;#41;&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; bAttack = TRUE;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; DetermineCombatRound&amp;#40;oIntruder&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // * if not attacking, the wander
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if &amp;#40;bAttack == FALSE&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ClearActions&amp;#40;CLEAR_NW_I0_GENERIC_DetermineSpecialBehavior1&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ActionRandomWalk&amp;#40;&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; else if&amp;#40;GetBehaviorState&amp;#40;NW_FLAG_BEHAVIOR_HERBIVORE&amp;#41;&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if&amp;#40;!GetIsObjectValid&amp;#40;GetAttemptedAttackTarget&amp;#40;&amp;#41;&amp;#41; &amp;amp;&amp;amp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;!GetIsObjectValid&amp;#40;GetAttemptedSpellTarget&amp;#40;&amp;#41;&amp;#41; &amp;amp;&amp;amp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;!GetIsObjectValid&amp;#40;GetAttackTarget&amp;#40;&amp;#41;&amp;#41;&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if&amp;#40;GetIsObjectValid&amp;#40;oTarget&amp;#41; &amp;amp;&amp;amp; GetDistanceToObject&amp;#40;oTarget&amp;#41; &amp;lt;= 6.0&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if&amp;#40;!GetIsFriend&amp;#40;oTarget&amp;#41;&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if&amp;#40;GetLevelByClass&amp;#40;CLASS_TYPE_DRUID, oTarget&amp;#41; == 0 &amp;amp;&amp;amp; GetLevelByClass&amp;#40;CLASS_TYPE_RANGER, oTarget&amp;#41; == 0&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; TalentFlee&amp;#40;oTarget&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; else if&amp;#40;!IsInConversation&amp;#40;OBJECT_SELF&amp;#41;&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ClearActions&amp;#40;CLEAR_NW_I0_GENERIC_DetermineSpecialBehavior2&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ActionRandomWalk&amp;#40;&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;#125;
&lt;br /&gt;

&lt;br /&gt;
//&amp;nbsp; &amp;nbsp;This function is for choosing what tactics to use when fighting a door.
&lt;br /&gt;
//&amp;nbsp; &amp;nbsp;oDoorIntruder is the door to fight, and the function is run on the combating creature.
&lt;br /&gt;
//&amp;nbsp; &amp;nbsp;Returns 1 on a succesful choice of tactic &amp;#40;which should always occur&amp;#41; and 0 when no tactics were chosen.
&lt;br /&gt;
//&amp;nbsp; Originally from BashDoorCheck&amp;#40;&amp;#41;, taken out.
&lt;br /&gt;
int ChooseTacticsForDoor&amp;#40;object oDoorIntruder = OBJECT_INVALID&amp;#41;
&lt;br /&gt;
&amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;if&amp;#40;GetHasFeat&amp;#40;FEAT_IMPROVED_POWER_ATTACK&amp;#41;&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;ActionUseFeat&amp;#40;FEAT_IMPROVED_POWER_ATTACK, oDoorIntruder&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;return 1;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;else if&amp;#40;GetHasFeat&amp;#40;FEAT_POWER_ATTACK&amp;#41;&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;ActionUseFeat&amp;#40;FEAT_POWER_ATTACK, oDoorIntruder&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;return 1;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;else
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;//WrapperActionAttack&amp;#40;oDoorIntruder&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;ActionAttack&amp;#40;oDoorIntruder&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;return 1;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;return 0;&amp;nbsp; &amp;nbsp;//unreachable, technically
&lt;br /&gt;
&amp;#125;
&lt;br /&gt;

&lt;br /&gt;

&lt;br /&gt;
&lt;/td&gt;	&lt;/tr&gt;&lt;/table&gt;</description>
	  <pubDate>Mon, 21 Jun 2010 11:39:35 +0200</pubDate>
	  <author>Tink</author>
	</item>
	<item>
	  <title>Posté par Tink le 21/06/2010  10:45</title>
	  <link>http://www.nwn2.fr/forum/viewtopic.php?p=18955#18955</link>
	  <guid></guid>
	  <description>&lt;span style=&quot;font-weight: bold&quot;&gt;NW_I0_GENERIC&lt;/span&gt; (2eme partie, tout passait pas dans un message... &amp;gt;&amp;lt;')
&lt;br /&gt;

&lt;br /&gt;

&lt;br /&gt;
       &lt;table width=&quot;90%&quot; cellspacing=&quot;1&quot; cellpadding=&quot;3&quot; border=&quot;0&quot; align=&quot;center&quot;&gt;&lt;tr&gt; 	  &lt;td&gt;&lt;span class=&quot;mep-p-g&quot;&gt;Code:&lt;/span&gt;&lt;/td&gt;	&lt;/tr&gt;	&lt;tr&gt;	  &lt;td class=&quot;code&quot;&gt;//&amp;nbsp; &amp;nbsp; Used in DetermineCombatRound to keep a
&lt;br /&gt;
//&amp;nbsp; &amp;nbsp; henchmen bashing doors.
&lt;br /&gt;
//&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
//&amp;nbsp; &amp;nbsp;Also used to limit the tactics used when fighting a door.
&lt;br /&gt;
//&amp;#58;&amp;#58; Created By&amp;#58; Preston Watamaniuk
&lt;br /&gt;
//&amp;#58;&amp;#58; Created On&amp;#58; April 4, 2002
&lt;br /&gt;
int BashDoorCheck&amp;#40;object oIntruder = OBJECT_INVALID&amp;#41;
&lt;br /&gt;
&amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;int bDoor = FALSE;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; //This code is here to make sure that henchmen keep bashing doors and placables.
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; object oDoor = GetLocalObject&amp;#40;OBJECT_SELF, &amp;quot;NW_GENERIC_DOOR_TO_BASH&amp;quot;&amp;#41;;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp;if &amp;#40;GetIsObjectValid&amp;#40;oDoor&amp;#41;&amp;#41;&amp;nbsp; &amp;nbsp;//run tests to see if we should bash this door that we received from a shout
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;if &amp;#40;!&amp;#40;!GetIsObjectValid&amp;#40;GetNearestCreature&amp;#40;CREATURE_TYPE_REPUTATION, REPUTATION_TYPE_ENEMY, OBJECT_SELF, 1, CREATURE_TYPE_PERCEPTION, PERCEPTION_SEEN&amp;#41;&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;|| &amp;#40;!GetIsObjectValid&amp;#40;oIntruder&amp;#41; &amp;amp;&amp;amp; !GetIsObjectValid&amp;#40;GetCurrentMaster&amp;#40;&amp;#41;&amp;#41;&amp;#41;&amp;#41;&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;oDoor = OBJECT_INVALID; //That last check was to prevent a henchmen or creatures form attacking a door if they are in combat &amp;#40;and have bigger concerns&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;else if &amp;#40;GetIsTrapped&amp;#40;oDoor&amp;#41; &amp;#41; oDoor = OBJECT_INVALID; //Don't attack a trapped door.
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;else if &amp;#40;!GetLocked&amp;#40;oDoor&amp;#41;&amp;#41; oDoor = OBJECT_INVALID;&amp;nbsp; &amp;nbsp;//Don't attack a Locked door.
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;//From the original BashDoorCheck&amp;#40;&amp;#41;, this handles the door that we were shouted to attack.&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; if&amp;#40;GetIsObjectValid&amp;#40;oDoor&amp;#41;&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int nDoorMax = GetMaxHitPoints&amp;#40;oDoor&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int nDoorNow = GetCurrentHitPoints&amp;#40;oDoor&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int nCnt = GetLocalInt&amp;#40;OBJECT_SELF,&amp;quot;NW_GENERIC_DOOR_TO_BASH_HP&amp;quot;&amp;#41;;//this variable appears to be a misnomer, and is used to keep track of how many times we have tried to bash this door.
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;if&amp;#40;nDoorMax == nDoorNow&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; nCnt++;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; SetLocalInt&amp;#40;OBJECT_SELF,&amp;quot;NW_GENERIC_DOOR_TO_BASH_HP&amp;quot;, nCnt&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if&amp;#40;nCnt &amp;lt;= 0&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; bDoor = ChooseTacticsForDoor&amp;#40;oDoor&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if&amp;#40;bDoor == FALSE&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; VoiceCuss&amp;#40;&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; DeleteLocalObject&amp;#40;OBJECT_SELF, &amp;quot;NW_GENERIC_DOOR_TO_BASH&amp;quot;&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; DeleteLocalInt&amp;#40;OBJECT_SELF, &amp;quot;NW_GENERIC_DOOR_TO_BASH_HP&amp;quot;&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;return bDoor;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;else&amp;nbsp; &amp;nbsp;//We either were not shouted to attack a door, or we decided that the shouted door is not good to attack.
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;#123;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;//Now we check oIntruder to see if the object we were going to attack anyway is a door.
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;if &amp;#40;GetObjectType&amp;#40;oIntruder&amp;#41;==OBJECT_TYPE_DOOR&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;return ChooseTacticsForDoor&amp;#40;oIntruder&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;#125;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;return FALSE;&amp;nbsp; &amp;nbsp; //did nothing
&lt;br /&gt;
&amp;#125;
&lt;br /&gt;

&lt;br /&gt;

&lt;br /&gt;
//&amp;nbsp; &amp;nbsp; Determines which of a NPCs three classes to
&lt;br /&gt;
//&amp;nbsp; &amp;nbsp; use in DetermineCombatRound
&lt;br /&gt;
//&amp;#58;&amp;#58; Created By&amp;#58; Preston Watamaniuk
&lt;br /&gt;
//&amp;#58;&amp;#58; Created On&amp;#58; April 4, 2002
&lt;br /&gt;
// Creatures can now have 4 classes
&lt;br /&gt;
int DetermineClassToUse&amp;#40;&amp;#41;
&lt;br /&gt;
&amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; int nClass;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; int nTotal = GetHitDice&amp;#40;OBJECT_SELF&amp;#41;;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; int nClass1 = GetClassByPosition&amp;#40;1&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; int nClass2 = GetClassByPosition&amp;#40;2&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; int nClass3 = GetClassByPosition&amp;#40;3&amp;#41;;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; int nState1 = GetLevelByClass&amp;#40;nClass1&amp;#41; * 100 / nTotal;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; int nState2 = nState1 + GetLevelByClass&amp;#40;nClass2&amp;#41; * 100 / nTotal;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; int nState3 = nState2 + GetLevelByClass&amp;#40;nClass3&amp;#41; * 100 / nTotal;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; int nUseClass = d100&amp;#40;&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; //PrettyDebug&amp;#40;&amp;quot;Hit Dice=&amp;quot; + IntToString&amp;#40;nTotal&amp;#41; + &amp;quot; D100 Roll=&amp;quot; + IntToString&amp;#40;nUseClass&amp;#41;&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; //PrettyDebug&amp;#40;&amp;quot;nClass1=&amp;quot; + IntToString&amp;#40;nClass1&amp;#41; + &amp;quot; nClass2=&amp;quot; + IntToString&amp;#40;nClass2&amp;#41;+ &amp;quot; nClass3=&amp;quot; + IntToString&amp;#40;nClass3&amp;#41;&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; //PrettyDebug&amp;#40;&amp;quot;nState1=&amp;quot; + IntToString&amp;#40;nState1&amp;#41; + &amp;quot; nState2=&amp;quot; + IntToString&amp;#40;nState2&amp;#41;+ &amp;quot; nState3=&amp;quot; + IntToString&amp;#40;nState3&amp;#41;&amp;#41;;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; if&amp;#40;nUseClass &amp;lt;= nState1&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; nClass = nClass1;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; //else if&amp;#40;nUseClass &amp;gt; nState1 &amp;amp;&amp;amp; nUseClass &amp;lt;= nState2&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; else if&amp;#40;nUseClass &amp;lt;= nState2&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; nClass = nClass2;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; else if&amp;#40;nUseClass &amp;lt;= nState3&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; nClass = nClass3;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;else
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; nClass = GetClassByPosition&amp;#40;4&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; //PrettyDebug&amp;#40;GetName&amp;#40;OBJECT_SELF&amp;#41; + &amp;quot; Return Class = &amp;quot; + IntToString&amp;#40;nClass&amp;#41;&amp;#41;;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; return nClass;
&lt;br /&gt;
&amp;#125;
&lt;br /&gt;

&lt;br /&gt;
//=======================================================
&lt;br /&gt;
// EvenFlw functions
&lt;br /&gt;
//=======================================================
&lt;br /&gt;

&lt;br /&gt;

&lt;br /&gt;
int CheckForInvis&amp;#40;object oIntruder&amp;#41;
&lt;br /&gt;
&amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;if&amp;#40;InvisibleTrue&amp;#40;oIntruder&amp;#41;==TRUE&amp;#41; return TRUE;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;object target=GetFirstObjectInShape&amp;#40;SHAPE_SPHERE, RADIUS_SIZE_LARGE, GetLocation&amp;#40;OBJECT_SELF&amp;#41;&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;int total=0;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;while&amp;#40;GetIsObjectValid&amp;#40;target&amp;#41; &amp;amp;&amp;amp; total&amp;lt;5&amp;#41; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;if&amp;#40;GetIsEnemy&amp;#40;target&amp;#41; &amp;amp;&amp;amp; InvisibleTrue&amp;#40;target&amp;#41;==TRUE&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;return TRUE;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;total++;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;target=GetNextObjectInShape&amp;#40;SHAPE_SPHERE, RADIUS_SIZE_LARGE, GetLocation&amp;#40;OBJECT_SELF&amp;#41;&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;return FALSE;
&lt;br /&gt;
&amp;#125;
&lt;br /&gt;

&lt;br /&gt;

&lt;br /&gt;
int CheckNonOffensiveMagic&amp;#40;object oIntruder, int nOffense, int nCompassion, int nMagic, int iCastingMode&amp;#41;
&lt;br /&gt;
&amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; if &amp;#40;nCompassion &amp;gt; 50&amp;#41; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; SetLocalInt&amp;#40;OBJECT_SELF, &amp;quot;NW_L_MEMORY&amp;quot;, chooseTactics_MEMORY_DEFENSE_OTHERS&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if&amp;#40;TalentHeal&amp;#40;&amp;#41; == TRUE&amp;#41; return 99;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;if&amp;#40;TalentResurrect&amp;#40;&amp;#41;&amp;#41; return 99;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if&amp;#40;TalentCureCondition&amp;#40;&amp;#41; == TRUE&amp;#41; return 99;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; if &amp;#40;nOffense&amp;lt;= 50 &amp;amp;&amp;amp; nMagic &amp;gt; 50&amp;#41; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; SetLocalInt&amp;#40;OBJECT_SELF, &amp;quot;NW_L_MEMORY&amp;quot;, chooseTactics_MEMORY_DEFENSE_SELF&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int nCaster = GetLevelByClass&amp;#40;CLASS_TYPE_WIZARD, oIntruder&amp;#41; +
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; GetLevelByClass&amp;#40;CLASS_TYPE_SORCERER, oIntruder&amp;#41; +
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; GetLevelByClass&amp;#40;CLASS_TYPE_BARD, oIntruder&amp;#41;+
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;GetLevelByClass&amp;#40;CLASS_TYPE_CLERIC, oIntruder&amp;#41; +
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; GetLevelByClass&amp;#40;CLASS_TYPE_DRUID, oIntruder&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;if&amp;#40;iCastingMode==2&amp;#41; nCaster+=5;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if &amp;#40;iCastingMode&amp;lt;2 || nCaster &amp;gt; GetHitDice&amp;#40;OBJECT_SELF&amp;#41;/2&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;nCaster=1;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if &amp;#40;TalentSelfProtectionMantleOrGlobe&amp;#40;&amp;#41;&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return 99;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125; else nCaster=0;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int seed=d4&amp;#40;&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if&amp;#40;seed!=1 &amp;amp;&amp;amp; nCompassion&amp;lt;51 || seed&amp;gt;2&amp;#41; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if&amp;#40;TalentAdvancedBuff2&amp;#40;OBJECT_SELF, oIntruder, nCaster, iCastingMode&amp;#41; == TRUE&amp;#41; return 99;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125; else &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if&amp;#40;TalentOthers&amp;#40;nCompassion, oIntruder, nCaster, iCastingMode&amp;#41;&amp;#41; return 99;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if&amp;#40;TalentSummonAllies&amp;#40;&amp;#41; == TRUE&amp;#41; return 99;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if&amp;#40;!&amp;#40;GetLocalInt&amp;#40;OBJECT_SELF, N2_TALENT_EXCLUDE&amp;#41;&amp;amp;0x1&amp;#41; &amp;amp;&amp;amp; TalentBuffSelf&amp;#40;&amp;#41; == TRUE&amp;#41; return 99; // potions
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if&amp;#40;CheckForInvis&amp;#40;oIntruder&amp;#41; &amp;amp;&amp;amp; TalentSeeInvisible&amp;#40;&amp;#41; == TRUE&amp;#41; return 99;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;return 0;
&lt;br /&gt;
&amp;#125;
&lt;br /&gt;

&lt;br /&gt;
int GetScaledCastingMagic&amp;#40;int iCastingMode, int nMagic, int def, int random=FALSE&amp;#41;
&lt;br /&gt;
&amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;switch&amp;#40;iCastingMode&amp;#41; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;case 1&amp;#58; nMagic=55;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;case 2&amp;#58; nMagic=45-GetHitDice&amp;#40;OBJECT_SELF&amp;#41;/3;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;case 3&amp;#58; if&amp;#40;random&amp;#41; nMagic=Random&amp;#40;nMagic&amp;#41;+1;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;else nMagic=40-GetHitDice&amp;#40;OBJECT_SELF&amp;#41;/2;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;default&amp;#58; if&amp;#40;random&amp;#41; nMagic=Random&amp;#40;def&amp;#41;+1;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;else nMagic=def;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;return nMagic;
&lt;br /&gt;
&amp;#125;
&lt;br /&gt;

&lt;br /&gt;

&lt;br /&gt;
void InitializeSeed&amp;#40;int iCastingMode, object oIntruder&amp;#41;
&lt;br /&gt;
&amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;int diff=20;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;if&amp;#40;iCastingMode&amp;gt;1&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;diff=GetHitDice&amp;#40;oIntruder&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;if&amp;#40;iCastingMode==2&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;diff+=5;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;if&amp;#40;diff&amp;gt;20&amp;#41; diff=20;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;if&amp;#40;d2&amp;#40;&amp;#41;==1&amp;#41; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;if&amp;#40;diff&amp;gt;GetHitDice&amp;#40;OBJECT_SELF&amp;#41;&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;diff=GetHitDice&amp;#40;OBJECT_SELF&amp;#41;+1;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;diff-=d4&amp;#40;&amp;#41;+1;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;if&amp;#40;diff&amp;lt;4&amp;#41; diff=4;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;SetLocalInt&amp;#40;OBJECT_SELF, &amp;quot;NW_L_COMBATDIFF&amp;quot;, diff&amp;#41;;
&lt;br /&gt;
&amp;#125;
&lt;br /&gt;

&lt;br /&gt;

&lt;br /&gt;
// *** sub function of chooseTactics&amp;#40;&amp;#41;
&lt;br /&gt;

&lt;br /&gt;
int GetMelee&amp;#40;&amp;#41; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;object weapon=GetItemInSlot&amp;#40;INVENTORY_SLOT_RIGHTHAND&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;if&amp;#40;!GetIsObjectValid&amp;#40;weapon&amp;#41; || MatchMeleeWeapon&amp;#40;weapon&amp;#41;&amp;#41; return TRUE;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;return FALSE;
&lt;br /&gt;
&amp;#125;
&lt;br /&gt;

&lt;br /&gt;
// returns percentage of hitpoints remaining
&lt;br /&gt;
int GetHPPercentage&amp;#40;object oTarget=OBJECT_SELF&amp;#41;
&lt;br /&gt;
&amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;return &amp;#40;&amp;#40;GetCurrentHitPoints&amp;#40;oTarget&amp;#41;*100&amp;#41;/GetMaxHitPoints&amp;#40;oTarget&amp;#41;&amp;#41;;
&lt;br /&gt;
&amp;#125;
&lt;br /&gt;

&lt;br /&gt;

&lt;br /&gt;
int GetCastingMode&amp;#40;int iMyHPPercentage&amp;#41;
&lt;br /&gt;
&amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;int iCastingMode = 0;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;if&amp;#40;iMyHPPercentage &amp;lt; 50&amp;#41; 
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;iCastingMode=0;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;else if&amp;#40;GetAssociateState&amp;#40;NW_ASC_OVERKIll_CASTING&amp;#41;&amp;#41; 
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;iCastingMode=1;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;else if&amp;#40;GetAssociateState&amp;#40;NW_ASC_POWER_CASTING&amp;#41;&amp;#41; 
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;iCastingMode=2;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;else if&amp;#40;GetAssociateState&amp;#40;NW_ASC_SCALED_CASTING&amp;#41;&amp;#41; 
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;iCastingMode=3;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;return &amp;#40;iCastingMode&amp;#41;;
&lt;br /&gt;
&amp;#125;
&lt;br /&gt;

&lt;br /&gt;

&lt;br /&gt;

&lt;br /&gt;
struct rTactics CreateTactics&amp;#40;int nOffense=0, int nCompassion=0, int nMagic=0, int nMagicOld=0, int nStealth=0, int bScaredOfSilence=0, int bTacticChosen=0&amp;#41;
&lt;br /&gt;
&amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;struct rTactics tacAI;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; tacAI.nOffense&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;= nOffense;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; tacAI.nCompassion&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;= nCompassion;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; tacAI.nMagic&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;= nMagic;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; tacAI.nMagicOld&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;= nMagicOld;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;tacAI.nStealth&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;= nStealth;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;tacAI.bScaredOfSilence&amp;nbsp; &amp;nbsp;= bScaredOfSilence;&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;tacAI.bTacticChosen&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;= bTacticChosen;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;return &amp;#40;tacAI&amp;#41;;
&lt;br /&gt;
&amp;#125;
&lt;br /&gt;

&lt;br /&gt;

&lt;br /&gt;
// Check if we can already determine from the class what to do.
&lt;br /&gt;
int TryClassTactic&amp;#40;object oIntruder, int nClass, int bNoFeats&amp;#41;
&lt;br /&gt;
&amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;int bTacticChosen = FALSE;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; switch &amp;#40;nClass&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case CLASS_TYPE_COMMONER&amp;#58;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;bTacticChosen = TalentFlee&amp;#40;oIntruder&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;//------------------------------------------&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case CLASS_TYPE_DRAGONDISCIPLE&amp;#58;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; if &amp;#40;!bNoFeats 
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;amp;&amp;amp; GetHasFeat&amp;#40;FEAT_DRAGON_DIS_BREATH&amp;#41; 
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;amp;&amp;amp; d4&amp;#40;&amp;#41;==1&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;ClearActions&amp;#40;2000&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;ActionCastSpellAtObject&amp;#40;690, GetNearestEnemy&amp;#40;&amp;#41;, METAMAGIC_ANY, TRUE&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;DecrementRemainingFeatUses&amp;#40;OBJECT_SELF, FEAT_DRAGON_DIS_BREATH&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;bTacticChosen = TRUE;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;//------------------------------------------&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;case CLASS_TYPE_BARD&amp;#58;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; if &amp;#40;!bNoFeats 
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;amp;&amp;amp; TalentBardSong&amp;#40;&amp;#41; == TRUE&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;bTacticChosen = TRUE;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;//------------------------------------------&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case CLASS_TYPE_RANGER&amp;#58;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case CLASS_TYPE_PALADIN&amp;#58;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case CLASS_TYPE_ARCANE_ARCHER&amp;#58;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;if &amp;#40;!GetLocalInt&amp;#40;OBJECT_SELF, N2_COMBAT_MODE_USE_DISABLED&amp;#41; 
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;amp;&amp;amp; GetHasFeat&amp;#40;FEAT_RAPID_SHOT&amp;#41;&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;#123;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;SetActionMode&amp;#40;OBJECT_SELF, ACTION_MODE_RAPID_SHOT, TRUE&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;bTacticChosen = FALSE; // still need to choose a tactic
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;//------------------------------------------&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case CLASS_TYPE_BARBARIAN&amp;#58;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;if &amp;#40;!bNoFeats 
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;amp;&amp;amp; !GetHasFeatEffect&amp;#40;FEAT_BARBARIAN_RAGE&amp;#41; 
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;amp;&amp;amp; GetHasFeat&amp;#40;FEAT_BARBARIAN_RAGE&amp;#41;&amp;#41; 
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;ClearAllActions&amp;#40;&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;ActionUseFeat&amp;#40;FEAT_BARBARIAN_RAGE, OBJECT_SELF&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;ActionAttack&amp;#40;oIntruder&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;bTacticChosen = TRUE;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;//------------------------------------------&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;case CLASS_TYPE_FRENZIEDBERSERKER&amp;#58;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;if &amp;#40;!bNoFeats 
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;amp;&amp;amp; !GetHasFeatEffect&amp;#40;FEAT_FRENZY_1&amp;#41; 
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;amp;&amp;amp; GetHasFeat&amp;#40;FEAT_FRENZY_1&amp;#41;&amp;#41; 
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;ClearAllActions&amp;#40;&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;ActionUseFeat&amp;#40;FEAT_FRENZY_1, OBJECT_SELF&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;ActionAttack&amp;#40;oIntruder&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;bTacticChosen = TRUE;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;//------------------------------------------&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case CLASS_TYPE_MONK&amp;#58;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;SetActionMode&amp;#40;OBJECT_SELF, ACTION_MODE_FLURRY_OF_BLOWS, TRUE&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;bTacticChosen = FALSE; // still need to choose a tactic
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;break;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;//------------------------------------------&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; default&amp;#58;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp;return &amp;#40;bTacticChosen&amp;#41;;
&lt;br /&gt;
&amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
struct rTactics CalculateTacticsByClass &amp;#40;struct rTactics tacAI, object oIntruder, int nClass, int iCastingMode&amp;#41;
&lt;br /&gt;
&amp;#123;&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; int nOffense&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;= tacAI.nOffense;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; int nCompassion&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;= tacAI.nCompassion;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; int nMagic&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;= tacAI.nMagic;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; int nMagicOld&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;= tacAI.nMagicOld;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;int nStealth&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;= tacAI.nStealth;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;int bScaredOfSilence&amp;nbsp; &amp;nbsp;= tacAI.bScaredOfSilence;&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;int bTacticChosen&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;= tacAI.bTacticChosen; // this function should not choose a tactic.
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;// Classes determine the &amp;quot;base&amp;quot; levels for the tactic types.&amp;nbsp; 
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;// Thus the values are generally overridden, not modified&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; switch &amp;#40;nClass&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case CLASS_TYPE_COMMONER&amp;#58;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;nOffense &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;= 0; 
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;nCompassion &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;= 0; 
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;nMagic &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;= 0;&amp;nbsp; 
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;//------------------------------------------&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case CLASS_TYPE_PALEMASTER&amp;#58;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;case CLASS_TYPE_ARCANETRICKSTER&amp;#58;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case CLASS_TYPE_WIZARD&amp;#58;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case CLASS_TYPE_SORCERER&amp;#58;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;bScaredOfSilence&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;= TRUE;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;nMagic &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;= GetScaledCastingMagic&amp;#40;iCastingMode, 40, 100&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;if&amp;#40;iCastingMode ==1 &amp;#41; 
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;nMagic&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;= 100;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; nCompassion &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;= 42; 
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;//------------------------------------------&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case CLASS_TYPE_DRAGONDISCIPLE&amp;#58;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;case CLASS_TYPE_BARD&amp;#58;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;bScaredOfSilence&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;= TRUE;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;// continue
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case CLASS_TYPE_HARPER&amp;#58;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;case CLASS_TYPE_ELDRITCH_KNIGHT&amp;#58;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;nMagic &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;= GetScaledCastingMagic&amp;#40;iCastingMode, 40, 43&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; nCompassion &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;= 43; 
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;//------------------------------------------&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case CLASS_TYPE_CLERIC&amp;#58;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;if &amp;#40;GetHitDice&amp;#40;oIntruder&amp;#41; &amp;gt; GetHitDice&amp;#40;OBJECT_SELF&amp;#41;&amp;#41; 
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;nStealth&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;= 70;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;bScaredOfSilence&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;= TRUE;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;// continue
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;case CLASS_TYPE_WARPRIEST&amp;#58;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;nMagic &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;= GetScaledCastingMagic&amp;#40;iCastingMode, 40, 44&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;nCompassion&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;= 45; 
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;break;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;//------------------------------------------&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case CLASS_TYPE_DRUID&amp;#58;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;nMagic &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;= GetScaledCastingMagic&amp;#40;iCastingMode, 40, 55&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;bScaredOfSilence&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;= TRUE;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; nCompassion &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;= 45; 
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;//------------------------------------------&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case CLASS_TYPE_RANGER&amp;#58;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case CLASS_TYPE_PALADIN&amp;#58;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;nCompassion&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;= 43;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;// continue
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case CLASS_TYPE_ARCANE_ARCHER&amp;#58;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case CLASS_TYPE_BLACKGUARD&amp;#58;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;nMagic &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;= GetScaledCastingMagic&amp;#40;iCastingMode, 50, 50, TRUE&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;//------------------------------------------&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case CLASS_TYPE_BARBARIAN&amp;#58;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;case CLASS_TYPE_FRENZIEDBERSERKER&amp;#58;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;nMagic &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;= GetScaledCastingMagic&amp;#40;iCastingMode, 40, 40, TRUE&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; nOffense &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;= 50; 
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;//------------------------------------------&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case CLASS_TYPE_ROGUE&amp;#58;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;case CLASS_TYPE_SHADOWTHIEFOFAMN&amp;#58;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case CLASS_TYPE_SHADOWDANCER&amp;#58;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case CLASS_TYPE_ASSASSIN&amp;#58;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;nMagic &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;= GetScaledCastingMagic&amp;#40;iCastingMode, 40, 40, TRUE&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;nStealth&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;= 100; 
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;//------------------------------------------&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case CLASS_TYPE_MONK&amp;#58;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case CLASS_TYPE_WEAPON_MASTER&amp;#58;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case CLASS_TYPE_DWARVENDEFENDER&amp;#58;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case CLASS_TYPE_FIGHTER&amp;#58;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;case CLASS_NWNINE_WARDER&amp;#58;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;case CLASS_TYPE_DUELIST&amp;#58;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;nMagic &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;= GetScaledCastingMagic&amp;#40;iCastingMode, 40, 40, TRUE&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;//------------------------------------------&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case CLASS_TYPE_UNDEAD&amp;#58;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; nCompassion &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;= 40; 
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;nMagic &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;= 40; 
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;//------------------------------------------&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case CLASS_TYPE_OUTSIDER&amp;#58;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; nMagic &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;= 40; 
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;nCompassion&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;= 0;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if &amp;#40;GetAlignmentGoodEvil&amp;#40;OBJECT_SELF&amp;#41; == ALIGNMENT_GOOD&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; nCompassion &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;= 41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;//------------------------------------------&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case CLASS_TYPE_CONSTRUCT&amp;#58;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case CLASS_TYPE_ELEMENTAL&amp;#58;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; nCompassion &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;= 0;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;nMagic &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;= 40; 
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;//------------------------------------------&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case CLASS_TYPE_DRAGON&amp;#58;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; nCompassion &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;= 20; 
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;nMagic &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;= 40; 
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;//------------------------------------------&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;case CLASS_TYPE_WARLOCK&amp;#58;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;bScaredOfSilence&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;= TRUE;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;nCompassion &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;= 0; 
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;nMagic &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;= 80; 
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;//------------------------------------------&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; default&amp;#58;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;return &amp;#40;CreateTactics&amp;#40;nOffense, nCompassion, nMagic, nMagicOld, nStealth, bScaredOfSilence, bTacticChosen&amp;#41;&amp;#41;;
&lt;br /&gt;
&amp;#125;
&lt;br /&gt;

&lt;br /&gt;

&lt;br /&gt;

&lt;br /&gt;
struct rTactics CalculateTactics&amp;#40;struct rTactics tacAI, object oIntruder, float fDistanceToIntruder, int nClass, int iCastingMode, int isSilenced&amp;#41;
&lt;br /&gt;
&amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; int nPreviousMemory &amp;nbsp; &amp;nbsp;= GetLocalInt&amp;#40;OBJECT_SELF, &amp;quot;NW_L_MEMORY&amp;quot;&amp;#41;;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; int nOffense&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;= tacAI.nOffense;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; int nCompassion&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;= tacAI.nCompassion;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; int nMagic&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;= tacAI.nMagic;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; int nMagicOld&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;= tacAI.nMagicOld;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;int nStealth&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;= tacAI.nStealth;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;int bScaredOfSilence&amp;nbsp; &amp;nbsp;= tacAI.bScaredOfSilence;&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;int bTacticChosen&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;= tacAI.bTacticChosen;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;// tend toward stealthy if wounded
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;if &amp;#40;GetHPPercentage&amp;#40;&amp;#41;&amp;lt;50&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;nStealth += 10;&amp;nbsp; &amp;nbsp;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp;// Racial adjustments
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; if &amp;#40;GetRacialType&amp;#40;OBJECT_SELF&amp;#41; == RACIAL_TYPE_UNDEAD 
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;amp;&amp;amp; nCompassion &amp;gt; 40 
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;amp;&amp;amp; GetHPPercentage&amp;#40;&amp;#41; &amp;lt; 75&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;#123;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; nCompassion = 0;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;// random adjustments&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; nOffense &amp;nbsp; &amp;nbsp;= Random&amp;#40;10&amp;#41; + nOffense;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; nMagic &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;= Random&amp;#40;10&amp;#41; + nMagic;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; nCompassion = Random&amp;#40;10&amp;#41; + nCompassion;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;// Bahavior variable adjustments
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; nMagic &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;= nMagic + AdjustBehaviorVariable&amp;#40;nMagic, &amp;quot;X2_L_BEH_MAGIC&amp;quot;&amp;#41;;&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; nOffense &amp;nbsp; &amp;nbsp;= nOffense + AdjustBehaviorVariable&amp;#40;nOffense, &amp;quot;X2_L_BEH_OFFENSE&amp;quot;&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; nCompassion = nCompassion + AdjustBehaviorVariable&amp;#40;nCompassion, &amp;quot;X2_L_BEH_COMPASSION&amp;quot;&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;// feat adjustments
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; if &amp;#40;GetIsObjectValid&amp;#40;oIntruder&amp;#41; &amp;amp;&amp;amp; !GetHasFeat&amp;#40;FEAT_COMBAT_CASTING&amp;#41;&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if &amp;#40;fDistanceToIntruder &amp;lt;= 5.f&amp;#41; 
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; nOffense = nOffense + 20;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; nMagic = nMagic - 20;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;// casting mode adjustments
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; if &amp;#40;iCastingMode!=2 &amp;amp;&amp;amp; fDistanceToIntruder &amp;gt; 2.5f&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; nMagic = nMagic + 15;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;// Intruder stats adjustments&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; nMagic = nMagic + GetHitDice&amp;#40;oIntruder&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;// previous choices adjustments&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; if &amp;#40;&amp;#40;nPreviousMemory == chooseTactics_MEMORY_DEFENSE_OTHERS&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; || &amp;#40;nPreviousMemory == chooseTactics_MEMORY_DEFENSE_SELF&amp;#41;&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; nOffense = nOffense + Random&amp;#40;40&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;// remember magic score at this point.
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;nMagicOld = nMagic;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;// adjustments if incapable of casting
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; if &amp;#40;GetHasFeatEffect&amp;#40;FEAT_BARBARIAN_RAGE&amp;#41; 
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;|| GetShouldNotCastSpellsBecauseofArmor&amp;#40;OBJECT_SELF, nClass&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; || GetLocalInt&amp;#40;OBJECT_SELF, &amp;quot;X2_L_STOPCASTING&amp;quot;&amp;#41; == 10 
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;|| GetHasFeatEffect&amp;#40;FEAT_FRENZY_1&amp;#41; 
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;|| GetHasSpellEffect&amp;#40;SPELL_TENSERS_TRANSFORMATION&amp;#41; 
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;|| GetHasSpellEffect&amp;#40;SPELL_TRUE_STRIKE&amp;#41;&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;nCompassion = 0;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; nMagic = 0;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;// polymorphed adjustments for casting
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;// AFW-OEI 07/12/2007&amp;#58; Don't unpolymorph if you're polymorph locked
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;if &amp;#40;GetHasEffect&amp;#40;EFFECT_TYPE_POLYMORPH&amp;#41;&amp;nbsp; &amp;nbsp;&amp;amp;&amp;amp; !GetPolymorphLocked&amp;#40;OBJECT_SELF&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;amp;&amp;amp; &amp;#40;!GetHasFeat&amp;#40;FEAT_NATURAL_SPELL, OBJECT_SELF, TRUE&amp;#41; || !GetHasEffect&amp;#40;EFFECT_TYPE_WILDSHAPE&amp;#41;&amp;#41;&amp;#41; 
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;int unpoly = GetLocalInt&amp;#40;OBJECT_SELF, EVENFLW_AI_UNPOLY&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;if&amp;#40;!unpoly&amp;#41; 
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;SetLocalInt&amp;#40;OBJECT_SELF, EVENFLW_AI_UNPOLY, 1&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;DelayCommand&amp;#40;RoundsToSeconds&amp;#40;5&amp;#41;, SetLocalInt&amp;#40;OBJECT_SELF, EVENFLW_AI_UNPOLY, 2&amp;#41;&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;if&amp;#40;unpoly==2 &amp;amp;&amp;amp; d6&amp;#40;&amp;#41;==1&amp;#41; 
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;effect eff = GetFirstEffect&amp;#40;OBJECT_SELF&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;while &amp;#40;GetIsEffectValid&amp;#40;eff&amp;#41;&amp;#41; 
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;if&amp;#40;GetEffectType&amp;#40;eff&amp;#41;==EFFECT_TYPE_POLYMORPH&amp;#41; 
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;RemoveEffect&amp;#40;OBJECT_SELF, eff&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;eff=GetNextEffect&amp;#40;OBJECT_SELF&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;#125; 
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;else 
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;nMagic=0;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;#125; 
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;else 
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;DeleteLocalInt&amp;#40;OBJECT_SELF, EVENFLW_AI_UNPOLY&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;// silence
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;if&amp;#40;isSilenced&amp;#41; 
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;if &amp;#40;GetLocalInt&amp;#40;OBJECT_SELF, EVENFLW_NOT_SILENCE_SCARED&amp;#41; 
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;|| GetLocalInt&amp;#40;OBJECT_SELF, EVENFLW_SILENCE&amp;#41;&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;bScaredOfSilence = FALSE;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;#125; 
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;else 
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;DeleteLocalInt&amp;#40;OBJECT_SELF, EVENFLW_NOT_SILENCE_SCARED&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;DeleteLocalInt&amp;#40;OBJECT_SELF, EVENFLW_SILENCE&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; int isInvis = InvisibleTrue&amp;#40;OBJECT_SELF&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; if &amp;#40;!GetObjectSeen&amp;#40;OBJECT_SELF, oIntruder&amp;#41; 
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;amp;&amp;amp; isInvis == TRUE 
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;amp;&amp;amp; nMagic &amp;gt; 0 
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;amp;&amp;amp; !isSilenced&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if &amp;#40;nStealth==100 || GetActionMode&amp;#40;OBJECT_SELF, ACTION_MODE_STEALTH&amp;#41; == TRUE&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; nOffense = 100; // * if in stealth attempt sneak attacks
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125; 
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;else if&amp;#40;d4&amp;#40;&amp;#41;!=1&amp;#41; 
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; nOffense = 7;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if &amp;#40;nMagic &amp;lt; 51&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;#123; 
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;nMagic += 10;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;#125;&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;nCompassion += d10&amp;#40;&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;if &amp;#40;GetHPPercentage&amp;#40;&amp;#41; &amp;lt; 80&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if&amp;#40;TalentHealingSelf&amp;#40;TRUE&amp;#41; == TRUE&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;bTacticChosen = TRUE;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;#125;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#125; 
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;else
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;#123; 
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;if &amp;#40;&amp;#40;nStealth==100 || &amp;#40;!isSilenced &amp;amp;&amp;amp; &amp;#40;nStealth&amp;gt;=Random&amp;#40;100&amp;#41;&amp;#41;&amp;#41;&amp;#41; 
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;amp;&amp;amp; InvisibleBecome&amp;#40;OBJECT_SELF, isInvis&amp;#41; == TRUE&amp;#41; 
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;bTacticChosen = TRUE;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;#125;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;return &amp;#40;CreateTactics&amp;#40;nOffense, nCompassion, nMagic, nMagicOld, nStealth, bScaredOfSilence, bTacticChosen&amp;#41;&amp;#41;;
&lt;br /&gt;
&amp;#125;
&lt;br /&gt;

&lt;br /&gt;

&lt;br /&gt;
int DetermineActionFromTactics&amp;#40;struct rTactics tacAI, object oIntruder, float fDistanceToIntruder, int nClass, int iCastingMode, int isSilenced, int bNoFeats&amp;#41;
&lt;br /&gt;
&amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; int nOffense&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;= tacAI.nOffense;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; int nCompassion&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;= tacAI.nCompassion;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; int nMagic&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;= tacAI.nMagic;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; int nMagicOld&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;= tacAI.nMagicOld;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;int nStealth&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;= tacAI.nStealth;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;int bScaredOfSilence&amp;nbsp; &amp;nbsp;= tacAI.bScaredOfSilence;&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;int bTacticChosen&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;= tacAI.bTacticChosen;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;int iNumMeleeAttackers&amp;nbsp; &amp;nbsp;=GetNumberOfMeleeAttackers&amp;#40;&amp;#41;;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; if &amp;#40;nOffense &amp;lt;= 5 
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;|| isSilenced 
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;amp;&amp;amp; nMagic&amp;gt;50 
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;amp;&amp;amp; bScaredOfSilence 
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;amp;&amp;amp; GetIsObjectValid&amp;#40;GetLocalObject&amp;#40;OBJECT_SELF, EVENFLW_SILENCE&amp;#41;&amp;#41;&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;if &amp;#40;bScaredOfSilence&amp;#41; 
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;ActionMoveAwayFromObject&amp;#40;GetLocalObject&amp;#40;OBJECT_SELF, EVENFLW_SILENCE&amp;#41;, TRUE, 7.0f&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;DelayCommand&amp;#40;3.0f, DetermineCombatRound&amp;#40;oIntruder&amp;#41;&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;return 99;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125; 
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;else
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;if &amp;#40;TalentFlee&amp;#40;oIntruder&amp;#41; == TRUE&amp;#41; 
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;return 99;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;#125;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;if&amp;#40;oIntruder==OBJECT_SELF&amp;#41; 
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;nOffense = 0;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;SetLocalInt&amp;#40;OBJECT_SELF, EVENFLW_NUM_MELEE, iNumMeleeAttackers&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;if&amp;#40;!GetLocalInt&amp;#40;OBJECT_SELF, N2_COMBAT_MODE_USE_DISABLED&amp;#41;&amp;#41; 
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;if &amp;#40;&amp;#40;fDistanceToIntruder &amp;lt; 5.0 || iNumMeleeAttackers&amp;#41; &amp;amp;&amp;amp; &amp;#40;nMagic&amp;gt;50 || nCompassion&amp;gt;50&amp;#41; &amp;amp;&amp;amp; &amp;#40;GetLastGenericSpellCast&amp;#40;&amp;#41; != 0&amp;#41;&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;SetActionMode&amp;#40;OBJECT_SELF, ACTION_MODE_DEFENSIVE_CAST, TRUE&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;InitializeSeed&amp;#40;iCastingMode, oIntruder&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;if&amp;#40;CheckNonOffensiveMagic&amp;#40;oIntruder, nOffense, nCompassion, nMagic, iCastingMode&amp;#41;&amp;#41; return 99;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;if&amp;#40;oIntruder==OBJECT_SELF&amp;#41; return 1;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; if &amp;#40;nMagic &amp;gt; 50&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; SetLocalInt&amp;#40;OBJECT_SELF, &amp;quot;NW_L_MEMORY&amp;quot;, chooseTactics_MEMORY_OFFENSE_SPELL&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if &amp;#40;!bNoFeats &amp;amp;&amp;amp; TalentUseTurning&amp;#40;oIntruder&amp;#41; == TRUE&amp;#41; return 99;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;if&amp;#40;TalentDebuff&amp;#40;oIntruder&amp;#41;&amp;#41; return 99;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;if&amp;#40;nClass == CLASS_TYPE_WARLOCK&amp;#41; if&amp;#40;TalentWarlockSpellAttack&amp;#40;oIntruder&amp;#41;&amp;#41; return 99;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;if&amp;#40;GetLocalInt&amp;#40;OBJECT_SELF, EVENFLW_AI_CLOSE&amp;#41;&amp;#41; 
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if&amp;#40;TalentMeleeAttacked&amp;#40;oIntruder, iNumMeleeAttackers&amp;#41; == TRUE&amp;#41; return 99;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if&amp;#40;TalentRangedEnemies&amp;#40;oIntruder&amp;#41; == TRUE&amp;#41; return 99;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;#125; 
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;else 
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if&amp;#40;TalentRangedEnemies&amp;#40;oIntruder&amp;#41; == TRUE&amp;#41; return 99;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;if&amp;#40;!GetLocalInt&amp;#40;OBJECT_SELF, N2_COMBAT_MODE_USE_DISABLED&amp;#41; &amp;amp;&amp;amp; &amp;#40;GetLastGenericSpellCast&amp;#40;&amp;#41; != 0&amp;#41;&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;SetActionMode&amp;#40;OBJECT_SELF, ACTION_MODE_DEFENSIVE_CAST, TRUE&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;if&amp;#40;TalentMeleeAttacked&amp;#40;oIntruder, 1&amp;#41; == TRUE&amp;#41; return 99;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;if &amp;#40;nOffense&amp;gt;50 
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;amp;&amp;amp; nMagic&amp;gt;50 
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;amp;&amp;amp; d2&amp;#40;&amp;#41;!=1&amp;#41; 
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;if&amp;#40;CheckNonOffensiveMagic&amp;#40;oIntruder, 10, 0, nMagic, iCastingMode&amp;#41;&amp;#41; return 99;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;if&amp;#40;nMagic&amp;gt;50&amp;#41; 
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;int lastditch=TalentLastDitch&amp;#40;&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;if&amp;#40;lastditch==TRUE&amp;#41; return 99;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;if&amp;#40;!lastditch&amp;#41; 
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;if&amp;#40;GetLevelByClass&amp;#40;CLASS_TYPE_WARLOCK&amp;#41; &amp;amp;&amp;amp; TalentWarlockSpellAttack&amp;#40;oIntruder&amp;#41;&amp;#41; return 99;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;if&amp;#40;TalentCantrip&amp;#40;oIntruder&amp;#41;&amp;#41; return 99;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;if&amp;#40;nMagic==0 &amp;amp;&amp;amp; nMagicOld&amp;gt;50&amp;#41; 
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;if&amp;#40;!&amp;#40;GetLocalInt&amp;#40;OBJECT_SELF, N2_TALENT_EXCLUDE&amp;#41; &amp;amp; TALENT_EXCLUDE_ITEM&amp;#41; 
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;amp;&amp;amp; TalentBuffSelf&amp;#40;&amp;#41; == TRUE&amp;#41; 
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;#123;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;return 99;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;#125;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;if&amp;#40;nMagic&amp;gt;50&amp;#41; 
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;SetLocalInt&amp;#40;OBJECT_SELF, EVENFLW_NOT_SILENCE_SCARED, 1&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; SetLocalInt&amp;#40;OBJECT_SELF, &amp;quot;NW_L_MEMORY&amp;quot;, chooseTactics_MEMORY_OFFENSE_MELEE&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;if &amp;#40;!bNoFeats&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;amp;&amp;amp; Random&amp;#40;12&amp;#41; == 0&amp;nbsp; &amp;nbsp;// we only want to do this occasionally
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;amp;&amp;amp; GetMelee&amp;#40;&amp;#41; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;amp;&amp;amp; TalentKnockdown&amp;#40;oIntruder&amp;#41;==TRUE &amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;ActionAttack&amp;#40;oIntruder&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;return 99;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; if &amp;#40;TryKiDamage&amp;#40;oIntruder&amp;#41; == TRUE&amp;#41; return 99;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; if &amp;#40;TalentSneakAttack&amp;#40;&amp;#41; == TRUE&amp;#41; return 99;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; if &amp;#40;TalentDragonCombat&amp;#40;oIntruder&amp;#41;&amp;#41; &amp;#123;return 99;&amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; if &amp;#40;TalentMeleeAttack&amp;#40;oIntruder&amp;#41; == TRUE&amp;#41; return 99;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp;return 1;&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;#125;
&lt;br /&gt;

&lt;br /&gt;

&lt;br /&gt;
int chooseTactics&amp;#40;object oIntruder&amp;#41;
&lt;br /&gt;
&amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;if&amp;#40;TalentHealingSelf&amp;#40;&amp;#41; == TRUE&amp;#41; return 99;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; if &amp;#40;SpecialTactics&amp;#40;oIntruder&amp;#41;&amp;#41; return 99;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;int iExcludeFlag &amp;nbsp; &amp;nbsp;= GetLocalInt&amp;#40;OBJECT_SELF, N2_TALENT_EXCLUDE&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;int bNoFeats &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;= iExcludeFlag &amp;amp; TALENT_EXCLUDE_ABILITY;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; int nClass &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;= DetermineClassToUse&amp;#40;&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;float fDistanceToIntruder = GetDistanceToObject&amp;#40;oIntruder&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;int iCastingMode&amp;nbsp; &amp;nbsp;= GetCastingMode&amp;#40;GetHPPercentage&amp;#40;&amp;#41;&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;int isSilenced&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;= GetHasEffect&amp;#40;EFFECT_TYPE_SILENCE&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;// tactics vars - base values
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; int nOffense &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;= 40;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; int nCompassion&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;= 25;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; int nMagic &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;= 55;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; int nMagicOld&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;= 0;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;int nStealth&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;= 30;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;int bScaredOfSilence= FALSE;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;struct rTactics tacAI = CreateTactics&amp;#40;nOffense, nCompassion, nMagic, nMagicOld, nStealth, bScaredOfSilence, FALSE&amp;#41;;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;// Stuff chosen here will short circuit all the tactics calculations &amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;if &amp;#40;TryClassTactic&amp;#40;oIntruder, nClass, bNoFeats&amp;#41; == TRUE&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;return 99;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp;if&amp;#40;GetCreatureSize&amp;#40;oIntruder&amp;#41; &amp;gt; 4&amp;#41; 
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;fDistanceToIntruder -= 10.5f;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp;tacAI = CalculateTacticsByClass&amp;#40;tacAI, oIntruder, nClass, iCastingMode&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;if &amp;#40;tacAI.bTacticChosen == TRUE&amp;#41; return 99;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp;tacAI = CalculateTactics&amp;#40;tacAI, oIntruder, fDistanceToIntruder, nClass, iCastingMode, isSilenced&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;if &amp;#40;tacAI.bTacticChosen == TRUE&amp;#41; return 99;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp;return &amp;#40;DetermineActionFromTactics&amp;#40;tacAI, oIntruder, fDistanceToIntruder, nClass, iCastingMode, isSilenced, bNoFeats&amp;#41;&amp;#41;;
&lt;br /&gt;

&lt;br /&gt;
&amp;#125; // * END of choosetactics
&lt;br /&gt;

&lt;br /&gt;
/* void main&amp;#40;&amp;#41; &amp;#123;&amp;#125; /* */
&lt;br /&gt;
&amp;nbsp;
&lt;br /&gt;
&amp;nbsp;&lt;/td&gt;	&lt;/tr&gt;&lt;/table&gt;</description>
	  <pubDate>Mon, 21 Jun 2010 11:45:29 +0200</pubDate>
	  <author>Tink</author>
	</item>
	<item>
	  <title>Posté par Tink le 21/06/2010  10:46</title>
	  <link>http://www.nwn2.fr/forum/viewtopic.php?p=18956#18956</link>
	  <guid></guid>
	  <description>&lt;span style=&quot;font-weight: bold&quot;&gt;NW_I0_PLOT&lt;/span&gt;
&lt;br /&gt;

&lt;br /&gt;
       &lt;table width=&quot;90%&quot; cellspacing=&quot;1&quot; cellpadding=&quot;3&quot; border=&quot;0&quot; align=&quot;center&quot;&gt;&lt;tr&gt; 	  &lt;td&gt;&lt;span class=&quot;mep-p-g&quot;&gt;Code:&lt;/span&gt;&lt;/td&gt;	&lt;/tr&gt;	&lt;tr&gt;	  &lt;td class=&quot;code&quot;&gt;//&amp;#58;&amp;#58;///////////////////////////////////////////////
&lt;br /&gt;
//&amp;#58;&amp;#58;
&lt;br /&gt;
//&amp;#58;&amp;#58; Designer Include File
&lt;br /&gt;
//&amp;#58;&amp;#58;
&lt;br /&gt;
//&amp;#58;&amp;#58; NW_I0_PLOT.nss
&lt;br /&gt;
//&amp;#58;&amp;#58;
&lt;br /&gt;
//&amp;#58;&amp;#58; Copyright &amp;#40;c&amp;#41; 2001 Bioware Corp.
&lt;br /&gt;
//&amp;#58;&amp;#58;
&lt;br /&gt;
//&amp;#58;&amp;#58;
&lt;br /&gt;
//&amp;#58;&amp;#58;//////////////////////////////////////////////
&lt;br /&gt;
//&amp;#58;&amp;#58;
&lt;br /&gt;
//&amp;#58;&amp;#58;
&lt;br /&gt;
//&amp;#58;&amp;#58; This is a sample of design wrote
&lt;br /&gt;
//&amp;#58;&amp;#58; functions that may need inclusion in multiple
&lt;br /&gt;
//&amp;#58;&amp;#58; modules.
&lt;br /&gt;
//&amp;#58;&amp;#58;
&lt;br /&gt;
//&amp;#58;&amp;#58;//////////////////////////////////////////////
&lt;br /&gt;
//&amp;#58;&amp;#58;
&lt;br /&gt;
//&amp;#58;&amp;#58; Created By&amp;#58; Brent Knowles
&lt;br /&gt;
//&amp;#58;&amp;#58; Created On&amp;#58; February 12, 2001
&lt;br /&gt;
//&amp;#58;&amp;#58; Updated On&amp;#58; August, 14, 2003 &amp;#40;Georg&amp;#41; - Fixed AutoDC, Added const statement to constants
&lt;br /&gt;
//&amp;#58;&amp;#58;//////////////////////////////////////////////
&lt;br /&gt;
// ChazM 6/27/06 - updated string refs for gplotAppraiseOpenStore&amp;#40;&amp;#41;
&lt;br /&gt;

&lt;br /&gt;
const int DC_EASY = 0;
&lt;br /&gt;
const int DC_MEDIUM = 1;
&lt;br /&gt;
const int DC_HARD = 2;
&lt;br /&gt;
const int DC_SUPERIOR = 3;
&lt;br /&gt;
const int DC_MASTER = 4;
&lt;br /&gt;
const int DC_LEGENDARY = 5;
&lt;br /&gt;
const int DC_EPIC = 6;
&lt;br /&gt;
// * this is used by some of the template scripts
&lt;br /&gt;
// * 100 - this number is the chance of that dialog
&lt;br /&gt;
// * appearing
&lt;br /&gt;
const int G_CLASSCHANCE = 70;
&lt;br /&gt;

&lt;br /&gt;
//Experience Point Rewards constants used in the 'des_xp_rewards' 2da
&lt;br /&gt;
const int XP_VERY_LOW = 1;&amp;nbsp; &amp;nbsp; //50 xp
&lt;br /&gt;
const int XP_LOW = 2;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;//100 xp
&lt;br /&gt;
const int XP_MEDIUM_LOW = 3;&amp;nbsp; //150 xp
&lt;br /&gt;
const int XP_MEDIUM = 4;&amp;nbsp; &amp;nbsp; &amp;nbsp; //250 xp
&lt;br /&gt;
const int XP_MEDIUM_HIGH = 5; //500 xp
&lt;br /&gt;
const int XP_HIGH = 6;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //1000 xp
&lt;br /&gt;
const int XP_VERY_HIGH = 7;&amp;nbsp; &amp;nbsp;//2000 xp
&lt;br /&gt;
const int XP_EPIC = 8;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //5000 xp
&lt;br /&gt;

&lt;br /&gt;

&lt;br /&gt;
// * FUNCTION DECLARATIONS
&lt;br /&gt;

&lt;br /&gt;
// * returns true if the player can afford to lose the indicated amount of XP without losing&amp;nbsp; a level
&lt;br /&gt;
int plotCanRemoveXP&amp;#40;object oPC, int nPenalty&amp;#41;;
&lt;br /&gt;

&lt;br /&gt;
int GetCanCastHealingSpells&amp;#40;object oPC&amp;#41; ;
&lt;br /&gt;
int DoOnce&amp;#40;&amp;#41;;
&lt;br /&gt;
void DebugSpeak&amp;#40;string s&amp;#41;;
&lt;br /&gt;
object GetMyMaster&amp;#40;&amp;#41;;
&lt;br /&gt;
int IsRecall&amp;#40;&amp;#41;;
&lt;br /&gt;
void DimensionHop&amp;#40;object oTarget&amp;#41;;
&lt;br /&gt;
int CanSeePlayer&amp;#40;&amp;#41;;
&lt;br /&gt;
void EscapeArea&amp;#40;int bRun = TRUE, string sTag=&amp;quot;NW_EXIT&amp;quot;&amp;#41;;
&lt;br /&gt;
int HasItem&amp;#40;object oCreature, string s&amp;#41;;
&lt;br /&gt;
void TakeGold&amp;#40;int nAmount, object oGoldHolder, int bDestroy=TRUE&amp;#41;;
&lt;br /&gt;
object GetNearestPC&amp;#40;object oTarget=OBJECT_SELF, int bOwnedCharacter=TRUE, int bIsAlive=TRUE, int nNth=1&amp;#41;;
&lt;br /&gt;
void SetIsEnemy&amp;#40;object oTarget&amp;#41;;
&lt;br /&gt;

&lt;br /&gt;
// Provide a scaled skill check DC based on the DC_* constant passed in
&lt;br /&gt;
// DC&amp;nbsp; &amp;nbsp; &amp;nbsp; -&amp;nbsp; DC_EASY&amp;nbsp; DC_MEDIUM&amp;nbsp; DC_HARD&amp;nbsp; DC_SUPERIOR&amp;nbsp; DC_MASTER&amp;nbsp; DC_LEGENDARY&amp;nbsp; DC_EPIC
&lt;br /&gt;
// nSkill&amp;nbsp; - SKILL_* constant
&lt;br /&gt;
// oTarget - creature that is going to perform the check;
&lt;br /&gt;
int AutoDC&amp;#40;int DC, int nSkill, object oTarget&amp;#41;;
&lt;br /&gt;
void AutoAlignG&amp;#40;int DC, object oTarget&amp;#41;;
&lt;br /&gt;
void AutoAlignE&amp;#40;int DC, object oTarget&amp;#41;;
&lt;br /&gt;
void DoGiveXP&amp;#40;string sJournalTag, int nPercentage, object oTarget, int QuestAlignment=ALIGNMENT_NEUTRAL&amp;#41;;
&lt;br /&gt;
void RewardXP&amp;#40;string sJournalTag, int nPercentage, object oTarget, int QuestAlignment=ALIGNMENT_NEUTRAL, int bAllParty=TRUE&amp;#41;;
&lt;br /&gt;
void RewardGP&amp;#40;int GP, object oTarget,int bAllParty=TRUE&amp;#41;;
&lt;br /&gt;
int CheckCharismaMiddle&amp;#40;&amp;#41;;
&lt;br /&gt;
int CheckCharismaNormal&amp;#40;&amp;#41;;
&lt;br /&gt;
int CheckCharismaLow&amp;#40;&amp;#41;;
&lt;br /&gt;
int CheckCharismaHigh&amp;#40;&amp;#41;;
&lt;br /&gt;
int CheckIntelligenceLow&amp;#40;&amp;#41;;
&lt;br /&gt;
int CheckIntelligenceNormal&amp;#40;&amp;#41;;
&lt;br /&gt;
int CheckIntelligenceNormal&amp;#40;&amp;#41;;
&lt;br /&gt;
int CheckIntelligenceHigh&amp;#40;&amp;#41;;
&lt;br /&gt;
int CheckWisdomHigh&amp;#40;&amp;#41;;
&lt;br /&gt;
// Return the wisdom of oTarget
&lt;br /&gt;
int GetWisdom&amp;#40;object oTarget&amp;#41;;
&lt;br /&gt;
// Return the Intelligence of the Target
&lt;br /&gt;
int GetIntelligence&amp;#40;object oTarget&amp;#41;;
&lt;br /&gt;
// Return the Charisma of the Target
&lt;br /&gt;
int GetCharisma&amp;#40;object oTarget&amp;#41;;
&lt;br /&gt;
// Return the numer of items oTarget possesses from type sItem &amp;#40;Tag&amp;#41;
&lt;br /&gt;
int GetNumItems&amp;#40;object oTarget,string sItem&amp;#41;;
&lt;br /&gt;
// Gives the item with the ResRef sItem to creature oTarget nNumItems times
&lt;br /&gt;
void GiveNumItems&amp;#40;object oTarget,string sItem,int nNumItems&amp;#41;;
&lt;br /&gt;
// Remove nNumItems Items of Type sItem &amp;#40;Tag&amp;#41; from oTarget
&lt;br /&gt;
void TakeNumItems&amp;#40;object oTarget,string sItem,int nNumItems&amp;#41;;
&lt;br /&gt;
// * plays the correct character theme
&lt;br /&gt;
// * assumes OBJECT_SELF is in the area
&lt;br /&gt;
void PlayCharacterTheme&amp;#40;int nTheme&amp;#41;;
&lt;br /&gt;
// * plays the old theme for the area
&lt;br /&gt;
// * assumes OBJECT_SELF is in the area
&lt;br /&gt;
void PlayOldTheme&amp;#40;&amp;#41;;
&lt;br /&gt;
int GetPLocalInt&amp;#40;object oPC,string sLocalName&amp;#41;;
&lt;br /&gt;
void SetPLocalInt&amp;#40;object oPC,string sLocalName, int nValue&amp;#41;;
&lt;br /&gt;
// * removes all negative effects
&lt;br /&gt;
void RemoveEffects&amp;#40;object oDead&amp;#41;;
&lt;br /&gt;
// * starts store using appraise skill
&lt;br /&gt;
void gplotAppraiseOpenStore&amp;#40;object oStore, object oPC, int nBonusMarkUp = 0, int nBonusMarkDown = 0&amp;#41;;
&lt;br /&gt;
// * starts store with favorable appraise check
&lt;br /&gt;
void gplotAppraiseFavOpenStore&amp;#40;object oStore, object oPC, int nBonusMarkUp = 0, int nBonusMarkDown = 0&amp;#41;;
&lt;br /&gt;
//Do a DC check and modify the skill by the Target's Strength modifier
&lt;br /&gt;
int CheckDCStr&amp;#40;int DC, int nSkill, object oTarget&amp;#41;;
&lt;br /&gt;
//Check to see if target is PC and not DM
&lt;br /&gt;
int GetIsPlayerCharacter&amp;#40;object oTarget&amp;#41;;
&lt;br /&gt;
//Reward Experience based on an entry in the des_xp_rewards 2da file
&lt;br /&gt;
void Reward_2daXP&amp;#40;object oPC, int nRow, int bAllParty = TRUE, int nPercentage = 100&amp;#41;;
&lt;br /&gt;
//Both speak a string ref as well as play the associate sound file
&lt;br /&gt;
void PlaySpeakSoundByStrRef&amp;#40;int nStrRef&amp;#41;;
&lt;br /&gt;

&lt;br /&gt;

&lt;br /&gt;
// * returns a value that will be subtracted from the
&lt;br /&gt;
// * oTarget's DC to resist APpraise or Persuasion
&lt;br /&gt;
int GetNPCEasyMark&amp;#40;object oTarget&amp;#41;
&lt;br /&gt;
&amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; int nCharmMod = 0;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; if &amp;#40;GetHasSpellEffect&amp;#40;SPELL_CHARM_PERSON, oTarget&amp;#41;&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; nCharmMod = 10;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; else
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; if &amp;#40;GetHasSpellEffect&amp;#40;SPELL_CHARM_MONSTER, oTarget&amp;#41;&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; nCharmMod = 10;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; else
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; if &amp;#40;GetHasSpellEffect&amp;#40;SPELL_CHARM_PERSON_OR_ANIMAL, oTarget&amp;#41;&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; nCharmMod = 10;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; else if &amp;#40;GetHasSpellEffect&amp;#40;SPELL_MASS_CHARM, oTarget&amp;#41;&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; nCharmMod = 15;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; else if &amp;#40;GetHasSpellEffect&amp;#40;SPELL_DOMINATE_MONSTER, oTarget&amp;#41;&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; nCharmMod = 20;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; else if &amp;#40;GetHasSpellEffect&amp;#40;SPELL_DOMINATE_ANIMAL, oTarget&amp;#41;&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; nCharmMod = 20;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; else if &amp;#40;GetHasSpellEffect&amp;#40;SPELL_DOMINATE_PERSON, oTarget&amp;#41;&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; nCharmMod = 20;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; return nCharmMod;
&lt;br /&gt;
&amp;#125;
&lt;br /&gt;

&lt;br /&gt;
//&amp;#58;&amp;#58;///////////////////////////////////////////////
&lt;br /&gt;
//&amp;#58;&amp;#58; gplotAppraiseOpenStore
&lt;br /&gt;
//&amp;#58;&amp;#58; Copyright &amp;#40;c&amp;#41; 2001 Bioware Corp.
&lt;br /&gt;
//&amp;#58;&amp;#58;//////////////////////////////////////////////
&lt;br /&gt;
/*
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; Opens a store, modifying the store prices
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; by the Appraise skill of the PCspeaker
&lt;br /&gt;

&lt;br /&gt;
*/
&lt;br /&gt;
//&amp;#58;&amp;#58;//////////////////////////////////////////////
&lt;br /&gt;
//&amp;#58;&amp;#58; Created By&amp;#58;
&lt;br /&gt;
//&amp;#58;&amp;#58; Created On&amp;#58;
&lt;br /&gt;
//&amp;#58;&amp;#58; 2003-05-26&amp;#58; Updated from XP1 sources - Georg
&lt;br /&gt;
//&amp;#58;&amp;#58;//////////////////////////////////////////////
&lt;br /&gt;
void gplotAppraiseOpenStore&amp;#40;object oStore, object oPC, int nBonusMarkUp = 0, int nBonusMarkDown = 0&amp;#41;
&lt;br /&gt;
&amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; int STATE_FAILED = 1;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; int STATE_TIE = 2;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; int STATE_WON = 3;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; string sTag = ObjectToString&amp;#40;OBJECT_SELF&amp;#41;;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; int nPlayerSkillRank = GetSkillRank&amp;#40;SKILL_APPRAISE, oPC&amp;#41;;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; int nNPCSkillRank = GetSkillRank&amp;#40;SKILL_APPRAISE, OBJECT_SELF&amp;#41; - GetNPCEasyMark&amp;#40;OBJECT_SELF&amp;#41;;
&lt;br /&gt;

&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; if &amp;#40;nNPCSkillRank &amp;lt; 1 &amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; nNPCSkillRank = 1;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; int nAdjust = 0;
&lt;br /&gt;

&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; /*
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; New System&amp;#58;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; An opposed skill check &amp;#40;a d10 roll instead&amp;#41;. Your appraise skill versus the shopkeepers appraise skill.
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Possible Results&amp;#58;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Percentage Rebate/Penalty&amp;#58; The 'difference'
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Feedback&amp;#58; &amp;#91;Appraise Skill&amp;#93;&amp;#58; Merchant's reaction is unfavorable.
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#91;Appraise Skill&amp;#93;&amp;#58; Merchant's reaction is neutral.
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#91;Appraise Skill&amp;#93;&amp;#58; Merchant's reaction is favorable.
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Additional&amp;#58; Remember last reaction for this particular skill.
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; When the player gets a new skill rank in this skill they'll get a
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; reroll against this merchant.
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; */
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; int nState = 0;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; int nPreviousRank = GetLocalInt&amp;#40;oPC, &amp;quot;X0_APPRAISERANK&amp;quot;+ sTag&amp;#41;;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; // * if the player's rank has improved, let them have another appraise check
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; // * against this merchant
&lt;br /&gt;

&lt;br /&gt;

&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; if &amp;#40; &amp;#40;nPlayerSkillRank &amp;gt; nPreviousRank&amp;#41; || !GetLocalInt&amp;#40;oPC, &amp;quot;X0_APPRAISEVISITED&amp;quot;+sTag&amp;#41; &amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;SetLocalInt&amp;#40;oPC, &amp;quot;X0_APPRAISERANK&amp;quot;+ sTag, nPlayerSkillRank&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;SetLocalInt&amp;#40;oPC, &amp;quot;X0_APPRAISEVISITED&amp;quot;+sTag, 1&amp;#41;;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; nPlayerSkillRank = nPlayerSkillRank + d10&amp;#40;&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; nNPCSkillRank = nNPCSkillRank + d10&amp;#40;&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; nAdjust = nNPCSkillRank - nPlayerSkillRank; // * determines the level of price modification
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if &amp;#40;nNPCSkillRank &amp;gt; nPlayerSkillRank&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; nState = STATE_FAILED;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; else
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if &amp;#40;nNPCSkillRank &amp;lt; nPlayerSkillRank&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; nState = STATE_WON;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; else
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if &amp;#40;nNPCSkillRank == nPlayerSkillRank&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; nState = STATE_TIE;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; else
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // * recover last reaction
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; nAdjust&amp;nbsp; = GetLocalInt&amp;#40;oPC, &amp;quot;X0_APPRAISEADJUST&amp;quot; + sTag&amp;#41;;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if &amp;#40;nAdjust &amp;gt; 0&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; nState = STATE_FAILED;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; else
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if &amp;#40;nAdjust &amp;lt; 0&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; nState = STATE_WON;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; else
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if &amp;#40;nAdjust == 0&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; nState = STATE_TIE;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; if &amp;#40;nState == STATE_FAILED&amp;nbsp; &amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; FloatingTextStrRefOnCreature&amp;#40;182468, oPC, FALSE&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; else
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; if &amp;#40;nState == STATE_WON&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; FloatingTextStrRefOnCreature&amp;#40;182470, oPC, FALSE&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; else
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; if &amp;#40;nState == STATE_TIE&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; FloatingTextStrRefOnCreature&amp;#40;182469, oPC, FALSE&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; SetLocalInt&amp;#40;oPC, &amp;quot;X0_APPRAISEADJUST&amp;quot;+ sTag, nAdjust&amp;#41;;
&lt;br /&gt;
&amp;nbsp; //&amp;nbsp; SpawnScriptDebugger&amp;#40;&amp;#41;;
&lt;br /&gt;

&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; // * Hard cap of 30% max up or down
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; if &amp;#40;nAdjust &amp;gt; 30&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; nAdjust = 30;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; if &amp;#40;nAdjust &amp;lt; -30&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; nAdjust = -30;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; nBonusMarkUp = nBonusMarkUp + nAdjust;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; nBonusMarkDown = nBonusMarkDown - nAdjust;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; OpenStore&amp;#40;oStore, oPC, nBonusMarkUp, nBonusMarkDown&amp;#41;;
&lt;br /&gt;
&amp;#125;
&lt;br /&gt;

&lt;br /&gt;
//&amp;#58;&amp;#58;///////////////////////////////////////////////
&lt;br /&gt;
//&amp;#58;&amp;#58; gplotAppraiseFavOpenStore
&lt;br /&gt;
//&amp;#58;&amp;#58; Copyright &amp;#40;c&amp;#41; 2001 Bioware Corp.
&lt;br /&gt;
//&amp;#58;&amp;#58;//////////////////////////////////////////////
&lt;br /&gt;
/*
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; Opens a store, modifying the store prices
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; by the Appraise skill of the PCspeaker
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; THIS SCRIPT ALWAYS RESULTS IN A GOOD APPRAISE
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; RESULT
&lt;br /&gt;

&lt;br /&gt;
*/
&lt;br /&gt;
//&amp;#58;&amp;#58;//////////////////////////////////////////////
&lt;br /&gt;
//&amp;#58;&amp;#58; Created By&amp;#58; Keith Warner
&lt;br /&gt;
//&amp;#58;&amp;#58; Created On&amp;#58; Mar 7/03
&lt;br /&gt;
//&amp;#58;&amp;#58; 2003-05-26&amp;#58; Updated from XP1 sources - Georg
&lt;br /&gt;
//&amp;#58;&amp;#58;//////////////////////////////////////////////
&lt;br /&gt;
void gplotAppraiseFavOpenStore&amp;#40;object oStore, object oPC, int nBonusMarkUp = 0, int nBonusMarkDown = 0&amp;#41;
&lt;br /&gt;
&amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; int STATE_WON = 3;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; string sTag = ObjectToString&amp;#40;OBJECT_SELF&amp;#41;;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; int nPlayerSkillRank = GetSkillRank&amp;#40;SKILL_APPRAISE, oPC&amp;#41;;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; int nNPCSkillRank = 0;
&lt;br /&gt;

&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; int nAdjust = 0;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; int nState = STATE_WON;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; int nPreviousRank = GetLocalInt&amp;#40;oPC, &amp;quot;X0_APPRAISERANK&amp;quot;+ sTag&amp;#41;;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; // * if the player's rank has improved, let them have another appraise check
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; // * against this merchant
&lt;br /&gt;

&lt;br /&gt;

&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; if &amp;#40; &amp;#40;nPlayerSkillRank &amp;gt; nPreviousRank&amp;#41; || !GetLocalInt&amp;#40;oPC, &amp;quot;X0_APPRAISEVISITED&amp;quot;+sTag&amp;#41; &amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;SetLocalInt&amp;#40;oPC, &amp;quot;X0_APPRAISERANK&amp;quot;+ sTag, nPlayerSkillRank&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;SetLocalInt&amp;#40;oPC, &amp;quot;X0_APPRAISEVISITED&amp;quot;+sTag, 1&amp;#41;;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; nPlayerSkillRank = nPlayerSkillRank + d10&amp;#40;&amp;#41;;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; nAdjust = nNPCSkillRank - nPlayerSkillRank; // * determines the level of price modification
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; else
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // * recover last reaction
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; nAdjust&amp;nbsp; = GetLocalInt&amp;#40;oPC, &amp;quot;X0_APPRAISEADJUST&amp;quot; + sTag&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; FloatingTextStrRefOnCreature&amp;#40;8965, oPC, FALSE&amp;#41;;
&lt;br /&gt;

&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; SetLocalInt&amp;#40;oPC, &amp;quot;X0_APPRAISEADJUST&amp;quot;+ sTag, nAdjust&amp;#41;;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; // * Hard cap of 30% max up or down
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; if &amp;#40;nAdjust &amp;gt; 30&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; nAdjust = 30;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; if &amp;#40;nAdjust &amp;lt; -30&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; nAdjust = -30;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; nBonusMarkUp = nBonusMarkUp + nAdjust;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; nBonusMarkDown = nBonusMarkDown - nAdjust;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; OpenStore&amp;#40;oStore, oPC, nBonusMarkUp, nBonusMarkDown&amp;#41;;
&lt;br /&gt;
&amp;#125;
&lt;br /&gt;

&lt;br /&gt;

&lt;br /&gt;
// * plays the correct character theme
&lt;br /&gt;
// * assumes OBJECT_SELF is in the area
&lt;br /&gt;
void PlayCharacterTheme&amp;#40;int nTheme&amp;#41;
&lt;br /&gt;
&amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; object oArea =GetArea&amp;#40;OBJECT_SELF&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; int nMusicNight = MusicBackgroundGetNightTrack&amp;#40;oArea&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; int nMusicDay = MusicBackgroundGetDayTrack&amp;#40;oArea&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;// AssignCommand&amp;#40;GetNearestCreature&amp;#40;CREATURE_TYPE_PLAYER_CHAR, PLAYER_CHAR_IS_PC&amp;#41;, SpeakString&amp;#40;IntToString&amp;#40;nMusic&amp;#41;&amp;#41;&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; //* stores the last music track
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; SetLocalInt&amp;#40;oArea, &amp;quot;NW_L_MYLASTTRACKNight&amp;quot;, nMusicNight&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; SetLocalInt&amp;#40;oArea, &amp;quot;NW_L_MYLASTTRACKDay&amp;quot;, nMusicDay&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; MusicBackgroundStop&amp;#40;oArea&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; MusicBackgroundChangeNight&amp;#40;oArea, nTheme&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; MusicBackgroundChangeDay&amp;#40;oArea, nTheme&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; MusicBackgroundPlay&amp;#40;oArea&amp;#41;;
&lt;br /&gt;

&lt;br /&gt;
&amp;#125;
&lt;br /&gt;

&lt;br /&gt;
// * plays the old theme for the area
&lt;br /&gt;
// * assumes OBJECT_SELF is in the area
&lt;br /&gt;
void PlayOldTheme&amp;#40;&amp;#41;
&lt;br /&gt;
&amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; object oArea =GetArea&amp;#40;OBJECT_SELF&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; //* stores the last music track
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; int nMusicNight = GetLocalInt&amp;#40;oArea, &amp;quot;NW_L_MYLASTTRACKNight&amp;quot;&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; int nMusicDay = GetLocalInt&amp;#40;oArea, &amp;quot;NW_L_MYLASTTRACKDay&amp;quot;&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; MusicBackgroundStop&amp;#40;oArea&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; MusicBackgroundChangeNight&amp;#40;oArea, nMusicNight&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; MusicBackgroundChangeDay&amp;#40;oArea, nMusicDay&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; MusicBackgroundPlay&amp;#40;oArea&amp;#41;;
&lt;br /&gt;

&lt;br /&gt;
&amp;#125;
&lt;br /&gt;

&lt;br /&gt;

&lt;br /&gt;
//&amp;nbsp; Returns the adjusted Reaction for the purposes of store pricing.
&lt;br /&gt;
float GetReactionAdjustment&amp;#40;object oTarget&amp;#41;;
&lt;br /&gt;
/*
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; Adjusts all faction member's reputation visa via
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; another faction.&amp;nbsp; Pass in a member from each
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; faction.
&lt;br /&gt;
*/
&lt;br /&gt;
void AdjustFactionReputation&amp;#40;object oTargetCreature, object oMemberOfSourceFaction, int nAdjustment&amp;#41;;
&lt;br /&gt;
/*
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; Makes the person teleport away and look like
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; they are casting a spell.
&lt;br /&gt;
*/
&lt;br /&gt;
void EscapeViaTeleport&amp;#40;object oFleeing&amp;#41;;
&lt;br /&gt;

&lt;br /&gt;
// * FUNCTION DEFINITIONS
&lt;br /&gt;

&lt;br /&gt;

&lt;br /&gt;
int GetCanCastHealingSpells&amp;#40;object oPC&amp;#41;
&lt;br /&gt;
&amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; talent tTalent = GetCreatureTalentBest&amp;#40;TALENT_CATEGORY_BENEFICIAL_HEALING_TOUCH, 20, oPC&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; if &amp;#40;GetIsTalentValid&amp;#40;tTalent&amp;#41; == TRUE&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; return TRUE;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; return FALSE;
&lt;br /&gt;
&amp;#125;
&lt;br /&gt;

&lt;br /&gt;

&lt;br /&gt;
int DoOnce&amp;#40;&amp;#41;
&lt;br /&gt;
&amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; int bResult = FALSE;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; if &amp;#40;GetLocalInt&amp;#40;OBJECT_SELF,&amp;quot;NW_L_DOONCE999&amp;quot;&amp;#41; == 0&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; SetLocalInt&amp;#40;OBJECT_SELF,&amp;quot;NW_L_DOONCE999&amp;quot;,1&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; bResult = TRUE;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; return bResult;
&lt;br /&gt;
&amp;#125;
&lt;br /&gt;

&lt;br /&gt;
void DebugSpeak&amp;#40;string s&amp;#41;
&lt;br /&gt;
&amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; SpeakString&amp;#40;s&amp;#41;;
&lt;br /&gt;
&amp;#125;
&lt;br /&gt;
object GetMyMaster&amp;#40;&amp;#41;
&lt;br /&gt;
&amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; return GetNearestCreature&amp;#40;CREATURE_TYPE_PLAYER_CHAR, PLAYER_CHAR_IS_PC&amp;#41;;
&lt;br /&gt;
&amp;#125;
&lt;br /&gt;

&lt;br /&gt;

&lt;br /&gt;

&lt;br /&gt;
//&amp;#58;&amp;#58;///////////////////////////////////////////////
&lt;br /&gt;
//&amp;#58;&amp;#58; IsRecall
&lt;br /&gt;
//&amp;#58;&amp;#58; Copyright &amp;#40;c&amp;#41; 2001 Bioware Corp.
&lt;br /&gt;
//&amp;#58;&amp;#58;//////////////////////////////////////////////
&lt;br /&gt;
/*
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; Attempts&amp;nbsp; to transport the player
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; back to closest Temple of Tyr using
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; a Recall Stone.
&lt;br /&gt;
*/
&lt;br /&gt;
//&amp;#58;&amp;#58;//////////////////////////////////////////////
&lt;br /&gt;
//&amp;#58;&amp;#58; Created By&amp;#58;
&lt;br /&gt;
//&amp;#58;&amp;#58; Created On&amp;#58;
&lt;br /&gt;
//&amp;#58;&amp;#58;//////////////////////////////////////////////
&lt;br /&gt;
int IsRecall&amp;#40;&amp;#41;
&lt;br /&gt;
&amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; if &amp;#40;GetTag&amp;#40;GetItemActivated&amp;#40;&amp;#41;&amp;#41; == &amp;quot;NW_IT_RECALL&amp;quot;&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;string sAreaTag = GetTag&amp;#40;GetArea&amp;#40;GetItemActivator&amp;#40;&amp;#41;&amp;#41;&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if &amp;#40;/*Chapter 1 Areas*/
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;sAreaTag == &amp;quot;MAP_M1S3B&amp;quot; ||
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;sAreaTag == &amp;quot;Map_M1S4C&amp;quot; ||
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;sAreaTag == &amp;quot;MAP_M1Q6F4&amp;quot; || // Fenthick area in Chapter1e
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;sAreaTag == &amp;quot;Map_M1S4D&amp;quot; ||
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;sAreaTag == &amp;quot;Map_M1S4E&amp;quot; ||
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;sAreaTag == &amp;quot;Map_M1S4F&amp;quot; ||
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/* Chapter 3 and 4 Areas*/
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;sAreaTag == &amp;quot;MAP_M1Q6A&amp;quot; || /*Castle Never*/
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;sAreaTag == &amp;quot;M4Q1D2&amp;quot; /*Final Source Stone level*/ ||
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;sAreaTag == &amp;quot;M4FinalArea&amp;quot; || /*Haedralines area*/
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;sAreaTag == &amp;quot;M3Q1A10&amp;quot; || /*Aarin Gend's Lodge*/
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;sAreaTag == &amp;quot;M3Q3C&amp;quot; || sAreaTag == &amp;quot;M3Q3Ca&amp;quot; ||&amp;nbsp; sAreaTag == &amp;quot;M3Q2G&amp;quot; ||&amp;nbsp; sAreaTag == &amp;quot;M3Q2I&amp;quot; ||
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;sAreaTag == &amp;quot;Map_M2Q2E2&amp;quot; || sAreaTag == &amp;quot;Map_M2Q2G&amp;quot; || sAreaTag == &amp;quot;Map_M2Q3GA&amp;quot; || sAreaTag == &amp;quot;Map_M2Q3GB&amp;quot;&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; AssignCommand&amp;#40;GetItemActivator&amp;#40;&amp;#41;, ActionSpeakStringByStrRef&amp;#40;10611&amp;#41;&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return TRUE;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;else
&lt;br /&gt;
/*&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if &amp;#40;CanAffordIt&amp;#40;&amp;#41; == FALSE&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; AssignCommand&amp;#40;GetItemActivator&amp;#40;&amp;#41;, ActionSpeakStringByStrRef&amp;#40;66200&amp;#41;&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return TRUE;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;else */
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// * May 2002&amp;#58; Checking a global to see if Haedraline is around as well
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if &amp;#40;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; GetLocalInt&amp;#40;GetModule&amp;#40;&amp;#41;,&amp;quot;NW_G_RECALL_HAED&amp;quot;&amp;#41; == 10
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|| GetIsObjectValid&amp;#40;GetNearestObjectByTag&amp;#40;&amp;quot;Haedraline3Q11&amp;quot;, GetItemActivator&amp;#40;&amp;#41;&amp;#41;&amp;#41; == TRUE&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; AssignCommand&amp;#40;GetItemActivator&amp;#40;&amp;#41;, ActionSpeakStringByStrRef&amp;#40;10612&amp;#41;&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return TRUE;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;else
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;object oPortal = GetObjectByTag&amp;#40;&amp;quot;NW_RECALL_PORTAL&amp;quot;&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if &amp;#40;GetIsObjectValid&amp;#40;oPortal&amp;#41; == TRUE&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;SetLocalInt&amp;#40;GetItemActivator&amp;#40;&amp;#41;, &amp;quot;NW_L_USED_RECALL&amp;quot;, 1&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;SetLocalLocation&amp;#40;GetItemActivator&amp;#40;&amp;#41;, &amp;quot;NW_L_LOC_RECALL&amp;quot;, GetLocation&amp;#40;GetItemActivator&amp;#40;&amp;#41;&amp;#41;&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;string sTag =&amp;nbsp; &amp;quot;NW_RECALL_PORTAL&amp;quot;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; object oClicker = GetItemActivator&amp;#40;&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; object oTarget = GetObjectByTag&amp;#40;sTag&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// AssignCommand&amp;#40;GetItemActivator&amp;#40;&amp;#41;, SpeakString&amp;#40;sTag&amp;#41;&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // * if I don't do this, gets stuck in a loop
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // * of casting.
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; AssignCommand&amp;#40;oClicker, ClearAllActions&amp;#40;&amp;#41;&amp;#41;;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; AssignCommand&amp;#40;oClicker, PlaySound&amp;#40;&amp;quot;as_mg_telepout1&amp;quot;&amp;#41;&amp;#41;;
&lt;br /&gt;

&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //SetAreaTransitionBMP&amp;#40;AREA_TRANSITION_RANDOM&amp;#41;;
&lt;br /&gt;
//&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; AssignCommand&amp;#40;oClicker, PlaySound&amp;#40;&amp;quot;as_mg_telepout1&amp;quot;&amp;#41;&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; AssignCommand&amp;#40;oClicker,JumpToObject&amp;#40;oTarget&amp;#41;&amp;#41;;
&lt;br /&gt;
//&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; AssignCommand&amp;#40;oClicker, DelayCommand&amp;#40;1.0,PlaySound&amp;#40;&amp;quot;as_mg_telepout1&amp;quot;&amp;#41;&amp;#41;&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; AssignCommand&amp;#40;oClicker, ActionDoCommand&amp;#40;ClearAllActions&amp;#40;&amp;#41;&amp;#41;&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return TRUE;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// * this module does not have a temple of tyr
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;else
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; AssignCommand&amp;#40;GetItemActivator&amp;#40;&amp;#41;, ActionSpeakStringByStrRef&amp;#40;10614&amp;#41;&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return TRUE;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; return FALSE;
&lt;br /&gt;

&lt;br /&gt;
&amp;#125;
&lt;br /&gt;

&lt;br /&gt;
//&amp;#58;&amp;#58;///////////////////////////////////////////////
&lt;br /&gt;
//&amp;#58;&amp;#58; DimensionHop
&lt;br /&gt;
//&amp;#58;&amp;#58; Copyright &amp;#40;c&amp;#41; 2001 Bioware Corp.
&lt;br /&gt;
//&amp;#58;&amp;#58;//////////////////////////////////////////////
&lt;br /&gt;
/*
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;Will move the character from one point to oTarget
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;with a flashy graphic.
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;Original Use&amp;#58; Dryads in M3Q3, SnowGlobe
&lt;br /&gt;
*/
&lt;br /&gt;
//&amp;#58;&amp;#58;//////////////////////////////////////////////
&lt;br /&gt;
//&amp;#58;&amp;#58; Created By&amp;#58; Brent
&lt;br /&gt;
//&amp;#58;&amp;#58; Created On&amp;#58; January 10, 2002
&lt;br /&gt;
//&amp;#58;&amp;#58;//////////////////////////////////////////////
&lt;br /&gt;

&lt;br /&gt;
void DimensionHop&amp;#40;object oTarget&amp;#41;
&lt;br /&gt;
&amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; if &amp;#40;GetDistanceToObject&amp;#40;oTarget&amp;#41; &amp;gt; 2.5&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; effect eVis = EffectVisualEffect&amp;#40;VFX_IMP_UNSUMMON&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ApplyEffectToObject&amp;#40;DURATION_TYPE_INSTANT, eVis, OBJECT_SELF&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ActionJumpToObject&amp;#40;oTarget&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;#125;
&lt;br /&gt;

&lt;br /&gt;

&lt;br /&gt;

&lt;br /&gt;
//&amp;#58;&amp;#58;///////////////////////////////////////////////
&lt;br /&gt;
//&amp;#58;&amp;#58; CanSeePlayer
&lt;br /&gt;
//&amp;#58;&amp;#58; Copyright &amp;#40;c&amp;#41; 2001 Bioware Corp.
&lt;br /&gt;
//&amp;#58;&amp;#58;//////////////////////////////////////////////
&lt;br /&gt;
/*
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;Returns true if OBJECT_SELF can see the player
&lt;br /&gt;
*/
&lt;br /&gt;
//&amp;#58;&amp;#58;//////////////////////////////////////////////
&lt;br /&gt;
//&amp;#58;&amp;#58; Created By&amp;#58;
&lt;br /&gt;
//&amp;#58;&amp;#58; Created On&amp;#58;
&lt;br /&gt;
//&amp;#58;&amp;#58;//////////////////////////////////////////////
&lt;br /&gt;

&lt;br /&gt;
int CanSeePlayer&amp;#40;&amp;#41;
&lt;br /&gt;
&amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; return GetIsObjectValid&amp;#40;GetNearestCreature&amp;#40;CREATURE_TYPE_PLAYER_CHAR, PLAYER_CHAR_IS_PC, OBJECT_SELF, 1, CREATURE_TYPE_PERCEPTION, PERCEPTION_SEEN&amp;#41;&amp;#41;;
&lt;br /&gt;
&amp;#125;
&lt;br /&gt;
//&amp;#58;&amp;#58;///////////////////////////////////////////////
&lt;br /&gt;
//&amp;#58;&amp;#58; EscapeArea&amp;#40;&amp;#41;
&lt;br /&gt;
//&amp;#58;&amp;#58; Copyright &amp;#40;c&amp;#41; 2001 Bioware Corp.
&lt;br /&gt;
//&amp;#58;&amp;#58;//////////////////////////////////////////////
&lt;br /&gt;
/*
&lt;br /&gt;
&amp;nbsp; Runs object to nearest waypoint with tag
&lt;br /&gt;
&amp;nbsp; &amp;quot;NW_EXIT&amp;quot;.&amp;nbsp; This tag can be overridden.
&lt;br /&gt;
&amp;nbsp; You can also specify whether to run or not.
&lt;br /&gt;
*/
&lt;br /&gt;
//&amp;#58;&amp;#58;//////////////////////////////////////////////
&lt;br /&gt;
//&amp;#58;&amp;#58; Created By&amp;#58; Brent
&lt;br /&gt;
//&amp;#58;&amp;#58; Created On&amp;#58; December 2001
&lt;br /&gt;
//&amp;#58;&amp;#58;//////////////////////////////////////////////
&lt;br /&gt;
void EscapeArea&amp;#40;int bRun = TRUE, string sTag=&amp;quot;NW_EXIT&amp;quot;&amp;#41;
&lt;br /&gt;
&amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; object oWay = GetNearestObjectByTag&amp;#40;sTag&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; if &amp;#40;GetIsObjectValid&amp;#40;oWay&amp;#41;&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ActionMoveToObject&amp;#40;oWay, bRun&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ActionDoCommand&amp;#40;DestroyObject&amp;#40;OBJECT_SELF&amp;#41;&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; SetCommandable&amp;#40;FALSE&amp;#41;; // * this prevents them from being interrupted
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; //else
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; //SpeakString&amp;#40;&amp;quot;invalid exit waypoint&amp;quot;&amp;#41;;
&lt;br /&gt;
&amp;#125;
&lt;br /&gt;

&lt;br /&gt;
//&amp;#58;&amp;#58;///////////////////////////////////////////////
&lt;br /&gt;
//&amp;#58;&amp;#58; HasItem
&lt;br /&gt;
//&amp;#58;&amp;#58; Copyright &amp;#40;c&amp;#41; 2001 Bioware Corp.
&lt;br /&gt;
//&amp;#58;&amp;#58;//////////////////////////////////////////////
&lt;br /&gt;
/*
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; A wrapper to simplify checking for an item.
&lt;br /&gt;
*/
&lt;br /&gt;
//&amp;#58;&amp;#58;//////////////////////////////////////////////
&lt;br /&gt;
//&amp;#58;&amp;#58; Created By&amp;#58;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Brent
&lt;br /&gt;
//&amp;#58;&amp;#58; Created On&amp;#58;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; November 2001
&lt;br /&gt;
//&amp;#58;&amp;#58;//////////////////////////////////////////////
&lt;br /&gt;

&lt;br /&gt;
int HasItem&amp;#40;object oCreature, string s&amp;#41;
&lt;br /&gt;
&amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; return&amp;nbsp; GetIsObjectValid&amp;#40;GetItemPossessedBy&amp;#40;oCreature, s&amp;#41;&amp;#41;;
&lt;br /&gt;
&amp;#125;
&lt;br /&gt;

&lt;br /&gt;
//&amp;#58;&amp;#58;///////////////////////////////////////////////
&lt;br /&gt;
//&amp;#58;&amp;#58; Take Gold
&lt;br /&gt;
//&amp;#58;&amp;#58; Copyright &amp;#40;c&amp;#41; 2001 Bioware Corp.
&lt;br /&gt;
//&amp;#58;&amp;#58;//////////////////////////////////////////////
&lt;br /&gt;
/*
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; Takes nAmount of gold from the object speaking.
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; By default, the gold is destroyed.
&lt;br /&gt;
*/
&lt;br /&gt;
//&amp;#58;&amp;#58;//////////////////////////////////////////////
&lt;br /&gt;
//&amp;#58;&amp;#58; Created By&amp;#58; Brent
&lt;br /&gt;
//&amp;#58;&amp;#58; Created On&amp;#58; November 2001
&lt;br /&gt;
//&amp;#58;&amp;#58;//////////////////////////////////////////////
&lt;br /&gt;
void TakeGold&amp;#40;int nAmount, object oGoldHolder, int bDestroy=TRUE&amp;#41;
&lt;br /&gt;
&amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; TakeGoldFromCreature&amp;#40;nAmount, oGoldHolder, bDestroy&amp;#41;;
&lt;br /&gt;
&amp;#125;
&lt;br /&gt;

&lt;br /&gt;

&lt;br /&gt;
//&amp;#58;&amp;#58;///////////////////////////////////////////////
&lt;br /&gt;
//&amp;#58;&amp;#58; HasGold
&lt;br /&gt;
//&amp;#58;&amp;#58; Copyright &amp;#40;c&amp;#41; 2001 Bioware Corp.
&lt;br /&gt;
//&amp;#58;&amp;#58;//////////////////////////////////////////////
&lt;br /&gt;
/*
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; Checks to see if the player has nAmount of gold
&lt;br /&gt;
*/
&lt;br /&gt;
//&amp;#58;&amp;#58;//////////////////////////////////////////////
&lt;br /&gt;
//&amp;#58;&amp;#58; Created By&amp;#58;
&lt;br /&gt;
//&amp;#58;&amp;#58; Created On&amp;#58;
&lt;br /&gt;
//&amp;#58;&amp;#58;//////////////////////////////////////////////
&lt;br /&gt;
int HasGold&amp;#40;int nAmount, object oGoldHolder&amp;#41;
&lt;br /&gt;
&amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; return GetGold&amp;#40;oGoldHolder&amp;#41; &amp;gt;= nAmount;
&lt;br /&gt;
&amp;#125;
&lt;br /&gt;

&lt;br /&gt;
// GetNearestPC&amp;#40;&amp;#41;
&lt;br /&gt;
/*&amp;nbsp; &amp;nbsp;Find nearest player object from oTarget.
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp;Parameters&amp;#58;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;object oTarget&amp;nbsp; &amp;nbsp; &amp;nbsp; = Begin search from location of oTarget
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;int bOwnedCharacter = If TRUE, find nearest PC, else, find nearest creature controlled by a player
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;int bIsAlive&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; = If TRUE, ignore dead, else, ignore alive creatures
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;int nNth&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;= Return nNth match &amp;#40;Default = first&amp;#41;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp;Remark&amp;#58;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;CREATURE_TYPE_IS_ALIVE currently matches exclusive dead or alive &amp;#40;Dead xor Alive?&amp;#41;.
&lt;br /&gt;
*/
&lt;br /&gt;
// Brent 5/16/01
&lt;br /&gt;
// BMA-OEI 1/23/06
&lt;br /&gt;
object GetNearestPC&amp;#40;object oTarget=OBJECT_SELF, int bOwnedCharacter=TRUE, int bIsAlive=TRUE, int nNth=1&amp;#41;
&lt;br /&gt;
&amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;int nPCValue;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp;if &amp;#40;bOwnedCharacter == TRUE&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;nPCValue = PLAYER_CHAR_IS_PC;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;else
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;nPCValue = PLAYER_CHAR_IS_CONTROLLED;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;return GetNearestCreature&amp;#40;CREATURE_TYPE_PLAYER_CHAR, nPCValue, oTarget, nNth, CREATURE_TYPE_IS_ALIVE, bIsAlive&amp;#41;;
&lt;br /&gt;
&amp;#125;
&lt;br /&gt;

&lt;br /&gt;

&lt;br /&gt;
//&amp;#58;&amp;#58; SetIsEnemy
&lt;br /&gt;
//////////////////////////////////////////////////
&lt;br /&gt;
//
&lt;br /&gt;
//&amp;nbsp; &amp;#91;Function Name&amp;#93;
&lt;br /&gt;
//
&lt;br /&gt;
//////////////////////////////////////////////////
&lt;br /&gt;
//
&lt;br /&gt;
//
&lt;br /&gt;
// &amp;#91;A description of the function.&amp;nbsp; This should contain any
&lt;br /&gt;
// special ranges on input values&amp;#93;
&lt;br /&gt;
//
&lt;br /&gt;
//////////////////////////////////////////////////
&lt;br /&gt;
//
&lt;br /&gt;
//&amp;nbsp; Created By&amp;#58;
&lt;br /&gt;
//&amp;nbsp; Created On&amp;#58;
&lt;br /&gt;
//
&lt;br /&gt;
//////////////////////////////////////////////////
&lt;br /&gt;
void SetIsEnemy&amp;#40;object oTarget&amp;#41;
&lt;br /&gt;
&amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; AdjustReputation&amp;#40;oTarget, OBJECT_SELF,-100&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; ActionAttack&amp;#40;oTarget&amp;#41;;
&lt;br /&gt;
&amp;#125;
&lt;br /&gt;

&lt;br /&gt;

&lt;br /&gt;

&lt;br /&gt;

&lt;br /&gt;
///////////////////////////////////////////////////////////////////////////////
&lt;br /&gt;
//
&lt;br /&gt;
//&amp;nbsp; AutoDC
&lt;br /&gt;
//
&lt;br /&gt;
///////////////////////////////////////////////////////////////////////////////
&lt;br /&gt;
//&amp;nbsp; Returns a pass value based on the object's level and the suggested DC
&lt;br /&gt;
// December 20 2001&amp;#58; Changed so that the difficulty is determined by the
&lt;br /&gt;
// NPC's Hit Dice
&lt;br /&gt;
// November 2002 &amp;#40;Brent&amp;#41;&amp;#58; Adding a higher upper range for level 15+ campaigns.
&lt;br /&gt;
// August 2003 &amp;#40;Georg&amp;#41;&amp;#58; Fixed bug not adding up DCs in the correct order
&lt;br /&gt;
///////////////////////////////////////////////////////////////////////////////
&lt;br /&gt;
//&amp;nbsp; Created By&amp;#58; Brent, September 13 2001
&lt;br /&gt;
///////////////////////////////////////////////////////////////////////////////
&lt;br /&gt;
int AutoDC&amp;#40;int DC, int nSkill, object oTarget&amp;#41;
&lt;br /&gt;
&amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; /*
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; Easy = Lvl/4 ...rounded up
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; Moderate = 3/Lvl + Lvl ...rounded up
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; Difficult = Lvl * 1.5 + 6 ...rounded up
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; */
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; int nLevel = GetHitDice&amp;#40;OBJECT_SELF&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; int nTest = 0;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; // * July 2
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; // * If nLevel is less than 0 or 0 then set it to 1
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; if &amp;#40;nLevel &amp;lt;= 0&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; nLevel = 1;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; switch &amp;#40;DC&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case DC_EASY&amp;#58; nTest = nLevel / 4 + 1; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // * minor tweak to lower the values a little
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case DC_MEDIUM&amp;#58; nTest = &amp;#40;3 / nLevel + nLevel&amp;#41; - abs&amp;#40; &amp;#40;nLevel/2&amp;#41; -2&amp;#41;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case DC_HARD&amp;#58; nTest = FloatToInt&amp;#40;nLevel * 1.5 + 6&amp;#41; - abs&amp;#40; &amp;#40; FloatToInt&amp;#40;nLevel/1.5&amp;#41; -2&amp;#41;&amp;#41;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case DC_SUPERIOR&amp;#58; nTest = 7+ FloatToInt&amp;#40;nLevel * 1.5 + 6&amp;#41; - abs&amp;#40; &amp;#40; FloatToInt&amp;#40;nLevel/1.5&amp;#41; -2&amp;#41;&amp;#41;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case DC_MASTER&amp;#58; nTest = 14 + FloatToInt&amp;#40;nLevel * 1.5 + 6&amp;#41; - abs&amp;#40; &amp;#40; FloatToInt&amp;#40;nLevel/1.5&amp;#41; -2&amp;#41;&amp;#41;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case DC_LEGENDARY&amp;#58; nTest = 21 + FloatToInt&amp;#40;nLevel * 1.5 + 6&amp;#41; - abs&amp;#40; &amp;#40; FloatToInt&amp;#40;nLevel/1.5&amp;#41; -2&amp;#41;&amp;#41;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case DC_EPIC&amp;#58; nTest = 28 + FloatToInt&amp;#40;nLevel * 1.5 + 6&amp;#41; - abs&amp;#40; &amp;#40; FloatToInt&amp;#40;nLevel/1.5&amp;#41; -2&amp;#41;&amp;#41;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;

&lt;br /&gt;

&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; // *********************************
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; // * CHARM/DOMINATION
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; // * If charmed or dominated the NPC
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; // * will be at a disadvantage
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; // *********************************
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; int nCharmMod = 0;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; if &amp;#40;nSkill == SKILL_DIPLOMACY || nSkill == SKILL_BLUFF || nSkill == SKILL_INTIMIDATE&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; nCharmMod = GetNPCEasyMark&amp;#40;oTarget&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; int nDC = nTest + 10 - nCharmMod ;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; if &amp;#40;nDC &amp;lt; 1 &amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; nDC = 1;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; // * Roll d20 + skill rank vs. DC + 10
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; if &amp;#40;GetSkillRank&amp;#40;nSkill, oTarget&amp;#41; + d20&amp;#40;&amp;#41; &amp;gt;= &amp;#40;nDC&amp;#41; &amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return TRUE;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return FALSE;
&lt;br /&gt;
&amp;#125;
&lt;br /&gt;

&lt;br /&gt;
///////////////////////////////////////////////////////////////////////////////
&lt;br /&gt;
//
&lt;br /&gt;
//&amp;nbsp; AutoAlignG&amp;#40;int DC, object oTarget&amp;#41;
&lt;br /&gt;
//
&lt;br /&gt;
///////////////////////////////////////////////////////////////////////////////
&lt;br /&gt;
//&amp;nbsp; Adjusts the alignment of the object towards good, relative to the
&lt;br /&gt;
//&amp;nbsp; degree indicated.
&lt;br /&gt;
///////////////////////////////////////////////////////////////////////////////
&lt;br /&gt;
//&amp;nbsp; Created By&amp;#58; Brent, September 13, 2001
&lt;br /&gt;
///////////////////////////////////////////////////////////////////////////////
&lt;br /&gt;
void AutoAlignG&amp;#40;int DC, object oTarget&amp;#41;
&lt;br /&gt;
&amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; int nShift = 0;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; switch &amp;#40;DC&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 0&amp;#58; nShift = 3;&amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 1&amp;#58; nShift = 7; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 2&amp;#58; nShift = 10; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; AdjustAlignment&amp;#40;oTarget, ALIGNMENT_GOOD, nShift&amp;#41;;
&lt;br /&gt;
&amp;#125;
&lt;br /&gt;
///////////////////////////////////////////////////////////////////////////////
&lt;br /&gt;
//
&lt;br /&gt;
//&amp;nbsp; AutoAlignE
&lt;br /&gt;
//
&lt;br /&gt;
///////////////////////////////////////////////////////////////////////////////
&lt;br /&gt;
//&amp;nbsp; Adjusts the alignment of the object towards evil, relative to the
&lt;br /&gt;
//&amp;nbsp; degree indicated.
&lt;br /&gt;
///////////////////////////////////////////////////////////////////////////////
&lt;br /&gt;
//&amp;nbsp; Created By&amp;#58; Brent, September 13, 2001
&lt;br /&gt;
///////////////////////////////////////////////////////////////////////////////
&lt;br /&gt;
void AutoAlignE&amp;#40;int DC, object oTarget&amp;#41;
&lt;br /&gt;
&amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; int nShift = 0;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; switch &amp;#40;DC&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 0&amp;#58; nShift = 3;&amp;nbsp; &amp;nbsp;break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 1&amp;#58; nShift = 7;&amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 2&amp;#58; nShift = 10;&amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; AdjustAlignment&amp;#40;oTarget, ALIGNMENT_EVIL, nShift&amp;#41;;
&lt;br /&gt;
&amp;#125;
&lt;br /&gt;

&lt;br /&gt;

&lt;br /&gt;
//&amp;#58;&amp;#58;///////////////////////////////////////////////
&lt;br /&gt;
//&amp;#58;&amp;#58; DoGiveXP
&lt;br /&gt;
//&amp;#58;&amp;#58; Copyright &amp;#40;c&amp;#41; 2001 Bioware Corp.
&lt;br /&gt;
//&amp;#58;&amp;#58;//////////////////////////////////////////////
&lt;br /&gt;
/*
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; Gives the designated XP to the object
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; using the design rules for XP
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; distribution.
&lt;br /&gt;
*/
&lt;br /&gt;
//&amp;#58;&amp;#58;//////////////////////////////////////////////
&lt;br /&gt;
//&amp;#58;&amp;#58; Created By&amp;#58;
&lt;br /&gt;
//&amp;#58;&amp;#58; Created On&amp;#58;
&lt;br /&gt;
//&amp;#58;&amp;#58;//////////////////////////////////////////////
&lt;br /&gt;

&lt;br /&gt;
void DoGiveXP&amp;#40;string sJournalTag, int nPercentage, object oTarget, int QuestAlignment=ALIGNMENT_NEUTRAL&amp;#41;
&lt;br /&gt;
&amp;#123;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; float nRewardMod = 1.0;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; // * error handling
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; if &amp;#40;&amp;#40;nPercentage &amp;lt; 0&amp;#41; || &amp;#40;nPercentage &amp;gt; 100&amp;#41;&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; nPercentage = 100;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; float nXP = GetJournalQuestExperience&amp;#40;sJournalTag&amp;#41; * &amp;#40;nPercentage * 0.01&amp;#41;;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; // * for each party member
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; // * cycle through them and
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; // * and give them the appropriate reward
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; // * HACK FOR NOW
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; if &amp;#40;&amp;#40;GetAlignmentGoodEvil&amp;#40;oTarget&amp;#41; == ALIGNMENT_NEUTRAL&amp;#41; || &amp;#40;QuestAlignment ==ALIGNMENT_NEUTRAL&amp;#41; &amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; nRewardMod = 1.0;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; else
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; if &amp;#40;GetAlignmentGoodEvil&amp;#40;oTarget&amp;#41; == QuestAlignment&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; nRewardMod = 1.25;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; else
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; if &amp;#40;GetAlignmentGoodEvil&amp;#40;oTarget&amp;#41; != QuestAlignment&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; nRewardMod = 0.75;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
//&amp;nbsp; &amp;nbsp; AssignCommand&amp;#40;oTarget,SpeakString&amp;#40;&amp;quot;My XP reward is&amp;#58; &amp;quot; + FloatToString&amp;#40;nRewardMod * nXP&amp;#41;&amp;#41;&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; GiveXPToCreature&amp;#40;oTarget, FloatToInt&amp;#40;nRewardMod * nXP&amp;#41;&amp;#41;;
&lt;br /&gt;

&lt;br /&gt;
&amp;#125;
&lt;br /&gt;
///////////////////////////////////////////////////////////////////////////////
&lt;br /&gt;
//
&lt;br /&gt;
//&amp;nbsp; RewardXP
&lt;br /&gt;
//
&lt;br /&gt;
///////////////////////////////////////////////////////////////////////////////
&lt;br /&gt;
//&amp;nbsp; Gives each player the reward, scaled 1.25 times if of the correct alignment
&lt;br /&gt;
//&amp;nbsp; and 0.75 times if of the wrong alignment.&amp;nbsp; Neutral always get the
&lt;br /&gt;
//&amp;nbsp; 1.0 times reward.
&lt;br /&gt;
///////////////////////////////////////////////////////////////////////////////
&lt;br /&gt;
//&amp;nbsp; Created By&amp;#58; Brent, September 13, 2001
&lt;br /&gt;
///////////////////////////////////////////////////////////////////////////////
&lt;br /&gt;
void RewardXP&amp;#40;string sJournalTag, int nPercentage, object oTarget, int QuestAlignment=ALIGNMENT_NEUTRAL, int bAllParty=TRUE&amp;#41;
&lt;br /&gt;
&amp;#123;
&lt;br /&gt;

&lt;br /&gt;
//&amp;nbsp; &amp;nbsp;AssignCommand&amp;#40;oTarget, SpeakString&amp;#40;&amp;quot;in rewardxp funtion&amp;quot;&amp;#41;&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; if &amp;#40;bAllParty == TRUE&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; object oPartyMember = GetFirstFactionMember&amp;#40;oTarget, TRUE&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; while &amp;#40;GetIsObjectValid&amp;#40;oPartyMember&amp;#41; == TRUE&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; DoGiveXP&amp;#40;sJournalTag, nPercentage, oPartyMember, QuestAlignment&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; oPartyMember = GetNextFactionMember&amp;#40;oTarget, TRUE&amp;#41;;
&lt;br /&gt;
//&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; AssignCommand&amp;#40;oTarget,SpeakString&amp;#40;&amp;quot;here your xp sir&amp;quot;&amp;#41;&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; else
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;DoGiveXP&amp;#40;sJournalTag, nPercentage, oTarget, QuestAlignment&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;

&lt;br /&gt;

&lt;br /&gt;
&amp;#125;
&lt;br /&gt;

&lt;br /&gt;

&lt;br /&gt;
///////////////////////////////////////////////////////////////////////////////
&lt;br /&gt;
//
&lt;br /&gt;
//&amp;nbsp; RewardGP
&lt;br /&gt;
//
&lt;br /&gt;
///////////////////////////////////////////////////////////////////////////////
&lt;br /&gt;
//&amp;nbsp; Gives the GP to &amp;#40;if bAllParty = TRUE&amp;#41; all party members.
&lt;br /&gt;
//&amp;nbsp; Each players gets the GP value amount.
&lt;br /&gt;
///////////////////////////////////////////////////////////////////////////////
&lt;br /&gt;
//&amp;nbsp; Created By&amp;#58; Brent, September 13, 2001
&lt;br /&gt;
///////////////////////////////////////////////////////////////////////////////
&lt;br /&gt;

&lt;br /&gt;
void RewardGP&amp;#40;int GP, object oTarget,int bAllParty=TRUE&amp;#41;
&lt;br /&gt;
&amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; // * for each party member
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; // * cycle through them and
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; // * and give them the appropriate reward
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; // * HACK FOR NOW
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; if &amp;#40;bAllParty == TRUE&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; object oPartyMember = GetFirstFactionMember&amp;#40;oTarget, TRUE&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; while &amp;#40;GetIsObjectValid&amp;#40;oPartyMember&amp;#41; == TRUE&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //AssignCommand&amp;#40;oPartyMember, SpeakString&amp;#40;&amp;quot;MY GP reward is&amp;#58; &amp;quot; + IntToString&amp;#40;GP&amp;#41;&amp;#41;&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; GiveGoldToCreature&amp;#40;oPartyMember, GP&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; oPartyMember = GetNextFactionMember&amp;#40;oTarget, TRUE&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; else
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;GiveGoldToCreature&amp;#40;oTarget, GP&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;#125;
&lt;br /&gt;

&lt;br /&gt;

&lt;br /&gt;
// *
&lt;br /&gt;
// * Conversation Functions
&lt;br /&gt;
// *
&lt;br /&gt;

&lt;br /&gt;
///////////////////////////////////////////////////////////////////////////////
&lt;br /&gt;
//
&lt;br /&gt;
//&amp;nbsp; CheckCharismaMiddle
&lt;br /&gt;
//
&lt;br /&gt;
///////////////////////////////////////////////////////////////////////////////
&lt;br /&gt;
//&amp;nbsp; Returns TRUE if charisma is in the normal range.
&lt;br /&gt;
///////////////////////////////////////////////////////////////////////////////
&lt;br /&gt;
//&amp;nbsp; Created By&amp;#58; Brent, September 13, 2001
&lt;br /&gt;
///////////////////////////////////////////////////////////////////////////////
&lt;br /&gt;
int CheckCharismaMiddle&amp;#40;&amp;#41;
&lt;br /&gt;
&amp;#123;
&lt;br /&gt;
&amp;nbsp;if &amp;#40;GetAbilityScore&amp;#40;GetPCSpeaker&amp;#40;&amp;#41;,ABILITY_CHARISMA&amp;#41; &amp;gt;= 10 &amp;amp;&amp;amp; GetAbilityScore&amp;#40;GetPCSpeaker&amp;#40;&amp;#41;,ABILITY_CHARISMA&amp;#41; &amp;lt; 15&amp;#41;
&lt;br /&gt;
&amp;nbsp;&amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;return TRUE;
&lt;br /&gt;
&amp;nbsp;&amp;#125;
&lt;br /&gt;
&amp;nbsp;return FALSE;
&lt;br /&gt;
&amp;#125;
&lt;br /&gt;

&lt;br /&gt;
///////////////////////////////////////////////////////////////////////////////
&lt;br /&gt;
//
&lt;br /&gt;
//&amp;nbsp; CheckCharismaNormal
&lt;br /&gt;
//
&lt;br /&gt;
///////////////////////////////////////////////////////////////////////////////
&lt;br /&gt;
//&amp;nbsp; Returns TRUE if charisma is in the normal range.
&lt;br /&gt;
///////////////////////////////////////////////////////////////////////////////
&lt;br /&gt;
//&amp;nbsp; Created By&amp;#58; Brent, September 13, 2001
&lt;br /&gt;
///////////////////////////////////////////////////////////////////////////////
&lt;br /&gt;
int CheckCharismaNormal&amp;#40;&amp;#41;
&lt;br /&gt;
&amp;#123;
&lt;br /&gt;
&amp;nbsp;if &amp;#40;GetAbilityScore&amp;#40;GetPCSpeaker&amp;#40;&amp;#41;,ABILITY_CHARISMA&amp;#41; &amp;gt;= 10&amp;#41;
&lt;br /&gt;
&amp;nbsp;&amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;return TRUE;
&lt;br /&gt;
&amp;nbsp;&amp;#125;
&lt;br /&gt;
&amp;nbsp;return FALSE;
&lt;br /&gt;
&amp;#125;
&lt;br /&gt;

&lt;br /&gt;
///////////////////////////////////////////////////////////////////////////////
&lt;br /&gt;
//
&lt;br /&gt;
//&amp;nbsp; CheckCharismaLow
&lt;br /&gt;
//
&lt;br /&gt;
///////////////////////////////////////////////////////////////////////////////
&lt;br /&gt;
//&amp;nbsp; Returns TRUE if charisma is in the low range.
&lt;br /&gt;
///////////////////////////////////////////////////////////////////////////////
&lt;br /&gt;
//&amp;nbsp; Created By&amp;#58; Brent, September 13, 2001
&lt;br /&gt;
///////////////////////////////////////////////////////////////////////////////
&lt;br /&gt;
int CheckCharismaLow&amp;#40;&amp;#41;
&lt;br /&gt;
&amp;#123;
&lt;br /&gt;
&amp;nbsp;if &amp;#40;GetAbilityScore&amp;#40;GetPCSpeaker&amp;#40;&amp;#41;,ABILITY_CHARISMA&amp;#41; &amp;lt; 10&amp;#41;
&lt;br /&gt;
&amp;nbsp;&amp;#123;
&lt;br /&gt;
&amp;nbsp; return TRUE;
&lt;br /&gt;
&amp;nbsp;&amp;#125;
&lt;br /&gt;
&amp;nbsp;return FALSE;
&lt;br /&gt;
&amp;#125;
&lt;br /&gt;
///////////////////////////////////////////////////////////////////////////////
&lt;br /&gt;
//
&lt;br /&gt;
//&amp;nbsp; CheckCharismaHigh
&lt;br /&gt;
//
&lt;br /&gt;
///////////////////////////////////////////////////////////////////////////////
&lt;br /&gt;
//&amp;nbsp; Returns TRUE if charisma is in the high range.
&lt;br /&gt;
///////////////////////////////////////////////////////////////////////////////
&lt;br /&gt;
//&amp;nbsp; Created By&amp;#58; Brent, September 13, 2001
&lt;br /&gt;
///////////////////////////////////////////////////////////////////////////////
&lt;br /&gt;
int CheckCharismaHigh&amp;#40;&amp;#41;
&lt;br /&gt;
&amp;#123;
&lt;br /&gt;
&amp;nbsp;if &amp;#40;GetAbilityScore&amp;#40;GetPCSpeaker&amp;#40;&amp;#41;,ABILITY_CHARISMA&amp;#41; &amp;gt;= 15&amp;#41;
&lt;br /&gt;
&amp;nbsp;&amp;#123;
&lt;br /&gt;
&amp;nbsp; return TRUE;
&lt;br /&gt;
&amp;nbsp;&amp;#125;
&lt;br /&gt;
&amp;nbsp;return FALSE;
&lt;br /&gt;
&amp;#125;
&lt;br /&gt;
///////////////////////////////////////////////////////////////////////////////
&lt;br /&gt;
//
&lt;br /&gt;
//&amp;nbsp; CheckIntelligenceLow
&lt;br /&gt;
//
&lt;br /&gt;
///////////////////////////////////////////////////////////////////////////////
&lt;br /&gt;
//&amp;nbsp; Returns TRUE if intelligence is in the low range
&lt;br /&gt;
///////////////////////////////////////////////////////////////////////////////
&lt;br /&gt;
//&amp;nbsp; Created By&amp;#58; Brent, September 13, 2001
&lt;br /&gt;
///////////////////////////////////////////////////////////////////////////////
&lt;br /&gt;

&lt;br /&gt;
int CheckIntelligenceLow&amp;#40;&amp;#41;
&lt;br /&gt;
&amp;#123;
&lt;br /&gt;
&amp;nbsp;if &amp;#40;GetAbilityScore&amp;#40;GetPCSpeaker&amp;#40;&amp;#41;,ABILITY_INTELLIGENCE&amp;#41; &amp;lt; 9&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;return TRUE;
&lt;br /&gt;
&amp;nbsp;return FALSE;
&lt;br /&gt;
&amp;#125;
&lt;br /&gt;

&lt;br /&gt;
///////////////////////////////////////////////////////////////////////////////
&lt;br /&gt;
//
&lt;br /&gt;
//&amp;nbsp; CheckIntelligenceNormal
&lt;br /&gt;
//
&lt;br /&gt;
///////////////////////////////////////////////////////////////////////////////
&lt;br /&gt;
//&amp;nbsp; Returns TRUE if intelligence is in the normal range
&lt;br /&gt;
///////////////////////////////////////////////////////////////////////////////
&lt;br /&gt;
//&amp;nbsp; Created By&amp;#58; Brent, September 13, 2001
&lt;br /&gt;
///////////////////////////////////////////////////////////////////////////////
&lt;br /&gt;
int CheckIntelligenceNormal&amp;#40;&amp;#41;
&lt;br /&gt;
&amp;#123;
&lt;br /&gt;
&amp;nbsp;if &amp;#40;GetAbilityScore&amp;#40;GetPCSpeaker&amp;#40;&amp;#41;,ABILITY_INTELLIGENCE&amp;#41; &amp;gt;= 9&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;return TRUE;
&lt;br /&gt;
&amp;nbsp;return FALSE;
&lt;br /&gt;
&amp;#125;
&lt;br /&gt;

&lt;br /&gt;
//&amp;#58;&amp;#58;///////////////////////////////////////////////
&lt;br /&gt;
//&amp;#58;&amp;#58; CheckIntelligenceHigh
&lt;br /&gt;
//&amp;#58;&amp;#58; Copyright &amp;#40;c&amp;#41; 2001 Bioware Corp.
&lt;br /&gt;
//&amp;#58;&amp;#58;//////////////////////////////////////////////
&lt;br /&gt;
/*
&lt;br /&gt;

&lt;br /&gt;
*/
&lt;br /&gt;
//&amp;#58;&amp;#58;//////////////////////////////////////////////
&lt;br /&gt;
//&amp;#58;&amp;#58; Created By&amp;#58;
&lt;br /&gt;
//&amp;#58;&amp;#58; Created On&amp;#58;
&lt;br /&gt;
//&amp;#58;&amp;#58;//////////////////////////////////////////////
&lt;br /&gt;

&lt;br /&gt;
int CheckIntelligenceHigh&amp;#40;&amp;#41;
&lt;br /&gt;
&amp;#123;
&lt;br /&gt;
&amp;nbsp;if &amp;#40;GetAbilityScore&amp;#40;GetPCSpeaker&amp;#40;&amp;#41;,ABILITY_INTELLIGENCE&amp;#41; &amp;gt;= 15&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;return TRUE;
&lt;br /&gt;
&amp;nbsp;return FALSE;
&lt;br /&gt;
&amp;#125;
&lt;br /&gt;
///////////////////////////////////////////////////////////////////////////////
&lt;br /&gt;
//
&lt;br /&gt;
//&amp;nbsp; CheckWisdomHigh
&lt;br /&gt;
//
&lt;br /&gt;
///////////////////////////////////////////////////////////////////////////////
&lt;br /&gt;
//&amp;nbsp; Returns TRUE if wisdom is in the High range
&lt;br /&gt;
///////////////////////////////////////////////////////////////////////////////
&lt;br /&gt;
//&amp;nbsp; Created By&amp;#58; Brent, September 13, 2001
&lt;br /&gt;
///////////////////////////////////////////////////////////////////////////////
&lt;br /&gt;
int CheckWisdomHigh&amp;#40;&amp;#41;
&lt;br /&gt;
&amp;#123;
&lt;br /&gt;
&amp;nbsp;if &amp;#40;GetAbilityScore&amp;#40;GetPCSpeaker&amp;#40;&amp;#41;,ABILITY_WISDOM&amp;#41; &amp;gt; 13&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;return TRUE;
&lt;br /&gt;
&amp;nbsp;return FALSE;
&lt;br /&gt;
&amp;#125;
&lt;br /&gt;

&lt;br /&gt;
int GetWisdom&amp;#40;object oTarget&amp;#41;
&lt;br /&gt;
&amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; return GetAbilityScore&amp;#40;oTarget, ABILITY_WISDOM&amp;#41;;
&lt;br /&gt;
&amp;#125;
&lt;br /&gt;
int GetIntelligence&amp;#40;object oTarget&amp;#41;
&lt;br /&gt;
&amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; return GetAbilityScore&amp;#40;oTarget, ABILITY_INTELLIGENCE&amp;#41;;
&lt;br /&gt;
&amp;#125;
&lt;br /&gt;
int GetCharisma&amp;#40;object oTarget&amp;#41;
&lt;br /&gt;
&amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; return GetAbilityScore&amp;#40;oTarget, ABILITY_CHARISMA&amp;#41;;
&lt;br /&gt;
&amp;#125;
&lt;br /&gt;

&lt;br /&gt;
//&amp;#58;&amp;#58; GetNumItems
&lt;br /&gt;
//////////////////////////////////////////////////
&lt;br /&gt;
//
&lt;br /&gt;
//&amp;nbsp; GetNumItems
&lt;br /&gt;
//
&lt;br /&gt;
//////////////////////////////////////////////////
&lt;br /&gt;
//
&lt;br /&gt;
//
&lt;br /&gt;
// Returns the number of specified item in the
&lt;br /&gt;
// target's inventory.
&lt;br /&gt;
//
&lt;br /&gt;
//////////////////////////////////////////////////
&lt;br /&gt;
//
&lt;br /&gt;
//&amp;nbsp; Created By&amp;#58; John
&lt;br /&gt;
//&amp;nbsp; Created On&amp;#58; September 19, 2001
&lt;br /&gt;
//
&lt;br /&gt;
//////////////////////////////////////////////////
&lt;br /&gt;
int GetNumItems&amp;#40;object oTarget,string sItem&amp;#41;
&lt;br /&gt;
&amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; int nNumItems = 0;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; object oItem = GetFirstItemInInventory&amp;#40;oTarget&amp;#41;;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; while &amp;#40;GetIsObjectValid&amp;#40;oItem&amp;#41; == TRUE&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if &amp;#40;GetTag&amp;#40;oItem&amp;#41; == sItem&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; nNumItems = nNumItems + GetNumStackedItems&amp;#40;oItem&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; oItem = GetNextItemInInventory&amp;#40;oTarget&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp;return nNumItems;
&lt;br /&gt;
&amp;#125;
&lt;br /&gt;

&lt;br /&gt;
//&amp;#58;&amp;#58; GiveNumItems
&lt;br /&gt;
//////////////////////////////////////////////////
&lt;br /&gt;
//
&lt;br /&gt;
//&amp;nbsp; GiveNumItems
&lt;br /&gt;
//
&lt;br /&gt;
//////////////////////////////////////////////////
&lt;br /&gt;
//
&lt;br /&gt;
//
&lt;br /&gt;
// Gives the target the number of items specified.
&lt;br /&gt;
//
&lt;br /&gt;
//////////////////////////////////////////////////
&lt;br /&gt;
//
&lt;br /&gt;
//&amp;nbsp; Created By&amp;#58; John
&lt;br /&gt;
//&amp;nbsp; Created On&amp;#58; September 19, 2001
&lt;br /&gt;
//
&lt;br /&gt;
//////////////////////////////////////////////////
&lt;br /&gt;
void GiveNumItems&amp;#40;object oTarget,string sItem,int nNumItems&amp;#41;
&lt;br /&gt;
&amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; int nCount = 0;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; object oItem = GetFirstItemInInventory&amp;#40;OBJECT_SELF&amp;#41;;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; while &amp;#40;GetIsObjectValid&amp;#40;oItem&amp;#41; == TRUE &amp;amp;&amp;amp; nCount &amp;lt; nNumItems&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if &amp;#40;GetTag&amp;#40;oItem&amp;#41; == sItem&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ActionGiveItem&amp;#40;oItem,oTarget&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; nCount++;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; oItem = GetNextItemInInventory&amp;#40;OBJECT_SELF&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp;return;
&lt;br /&gt;
&amp;#125;
&lt;br /&gt;

&lt;br /&gt;
//&amp;#58;&amp;#58; TakeNumItems
&lt;br /&gt;
//////////////////////////////////////////////////
&lt;br /&gt;
//
&lt;br /&gt;
//&amp;nbsp; TakeNumItems
&lt;br /&gt;
//
&lt;br /&gt;
//////////////////////////////////////////////////
&lt;br /&gt;
//
&lt;br /&gt;
//
&lt;br /&gt;
// Takes the number of items specified from the target.
&lt;br /&gt;
//
&lt;br /&gt;
//////////////////////////////////////////////////
&lt;br /&gt;
//
&lt;br /&gt;
//&amp;nbsp; Created By&amp;#58; John
&lt;br /&gt;
//&amp;nbsp; Created On&amp;#58; September 19, 2001
&lt;br /&gt;
//
&lt;br /&gt;
//////////////////////////////////////////////////
&lt;br /&gt;
void TakeNumItems&amp;#40;object oTarget,string sItem,int nNumItems&amp;#41;
&lt;br /&gt;
&amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; int nCount = 0;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; object oItem = GetFirstItemInInventory&amp;#40;oTarget&amp;#41;;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; while &amp;#40;GetIsObjectValid&amp;#40;oItem&amp;#41; == TRUE &amp;amp;&amp;amp; nCount &amp;lt; nNumItems&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if &amp;#40;GetTag&amp;#40;oItem&amp;#41; == sItem&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ActionTakeItem&amp;#40;oItem,oTarget&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; nCount++;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; oItem = GetNextItemInInventory&amp;#40;oTarget&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp;return;
&lt;br /&gt;
&amp;#125;
&lt;br /&gt;

&lt;br /&gt;

&lt;br /&gt;
///////////////////////////////////////////////////////////////////////////////
&lt;br /&gt;
//
&lt;br /&gt;
//&amp;nbsp; GetReactionAdjustment
&lt;br /&gt;
//
&lt;br /&gt;
///////////////////////////////////////////////////////////////////////////////
&lt;br /&gt;
//&amp;nbsp; Returns the adjusted Reaction for the purposes of store pricing.
&lt;br /&gt;
///////////////////////////////////////////////////////////////////////////////
&lt;br /&gt;
//&amp;nbsp; Created By&amp;#58; Brent, September 25, 2001
&lt;br /&gt;
///////////////////////////////////////////////////////////////////////////////
&lt;br /&gt;
&amp;nbsp;float GetReactionAdjustment&amp;#40;object oTarget&amp;#41;
&lt;br /&gt;
&amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; float nFactionAdjustment = 2.0;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; // &amp;#40;i&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; if &amp;#40;GetIsFriend&amp;#40;oTarget&amp;#41; == TRUE&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; nFactionAdjustment = 1.0;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; // &amp;#40;ii&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; int oTargetLawChaos = GetLawChaosValue&amp;#40;oTarget&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; int oTargetGoodEvil = GetGoodEvilValue&amp;#40;oTarget&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; int oSourceLawChaos = GetLawChaosValue&amp;#40;OBJECT_SELF&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; int oSourceGoodEvil = GetGoodEvilValue&amp;#40;OBJECT_SELF&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; int APB = abs&amp;#40;oSourceLawChaos - oTargetLawChaos&amp;#41;&amp;nbsp; + abs&amp;#40;oSourceGoodEvil - oTargetGoodEvil&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; int nTargetCharismaMod = GetAbilityModifier&amp;#40;ABILITY_CHARISMA, oTarget&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; return abs&amp;#40;10 + APB - &amp;#40;nTargetCharismaMod * 10&amp;#41;&amp;#41; * nFactionAdjustment;
&lt;br /&gt;

&lt;br /&gt;
&amp;#125;
&lt;br /&gt;

&lt;br /&gt;
//&amp;#58;&amp;#58;///////////////////////////////////////////////
&lt;br /&gt;
//&amp;#58;&amp;#58; AdjustFactionReputation
&lt;br /&gt;
//&amp;#58;&amp;#58; Copyright &amp;#40;c&amp;#41; 2001 Bioware Corp.
&lt;br /&gt;
//&amp;#58;&amp;#58;//////////////////////////////////////////////
&lt;br /&gt;
/*
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; Adjusts all faction member's reputation visa via
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; another faction.&amp;nbsp; Pass in a member from each
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; faction.
&lt;br /&gt;
*/
&lt;br /&gt;
//&amp;#58;&amp;#58;//////////////////////////////////////////////
&lt;br /&gt;
//&amp;#58;&amp;#58; Created By&amp;#58; Presotn Watamaniuk
&lt;br /&gt;
//&amp;#58;&amp;#58; Created On&amp;#58; Nov 15, 2001
&lt;br /&gt;
//&amp;#58;&amp;#58;//////////////////////////////////////////////
&lt;br /&gt;
void AdjustFactionReputation&amp;#40;object oTargetCreature, object oMemberOfSourceFaction, int nAdjustment&amp;#41;
&lt;br /&gt;
&amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; object oFaction = GetFirstFactionMember&amp;#40;oTargetCreature&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; while&amp;#40;GetIsObjectValid&amp;#40;oFaction&amp;#41;&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; AdjustReputation&amp;#40;oTargetCreature, oMemberOfSourceFaction, nAdjustment&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; oFaction = GetNextFactionMember&amp;#40;oTargetCreature&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; AdjustReputation&amp;#40;oTargetCreature, oMemberOfSourceFaction, nAdjustment&amp;#41;;
&lt;br /&gt;
&amp;#125;
&lt;br /&gt;

&lt;br /&gt;
//&amp;#58;&amp;#58;///////////////////////////////////////////////
&lt;br /&gt;
//&amp;#58;&amp;#58; Escape Via Teleport
&lt;br /&gt;
//&amp;#58;&amp;#58; Copyright &amp;#40;c&amp;#41; 2001 Bioware Corp.
&lt;br /&gt;
//&amp;#58;&amp;#58;//////////////////////////////////////////////
&lt;br /&gt;
/*
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; Makes the person teleport away and look like
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; they are casting a spell.
&lt;br /&gt;
*/
&lt;br /&gt;
//&amp;#58;&amp;#58;//////////////////////////////////////////////
&lt;br /&gt;
//&amp;#58;&amp;#58; Created By&amp;#58; Preston Watamaniuk
&lt;br /&gt;
//&amp;#58;&amp;#58; Created On&amp;#58; March 12, 2002
&lt;br /&gt;
//&amp;#58;&amp;#58;//////////////////////////////////////////////
&lt;br /&gt;

&lt;br /&gt;
void EscapeViaTeleport&amp;#40;object oFleeing&amp;#41;
&lt;br /&gt;
&amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; effect eVis = EffectVisualEffect&amp;#40;VFX_FNF_SUMMON_MONSTER_3&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; ActionCastFakeSpellAtObject&amp;#40;SPELL_LESSER_GLOBE_OF_INVULNERABILITY, oFleeing&amp;#41;;&amp;nbsp; &amp;nbsp;// JLR - OEI 07/11/05 -- Name Changed
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; DelayCommand&amp;#40;1.5, ApplyEffectAtLocation&amp;#40;DURATION_TYPE_INSTANT, eVis, GetLocation&amp;#40;oFleeing&amp;#41;&amp;#41;&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; DestroyObject&amp;#40;oFleeing, 2.5&amp;#41;;
&lt;br /&gt;
&amp;#125;
&lt;br /&gt;

&lt;br /&gt;

&lt;br /&gt;
//&amp;#58;&amp;#58;///////////////////////////////////////////////
&lt;br /&gt;
//&amp;#58;&amp;#58; GetP&amp;#40;arty&amp;#41;LocalInt
&lt;br /&gt;
//&amp;#58;&amp;#58; Copyright &amp;#40;c&amp;#41; 2001 Bioware Corp.
&lt;br /&gt;
//&amp;#58;&amp;#58;//////////////////////////////////////////////
&lt;br /&gt;
/*
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; Scans through all players in the party, to
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; treat them all as 'one person' for the purposes
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; of most plots. Makes our plots more multiplayer friendly.
&lt;br /&gt;
*/
&lt;br /&gt;
//&amp;#58;&amp;#58;//////////////////////////////////////////////
&lt;br /&gt;
//&amp;#58;&amp;#58; Created By&amp;#58; John
&lt;br /&gt;
//&amp;#58;&amp;#58; Created On&amp;#58;
&lt;br /&gt;
//&amp;#58;&amp;#58;//////////////////////////////////////////////
&lt;br /&gt;
int GetPLocalInt&amp;#40;object oPC,string sLocalName&amp;#41;
&lt;br /&gt;
&amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; int nValue = 0;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; object oMember;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; oMember = GetFirstFactionMember&amp;#40;oPC&amp;#41;;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; while &amp;#40;GetIsObjectValid&amp;#40;oMember&amp;#41;&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if &amp;#40;GetLocalInt&amp;#40;oPC,sLocalName&amp;#41; &amp;gt; nValue&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; nValue = GetLocalInt&amp;#40;oMember,sLocalName&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; oMember = GetNextFactionMember&amp;#40;oPC&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; return nValue;
&lt;br /&gt;
&amp;#125;
&lt;br /&gt;
//&amp;#58;&amp;#58;///////////////////////////////////////////////
&lt;br /&gt;
//&amp;#58;&amp;#58; SetP&amp;#40;arty&amp;#41;LocalInt
&lt;br /&gt;
//&amp;#58;&amp;#58; Copyright &amp;#40;c&amp;#41; 2001 Bioware Corp.
&lt;br /&gt;
//&amp;#58;&amp;#58;//////////////////////////////////////////////
&lt;br /&gt;
/*
&lt;br /&gt;

&lt;br /&gt;
*/
&lt;br /&gt;
//&amp;#58;&amp;#58;//////////////////////////////////////////////
&lt;br /&gt;
//&amp;#58;&amp;#58; Created By&amp;#58; John
&lt;br /&gt;
//&amp;#58;&amp;#58; Created On&amp;#58;
&lt;br /&gt;
//&amp;#58;&amp;#58;//////////////////////////////////////////////
&lt;br /&gt;
void SetPLocalInt&amp;#40;object oPC,string sLocalName, int nValue&amp;#41;
&lt;br /&gt;
&amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; object oMember;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; oMember = GetFirstFactionMember&amp;#40;oPC&amp;#41;;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; while &amp;#40;GetIsObjectValid&amp;#40;oMember&amp;#41;&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; SetLocalInt&amp;#40;oMember,sLocalName,nValue&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;oMember = GetNextFactionMember&amp;#40;oPC&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; return;
&lt;br /&gt;
&amp;#125;
&lt;br /&gt;
// * removes all negative effects
&lt;br /&gt;
void RemoveEffects&amp;#40;object oDead&amp;#41;
&lt;br /&gt;
&amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; //Declare major variables
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; object oTarget = oDead;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; effect eVisual = EffectVisualEffect&amp;#40;VFX_IMP_RESTORATION&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; int bValid;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; effect eBad = GetFirstEffect&amp;#40;oTarget&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; //Search for negative effects
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; while&amp;#40;GetIsEffectValid&amp;#40;eBad&amp;#41;&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if &amp;#40;GetEffectType&amp;#40;eBad&amp;#41; == EFFECT_TYPE_ABILITY_DECREASE ||
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; GetEffectType&amp;#40;eBad&amp;#41; == EFFECT_TYPE_AC_DECREASE ||
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; GetEffectType&amp;#40;eBad&amp;#41; == EFFECT_TYPE_ATTACK_DECREASE ||
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; GetEffectType&amp;#40;eBad&amp;#41; == EFFECT_TYPE_DAMAGE_DECREASE ||
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; GetEffectType&amp;#40;eBad&amp;#41; == EFFECT_TYPE_DAMAGE_IMMUNITY_DECREASE ||
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; GetEffectType&amp;#40;eBad&amp;#41; == EFFECT_TYPE_SAVING_THROW_DECREASE ||
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; GetEffectType&amp;#40;eBad&amp;#41; == EFFECT_TYPE_SPELL_RESISTANCE_DECREASE ||
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; GetEffectType&amp;#40;eBad&amp;#41; == EFFECT_TYPE_SKILL_DECREASE ||
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; GetEffectType&amp;#40;eBad&amp;#41; == EFFECT_TYPE_BLINDNESS ||
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; GetEffectType&amp;#40;eBad&amp;#41; == EFFECT_TYPE_DEAF ||
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; GetEffectType&amp;#40;eBad&amp;#41; == EFFECT_TYPE_PARALYZE ||
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; GetEffectType&amp;#40;eBad&amp;#41; == EFFECT_TYPE_NEGATIVELEVEL ||
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; GetEffectType&amp;#40;eBad&amp;#41; == EFFECT_TYPE_FRIGHTENED ||
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; GetEffectType&amp;#40;eBad&amp;#41; == EFFECT_TYPE_DAZED ||
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; GetEffectType&amp;#40;eBad&amp;#41; == EFFECT_TYPE_CONFUSED ||
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; GetEffectType&amp;#40;eBad&amp;#41; == EFFECT_TYPE_POISON ||
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; GetEffectType&amp;#40;eBad&amp;#41; == EFFECT_TYPE_DISEASE
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //Remove effect if it is negative.
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; RemoveEffect&amp;#40;oTarget, eBad&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; eBad = GetNextEffect&amp;#40;oTarget&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; //Fire cast spell at event for the specified target
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; SignalEvent&amp;#40;oTarget, EventSpellCastAt&amp;#40;OBJECT_SELF, SPELL_RESTORATION, FALSE&amp;#41;&amp;#41;;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; ApplyEffectToObject&amp;#40;DURATION_TYPE_INSTANT, eVisual, oTarget&amp;#41;;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; // * May 2002&amp;#58; Removed this because ActionRest is no longer an instant.
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; // * rest the player
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; //AssignCommand&amp;#40;oDead, ActionRest&amp;#40;&amp;#41;&amp;#41;;
&lt;br /&gt;
&amp;#125;
&lt;br /&gt;
int CheckDCStr&amp;#40;int DC, int nSkill, object oTarget&amp;#41;
&lt;br /&gt;
&amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; /*
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; Easy = Lvl/4 ...rounded up
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; Moderate = 3/Lvl + Lvl ...rounded up
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; Difficult = Lvl * 1.5 + 6 ...rounded up
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; */
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; int nLevel = GetHitDice&amp;#40;OBJECT_SELF&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; int nTest = 0;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; // * July 2
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; // * If nLevel is less than 0 or 0 then set it to 1
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; if &amp;#40;nLevel &amp;lt;= 0&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; nLevel = 1;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; switch &amp;#40;DC&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; case 0&amp;#58; nTest = nLevel / 4 + 1; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // * minor tweak to lower the values a little
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; case 1&amp;#58; nTest = &amp;#40;3 / nLevel + nLevel&amp;#41; - abs&amp;#40; &amp;#40;nLevel/2&amp;#41; -2&amp;#41;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; case 2&amp;#58; nTest = FloatToInt&amp;#40;nLevel * 1.5 + 6&amp;#41; - abs&amp;#40; &amp;#40; FloatToInt&amp;#40;nLevel/1.5&amp;#41; -2&amp;#41;&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; case 3&amp;#58; nTest = nTest + 7;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; case 4&amp;#58; nTest = nTest + 7;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; case 5&amp;#58; nTest = nTest + 7;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; // because there are no break statements it should
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; // add all the bonuses
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; //SpeakString&amp;#40;IntToString&amp;#40;nTest&amp;#41;&amp;#41;;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; // * Roll d20 + skill rank vs. DC + 10
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; if &amp;#40;GetSkillRank&amp;#40;nSkill, oTarget&amp;#41; + d20&amp;#40;&amp;#41; + GetAbilityModifier&amp;#40;ABILITY_STRENGTH, oTarget&amp;#41; &amp;gt;= &amp;#40;nTest + 10&amp;#41; &amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return TRUE;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return FALSE;
&lt;br /&gt;
&amp;#125;
&lt;br /&gt;
// * returns true if the player can afford to lose the indicated amount of XP without losing&amp;nbsp; a level
&lt;br /&gt;
int plotCanRemoveXP&amp;#40;object oPC, int nPenalty&amp;#41;
&lt;br /&gt;
&amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; int nXP = GetXP&amp;#40;oPC&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; int nHD = GetHitDice&amp;#40;oPC&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; // * You can not lose a level with this
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; int nMin = &amp;#40;&amp;#40;nHD * &amp;#40;nHD - 1&amp;#41;&amp;#41; / 2&amp;#41; * 1000;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; int nNewXP = nXP - nPenalty;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; if &amp;#40;nNewXP &amp;lt; nMin&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return FALSE;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; return TRUE;
&lt;br /&gt;
&amp;#125;
&lt;br /&gt;
int GetIsPlayerCharacter&amp;#40;object oTarget&amp;#41;
&lt;br /&gt;
&amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; if &amp;#40;GetIsPC&amp;#40;oTarget&amp;#41; == TRUE &amp;amp;&amp;amp; GetIsDM&amp;#40;oTarget&amp;#41; == FALSE&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return TRUE;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; return FALSE;
&lt;br /&gt;
&amp;#125;
&lt;br /&gt;
//&amp;#58;&amp;#58;///////////////////////////////////////////////
&lt;br /&gt;
//&amp;#58;&amp;#58; Name Reward_2daXP
&lt;br /&gt;
//&amp;#58;&amp;#58; Copyright &amp;#40;c&amp;#41; 2001 Bioware Corp.
&lt;br /&gt;
//&amp;#58;&amp;#58;//////////////////////////////////////////////
&lt;br /&gt;
/*
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; Pass in a PC and a row from the 'des_xp_rewards'
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; 2da file to reward the PC and/or party experience
&lt;br /&gt;
*/
&lt;br /&gt;
//&amp;#58;&amp;#58;//////////////////////////////////////////////
&lt;br /&gt;
//&amp;#58;&amp;#58; Created By&amp;#58; Keith Warner
&lt;br /&gt;
//&amp;#58;&amp;#58; Created On&amp;#58; May 29/03
&lt;br /&gt;
//&amp;#58;&amp;#58;//////////////////////////////////////////////
&lt;br /&gt;

&lt;br /&gt;
void Reward_2daXP&amp;#40;object oPC, int nRow, int bAllParty = TRUE, int nPercentage = 100&amp;#41;
&lt;br /&gt;
&amp;#123;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp;float fPercent = IntToFloat&amp;#40;nPercentage&amp;#41;/100.0;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;int nPlotXP = StringToInt&amp;#40;Get2DAString&amp;#40;&amp;quot;des_xp_rewards&amp;quot;, &amp;quot;XP&amp;quot;, nRow&amp;#41;&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;int nReward = FloatToInt&amp;#40;fPercent * nPlotXP&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;if &amp;#40;bAllParty == TRUE&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; object oParty = GetFirstFactionMember&amp;#40;oPC&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; while &amp;#40;oParty != OBJECT_INVALID&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; GiveXPToCreature&amp;#40;oParty, nReward&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; oParty = GetNextFactionMember&amp;#40;oPC&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;else
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; GiveXPToCreature&amp;#40;oPC, nReward&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;#125;
&lt;br /&gt;
&amp;#125;
&lt;br /&gt;
//&amp;#58;&amp;#58;///////////////////////////////////////////////
&lt;br /&gt;
//&amp;#58;&amp;#58; Name PlaySpeakSoundByStrRef
&lt;br /&gt;
/*
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; Do both a SpeakStringRef and a Play StringRef
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; at the same time.
&lt;br /&gt;
*/
&lt;br /&gt;
//&amp;#58;&amp;#58;//////////////////////////////////////////////
&lt;br /&gt;
//&amp;#58;&amp;#58; Created By&amp;#58; Keith Warner
&lt;br /&gt;
//&amp;#58;&amp;#58; Created On&amp;#58; Oct 23/03
&lt;br /&gt;
//&amp;#58;&amp;#58;//////////////////////////////////////////////
&lt;br /&gt;
void PlaySpeakSoundByStrRef&amp;#40;int nStrRef&amp;#41;
&lt;br /&gt;
&amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; SpeakStringByStrRef&amp;#40;nStrRef&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; PlaySoundByStrRef&amp;#40;nStrRef, FALSE&amp;#41;;
&lt;br /&gt;
&amp;#125;&lt;/td&gt;	&lt;/tr&gt;&lt;/table&gt;</description>
	  <pubDate>Mon, 21 Jun 2010 11:46:22 +0200</pubDate>
	  <author>Tink</author>
	</item>
	<item>
	  <title>Posté par FeudeDaisy le 21/06/2010  15:00</title>
	  <link>http://www.nwn2.fr/forum/viewtopic.php?p=18957#18957</link>
	  <guid></guid>
	  <description>&lt;img src=&quot;images/smiles/icon_rolleyes.gif&quot; alt=&quot;Rolling Eyes&quot; border=&quot;0&quot; /&gt; rhoooo la truc hé ^^!
&lt;br /&gt;

&lt;br /&gt;
Bon j'ai du mieux, plus de binôme, le gars se dirige bien vers la porte pour rentrer et on le retrouve à l'intérieur de la maison lorsqu'il fait nuit : par contre il n'est pas supprimé de et reste devant la porte la nuit venue!
&lt;br /&gt;
Je pense à une succession d'erreur en faite!
&lt;br /&gt;

&lt;br /&gt;
J'ai aussi remarqué que la principale erreur proviendrait des tags de zone de jour qu'il faut mettre : apparemment le jeu ou le script n'aime pas les tags compliqué et préfère les mots simples!
&lt;br /&gt;

&lt;br /&gt;
Est-ce que tu peut m'envoyer le dernier des scripts : &quot;NW_O2_CONINCLUDE&quot; ??</description>
	  <pubDate>Mon, 21 Jun 2010 16:00:13 +0200</pubDate>
	  <author>FeudeDaisy</author>
	</item>
	<item>
	  <title>Posté par Tink le 21/06/2010  16:23</title>
	  <link>http://www.nwn2.fr/forum/viewtopic.php?p=18958#18958</link>
	  <guid></guid>
	  <description>Coninclude ?
&lt;br /&gt;
Pour autant que je sache, ce script gère la génération des trésors aléatoires dans les coffres et c'est tout... (enfin c'est celui-ci que je modifie quand je veut changer les trésors dans les coffres :p)
&lt;br /&gt;

&lt;br /&gt;
Le voici (ça fais beaucoup à afficher, j'ai du mettre ça par &quot;petits&quot; bouts... la fin est sur la deuxième page) :
&lt;br /&gt;

&lt;br /&gt;
       &lt;table width=&quot;90%&quot; cellspacing=&quot;1&quot; cellpadding=&quot;3&quot; border=&quot;0&quot; align=&quot;center&quot;&gt;&lt;tr&gt; 	  &lt;td&gt;&lt;span class=&quot;mep-p-g&quot;&gt;Code:&lt;/span&gt;&lt;/td&gt;	&lt;/tr&gt;	&lt;tr&gt;	  &lt;td class=&quot;code&quot;&gt;//&amp;#58;&amp;#58;///////////////////////////////////////////////
&lt;br /&gt;
//&amp;#58;&amp;#58; NW_O2_CONINCLUDE.nss
&lt;br /&gt;
//&amp;#58;&amp;#58; Copyright &amp;#40;c&amp;#41; 2001 Bioware Corp.
&lt;br /&gt;
//&amp;#58;&amp;#58;//////////////////////////////////////////////
&lt;br /&gt;
/*
&lt;br /&gt;
&amp;nbsp; This include file handles the random treasure
&lt;br /&gt;
&amp;nbsp; distribution for treasure from creatures and containers
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp;&amp;#91; &amp;#93; Documented
&lt;br /&gt;
*/
&lt;br /&gt;
//&amp;#58;&amp;#58;//////////////////////////////////////////////
&lt;br /&gt;
//&amp;#58;&amp;#58; Created By&amp;#58;&amp;nbsp; Brent, Andrew
&lt;br /&gt;
//&amp;#58;&amp;#58; Created On&amp;#58;&amp;nbsp; November - May
&lt;br /&gt;
//&amp;#58;&amp;#58;//////////////////////////////////////////////
&lt;br /&gt;
// &amp;#58;&amp;#58; MODS
&lt;br /&gt;
// April 23 2002&amp;#58; Removed animal parts. They were silly.
&lt;br /&gt;
// May 6 2002&amp;#58; Added Undead to the EXCLUSION treasure list &amp;#40;they drop nothing now&amp;#41;
&lt;br /&gt;
//&amp;nbsp; - redistributed treasure &amp;#40;to lessen amoun&amp;nbsp; &amp;nbsp;t of armor and increase 'class specific treasure'
&lt;br /&gt;
//&amp;nbsp; - Rangers with heavy armor prof. will be treated as Fighters else as Barbarians
&lt;br /&gt;
//&amp;nbsp; - Gave wizards, druids and monk their own function
&lt;br /&gt;
// MAY 29 2002&amp;#58; Removed the heal potion from treasure
&lt;br /&gt;
//&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Moved nymph cloak +4 to treasure bracket 6
&lt;br /&gt;
//&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Added Monk Enhancement items to random treasure
&lt;br /&gt;
// ChazM 7/11/05 modified dbCreateItemOnObject&amp;#40;&amp;#41; - added PrintString&amp;#40;&amp;#41;'s
&lt;br /&gt;
// BDF - 5/30/06&amp;#58; included ginc_debug for output in dbCreateItemOnObejct
&lt;br /&gt;
// ChazM 7/7/06 modified CreateArcaneScroll&amp;#40;&amp;#41; and CreateDivineScroll&amp;#40;&amp;#41; to only reference existing scrolls.
&lt;br /&gt;
// ChazM 7/11/06 fixed GetNW_ArcaneScrollRandom
&lt;br /&gt;
// ChazM 7/17/06 removed &amp;quot;nw_wmgwn006&amp;quot;; modified GetNW_ArcaneScrollRandom&amp;#40;&amp;#41; and GetNW_ArcaneScrollSkip&amp;#40;&amp;#41;
&lt;br /&gt;
// ChazM 7/21/06 removed &amp;quot;nw_it_mpotion007&amp;quot; from CreatePotion&amp;#40;&amp;#41;
&lt;br /&gt;
// ChazM 8/2/06 removed &amp;quot;nw_maarcl074&amp;quot;, modified error output
&lt;br /&gt;
// ChazM 8/2/06 removed the following deleted blueprints&amp;#58; nw_it_mglove006, nw_it_mglove012, nw_it_mmidmisc01, nw_it_mmidmisc03, 
&lt;br /&gt;
//&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;nw_it_mmidmisc05, nw_it_msmlmisc20, nw_maarcl040, nw_maarcl041, nw_maarcl050, nw_maarcl086, nw_wblfh001, nw_wblmfh002, 
&lt;br /&gt;
//&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;nw_wblmfh003, nw_wblmfh004, nw_wblmfh005, nw_wblmfh006, nw_wblmfh008, nw_wblmfh010,w_wblmfh011, nw_wdbax001, nw_wdbmax002, 
&lt;br /&gt;
//&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;nw_wdbmax004, nw_wdbmax005, nw_wdbmax006, nw_wdbmax007, nw_wdbmax010, nw_wdbmax011,w_wdbmsw002, nw_wdbmsw004, nw_wdbmsw005, 
&lt;br /&gt;
//&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;nw_wdbmsw006, nw_wdbmsw007, nw_wdbmsw010, nw_wdbmsw011, nw_wdbsw001 
&lt;br /&gt;
// ChazM 8/8/06 removed &amp;quot;aarcl005&amp;quot;
&lt;br /&gt;
// ChazM 8/24/06 removed nw_it_mglove008, nw_it_mglove014, nw_it_mbracer011, nw_wspmsc003
&lt;br /&gt;
// ChazM 8/24/06 added CreateNWN1Book&amp;#40;&amp;#41;, CreateRecipeBook&amp;#40;&amp;#41;; modified CreateBook&amp;#40;&amp;#41;
&lt;br /&gt;
// ChazM 8/24/06 added constants for treasure drop chance.
&lt;br /&gt;
// ChazM 8/25/06 Amount of gold dropped for low level creatures increased.&amp;nbsp; Chance of multiple drops now possible for Low Treasure Type.&amp;nbsp; 
&lt;br /&gt;
//&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;No chance of Junk for any Treasure Type. Added some comments.
&lt;br /&gt;
// ChazM 8/25/06 changed LOW_TREASURE_DROP_CHANCE to 16 per Kevin's request.
&lt;br /&gt;
// ChazM 8/25/06 changed LOW_TREASURE_DROP_CHANCE to 20 per Kevin's request.
&lt;br /&gt;

&lt;br /&gt;
#include &amp;quot;ginc_debug&amp;quot;
&lt;br /&gt;
//void main&amp;#40;&amp;#41;&amp;#123;&amp;#125;
&lt;br /&gt;

&lt;br /&gt;
// * ---------
&lt;br /&gt;
// * CONSTANTS
&lt;br /&gt;
// * ---------
&lt;br /&gt;

&lt;br /&gt;

&lt;br /&gt;
// * tweaking constants
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; // * SIX LEVEL RANGES
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; const int RANGE_1_MIN = 0;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; const int RANGE_1_MAX = 5;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; const int RANGE_2_MIN = 6;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; const int RANGE_2_MAX = 8;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; const int RANGE_3_MIN = 9;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; const int RANGE_3_MAX = 10;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; const int RANGE_4_MIN = 11;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; const int RANGE_4_MAX = 13;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; const int RANGE_5_MIN = 14;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; const int RANGE_5_MAX = 16;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; const int RANGE_6_MIN = 17;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; const int RANGE_6_MAX = 100;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp;// Treasure Drop chances.
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;// A treasure drop will only occur this % of the time for the particular treasure type.
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;// by default creatures use low treasure &amp;#40;set in nw_c2_default9&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;const int LOW_TREASURE_DROP_CHANCE = 20;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;const int MID_TREASURE_DROP_CHANCE = 100;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;const int HIGH_TREASURE_DROP_CHANCE = 100;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; // * NUMBER OF ITEMS APPEARING
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;// if there is a treasure drop, this is the likelihood of multiple drops, based on Treasure Type.
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; const int NUMBER_LOW_ONE&amp;nbsp; &amp;nbsp;= 90;&amp;nbsp; const int NUMBER_MED_ONE&amp;nbsp; &amp;nbsp; = 60; const int NUMBER_HIGH_ONE&amp;nbsp; &amp;nbsp;= 40;&amp;nbsp; const int NUMBER_BOSS_ONE = 100;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; const int NUMBER_LOW_TWO&amp;nbsp; &amp;nbsp;= 9;&amp;nbsp; &amp;nbsp;const int NUMBER_MED_TWO&amp;nbsp; &amp;nbsp; = 30; const int NUMBER_HIGH_TWO&amp;nbsp; &amp;nbsp;= 40;&amp;nbsp; const int NUMBER_BOSS_TWO = 0;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; const int NUMBER_LOW_THREE = 1;&amp;nbsp; &amp;nbsp;const int NUMBER_MED_THREE&amp;nbsp; = 10; const int NUMBER_HIGH_THREE = 20;&amp;nbsp; const int NUMBER_BOSS_THREE = 0;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; const int NUMBER_BOOK_ONE = 75;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; const int NUMBER_BOOK_TWO = 20;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; const int NUMBER_BOOK_THREE = 5;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; // * AMOUNT OF GOLD BY VALUE
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;// the relative amount for each gold drop.&amp;nbsp; The base amount is scaled by level &amp;#40;of the creature for creature treasure&amp;#41;.
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; const float LOW_MOD_GOLD = 0.5;&amp;nbsp; &amp;nbsp;const float MEDIUM_MOD_GOLD = 1.0; const float HIGH_MOD_GOLD = 3.0;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; // * FREQUENCY OF ITEM TYPE APPEARING BY TREASURE TYPE
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; const int LOW_PROB_BOOK&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;= 1;&amp;nbsp; &amp;nbsp; &amp;nbsp;const int MEDIUM_PROB_BOOK &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;= 1;&amp;nbsp; &amp;nbsp;const int HIGH_PROB_BOOK &amp;nbsp; &amp;nbsp;= 1;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; const int LOW_PROB_ANIMAL&amp;nbsp; &amp;nbsp; &amp;nbsp;= 0;&amp;nbsp; &amp;nbsp; &amp;nbsp;const int MEDIUM_PROB_ANIMAL &amp;nbsp; &amp;nbsp;= 0;&amp;nbsp; &amp;nbsp; &amp;nbsp;const int HIGH_PROB_ANIMAL &amp;nbsp; &amp;nbsp;= 0;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; const int LOW_PROB_JUNK&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;= 0;&amp;nbsp; &amp;nbsp; &amp;nbsp;const int MEDIUM_PROB_JUNK &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;= 0;&amp;nbsp; &amp;nbsp; &amp;nbsp;const int HIGH_PROB_JUNK &amp;nbsp; &amp;nbsp;= 0;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; const int LOW_PROB_GOLD &amp;nbsp; &amp;nbsp;= 47;&amp;nbsp; &amp;nbsp;const int MEDIUM_PROB_GOLD &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;= 38; &amp;nbsp; &amp;nbsp;const int HIGH_PROB_GOLD &amp;nbsp; &amp;nbsp;= 15;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; const int LOW_PROB_GEM&amp;nbsp; &amp;nbsp; &amp;nbsp;= 9;&amp;nbsp; &amp;nbsp; const int MEDIUM_PROB_GEM &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;= 15; &amp;nbsp; &amp;nbsp;const int HIGH_PROB_GEM &amp;nbsp; &amp;nbsp;= 15;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; const int LOW_PROB_JEWEL &amp;nbsp; &amp;nbsp;= 4;&amp;nbsp; &amp;nbsp; const int MEDIUM_PROB_JEWEL &amp;nbsp; &amp;nbsp;= 6; &amp;nbsp; &amp;nbsp;const int HIGH_PROB_JEWEL &amp;nbsp; &amp;nbsp;= 15;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; const int LOW_PROB_ARCANE &amp;nbsp; &amp;nbsp;= 3;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;const int MEDIUM_PROB_ARCANE &amp;nbsp; &amp;nbsp;= 3; &amp;nbsp; &amp;nbsp;const int HIGH_PROB_ARCANE &amp;nbsp; &amp;nbsp;= 3;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; const int LOW_PROB_DIVINE &amp;nbsp; &amp;nbsp;= 3;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;const int MEDIUM_PROB_DIVINE &amp;nbsp; &amp;nbsp;= 3;&amp;nbsp; &amp;nbsp; &amp;nbsp;const int HIGH_PROB_DIVINE &amp;nbsp; &amp;nbsp;= 3;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; const int LOW_PROB_AMMO &amp;nbsp; &amp;nbsp;= 10;&amp;nbsp; &amp;nbsp;const int MEDIUM_PROB_AMMO &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;= 5;&amp;nbsp; &amp;nbsp; &amp;nbsp;const int HIGH_PROB_AMMO&amp;nbsp; &amp;nbsp; &amp;nbsp;= 3;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; const int LOW_PROB_KIT &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;= 5;&amp;nbsp; &amp;nbsp; const int MEDIUM_PROB_KIT &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;= 5;&amp;nbsp; &amp;nbsp; &amp;nbsp;const int HIGH_PROB_KIT&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;= 5;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; const int LOW_PROB_POTION &amp;nbsp; &amp;nbsp;= 17;&amp;nbsp; &amp;nbsp;const int MEDIUM_PROB_POTION &amp;nbsp; &amp;nbsp;= 20; &amp;nbsp; &amp;nbsp;const int HIGH_PROB_POTION&amp;nbsp; &amp;nbsp;= 9;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; const int LOW_PROB_TABLE2 &amp;nbsp; &amp;nbsp;= 1;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;const int MEDIUM_PROB_TABLE2 &amp;nbsp; &amp;nbsp;= 3; &amp;nbsp; &amp;nbsp;const int HIGH_PROB_TABLE2&amp;nbsp; &amp;nbsp;= 30;
&lt;br /&gt;

&lt;br /&gt;

&lt;br /&gt;
// * readability constants
&lt;br /&gt;

&lt;br /&gt;
const int&amp;nbsp; &amp;nbsp; TREASURE_LOW = 1;
&lt;br /&gt;
const int&amp;nbsp; &amp;nbsp; TREASURE_MEDIUM = 2;
&lt;br /&gt;
const int&amp;nbsp; &amp;nbsp; TREASURE_HIGH = 3;
&lt;br /&gt;
const int&amp;nbsp; &amp;nbsp; TREASURE_BOSS = 4;
&lt;br /&gt;
const int&amp;nbsp; &amp;nbsp; TREASURE_BOOK = 5;
&lt;br /&gt;

&lt;br /&gt;

&lt;br /&gt;
// * JUMP_LEVEL is used in a Specific item function
&lt;br /&gt;
// * in the case where a generic item is called for within that function
&lt;br /&gt;
// * it will create a generic item by adding JUMP_LEVEL to the character's
&lt;br /&gt;
// * hit die for the purposes of the treasure evaluation.
&lt;br /&gt;
// * May 2002&amp;#58; Lowered JUMP_LEVEL from 3 to 2
&lt;br /&gt;

&lt;br /&gt;
const int JUMP_LEVEL = 2;
&lt;br /&gt;

&lt;br /&gt;
// BDF - OEI&amp;#58; 7/6/06
&lt;br /&gt;
// Bioware's hard-coded systems do not allow for easy migration to NWN2 due to an excess of hard-coded data values
&lt;br /&gt;
// integrated with their logic.&amp;nbsp; Below are various constants that define certain quantities that are
&lt;br /&gt;
// valid in NWN2, but not necessarily NWN1.
&lt;br /&gt;
const int NWN2_MAX_NUM_ITEMS_BOOKS = 32;
&lt;br /&gt;

&lt;br /&gt;

&lt;br /&gt;
///////////////////////////////////////
&lt;br /&gt;
//* Declarations
&lt;br /&gt;
///////////////////////////////////////
&lt;br /&gt;

&lt;br /&gt;
void CreateBook&amp;#40;object oTarget&amp;#41;;
&lt;br /&gt;
void CreateNWN1Book&amp;#40;object oTarget&amp;#41;;
&lt;br /&gt;
void CreateRecipeBook&amp;#40;object oTarget&amp;#41;;
&lt;br /&gt;

&lt;br /&gt;

&lt;br /&gt;
void CreateGenericExotic&amp;#40;object oTarget, object oAdventurer, int nModifier = 0&amp;#41;;
&lt;br /&gt;
void CreateGenericMonkWeapon&amp;#40;object oTarget, object oAdventurer, int nModifier = 0&amp;#41;;
&lt;br /&gt;
void CreateSpecificMonkWeapon&amp;#40;object oTarget, object oAdventurer, int nModifier = 0&amp;#41;;
&lt;br /&gt;
void CreateGenericDruidWeapon&amp;#40;object oTarget, object oAdventurer, int nModifier = 0&amp;#41;;
&lt;br /&gt;
void CreateSpecificDruidWeapon&amp;#40;object oTarget, object oAdventurer, int nModifier = 0&amp;#41;;
&lt;br /&gt;
void CreateGenericWizardWeapon&amp;#40;object oTarget, object oAdventurer, int nModifier = 0&amp;#41;;
&lt;br /&gt;
void CreateSpecificWizardWeapon&amp;#40;object oTarget, object oAdventurer, int nModifier = 0&amp;#41;;
&lt;br /&gt;
int nDetermineClassToUse&amp;#40;object oCharacter&amp;#41;;
&lt;br /&gt;

&lt;br /&gt;

&lt;br /&gt;
///////////////////////////////////////
&lt;br /&gt;
// * IMPLEMENTATION
&lt;br /&gt;
///////////////////////////////////////
&lt;br /&gt;

&lt;br /&gt;
// * Comment the speakstring in to debug treasure generation
&lt;br /&gt;
void dbSpeak&amp;#40;string s&amp;#41;
&lt;br /&gt;
&amp;#123;
&lt;br /&gt;
//&amp;nbsp; &amp;nbsp;SpeakString&amp;#40;s&amp;#41;;
&lt;br /&gt;
&amp;#125;
&lt;br /&gt;

&lt;br /&gt;
//* made this function to help with debugging
&lt;br /&gt;
void dbCreateItemOnObject&amp;#40;string sItemTemplate, object oTarget = OBJECT_SELF, int nStackSize = 1&amp;#41;
&lt;br /&gt;
&amp;#123;
&lt;br /&gt;
/*
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; if &amp;#40;sItemTemplate == &amp;quot;&amp;quot;&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; PrintString&amp;#40;&amp;quot;blank item passed into dbCreateItemOnObject. Please report as bug to Brent.&amp;quot;&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; dbSpeak&amp;#40;sItemTemplate&amp;#41;;
&lt;br /&gt;
*/
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; //sItemTemplate = GetStringLowerCase
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; if &amp;#40;nStackSize == 1&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // * checks to see if this is a throwing item and if it is
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // * it creates more
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; string sRoot = GetSubString&amp;#40;sItemTemplate, 0, 6&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //dbSpeak&amp;#40;&amp;quot;ROOT&amp;#58; &amp;quot; + sRoot&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if &amp;#40;GetStringLowerCase&amp;#40;sRoot&amp;#41; == &amp;quot;nw_wth&amp;quot;&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; nStackSize = Random&amp;#40;30&amp;#41; + 1;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; object oItem = CreateItemOnObject&amp;#40;sItemTemplate, oTarget, nStackSize&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;PrintString &amp;#40;&amp;quot;Created &amp;quot; + IntToString&amp;#40;nStackSize&amp;#41; + &amp;quot; of &amp;quot; + sItemTemplate + &amp;quot; on &amp;quot; + GetName&amp;#40;oTarget&amp;#41;&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; if &amp;#40;GetIsObjectValid&amp;#40;oItem&amp;#41; == FALSE &amp;amp;&amp;amp; sItemTemplate != &amp;quot;NW_IT_GOLD001&amp;quot;&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // * check to see if item is there in a stack, if not give warning
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if &amp;#40;GetIsObjectValid&amp;#40;GetItemPossessedBy&amp;#40;oTarget, GetStringUpperCase&amp;#40;sItemTemplate&amp;#41;&amp;#41;&amp;#41; == FALSE &amp;amp;&amp;amp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; GetIsObjectValid&amp;#40;GetItemPossessedBy&amp;#40;oTarget, GetStringLowerCase&amp;#40;sItemTemplate&amp;#41;&amp;#41;&amp;#41; == FALSE&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;string sErrorOutput = &amp;quot;nw_o2_coninclude&amp;#58; ******&amp;quot; + sItemTemplate + &amp;quot; is an invalid item template. Please report as bug. &amp;#91;Note that this is not reproducible as this item was randomly chosen&amp;#93;&amp;quot;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;PrintString&amp;#40;&amp;quot;**DESIGN***&amp;quot;&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; PrintString&amp;#40; sErrorOutput &amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; PrintString&amp;#40;&amp;quot;*******&amp;quot;&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;PrettyError&amp;#40; sErrorOutput &amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;

&lt;br /&gt;
&amp;#125;
&lt;br /&gt;

&lt;br /&gt;

&lt;br /&gt;
// *
&lt;br /&gt;
// * GET FUNCTIONS
&lt;br /&gt;
// *
&lt;br /&gt;

&lt;br /&gt;
// * Returns the object that either last opened the container or destroyed it
&lt;br /&gt;
object GetLastOpener&amp;#40;&amp;#41;
&lt;br /&gt;
&amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; if &amp;#40;GetIsObjectValid&amp;#40;GetLastOpenedBy&amp;#40;&amp;#41;&amp;#41; == TRUE&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //dbSpeak&amp;#40;&amp;quot;LastOpener&amp;#58; GetLastOpenedBy &amp;quot; + GetTag&amp;#40;GetLastOpenedBy&amp;#40;&amp;#41;&amp;#41;&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return GetLastOpenedBy&amp;#40;&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; else
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; if &amp;#40;GetIsObjectValid&amp;#40;GetLastKiller&amp;#40;&amp;#41;&amp;#41; == TRUE&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //dbSpeak&amp;#40;&amp;quot;LastOpener&amp;#58; GetLastAttacker&amp;quot;&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return GetLastKiller&amp;#40;&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; //dbSpeak&amp;#40;&amp;quot;LastOpener&amp;#58; The Object is Invalid you weenie!&amp;quot;&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; return OBJECT_INVALID;
&lt;br /&gt;
&amp;#125;
&lt;br /&gt;

&lt;br /&gt;
//&amp;#58;&amp;#58;///////////////////////////////////////////////
&lt;br /&gt;
//&amp;#58;&amp;#58; GetRange
&lt;br /&gt;
//&amp;#58;&amp;#58; Copyright &amp;#40;c&amp;#41; 2002 Bioware Corp.
&lt;br /&gt;
//&amp;#58;&amp;#58;//////////////////////////////////////////////
&lt;br /&gt;
/*
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; Returns true if nHD matches the correct
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; level range for the indicated nCategory.
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#40;i.e., First to Fourth level characters
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; are considered Range1&amp;#41;
&lt;br /&gt;
*/
&lt;br /&gt;
//&amp;#58;&amp;#58;//////////////////////////////////////////////
&lt;br /&gt;
//&amp;#58;&amp;#58; Created By&amp;#58;&amp;nbsp; Brent
&lt;br /&gt;
//&amp;#58;&amp;#58; Created On&amp;#58;
&lt;br /&gt;
//&amp;#58;&amp;#58;//////////////////////////////////////////////
&lt;br /&gt;
int GetRange&amp;#40;int nCategory, int nHD&amp;#41;
&lt;br /&gt;
&amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; int nMin = 0; int nMax = 0;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; switch &amp;#40;nCategory&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 6&amp;#58; nMin = RANGE_6_MIN; nMax = RANGE_6_MAX; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 5&amp;#58; nMin = RANGE_5_MIN; nMax = RANGE_5_MAX; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 4&amp;#58; nMin = RANGE_4_MIN; nMax = RANGE_4_MAX; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 3&amp;#58; nMin = RANGE_3_MIN; nMax = RANGE_3_MAX; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 2&amp;#58; nMin = RANGE_2_MIN; nMax = RANGE_2_MAX; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 1&amp;#58; nMin = RANGE_1_MIN; nMax = RANGE_1_MAX; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp;//dbSpeak&amp;#40;&amp;quot;nMin = &amp;quot; + IntToString&amp;#40;nMin&amp;#41;&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;//dbSpeak&amp;#40;&amp;quot;nMax = &amp;quot; + IntToString&amp;#40;nMax&amp;#41;&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;//dbSpeak&amp;#40;&amp;quot;GetRange.nHD = &amp;quot; + IntToString&amp;#40;nHD&amp;#41;&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;if &amp;#40;nHD &amp;gt;= nMin &amp;amp;&amp;amp; nHD &amp;lt;= nMax&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; return TRUE;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;#125;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; return FALSE;
&lt;br /&gt;

&lt;br /&gt;
&amp;#125;
&lt;br /&gt;

&lt;br /&gt;
//&amp;#58;&amp;#58;///////////////////////////////////////////////
&lt;br /&gt;
//&amp;#58;&amp;#58; GetNumberOfItems
&lt;br /&gt;
//&amp;#58;&amp;#58; Copyright &amp;#40;c&amp;#41; 2002 Bioware Corp.
&lt;br /&gt;
//&amp;#58;&amp;#58;//////////////////////////////////////////////
&lt;br /&gt;
/*
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; Returns the number of items to create.
&lt;br /&gt;
*/
&lt;br /&gt;
//&amp;#58;&amp;#58;//////////////////////////////////////////////
&lt;br /&gt;
//&amp;#58;&amp;#58; Created By&amp;#58;&amp;nbsp; Brent
&lt;br /&gt;
//&amp;#58;&amp;#58; Created On&amp;#58;
&lt;br /&gt;
//&amp;#58;&amp;#58;//////////////////////////////////////////////
&lt;br /&gt;
int GetNumberOfItems&amp;#40;int nTreasureType&amp;#41;
&lt;br /&gt;
&amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; int nItems = 0;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; int nRandom = 0;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; int nProbThreeItems = 0;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; int nProbTwoItems = 0;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; int nProbOneItems = 0;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; if &amp;#40;nTreasureType == TREASURE_LOW&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;nProbThreeItems = NUMBER_LOW_THREE;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;nProbTwoItems = NUMBER_LOW_TWO;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;nProbOneItems = NUMBER_LOW_ONE;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; else
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; if &amp;#40;nTreasureType == TREASURE_MEDIUM&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;nProbThreeItems = NUMBER_MED_THREE;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;nProbTwoItems = NUMBER_MED_TWO;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;nProbOneItems = NUMBER_MED_ONE;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; else
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; if &amp;#40;nTreasureType == TREASURE_HIGH&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;nProbThreeItems = NUMBER_HIGH_THREE;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;nProbTwoItems = NUMBER_HIGH_TWO;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;nProbOneItems = NUMBER_HIGH_ONE;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; else
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; if &amp;#40;nTreasureType == TREASURE_BOSS&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;nProbThreeItems = NUMBER_BOSS_THREE;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;nProbTwoItems = NUMBER_BOSS_TWO;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;nProbOneItems = NUMBER_BOSS_ONE;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; else
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; if &amp;#40;nTreasureType == TREASURE_BOOK&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;nProbThreeItems = NUMBER_BOOK_THREE;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;nProbTwoItems = NUMBER_BOOK_TWO;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;nProbOneItems = NUMBER_BOOK_ONE;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;

&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; nRandom = d100&amp;#40;&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; if &amp;#40;nRandom &amp;lt;= nProbThreeItems&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; nItems = 3;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; else
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; if &amp;#40;nRandom &amp;lt;= nProbTwoItems + nProbThreeItems&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; nItems = 2;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; else
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; nItems = 1;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; // * May 13 2002&amp;#58; Cap number of items, in case of logic error
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; if &amp;#40;nItems &amp;gt; 3&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; nItems = 3;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; return nItems;
&lt;br /&gt;
&amp;#125;
&lt;br /&gt;

&lt;br /&gt;

&lt;br /&gt;
// *
&lt;br /&gt;
// * TREASURE GENERATION FUNCTIONS
&lt;br /&gt;
// *
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; // *
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; // * Non-Scaling Treasure
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; // *
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; void CreateBook&amp;#40;object oTarget&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;int iBookRoll = Random&amp;#40;10&amp;#41; + 1;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;if &amp;#40;iBookRoll &amp;lt;= 7&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;CreateRecipeBook&amp;#40;oTarget&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;else
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;CreateNWN1Book&amp;#40;oTarget&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; void CreateNWN1Book&amp;#40;object oTarget&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //int nBook1 = Random&amp;#40;31&amp;#41; + 1;&amp;nbsp; &amp;nbsp;// totally awesome magic numbers, guys!;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int nBook1 = Random&amp;#40; NWN2_MAX_NUM_ITEMS_BOOKS &amp;#41; + 1;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; string sRes = &amp;quot;NW_IT_BOOK0&amp;quot;;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if &amp;#40;nBook1 &amp;lt; 10&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; sRes = sRes + &amp;quot;0&amp;quot; + IntToString&amp;#40;nBook1&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; else
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; sRes = sRes + IntToString&amp;#40;nBook1&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //dbSpeak&amp;#40;&amp;quot;Create book&amp;quot;&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;dbCreateItemOnObject&amp;#40;sRes, oTarget&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; void CreateRecipeBook&amp;#40;object oTarget&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int iBook = Random&amp;#40;27&amp;#41; + 1;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;// highest book is 29, but 22 and 26 are skipped
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;if &amp;#40;iBook&amp;gt;=22&amp;#41; iBook++;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;if &amp;#40;iBook&amp;gt;=26&amp;#41; iBook++;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; string sRes = &amp;quot;n2_crft_book_recipe0&amp;quot;;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if &amp;#40;iBook &amp;lt; 10&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; sRes += &amp;quot;0&amp;quot;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; sRes += IntToString&amp;#40;iBook&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //dbSpeak&amp;#40;&amp;quot;Create book&amp;quot;&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;dbCreateItemOnObject&amp;#40;sRes, oTarget&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; void CreateAnimalPart&amp;#40;object oTarget&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; string sRes = &amp;quot;&amp;quot;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int nResult = Random&amp;#40;1&amp;#41; + 1;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; switch &amp;#40;nResult&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // case 1&amp;#58; sRes = &amp;quot;NW_IT_MSMLMISC20&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // case 2&amp;#58; sRes = &amp;quot;NW_IT_MMIDMISC05&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 1&amp;#58; sRes = &amp;quot;NW_IT_MMIDMISC06&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //dbSpeak&amp;#40;&amp;quot;animal&amp;quot;&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; dbCreateItemOnObject&amp;#40;sRes, oTarget&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; void CreateJunk&amp;#40;object oTarget&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; string sRes = &amp;quot;NW_IT_TORCH001&amp;quot;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int NUM_ITEMS = 6;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int nResult = Random&amp;#40;NUM_ITEMS&amp;#41; + 1;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int nKit = 0;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; switch &amp;#40;nResult&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 1&amp;#58; sRes = &amp;quot;NW_IT_MPOTION021&amp;quot;; break; //ale
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 2&amp;#58; sRes = &amp;quot;NW_IT_MPOTION021&amp;quot;; break;&amp;nbsp; &amp;nbsp;// ale
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 3&amp;#58; sRes = &amp;quot;NW_IT_MPOTION023&amp;quot;; break; // wine
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 4&amp;#58; sRes = &amp;quot;NW_IT_MPOTION021&amp;quot;; break; // ale
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 5&amp;#58; sRes = &amp;quot;NW_IT_MPOTION022&amp;quot;; break; // spirits
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 6&amp;#58; sRes = &amp;quot;NW_IT_TORCH001&amp;quot;; break; //torch
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //dbSpeak&amp;#40;&amp;quot;CreateJunk&amp;quot;&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; dbCreateItemOnObject&amp;#40;sRes, oTarget&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; // *
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; // * Scaling Treasure
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; // *
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; void CreateGold&amp;#40;object oTarget, object oAdventurer, int nTreasureType, int nModifier = 0&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int nHD = GetHitDice&amp;#40;oAdventurer&amp;#41; + nModifier;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int nAmount = 0;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if &amp;#40;GetRange&amp;#40;1, nHD&amp;#41;&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; nAmount = d12&amp;#40;2&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; else if &amp;#40;GetRange&amp;#40;2, nHD&amp;#41;&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; nAmount = d20&amp;#40;2&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; else if &amp;#40;GetRange&amp;#40;3, nHD&amp;#41;&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; nAmount = d20&amp;#40;3&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; else if &amp;#40;GetRange&amp;#40;4, nHD&amp;#41;&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; nAmount = d20&amp;#40;5&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; else if &amp;#40;GetRange&amp;#40;5, nHD&amp;#41;&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; nAmount = d20&amp;#40;8&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; else if &amp;#40;GetRange&amp;#40;6, nHD&amp;#41;&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; nAmount = d20&amp;#40;10&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; float nMod = 0.0;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if &amp;#40;nTreasureType == TREASURE_LOW&amp;#41; nMod = LOW_MOD_GOLD;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; else if &amp;#40;nTreasureType == TREASURE_MEDIUM&amp;#41; nMod = MEDIUM_MOD_GOLD;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; else if &amp;#40;nTreasureType == TREASURE_HIGH&amp;#41; nMod = HIGH_MOD_GOLD;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // * always at least 1gp is created
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; nAmount = FloatToInt&amp;#40;nAmount * nMod&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if &amp;#40;nAmount &amp;lt;= 0&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; nAmount = 1;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //dbSpeak&amp;#40;&amp;quot;gold&amp;quot;&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; dbCreateItemOnObject&amp;#40;&amp;quot;NW_IT_GOLD001&amp;quot;, oTarget, nAmount&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; void CreateGem&amp;#40;object oTarget, object oAdventurer, int nTreasureType, int nModifier = 0&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int nHD = GetHitDice&amp;#40;oAdventurer&amp;#41; + nModifier;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; string sGem = &amp;quot;nw_it_gem001&amp;quot;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if &amp;#40;GetRange&amp;#40;1, nHD&amp;#41;&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int nRandom = Random&amp;#40;9&amp;#41; + 1;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; switch &amp;#40;nRandom&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 1&amp;#58; sGem = &amp;quot;nw_it_gem001&amp;quot;;&amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 2&amp;#58; sGem = &amp;quot;nw_it_gem007&amp;quot;;&amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 3&amp;#58; sGem = &amp;quot;nw_it_gem002&amp;quot;;&amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 4&amp;#58; case 5&amp;#58; sGem = &amp;quot;nw_it_gem004&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 6&amp;#58; case 7&amp;#58; sGem = &amp;quot;nw_it_gem014&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 8&amp;#58; sGem = &amp;quot;nw_it_gem003&amp;quot;;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 9&amp;#58; sGem = &amp;quot;nw_it_gem015&amp;quot;;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; else if &amp;#40;GetRange&amp;#40;2, nHD&amp;#41;&amp;#41;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// 30 GP Avg; 150 gp Max
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int nRandom = d12&amp;#40;&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; switch &amp;#40;nRandom&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 1&amp;#58; sGem = &amp;quot;nw_it_gem001&amp;quot;;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 2&amp;#58; sGem = &amp;quot;nw_it_gem007&amp;quot;;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 3&amp;#58; sGem = &amp;quot;nw_it_gem002&amp;quot;;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 4&amp;#58; sGem = &amp;quot;nw_it_gem004&amp;quot;;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 5&amp;#58; case 6&amp;#58; sGem = &amp;quot;nw_it_gem014&amp;quot;;&amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 7&amp;#58; case 8&amp;#58; sGem = &amp;quot;nw_it_gem003&amp;quot;;&amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 9&amp;#58; case 10&amp;#58; sGem = &amp;quot;nw_it_gem015&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 11&amp;#58; sGem = &amp;quot;nw_it_gem011&amp;quot;;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 12&amp;#58; sGem = &amp;quot;nw_it_gem013&amp;quot;;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; else if &amp;#40;GetRange&amp;#40;3, nHD&amp;#41;&amp;#41;&amp;nbsp; // 75GP Avg; 500 gp max
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int nRandom = d2&amp;#40;&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; switch &amp;#40;nRandom&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 1&amp;#58; sGem = &amp;quot;nw_it_gem013&amp;quot;;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 2&amp;#58; sGem = &amp;quot;nw_it_gem010&amp;quot;;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; else if &amp;#40;GetRange&amp;#40;4, nHD&amp;#41;&amp;#41;&amp;nbsp; // 150 gp avg; 1000 gp max
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int nRandom = d3&amp;#40;&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; switch &amp;#40;nRandom&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 1&amp;#58; sGem = &amp;quot;nw_it_gem013&amp;quot;;&amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 2&amp;#58; sGem = &amp;quot;nw_it_gem010&amp;quot;;&amp;nbsp; &amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 3&amp;#58; sGem = &amp;quot;nw_it_gem008&amp;quot;;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; else if &amp;#40;GetRange&amp;#40;5, nHD&amp;#41;&amp;#41;&amp;nbsp; // 300 gp avg; any
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int nRandom = d6&amp;#40;&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; switch &amp;#40;nRandom&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 1&amp;#58; sGem = &amp;quot;nw_it_gem013&amp;quot;;&amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 2&amp;#58; sGem = &amp;quot;nw_it_gem010&amp;quot;;&amp;nbsp; &amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 3&amp;#58; case 4&amp;#58; sGem = &amp;quot;nw_it_gem008&amp;quot;;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 5&amp;#58; sGem = &amp;quot;nw_it_gem009&amp;quot;;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 6&amp;#58; sGem = &amp;quot;nw_it_gem009&amp;quot;;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; else if &amp;#40;GetRange&amp;#40;6, nHD&amp;#41;&amp;#41;// * Anything higher than level 15&amp;nbsp; &amp;nbsp; 500 gp avg; any
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int nRandom = Random&amp;#40;8&amp;#41; + 1;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; switch &amp;#40;nRandom&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 1&amp;#58; sGem = &amp;quot;nw_it_gem013&amp;quot;;&amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 2&amp;#58; sGem = &amp;quot;nw_it_gem010&amp;quot;;&amp;nbsp; &amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 3&amp;#58; case 4&amp;#58; sGem = &amp;quot;nw_it_gem008&amp;quot;;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 5&amp;#58; sGem = &amp;quot;nw_it_gem009&amp;quot;;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 6&amp;#58; sGem = &amp;quot;nw_it_gem009&amp;quot;;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 7&amp;#58; sGem = &amp;quot;nw_it_gem006&amp;quot;;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 8&amp;#58; sGem = &amp;quot;nw_it_gem012&amp;quot;;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; //dbSpeak&amp;#40;&amp;quot;Create Gem&amp;quot;&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; dbCreateItemOnObject&amp;#40;sGem, oTarget, 1&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; void CreateJewel&amp;#40;object oTarget, object oAdventurer, int nTreasureType, int nModifier = 0&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int nHD = GetHitDice&amp;#40;oAdventurer&amp;#41; + nModifier;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; string sJewel = &amp;quot;&amp;quot;;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if &amp;#40;GetRange&amp;#40;1, nHD&amp;#41;&amp;#41;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // 15 gp avg; 75 gp max
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int nRandom = d2&amp;#40;&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; switch &amp;#40;nRandom&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 1&amp;#58; sJewel = &amp;quot;nw_it_mring021&amp;quot;;&amp;nbsp; &amp;nbsp;break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 2&amp;#58; sJewel = &amp;quot;nw_it_mneck020&amp;quot;;&amp;nbsp; &amp;nbsp;break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; else if &amp;#40;GetRange&amp;#40;2, nHD&amp;#41;&amp;#41;&amp;nbsp; &amp;nbsp;// 30 GP Avg; 150 gp Max
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int nRandom = d6&amp;#40;&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; switch &amp;#40;nRandom&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 1&amp;#58; sJewel = &amp;quot;nw_it_mring021&amp;quot;;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 2&amp;#58; case 3&amp;#58; sJewel = &amp;quot;nw_it_mneck020&amp;quot;;&amp;nbsp; &amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 4&amp;#58; sJewel = &amp;quot;nw_it_mring022&amp;quot;;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 5&amp;#58; case 6&amp;#58; sJewel = &amp;quot;nw_it_mneck023&amp;quot;;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; else if &amp;#40;GetRange&amp;#40;3, nHD&amp;#41;&amp;#41;&amp;nbsp; // 75GP Avg; 500 gp max
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int nRandom = d6&amp;#40;&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; switch &amp;#40;nRandom&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 1&amp;#58; sJewel = &amp;quot;nw_it_mring021&amp;quot;;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 2&amp;#58; case 3&amp;#58; sJewel = &amp;quot;nw_it_mneck020&amp;quot;;&amp;nbsp; &amp;nbsp;break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 4&amp;#58; case 5&amp;#58; sJewel = &amp;quot;nw_it_mring022&amp;quot;;&amp;nbsp; &amp;nbsp;break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 6&amp;#58; sJewel = &amp;quot;nw_it_mneck021&amp;quot;;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; else if &amp;#40;GetRange&amp;#40;4, nHD&amp;#41;&amp;#41;&amp;nbsp; // 150 gp avg; 1000 gp max
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int nRandom = d6&amp;#40;&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; switch &amp;#40;nRandom&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 1&amp;#58; sJewel = &amp;quot;nw_it_mring021&amp;quot;;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 2&amp;#58; sJewel = &amp;quot;nw_it_mring022&amp;quot;;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 3&amp;#58; case 4&amp;#58; case 5&amp;#58; sJewel = &amp;quot;nw_it_mneck021&amp;quot;;&amp;nbsp; &amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 6&amp;#58; sJewel = &amp;quot;nw_it_mring023&amp;quot;;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; else if &amp;#40;GetRange&amp;#40;5, nHD&amp;#41;&amp;#41;&amp;nbsp; // 300 gp avg; any
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int nRandom = d8&amp;#40;&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; switch &amp;#40;nRandom&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 1&amp;#58; sJewel = &amp;quot;nw_it_mring022&amp;quot;;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 2&amp;#58; case 3&amp;#58; sJewel = &amp;quot;nw_it_mneck021&amp;quot;;&amp;nbsp; &amp;nbsp;break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 4&amp;#58; case 5&amp;#58; case 6&amp;#58; sJewel = &amp;quot;nw_it_mring023&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 7&amp;#58; case 8&amp;#58; sJewel = &amp;quot;nw_it_mneck022&amp;quot;;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; else if &amp;#40;GetRange&amp;#40;6, nHD&amp;#41;&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int nRandom = d6&amp;#40;&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; switch &amp;#40;nRandom&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 1&amp;#58; sJewel = &amp;quot;nw_it_mring022&amp;quot;;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 2&amp;#58; sJewel = &amp;quot;nw_it_mneck021&amp;quot;;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 3&amp;#58; case 4&amp;#58; sJewel = &amp;quot;nw_it_mring023&amp;quot;;&amp;nbsp; &amp;nbsp; &amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 5&amp;#58; case 6&amp;#58; sJewel = &amp;quot;nw_it_mneck022&amp;quot;;&amp;nbsp; &amp;nbsp; &amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; //dbSpeak&amp;#40;&amp;quot;Create Jewel&amp;quot;&amp;#41;;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; dbCreateItemOnObject&amp;#40;sJewel, oTarget, 1&amp;#41;;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; // * returns the valid upper limit for any arcane spell scroll
&lt;br /&gt;
/*&amp;nbsp; &amp;nbsp; int TrimLevel&amp;#40;int nScroll, int nLevel&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#123;&amp;nbsp; &amp;nbsp;int nMax = 5;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; switch &amp;#40;nLevel&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 0&amp;#58; nMax = 4; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 1&amp;#58; nMax = 13; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 2&amp;#58; nMax = 21; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 3&amp;#58; nMax = 15; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 4&amp;#58; nMax = 17; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 5&amp;#58; nMax = 13; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 6&amp;#58; nMax = 14; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 7&amp;#58; nMax = 8; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 8&amp;#58; nMax = 9; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 9&amp;#58; nMax = 12; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if &amp;#40;nScroll &amp;gt; nMax&amp;#41; nScroll = nMax;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return nScroll;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
*/&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
// returns the valid upper limit for an original NWN1 arcane spell scroll
&lt;br /&gt;
int GetNW_ArcaneScrollMax&amp;#40;int nLevel&amp;#41;
&lt;br /&gt;
&amp;#123;&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;int nMax = 0;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; switch &amp;#40;nLevel&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 0&amp;#58; nMax = 4; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 1&amp;#58; nMax = 12; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 2&amp;#58; nMax = 19; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 3&amp;#58; nMax = 14; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 4&amp;#58; nMax = 17; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 5&amp;#58; nMax = 13; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 6&amp;#58; nMax = 13; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 7&amp;#58; nMax = 8; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 8&amp;#58; nMax = 8; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 9&amp;#58; nMax = 11; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; return nMax;
&lt;br /&gt;
&amp;#125;
&lt;br /&gt;

&lt;br /&gt;

&lt;br /&gt;
// certain numbers have been removed
&lt;br /&gt;
int GetNW_ArcaneScrollSkip&amp;#40;int nLevel, int nCount&amp;#41;
&lt;br /&gt;
&amp;#123;&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;//int nSkip = 0;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; switch &amp;#40;nLevel&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 2&amp;#58; 
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;if &amp;#40;nCount &amp;gt;= 15&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;nCount++;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;if &amp;#40;nCount &amp;gt;= 17&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;nCount++;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 4&amp;#58;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;if &amp;#40;nCount &amp;gt;= 1&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;nCount++;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 6&amp;#58;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;if &amp;#40;nCount &amp;gt;= 11&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;nCount++;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 8&amp;#58; 
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;if &amp;#40;nCount &amp;gt;= 6&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;nCount++;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 9&amp;#58;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;if &amp;#40;nCount &amp;gt;= 11&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;nCount++;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;break;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; return nCount;
&lt;br /&gt;
&amp;#125;
&lt;br /&gt;

&lt;br /&gt;
int GetNW_ArcaneScrollRandom&amp;#40;int nLevel&amp;#41;
&lt;br /&gt;
&amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;// get max speel for this spell level
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;int nNumSpellsInLevel = GetNW_ArcaneScrollMax&amp;#40;nLevel&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;// pick a random one
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;int nScrollNum =&amp;nbsp; Random&amp;#40;nNumSpellsInLevel&amp;#41; + 1;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;// Skip the scrolls that have been deleted
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;nScrollNum = GetNW_ArcaneScrollSkip&amp;#40;nLevel, nScrollNum&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;return nScrollNum;
&lt;br /&gt;
&amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
// * nModifier is to 'raise' the level of the oAdventurer
&lt;br /&gt;
void CreateArcaneScroll&amp;#40;object oTarget, object oAdventurer, int nModifier = 0&amp;#41;
&lt;br /&gt;
&amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;//int nMaxSpells = 21;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;int nHD = GetHitDice&amp;#40;oAdventurer&amp;#41; + nModifier;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;int nScroll = 1;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;int nLevel = 1;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;if &amp;#40;GetRange&amp;#40;1, nHD&amp;#41;&amp;#41;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// l 1-2
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; nLevel = d2&amp;#40;&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; //nScroll =&amp;nbsp; Random&amp;#40;nMaxSpells&amp;#41; + 1;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;else if &amp;#40;GetRange&amp;#40;2, nHD&amp;#41;&amp;#41;&amp;nbsp; &amp;nbsp; &amp;nbsp; // l 1-4
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; nLevel = d4&amp;#40;&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; //nScroll =&amp;nbsp; Random&amp;#40;nMaxSpells&amp;#41; + 1;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;else if &amp;#40;GetRange&amp;#40;3, nHD&amp;#41;&amp;#41;&amp;nbsp; &amp;nbsp; // l 2-6
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; nLevel = d6&amp;#40;&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; if &amp;#40;nLevel &amp;lt; 2&amp;#41; nLevel = 2;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; //nScroll =&amp;nbsp; Random&amp;#40;nMaxSpells&amp;#41; + 1;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;else if &amp;#40;GetRange&amp;#40;4, nHD&amp;#41;&amp;#41;&amp;nbsp; &amp;nbsp;// l 3-8
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; nLevel = d8&amp;#40;&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; if &amp;#40;nLevel &amp;lt; 3&amp;#41; nLevel = 3;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; //nScroll =&amp;nbsp; Random&amp;#40;nMaxSpells&amp;#41; + 1;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;else if &amp;#40;GetRange&amp;#40;5, nHD&amp;#41;&amp;#41;&amp;nbsp; &amp;nbsp;// l 4-9
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; nLevel = d8&amp;#40;&amp;#41; + 1;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; if &amp;#40;nLevel &amp;lt; 4&amp;#41; nLevel = 4;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; //nScroll =&amp;nbsp; Random&amp;#40;nMaxSpells&amp;#41; + 1;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;else if &amp;#40;GetRange&amp;#40;6, nHD&amp;#41;&amp;#41;&amp;nbsp; &amp;nbsp;// 5 -9
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; nLevel = d8&amp;#40;&amp;#41; + 1;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; if &amp;#40;nLevel &amp;lt; 5&amp;#41; nLevel = 5;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;//nScroll =&amp;nbsp; Random&amp;#40;nMaxSpells&amp;#41; + 1;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;nScroll = GetNW_ArcaneScrollRandom&amp;#40;nLevel&amp;#41;;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp;// * Trims the level of the scroll to match the max # of scrolls in each level range
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;//nScroll = TrimLevel&amp;#40;nScroll, nLevel&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;string sRes; // = &amp;quot;nw_it_sparscr216&amp;quot;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;if &amp;#40;nScroll &amp;lt; 10&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; sRes = &amp;quot;NW_IT_SPARSCR&amp;quot; + IntToString&amp;#40;nLevel&amp;#41; + &amp;quot;0&amp;quot; + IntToString&amp;#40;nScroll&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;else
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; sRes = &amp;quot;NW_IT_SPARSCR&amp;quot; + IntToString&amp;#40;nLevel&amp;#41; + IntToString&amp;#40;nScroll&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;dbCreateItemOnObject&amp;#40;sRes, oTarget, 1&amp;#41;;
&lt;br /&gt;
&amp;#125;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; void CreateDivineScroll&amp;#40;object oTarget, object oAdventurer, int nModifier=0&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int nHD = GetHitDice&amp;#40;oAdventurer&amp;#41; + nModifier;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; string sScroll = &amp;quot;&amp;quot;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if &amp;#40;GetRange&amp;#40;1, nHD&amp;#41;&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int nRandom = Random&amp;#40;3&amp;#41; + 1; //d4&amp;#40;&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; switch &amp;#40;nRandom&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 1&amp;#58; sScroll = &amp;quot;nw_it_spdvscr201&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //case 2&amp;#58; sScroll = &amp;quot;nw_it_spdvscr202&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 3&amp;#58; sScroll = &amp;quot;nw_it_spdvscr203&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 2&amp;#58; sScroll = &amp;quot;nw_it_spdvscr204&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; else if &amp;#40;GetRange&amp;#40;2, nHD&amp;#41;&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int nRandom = Random&amp;#40;7&amp;#41; + 1; //d8&amp;#40;&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; switch &amp;#40;nRandom&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;// 7/6/06 BDF - OEI&amp;#58;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;// Case 2 used to be &amp;quot;nw_it_spdvscr202&amp;quot;, but that item doesn't exist in NWN2.
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;// Decided to shift all the data up one position and kept case 8 as is so that
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;// there are no cases that don't return a valid value.
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;// This just means that &amp;quot;nw_it_spdvscr402&amp;quot; has a higher drop percentage,
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;// but really, life goes on. &amp;#58;&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 1&amp;#58; sScroll = &amp;quot;nw_it_spdvscr201&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //case 2&amp;#58; sScroll = &amp;quot;nw_it_spdvscr202&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 2&amp;#58; sScroll = &amp;quot;nw_it_spdvscr203&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 3&amp;#58; sScroll = &amp;quot;nw_it_spdvscr204&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 4&amp;#58; sScroll = &amp;quot;nw_it_spdvscr301&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 5&amp;#58; sScroll = &amp;quot;nw_it_spdvscr302&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 6&amp;#58; sScroll = &amp;quot;nw_it_spdvscr401&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 7&amp;#58; sScroll = &amp;quot;nw_it_spdvscr402&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; else if &amp;#40;GetRange&amp;#40;3, nHD&amp;#41;&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int nRandom = Random&amp;#40;8&amp;#41; + 1;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; switch &amp;#40;nRandom&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 1&amp;#58; sScroll = &amp;quot;nw_it_spdvscr201&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //case 2&amp;#58; sScroll = &amp;quot;nw_it_spdvscr202&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 3&amp;#58; sScroll = &amp;quot;nw_it_spdvscr203&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 4&amp;#58; sScroll = &amp;quot;nw_it_spdvscr204&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 5&amp;#58; sScroll = &amp;quot;nw_it_spdvscr301&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 6&amp;#58; sScroll = &amp;quot;nw_it_spdvscr302&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 7&amp;#58; sScroll = &amp;quot;nw_it_spdvscr401&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 8&amp;#58; sScroll = &amp;quot;nw_it_spdvscr402&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 2&amp;#58; sScroll = &amp;quot;nw_it_spdvscr501&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; else
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int nRandom = Random&amp;#40;7&amp;#41; + 1;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; switch &amp;#40;nRandom&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 1&amp;#58; sScroll = &amp;quot;nw_it_spdvscr301&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 2&amp;#58; sScroll = &amp;quot;nw_it_spdvscr302&amp;quot;;&amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 3&amp;#58; sScroll = &amp;quot;nw_it_spdvscr401&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 4&amp;#58; sScroll = &amp;quot;nw_it_spdvscr402&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 5&amp;#58; sScroll = &amp;quot;nw_it_spdvscr501&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 6&amp;#58; sScroll = &amp;quot;nw_it_spdvscr701&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 7&amp;#58; sScroll = &amp;quot;nw_it_spdvscr702&amp;quot;;&amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //dbSpeak&amp;#40;&amp;quot;Divine Scroll&amp;quot;&amp;#41;;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; dbCreateItemOnObject&amp;#40;sScroll, oTarget, 1&amp;#41;;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; void CreateAmmo&amp;#40;object oTarget, object oAdventurer, int nModifier=0&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int nHD = GetHitDice&amp;#40;oAdventurer&amp;#41; + nModifier;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; string sAmmo = &amp;quot;&amp;quot;;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if &amp;#40;GetRange&amp;#40;1, nHD&amp;#41;&amp;#41;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// * 200 gp max
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int nRandom = d3&amp;#40;&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; switch &amp;#40;nRandom&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 1&amp;#58; sAmmo = &amp;quot;nw_wamar001&amp;quot;;&amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 2&amp;#58; sAmmo = &amp;quot;nw_wambo001&amp;quot;;&amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 3&amp;#58; sAmmo = &amp;quot;nw_wambu001&amp;quot;;&amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; else if &amp;#40;GetRange&amp;#40;2, nHD&amp;#41;&amp;#41;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// * 800 gp max
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int nRandom = d6&amp;#40;&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; switch &amp;#40;nRandom&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 1&amp;#58; sAmmo = &amp;quot;nw_wamar001&amp;quot;;&amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 2&amp;#58; sAmmo = &amp;quot;nw_wambo001&amp;quot;;&amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 3&amp;#58; sAmmo = &amp;quot;nw_wambu001&amp;quot;;&amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 4&amp;#58; sAmmo = &amp;quot;nw_wammar001&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 5&amp;#58; sAmmo = &amp;quot;nw_wammbo001&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 6&amp;#58; sAmmo = &amp;quot;nw_wammbo002&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; else if &amp;#40;GetRange&amp;#40;3, nHD&amp;#41;&amp;#41;&amp;nbsp; &amp;nbsp; // *&amp;nbsp; - 2500 gp
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int nRandom = d20&amp;#40;&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; switch &amp;#40;nRandom&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 1&amp;#58; sAmmo = &amp;quot;nw_wamar001&amp;quot;;&amp;nbsp; &amp;nbsp;break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 2&amp;#58; sAmmo = &amp;quot;nw_wambo001&amp;quot;;&amp;nbsp; &amp;nbsp;break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 3&amp;#58; sAmmo = &amp;quot;nw_wambu001&amp;quot;;&amp;nbsp; &amp;nbsp;break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 4&amp;#58; sAmmo = &amp;quot;nw_wammar001&amp;quot;;&amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 5&amp;#58; sAmmo = &amp;quot;nw_wammbo001&amp;quot;;&amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 6&amp;#58; sAmmo = &amp;quot;nw_wammbo002&amp;quot;;&amp;nbsp; &amp;nbsp;break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 7&amp;#58; sAmmo = &amp;quot;nw_wammbo003&amp;quot;;&amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 8&amp;#58; sAmmo = &amp;quot;nw_wammbu002&amp;quot;;&amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 9&amp;#58; sAmmo = &amp;quot;nw_wammar002&amp;quot;;&amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 10&amp;#58; sAmmo = &amp;quot;nw_wammar001&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 11&amp;#58; sAmmo = &amp;quot;nw_wammar003&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 12&amp;#58; sAmmo = &amp;quot;nw_wammar004&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 13&amp;#58; sAmmo = &amp;quot;nw_wammar005&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 14&amp;#58; sAmmo = &amp;quot;nw_wammar006&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 15&amp;#58; sAmmo = &amp;quot;nw_wammbo004&amp;quot;;&amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 16&amp;#58; sAmmo = &amp;quot;nw_wammbo005&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 17&amp;#58; sAmmo = &amp;quot;nw_wammbu004&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 18&amp;#58; sAmmo = &amp;quot;nw_wammbu005&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 19&amp;#58; sAmmo = &amp;quot;nw_wammbu006&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 20&amp;#58; sAmmo = &amp;quot;nw_wammbu007&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; else
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int nRandom = d20&amp;#40;&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; switch &amp;#40;nRandom&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 1&amp;#58; sAmmo = &amp;quot;nw_wamar001&amp;quot;;&amp;nbsp; &amp;nbsp; &amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 2&amp;#58; sAmmo = &amp;quot;nw_wammbu001&amp;quot;;&amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 3&amp;#58; sAmmo = &amp;quot;nw_wammbu003&amp;quot;;&amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 4&amp;#58; sAmmo = &amp;quot;nw_wammar001&amp;quot;;&amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 5&amp;#58; sAmmo = &amp;quot;nw_wammbo001&amp;quot;;&amp;nbsp; &amp;nbsp; &amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 6&amp;#58; sAmmo = &amp;quot;nw_wammbo002&amp;quot;;&amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 7&amp;#58; sAmmo = &amp;quot;nw_wammbo003&amp;quot;;&amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 8&amp;#58; sAmmo = &amp;quot;nw_wammbu002&amp;quot;;&amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 9&amp;#58; sAmmo = &amp;quot;nw_wammar002&amp;quot;;&amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 10&amp;#58; sAmmo = &amp;quot;nw_wammar001&amp;quot;;&amp;nbsp; &amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 11&amp;#58; sAmmo = &amp;quot;nw_wammar003&amp;quot;;&amp;nbsp; &amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 12&amp;#58; sAmmo = &amp;quot;nw_wammar004&amp;quot;;&amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 13&amp;#58; sAmmo = &amp;quot;nw_wammar005&amp;quot;;&amp;nbsp; &amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 14&amp;#58; sAmmo = &amp;quot;nw_wammar006&amp;quot;;&amp;nbsp; &amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 15&amp;#58; sAmmo = &amp;quot;nw_wammbo004&amp;quot;;&amp;nbsp; &amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 16&amp;#58; sAmmo = &amp;quot;nw_wammbo005&amp;quot;;&amp;nbsp; &amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 17&amp;#58; sAmmo = &amp;quot;nw_wammbu004&amp;quot;;&amp;nbsp; &amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 18&amp;#58; sAmmo = &amp;quot;nw_wammbu005&amp;quot;;&amp;nbsp; &amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 19&amp;#58; sAmmo = &amp;quot;nw_wammbu006&amp;quot;;&amp;nbsp; &amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 20&amp;#58; sAmmo = &amp;quot;nw_wammbu007&amp;quot;;&amp;nbsp; &amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //dbSpeak&amp;#40;&amp;quot;ammo&amp;quot;&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; dbCreateItemOnObject&amp;#40;sAmmo, oTarget, Random&amp;#40;30&amp;#41; + 1&amp;#41;; // create up to 30 of the specified ammo type
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; void CreateTrapKit&amp;#40;object oTarget, object oAdventurer, int nModifier = 0&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; int nHD = GetHitDice&amp;#40;oAdventurer&amp;#41; + nModifier;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; string sKit = &amp;quot;&amp;quot;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if &amp;#40;GetRange&amp;#40;1, nHD&amp;#41;&amp;#41;&amp;nbsp; &amp;nbsp; &amp;nbsp; // 200
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int nRandom = d3&amp;#40;&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; switch &amp;#40;nRandom&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 1&amp;#58; sKit = &amp;quot;nw_it_trap001&amp;quot;;&amp;nbsp; &amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 2&amp;#58; sKit = &amp;quot;nw_it_trap029&amp;quot;;&amp;nbsp; &amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 3&amp;#58; sKit = &amp;quot;nw_it_trap033&amp;quot;;&amp;nbsp; &amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; else if &amp;#40;GetRange&amp;#40;2, nHD&amp;#41;&amp;#41;&amp;nbsp; // 800
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int nRandom = d12&amp;#40;&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; switch &amp;#40;nRandom&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 1&amp;#58; sKit = &amp;quot;nw_it_trap001&amp;quot;;&amp;nbsp; &amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 2&amp;#58; sKit = &amp;quot;nw_it_trap029&amp;quot;;&amp;nbsp; &amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 3&amp;#58; sKit = &amp;quot;nw_it_trap033&amp;quot;;&amp;nbsp; &amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 4&amp;#58; sKit = &amp;quot;nw_it_trap002&amp;quot;;&amp;nbsp; &amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 5&amp;#58; sKit = &amp;quot;nw_it_trap030&amp;quot;;&amp;nbsp; &amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 6&amp;#58; sKit = &amp;quot;nw_it_trap037&amp;quot;;&amp;nbsp; &amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 7&amp;#58; sKit = &amp;quot;nw_it_trap034&amp;quot;;&amp;nbsp; &amp;nbsp;break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 8&amp;#58; sKit = &amp;quot;nw_it_trap005&amp;quot;;&amp;nbsp; &amp;nbsp;break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 9&amp;#58; sKit = &amp;quot;nw_it_trap038&amp;quot;;&amp;nbsp; &amp;nbsp;break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 10&amp;#58; sKit = &amp;quot;nw_it_trap041&amp;quot;;&amp;nbsp; &amp;nbsp;break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 11&amp;#58; sKit = &amp;quot;nw_it_trap003&amp;quot;;&amp;nbsp; &amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 12&amp;#58; sKit = &amp;quot;nw_it_trap031&amp;quot;;&amp;nbsp; &amp;nbsp;break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; else if &amp;#40;GetRange&amp;#40;3, nHD&amp;#41;&amp;#41;&amp;nbsp; &amp;nbsp;// 200 - 2500
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int nRandom = Random&amp;#40;17&amp;#41; + 1;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; switch &amp;#40;nRandom&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 1&amp;#58; sKit = &amp;quot;nw_it_trap002&amp;quot;;&amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 2&amp;#58; sKit = &amp;quot;nw_it_trap030&amp;quot;;&amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 3&amp;#58; sKit = &amp;quot;nw_it_trap037&amp;quot;;&amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 4&amp;#58; sKit = &amp;quot;nw_it_trap034&amp;quot;;&amp;nbsp; &amp;nbsp;break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 5&amp;#58; sKit = &amp;quot;nw_it_trap005&amp;quot;;&amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 6&amp;#58; sKit = &amp;quot;nw_it_trap038&amp;quot;;&amp;nbsp; &amp;nbsp;break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 7&amp;#58; sKit = &amp;quot;nw_it_trap041&amp;quot;;&amp;nbsp; &amp;nbsp;break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 8&amp;#58; sKit = &amp;quot;nw_it_trap003&amp;quot;;&amp;nbsp; &amp;nbsp;break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 9&amp;#58; sKit = &amp;quot;nw_it_trap031&amp;quot;;&amp;nbsp; &amp;nbsp;break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 10&amp;#58; sKit = &amp;quot;nw_it_trap035&amp;quot;;&amp;nbsp; &amp;nbsp;break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 11&amp;#58; sKit = &amp;quot;nw_it_trap006&amp;quot;;&amp;nbsp; &amp;nbsp;break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 12&amp;#58; sKit = &amp;quot;nw_it_trap042&amp;quot;;&amp;nbsp; &amp;nbsp;break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 13&amp;#58; sKit = &amp;quot;nw_it_trap004&amp;quot;;&amp;nbsp; &amp;nbsp;break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 14&amp;#58; sKit = &amp;quot;nw_it_trap032&amp;quot;;&amp;nbsp; &amp;nbsp;break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 15&amp;#58; sKit = &amp;quot;nw_it_trap039&amp;quot;;&amp;nbsp; &amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 16&amp;#58; sKit = &amp;quot;nw_it_trap009&amp;quot;;&amp;nbsp; &amp;nbsp;break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 17&amp;#58; sKit = &amp;quot;nw_it_trap036&amp;quot;;&amp;nbsp; &amp;nbsp;break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; else if &amp;#40;GetRange&amp;#40;4, nHD&amp;#41;&amp;#41;&amp;nbsp; // 800 - 10000
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int nRandom = Random&amp;#40;19&amp;#41; + 1;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; switch &amp;#40;nRandom&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 1&amp;#58; sKit = &amp;quot;nw_it_trap035&amp;quot;;&amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 2&amp;#58; sKit = &amp;quot;nw_it_trap006&amp;quot;;&amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 3&amp;#58; sKit = &amp;quot;nw_it_trap042&amp;quot;;&amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 4&amp;#58; sKit = &amp;quot;nw_it_trap004&amp;quot;;&amp;nbsp; &amp;nbsp;break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 5&amp;#58; sKit = &amp;quot;nw_it_trap032&amp;quot;;&amp;nbsp; &amp;nbsp;break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 6&amp;#58; sKit = &amp;quot;nw_it_trap039&amp;quot;;&amp;nbsp; &amp;nbsp;break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 7&amp;#58; sKit = &amp;quot;nw_it_trap009&amp;quot;;&amp;nbsp; &amp;nbsp;break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 8&amp;#58; sKit = &amp;quot;nw_it_trap036&amp;quot;;&amp;nbsp; &amp;nbsp;break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 9&amp;#58; sKit = &amp;quot;nw_it_trap013&amp;quot;;&amp;nbsp; &amp;nbsp;break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 10&amp;#58; sKit = &amp;quot;nw_it_trap040&amp;quot;;&amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 11&amp;#58; sKit = &amp;quot;nw_it_trap007&amp;quot;;&amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 12&amp;#58; sKit = &amp;quot;nw_it_trap043&amp;quot;;&amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 13&amp;#58; sKit = &amp;quot;nw_it_trap010&amp;quot;;&amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 14&amp;#58; sKit = &amp;quot;nw_it_trap017&amp;quot;;&amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 15&amp;#58; sKit = &amp;quot;nw_it_trap021&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 16&amp;#58; sKit = &amp;quot;nw_it_trap014&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 17&amp;#58; sKit = &amp;quot;nw_it_trap025&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 18&amp;#58; sKit = &amp;quot;nw_it_trap008&amp;quot;;&amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 19&amp;#58; sKit = &amp;quot;nw_it_trap044&amp;quot;;&amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; else if &amp;#40;GetRange&amp;#40;5, nHD&amp;#41;&amp;#41;&amp;nbsp; // 2000 -16500
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int nRandom = Random&amp;#40;18&amp;#41; + 1;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; switch &amp;#40;nRandom&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 1&amp;#58; sKit = &amp;quot;nw_it_trap039&amp;quot;;&amp;nbsp; &amp;nbsp;break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 2&amp;#58; sKit = &amp;quot;nw_it_trap009&amp;quot;;&amp;nbsp; &amp;nbsp;break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 3&amp;#58; sKit = &amp;quot;nw_it_trap036&amp;quot;;&amp;nbsp; &amp;nbsp;break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 4&amp;#58; sKit = &amp;quot;nw_it_trap013&amp;quot;;&amp;nbsp; &amp;nbsp;break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 5&amp;#58; sKit = &amp;quot;nw_it_trap040&amp;quot;;&amp;nbsp; &amp;nbsp;break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 6&amp;#58; sKit = &amp;quot;nw_it_trap007&amp;quot;;&amp;nbsp; &amp;nbsp;break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 7&amp;#58; sKit = &amp;quot;nw_it_trap043&amp;quot;;&amp;nbsp; &amp;nbsp;break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 8&amp;#58; sKit = &amp;quot;nw_it_trap010&amp;quot;;&amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 9&amp;#58; sKit = &amp;quot;nw_it_trap017&amp;quot;;&amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 10&amp;#58; sKit = &amp;quot;nw_it_trap021&amp;quot;;&amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 11&amp;#58; sKit = &amp;quot;nw_it_trap014&amp;quot;;&amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 12&amp;#58; sKit = &amp;quot;nw_it_trap025&amp;quot;;&amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 13&amp;#58; sKit = &amp;quot;nw_it_trap008&amp;quot;;&amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 14&amp;#58; sKit = &amp;quot;nw_it_trap044&amp;quot;;&amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 15&amp;#58; sKit = &amp;quot;nw_it_trap018&amp;quot;;&amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 16&amp;#58; sKit = &amp;quot;nw_it_trap011&amp;quot;;&amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 17&amp;#58; sKit = &amp;quot;nw_it_trap022&amp;quot;;&amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 18&amp;#58; sKit = &amp;quot;nw_it_trap026&amp;quot;;&amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; else if &amp;#40;GetRange&amp;#40;6, nHD&amp;#41;&amp;#41;&amp;nbsp; &amp;nbsp;// 2000 - ?
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int nRandom = Random&amp;#40;27&amp;#41; + 1;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; switch &amp;#40;nRandom&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 1&amp;#58; sKit = &amp;quot;nw_it_trap039&amp;quot;;&amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 2&amp;#58; sKit = &amp;quot;nw_it_trap009&amp;quot;;&amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 3&amp;#58; sKit = &amp;quot;nw_it_trap036&amp;quot;;&amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 4&amp;#58; sKit = &amp;quot;nw_it_trap013&amp;quot;;&amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 5&amp;#58; sKit = &amp;quot;nw_it_trap040&amp;quot;;&amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 6&amp;#58; sKit = &amp;quot;nw_it_trap007&amp;quot;;&amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 7&amp;#58; sKit = &amp;quot;nw_it_trap043&amp;quot;;&amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 8&amp;#58; sKit = &amp;quot;nw_it_trap010&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 9&amp;#58; sKit = &amp;quot;nw_it_trap017&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 10&amp;#58; sKit = &amp;quot;nw_it_trap021&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 11&amp;#58; sKit = &amp;quot;nw_it_trap014&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 12&amp;#58; sKit = &amp;quot;nw_it_trap025&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 13&amp;#58; sKit = &amp;quot;nw_it_trap008&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 14&amp;#58; sKit = &amp;quot;nw_it_trap044&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 15&amp;#58; sKit = &amp;quot;nw_it_trap018&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 16&amp;#58; sKit = &amp;quot;nw_it_trap011&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 17&amp;#58; sKit = &amp;quot;nw_it_trap022&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 18&amp;#58; sKit = &amp;quot;nw_it_trap026&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 19&amp;#58; sKit = &amp;quot;nw_it_trap015&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 20&amp;#58; sKit = &amp;quot;nw_it_trap012&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 21&amp;#58; sKit = &amp;quot;nw_it_trap019&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 22&amp;#58; sKit = &amp;quot;nw_it_trap023&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 23&amp;#58; sKit = &amp;quot;nw_it_trap016&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 24&amp;#58; sKit = &amp;quot;nw_it_trap027&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 25&amp;#58; sKit = &amp;quot;nw_it_trap020&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 26&amp;#58; sKit = &amp;quot;nw_it_trap024&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 27&amp;#58; sKit = &amp;quot;nw_it_trap028&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;#125;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //dbSpeak&amp;#40;&amp;quot;Create Trapkit&amp;quot;&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; dbCreateItemOnObject&amp;#40;sKit, oTarget, 1&amp;#41;;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; void CreateHealingKit&amp;#40;object oTarget, object oAdventurer, int nModifier = 0&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int nHD = GetHitDice&amp;#40;oAdventurer&amp;#41; + nModifier;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; string sKit = &amp;quot;&amp;quot;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if &amp;#40;GetRange&amp;#40;1, nHD&amp;#41;&amp;#41;&amp;nbsp; &amp;nbsp; &amp;nbsp; // 200
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int nRandom = Random&amp;#40;1&amp;#41; + 1;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; switch &amp;#40;nRandom&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 1&amp;#58; sKit = &amp;quot;nw_it_medkit001&amp;quot;;&amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; else if &amp;#40;GetRange&amp;#40;2, nHD&amp;#41;&amp;#41;&amp;nbsp; // 800
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int nRandom = Random&amp;#40;2&amp;#41; + 1;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; switch &amp;#40;nRandom&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 1&amp;#58; sKit = &amp;quot;nw_it_medkit001&amp;quot;;&amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 2&amp;#58; sKit = &amp;quot;nw_it_medkit002&amp;quot;;&amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; else if &amp;#40;GetRange&amp;#40;3, nHD&amp;#41;&amp;#41;&amp;nbsp; &amp;nbsp;// 200 - 2500
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int nRandom = Random&amp;#40;2&amp;#41; + 1;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; switch &amp;#40;nRandom&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 1&amp;#58; sKit = &amp;quot;nw_it_medkit002&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 2&amp;#58; sKit = &amp;quot;nw_it_medkit003&amp;quot;;&amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; else if &amp;#40;GetRange&amp;#40;4, nHD&amp;#41;&amp;#41;&amp;nbsp; // 800 - 10000
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int nRandom = Random&amp;#40;2&amp;#41; + 1;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; switch &amp;#40;nRandom&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 1&amp;#58; sKit = &amp;quot;nw_it_medkit003&amp;quot;;break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 2&amp;#58; sKit = &amp;quot;nw_it_medkit004&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; else if &amp;#40;GetRange&amp;#40;5, nHD&amp;#41;&amp;#41;&amp;nbsp; // 2000 -16500
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int nRandom = Random&amp;#40;2&amp;#41; + 1;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; switch &amp;#40;nRandom&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 1&amp;#58; sKit = &amp;quot;nw_it_medkit003&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 2&amp;#58; sKit = &amp;quot;nw_it_medkit004&amp;quot;;break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; else if &amp;#40;GetRange&amp;#40;6, nHD&amp;#41;&amp;#41;&amp;nbsp; &amp;nbsp;// 2000 - ?
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int nRandom = Random&amp;#40;2&amp;#41; + 1;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; switch &amp;#40;nRandom&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 1&amp;#58; sKit = &amp;quot;nw_it_medkit003&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 2&amp;#58; sKit = &amp;quot;nw_it_medkit004&amp;quot;;break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;#125;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //dbSpeak&amp;#40;&amp;quot;Create Healing Kit&amp;quot;&amp;#41;;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; dbCreateItemOnObject&amp;#40;sKit, oTarget, 1&amp;#41;;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; void CreateLockPick&amp;#40;object oTarget, object oAdventurer, int nModifier = 0&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int nHD = GetHitDice&amp;#40;oAdventurer&amp;#41; + nModifier;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; string sKit = &amp;quot;&amp;quot;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if &amp;#40;GetRange&amp;#40;1, nHD&amp;#41;&amp;#41;&amp;nbsp; &amp;nbsp; &amp;nbsp; // 200
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int nRandom = d8&amp;#40;&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; switch &amp;#40;nRandom&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 1&amp;#58; sKit = &amp;quot;nw_it_picks001&amp;quot;;&amp;nbsp; &amp;nbsp;break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 2&amp;#58; sKit = &amp;quot;nw_it_picks002&amp;quot;;&amp;nbsp; &amp;nbsp;break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 3&amp;#58; sKit = &amp;quot;nw_it_picks001&amp;quot;;&amp;nbsp; &amp;nbsp;break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 4&amp;#58; sKit = &amp;quot;nw_it_picks001&amp;quot;;&amp;nbsp; &amp;nbsp;break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 5&amp;#58; sKit = &amp;quot;nw_it_picks001&amp;quot;;&amp;nbsp; &amp;nbsp;break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 6&amp;#58; sKit = &amp;quot;nw_it_picks001&amp;quot;;&amp;nbsp; &amp;nbsp;break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 7&amp;#58; sKit = &amp;quot;nw_it_picks001&amp;quot;;&amp;nbsp; &amp;nbsp;break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 8&amp;#58; sKit = &amp;quot;nw_it_picks001&amp;quot;;&amp;nbsp; &amp;nbsp;break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; else if &amp;#40;GetRange&amp;#40;2, nHD&amp;#41;&amp;#41;&amp;nbsp; // 800
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int nRandom = d6&amp;#40;&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; switch &amp;#40;nRandom&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 1&amp;#58; sKit = &amp;quot;nw_it_picks001&amp;quot;;&amp;nbsp; &amp;nbsp;break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 2&amp;#58; sKit = &amp;quot;nw_it_picks002&amp;quot;;&amp;nbsp; &amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 3&amp;#58; sKit = &amp;quot;nw_it_picks003&amp;quot;;&amp;nbsp; &amp;nbsp;break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 4&amp;#58; sKit = &amp;quot;nw_it_picks002&amp;quot;;&amp;nbsp; &amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 5&amp;#58; sKit = &amp;quot;nw_it_picks002&amp;quot;;&amp;nbsp; &amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 6&amp;#58; sKit = &amp;quot;nw_it_picks002&amp;quot;;&amp;nbsp; &amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; else if &amp;#40;GetRange&amp;#40;3, nHD&amp;#41;&amp;#41;&amp;nbsp; &amp;nbsp;// 200 - 2500
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int nRandom = Random&amp;#40;2&amp;#41; + 1;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; switch &amp;#40;nRandom&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 1&amp;#58; sKit = &amp;quot;nw_it_picks003&amp;quot;;&amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 2&amp;#58; sKit = &amp;quot;nw_it_picks004&amp;quot;;&amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; else if &amp;#40;GetRange&amp;#40;4, nHD&amp;#41;&amp;#41;&amp;nbsp; // 800 - 10000
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int nRandom = Random&amp;#40;1&amp;#41; + 1;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; switch &amp;#40;nRandom&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 1&amp;#58; sKit = &amp;quot;nw_it_picks004&amp;quot;;&amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; else if &amp;#40;GetRange&amp;#40;5, nHD&amp;#41;&amp;#41;&amp;nbsp; // 2000 -16500
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int nRandom = Random&amp;#40;1&amp;#41; + 1;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; switch &amp;#40;nRandom&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 1&amp;#58; sKit = &amp;quot;nw_it_picks004&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; else if &amp;#40;GetRange&amp;#40;6, nHD&amp;#41;&amp;#41;&amp;nbsp; &amp;nbsp;// 2000 - ?
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int nRandom = Random&amp;#40;1&amp;#41; + 1;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; switch &amp;#40;nRandom&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 1&amp;#58; sKit = &amp;quot;nw_it_picks004&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;#125;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;//dbSpeak&amp;#40;&amp;quot;Create Lockpick&amp;quot;&amp;#41;;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; dbCreateItemOnObject&amp;#40;sKit, oTarget, 1&amp;#41;;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; void CreateKit&amp;#40;object oTarget, object oAdventurer, int nModifier = 0&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // * April 23 2002&amp;#58; Major restructuring of this function
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // * to allow me to
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; switch &amp;#40;Random&amp;#40;8&amp;#41; + 1&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 1&amp;#58; CreateTrapKit&amp;#40;oTarget, oAdventurer, nModifier&amp;#41;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 2&amp;#58; case 3&amp;#58; case 4&amp;#58; case 5&amp;#58; CreateHealingKit&amp;#40;oTarget, oAdventurer, nModifier&amp;#41;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 6&amp;#58; case 7&amp;#58; case 8&amp;#58; CreateLockPick&amp;#40;oTarget, oAdventurer, nModifier&amp;#41;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; void CreatePotion&amp;#40;object oTarget, object oAdventurer, int nModifier = 0&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; string sPotion = &amp;quot;&amp;quot;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int nHD = GetHitDice&amp;#40;oAdventurer&amp;#41; + nModifier;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if &amp;#40;GetRange&amp;#40;1, nHD&amp;#41;&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int nRandom = d10&amp;#40;&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; switch &amp;#40;nRandom&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 1&amp;#58; case 2&amp;#58; case 3&amp;#58; case 4&amp;#58; sPotion = &amp;quot;nw_it_mpotion001&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 5&amp;#58; case 6&amp;#58; case 7&amp;#58; sPotion = &amp;quot;nw_it_mpotion020&amp;quot;;&amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 8&amp;#58; sPotion = &amp;quot;nw_it_mpotion002&amp;quot;;&amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 9&amp;#58; sPotion = &amp;quot;nw_it_mpotion009&amp;quot;;&amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 10&amp;#58; sPotion = &amp;quot;nw_it_mpotion005&amp;quot;;&amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; else if &amp;#40;GetRange&amp;#40;2, nHD&amp;#41;&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;int nRandom = Random&amp;#40;28&amp;#41; + 1;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; switch &amp;#40;nRandom&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 1&amp;#58; case 2&amp;#58; case 3&amp;#58; sPotion = &amp;quot;nw_it_mpotion001&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 4&amp;#58; case 5&amp;#58; case 6&amp;#58; case 7&amp;#58; case 8&amp;#58; sPotion = &amp;quot;nw_it_mpotion020&amp;quot;;&amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 9&amp;#58; case 10&amp;#58; case 11&amp;#58; case 12&amp;#58; sPotion = &amp;quot;nw_it_mpotion002&amp;quot;;&amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 13&amp;#58; case 14&amp;#58; sPotion = &amp;quot;nw_it_mpotion003&amp;quot;;&amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 15&amp;#58; sPotion = &amp;quot;nw_it_mpotion009&amp;quot;;&amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 16&amp;#58; sPotion = &amp;quot;nw_it_mpotion005&amp;quot;;&amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //case 17&amp;#58; sPotion = &amp;quot;nw_it_mpotion007&amp;quot;;&amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 18&amp;#58; sPotion = &amp;quot;nw_it_mpotion008&amp;quot;;&amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 19&amp;#58; sPotion = &amp;quot;nw_it_mpotion010&amp;quot;;&amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 20&amp;#58; sPotion = &amp;quot;nw_it_mpotion011&amp;quot;;&amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 21&amp;#58; sPotion = &amp;quot;nw_it_mpotion013&amp;quot;;&amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 22&amp;#58; sPotion = &amp;quot;nw_it_mpotion014&amp;quot;;&amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 23&amp;#58; sPotion = &amp;quot;nw_it_mpotion015&amp;quot;;&amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 24&amp;#58; sPotion = &amp;quot;nw_it_mpotion016&amp;quot;;&amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 25&amp;#58; sPotion = &amp;quot;nw_it_mpotion017&amp;quot;;&amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 26&amp;#58; sPotion = &amp;quot;nw_it_mpotion018&amp;quot;;&amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 27&amp;#58; sPotion = &amp;quot;nw_it_mpotion019&amp;quot;;&amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 28&amp;#58; sPotion = &amp;quot;nw_it_mpotion004&amp;quot;;&amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 17&amp;#58; sPotion = &amp;quot;nw_it_mpotion006&amp;quot;;&amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; else if &amp;#40;GetRange&amp;#40;3, nHD&amp;#41;&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;int nRandom = Random&amp;#40;28&amp;#41; + 1;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; switch &amp;#40;nRandom&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 1&amp;#58; case 2&amp;#58; case 3&amp;#58; case 4&amp;#58; case 5&amp;#58; case 6&amp;#58; case 7&amp;#58; case 8&amp;#58;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 9&amp;#58; case 10&amp;#58; case 11&amp;#58; case 12&amp;#58;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 13&amp;#58; case 14&amp;#58; sPotion = &amp;quot;nw_it_mpotion003&amp;quot;;&amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 15&amp;#58; sPotion = &amp;quot;nw_it_mpotion009&amp;quot;;&amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 16&amp;#58; sPotion = &amp;quot;nw_it_mpotion005&amp;quot;;&amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //case 17&amp;#58; sPotion = &amp;quot;nw_it_mpotion007&amp;quot;;&amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 18&amp;#58; sPotion = &amp;quot;nw_it_mpotion008&amp;quot;;&amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 19&amp;#58; sPotion = &amp;quot;nw_it_mpotion010&amp;quot;;&amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 20&amp;#58; sPotion = &amp;quot;nw_it_mpotion011&amp;quot;;&amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 21&amp;#58; sPotion = &amp;quot;nw_it_mpotion013&amp;quot;;&amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 22&amp;#58; sPotion = &amp;quot;nw_it_mpotion014&amp;quot;;&amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 23&amp;#58; sPotion = &amp;quot;nw_it_mpotion015&amp;quot;;&amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 24&amp;#58; sPotion = &amp;quot;nw_it_mpotion016&amp;quot;;&amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 25&amp;#58; sPotion = &amp;quot;nw_it_mpotion017&amp;quot;;&amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 26&amp;#58; sPotion = &amp;quot;nw_it_mpotion018&amp;quot;;&amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 27&amp;#58; sPotion = &amp;quot;nw_it_mpotion019&amp;quot;;&amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 28&amp;#58; sPotion = &amp;quot;nw_it_mpotion004&amp;quot;;&amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 17&amp;#58; sPotion = &amp;quot;nw_it_mpotion006&amp;quot;;&amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; else if &amp;#40;GetRange&amp;#40;4, nHD&amp;#41;&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;int nRandom = Random&amp;#40;28&amp;#41; + 1;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; switch &amp;#40;nRandom&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 1&amp;#58; case 2&amp;#58; case 3&amp;#58; case 4&amp;#58; case 5&amp;#58; case 6&amp;#58; case 7&amp;#58; case 8&amp;#58;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 9&amp;#58; case 10&amp;#58; case 11&amp;#58; case 12&amp;#58; sPotion = &amp;quot;nw_it_mpotion003&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 13&amp;#58; case 14&amp;#58; sPotion = &amp;quot;nw_it_mpotion003&amp;quot;;&amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 15&amp;#58; sPotion = &amp;quot;nw_it_mpotion009&amp;quot;;&amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 16&amp;#58; sPotion = &amp;quot;nw_it_mpotion005&amp;quot;;&amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //case 17&amp;#58; sPotion = &amp;quot;nw_it_mpotion007&amp;quot;;&amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 18&amp;#58; sPotion = &amp;quot;nw_it_mpotion008&amp;quot;;&amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 19&amp;#58; sPotion = &amp;quot;nw_it_mpotion010&amp;quot;;&amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 20&amp;#58; sPotion = &amp;quot;nw_it_mpotion011&amp;quot;;&amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 21&amp;#58; sPotion = &amp;quot;nw_it_mpotion013&amp;quot;;&amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 22&amp;#58; sPotion = &amp;quot;nw_it_mpotion014&amp;quot;;&amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 23&amp;#58; sPotion = &amp;quot;nw_it_mpotion015&amp;quot;;&amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 24&amp;#58; sPotion = &amp;quot;nw_it_mpotion016&amp;quot;;&amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 25&amp;#58; sPotion = &amp;quot;nw_it_mpotion017&amp;quot;;&amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 26&amp;#58; sPotion = &amp;quot;nw_it_mpotion018&amp;quot;;&amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 27&amp;#58; sPotion = &amp;quot;nw_it_mpotion019&amp;quot;;&amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 28&amp;#58; sPotion = &amp;quot;nw_it_mpotion004&amp;quot;;&amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 17&amp;#58; sPotion = &amp;quot;nw_it_mpotion006&amp;quot;;&amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; else&amp;nbsp; // keep 5 and 6 the same
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;int nRandom = Random&amp;#40;28&amp;#41; + 1;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; switch &amp;#40;nRandom&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 1&amp;#58; case 2&amp;#58; case 3&amp;#58; case 4&amp;#58; case 5&amp;#58; case 6&amp;#58; case 7&amp;#58; case 8&amp;#58;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 9&amp;#58; sPotion = &amp;quot;nw_it_mpotion003&amp;quot; ;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 10&amp;#58; case 11&amp;#58; case 12&amp;#58; case 13&amp;#58; case 14&amp;#58; sPotion = &amp;quot;nw_it_mpotion003&amp;quot;;&amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 15&amp;#58; sPotion = &amp;quot;nw_it_mpotion009&amp;quot;;&amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 16&amp;#58; sPotion = &amp;quot;nw_it_mpotion005&amp;quot;;&amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //case 17&amp;#58; sPotion = &amp;quot;nw_it_mpotion007&amp;quot;;&amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 18&amp;#58; sPotion = &amp;quot;nw_it_mpotion008&amp;quot;;&amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 19&amp;#58; sPotion = &amp;quot;nw_it_mpotion010&amp;quot;;&amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 20&amp;#58; sPotion = &amp;quot;nw_it_mpotion011&amp;quot;;&amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 21&amp;#58; sPotion = &amp;quot;nw_it_mpotion013&amp;quot;;&amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 22&amp;#58; sPotion = &amp;quot;nw_it_mpotion014&amp;quot;;&amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 23&amp;#58; sPotion = &amp;quot;nw_it_mpotion015&amp;quot;;&amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 24&amp;#58; sPotion = &amp;quot;nw_it_mpotion016&amp;quot;;&amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 25&amp;#58; sPotion = &amp;quot;nw_it_mpotion017&amp;quot;;&amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 26&amp;#58; sPotion = &amp;quot;nw_it_mpotion018&amp;quot;;&amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 27&amp;#58; sPotion = &amp;quot;nw_it_mpotion019&amp;quot;;&amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 28&amp;#58; sPotion = &amp;quot;nw_it_mpotion004&amp;quot;;&amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 17&amp;#58; sPotion = &amp;quot;nw_it_mpotion006&amp;quot;;&amp;nbsp; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //dbSpeak&amp;#40;&amp;quot;Create Potion&amp;quot;&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; dbCreateItemOnObject&amp;#40;sPotion, oTarget, 1&amp;#41;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#125;&lt;/td&gt;	&lt;/tr&gt;&lt;/table&gt;</description>
	  <pubDate>Mon, 21 Jun 2010 17:23:37 +0200</pubDate>
	  <author>Tink</author>
	</item>
	<item>
	  <title>Posté par Tink le 21/06/2010  16:26</title>
	  <link>http://www.nwn2.fr/forum/viewtopic.php?p=18959#18959</link>
	  <guid></guid>
	  <description>       &lt;table width=&quot;90%&quot; cellspacing=&quot;1&quot; cellpadding=&quot;3&quot; border=&quot;0&quot; align=&quot;center&quot;&gt;&lt;tr&gt; 	  &lt;td&gt;&lt;span class=&quot;mep-p-g&quot;&gt;Code:&lt;/span&gt;&lt;/td&gt;	&lt;/tr&gt;	&lt;tr&gt;	  &lt;td class=&quot;code&quot;&gt;&amp;nbsp; &amp;nbsp; //&amp;#58;&amp;#58;///////////////////////////////////////////////
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; //&amp;#58;&amp;#58; CreateTable2GenericItem
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; //&amp;#58;&amp;#58; Copyright &amp;#40;c&amp;#41; 2002 Bioware Corp.
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; //&amp;#58;&amp;#58;//////////////////////////////////////////////
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; /*
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Creates an item based upon the class of
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; oAdventurer
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; */
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; //&amp;#58;&amp;#58;//////////////////////////////////////////////
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; //&amp;#58;&amp;#58; Created By&amp;#58;&amp;nbsp; Brent
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; //&amp;#58;&amp;#58; Created On&amp;#58;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; //&amp;#58;&amp;#58;//////////////////////////////////////////////
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; void CreateGenericMiscItem&amp;#40;object oTarget, object oAdventurer, int nModifier=0&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int nHD = GetHitDice&amp;#40;oAdventurer&amp;#41; + nModifier;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; string sItem = &amp;quot;&amp;quot;;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if &amp;#40;GetRange&amp;#40;1, nHD&amp;#41;&amp;#41;&amp;nbsp; &amp;nbsp; // * 200
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int nRandom = Random&amp;#40;6&amp;#41; + 1;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; switch &amp;#40;nRandom&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 1&amp;#58; sItem = &amp;quot;nw_it_mglove004&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 2&amp;#58; sItem = &amp;quot;nw_it_mglove004&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 3&amp;#58; sItem = &amp;quot;nw_it_mglove005&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;//case 4&amp;#58; sItem = &amp;quot;nw_it_mglove006&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 5&amp;#58; sItem = &amp;quot;nw_it_mglove007&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;//case 6&amp;#58; sItem = &amp;quot;nw_it_mglove008&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 6&amp;#58; sItem = &amp;quot;nw_it_mglove009&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 4&amp;#58; sItem = &amp;quot;nw_mcloth006&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;//case 4&amp;#58; sItem = &amp;quot;nw_it_mglove012&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; else if &amp;#40;GetRange&amp;#40;2, nHD&amp;#41;&amp;#41;&amp;nbsp; &amp;nbsp;// * 800
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int nRandom = Random&amp;#40;24&amp;#41; + 1;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; switch &amp;#40;nRandom&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 1&amp;#58; sItem = &amp;quot;nw_mcloth006&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 2&amp;#58; sItem = &amp;quot;nw_it_mring009&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 3&amp;#58; sItem = &amp;quot;nw_it_mring009&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 4&amp;#58; sItem = &amp;quot;nw_it_mring010&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 5&amp;#58; sItem = &amp;quot;nw_it_mring011&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 6&amp;#58; sItem = &amp;quot;nw_it_mboots010&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 7&amp;#58; sItem = &amp;quot;nw_it_mneck024&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 8&amp;#58; sItem = &amp;quot;nw_mcloth007&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 9&amp;#58; sItem = &amp;quot;nw_it_mring024&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 10&amp;#58; sItem = &amp;quot;nw_it_mring012&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 11&amp;#58; sItem = &amp;quot;nw_mcloth008&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 12&amp;#58; sItem = &amp;quot;nw_it_mglove010&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 13&amp;#58; sItem = &amp;quot;nw_it_mglove011&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 14&amp;#58; sItem = &amp;quot;nw_it_mglove013&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;//case 15&amp;#58; sItem = &amp;quot;nw_it_mglove014&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 16&amp;#58; sItem = &amp;quot;nw_it_mglove015&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 17&amp;#58; sItem = &amp;quot;nw_maarcl097&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 18&amp;#58; sItem = &amp;quot;nw_maarcl097&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 19&amp;#58; sItem = &amp;quot;nw_maarcl099&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 20&amp;#58; sItem = &amp;quot;nw_it_mneck032&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 21&amp;#58; sItem = &amp;quot;nw_mcloth010&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 22&amp;#58; sItem = &amp;quot;nw_it_mbracer002&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 23&amp;#58; sItem = &amp;quot;nw_it_mneck001&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 24&amp;#58; sItem = &amp;quot;nw_maarcl055&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 15&amp;#58; sItem = &amp;quot;nw_mcloth009&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; else if &amp;#40;GetRange&amp;#40;3, nHD&amp;#41;&amp;#41;&amp;nbsp; &amp;nbsp;// * 200 - 2500
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int nRandom = Random&amp;#40;43&amp;#41; + 1;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; switch &amp;#40;nRandom&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 1&amp;#58; sItem = &amp;quot;nw_it_mring009&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 2&amp;#58; sItem = &amp;quot;nw_it_mring009&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 3&amp;#58; sItem = &amp;quot;nw_it_mring010&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 4&amp;#58; sItem = &amp;quot;nw_it_mring011&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 5&amp;#58; sItem = &amp;quot;nw_it_mboots010&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 6&amp;#58; sItem = &amp;quot;nw_it_mneck024&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 7&amp;#58; sItem = &amp;quot;nw_mcloth007&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 8&amp;#58; sItem = &amp;quot;nw_it_mring024&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 9&amp;#58; sItem = &amp;quot;nw_it_mring012&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 10&amp;#58; sItem = &amp;quot;nw_mcloth008&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 11&amp;#58; sItem = &amp;quot;nw_it_mglove010&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 12&amp;#58; sItem = &amp;quot;nw_it_mglove011&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 13&amp;#58; sItem = &amp;quot;nw_it_mglove013&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;//case 14&amp;#58; sItem = &amp;quot;nw_it_mglove014&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 15&amp;#58; sItem = &amp;quot;nw_it_mglove015&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 16&amp;#58; sItem = &amp;quot;nw_it_contain003&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 17&amp;#58; sItem = &amp;quot;nw_maarcl097&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 18&amp;#58; sItem = &amp;quot;nw_maarcl099&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 19&amp;#58; sItem = &amp;quot;nw_it_mneck032&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 20&amp;#58; sItem = &amp;quot;nw_mcloth010&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 21&amp;#58; sItem = &amp;quot;nw_it_mbracer002&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 22&amp;#58; sItem = &amp;quot;nw_it_mneck001&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 23&amp;#58; sItem = &amp;quot;nw_maarcl055&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 24&amp;#58; sItem = &amp;quot;nw_mcloth009&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 25&amp;#58; sItem = &amp;quot;nw_it_mring001&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 26&amp;#58; sItem = &amp;quot;nw_it_mboots001&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 27&amp;#58; sItem = &amp;quot;nw_it_mbracer001&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 28&amp;#58; sItem = &amp;quot;nw_it_mneck007&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 29&amp;#58; sItem = &amp;quot;nw_maarcl096&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 30&amp;#58; sItem = &amp;quot;nw_it_mglove003&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 31&amp;#58; sItem = &amp;quot;nw_it_contain004&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 32&amp;#58; sItem = &amp;quot;nw_it_mneck031&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 33&amp;#58; sItem = &amp;quot;nw_it_mring006&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 34&amp;#58; sItem = &amp;quot;nw_it_mneck006&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 35&amp;#58; sItem = &amp;quot;nw_it_mneck029&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 36&amp;#58; sItem = &amp;quot;nw_it_mring013&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 37&amp;#58; sItem = &amp;quot;nw_it_mboots011&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 38&amp;#58; sItem = &amp;quot;nw_it_mneck025&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 39&amp;#58; sItem = &amp;quot;nw_it_mbelt009&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 40&amp;#58; sItem = &amp;quot;nw_it_mbelt010&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 41&amp;#58; sItem = &amp;quot;nw_it_mbelt011&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 42&amp;#58; sItem = &amp;quot;nw_it_mring025&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 43&amp;#58; sItem = &amp;quot;nw_it_mring025&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 14&amp;#58; sItem = &amp;quot;nw_maarcl031&amp;quot;; break;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; else if &amp;#40;GetRange&amp;#40;4, nHD&amp;#41;&amp;#41;&amp;nbsp; &amp;nbsp;// * 800 - 10000
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int nRandom = Random&amp;#40;48&amp;#41; + 1;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; switch &amp;#40;nRandom&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 1&amp;#58; sItem = &amp;quot;nw_it_mring001&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 2&amp;#58; sItem = &amp;quot;nw_it_mboots001&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 3&amp;#58; sItem = &amp;quot;nw_it_mbracer001&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 4&amp;#58; sItem = &amp;quot;nw_it_mneck007&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 5&amp;#58; sItem = &amp;quot;nw_maarcl096&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 6&amp;#58; sItem = &amp;quot;nw_it_mglove003&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 7&amp;#58; sItem = &amp;quot;nw_it_mneck031&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 8&amp;#58; sItem = &amp;quot;nw_it_mneck031&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 9&amp;#58; sItem = &amp;quot;nw_it_mring006&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 10&amp;#58; sItem = &amp;quot;nw_it_mneck006&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 11&amp;#58; sItem = &amp;quot;nw_it_mneck029&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 12&amp;#58; sItem = &amp;quot;nw_it_mring013&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 13&amp;#58; sItem = &amp;quot;nw_it_mboots011&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 14&amp;#58; sItem = &amp;quot;nw_it_mneck025&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 15&amp;#58; sItem = &amp;quot;nw_it_mbelt009&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 16&amp;#58; sItem = &amp;quot;nw_it_mbelt010&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 17&amp;#58; sItem = &amp;quot;nw_it_mbelt011&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 18&amp;#58; sItem = &amp;quot;nw_it_mring025&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 19&amp;#58; sItem = &amp;quot;nw_it_mring025&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 20&amp;#58; sItem = &amp;quot;nw_it_mbracer007&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 21&amp;#58; sItem = &amp;quot;nw_it_mbracer007&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 22&amp;#58; sItem = &amp;quot;nw_it_mneck012&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 23&amp;#58; sItem = &amp;quot;nw_maarcl088&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 24&amp;#58; sItem = &amp;quot;nw_it_mboots012&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 25&amp;#58; sItem = &amp;quot;nw_it_mneck026&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 26&amp;#58; sItem = &amp;quot;nw_it_mboots006&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 27&amp;#58; sItem = &amp;quot;nw_it_mbracer003&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 28&amp;#58; sItem = &amp;quot;nw_it_mneck008&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 29&amp;#58; sItem = &amp;quot;nw_it_mring008&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 30&amp;#58; sItem = &amp;quot;nw_maarcl056&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 31&amp;#58; sItem = &amp;quot;nw_maarcl092&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 32&amp;#58; sItem = &amp;quot;nw_it_mring014&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 33&amp;#58; sItem = &amp;quot;nw_it_mneck016&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 34&amp;#58; sItem = &amp;quot;nw_it_mboots013&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 35&amp;#58; sItem = &amp;quot;nw_it_mneck027&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 36&amp;#58; sItem = &amp;quot;nw_it_mbracer008&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 37&amp;#58; sItem = &amp;quot;nw_it_mneck013&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 38&amp;#58; sItem = &amp;quot;nw_maarcl089&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 39&amp;#58; sItem = &amp;quot;nw_it_mbelt012&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 40&amp;#58; sItem = &amp;quot;nw_it_mbelt013&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 41&amp;#58; sItem = &amp;quot;nw_it_mbelt014&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 42&amp;#58; sItem = &amp;quot;nw_it_mring027&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 43&amp;#58; sItem = &amp;quot;nw_it_mboots007&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 44&amp;#58; sItem = &amp;quot;nw_it_mbracer004&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 45&amp;#58; sItem = &amp;quot;nw_it_mneck009&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 46&amp;#58; sItem = &amp;quot;nw_it_mring018&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 47&amp;#58; sItem = &amp;quot;nw_maarcl093&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 48&amp;#58; sItem = &amp;quot;nw_it_mboots002&amp;quot;; break;
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#125;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; else if &amp;#40;GetRange&amp;#40;5, nHD&amp;#41;&amp;#41;&amp;nbsp; &amp;nbsp;// * 2500 - 16500
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int nRandom = Random&amp;#40;42&amp;#41; + 1;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; switch &amp;#40;nRandom&amp;#41;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#123;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 1&amp;#58; sItem = &amp;quot;nw_it_mbracer007&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 2&amp;#58; sItem = &amp;quot;nw_it_mbracer007&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 3&amp;#58; sItem = &amp;quot;nw_it_mneck012&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 4&amp;#58; sItem = &amp;quot;nw_maarcl088&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 5&amp;#58; sItem = &amp;quot;nw_it_mboots012&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 6&amp;#58; sItem = &amp;quot;nw_it_mneck026&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 7&amp;#58; sItem = &amp;quot;nw_it_mboots006&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 8&amp;#58; sItem = &amp;quot;nw_it_mbracer003&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 9&amp;#58; sItem = &amp;quot;nw_it_mneck008&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 10&amp;#58; sItem = &amp;quot;nw_it_mring008&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 11&amp;#58; sItem = &amp;quot;nw_maarcl056&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 12&amp;#58; sItem = &amp;quot;nw_maarcl092&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 13&amp;#58; sItem = &amp;quot;nw_it_mring014&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 14&amp;#58; sItem = &amp;quot;nw_it_mneck016&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 15&amp;#58; sItem = &amp;quot;nw_it_mboots013&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 16&amp;#58; sItem = &amp;quot;nw_it_mneck027&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 17&amp;#58; sItem = &amp;quot;nw_it_mbracer008&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 18&amp;#58; sItem = &amp;quot;nw_it_mneck013&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 19&amp;#58; sItem = &amp;quot;nw_maarcl089&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 20&amp;#58; sItem = &amp;quot;nw_it_mbelt012&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 21&amp;#58; sItem = &amp;quot;nw_it_mbelt013&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 22&amp;#58; sItem = &amp;quot;nw_it_mbelt014&amp;quot;; break;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nb
