Oh man that sounds so bad in english. I think you meant to say "in" your face. I know what you mean, but english has very little consistency.
Upcoming Campaign: Return of the Exile
#426
Posté 11 août 2014 - 01:43
#427
Posté 11 août 2014 - 02:41
Funny you mention it, because in the past days I was watching a series and somebody said punch *in* the face. That moment I thought "hmmm", because in Greek we say *at* the face. But habit is habit and made the mistake again.
#428
Posté 11 août 2014 - 02:53
Ya it doesnt really make sense, but we say in. Even though we don't mean inside the face. But the way you said it would earn a mature rating for this forum pretty quick ![]()
#429
Posté 14 août 2014 - 09:01
Journal Update
So today was a day off work and a very cold and rainy one too. Of course this makes sense. The good days come when on shift. But anyway. Because of that I sat down and crossed all items from my To Do list. On the next couple of days I will do my own testing, where some stuff will naturally get added to this list, and after they are crossed I will give it for a good testing.
After the beta, and when everything is fixed, these chapters will not be revisited for fixes. I will consider them completely done. No more polishing. The only reason to go back will be to follow up higher level quests on these previous areas.
On the toolset breaks, I also completed my loot spreadsheet. Now I know which exact items will get looted or given as rewards until level 15 or so. This will come in handy.
So yes. Much progress, and satisfaction. Can't wait to test it
.
#430
Posté 14 août 2014 - 10:19
Can't have an adventure without an excel file of the loot table. Unless your the NWN2 development team.
#431
Posté 15 août 2014 - 10:38
Can't have an adventure without an excel file of the loot table. Unless your the NWN2 development team.
Yep yep.
Had mine since I started... incredibly useful for knowing what you've already given away, and what you might want to drop still.
#432
Guest_Iveforgotmypassword_*
Posté 16 août 2014 - 02:03
Guest_Iveforgotmypassword_*
I prefer the play test and see what happens or what the party needs method and always set the modules for nothing getting dropped by baddies on death. I also favour the really badly written in notepad where I can't find anything or decipher it from the night before and chewed pen style.
#433
Posté 16 août 2014 - 07:28
I am the same as Tsongo though I allow loot drops. Through play testing I make tweaks to loot so that the player can either buy an item which requires saving for (boots of speed in my current module) or can keep equipped with an appropriate level of equipment for the module. Special items are then dropped.
I also favor a file full of loose paper that I lose from time to time and a pen which is often stolen by the kids so the first fifteen minutes of modding time in spent wandering round the house trying to find a pen that works. That's creative time ![]()
PJ
#434
Posté 16 août 2014 - 09:57
Well the sheet does not contain all the loot that's going to be given. It's just a reference of items I find useful and the levels they should get obtained. From the list, I expect about half to 3/4 to be used. Not all has to. Another reason that makes it useful is that one could always forget to give a good greatsword for example. Then the player focuses on greatswords and never gets a good one, except from a merchant. Which is OK I guess, but loses the excitement of looting one.
#435
Posté 16 août 2014 - 01:01
Alternatively you can only place magic shuriken, then player knows what to focus on ![]()
PJ
#436
Guest_Iveforgotmypassword_*
Posté 16 août 2014 - 04:27
Guest_Iveforgotmypassword_*
Only problem with giving out magic weapons of all types as loot unless you do some kind of funky scripting on containers that can read what the PC wants ( not an option for me ) is that you could finish up with a very rich party. Catering for everybody can be a big problem but forcing choices regarding weapons can save a lot of hassle... Magic shurikens everywhere is the way forward !
#437
Posté 16 août 2014 - 08:56
You can also do a dialog to let the user select their preference. It can be a little weird when looting a chest (though still possible, and most players won't bat an eye). But if you have the item delivered via an NPC, it can be seamless, especially when it's a showpiece magical item.
I'm playing Saleron's Gambit 4 right now (a nwn1 module, sorry), and Tiberius209 apparently did do the fancy scripting you mentioned. I'm guessing that he checked for weapon focus feats on my character, but he did give my character a custom morningstar without any input from my end (though he did let me choose what type of elemental damage bonus it received). The morningstar is my bard's preferred weapon, so it was pretty neat.
#438
Posté 16 août 2014 - 10:32
Given the size of my campaign, there will be plenty of ways to spend money. See player castle, maybe home, buy your way with a ship etc. So getting them rich is not really a concern at the moment. Of course it is seriously early to think of how the money will go.
#439
Posté 22 août 2014 - 04:05
Journal Update
So big testing is over. As it turned out my girlfriend was the tester and I was just sitting there taking notes. Results were these:
15 Hours of play.
Around 100 bugs found.
Level 8-9 reached.
Most of the bugs were small things, like typos. Nothing gamebreaking when it comes to the main quest and this is good. Some side quests failed their finishing conversations, quest items didn't get destroyed etc. Most of these things were not really bugs, but actually lousy work. And this is why they all got fixed on the same day they got found.
The end result of this campaign by the end of chapter 2 surprised me in a good way. I was afraid that the plot will only be clear to me, because I write it. I was afraid as well that combat will be unbalanced, loot too much or too little. But the majority of things look fine. Only some things left before I send this to external testers:
- Scale some xp and CR on some creatures.
- Fix some bugs from the last session.
- Do some work on the companions (conversations mainly).
The last one I wanted to do later, but it proves impossible. There were incomplete companions, one time I got a 6th member even though the campaign will only allow 5... such things. So the plan to do all this at the very end changed to build my companions as I go.
Also, there is one bug I need to make extra mention because I have no clue at all why it happens.
On world map travels, there is a possibility to get encounters. Could be a traveling merchant or an ambush or whatever. Much like the OC. In this case, an ambush. I have three occasions where world map is diverted. 2 work, 1 not. All the scripts look similar. The only thing that I can think about, is that the ambush happens in an area that's in another module. Could that be the case? Here the part of the traveling library.
//When we travel to Dryntal Forest for the first time,
//we get ambushed by Irina and her goons.
if(sTargetWaypoint == "wp_dryntal")
{
int bVisitedDryntal = GetGlobalInt ("visited_dryntal");
if (!bVisitedDryntal)
{
sTargetWaypoint = "wp_bef_dryntal";
}
}
The target waypoint "wp_bef_dryntal", belongs to another module than the actually destination "wp_dryntal".
On the ambush, the global int "visited_dryntal" gets set and this won't happen again. using the world map from the ambush area, will make us travel to the place we originally wanted. However, the divert doesn't happen...
And here's something that actually works.
if(sTargetWaypoint == "wp_dorgnad")
{
if ( GetLocalInt(oPC, "NW_JOURNAL_ENTRYqu_dr_tablet") == 11 )
{
sTargetWaypoint = "wp_haunt_waste";
}
}
So here if we travel to "wp_dorgnad", but the quest "qu_dr_tablet" is at stage 11, then we get diverted to "wp_haunt_waste". It works. The only difference between this and the non-working, is that the "wp_dorgnad", and "wp_haunt_waste" belong to the same module. Could this play a role?
If anyone read this far and has an idea... would be nice to hear it
. Thanks a lot.
Andy.
Edit: In simple words, does anyone know if the encounters on world map transitions in the OC, if these encounter areas are on the same module as the destination or origin?
#440
Posté 22 août 2014 - 04:25
The issue is, am pretty sure, your destination waypoint is not getting found without loading the other module first. I think what you want to transition to a different module is this:
in 'ginc_companion'
// Despawn non-party roster members and save module state before transitioning to a new module
// - sModuleName: Name of module to load
// - sWaypoint: Optional starting point for party
void SaveRosterLoadModule(string sModuleName, string sWaypoint = "")
{
// Save non-party roster member states
DespawnAllRosterMembers(TRUE);
LoadNewModule(sModuleName, sWaypoint);
}... or similar.
#441
Posté 22 août 2014 - 05:19
This is from later in the same script library that has the conditionals with the detours.
if(GetIsObjectValid(oTarget))
{
// Target waypoint exists in current module
// so jump the party to the target
DelayCommand(1.2f,SinglePartyTransition(oPC, oTarget));
}
else
{
// Target waypoint does not exist in module so
// load the appropriate module
// and jump the party to the target
// Don't use this method. We need to save the Roster
//LoadNewModule(sModule, sTargetWaypoint);
// This saves the Roster and then calls LoadNewModule()
DelayCommand(1.2f,SaveRosterLoadModule(sModule, sTargetWaypoint));
}
}
So I think it should find it... no?
#442
Posté 22 août 2014 - 05:45
hm, yeh. So ... what's the def'n of oTarget look like; that is, how do you turn string sTargetWaypoint="wp_bef_dryntal" into a in/valid object for the next check? ... maybe it's time for debug:
SendMessageToPC(GetFirstPC(FALSE), "testing for valid wp-object ...");
if (GetIsObjectValid(oTarget))
{
SendMessageToPC(GetFirstPC(FALSE), "wp-object VALID");
// Target waypoint exists in current module
// so jump the party to the target
DelayCommand(1.2f,SinglePartyTransition(oPC, oTarget));
}
else
{
SendMessageToPC(GetFirstPC(FALSE), "wp-object NOT valid");
// Target waypoint does not exist in module so
// load the appropriate module
// and jump the party to the target
// This saves the Roster and then calls LoadNewModule()
DelayCommand(1.2f,SaveRosterLoadModule(sModule, sTargetWaypoint));
}Also, what are you using for sModule: shouldn't be tag, but rather the module's name/filename
#443
Posté 22 août 2014 - 05:48
On your other topic, the campaign companion limit only affects the number of companions you can create/add with the SoZ party creation screen and I think also in the party roster UI. In conversations, you need to use conditional checks to see if there's still room in your party before adding a new party member. Without a check, the conversation scripts will ignore the limit and add as many as you tell it to.
#444
Posté 23 août 2014 - 01:18
kevL: I'll try the debug and see how it goes. Something came to me though. Could it be that because the variable "visited_dryntal" is a global, and on one of my tests perhaps I had an auto save, then when the last testing happened this auto save kept the global and sent us to the real destination?
In any case,
"how do you turn string sTargetWaypoint="wp_bef_dryntal" into a in/valid object for the next check?"
The script is based on ColorsFade's job and I am not really certain about the hows to be honest.
"Also, what are you using for sModule: shouldn't be tag, but rather the module's name/filename"
This is clear. On the world map editor I always put the module name.
Tchos: I think we made this clear on the scripting forums, but I have yet to figure out where the script goes and how. I mean, on the companion node? The PC node? Both? What counts as number of party... PC+4, so I check for 4 or PC is part so I check for 5? Such things
.
#445
Posté 23 août 2014 - 01:23
As far as I can see, it doesn't matter if you put it on a PC or companion's node. The PC and the conversation owner don't change identities from one node to another. The party is all members of the party, PC included. A party size of 5 is the PC and 4 companions. But you don't need to specify, and shouldn't specify in each check if you're using the SoZ system. Instead just use the kc_room_in_party script from the SoZ campaign folder, which does the numbers for you, and allows an extra companion in the party if the main PC has the Leadership feat.
#446
Posté 23 août 2014 - 01:39
globals are unique to each save (even the autosave is, should be its own save) so i don't think so
be liberal w/ debug. Send yourself the value of sTargetWaypoint at critical moments
#447
Posté 23 août 2014 - 02:01
Will try stuff after work. I just find it weird that this happened because on my own tests, before the good test, the detour actually happened and I crossed this off my ToDo list. Now here it came again to make me confused... we'll see why.
#448
Posté 23 août 2014 - 02:08
So KevL, it returned "wp-object NOT valid", as expected for it needs to load a new module. I will explain more how this is.
I am in module 1
I want to travel to module 2
I need an ambush at module 3
(Numbers for the shake of it...)
Now, the occasions where the same system works, are like that.
I am in module 1
I want to travel to module 2
I need a detour at module 1
I am in module 1
I want to travel to module 2
I need a detour at module 2
These work. I will try to export-import the ambush area as an erf and see what's happening.
#449
Posté 23 août 2014 - 03:06
since the underlying system appears to work ...
check your tags on waypoints (and module strings)
double check the strings in the scripts -- copy/paste is yer friend here.
and, as said, send them as debug to chat:
SendMessageToPC(GetFirstPC(FALSE), "Target in mod3 = " + sTargetWaypoint);
You could even do a TEST by routing the destination to a location (in module2) that already works for one of the other detours,
#450
Posté 24 août 2014 - 01:17
I didn't have time for further testing yet, but something occurred to me. KevL, tell me please if this makes any sense.
On the world map editor, the map points have my traveling script attached as an action script. Parameters, sModule, sTargetWaypoint.
When I click on Dryntal Forest, it wants to go to 04_Dryntal, wp_dryntal.
Now, the detour is happening on module 06_Outskirts, wp_bef_dryntal.
But the actual start point, or waypoint parameter of the module 06_Outskirts on the world map editor is another area. wp_outskirts.
And here's the thought. What if, because the conditional script wants to send us somewhere else, on another module, but not on that module's starting point, or even its default travel waypoint, it blocks because it doesn't know where the detour waypoint is. It calls SaveRosterLoadModule, to send us to "wp_bef_dryntal", but it doesn't know where this waypoint is, for it doesn't exist in the world map editor paired with a module.
If this is what's happening, could I change the script to something like that...
//When we travel to Dryntal Forest for the first time,
//we get ambushed by Irina and her goons.
if(sTargetWaypoint == "wp_dryntal")
{
int bVisitedDryntal = GetGlobalInt ("visited_dryntal");
if (!bVisitedDryntal)
{
SaveRosterLoadModule("06_Outskirts", "wp_bef_dryntal");
}
}
to bypass the default waypoint of 06_Outskirts?





Retour en haut





