Aller au contenu

Photo

World Serpent Inn - Ideas and Wishlist


  • Veuillez vous connecter pour répondre
19 réponses à ce sujet

#1
Jenna WSI

Jenna WSI
  • Members
  • 1 078 messages
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.

#2
TSMDude

TSMDude
  • Members
  • 865 messages
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.




#3
TSMDude

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

#4
kalbaern

kalbaern
  • Members
  • 824 messages
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.

#5
Jenna WSI

Jenna WSI
  • Members
  • 1 078 messages
Thank you! I'll check that out, the instructions are helpful too. I'm not a real scripter.

#6
Jenna WSI

Jenna WSI
  • Members
  • 1 078 messages
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

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


#7
Shadooow

Shadooow
  • Members
  • 4 470 messages

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

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...

#8
Lightfoot8

Lightfoot8
  • Members
  • 2 535 messages

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
GhostOfGod

GhostOfGod
  • Members
  • 863 messages
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 .


#10
Genisys

Genisys
  • Members
  • 525 messages
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 .


#11
Jenna WSI

Jenna WSI
  • Members
  • 1 078 messages
Oops, I forgot about that. Changed it to public view.

#12
GhostOfGod

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

#13
Jenna WSI

Jenna WSI
  • Members
  • 1 078 messages
Should work now, reset some more permissions.

#14
TSMDude

TSMDude
  • Members
  • 865 messages
Why not just post the wishlist here?

#15
Jenna WSI

Jenna WSI
  • Members
  • 1 078 messages
It's pages and pages of suggestions.

#16
kalbaern

kalbaern
  • Members
  • 824 messages

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
Lightfoot8

Lightfoot8
  • Members
  • 2 535 messages

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
DarkStormInc

DarkStormInc
  • Members
  • 26 messages
worked for me, try a hard refresh or clear temp files.

#19
Taino

Taino
  • Members
  • 139 messages

ShaDoOoW wrote...

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

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...

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.

Good Luck!

#20
Jenna WSI

Jenna WSI
  • Members
  • 1 078 messages
"It looks like you need a serious scripter to assist your team."



Heh, yep. We have one but he's too busy to take on this project atm.