For those of us who have created custom item addin modules per Werikks tutorial. The mods that add items into your inventory. There has been a known issue all along. If you start a new game with the already DLC installed those items are not loaded into your inventory. The work around has always something. Loading up the game a couple times, or uninstalling the DLC doing a force load and save. Then reloading the DLC. And then it works.
However, I've noticed now that I've patched to 1.03. That work around doesn't exactly work the same way. Now you have to uninstall the DLC before you create a new character. Thats the only way I can get DLCs to work.
Has anybody noticed this?
If so, Have you tried this with awakenings?
Does anybody know of a better way to script inventory addin mods? So this bug doesn't occur?
1.03 patch and custom armor addin mods
Débuté par
mutantspicy
, mars 25 2010 03:21
#1
Posté 25 mars 2010 - 03:21
#2
Posté 27 mars 2010 - 10:01
Use a PRCSCR_ M2DA, which is probably how Bioware does the DLC items.
#3
Posté 28 mars 2010 - 04:50
Thanks I've seen a couple of posts regarding PRCSCR, I'm not sure what its about. I'll have to look into it. You know any links to a thread or tutorial? By chance.
#4
Posté 28 mars 2010 - 07:36
mutantspicy wrote...
Thanks I've seen a couple of posts regarding PRCSCR, I'm not sure what its about. I'll have to look into it. You know any links to a thread or tutorial? By chance.
Sure do; Adding content to an existing area. While this is used specifically to add characters and such, the method is the same for adding items to a character's inventory.
#5
Posté 28 mars 2010 - 09:11
Okay so I created. PRCSCR_oracle.gda file and added it to my addin's core data folder. But I exported the mod, and then created a new character. Same thing. The new items are only added into existing save games.
PRCSCR I created used 2000001, any, oracle_script. Like I said it works for existing characters. But not new ones. To get it to work on new characters, I have to uninstall the mod, create a new character, then reinstall.
Am I missing something? Do I have to change my plot file or script in some way?
PRCSCR I created used 2000001, any, oracle_script. Like I said it works for existing characters. But not new ones. To get it to work on new characters, I have to uninstall the mod, create a new character, then reinstall.
Am I missing something? Do I have to change my plot file or script in some way?
Modifié par mutantspicy, 28 mars 2010 - 09:12 .
#6
Posté 28 mars 2010 - 09:59
Did you change your script to no longer trigger on the module load event? Try that and let me know if it works.
#7
Posté 28 mars 2010 - 10:17
Yeah, I got rid of the module load event part of the script. And now its just plot check, add uti script.
Actually here is my script:
#include "utility_h"
#include "plt_oracle_plot"
void main()
{
// If our plot flag is set to TRUE, that means we have already
// given the items to the player, there is no need to continue
// running this script.
if ( WR_GetPlotFlag( PLT_ORACLE_PLOT, ORACLE_CHECK_FLAG ) == TRUE )
return;
{
UT_AddItemToInventory(R"oracle_a.uti",1);
UT_AddItemToInventory(R"oracle_b.uti",1);
UT_AddItemToInventory(R"oracle_c.uti",1);
//Set the plot flag to TRUE to indicate that the item was given.
WR_SetPlotFlag( PLT_ORACLE_PLOT, ORACLE_CHECK_FLAG, TRUE );
}
}
// ---- SCRIPT ENDS HERE ----
Actually here is my script:
#include "utility_h"
#include "plt_oracle_plot"
void main()
{
// If our plot flag is set to TRUE, that means we have already
// given the items to the player, there is no need to continue
// running this script.
if ( WR_GetPlotFlag( PLT_ORACLE_PLOT, ORACLE_CHECK_FLAG ) == TRUE )
return;
{
UT_AddItemToInventory(R"oracle_a.uti",1);
UT_AddItemToInventory(R"oracle_b.uti",1);
UT_AddItemToInventory(R"oracle_c.uti",1);
//Set the plot flag to TRUE to indicate that the item was given.
WR_SetPlotFlag( PLT_ORACLE_PLOT, ORACLE_CHECK_FLAG, TRUE );
}
}
// ---- SCRIPT ENDS HERE ----
#8
Posté 28 mars 2010 - 11:09
That's odd; what's even more odd is that I'm having trouble with a spawn script that is based on one that I know works...
#9
Posté 28 mars 2010 - 11:59
Yeah I don't know. Like I said, it works for my existing saves, but not any new games created after installing the dlc. Basically it works exactly the same as using the Werikk method. Which after installing the 1.03 patch requires me to completely uninstall the DLC before creating a new character. The old deactivate, force load, reeactivate trick doesn't work anymore at least not for me. This is true with any custom item DLC I've tried not just mine. The sad thing is I don't think there is a whole lot of consistency, I think some people have no issues whatsoever, others are worse than me in that no matter what they do they can't get any of the custom DLC's working after 1.03 and/or awakenings. So I'm not sure if this is a toolset issue, in that core resources aren't up to date or what.
Also, now that I got you. I'm wondering about the ID # in the prcscr file. If another mod uses that ID # will my mod conflict with it.
Also, now that I got you. I'm wondering about the ID # in the prcscr file. If another mod uses that ID # will my mod conflict with it.
Modifié par mutantspicy, 29 mars 2010 - 12:06 .
#10
Posté 29 mars 2010 - 09:43
mutantspicy wrote...
Also, now that I got you. I'm wondering about the ID # in the prcscr file. If another mod uses that ID # will my mod conflict with it.
Yes it will
#11
Posté 29 mars 2010 - 03:17
i thought so. Hmm that makes me wonder if this method is worth it. For me as I'm finding out, its not doing anything different for me. That said, maybe I'm screwing something up and this in fact does solidify item add ins.
However, if more modders are using this prcscr method, it would stand to reason that there will be some potential for conflicting ID'S. I'm wondering if it would wise for someone to put a sort of ID board together
However, if more modders are using this prcscr method, it would stand to reason that there will be some potential for conflicting ID'S. I'm wondering if it would wise for someone to put a sort of ID board together
#12
Posté 29 mars 2010 - 03:45
There is an M2DA ID registry page on the Wiki; I don't know how many people actually use it, though.
#13
Posté 29 mars 2010 - 08:15
I've notice after searching that some folks have a
#include "wrappers_h"
I'm not sure why. In the wiki, I was kinda confused as to what this code does, but it seem to somehow be involved in plot scripts. Perhaps maybe I need to add that to my script.
#include "wrappers_h"
I'm not sure why. In the wiki, I was kinda confused as to what this code does, but it seem to somehow be involved in plot scripts. Perhaps maybe I need to add that to my script.
#14
Posté 29 mars 2010 - 08:19
And whats up with place, 3v3ry7h1n9 1s Wh4ck3d 0u7?
#15
Posté 05 avril 2010 - 05:42
Interesting that you are all have these issues. I'm seeing something very similar to this, and when I disable the DLC and do a force, I get really strange results. For instance, several of the faces on my other NPC's turn black...not blacked out, but the color of their faces turns black. If I exit and enter the game with my customer content, there is not problem at all.
What I'm also seeing is that all of my customer items were working just fine on other characters, and the scripts seemed to be working great, but then when I started playing the character I designed most of these items for, after adjusting some of these items, now only one of the items on the script is being added to my inventory. What's worse is that I removed that item from the script completely, and it's still being added to my inventory incrementally. I think I might have exported that item individually by mistake when I came back to modding, and have no idea where to look to see why it's adding that still.
There was a section in Werikk's instructions that told us to delete everything in the 'override' folder before continuing, but I wasn't doing that for a while after several changes to this equipment. Now I'm thinking about just starting all over and removing the content completely, but I'm not sure how to go about doing a full un-install. I'll still have to force the load of the game right? That will likely lead to the black faces of the other characters and lord knows what else...
I know that's a ton of information, but any ideas on how I should proceed without gutting my game?
Thanks for the help everyone.
What I'm also seeing is that all of my customer items were working just fine on other characters, and the scripts seemed to be working great, but then when I started playing the character I designed most of these items for, after adjusting some of these items, now only one of the items on the script is being added to my inventory. What's worse is that I removed that item from the script completely, and it's still being added to my inventory incrementally. I think I might have exported that item individually by mistake when I came back to modding, and have no idea where to look to see why it's adding that still.
There was a section in Werikk's instructions that told us to delete everything in the 'override' folder before continuing, but I wasn't doing that for a while after several changes to this equipment. Now I'm thinking about just starting all over and removing the content completely, but I'm not sure how to go about doing a full un-install. I'll still have to force the load of the game right? That will likely lead to the black faces of the other characters and lord knows what else...
I know that's a ton of information, but any ideas on how I should proceed without gutting my game?
Thanks for the help everyone.
#16
Posté 10 avril 2010 - 03:24
I only noticed these issues after patching to 1.03. And unfortunately the results have been crazy unpredictable. As a result My answer, which is working pretty solid now, is to completely get away from event_type_module_load. Event based coding is really starting look sketchy and unpredictable for me right now, as I'm working on another mod that uses event_type_equip to double a character movement rate. I can get the movement rate to double with a straight script, but once I put in the event cases to have some logic, nothing.
Anyway.
First, yeah you need to wipe out that toolsetexport. I actually had it completely break my game one time and I had to redownload from steam and reinstall everything that sucks.
But I've a much better way. Using DJ Docs, array script, and prcscr's in combination with a plot flag scheme that is working really solid.
1st you have to create your prcscr_yourmodule.gda. Look up prcscr gda in the wiki or here. There really easy. its basically 3 by 1 spreadsheet.
ID number, area, script_name. So basically it runs your script any time you enter the specified area. If you put "any" in the area column it will run your item load script for every area you enter.
The problem with that is it can overload your inventory so I kept the plot flag in there to prevent that. Well that creates an issue when generating a new character, because the chargen deletes the inventory as part of its process and plot flag remains set true. So I created a seperate script called plt_flag_reset.
Then created a two more pcrscr's. Pcrscr_mymod_pltflag.gda
which looks like
ID1 fade plot flag script sorry I don't remember the actual area tags at the moment.
ID2 party camp plot flag script
But essentially what this does.
Is use a plot flag to determine if the items have been added at any point during the game. If they have the items don't get added. But if the plot flag is false, the items do get added. Very similar to werikks concept, except it doesn't use events to call the script. The pcrscr because set to any runs the script everytime you enter a new area.
Now the plot flag reset, resets the plot flag to false in the beginning fade area or party camp, which then allows the script to run when entering the fade for the first time. Essentially side stepping the char gen issue.
Of course that works for mages, you'd have to use a different area(s) for other origins.
Anyway.
First, yeah you need to wipe out that toolsetexport. I actually had it completely break my game one time and I had to redownload from steam and reinstall everything that sucks.
But I've a much better way. Using DJ Docs, array script, and prcscr's in combination with a plot flag scheme that is working really solid.
1st you have to create your prcscr_yourmodule.gda. Look up prcscr gda in the wiki or here. There really easy. its basically 3 by 1 spreadsheet.
ID number, area, script_name. So basically it runs your script any time you enter the specified area. If you put "any" in the area column it will run your item load script for every area you enter.
The problem with that is it can overload your inventory so I kept the plot flag in there to prevent that. Well that creates an issue when generating a new character, because the chargen deletes the inventory as part of its process and plot flag remains set true. So I created a seperate script called plt_flag_reset.
Then created a two more pcrscr's. Pcrscr_mymod_pltflag.gda
which looks like
ID1 fade plot flag script sorry I don't remember the actual area tags at the moment.
ID2 party camp plot flag script
But essentially what this does.
Is use a plot flag to determine if the items have been added at any point during the game. If they have the items don't get added. But if the plot flag is false, the items do get added. Very similar to werikks concept, except it doesn't use events to call the script. The pcrscr because set to any runs the script everytime you enter a new area.
Now the plot flag reset, resets the plot flag to false in the beginning fade area or party camp, which then allows the script to run when entering the fade for the first time. Essentially side stepping the char gen issue.
Of course that works for mages, you'd have to use a different area(s) for other origins.
#17
Posté 10 avril 2010 - 03:47
The is the main script "oracle_script" which is mostly based DJDOC's item load script, the only difference being the inclusion of a plot flag.
The prcscr is
prcscr_oracle.gda
2000002, any, oracle_script
This is the plot flag reset script "oracle_plotflag_reset" which runs off
pcrscr_oracle_fade.gda and pcrscr_oracle_camp.gda
2000000, bhm600ar_fade_harrowing, oracle_plotflag_reset
2000001, cam100ar_camp_plains, oracle_plotflag_reset
The prcscr is
prcscr_oracle.gda
2000002, any, oracle_script
#include "utility_h"
#include "wrappers_h"
#include "plt_oracle_plot"
void main()
{
string[] sTags;
object[] oItems;
resource[] rFileNames;
// Gear
rFileNames[0] = R"oracle_a.uti";
rFileNames[1] = R"oracle_b.uti";
rFileNames[2] = R"oracle_c.uti";
rFileNames[3] = R"oracle_d.uti";
int x;
// If our plot flag is set to TRUE, that means we have already
// given the items to the player, there is no need to continue
// running this script.
if ( WR_GetPlotFlag( PLT_ORACLE_PLOT, ORACLE_CHECK_FLAG ) == TRUE )
return;
{
for(x = 0; x
{
sTags[x] = ResourceToTag(rFileNames[x]); //gets all the tags from your file names
oItems[x] = GetObjectByTag(sTags[x]); //turns the tags into objects
//change the 1 to the amount of the item you want spawned
if(!IsObjectValid(oItems[x]))
{
UT_AddItemToInventory(rFileNames[x], 1, GetHero() , sTags[x] );
WR_SetPlotFlag( PLT_ORACLE_PLOT, ORACLE_CHECK_FLAG, TRUE );
}
}
}
}
// ---- SCRIPT ENDS HERE ----
This is the plot flag reset script "oracle_plotflag_reset" which runs off
pcrscr_oracle_fade.gda and pcrscr_oracle_camp.gda
2000000, bhm600ar_fade_harrowing, oracle_plotflag_reset
2000001, cam100ar_camp_plains, oracle_plotflag_reset
#include "wrappers_h"
#include "plt_oracle_plot"
void main()
{
if ( WR_GetPlotFlag( PLT_ORACLE_PLOT, ORACLE_CHECK_FLAG ) == FALSE )
return;
{
WR_SetPlotFlag( PLT_ORACLE_PLOT, ORACLE_CHECK_FLAG, FALSE );
}
}
// ---- SCRIPT ENDS HERE ----
Modifié par mutantspicy, 10 avril 2010 - 03:55 .
#18
Posté 17 septembre 2010 - 07:53
Hello! I am new to scripting and I need advice to get this to work. Should the script look like this:
// Gear
rFileNames[0] = R"Devout_Armor.dazip";
Or am I supposed to put the filename somewhere else?
Thankful for any help I can get!
// Gear
rFileNames[0] = R"Devout_Armor.dazip";
Or am I supposed to put the filename somewhere else?
Thankful for any help I can get!
#19
Posté 02 octobre 2010 - 05:52
The filename should be *.uti Which represents the item you have created in the toolset.
The Dazip is really just Dragonages own custom zip file, like winrar or winzip, etc. That is created when you export your mod. Hope that helps.
The Dazip is really just Dragonages own custom zip file, like winrar or winzip, etc. That is created when you export your mod. Hope that helps.





Retour en haut







