Recommended Posts

Ok, so...

What are P2 and P3 for?  

And the string parameter field, does that need to change to the actual tag of the item? Or the script is just looking for things with that tag suffix?

Share this post


Link to post
Share on other sites

P2 is the righthand tag offset, i.e. the suffix length. It's the number of characters that GetStringRight will count back from the end of the string you feed it (the tag of the current item in the player's inventory in this case). Then with sEnd == sDLGTag you check that fragment against the suffix string that you feed into the String Param field (e.g. _scheme).

P3 is being used as a minimum string length check for the item's tag via GetStringLength(sTag) > nDLGInt3. It's probably not strictly necessary, but I figured it was worth adding as a safety cutout since I don't know what happens when you feed a string to GetStringRight that has fewer characters in total than the count you give it. I assume it returns a null string, but I'd have to test it.

You can try this version which will pipe some debug info to the message screen if you want to see what it is doing:

int StartingConditional() {
    
    object oPC = GetFirstPC();
    object oItem;
    string sTag;
    string sEnd;
    string sDLGTag = GetScriptStringParameter();
    int nDLGInt1 = GetScriptParameter(1);
    int nDLGInt2 = GetScriptParameter(2);
    int nDLGInt3 = GetScriptParameter(3);
    int nDLGInt4 = GetScriptParameter(4);
    int nDLGInt5 = GetScriptParameter(5);
    
    SendMessageToPC(oPC, "========== SCRIPT DEBUG ==========");
    
    if (GetHasFeat(nDLGInt1, oPC))
        {
            SendMessageToPC(oPC, "Player has feat ID " + IntToString(nDLGInt1));
            
            oItem = GetFirstItemInInventory(oPC);
            
            while (GetIsObjectValid(oItem))
                {
                    sTag = GetTag(oItem);
                    sEnd = GetStringRight(sTag, nDLGInt2);
                    
                    SendMessageToPC(oPC, "Current item tag = " + sTag);
                    SendMessageToPC(oPC, "Tag suffix = " + sEnd);
                    
                    if (GetStringLength(sTag) > nDLGInt3 && sEnd == sDLGTag)
                        {
                            SendMessageToPC(oPC, "Item tag contains suffix " + sDLGTag);
                            return TRUE;
                        }
                    
                    oItem = GetNextItemInInventory(oPC);
                }
        }
    
    return FALSE;
}

Note though that the message window buffer is pretty small, so if you have a gazillion items in your inventory you'll likely miss a chunk of it since you won't be able to scroll back far enough.

Share this post


Link to post
Share on other sites

Uhhgghh, sorry I never got back to you I fell asleep. Trying this now...

 

EDIT

Ok wait a minute. Now it's just giving me all options even if I don't have the schematic....

 

Edited by Kaidon Jorn

Share this post


Link to post
Share on other sites

Well I have a fix for it for now. I made a check script just for the feat.

int StartingConditional() {

    object oPC = GetFirstPC();
    if (GetHasFeat(245, oPC) == TRUE) {
        return 1;
    }
    else {
        return 0;
    }
}

So i'm just using the two starting conditionals for the individual schematic nodes

screenie.jpg.8b60465a99caad2cbc602f7d9ee88fbc.jpg

Was thinking maybe i should put c_have_feat at the beginning of the node so it wont even show up if you haven't gotten the feat. I still need to decide if it's going to be a pickable or granted feat.

But I really need to take a nap, I have to work tonight.

Share this post


Link to post
Share on other sites

OMG OMG OMG!

It compiled and it works! Woooo!

I just combined c_have_item with the c_have_feat that I made earlier today and it works.

int StartingConditional() {

    object oPC = GetFirstPC();
        int nQuantity = GetScriptParameter (1);
       int i;
        string sItem = GetScriptStringParameter();
    object oItem = GetItemPossessedBy (GetPartyLeader(), sItem);
    
    if(nQuantity == 0) nQuantity = 1;
    if ((GetHasFeat(245, oPC) == TRUE) && (GetIsObjectValid(oItem))) { 
        return 1;
    }
    else {
        return 0;
    }
}
    

Can you see any reason this wouldn't work? Because i left out the part about returning int stack size from the original c_have_item script at the bottom there....

int StartingConditional()
{
    int nQuantity = GetScriptParameter( 1 );
    int i;
    string sItem = GetScriptStringParameter();

    if(nQuantity == 0) nQuantity = 1;

    object oItem = GetItemPossessedBy (GetPartyLeader(),sItem);
    if (GetIsObjectValid(oItem))
    {
        int nStackSize = GetItemStackSize(oItem);
        return (nQuantity <= nStackSize);
    }
    return 0;
}

But why is the (int i;) there? What does that do?
        

Share this post


Link to post
Share on other sites

Arbitrary check in.


all sabers had their aurora light multipliers jacked up to 1.6 (single), 1.4 (double-bladed), and 1.8 (specials).

Short sabers I’ll probably do at 1.5 when I get around to redoing the default replacement hilts mod.

Learn Schematic is now a feat called Read Schematic…

Kaevee now has the Padawans Lightsaber. (No its not yellow bladed)

Crystal icons have been  massively consolidated and completly remade by SH, and me…

aaaand thats all i can think of right now....

 

 

 

 

 

Share this post


Link to post
Share on other sites
52 minutes ago, Kaidon Jorn said:

Crystal icons have been massively consolidated and completely remade by SH, and me…

Which ones did you do? I guess I must've missed out on seeing yours.

Share this post


Link to post
Share on other sites

Oh I just mean I mixed and matched what you made me.

As in, I might not have used something for what you labeled them as. Like your original default red I used for Darth Revan's instead, so I switched it for another one.

 

Share this post


Link to post
Share on other sites

Hey again,

Today I'm looking to rename Vash's silver bladed saber. But I haven't a clue as to what.

So I'm taking any and all suggestions (unless they're completely hokey) from you fine people.

What is this saber called?

vashsaber.jpg.95ee549aa59d22071b582a7e7deb90cc.jpg

I will probably reskin it one more time to get the directional (turned) steel texture smaller so it'll look better.  But there it is...

Share this post


Link to post
Share on other sites

My suggestions: Vashtere; Savary; Renevault; Vaah'ere; Vininard; Veer'zeen; Valor; Tribunal; Fenrehn; Valic; Lyzander; Venerate; Devouth.

Share this post


Link to post
Share on other sites
16 hours ago, jc2 said:

My suggestions: Vashtere; Savary; Renevault; Vaah'ere; Vininard; Veer'zeen; Valor; Tribunal; Fenrehn; Valic; Lyzander; Venerate; Devouth.

Whut?

I'm guessing a couple of those are maybe Mandalorian or somesuch?

I'm sure there’s explanations behind those names, though i have no idea what they would be…

I do like Perspective and maybe Venerate so far.

Let me get some more from you guys

 

Share this post


Link to post
Share on other sites

Aight I have to fix my 702KOR module.

I noticed that TSLRCM doesn't include a 702KOR.mod so I went about inserting my edited files into the _dlg.erf and _s.rim for the tslpatcher op, but then when I got there it literally booted me back out to the main load/save screen. 😩

So I went about making a 702KOR.mod to place in the modules folder....that fixed it yes, but is that how I should really do it? 

What would make inserting or replacing files in the dlg,erf and s.rim basically crash to main load screen? Missing files in one of those modules? 

Not sure what to do at this point.

Share this post


Link to post
Share on other sites

TSLRCM doesn't package the 702KOR module into a .MOD file because it will break cutscenes, though no one is able to figure out why exactly does that happen. 401DXN is another module that TSLRCM doesn't package into a MOD file.

I have made two mods (Darth Sion and Male Exile Mod and Lonna Vash Mod for TSLRCM) that affect the 702KOR and are installed by injecting or patching files in its _dlg.erf and _s.rim, and they work fine.

What files are you trying to inject into the 702KOR module?

Share this post


Link to post
Share on other sites

for dlg.erf

Replace0=mal_door.dlg
Replace1=termtort.dlg

for s.rim
Replace0=a_sion.ncs (destroys sion's default saber and equips mine)
Replace1=a_sion_battle_cs.ncs (destroys sion's default saber and equips mine)
Replace2=vash_container.utp (may take this out since I still need to make a M4-78 compatibility patch)
File0=a_darthsbrs.ncs (fired from mal_door.dlg, places revan and malak sabers in footlockers )
File1=a_spwn_ass.ncs (fired from  termtort.dlg)
File2=n_elite_ass.utc (.utc created with a_spwn_ass.ncs)

 

Share this post


Link to post
Share on other sites

Sounds like you injected the appropriate file types into the RIM and DLG.ERF. Which version of TSLPatcher are you using? In the earliest versions of my Darth Sion and Male Exile Mod, I had issues with injecting the relevant DLG file in 702KOR's DLG.ERF when I used the old 2007 version of TSLPatcher, but using Fair Strides' updated version solved it and I can directly inject or patch into 702KOR's RIM and DLG.ERF.

  • Thanks 1

Share this post


Link to post
Share on other sites

OOOOOHHHHHH.

Really?

Yeah I might have the super old version I dont know...going to look.

 

Ok, I have version 1.2.10.1 from 2007??

Share this post


Link to post
Share on other sites

Well....err...I'm going to wait for a bit because I still need to finish redoing all my icons. That should take about a week(?)

  • Like 1

Share this post


Link to post
Share on other sites

Don't use the TSLPatcher.exe from there or that will break some modules due to the filename bug (same bug ERFEdit had at one point). Use the exe included with K1CP instead. Although at a quick glance there shouldn't be any problem with 702KOR specifically.

Also note that if you want to compatibility for M4-78, they replace the Academy with a whole other module (703KOR I believe?), so that will require a separate patch.

  • Like 2

Share this post


Link to post
Share on other sites
15 hours ago, DarthParametric said:

Also note that if you want to compatibility for M4-78, they replace the Academy with a whole other module (703KOR I believe?), so that will require a separate patch.

Whuuuuuut?  So 702KOR becomes something else? Ok, well I'll deal with that when I get there.

Share this post


Link to post
Share on other sites

So I ended up just making 7 separate scripts for the party members to get their read schematic feat when they make their sabers, just like the pc. All I have left to do is remake icons again in 256, and finish the revan reborn saber texture. 

Then I should be releasing it fairly soon.

 

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.