Author Topic: Community Patch 1.70 final release  (Read 2022 times)

Legacy_Vibrant Penumbra

  • Full Member
  • ***
  • Posts: 238
  • Karma: +0/-0
Community Patch 1.70 final release
« Reply #60 on: December 16, 2011, 04:03:17 pm »


                I'm rather enjoying the meta-game of watching who attacks who and who presents reasoned arguments and who ignores what...

Very interesting '<img'>

Lets me know whose posts to read for content and whose to read for entertainment.

Personally, I class ShadoOow's work along the same lines as Fox' Spells - a massive effort at fixing a lot of things and impressive in its own right. Very impressive.

But not for everyone.

I don't do scripting. But the BF says ShadoOow is always worth reading. So I do '<img'>
               
               

               
            

Legacy_Shadooow

  • Hero Member
  • *****
  • Posts: 7698
  • Karma: +0/-0
Community Patch 1.70 final release
« Reply #61 on: December 16, 2011, 05:29:46 pm »


               

Vibrant Penumbra wrote...

Personally, I class ShadoOow's work along the same lines as Fox' Spells - a massive effort at fixing a lot of things and impressive in its own right. Very impressive.

But not for everyone.

I don't do scripting.

BTW this Patch was designed for majority, I don't know who you are or rather what are you, but for regular player there are no downsides (assumed that player don't rely on exploits and bugs I fixed in his gameplay), player can't loose anything, only gain - how much depends whether he plays single player modules (in this case 99% Patch content will apply) or multiplayer modules; that is PWs - in this case it depends whether PW also installed Patch and whether they have merged all 2DAs.

There is no scripting or building required - unlike CEP and other HAK based packages, Patch gets incorporated into every single player module you play or host automatically.

If you are builder though, then you gain new possibilies in toolset, all without need to script anything.
               
               

               


                     Modifié par ShaDoOoW, 16 décembre 2011 - 09:28 .
                     
                  


            

Legacy_WebShaman

  • Hero Member
  • *****
  • Posts: 1390
  • Karma: +0/-0
Community Patch 1.70 final release
« Reply #62 on: December 16, 2011, 09:14:19 pm »


               

Bannor Bloodfist wrote...

Nothing for or against anything in this thread as I am not bothering to read any of it, but I will point out This beta thread where the last post on the first page showed that this entire topic does not belong in the general discussion forum, but does belong down in the NwN 1 Custom Content and Community Expansion Pack.  That "original" post about this entire project, was posted here in the general discussion, and was MOVED by Stanley Woo because it does not belong up here.

The OP should have taken the polite hint about that move in the first place and not have started a NEW thread here, regardless of what version he is discussing.  ANY thread regarding custom content belongs in the forum created for those topics.


*mutters under his breath*

I can't believe that I am agreeing with Bannor Bloodfist on this!!!

BUT!!

He is absolutely correct here.
               
               

               
            

Legacy_Fester Pot

  • Hero Member
  • *****
  • Posts: 1698
  • Karma: +0/-0
Community Patch 1.70 final release
« Reply #63 on: December 20, 2011, 06:00:34 pm »


               I've had a player send me a save game to get around an issue that they came across in Shadewood.

One of the plot arcs requires the head of a dead Banshee, which uses a tag based script to cast Wail of Banshee from the item, even if the player is unable to do so based on their low level.

AssignCommand (oPC, ActionCastSpellAtObject(SPELL_WAIL_OF_THE_BANSHEE, GetNearestObjectByTag("VOLO_BENCH"), TRUE, TRUE));


The placeable, VOLO_BENCH, has a script check for what spell is cast at in the OnSpellCastAt script,

- snip -

// Check the last spell that was cast:
  switch( GetLastSpell())
  { // If it was Wail of the Banshee...
  //SendMessageToPC( GetLastSpellCaster(), "GetLastSpell Check!");
    case SPELL_WAIL_OF_THE_BANSHEE:
    { // ...and nSpell has not been set...
      if( !nSpell)
      { // ...adjust the value of nSpell appropriately:
       
        ... script stuff ... gets rid of the bench and spawns in a lever ....


Setting all required variables to force the Wail fails - Wail of the Banshee simply is not cast on the placeable item / or detected as being cast with 1.70 installed. Character's level is Wizard 4. I'm assuming because of certain spell changes, it makes spells uncastable when playing on a module that does not have this installed or that was not built with 1.70 installed.

I had to have the player send me their save game and use the Wail of the Banshee item as intended on a machine that does not have 1.70 installed, save the game and send the save game back so they could continue.

The script works fine otherwise, as long at 1.70 is not installed.

EDIT: Working with the author to help troubleshoot the issue and verify if 1.70 caused this for the user who had it installed - or if it's something unrelated (override files, etc).

FP!
               
               

               


                     Modifié par Fester Pot, 20 décembre 2011 - 06:22 .
                     
                  


            

Legacy_WhiZard

  • Hero Member
  • *****
  • Posts: 2149
  • Karma: +0/-0
Community Patch 1.70 final release
« Reply #64 on: December 20, 2011, 11:26:40 pm »


               I compared the spells.2da, and didn't find any difference for the horrid wilting line, but I did find many spells that would no longer be targetable on the ground (e.g. firestorm, meteor swarm, storm of vengeance).  This looks like a systematic replacement of 0x05 with 0x09 (which should be 0x0D).

This can be a problem for servers/modules that use ActionCastSpellAtLocation() for these spells.
               
               

               


                     Modifié par WhiZard, 20 décembre 2011 - 11:31 .
                     
                  


            

Legacy_YeOlde

  • Jr. Member
  • **
  • Posts: 66
  • Karma: +0/-0
Community Patch 1.70 final release
« Reply #65 on: December 21, 2011, 12:14:38 am »


               Hey ShaDoOoW! Nice work! I want to be perfectly clear...

If I install this on my computer. Will it break anything for me if I play on another server that doesn't have 1.70 installed?
               
               

               
            

Legacy_Shadooow

  • Hero Member
  • *****
  • Posts: 7698
  • Karma: +0/-0
Community Patch 1.70 final release
« Reply #66 on: December 21, 2011, 12:29:31 am »


               

YeOlde wrote...

Hey ShaDoOoW! Nice work! I want to be perfectly clear...

If I install this on my computer. Will it break anything for me if I play on another server that doesn't have 1.70 installed?

No it shouldn't (and if it does then report it, that would be bug). There is actually a benefit for you using the patch on server that doesn't support it. You will be able to build with the epic spell feats prerequisities change (corrected the prerequisities to cast lvl 9 spells to require only 17 lvl cleric/druid/wiz or 18sorc not 21).

WhiZard wrote...

I compared the spells.2da, and didn't
find any difference for the horrid wilting line, but I did find many
spells that would no longer be targetable on the ground (e.g. firestorm,
meteor swarm, storm of vengeance).  This looks like a systematic
replacement of 0x05 with 0x09 (which should be 0x0D).

This can be a problem for servers/modules that use ActionCastSpellAtLocation() for these spells.

You have outdated 2DA, in the time of first release this issue was indeed there and The Krit pointed it out and I fixed it immediately. The TargetType spells.2da changes were moved into HAK version and I strongly suggest to merge them for any PW that uses haks, at least Meteor Swarm which has the 0x0D issue. 0x0D is actually wrong, in single player you won't be able to target area with these spells however in multiplayer when you use this spell from quickslot you will have to target yourself or area. Granted that spell has personal range, its stupid to cast it on area/ground as that will force your character move to that spot and cast it on self there. Removing the Area bit from TargetType which I did for Meteor Swarm in initial release fixes this issue and make this spell easy to cast as you don't have to choose target, spell will be always automatically targetted at your character.

Fester Pot wrote...
...

So far I was unable to reproduce this bug, I even tried to change TargetType bit to exclude placeables from wail of banshee however casting a spell via scripting bypassed that change anyway (thats btw why monsters can cast self-protections spells on another target). Still not sure what caused this neither if Patch 1.70 has anything to do with this however it doesn't look like it.
               
               

               


                     Modifié par ShaDoOoW, 21 décembre 2011 - 01:18 .
                     
                  


            

Legacy_WhiZard

  • Hero Member
  • *****
  • Posts: 2149
  • Karma: +0/-0
Community Patch 1.70 final release
« Reply #67 on: December 21, 2011, 12:59:16 am »


               

ShaDoOoW wrote...

WhiZard wrote...

I compared the spells.2da, and didn't
find any difference for the horrid wilting line, but I did find many
spells that would no longer be targetable on the ground (e.g. firestorm,
meteor swarm, storm of vengeance).  This looks like a systematic
replacement of 0x05 with 0x09 (which should be 0x0D).

This can be a problem for servers/modules that use ActionCastSpellAtLocation() for these spells.

You have outdated 2DA, in the time of first release this issue was indeed there and The Krit pointed it out and I fixed it immediately. The TargetType spells.2da changes were moved into HAK version and I strongly suggest to merge them for any PW that uses haks, at least Meteor Swarm which has the 0x0D issue. 0x0D is actually wrong, in single player you won't be able to target area with these spells however in multiplayer when you use this spell from quickslot you will have to target yourself or area. Granted that spell has personal range, its stupid to cast it on area/ground as that will force your character move to that spot and cast it on self there. Removing the Area bit from TargetType which I did for Meteor Swarm in initial release fixes this issue and make this spell easy to cast as you don't have to choose target, spell will be always automatically targetted at your character.


0x0D still requires targeting in SP.  The point I was making was for modules/servers that would themselves use these spells on locations.  For example, when a player character steps over a trigger, a creature in an unaccessible region of the same area can cast a 3x3 array of meteor swarms, with the middle one centered on the player's location. As the script commands ignore the range for the spell, this is quite feasible in practice, and I believe SoU did something similar to this with wail of the banshee (though I think.that used the Fake subset).
               
               

               


                     Modifié par WhiZard, 21 décembre 2011 - 12:59 .
                     
                  


            

Legacy_Shadooow

  • Hero Member
  • *****
  • Posts: 7698
  • Karma: +0/-0
Community Patch 1.70 final release
« Reply #68 on: December 21, 2011, 01:14:52 am »


               Not possible in <1.69 -> Meteor Swarm script is bound to the location of OBJECT_SELF, however this is possible in 1.70, because all spells in 1.70 uses correct variables thus allowing both custom content like this and custom potions (there were issues where custom potion given to the henchman added benefits to the player character).

BTW it is possible in 1.70 because as I wrote in last post spell casting triggered via scripting also ignores TargetType.

I can imagine that current TargetType of the Meteor Swarm spell would allow to increase a range and then make this spell behave like Bombardment without HAKs. However this cannot be intented, or why this is only spell that has this issue or "feature"?

Theory: I actually think that most of these spell has 0x05 TargetType because of the targetting issue. Probably there was some reason to keep area functionality but there wasn't yet crafting (think they are all NWN spells, not from expansions) so the spells didn't have to have the item functionality. Without item bit, the targetting issue isn't there, when used from quickslot spell is automatically targetted on self, but it is possible to target it via radial on area. However when item bit is added it is messed.
               
               

               


                     Modifié par ShaDoOoW, 21 décembre 2011 - 01:24 .
                     
                  


            

Legacy_WhiZard

  • Hero Member
  • *****
  • Posts: 2149
  • Karma: +0/-0
Community Patch 1.70 final release
« Reply #69 on: December 21, 2011, 02:09:20 am »


               

ShaDoOoW wrote...

Not possible in <1.69 -> Meteor Swarm script is bound to the location of OBJECT_SELF, however this is possible in 1.70, because all spells in 1.70 uses correct variables thus allowing both custom content like this and custom potions (there were issues where custom potion given to the henchman added benefits to the player character).


Right for that one, but looks like SoV can be replicated in this way for a huge storm, and all it takes for the functioning of the others is editing the spell script (without having to change the 2da).
               
               

               


                     Modifié par WhiZard, 21 décembre 2011 - 02:10 .
                     
                  


            

Legacy_Shadooow

  • Hero Member
  • *****
  • Posts: 7698
  • Karma: +0/-0
Community Patch 1.70 final release
« Reply #70 on: December 21, 2011, 02:39:24 am »


               Again. All these spells have Personal range. Thus although player can target an area (for 0x0D directy, for 0x05 only via radial on the ground), character will move toward that area and cast the spell under self there.

Unless you change range in 2DA you won't allow player character to cast these spells like Bombardment in normal way. Argumenting that a script could do that is insignificant because casting spells via script action ignores both Range and (yours knowhow that Im not very incluned it is correct) TargetType so this is still possible even in 1.70.

Except that firestorm, meteor swarm and invisible purge does incorrectly uses OBJECT_SELF in their spellscript so even if you would use script to force player to cast it on distant area spell would still worked as cast on self. Argumenting you can fix the spellscript seems weird to me - thats what I did in the Patch afterall. In 1.70 you can do this as all spellscript uses correct variables.

Now, the only negative(?) effect of this change, which is btw in HAK version now (and thus only recommended but not automatically installed), would be that current 1.69 implementation allow to change range of the spell via 2DA server-side. AFAIK this itself doesn't make the "no spell preparation" issue and since the spell has Area bit already it would be with a spellscript change possible to allow this spell to be theoretically cast on distant area without need to use HAK. However since this change in Patch require HAK it is meaningless. For HAK based servers, they can do whatever they want via HAK with both 1.69 and 1.70, in 1.70 they won't have to fix spellscripts, only change range and targettype.
               
               

               


                     Modifié par ShaDoOoW, 21 décembre 2011 - 05:18 .
                     
                  


            

Legacy_Ranger Solo

  • Newbie
  • *
  • Posts: 30
  • Karma: +0/-0
Community Patch 1.70 final release
« Reply #71 on: December 21, 2011, 03:30:55 am »


               OK. I'm lost now.

As a Mac user here just what am I to expect from this patch? I don't know if I should use this patch or not?
               
               

               
            

Legacy_Shadooow

  • Hero Member
  • *****
  • Posts: 7698
  • Karma: +0/-0
Community Patch 1.70 final release
« Reply #72 on: December 21, 2011, 03:53:13 am »


               Ill tell you this way. Why do you won't try it? What can you lose? If it would screw anything out which it doesn't you can uninstall it so whats the problem? Don't listen peoples who tell you how bad or how wrong (or how great '<img'>) is this patch and make your own decision.
               
               

               


                     Modifié par ShaDoOoW, 21 décembre 2011 - 04:20 .
                     
                  


            

Legacy_WhiZard

  • Hero Member
  • *****
  • Posts: 2149
  • Karma: +0/-0
Community Patch 1.70 final release
« Reply #73 on: December 21, 2011, 06:06:09 am »


               

ShaDoOoW wrote...
Argumenting that a script could do that is insignificant because casting spells via script action ignores both Range and (yours knowhow that Im not very incluned it is correct) TargetType so this is still possible even in 1.70.


I remember it being the other way around.  Target type is not ignored, causing spells not to activate their scripts, while range is ignored allowing spells to target objects farther away.
               
               

               
            

Legacy_Fester Pot

  • Hero Member
  • *****
  • Posts: 1698
  • Karma: +0/-0
Community Patch 1.70 final release
« Reply #74 on: December 21, 2011, 06:29:50 am »


               Update: Regarding the Wail of the Banshee spell not being properly cast on the placeable, after some testing with ShaDoOoW, it's been resolved that 1.70 is not the culprit, but possibly a wild spells.2da in the override directory.

Thanks for looking into this and resolving the issue so quickly.

FP!