View previous topic :: View next topic |
Author |
Message |
maddogfargo
Joined: 03 Nov 2009 Posts: 49
|
Posted: Wed Jan 11, 2012 18:46 Post subject: |
|
|
Terra_777 wrote: | Tinked about with it. I wasnt able to add a damage variable because I didnt find a suitable place to hook it in.
I did however make a funny discovery which allows people to change the levelcap and level past 40. Todo that you first set a localint "levelup" to the level the PC can levelup to. You also need to use the SetServerCap otherwise you won't be able to login with PCs higher then the cap.
www.megaupload.com/?d=NMW77KQU |
So would this be a viable replacement for HGLL, or is it too early to tell? _________________ * illegible scribble * |
|
Back to top |
|
|
Terra_777
Joined: 27 Jun 2008 Posts: 216 Location: Sweden
|
Posted: Thu Jan 12, 2012 0:42 Post subject: |
|
|
When I tested it I leveled up to 100.
Baseclasses gets screwy after 40 and prcs gets screwy after 30. But if you patch your feats 2da files to support higher levels it should be fine. Its abit wonky though since XP calculations stop working when you hit 40 so you need to set the levelup int when time is right.
As soon as you set the levelup int the "you can now levelup" thing pops and you can levelup as you do any level. IE: If you're 40 and you set the int to 41 you can level to 41. _________________ I dun have any signature, I'm happy anyway. |
|
Back to top |
|
|
Lokey
Joined: 02 Jan 2005 Posts: 158
|
Posted: Sun Jan 15, 2012 1:49 Post subject: |
|
|
Yay for interesting finds.
I thought there were many cases of hard-coded list size all over the place, not sure how feasible would be nor how many problems are going to crop up. _________________ Neversummer PW NWNx powered mayhem |
|
Back to top |
|
|
leo_x
Joined: 25 Aug 2010 Posts: 75
|
Posted: Sun Jan 15, 2012 10:13 Post subject: |
|
|
I worked on a similar project over on the linux side.
I found a lot of client side issues using the normal leveling gui that I couldnt resolve, there is a lot of stuff hardcoded for a 40 level cap like Lokey mentions above. I'd be really interested to hear if people were able to get it working tho, maybe with NWNCX?
In the end I gave up on using the normal leveling gui and used the HGLL conversation expanded to cover cross-classing and with the backend replaced so that the levels are identical to those taken normally. It's been in production and people have been leveling 1-60 real with only a couple caveats for about a year now. So PCs can definitely level past 40th without faking the levels like HGLL.
Here's the source for anyone interested: https://github.com/jd28/nwnx/tree/master/plugins/levels. (linux ony and it needs cleaning up to use with nwnx2.so built from the trunk, i thought it might be of value even to windows folks tho).
--
the awakening (pw action) |
|
Back to top |
|
|
maddogfargo
Joined: 03 Nov 2009 Posts: 49
|
Posted: Mon Jan 16, 2012 0:24 Post subject: |
|
|
Awesome! Thanks for sharing Leo. _________________ * illegible scribble * |
|
Back to top |
|
|
maddogfargo
Joined: 03 Nov 2009 Posts: 49
|
Posted: Mon Jan 16, 2012 0:31 Post subject: |
|
|
Terra_777 wrote: | ...Its abit wonky though since XP calculations stop working when you hit 40 so you need to set the levelup int when time is right. |
XP continues to accumulate just fine for me beyond 40 without any tweaking. In NWN+SoU+HotU XP kept climbing on level 40's. I've noticed it since patch v1.68. And this is in the regular NWN campaign modules, not special modules.
As for checking when the PC can levelup, I usually use a custom XP script and it is easy enough to do a check each time you give them XP. But if this tweak works with the engine and an edited 2da, that would work nicely. _________________ * illegible scribble * |
|
Back to top |
|
|
Idelish / Lyo
Joined: 02 Sep 2011 Posts: 10
|
Posted: Sun Jan 22, 2012 22:34 Post subject: |
|
|
The latest version are in megaupload and megaupload no longer "exist"... Can you reupload It? |
|
Back to top |
|
|
Terra_777
Joined: 27 Jun 2008 Posts: 216 Location: Sweden
|
|
Back to top |
|
|
Kato
Joined: 05 Mar 2010 Posts: 47
|
Posted: Tue Jan 24, 2012 22:18 Post subject: |
|
|
Awesome plugin!
Would it be possible to expose some of the hooked functions to nwscript? More precisely:
- GetAttackModifierVersus()
- GetRangedAttackBonus()
- GetMeleeAttackBonus()
These functionalities do not exist in nwscript(or in any other nwnx plugin for Windows), thus we cannot retrieve the current AB of a given creature, except with a huge mess of feat checks. Retrieving the AB is a must when overriding/emulating special attacks(like knockdown, smite etc...), among some(many) other things.
Thanks a lot for this great plugin!!
Kato |
|
Back to top |
|
|
Daijin
Joined: 09 Jul 2007 Posts: 23 Location: Dunjon/Warr Acres, Ok
|
Posted: Wed Jan 25, 2012 3:30 Post subject: |
|
|
As I understand it: Rogues are the only class that can disarm DC 35+.
Is it possible to make a function to have it recognize a custom class to be able to use the Rogue Disarming ability beyond DC 35?
Just a thought _________________ Daijin Dreamweaver, Leader of the Dream Warriors for 32 Earth years.
Faith, Loyalty, Honor, Truth and Friendship always.
I live to serve, O' Lord Jesus, Thy Will Be Done! |
|
Back to top |
|
|
Terra_777
Joined: 27 Jun 2008 Posts: 216 Location: Sweden
|
Posted: Wed Jan 25, 2012 12:39 Post subject: |
|
|
Event 9 and 10 handles disarm/knockdown etc. _________________ I dun have any signature, I'm happy anyway. |
|
Back to top |
|
|
Kato
Joined: 05 Mar 2010 Posts: 47
|
Posted: Wed Jan 25, 2012 19:53 Post subject: |
|
|
Terra_777 wrote: | Event 9 and 10 handles disarm/knockdown etc. |
Yes, thank you Tera_777. Sorry, maybe I was unclear, so here is an example, bypassing Smite Good/Evil.
if(nEvent == 9)
{
if(nEventData == FEAT_SMITE_EVIL || nEventData == FEAT_SMITE_GOOD) // If Smite is used
{
ByPass(nEventData);
string sMsg = "Smite *failed*"; // prepare the final msg
DecrementRemainingFeatUses(OBJECT_SELF, nEventData); // burn one ability use
// Determine if we should affect the target
int nAlign = GetAlignmentGoodEvil(oTarget);
if(nEventData == FEAT_SMITE_EVIL && nAlign == ALIGNMENT_EVIL ||
nEventData == FEAT_SMITE_GOOD && nAlign == ALIGNMENT_GOOD)
{
int nCha = GetAbilityModifier(ABILITY_CHARISMA);
// retrieve attacker's AB, add it to charisma modifier and simulate an attack
int nAB = GetMeleeAttackBonus(OBJECT_SELF); // ** the needed function to retrieve AB, does not exist yet **
int nAC = GetAC(GetEventTarget());
if(nCha + nAB + d20() >= nAC)
{
sMsg = "Smite *hit*";
// apply damage and anything else here
}
}
object oPC = OBJECT_SELF;
AssignCommand(GetModule(), DelayCommand(0.1, FloatingTextStringOnCreature(sMsg, oPC)));
}
}
Thus, if we could retrieve the AB in a similar fashion it would be extremely useful in many situations.
Kato |
|
Back to top |
|
|
werehound
Joined: 17 Aug 2010 Posts: 41
|
Posted: Thu Jan 26, 2012 0:52 Post subject: |
|
|
I think I may have missed something.
Flurry is broken with nwnx_cool. No weapon can be flurried with (not even kamas, even with "ubab" set to 1 on them), unless you start flurry when unarmed and then equip a weapon. However, that allows you to flurry with any weapon.
Any chance of fixing this? |
|
Back to top |
|
|
Terra_777
Joined: 27 Jun 2008 Posts: 216 Location: Sweden
|
Posted: Thu Jan 26, 2012 13:57 Post subject: |
|
|
Yeah, you need to write your own flurry of blows routine as I rewrote some of it to make it sticky.
on-toggle-mode in nwnx_cool.nss
Code: | else if( nEvent == 7 ){
int nMode = GetEventData( );
int nStatus = !GetActionMode( OBJECT_SELF, nMode );
if( nMode == ACTION_MODE_FLURRY_OF_BLOWS ){
if( nStatus && !AllowedToUseFlurryOfBlows( oPC ) ){
SendMessageToPC( oPC, "You're not allowed to use flurry of blows!" );
ByPass( );
}
}
} |
Code: | ]int AllowedToUseFlurryOfBlows( object oPC ){
object oRight = GetItemInSlot( INVENTORY_SLOT_RIGHTHAND, oPC );
object oLeft = GetItemInSlot( INVENTORY_SLOT_LEFTHAND, oPC );
if( GetIsObjectValid( oRight ) && GetLocalInt( oRight, "ubab" ) <= 0 )
return FALSE;
if( GetIsObjectValid( oLeft ) && GetLocalInt( oLeft, "ubab" ) <= 0 )
return FALSE;
return TRUE;
} |
To prevent the swapping weapons with flurry you'd need to SetActionMode( oPC, 6, FALSE ); on-equip.
And yes Kato, I see what you mean now. I'll see if I can fix something for that.
Edit:
nwnx_cool 0.8
Added:
int GetArmorClassVs( object oPC, object oTarget );
int GetAttackBonusVs( object oPC, object oTarget );
Download: http://www.mediafire.com/?tyys9hl0b2ayfl1 _________________ I dun have any signature, I'm happy anyway. |
|
Back to top |
|
|
Kato
Joined: 05 Mar 2010 Posts: 47
|
Posted: Thu Jan 26, 2012 21:11 Post subject: |
|
|
Great Update!!! Thank you so much for the new functions, Tera_777.
Kato |
|
Back to top |
|
|
|