Random Generated events

From PSwiki
Revision as of 15:36, 15 October 2022 by Talad (talk | contribs) (Example:)
Jump to navigation Jump to search

A new capability has been added to PSUnreal about generating random events in the game.

An event is defined to happen in an "area type", it can be for example "forest" or "tavern" or specific location. There is relationiship beween random_events.area and random_event_locs.event_areatype. In addition there is also random_event_locs.event_probability which is a % of chance of that event happening.

Database structure:

Scripting:

  • Prerequisites (random_events.prerequisite)
    • The same syntax of quest prerequisites can be used with the following additions:
      • <skillsinrange name="Sword" min="10" max="20" range="10"> (works as skill but checks all the players in range and sum up their skills). If the name is empty it sums up the total skills of all players in range.
  • Script for the event (random_events.script)

Options:

  • You can specify a name and lastname in the <spawnnpc> tag, if omitted the NPC will have a random name and lastname.
  • You can have a description, useful if you are specifying the name and the race of the NPC. If not specified it will empty.
  • You can specify certain traits, if missing, the server will randomize by choosing the ones available for the given race.

Example:

   <time seconds="0">
	<spawnnpc id="1" name="Erisal" lastname="Baloe" race="0|1|2|3|5|6|7|9|10|11" invulnerable="yes" hp="400" mana="400" loot_category="22" locx="1" locy="1" locz="0" description="A young dermorian girl, with a nice smile." traits="42|363|380">
	  <inventory>
		 <item name="Small Battle Axe" location="righthand"/>
		 <item name="Falchion" location="bulk1" quantity="65"/>
		 <item name="Chainmail Legs Armor" location="legs"/>
	  </inventory>
	  <skills>
		 <skill name="Sword" value="50"/>
	  </skills>
	  <stats str="80" agi="70" end="60" int="75" wil="55" cha="90"/>
	  <kas>
		 <ka name="Merchant" priority="1"/>
	  </kas>
	  <specifickas>
		 <trigger trigger="greetings" response1="Hello" response2="How are you?"/>
	  </specifickas>
	  <merchant>
		<category name="Weapons"/>
		<category name="Armor"/>
	  </merchant>
	  <trainer>
		<skill name="Strength" min_rank="0" max_rank="20" min_faction="0"/>
	  </trainer>
	  <factions>
		<faction name="orcs" value="50"/>
	  </factions>
	  <variables>
		<variable name="scale" value="1.5"/>
	  </variables>
          <npctype name="performer" parent="Fighter" >
		  <behavior name="start_show" completion_decay="0" growth="0" initial="0">
			<emote cmd="/bow" />
			<talk text="Welcome to my show" target="false" />
			<busy/>
		  </behavior>
		  <behavior name="show" completion_decay="0" growth="0" initial="0">
		    <emote cmd="/greet" />
			<wait duration="30" anim="play" />
		   </behavior>
		   <behavior name="showidle">
				<idle />
		   </behavior>
	   </npctype>
	</spawnnpc>
	<spawnitem id="2" name="Long Bow" pickup="yes">
	   <location x="1" y="1" z="0"/>
	</spawnitem>
</time>
<time seconds="30">
     <trigger behavior="start_show" npc="1"/>
</time>
<time seconds="45">
     <trigger behavior="show" npc="1"/>
</time>
<time seconds="60">
     <trigger behavior="showidle" npc="1"/>
</time>
<time seconds="70">
    <destroynpc id="1"/>
	<destroyitem id="2"/>
	<schedulenext/>
</time>