View previous topic :: View next topic |
Author |
Message |
DarkSet
Joined: 06 Jun 2016 Posts: 98
|
Posted: Thu Aug 24, 2017 22:06 Post subject: |
|
|
I update my module now and see one small improvement.
NWNXPatch_VerifyClientRunningNWNCX - returnes version of nwnxc_patch and NWNXPatch_IsInUse gives just 1/0.
It would be good to make NWNXPatch_IsInUse return server version of nwnx in the same manner as NWNXPatch_VerifyClientRunningNWNCX does. To make it easy to compare client and server versions, instead of hardcoding currently used server one. |
|
Back to top |
|
|
Valbor
Joined: 26 Dec 2016 Posts: 145
|
Posted: Thu Aug 24, 2017 23:29 Post subject: |
|
|
SetLocalInt(oPC, MODULE_SWITCH_UNLIMITED_SUMMONING, 3);
not worked in Pale master's feats Summon Undead and Summon Greater Undead. |
|
Back to top |
|
|
Valgav
Joined: 28 Aug 2010 Posts: 53
|
Posted: Fri Aug 25, 2017 1:17 Post subject: |
|
|
One more question. What should I do with 2da and 2dx folders? Are those optional, should I include them in hak? |
|
Back to top |
|
|
Antegate
Joined: 20 Apr 2012 Posts: 100
|
Posted: Fri Aug 25, 2017 11:48 Post subject: |
|
|
These are examples for adding new features - races, fits, etc.
Read the NWN(C)X_Patch Documentation |
|
Back to top |
|
|
ShaDoOoW
Joined: 20 Aug 2005 Posts: 584
|
Posted: Fri Aug 25, 2017 12:29 Post subject: |
|
|
DarkSet wrote: | I update my module now and see one small improvement.
NWNXPatch_VerifyClientRunningNWNCX - returnes version of nwnxc_patch and NWNXPatch_IsInUse gives just 1/0.
It would be good to make NWNXPatch_IsInUse return server version of nwnx in the same manner as NWNXPatch_VerifyClientRunningNWNCX does. To make it easy to compare client and server versions, instead of hardcoding currently used server one. |
will do
Valbor wrote: | SetLocalInt(oPC, MODULE_SWITCH_UNLIMITED_SUMMONING, 3);
not worked in Pale master's feats Summon Undead and Summon Greater Undead. |
Seems that many HotU summons have improper OnSpawn scripts. I corrected this, will be fixed next release. I can send you fixed blueprints if you don't want to wait, send me PM.
Valgav wrote: | One more question. What should I do with 2da and 2dx folders? Are those optional, should I include them in hak? |
Some features rely on new columns in 2da.
Custom spellcasters needs column CastType in classes.2da
Custom spellcasters also needs new custom 2da spells_level.2da that controlls which spells this class has access to. Package includes this 2da with example values.
Custom wizard-like spellcasters needs column SpellLearnTable in classes.2da and new 2da that controlls how much spells their learn at each level, you can see the 2da structure in cls_splr_wiz.2da includes as an example for vanilla wizard class.
Feature to allow use items in polymorph needs new column UseItems in polymorph.2da
Feature to create/modify favored enemy feats require new column FavoredEnemyFeat in racialtypes.2da
Feature to create/modify weapon feats require new custom 2da called weaponfeats.2da, package includes this 2da with vanilla values.
2DX is an auto 2da merger from leo_x. This allows to automatically add new columns into your 2das easily. The nwnx_patch package contains only schemes not the program, I recommend to download community patch 1.72 where the auto 2da merger is inside builders resources already setup with readme what to do.
Or ignore it if you merge 2da manually _________________ Community Patch / NWNX Patch / NWNX Files / NWNX Connect |
|
Back to top |
|
|
Valbor
Joined: 26 Dec 2016 Posts: 145
|
Posted: Fri Aug 25, 2017 14:28 Post subject: |
|
|
ShaDoOoW wrote: | Seems that many HotU summons have improper OnSpawn scripts. I corrected this, will be fixed next release. I can send you fixed blueprints if you don't want to wait, send me PM. |
I'll wait for next release, thanks. |
|
Back to top |
|
|
ShaDoOoW
Joined: 20 Aug 2005 Posts: 584
|
Posted: Fri Aug 25, 2017 23:12 Post subject: |
|
|
ShaDoOoW wrote: | Test version 1.31
DOWNLOAD
I think I managed to fix two bugs I had in my TODO list from start, but I am hesitant to call it 100% fixed yet since this needs a lot of playtesting.
I also updated the list of disabling switches in the documentation. You might notice that some switches disappeared, I removed those strictly client-side from the list as player is not expected to ever disable them for any reason.
New fixes:
- fixed client crash with hellball visual effect
- fixed bug with delevellng RDD that didn't removed bonus abilities properly |
Hmm. I made some stability tests (going to do one last when I will go sleep - will keep nwn running with spawning NPC and hellball effect every 3seconds) and so far it seems stable.
I said it's test because while it didn't crash for me with hellball, when I was testing one possible bug in savegame one tester sent me, my client crashed. Tried to reproduce the crash but it didn't happen again. Didn't crash last 2 days either even when I was trying to reproduce the crash reports you sent me, so I guess it was some vanilla crash and not something caused by my plugin.
But so far it seems crash-less, finally. _________________ Community Patch / NWNX Patch / NWNX Files / NWNX Connect |
|
Back to top |
|
|
ShaDoOoW
Joined: 20 Aug 2005 Posts: 584
|
Posted: Sat Aug 26, 2017 1:14 Post subject: |
|
|
I was thinking about one more extra feature to supplement CPP and the fact that the whole CPP+nwn(c)x_patch acts as a platform for builders.
Default module events.
Basically a direct copy of the module events which will run specified script, say 70_mod_def_equ / 70_mod_def_hb / 70_mod_def_enter etc.
Point would be to allow custom content builders to insert code into these events into any singleplayer module player might play. This is huge issue if you are trying to build something like PRC (which solved this issue with automatic event merger installer) where you need to insert code into module events to make your custom classes/feats working but you don't know which module player play and what scripts are there.
Would also enable me to make certain CPP features like new polymorph engine automatically functional without need to merge scripts as long builder uses nwnx_patch.
Have to think it thought, as I also want majority of CPP content to work without nwnx.. _________________ Community Patch / NWNX Patch / NWNX Files / NWNX Connect |
|
Back to top |
|
|
highv priest
Joined: 01 Mar 2013 Posts: 111
|
Posted: Sat Aug 26, 2017 22:59 Post subject: |
|
|
If I may request something. I'd like to see a function to call AoOs. Something like CallAoo(object oCreature) and the function has nearby enemies attempt the AoO, if able to, that combat round.
The function is useful to for instance make opportunities occur when using a special power from a magic staff or when healkits apply. |
|
Back to top |
|
|
ShaDoOoW
Joined: 20 Aug 2005 Posts: 584
|
Posted: Sat Aug 26, 2017 23:38 Post subject: |
|
|
highv priest wrote: | If I may request something. I'd like to see a function to call AoOs. Something like CallAoo(object oCreature) and the function has nearby enemies attempt the AoO, if able to, that combat round.
The function is useful to for instance make opportunities occur when using a special power from a magic staff or when healkits apply. |
//Cause oAttacker to get Attack of Opportunity on oCreature
//note: this is not guarantee the AoO will happen, it still won't go over AOO limit
//and other restrictions coded inside of the softcoded AoO script 70_s2_aoo
//bAllowRanged = TRUE enables aoo with ranged weapon
void NWNXPatch_BroadcastAttackOfOpportunity(object oCreature, object oAttacker, int bAllowRanged=FALSE);
already there, make sure you have latest 70_inc_nwnx.nss - if you installed 1.72 just delete 70_inc_nwnx you have in your module, if you don't use CPP, then replace possibly outdated 70_inc_nwnx from the one in the plugin package in NWScript folder _________________ Community Patch / NWNX Patch / NWNX Files / NWNX Connect |
|
Back to top |
|
|
Valbor
Joined: 26 Dec 2016 Posts: 145
|
Posted: Mon Aug 28, 2017 16:54 Post subject: |
|
|
You once said that can do 2x or more times per round for Epic Dodge and Deflect Arrow. And also a question about the Defensive Roll, it is possible to make a softcoded? i want to change it. And in Defensive Roll have bug in it when damage is received more than 127, the DC is reset, you can fix it? |
|
Back to top |
|
|
ShaDoOoW
Joined: 20 Aug 2005 Posts: 584
|
Posted: Mon Aug 28, 2017 17:07 Post subject: |
|
|
Valbor wrote: | You once said that can do 2x or more times per round for Epic Dodge and Deflect Arrow. And also a question about the Defensive Roll, it is possible to make a softcoded? i want to change it. And in Defensive Roll have bug in it when damage is received more than 127, the DC is reset, you can fix it? | I already checked the DC issue in concentration check and this is similar. The DC is correct and the result is also correct, the problem is that the feedback message you get will wrap DC around 127 so if its higher it just start from 0 again).
Fixing this would cost a lot of work for basically small visual glitch - decided its not worth it.
Softcoding concentration check/defensive roll might be better idea.
Either way developing new features is no stopped untill CPP 1.72 will be released. _________________ Community Patch / NWNX Patch / NWNX Files / NWNX Connect |
|
Back to top |
|
|
Antegate
Joined: 20 Apr 2012 Posts: 100
|
Posted: Mon Aug 28, 2017 19:26 Post subject: |
|
|
Quote: | Either way developing new features is no stopped untill CPP 1.72 will be released. |
After the release, will you finish the development and no longer develop the plugin? |
|
Back to top |
|
|
ShaDoOoW
Joined: 20 Aug 2005 Posts: 584
|
Posted: Mon Aug 28, 2017 21:37 Post subject: |
|
|
Antegate wrote: | Quote: | Either way developing new features is no stopped untill CPP 1.72 will be released. |
After the release, will you finish the development and no longer develop the plugin? | I will continue work on plugin. _________________ Community Patch / NWNX Patch / NWNX Files / NWNX Connect |
|
Back to top |
|
|
DarkSet
Joined: 06 Jun 2016 Posts: 98
|
Posted: Wed Aug 30, 2017 0:47 Post subject: |
|
|
You forgot to give gold to the thief in 70_s2_pickpocket
Code: | //gold stealing
if(nGold > 1 && (!numPickpocketableItems || d2() == 1))//50% chance to steal gold
{
int nGoldStolen = GetSkillRank(SKILL_PICK_POCKET,oThief)+d100();//ammount of gold stolen = roll+rank
if(nGoldStolen > nGold) nGoldStolen = nGold;
//steals gold without feedback for victim
NWNXPatch_SetGold(oVictim,nGold-nGoldStolen);
if(GetIsPC(oThief))//feedback for thief
{
SetCustomToken(0,IntToString(nGoldStolen));
SetCustomToken(1,GetName(oVictim));
SendMessageToPCByStrRef(oThief,10421);//You stole <CUSTOM0> GP from <CUSTOM1>.
}
if(bDetected && GetIsPC(oVictim))//feedback for victim
{
SetCustomToken(0,GetName(oThief));
SendMessageToPCByStrRef(oVictim,10425);//<CUSTOM0> stole some money from you!
}
return;
} |
Actually the same in item stealing block:
Code: | //item stealing
if(numPickpocketableItems > 0)
{
int nTh = Random(numPickpocketableItems)+1;
oItem = GetFirstItemInInventory(oVictim);
while(GetIsObjectValid(oItem))
{
if(GetPickpocketableFlag(oItem) && !GetItemCursedFlag(oItem) && (!GetHasInventory(oItem) || GetFirstItemInInventory(oItem) == OBJECT_INVALID))
{
if(--nTh == 0)
{
SetStolenFlag(oItem,TRUE);
object oStolen = CopyItem(oItem,OBJECT_SELF,TRUE);
//steals item without feedback for victim
NWNXPatch_TakeItemFromCreature(oVictim,oItem);
if(GetIsPC(oThief))//feedback for thief
{
SetCustomToken(0,GetName(oStolen));
SetCustomToken(1,GetName(oVictim));
SendMessageToPCByStrRef(oThief,10422);//You stole a <CUSTOM1> from <CUSTOM0>.
}
if(bDetected && GetIsPC(oVictim))//feedback for victim
{
SetCustomToken(0,GetName(oThief));
SetCustomToken(1,GetName(oStolen));
SendMessageToPCByStrRef(oVictim,10425);//<CUSTOM0> stole a <CUSTOM1> from you!
}
break;
}
}
oItem = GetNextItemInInventory(oVictim);
} |
Or i don't understand where it is? |
|
Back to top |
|
|
|