Author Topic: World Serpent Inn - Ideas and Wishlist  (Read 1151 times)

Legacy_Jenna WSI

  • Hero Member
  • *****
  • Posts: 1837
  • Karma: +0/-0
World Serpent Inn - Ideas and Wishlist
« on: August 02, 2010, 07:05:26 pm »


               I'll be posting ideas here as I think of or remember them. If anyone cares to pick up a certain project, just please post your scripts here, or a link to a vault submission.

First one... wild magic zones. I've yet to find a good one on the vault.
               
               

               
            

Legacy_TSMDude

  • Hero Member
  • *****
  • Posts: 1515
  • Karma: +0/-0
World Serpent Inn - Ideas and Wishlist
« Reply #1 on: August 04, 2010, 03:22:18 pm »


               Wild/Dead Magic System  v. 1.04

-----------------------------------



REVISION HISTORY

----------------

v.1.0

  - Released

 

v.1.01

  - Corrected typo in cs_wdm_const_i



v.1.02

  - Comment corrections in cs_wdm_i

  - Addition of additional documentation

 

v.1.03

  - Changed return type of WDM_HandleMagicZone from void

    to int to allow checking of return type for more complex

    spell override scripts  



v.1.04

  - Bug Fix: Temporary item properties were made permanent

             when properties were restored after entering

             dead magic zone.  Temporary item properties are

             now ignored during property serialization.

  - Bug Fix: Corrected restoration of attack bonus vs XXX item

             property types

  - Bug Fix: cs_deadm_ox script used GetEnteringObject instead

             of GetExitingObject() (DOH!)



 

ABOUT THIS SYSTEM

-----------------

These scripts provide a Wild/Dead magic zone

system like those found in the HotU offical

campaign.  However, some modifications were

made to make it more PW friendly.







CONFIGURATION

-------------



 I. Wild Magic Zones

 -------------------

 Wild magic zones are denoted by the presence of

 the 'wdm_wildm_zone' variable (type integer)

 with a value of '1' on the area in question.

 

 There are two other variables that can be set

 to control how the magic area behaves.  These

 are:

 

       Variable Name     | Type       | Default if not defined

       --------------------------------------------------------

       wdm_wm_percent    | integer    | 50

       --------------------------------------------------------

       wdm_wm_script     | string     | x0_s3_rodwonder

       --------------------------------------------------------

       

  wdm_wm_percent - Controls the percent chance of a wild magic

                   surge.  Valid values are between 1 and 100.

                   

  wdm_wm_script  - Specifies the name of the script to execute

                   when a wild magic surge occurs.

                   

  These two variables give some flexibility to the builder as they

  can create wild magic areas with different probabilities of surges

  or can create custom wild magic script for the particular situation.

 

  wdm_wm_percent, and wdm_wm_script do not have to be specified

  on the area.  If they are not, defaults are used (50% chance of

  a surge, and the x0_s3_rodwonder script will be executed).

 

  A wild magic area can be created on the fly via scripting as well

  without having to set the variables ahead of time in the toolset.

  Use the function:

 

      WDM_SetAreaWildMagicStatus(object oArea, int nEnable,

                                 int iPercent = 50,

                                 string sScript = "x0_s0_rodwonder)

                                 

  Look at the 'Dynamic Magic' area in the demo module via the toolset

  (specifically the magic_test script) for examples on using this

  function.

 

 

 

  II. Dead Magic Zones

  --------------------

  Dead magic zones are denoted by presence of the

  "wdm_deadm_zone' variable (type integer) with a value

  of '1' on the area in question.

 

  There are two other variables that can be set

  to control how the magic area behaves.  These

  are:

   

        Variable Name     | Type       | Default if not defined

        --------------------------------------------------------

        wdm_dm_streffects | integer    | 0

        --------------------------------------------------------

        wdm_dm_stritems   | integer    | 0

        --------------------------------------------------------

         

  wdm_dm_streffects - Specifies that all magical status effects

                      (such as buffs) be stripped from the player

                      when they enter

                     

  wdm_dm_stritems   - Specifies that all item properties should be

                      stripped from all magic items in a player's

                      inventory when they enter

                     

  A few notes about the above properties.  If *only* the

  'wdm_deadm_zone' variable is specified, then status effects

  and items will not be stripped.  The only effect in this case

  will be that cast spells will not work.

 

  If either 'wdm_dm_streffects' or 'wdm_dm_stritems' is specified

  for an area, make sure to set the cs_deadm_oe script to the

  onEnter event and cs_deadm_ox script to the onExit script of

  the area.  If these scripts are not set, then effects and/or

  items will not be stripped.

 

  A dead magic area can be created on the fly via scripting as well

  without having to set the variables ahead of time in the toolset.

  Use the function:

     

      void WDM_SetAreaDeadMagicStatus(object oArea, int iEnable,

                                      int iStripEffects = FALSE,

                                      int iStripItemProps = FALSE);

                                   

  Look at the 'Dynamic Magic' area in the demo module via the toolset

  (specifically the magic_test script) for examples on using this

  function.

 

 

  III. Final Steps

  ----------------

  In order for any of the above to function correctly, the

  new spell override functionality included with HotU must be

  used.

 

  The simplest example of using this facility is as follows:

 

  - Create a script called sp_override (or whatever you wish to

    call it).

 

  - With in the script, place the following:

 

      #include "cs_wdm_i"



      if (WDM_HandleMagicZone())

      {

          SetModuleOverrideSpellScriptFinished();

      }

     

  - Save and compile the script.

 

  - Next, edit the script associated with the onModuleLoad event

    of the module, and add the following (make sure this script

    includes x2_inc_switches):

 

      SetModuleOverrideSpellscript(<NAME OF SCRIPT>);

     

    So, using the example script name above it could look like this:

 

       SetModuleOverrideSpellscript("sp_override");

     

  - Save and compile the script.

 

 

  If already using some sort of spell override, all that is needed

  is an include of 'cs_wdm_i' and adding the line

  'WDM_HandleMagicZone();' towards the beginning of said script.

 

 

  Next, if you have any containers or creatures that may

  drop magic items when killed within a dead magic zone that

  strips magic items, you will probably want to add the following

  to the onAcquireItem event of your module:

 

      object oCreature = GetModuleItemAcquiredBy();

      if (oCreature != OBJECT_INVALID)

      {

          struct DeadMagicInfo deadInfo =

              WDM_GetAreaDeadMagicStatus(GetArea(oCreature));

     

          if (deadInfo.iIsDeadMagic && deadInfo.iStripProperties)

              WDM_RemoveAllProperties(oItem, oCreature);

      }

 

  This will cause the item to be stripped when it is picked up.

 

  Finally, since 24 hour uptime cannot be guaranteed (crashes,

  resets for new content, etc), the following should be added

  to the onClientEnter or in an onEnter script of the starting area:

 

      WDM_RestoreMagic(GetEnteringObject(), TRUE);

     

  This is for those, hopefully rare, cases where a player was in

  a dead magic area and had their items stripped and the server

  crashed or they logged out in the area and the server crashed

  or reset.  This will restore all of their item properties when

  they next login (probably best to do it on the onEnter of the

  starting area for performance reasons, but will leave that up

  to you to determine).  

 

  As a note, property persitence doesn't require NWNX, or the

  DB functionality packaged with NWN.  When items are stripped,

  the properties of a particular item are converted into a string

  and stored on the item itself.  Now that variables stored on

  items are persistent, these variables can be read between

  server resets.

 

               
               

               
            

Legacy_TSMDude

  • Hero Member
  • *****
  • Posts: 1515
  • Karma: +0/-0
World Serpent Inn - Ideas and Wishlist
« Reply #2 on: August 04, 2010, 03:22:52 pm »


               (We actually use our own varied one in our module but there is a good one from the Vault.)
               
               

               
            

Legacy_kalbaern

  • Hero Member
  • *****
  • Posts: 1531
  • Karma: +0/-0
World Serpent Inn - Ideas and Wishlist
« Reply #3 on: August 04, 2010, 05:23:49 pm »


               If you use the above Jen ... you can then further modify "x0_s3_rodwonder" to include more of the effects from the link you placed on your own forum. (the one with the PnP wild magic table) Half or more of those effects would be possible.
               
               

               
            

Legacy_Jenna WSI

  • Hero Member
  • *****
  • Posts: 1837
  • Karma: +0/-0
World Serpent Inn - Ideas and Wishlist
« Reply #4 on: August 05, 2010, 07:12:50 am »


               Thank you! I'll check that out, the instructions are helpful too. I'm not a real scripter.
               
               

               
            

Legacy_Jenna WSI

  • Hero Member
  • *****
  • Posts: 1837
  • Karma: +0/-0
World Serpent Inn - Ideas and Wishlist
« Reply #5 on: August 16, 2010, 06:43:50 pm »


               Widgets! Or other ways to allow players to cast new spells and have new abilities, that doesn't require a hak. Our master list has gobs of ideas. If you use them, please post the results to the vault for the community. '<img'>

jenshumate.com/wsibbs/viewtopic.php
               
               

               


                     Modifié par Jenna WSI, 16 août 2010 - 05:45 .
                     
                  


            

Legacy_Shadooow

  • Hero Member
  • *****
  • Posts: 7698
  • Karma: +0/-0
World Serpent Inn - Ideas and Wishlist
« Reply #6 on: August 16, 2010, 07:22:33 pm »


               

Jenna WSI wrote...

Widgets! Or other ways to allow players to cast new spells and have new abilities, that doesn't require a hak. Our master list has gobs of ideas. If you use them, please post the results to the vault for the community. '<img'>

jenshumate.com/wsibbs/viewtopic.php

GOD!

Sorry but this totally bother me:sick:. You are trying to avoid use haks exactly for stuff the hak was created.

You should really decide. Lately you arer requesting all this stuff that needs hak packs. So either you will have it with haks, or you won't...
               
               

               
            

Legacy_Lightfoot8

  • Hero Member
  • *****
  • Posts: 4797
  • Karma: +0/-0
World Serpent Inn - Ideas and Wishlist
« Reply #7 on: August 16, 2010, 09:21:53 pm »


               

Jenna WSI wrote...

Widgets! Or other ways to allow players to cast new spells and have new abilities, that doesn't require a hak. Our master list has gobs of ideas. If you use them, please post the results to the vault for the community. '<img'>

jenshumate.com/wsibbs/viewtopic.php


 Umm  Jen,  It seem I have to log in to look at the link there.  Could you post something that does not require someone to create an account. 
               
               

               
            

Legacy_GhostOfGod

  • Hero Member
  • *****
  • Posts: 1490
  • Karma: +0/-0
World Serpent Inn - Ideas and Wishlist
« Reply #8 on: August 17, 2010, 04:15:58 am »


               I wouldn't mind helping out with creating some widget type scripts. But I really don't want to create an account to do it either. I second the motion to post stuff that does not require a log in. ; )
               
               

               


                     Modifié par GhostOfGod, 17 août 2010 - 03:16 .
                     
                  


            

Legacy_Genisys

  • Hero Member
  • *****
  • Posts: 961
  • Karma: +0/-0
World Serpent Inn - Ideas and Wishlist
« Reply #9 on: August 18, 2010, 02:41:52 pm »


               I'll repost my statement in another post here, "Tagbased Scripted Items & Spell Hooking is the best way to handle custom systems", though spellhooking may produce a slight lag in casting (some say), it's worth the venture, because you have greater control over areas (like wild magic zones), spells, and custom changes to those spells, and can even prevent certain spells or all spells from being cast in areas (This includes Spells & Special Abilities from Items as well!!!!)

I think making a custom spell system only produces frustration for the players if it requires much study to understand the effects of the changes..  This is what turns me off on some servers that overwhelm players with custom content, e.g., major modifications to core mechanics / spells / etc..

TSI (Tagbased Scripted Items) on the other hand permits you to add whatever you want to a module without haks, and that is critical to a good server module, for players often detest downloading haks. (I'm sure I'm not mistake on the players hating downloading hak thing)  The great thing about TSI, is you can put information in the Item's Description, which helps to prevent that overwhelming effect that major modifications & journals can present to a player... (You should read that twice)

To me, it's fine to change game mechanics, as long as you carefully consider the ramifications of those changes BEFORE you make the changes, as thoughtless change without consideration to FIRST the players and Secondly the Game's Core d20 Mechanics, then your going to only produce frustration for yourself and everyone else involved...

I've had the luxury of making a few mistakes in my years of building & DMing, and none of them were as huge as modifying the game's core rules or boosting damages / resistance, and host of other fatal balance errors...

Well thought out design & consideration for your players (if you want to have any), will show well in your work, for your art (The Module) always speaks for itself, truly...  Players know good work, you can't fool them... (The Truth)

All of this, of course, is just Food For Thought...
               
               

               


                     Modifié par Genisys, 18 août 2010 - 01:44 .
                     
                  


            

Legacy_Jenna WSI

  • Hero Member
  • *****
  • Posts: 1837
  • Karma: +0/-0
World Serpent Inn - Ideas and Wishlist
« Reply #10 on: August 20, 2010, 05:45:32 pm »


               Oops, I forgot about that. Changed it to public view.
               
               

               
            

Legacy_GhostOfGod

  • Hero Member
  • *****
  • Posts: 1490
  • Karma: +0/-0
World Serpent Inn - Ideas and Wishlist
« Reply #11 on: August 20, 2010, 08:15:25 pm »


               Is there a different link for the public view? Just tried the previous one and it still requires log in.
               
               

               
            

Legacy_Jenna WSI

  • Hero Member
  • *****
  • Posts: 1837
  • Karma: +0/-0
World Serpent Inn - Ideas and Wishlist
« Reply #12 on: August 20, 2010, 11:52:27 pm »


               Should work now, reset some more permissions.
               
               

               
            

Legacy_TSMDude

  • Hero Member
  • *****
  • Posts: 1515
  • Karma: +0/-0
World Serpent Inn - Ideas and Wishlist
« Reply #13 on: August 21, 2010, 01:07:52 am »


               Why not just post the wishlist here?
               
               

               
            

Legacy_Jenna WSI

  • Hero Member
  • *****
  • Posts: 1837
  • Karma: +0/-0
World Serpent Inn - Ideas and Wishlist
« Reply #14 on: August 21, 2010, 06:12:25 pm »


               It's pages and pages of suggestions.