Player Resource Consortium

 

Author Topic: disable party xp adjustment  (Read 28787 times)

0 Members and 2 Guests are viewing this topic.

October 15, 2010, 09:41:51 PM
Reply #30
  • Associate
  • ***
  • Posts: 145
  • Karma: +1/-0
    • View Profile

Can someone walk me through how to do this in the OC, SoU, and HotU?

"You still need to move XP slider to 0 in module properties in toolset or you'll get double xp rewards."


EDIT:  Nevermind.  It works great without modifying the mod properties (3.4 beta).  I don't get double points and the summons don't drop XP gained.
« Last Edit: October 15, 2010, 10:02:31 PM by Necro »


October 15, 2010, 11:03:08 PM
Reply #31
  • Adept
  • *
  • Posts: 22
  • Karma: +0/-0
    • View Profile

Yeah, 10% is roughly equivalent for what I've tested it for...one creature, for example, gave 160 instead of 151.  Another gave 10 instead of 8.  I suppose I could lower it to 9% (or maybe it understands decimals?), but I don't really see it being worth it.

Now for all this effort I didn't even realize the note in the prc_inc_switch.nss about it not working in multiplayer.  Now my nwn folder is crammed with nwnx2, the dedicated server from bioware and the prc server pack.  And I don't know how to work any of it. ><

Anybody give me any direction?  Maybe there's something a bit more powerful than an override?

Would manually changing the module (each chapter, in this case) to point to prc_ondeath script work?
« Last Edit: October 16, 2010, 12:04:27 AM by Xand »


October 16, 2010, 12:23:06 PM
Reply #32
  • Associate
  • ***
  • Posts: 112
  • Karma: +2/-0
    • View Profile

You can change the switches in the manual. Look in the preferences for "Variables". Add the lines of the personal_switches.2da file in here.


October 16, 2010, 02:57:04 PM
Reply #33
  • Adept
  • *
  • Posts: 22
  • Karma: +0/-0
    • View Profile

Quote from: barna10

You can change the switches in the manual. Look in the preferences for "Variables". Add the lines of the personal_switches.2da file in here.


I'm assuming you mean module...I don't see variables in a preferences.  I see variables in the script editor, but that's about it.  Is this the standard way of doing this?  I mean, I assume somewhere along the line somebody's wanted to have their switches effect multiplayer games...this is neverwinter nights, after all.  

I saw in a forum post something about a top hak...is this referencing the top hak in the list found in module properties -> custom content?  prc_2das.hak is the top hak listed there.  If I import personal_switches.2da to prc_2das.hak using nwhak, will that work?  If it would it'd be a lot simpler than editing each module.
« Last Edit: October 16, 2010, 02:59:05 PM by Xand »


October 16, 2010, 03:07:47 PM
Reply #34

If the personal_switches.2da does not work for servers, and I don't see why it should not, but that it what has been said here. You can create a switch set script. There is a PRC function for setting the switches via a script. I can't recall it right now, but you can write a script and use it to set the scripts.

Then you add the script to each model and add something like this to the on module load script.

Code: [Select]
ExecuteScript("MyPRCSwitchs");

Replace MyPRCSwitches with what you called your script. Rebuild the module and your good to go.
« Last Edit: October 16, 2010, 03:13:35 PM by KenquinnTheInsaneOne »


October 16, 2010, 04:31:01 PM
Reply #35
  • Adept
  • *
  • Posts: 22
  • Karma: +0/-0
    • View Profile

Quote from: KenquinnTheInsaneOne

If the personal_switches.2da does not work for servers, and I don't see why it should not, but that it what has been said here.


Quote
prc_inc_switch.nss:
 Creating your personal switch settings
 For singleplayer, you can create a 2da file and place it in the overide
 Then via the PRC Options switch you can read that 2da and it will
 use it to set switches for you.
 This will not work in multiplayer.


Honestly, it does work a little bit...I've been able to get it to work for me or her...but never at the same time and never reliably.  It's like sometimes it decides to load and sometimes it doesn't.  I'm going to try loading it into the prc_2das.hak to see what happens.  I just have to wait until she's back home since I can't test it without a 2nd player.  

I don't know how to do any of the things you just said...write a script, add to a model, or call this unknown prc function that loads the script I don't know how to write. :/  I guess I'll try to look up tutorials on writing scripts if loading it into the top hak doesn't work.  It just seems like there's gotta be a better way.


October 16, 2010, 04:35:24 PM
Reply #36

You can try asking in the IRC channel for help. You will may get a quicker reply than posting here.

Points to the Chat Room button if you don't know where it is.
« Last Edit: October 16, 2010, 04:35:39 PM by KenquinnTheInsaneOne »


October 16, 2010, 08:51:08 PM
Reply #37
  • Adept
  • *
  • Posts: 22
  • Karma: +0/-0
    • View Profile

I spoke too soon...it's still not working.  I inserted all the switches into module property variables for each campaign .nwm file.  If I host I get xp and she doesn't.  If I run nwserver it appears whoever joins first gets the xp.  

Any more ideas?

Could it possibly be a problem with how prc_xp_use_setxp works?  Maybe change the module's OnPlayerDeath value to prc_ondeath?  Are secondary pc's treated as henchmen and I'm zeroing out their xp by using the PRC_XP_HENCHMAN_PARTY_COUNT_x100 0 switch?  That wouldn't make sense because experience is still getting halved, but I dunno...I'm grasping at straws here.
« Last Edit: October 17, 2010, 01:22:31 AM by Xand »


October 17, 2010, 05:12:02 PM
Reply #38
  • Associate
  • ***
  • Posts: 145
  • Karma: +1/-0
    • View Profile

O.K., I have run into one issue with the XP.  Bosses don't give any experience now.

I can summon all I want and regulars give me 29XP and elites give me 58XP in the prison district.  Bosses give 0.  Is there something I can update that would have bosses provide XP while not being penalized for multi-summons?


I'm using the custom 2da below:
2DA V2.0

     SwitchName                              SwitchType SwitchValue
1    PRC_XP_USE_PNP_XP                       int        1          
2    PRC_XP_PC_PARTY_COUNT_x100              int        100        
3    PRC_XP_HENCHMAN_PARTY_COUNT_x100        int        1          
4    PRC_XP_DOMINATED_PARTY_COUNT_x100       int        1          
5    PRC_XP_ANIMALCOMPANION_PARTY_COUNT_x100 int        1          
6    PRC_XP_FAMILIAR_PARTY_COUNT_x100        int        1          
7    PRC_XP_SUMMONED_PARTY_COUNT_x100        int        1          
8    PRC_XP_MAX_PHYSICAL_DISTANCE            int        150        
9    PRC_MULTISUMMON                         int        1          
10   PRC_XP_SLIDER_x100                      int        10        
11   PRC_XP_USE_SETXP                        int        1          
12   PRC_XP_GIVE_XP_TO_NPCS                  int        1
« Last Edit: October 17, 2010, 05:13:56 PM by Necro »


October 17, 2010, 05:50:48 PM
Reply #39
  • Adept
  • *
  • Posts: 22
  • Karma: +0/-0
    • View Profile

They're probably too high level...PRC_XP_MAX_LEVEL_DIFF looks like it's only in place for level of killer and level of party member (to avoid 20's carrying 5's), so I don't think that will work (though I think I saw that advice in a different thread here).  

The XP table itself is in prc_2das.hak as dmgxp.2da...I'm not sure if rows or columns are PC's and which one is creatures, but if you have a DMG it probably matches that.  You can fill in the blanks there, though it'd be a crapton easier to do if you had more excel-like functionality than tlkedit (so you could drag entire rows/columns).  That's a lot of data to edit.


October 17, 2010, 06:57:00 PM
Reply #40

It could be that the boss uses a custom ondeath script, which does not include the PRC XP function. The normal spawns would work alright, since the stock XP script would have the right function.

The "PRC_XP_MAX_LEVEL_DIFF" only affects if XP is awarded between party members. Unless your summons are drastically higher level than you, it is not the cause.

PS: If your testing with the NWN 1 campaign you did remember to import the OC fix along with the PRC?
« Last Edit: October 17, 2010, 07:00:56 PM by KenquinnTheInsaneOne »


October 17, 2010, 07:18:35 PM
Reply #41
  • Adept
  • *
  • Posts: 22
  • Karma: +0/-0
    • View Profile

If you still have a save right before the boss up your level until he no longer has a CR of impossible.  If he gives you xp, then you'll know it's because of the tables.  If he doesn't, then you'll know it's probably the script as Kenquinn said.  Probably a lot easier than looking his script up manually.


October 17, 2010, 09:48:55 PM
Reply #42
  • Associate
  • ***
  • Posts: 145
  • Karma: +1/-0
    • View Profile

Thanks for the suggestions!

I did install the OC fixes after installing 3.4 Beta.


I don't think I will be trying to figure out how to find and edit tables or scripts (though I will happily use the work of others).  I think I'll up the XP awards from 10% to 15% (line 10 in my 2da) to try to make-up the lost experience.


October 18, 2010, 01:58:42 AM
Reply #43
  • Adept
  • *
  • Posts: 22
  • Karma: +0/-0
    • View Profile

Alright, more on the multiplayer front.  I was told it may be the count_x100 values that were 0'd out so I tried changing those all to 100.  Still only one person gets xp.  

I tried it with and without setxp.  

I noticed it's actually the party leader that gets xp each time while others get jack, so I tried unflagging 'only one party.'  Without being grouped everyone gets xp for their kills normally.  As soon as a party is formed, though, only leader gets xp again.  If leadership is transferred, XP reception is transferred as well.

prc_xp_max_level_diff isn't set, however I made sure that everyone involved (including the skeletal summons) were all level 2.  Besides, regardless of who gets the kill leader is always the only one to collect the xp.  

I suppose I could remedy this by just awarding levels each time party leader levels, but that wouldn't make it any less broken. :(

I pulled this from prc_ondeath, but I can't make sense of it.  It may be relevant so I'm including it here:

Code: [Select]
   if(GetPRCSwitch(PRC_XP_USE_PNP_XP))
    {
        if(GetObjectType(oKiller) == OBJECT_TYPE_TRIGGER)
            oKiller = GetTrapCreator(oKiller);
        if(oKiller != oDead
            && GetIsObjectValid(oKiller)
            && !GetIsFriend(oKiller, oDead)
            && (GetIsObjectValid(GetFirstFactionMember(oKiller, TRUE))
                || GetPRCSwitch(PRC_XP_GIVE_XP_TO_NON_PC_FACTIONS)))
        {
            GiveXPRewardToParty(oKiller, oDead);


My ondeath script isn't set to prc_ondeath, but everytime I've mentioned it no one has seemed to think that was relevant.  So I'm guessing it's not.  I, quite frankly, don't understand the implications of changing those events.
« Last Edit: October 18, 2010, 03:17:35 AM by Xand »


October 18, 2010, 03:37:53 AM
Reply #44
  • Associate
  • ***
  • Posts: 112
  • Karma: +2/-0
    • View Profile

On the Xp Slider, I suggest setting it at 100. Why? Because unlike the bioware XP system, sooner or later the PCs will stop getting XP. If the CR of the monster is too low (compared to the level of the PC) you aren't awarded any XP. (this is not a bug, this is the way PnP XP works.)

Case in point, I'm playing Beyond the Dungeon of Graves. I haven't finished the wilderness area and I've stopped receiving XP. My PC is 12th level and probably will be for quite awhile since most of the monsters in the first 5 levels are the same as in the wilderness. Granted, he got to level 12 quikcer than ever before, but he's not gonna be any higher level in the end.