Aller au contenu

Photo

Community Patch discussion and development thread


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

#851
Shadooow

Shadooow
  • Members
  • 4 465 messages

Heyhey, i found a contender for "most obscure bug" report to date:
The sky domes render at the wrong depth.
so what that means is basically, they are rendered on a plane much closer to the camera than they should be, in fact closer to the eye, than many of the objects seemingly in front of it. while it doesn't overlap and block them, it still produces odd eye strain when viewed in 3D vision.

No idea what are you talking about, but the vanilla skyboxes are horrible and I wanted to replace them.

 

Problem is that there is no suitable replacement, the skyboxes on vault were complete rework which didn't matched to original and thats a crucial feature for this project.

 

If someone else is able to fix the bug you mentioned I will gladly include it, but its not in my abilities.


  • KlatchainCoffee aime ceci

#852
OldTimeRadio

OldTimeRadio
  • Members
  • 1 400 messages

I don't know how the 3D vision thing works but this may be an artifact of just using a large, hollow model.  Let me explain: The skybox may be large but the actual center of the model (the invisible model base) may be quite close to the player, residing in the center of the area.  If some program is trying to consider how close or far away an object is, there's a good chance it may consider the (invisible) model base as its center and not the part we actually see.  In such a case, it could lead to bad conclusions about how to display the model.  There are also one or two funky things about how skyboxes are drawn (or, actually, how things are drawn after skyboxes) which might confuse the logic in a stereoscopic viewer.

 

Just a guess.  



#853
Gruftlord

Gruftlord
  • Members
  • 347 messages
3D Vision uses the actual position of a polygon to render it at it's internal depth. it's certainly not rendered at character depth/model center. but rather the dome seems too small. yes, i see that it ha different rules for occlusion than other objects, otherwise it would block visibility for a lot of things, since, as i said, in 3d space it is too close to the camera.

so anyway, does someone know the name of the mdls? and is there a setting or ways somewhere to scale the size of the dome?

#854
Shadooow

Shadooow
  • Members
  • 4 465 messages

Community Patch 1.72 Beta 13 Released
download
 
To install it, follow as in 1.71 manual installation. Simply unpack the archive into folder with NWN files (thus if you do this right it will want to overwrite bunch of files which you have to confirm). The 1.72 is international, works for all languages as there are no changes in dialog.tlk file yet.
 
To uninstall it, either run 1.69 critical rebuild, 1.71 installation, or manually delete/rename the xp2patch.key file and rename the xp2patch171.key which is included in the 1.72 beta distribution.
 
 
Neverwinter Nights Community Patch 1.72 beta 13 content:

Fixed broken stuff from previous Patch versions:
- fixed 1.71 bug in AI that prevented creatures to heal their allies
- fixed nonfunctional 1.70 feature to cast dispel at AOE location - this should prevent issues when the dispel cast under self didn't dispelled the AOE spell
 
Revisited features from previous Patch versions:
- Colored emote icons from The Amethyst Dragon changed for Melliuc emoticons from Melliuc

New fixes and features:

Tileset fixes:
tdr01.set (ruins) - numerous visibility fixes in the interior group tiles (details here)
tni02.set (castle interior 2) - numerous visibility fixes in the round rooms tiles (details here)
tno01_n01_05 - missing tile variant added (this was done in some of the previous beta version but not announced)
 
2DAs:
appearance.2da - fixed kobold footpad and thug's reflection settings (Gruftlord)
classes.2da - default package for shou changed to be monk default package
domains.2da - added new column Level_0 to enable specify domain catrips
spells.2da - fixed AI category for summon shadow spells (all 4 variants)
           - fixed AI category for true seeing (was TALENT_CATEGORY_BENEFICIAL_CONDITIONAL_AREAEFFECT while single target)
 
Spells, feats and special abilities:
- the AOE caster validity check improved, so it will no longer automatically destroy AOE created outside of the spellscript
 
Scripts:

- x2_inc_switches: added new switch to enable curse to bypass ability decrease immunity
- x2_mod_def_load: incorporated latest switch additions from 1.72beta 11/12/13, also the new switch with curse will be enabled automatically under hardcore&very difficult difficulty (if the module uses unmodified x2_mod_def_load script ofc)
- nw_i0_spells: removed duplicated shadow shield on the breach spell list
- 70_inc_nwnx: new library with custom functions that requires nwn©x_patch
 
AI:

- no more spell/feat decrementing when talent doesn't pass filter checks - this was big problem with sorcerers
- few small improvements in the AOE behavior to make it less problematic
- enabled undead creatures to heal their undead allies with negative energy spells
- smarter cure behavior:

  • creatures will now be able to cure fear, mind-affecting effects, mobility impairing effects and petrify if they have right spell to do so
  • creatures will no longer try to cure level drain with lesser restoration

- better see invisible behavior:

  • creatures will try to use revealing talents if they lose track of their last enemy
  • creatures will try to use ultravision in darkness
  • creatures will be able to use also potions and unequippable items with revealing spells
  • creatures will use detect mode if they don't have any revealing spells or if those spell didn't revealed anyone

- creatures will use restoration - others and cure critical wounds - others spells properly
- creatures will try to find other enemy if their current enemy is petrified
- fixed the AI engine so it can use any summoning feat (which normally doesn't work because of bug in ActionUseTalentAtLocation which is why summoning feats are disabled by default) however, no feat in feat.2da get the AI category changed to provide backwards compatibility in modules where this fix won't be functional
- additional AI spell usage checks:

  • creatures won't cast haste if they got item with haste itemproperty
  • creatures won't cast stone bones on non-undead target
  • creatures won't use see invis, ultravision, true seeing talents if they got true seeing effect or item
  • creatures won't use any sort of invisibility talent if they are already invisible
  • creatures won't use sanctuary if they are under greater sanctuary effect
  • creatures won't use minor globe of invulnerability if they are already under effect of different/stronger version of this spell
  • creatures won't use ghostly visage if they are already under effect of different version of this spell or ethereal visage spell
  • creatures won't use any sort of spell mantle talent if they already have any spell mantle active
  • creatures won't try to substitute inflict spells when casting them on self/ally (in these cases its on purpose)
  • the haste and true seeing checks will now be also verified on items, creatures with these effects on item properties won't waste time casting these spells

- implemented "intelligence" check, intelligent creatures will avoid use spells on immune and such. Intelligence is determined via AI level (High/Very High) or racial type (player races, dragons, feys, outsiders, magical beasts, abberations) or base intelligence score 10+ excluding vermins, oozes, animals and beasts (note many of these checks were there already, now will be used only by smart creatures)
- additional AI intelligence checks:

  • readded check for using drown and level drain usage spells on naturally immune targets which was disabled in 1.70
  • high ai creatures will use breach spells only when the enemy has spells which breach removes
  • high ai creatures will try to substitute dispel spells for breach, if enemy has spell mantle/shadow shield

- Tasha hideous laughter added into AI purpose mind-affecting spells list (which will prevent casting this spell on immune targets if the creature is smart enough)
- additional High AI features:

  • high ai creatures will be able to summon Epic Dragon, Epic Mummy and Fiendish Servant
  • high ai creatures will be able to use mass heal, healing circle, circle of doom and negative energy burst to heal their allies
  • high ai creatures will be able to use Greater Restoration to heal self or their allies

 
NWNX_Patch and NWNCX_Patch plugins (current version v1.16):
- fixed a memory leak related to the OnPlayerLeave improvement from NWNX_Patch 1.15
- fixed server crash when player with more than 255 memorised spell slots login
- fixed combat informations update after level down
- fixed monk speed interaction with haste
- fixed buying items from store with full inventory issue (such item was destroyed from store if not infinite)
- AOO softcoded script reworked to run also when the AOO has no specfic target but instead is used on OBJECT_INVALID which translates to everyone near
- curse feature to ignore ability decrease immunity is no longer automatically enabled and is now dependant on module switch
- counterspell button will no longer be enabled when the radial menu is opened at location
- two new [Server Options] in nwnplayer.ini

  • Disallow New Characters: if 1, server will not accept new characters (purpose is to enable premade characters only with usage of base server vault)
  • Num Tiles Explored: will change how many tiles are revealed in front of character. Allowed values 1-10, default value is 8, recommended value is 4.

- fixed the bug in unarmed damage calculation where medium sized Monk11+/Shou Disciple5 had unarmed damage 2d20
- unarmed damage calculation externalized into 2da

  • classes.2da contains a new collumn "UnarmedDamageTable" which contains a name of the 2DA with unarmed damage calculation
  • the cls_unarm_* structure enables to set different values for tiny, large and huge creature size as well, see cls_unarm_monk and cls_unarm_shou for details

- the smite evil and smite good damage calculation made custom content compatible: it will automatically stack any custom class levels with paladin/bg if such class have smite evil/good in a feat list
- spellcasting softcoded and externalized, it is now possible to create custom spellcasters or modify vanilla ones, details will be explained in special readme
- softcoded learning spell scrolls into "70_s2_learnscroll" script
- new feature to pick up custom race/subrace - is it possible to receive custom playable race in character creation via the subrace field - player must input the string that matches custom race "Label" collumn in racialtypes.2da. (Note: only dynamic appearances are allowed, client crashes if you allow player to select race that doesn't have such appearance)
- added new custom functions for scripters:

  • NWNXPatch_IsInUse
  • NWNXPatch_GetPlayerLanguage
  • NWNXPatch_GetObjectById
  • NWNXPatch_PlayMovie
  • NWNXPatch_BootPCWithMessage
  • NWNXPatch_GetPCFileName
  • NWNXPatch_GetNumAreas
  • NWNXPatch_GetNthArea
  • NWNXPatch_GetNoRestFlag
  • NWNXPatch_SetNoRestFlag
  • NWNXPatch_GetSurfaceMaterial
  • NWNXPatch_GetPvPSettings
  • NWNXPatch_SetPvPSettings
  • NWNXPatch_DumpEffects
  • NWNXPatch_SetCurrentHitPoints
  • NWNXPatch_SetTag
  • NWNXPatch_SetTrapFlagged
  • NWNXPatch_SetTrapCreator
  • NWNXPatch_GetConversation
  • NWNXPatch_SetConversation
  • NWNXPatch_SetBaseItemType
  • NWNXPatch_SetCreatureSize
  • NWNXPatch_GetEquippmentWeight
  • NWNXPatch_SetGold
  • NWNXPatch_GetSoundsetId
  • NWNXPatch_SetSoundsetId
  • NWNXPatch_JumpToLimbo
  • NWNXPatch_GetMovementRateFactor
  • NWNXPatch_GetFlanked
  • NWNXPatch_GetIsFlatfooted
  • NWNXPatch_GetEncumbranceState
  • NWNXPatch_SetMovementRate
  • NWNXPatch_BroadcastAttackOfOpportunity
  • NWNXPatch_GetUsedDeflectArrows
  • NWNXPatch_SetUsedDeflectArrows
  • NWNXPatch_SetRacialType
  • NWNXPatch_SetXP
  • NWNXPatch_SetAge
  • NWNXPatch_SetGender
  • NWNXPatch_SetAbilityScore
  • NWNXPatch_GetUsedEpicDodge
  • NWNXPatch_SetUsedEpicDodge
  • NWNXPatch_GetEncounterFrom
  • NWNXPatch_GetBodyBag
  • NWNXPatch_SetBodyBag
  • NWNXPatch_GetFactionId
  • NWNXPatch_SetFactionId
  • NWNXPatch_GetKnowsSpell
  • NWNXPatch_AddKnownSpell
  • NWNXPatch_RemoveKnownSpell
  • NWNXPatch_GetKnownSpell
  • NWNXPatch_GetSpellSchoolSpecialization
  • NWNXPatch_SetSpellSchoolSpecialization
  • NWNXPatch_GetDomain
  • NWNXPatch_SetDomain
  • NWNXPatch_GetMemorisedSpellSlot
  • NWNXPatch_SetMemorisedSpellSlot
  • NWNXPatch_GetMaxSpellSlots

 
Notes:
 
1) I had quite a big pause and I might forgot to document a lot of things especially around the nwnx_patch plugin, also didn't tested thoroughly latest changes I had to do. I really have no time to re-test everything after making a significant change in the code. So expect things might not work as should, that way you won't be disappointed. Also the documentation to the latest nwncx_patch features (custom races selection) is not complete. If someone can help with that, contact me I will give you full access to the current documentation on my google drive.

 

2) The PlayMovie function works only for singleplayer. Its possible to make it work for multiplayer, but the problem here is that it needs to setup custom server-client communication, essentially what nwnx_connect is doing. Im not yet convinced to do that. Because if I should do it, then I see no reason to have nwnx_connect separated so I will most likely take over its functionality. Which might cause conflicts with the original plugin/developers... Anyway, with the server-client communication I would be able to also implement SetAnimLoop, SetTexturePack, SetTextureReplace functions and maybe more.


  • WhiteTiger aime ceci

#855
Gruftlord

Gruftlord
  • Members
  • 347 messages

is spells.2da supposed to be in root folder?

 

edit: love the new emote icon. But could the main/eye icon be changed as well? the neon green sticks out very much now.

 

As an ongoing endeavor, would you say you'd prefer if the colorized icons had a more unified style? currently the coloring is a bit mixed from different sources. While i think you chose the most fitting for vanilla, would you agree, that further unification would be good? Personally, i like the style of the skill icons the best. Very close to vanilla with just a tiny bit of extra color. I think the ones from Melliuc are an awesome base for adding this kind of style on top.



#856
Shadooow

Shadooow
  • Members
  • 4 465 messages

is spells.2da supposed to be in root folder?

 

edit: love the new emote icon. But could the main/eye icon be changed as well? the neon green sticks out very much now.

 

As an ongoing endeavor, would you say you'd prefer if the colorized icons had a more unified style? currently the coloring is a bit mixed from different sources. While i think you chose the most fitting for vanilla, would you agree, that further unification would be good? Personally, i like the style of the skill icons the best. Very close to vanilla with just a tiny bit of extra color. I think the ones from Melliuc are an awesome base for adding this kind of style on top.

spells_level.2da is just a showcase 2da. Since CPP will not be adding spellcasting to Assassin/Blackguard by default, there is no reason this 2da would be included inside bif resources also given its format. You can delete it if you dont plan to setup custom spellcasting or put it into override/hak if you do.

 

Hmm, its not green in my nwn version hmm, will check closely.

 

And yes, the colorized skill and class icons is exactly the style I think fits perfectly this project. Colorized spells are bit different and didn't fully met my criterias, however it was still far best choice especially when class and skills were already colored. Its unfortunate some spell icons are brand new and not a recolor of the vanilla ones, but thats what I get from The Amethyst Dragon as he wasn't interested in making special version for this project. In the end, the new icons are looking better anyway it just needs a bit time to get use to.



#857
Gruftlord

Gruftlord
  • Members
  • 347 messages

can you tell me the name of the eye icon, might help me to track it down faster.

 

edit: disregard what i said. the green eye is on my end. sorry for the confusion. I totally forgot which colorized icons i saw were from CPP; and how much i had added with a patch hak myself :rolleyes: I should probably consider dropping some of them, if i start commenting on how the ones from CPP are better :D



#858
WhiteTiger

WhiteTiger
  • Members
  • 479 messages

I use no more NWNX on my modules I lost some use of the CPP but I still am ansiouxly to update my cpp



#859
Shadooow

Shadooow
  • Members
  • 4 465 messages

I fixed few nwnxc_patch plugin issues that happened in multiplayer. Everyone who wants to use it in multiplayer should download new version here.

 

Note that for that functinality, your server should use nwnx_connect and client also needs nwncx_connect plugin and run nwn via NWNCX_Loader naturally...

 

Alternatively, you need to tell player to put some 2das into his override.


  • ShadowM aime ceci

#860
ShadowM

ShadowM
  • Members
  • 768 messages

Thanks Shadooow, I been meaning to grab it. You got a link to the nwncx_connect plugin?



#861
Shadooow

Shadooow
  • Members
  • 4 465 messages

Thanks Shadooow, I been meaning to grab it. You got a link to the nwncx_connect plugin?

It should be a part of the NWNCX basepackage if Im not mistaken. Anyway here is link for my modified version.



#862
R_TEAM

R_TEAM
  • Members
  • 19 messages

Hi,

 

have found an bug in beta13 .... (german version)

have updated b12 to b13 , play an new modul with an friend, i use an druid ...

after loading and all ready, i try to summon my animal .... game crash ....

o.k. - i think it can be an problem with the modul ... loading an modul i used before (i know it is working with druids ..) and the same ...

going back to beta12 - all is running fine ...

so the beta13 have an bug if an driud summon his animal ...

 

Regards



#863
Shadooow

Shadooow
  • Members
  • 4 465 messages

damn, I don't know how this happened, I tested summons multiple times... maybe after I made some code optimizations..

 

anyway, this should fix it, new versions of nwnx plugins or don't run nwn via NWNCX



#864
Shadooow

Shadooow
  • Members
  • 4 465 messages

Finally tried to setup assassin and blackguard spellcasting myself and during that I found another issue with nwncx_patch.

 

So here is fixed version of plugin + removed debug notifications about vanilla values for classes beyond id 10.

 

If anyone wants to reuse my spells_level.2da with assassin and BG spellcasting you can download it here. You still need to setup cls_spgn_* / cls_spkn_* and classes.2da for this though! If needed I can share mine, but I implemented assassin as a spontaneous caster (according to d20srd.org).



#865
R_TEAM

R_TEAM
  • Members
  • 19 messages

Thanks Shadooow for the quick fix :)

Works now ...

 

Regards



#866
Shadooow

Shadooow
  • Members
  • 4 465 messages

*Sigh*

 

There is another issue with nwncx_patch caused again by the fact that the hak preloading feature is in external plugin.

 

What happens then is that when player uses NWNCX with my plugin to log into server with custom content class/spells that doesn't use nwnx_connect, such player will see only basic vanilla content...

 

More and more issues because this stupid special plugin for each feature policy...

 

I found a workaround for this but it slows game loading noticeably, another option is to put nwnx_connect feature into my plugin which will cause incompatibilities...



#867
Gruftlord

Gruftlord
  • Members
  • 347 messages
Then the hard truth is that you need to drop the feature from CPP. Hacky workarounds aren't for a patch project
  • Zwerkules aime ceci

#868
Baaleos

Baaleos
  • Members
  • 1 322 messages

Oh 'eer

 

That 

  • NWNXPatch_PlayMovie

Does that actually play a bik movie without having to start or end a module?

Is that a client side function?



#869
Shadooow

Shadooow
  • Members
  • 4 465 messages

Oh 'eer

 

That 

  • NWNXPatch_PlayMovie

Does that actually play a bik movie without having to start or end a module?

Is that a client side function?

yes

 

but so far this is working in singleplayer only

 

I need to first maintain a server-client plugin communication to enable this in multiplayer



#870
Shadooow

Shadooow
  • Members
  • 4 465 messages

Then the hard truth is that you need to drop the feature from CPP. Hacky workarounds aren't for a patch project

Maybe.

 

But releasing it as a standaloe plugin is not a solution either.

 

I guess the best would be to remove nwnx plugins from a CPP release and maitain them serapately.


  • Zwerkules aime ceci

#871
Baaleos

Baaleos
  • Members
  • 1 322 messages

I need to first maintain a server-client plugin communication to enable this in multiplayer

 

 

Do you mean a persistent connection between server and client, like on another port?

 

 

I had a similar issue when I was building nwscript functionality that could trigger screenshots on the client. (So I could get screenshots triggered on boss deaths etc, which were auto-uploaded to our facebook page)

The client has to connect to the server, because the server cannot be guaranteed to have connectivity back through firewalls and routers etc to the client.

I tried to keep those connections alive in a collection (c# code) - but I found that the unused tcp connections invariably got auto disposed/closed when inactive.

I think I had some moderate success with sending a pulse/heartbeat (keepalive) message along the connection, but tbh - there is probably better protocols than what I was using.

 

Doesnt nwnx_connect utilize the nwn networking protocol itself to send custom messages?

Couldn't custom messages be sent via the server plugin, to the client, and the client could respond in kind to specific messages?



#872
Shadooow

Shadooow
  • Members
  • 4 465 messages

Doesnt nwnx_connect utilize the nwn networking protocol itself to send custom messages?

Couldn't custom messages be sent via the server plugin, to the client, and the client could respond in kind to specific messages?

yes indeed - another reason to takeover nwnxcx_connect and add it into my plugin...



#873
Gruftlord

Gruftlord
  • Members
  • 347 messages

Maybe.

But releasing it as a standaloe plugin is not a solution either.

I guess the best would be to remove nwnx plugins from a CPP release and maitain them serapately.

It would allow you more freedom in the development of new features for the plugins, the moment it is no longer that strongly related to fixing bugs. I say go for it. Your creative energy seems to be focussed on enabling new/missing features for nwn atm. You'd get a much clearer and new focus for that project detangling it from the main patch project imho. It would have a smaller userbase, but would attract one, that is more open to experimentations and forward thinking features, without risking to alienate the more conservative part of the CPP users.

#874
Shadooow

Shadooow
  • Members
  • 4 465 messages

It would allow you more freedom in the development of new features for the plugins, the moment it is no longer that strongly related to fixing bugs. I say go for it. Your creative energy seems to be focussed on enabling new/missing features for nwn atm. You'd get a much clearer and new focus for that project detangling it from the main patch project imho. It would have a smaller userbase, but would attract one, that is more open to experimentations and forward thinking features, without risking to alienate the more conservative part of the CPP users.

Thats true. It would definitely allowed me more freedom and it would be easier to maintain.

 

However. All this is problem because the nwnx plugin architecture. And making this separate plugin will only make the problem worse.

 

See, when NWNX was made, having separated plugins made sense. It allowed better controll for user and easier debugging/error finding.

 

This does not apply for NWNCX though, user doesn't need to manipulate with plugins, in fact, user doesn't want to mess with them at all, he just want to run NWNCX_Loader and enjoy new features provided by those who made the module.

 

And then there is the problem that plugin A needs same functionality as plugin B or in my case plugin A needs to run code when plugin B executes something.

 

Personally I think there needs to be only single nwnx plugin containing all the current features. Only thing that needs to be in separate plugin are experiments and unfinished features.

 

Anyway, this is not possible to do because other nwnx plugin creators doesn't share my concept.

 

Unfortunately the current problem I need to solve will not be any easier if I port the functionality I need it for into new separated plugin (and project).

 

My goal is to provide a fully functional plugin which will allow all these extra features along witth bugfixes without any side effects. This is not yet accomplished, but if it will be whats the problem that there are not only bugfixes but also new features in this plugin? Afterall all of that is optional - and you don't even need to run nwn via NWNCX if you don't want to.



#875
Shadooow

Shadooow
  • Members
  • 4 465 messages

yes indeed - another reason to takeover nwnxcx_connect and add it into my plugin...

So I did it.

 

I need more testing before I will release it but in new version my patch plugin will contain connect features.

 

Nwnx_patch plugin is sending user different message than original nwnx_connect, This is because I can't tell players to delete nwncx_connect. So nwncx_connect will still be running for them but will do nothing. Instead the functionality of nwncx_connect will be handled inside nwncx_patch.

 

Server admin needs to just remove nwnx_connect as that would send haks twice then and idk what could happen then (probably loong lag in character selection window).

 

 

With this functionality in my plugin, I established the server-client communication and the NWNXPatch_PlayMovie function is working in multiplayer as well.

 

I might be now able to provide much more, like SetTexture/SetTileAnimLoop etc.


  • Grani aime ceci