World Serpent Inn - Ideas and Wishlist
#1
Posté 02 août 2010 - 06:05
First one... wild magic zones. I've yet to find a good one on the vault.
#2
Posté 04 août 2010 - 02:22
-----------------------------------
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.
#3
Posté 04 août 2010 - 02:22
#4
Posté 04 août 2010 - 04:23
#5
Posté 05 août 2010 - 06:12
#6
Posté 16 août 2010 - 05:43
jenshumate.com/wsibbs/viewtopic.php
Modifié par Jenna WSI, 16 août 2010 - 05:45 .
#7
Posté 16 août 2010 - 06:22
GOD!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.
jenshumate.com/wsibbs/viewtopic.php
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...
#8
Posté 16 août 2010 - 08:21
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.
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.
#9
Posté 17 août 2010 - 03:15
Modifié par GhostOfGod, 17 août 2010 - 03:16 .
#10
Posté 18 août 2010 - 01:41
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 .
#11
Posté 20 août 2010 - 04:45
#12
Posté 20 août 2010 - 07:15
#13
Posté 20 août 2010 - 10:52
#14
Posté 21 août 2010 - 12:07
#15
Posté 21 août 2010 - 05:12
#16
Posté 21 août 2010 - 09:04
Jenna WSI wrote...
Should work now, reset some more permissions.
I just checked and it's still requiring you to log in to view the open projects.
#17
Posté 21 août 2010 - 11:35
kalbaern wrote...
Jenna WSI wrote...
Should work now, reset some more permissions.
I just checked and it's still requiring you to log in to view the open projects.
Yes, But the link she gave above works without a having to log in.
#18
Posté 22 août 2010 - 12:54
#19
Posté 23 août 2010 - 04:30
I would have to agree with Shadow here. You have a lot of A LOT of stuff their.. It looks like you need a serious scripter to assist your team.ShaDoOoW wrote...
GOD!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.
jenshumate.com/wsibbs/viewtopic.php
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...
Good Luck!
#20
Posté 25 août 2010 - 12:52
Heh, yep. We have one but he's too busy to take on this project atm.





Retour en haut






