Aller au contenu

Photo

Tome of Battle issue


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

#1
MasterChanger

MasterChanger
  • Members
  • 686 messages
I posted about this issue on Drammel's NWVault page for the Tome of Battle: The Book of the Nine Swords. However, I figured that's not getting checked all that much anymore, so I figured I'd post something here to see if anyone has any ideas.

First of all, I want to say job very well-done on this project, as it's an incredibly far-reaching piece of work in overhauling the way that combat works in NWN2.

Now, on to my issue: while playing through MotB with a Sword Sage, the "Sword" GUI (martial_menu_ss.xml) is no longer displaying when I control my main PC, and I'd like it back. If I load a save from a little while back, or start a new campaign entirely, it does display. However, there seems to be nothing I can do to bring up that GUI if it's not there.

I can still use my Sword Sage training feat to display new maneuvers to learn; this seems to be a little bugged now too, though, because I can keep selecting new maneuvers to learn seemingly with no end.

Anyone have any ideas?

Modifié par MasterChanger, 02 novembre 2010 - 11:07 .


#2
MasterChanger

MasterChanger
  • Members
  • 686 messages
Okay, I resolved this. Basically, a variable* that stores "TRUE" if  the GUI is displayed was set as 1 even when the GUI was not showing. I used a wand and a tag-based script to reset this variable and manually launch the GUI. Now it does display when I switch back to my PC from one of my companions.

If anyone


* For Sword Sages, this is called "DesertWind".

#3
Femanon.tg

Femanon.tg
  • Members
  • 22 messages
Bumping this, because I'm having the same latter problem, only this is not JUST allowing to select the same manuvers again, I cant learn manuvers at all, after leveling up and training, my ready manuers menu simply has nothing, the quick strike only has charge.

#4
MasterChanger

MasterChanger
  • Members
  • 686 messages
The first step in debugging should probably be determining whether your character has learned the manuevers but they're not showing up in the Quickstrike menu, or whether they haven't been learned at all. The manuevers are stored as items in the Tome of Battle, which in addition to being where the system stores variables is also a container.

Try opening the ToB and see whether it has any manuevers (they have the icon of a page) stored in it.

The training system for ToB involves one GUI screen calling the next a few times, so it may take a bit of work, but I think we'll be able to figure out your problem.

#5
Femanon.tg

Femanon.tg
  • Members
  • 22 messages
there are no items in the book.

#6
MasterChanger

MasterChanger
  • Members
  • 686 messages
OK, I'll try to look at the XMLs again in a little bit (it's been a while so I don't entirely remember which calls which). Another good diagnostic step is to figure out the values of the local variables stored on your character and/or the ToB.

I'm in the midst of moving right now so my time is a bit limited.

#7
Femanon.tg

Femanon.tg
  • Members
  • 22 messages
no word at all?
I'd really like to play with this.
I also have no idea what you are talking about, although I have a suspician
shouldn't there be manuver UTIs in abundance in the tob folder?
Mine is practically empty and I just downloaded it.

Modifié par Femanon.tg, 25 juillet 2011 - 11:39 .


#8
MasterChanger

MasterChanger
  • Members
  • 686 messages
Damn, I accidentally navigated away from the page I was composing on. :(

Femanon.tg wrote...

no word at all?
I'd really like to play with this.


Sorry, I've been back and forth a lot between residences and have had very little toolset time. Also, please keep in mind that I have to muddle through this to figure things out myself and don't have any way to contact Drammel (the author) to ask questions.

However, this gives me some ideas:

shouldn't there be manuver UTIs in abundance in the tob folder?
Mine is practically empty and I just downloaded it.


The ToB UTI folder won't have a ton of maneuver UTIs, just the one maneuver blueprint (from which individual maneuvers will be copied). Here's how mine looks.

This reminded me that at some point I discovered a problem with the maneuver UTI. If I Recall Correctly, when I opened the toolset with the latest version of the ToB in my override, the baseitemtype for maneuver.UTI was undefined, which will prevent any items of this type from being spawned. I believe that the latest version's baseitems.2da (which defines base item types) did not have the "Maneuver" row which the old versions did.

So, you should verify whether your version has this row in the 2da or not. To open the 2da, you should either get a 2da/tlk editor (which may be a good idea anyway) or use Notepad or import into Excel. I like TLKEdit2 but others like other editors; I've successfully imported 2da's into Excel but not been able to save them properly (which you won't need to do for this step).

Now, find the 2da folder in your ToB override directory, and locate baseitems.2da. Open this via the method of your choice (if you have TLKEdit2 open you can just drag it to that window). Locate the row labeled "Maneuver" using a Search or just browsing. It should probably be row 99. If this row is missing, that might be the problem!  Let me know if that is the case and I should be able to upload my version of the 2da (which is from an old release) and we can see if that fixes things.

Modifié par MasterChanger, 25 juillet 2011 - 06:21 .


#9
Femanon.tg

Femanon.tg
  • Members
  • 22 messages
I have this row, the only plausibly strange thing is it has no base itemclass
but other items don't as well,

#10
MasterChanger

MasterChanger
  • Members
  • 686 messages

Femanon.tg wrote...

I have this row, the only plausibly strange thing is it has no base itemclass
but other items don't as well,


Yeah, the itemclass doesn't really matter. How about trying to load it up in the toolset? Open the toolset with the Tome of Battle in your override. Go to Blueprints (usually right panel on screen, sometimes shares with Tiles/Terrain) and select Items. Then find the "Maneuver" item (you can use the filter with name or tag). If there's a problem with the item, it should throw an error (unhandled exception).

This should help narrow down where the problem is occuring.

#11
Femanon.tg

Femanon.tg
  • Members
  • 22 messages
 it didn't seem to throw an exception, but there where some problems; to start off with. you cant search for this item, even though it exists, it does not appear in the filter list, secondly, something seems wrong with it, a cell isn't filled in correctly even though the property window opens.
Posted Image

#12
MasterChanger

MasterChanger
  • Members
  • 686 messages

Femanon.tg wrote...
 it didn't seem to throw an exception, but there where some problems; to start off with. you cant search for this item, even though it exists, it does not appear in the filter list, secondly, something seems wrong with it, a cell isn't filled in correctly even though the property window opens.


I double-checked and I think this is intended behavior. The maneuver UTI just doesn't have a name, only a tag and resref. I succesfully filtered for it with the "tag" radio button selected.

So, this tells us that maneuver.UTI is probably not where your problem is. That's too bad because it's an easier place to look. This probably means that we'll have to dig into the scripts that teach maneuvers; those scripts are called when you click on a maneuver on the learning screen, when you click next, finish, etc.

#13
Ophilina

Ophilina
  • Members
  • 12 messages
I'm having the same issue, where the stances/maneuvers aren't being saved to the book at all. I activate the training, get the book in my inv, get the menu's fine, select my desired stances and all, but then once I click finish it's not generating anything in the bo9s container, and my ready menu's don't display anything. Now the main reason I'm posting is that I'm using the version in the wicked magic compilation, so there may be something going on with that merge that is causing it, and I was going to see if maybe that was the case for ferm as well or if this is something in the base mod.

#14
MasterChanger

MasterChanger
  • Members
  • 686 messages
 One possible thing to try may be to try to circumvent the learning process and see if that works. I vaguely recall when digging through Drammel's code a while ago that there is a function that actually teaches the maneuver (this would be the function ultimately called by the training Graphical User Interface). Theoretically, it should be possible to write a script to be called from the console that will teach a certain maneuver.

Unfortunately, the soonest I can realistically say I'd be able to get on that would be late this week. Moving is kicking my butt and turning everything upside-down. :pinched: If someone else wanted to take a stab at it, I'd recommend opening all the ToB #includes and tracking maneuver-teaching through there, or opening the GUI XMLs and seeing what those call.

#15
Ophilina

Ophilina
  • Members
  • 12 messages
No worries, take care of the important things in life first :P I have no idea how to do all the internal script writing and debugging and whatnot, so I'll just chill out until you have time. I'm not in a rush, the game will still be there in a week or two, and in the meantime I can explore the other classes and whatnot. If we can eventually figure it out that would be great, because the concept sounds awesome, but at the same time, it's not a gamebreaker. In reality, I'm not surprised it's a "twitchy" system since it's so revolutionary and writing a whole second level of programming in essence, around the existing programming of the base game to add the new systems.

#16
MasterChanger

MasterChanger
  • Members
  • 686 messages
 OK, here's what I've come up with: I've found the script that actually teaches the maneuvers (gui_finalize_lvlup) and written a script modeled from it. What the new script does is take a maneuver number from the user and teach that maneuver by placing it as an object in the ToB and saving the proper info on the maneuver.

The script, teach_maneuver, is designed to be used from the console with the maneuver number specified (it must be a string, meaning that the number should be in quotes). This number is based on the row number of the maneuver in maneuvers.2da (see instructions for opening 2da's above).

1. Download the script from where I've uploaded it to DropBox.
2. Unzip ToB fix.7z with 7-Zip or WinRAR.
3. Place teach_maneuver.nss and teach_maneuver.ncs somewhere in your Override folder.
4. Figure out which maneuver you want to learn, and look up its row number in maneuvers.2da.
5. Run NWN2 and open the save you're using.
6. Backup with a new save in case things go wrong!
7. Open the console (the ` key, shares with ~) and enter DebugMode by typing 'debugmode 1' <enter>.
8. Run the script: 'rs teach_maneuver("x")' <enter>, where x is the maneuver number and must be in double quotes.
9. Turn off DebugMode by typing 'debugmode 0' and close the console with `.
10. Open your Tome of Battle and see if the maneuver is there!

Let me know how it goes.

#17
Ophilina

Ophilina
  • Members
  • 12 messages
Interesting, it runs okay, but I had to learn how to open and read 2da files :D However, when I run the script it just responds that I'm Martial class #72. I tried the abilities that were relative to warblade, I'm assuming that's #72. It didn't seem to matter which abilities I chose, so I don't think it's trying to say it can't assign the ability because I'm the wrong class. Nothing ever moved to the tome and I wasn't able to use any of the stuff. The funniest thing is why it works for some people but not others, I mean if the scripts and stuff themselves were bad, you'd think it wouldn't work at all.

#18
MasterChanger

MasterChanger
  • Members
  • 686 messages
 I should have mentioned that I have some debug text in there. IIRC when you run the script it will send you a message that it's entered the script (always a good first step! ;-) ) and then identify your class (by row number in classes.2da).

If/when you get the item, you should get a message (from the engine) that you have received item: "___". The maneuver item won't have a name yet, since the name is added to it after you are given it.

I should note that I was able to train my ToB test character fine with the GUIs; I don't know if that made a difference. But the script I wrote doesn't do any checks as to whether your character "should" have the maneuver you ask for--class, level, etc.--it should just give it to you. The only reason I included a check for class at all is that Drammel's code stores the martial adept class on the maneuver item it gives you.
Also, to double-check, when you run the script the console tells you it was a "successful execution", right? That doesn't check that the script did what it's supposed to, but it does check that it was supplied the correct parameters and (AFAIK) that the script started correctly.

#19
nicethugbert

nicethugbert
  • Members
  • 5 209 messages
Hmm, can you add the items via console?

#20
MasterChanger

MasterChanger
  • Members
  • 686 messages

nicethugbert wrote...

Hmm, can you add the items via console?


The issue is that you need to spawn an instance of a generic blueprint* inside a container, rename it, and save some variables on it. It's possible that using the console command for spawning an item would be helpful, but I doubt it. And you'd still need to accomplish the other steps through script.

Thanks for the suggestion, though. It could be an interesting test step, I suppose.

* There's just one maneuver blueprint. The relevant variables are retrieved from maneuvers.2da and saved locally on the maneuver item.

Modifié par MasterChanger, 09 août 2011 - 07:43 .


#21
Darhuuk

Darhuuk
  • Members
  • 10 messages
I just want to add that I'm having exacly the same problem as Ophilina is having (I'm also using the Wicked Magic compilation): nothing is added to the maneuvers container. Any help on how to fix this is greatly appreciated!

#22
Ophilina

Ophilina
  • Members
  • 12 messages
It doesn't say specifically "successful action" - It stops after Martial class #72, no item created/given, and still nothing in the book. I did go through the gui first after getting your script in there as well, basically to get the names of the "correct" things to give myself using the console, and that still didn't work as well. While I'm not an expert in this particular game/script/engine environment, I actually support software for my "day job" and I'm wondering since it seems to be a "some people, not others" issue whether it's not some random little local variable - like I use firefox instead of IE and that does something with the xml files, or I use openoffice instead of MS office, or WIN 7 64 vs 32 bit or not win 7, something like that. Also I'm using the Steam version, if that makes any difference - if the scripts call data from particular directories maybe?

The rest of the mod is working okay, obviously my dialog and stuff works since I can load the game, see the classes, and the gui works okay at least graphically if not functionally. I did put all files in the C:\\Users\\Administrator\\Documents\\Neverwinter Nights 2\\override folder. I wonder what would happen if I used S:\\steam\\steamapps\\common\\neverwinter nights 2\\Override instead. I may try that just for giggles. Worst case, we're still at square one, no harm no foul... Maybe have to remove and reinstall if I really ****** it off.

No dice - same situation. So we've eliminated at least one variable, directory/drive doesn't seem to be the problem.

#23
Ophilina

Ophilina
  • Members
  • 12 messages
Okay, I just tried your script again as well, after moving to steamapps/override type path, still no dice, but forgive me for brain fail. It DOES say "virtual machine reports successful of script teach_maneuver on object Gart Undry (this particular iteration of test char). The exact outpug to the chat log is
"in teach_maneuver you requested maneuver # 72" - I'm guessing more debug code to make sure it's calling the maneuver
"TOB Object Found"
"Your martial class is #72"

That's the end of the output. So it appears it is verifying the container/book is there, just not putting anything in it - I'm assuming the Book of 9 Swords is the TOB object to which it refers.

Also I just keep trying stuff because I really want it to work - I did go back and try downloading the actual Tome of Battle pack instead of the Wicked Magic Combipak as well, to see if it was something that got borked in the merge.  It exhibits the same behavior after overwriting all files with the last release, 1.142, of the base ToB mod.  This confirms what I figured, since others on the combopack also were having both issues and non-issue-working-fine as well, that it isn't something inherant in the scripts that got changed/damaged in the process of combining the different packs. So short of a full delete/reinstall with just ToB, it seems that's another variable eliminated.

Modifié par Ophilina, 11 août 2011 - 12:00 .


#24
Darhuuk

Darhuuk
  • Members
  • 10 messages
I get the same result as Ophilina, executing your script shows the following:

- in the console: "Virtual Machine reports successful execution of script teach_maneuver for object Vico Fren"
- in the chat window:
  "In teach_maneuver. You requested maneuver # 129.
   ToB oject found.
   Martial class is #71."

One strange thing I noticed is that the ToB container object keeps flashing in my inventory, like a newly picked up object. No matter how many times I open or inspect it, the flashing doesn't go away.

Edit: Also, just for info, I'm running the Steam NWN2 edition with all expansions on Wine 1.3.18, Windows version set to Windows XP. I could try and see if anything changes if I set it to Vista, 7, 2000, ..., but I would be very amazed if that had anything to do with the problem.

Modifié par Darhuuk, 11 août 2011 - 04:09 .


#25
MasterChanger

MasterChanger
  • Members
  • 686 messages

Darhuuk wrote...

I get the same result as Ophilina, executing your script shows the following:

- in the console: "Virtual Machine reports successful execution of script teach_maneuver for object Vico Fren"
- in the chat window:
  "In teach_maneuver. You requested maneuver # 129.
   ToB oject found.
   Martial class is #71."

One strange thing I noticed is that the ToB container object keeps flashing in my inventory, like a newly picked up object. No matter how many times I open or inspect it, the flashing doesn't go away.

Edit: Also, just for info, I'm running the Steam NWN2 edition with all expansions on Wine 1.3.18, Windows version set to Windows XP. I could try and see if anything changes if I set it to Vista, 7, 2000, ..., but I would be very amazed if that had anything to do with the problem.


Thanks for the feedback. The debug info I have in there is basically to verify that each step is doing what it's supposed to do: that it knows what you requested, that it knows what your class is, and that it can find the container it's supposed to put the maneuver in. It's strange that it won't create the item, because the function that does that isn't a ToB-specific function, it's just CreateItemOnObject so I can't imagine why it's failing. I can try playing around with the script a little more, but I'm still shuttling back and forth between two computers, doing the work on my desktop and uploading/downloading with my netbook's wifi... so much fun. :pinched:

Ophilina wrote...
Also I just keep trying stuff because I really want it to work - I did go back and try downloading the actual Tome of Battle pack instead of the Wicked Magic Combipak as well, to see if it was something that got borked in the merge.  It exhibits the same behavior after overwriting all files with the last release, 1.142, of the base ToB mod.  This confirms what I figured, since others on the combopack also were having both issues and non-issue-working-fine as well, that it isn't something inherant in the scripts that got changed/damaged in the process of combining the different packs. So short of a full delete/reinstall with just ToB, it seems that's another variable eliminated.


To really eliminate other variables, someone for whom it doesn't work as part of the Wicked Magic pack should try it with just the ToB in Override. This could tell us more about whether it's just a difference between one machine and another or whether the merging has something to do with it. The fact that the combo-pack uses the latest version of the files doesn't guarantee there isn't a conflict somewhere.