Hey youngneil1, no worries, I find it cool how you guys have been steadily chipping away at this block for the last 8+ years. I've been lowkey evangelizing this project here and there, anticipating the day when this becomes a cornerstone item in every rpg enthusiast's toolkit.
The fantasy I'd like to indulge here would be to somehow marry the two formative rpgs of my childhood; Pokemon and Baldur's Gate (it's a jellybean pizza, I know), which, off the bat would require a system that allows for recruitable pre-made pcs that you can boot from your party at will (with the exception of the human custom pc), but recruit at a later a time if you choose; as well as a system that allows for pcs to 'evolve', essentially ascending to a higher class of specialization.
I have no idea if the first is possible, while with the second, I see only aesthetic obstacles; like, is it possible for a pc to have its profile and overworld sprite changed?
I'd like to be able to steal as much knowledge as I can from taking apart existing modules, and digging through the archived boards, but to supplement the work, is there, like, a database of non-integrated scripts on github or somewhere that I could look at?
All of the ideas you mentioned are possible in the existing system. Recruitable PCs that can be removed via a conversation, changing PC sprites, special builder made custom traits that essentially can make a specialization class. Some of these are in use in modules like Hearkenwold, Raventhal, Lanterna - The Exile, and Lanterna - Return to Charn. I don't think there are any script resource databases out there.
I'm having trouble with the gaAddPartyMember.cs script. I set it up in a conversation, with the parameter pointing to the Char.json file (in the data folder), but I can't get it to follow through. MaxPartySize is set to 6 and I'm not seeing any other obstacle to script activation.
I've checked the 'Fresh Template' that comes included, and it looks like the test Companion Balen doesn't join your party either (also uses the same gaAddPartyMember.cs script.
My next question is about accessing some of the parameters that don't show up in the builder like the elements list (ie. Acid, Ice, etc..) as well as the Item scripts (ie. itHealLight.cs). Is there a way, for example, to get a Potion to heal 7 HP instead of 8, besides resorting to creating a new Spell Effect to trigger on the Item's use?
btw, I'm using the IceBlink 2 RPG Toolset ver 1.00, which I understand is still in development.
I'm not exactly sure about the gaAddPartyMember.cs script, why it isn't working right. I know that you can add party members and even temporary party members. It may come down to a syntax issue with the file name or location of the file? Have you tried turning debugmode on and see what notes show up in the message box? Also, maybe check the "IB2ErrorLog.txt" to see if any messages maybe show up there that may be related. We have slowly been working on adding more debugging messages and creating more intuitive functionality, but we still have a long way to go with that. Unfortunately, IB can still have a large learning curve because of the lack of up-to-date documentation.
We have been moving away from fixed item scripts like "itHealLight.cs" and such. We created the effect system so that the builders can have a lot of flexibility in creating what they need. We add new features to the Effect Class as needed as well. So to have a healing option that does 1-7 or just 7, you create an Effect in the Effect editor and then use that effect with an item or spell or trait.
I'm having trouble with the gaAddPartyMember.cs script. I set it up in a conversation, with the parameter pointing to the Char.json file (in the data folder), but I can't get it to follow through. MaxPartySize is set to 6 and I'm not seeing any other obstacle to script activation.
Have you made sure to enter the name without the .json file extension?
It may come down to a syntax issue with the file name or location of the file?
Have you made sure to enter the name without the .json file extension?
That was the issue. I was typing in the .json extension in the Parameter 1 case. Could it be the example given in the IB build I'm using is misleading?
//gaAddPartyMember.cs - Adds a pre-made character to the party
//parm1 = (string) PC file name (ex. Drin.json)
//parm2 = none
//parm3 = none
//parm4 = none
I think the example may be based on an older version maybe. In IBbasic, I check for both with and without the extension, but IB doesn't have the check (we should add it):
public void AddCharacterToParty(string filename)
{
try
{
//if the filename doesn't have a .json extension, add it
if (!filename.EndsWith(".json"))
{
filename += ".json";
}
Player newPc = gv.cc.LoadPlayer(filename); //ex: filename = "ezzbel.json"
...
I went to test some recent changes to my game, and when I select 'New Game' and try to hit the left and right arrows to scroll to my test character, I get hit with this error message:
System.NullReferenceException: Object reference not set to an instance of an object.
at IceBlink2.ScreenPartyBuild.redrawPartyBuild()
at IceBlink2.GameView.Render(Single elapsed)
at IceBlink2.GameView.gameTimer_Tick(Object sender, EventArgs e)
at System.Windows.Forms.Timer.OnTick(EventArgs e)
at System.Windows.Forms.Timer.TimerNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
I'm not sure what object instance is being referred to here as not prperly set. The Data Check within the Toolset doesn't provide any information.
Anyone have a clue?
edit: This happens even if I delete all the created characters from the save folder. I'm able to create new characters, just not select them with the left and right buttons.
I worked around it by going back to previously saved version of the module. I was able to import all the area, trigger, and conversation work I'd done since then, so there wasn't anything there that had caused the problem. Strange.
Did you make any changes to any of the default Player Class, Race, Traits, Spells, or Effects? I'm guessing that one of the characters being loaded has a conflict with some data. If you can post a link to the bad module folder (like dropbox or something), I could try running it inside of Visual Studio to see where exactly it has the issue.
I ran some tests and that was indeed the problem. I had changed the name and tag of one of the Races. I thought I'd also changed the tags in all the Player files correspondingly, but either it didn't make a difference, or I forgot something somewhere.
Thank you for willing to take a look at it, though
I was editing an area, Farmland NE, (nothing major, added a couple of props that trigger based on an event in another area), and it looks like it got bugged out. Above is the error I get now when I try to open the area in the editor. It also crashes the game when I try to enter that area.
I'm using IB 198. When I transferred my game, for some reason this Farmland NE made 5 duplicates of itself named Farmland NE_0_, Farmland NE_1_, ... Farmland NE_4_. When I delete them all, instead of the above error message, I get an error message saying that it can't find those numbered versions. Reinstating the duplicates just gives me the above error.
It seems like this area was changed to be one of the seamless edge type maps. I don't really understand how they work, but they have linked neighbor maps and I think those are the ones with _0, _1, _2, etc. If you delete those areas, you may need to go into the Farmland NE area file and remove any references to those edge files. I think I accidently did the same thing when clicking on some of the buttons in the area editor that I wasn't familiar with and I wanted to see what they did. I ended up going into my area file and deleting some things in the first part so that they looked like my other normal area files. This is the part with the "linked" stuff at the beginning of the area files:
I found what was causing the bug. I've been using the Neighbour function to link adjacent maps, and at a certain point, instead of leaving blank the squares for a cardinal direction that led to no adjacent maps, I wrote in 'none'. The engine was then searching for a map called 'none' and found nothing: *beep*boop*error*!.
I've been using this thread to ask small-ish questions about the editor so as to not flood the forum, but let me know if you'd prefer if I create separate topics instead for ease of future reference.
--
I'm trying to launch a conversation after an encounter.
In the Encounter properties, I've got the OnEndCombatIBScript Hook set to DoConvo, with the parameter set to the conversation I want, but when I test it, winning the encounter does not trigger the conversation. This is the case whether I have special victory conditions or not.
I usually have the conversation on the next event of the trigger. So if the encounter is trigger event 1 then the conversation is on trigger event 2. I don't use the OnEndCombatIBScript hook for conversations. If the encounter is called from a prop, then I'd have to try and dig through that code to figure that out.
Cartons, I'm not sure why the convo won't fire--I have multiple encounters that use the setup you describe. It might have something to do with how the combat itself is called, like Slowdive suggested. All my encounters begin with a script called through conversation. (The narration sets up the combat, and then there's an option to skip the combat or go ahead with it.)
cartons wrote: ↑Sun May 16, 2021 2:35 am
I'm trying to launch a conversation after an encounter.
I also set up post-encounter conversations the way slowdive described. Use the trigger properties, and put the conversation in the event right after the combat event.
The problem was indeed that the combat was triggered from the Prop. Here is the line of events that DOESN'T work:
Prop STEP: conversation > conversationX
conversationX > encounterY
encounterY OnEndCombatIBScript > conversationZ
What DOES work:
triggerW > conversationX
conversationX > encounterY
encounterY OnEndCombatIBScript > conversationZ
I'll probably continue to use the IBScript to trigger a post-encounter conversation because if the encounter was optional, based on choices in the preceding conversation, I'd like to not necessarily be locked into the next conversation lined up in that trigger.