Skip to content

Change appearance of helmet/armor/weapon/etc In-Game

Hi All,

Is it possible to change the model/appearance of an item in-game through a dialogue or some other mechanism? Basically want to use "unique ability" on the helmet (or other item) to bring up a dialogue with 3-4 model/appearance choices for more player customization.

Can anyone point me in the right direction?

Thanks!

Comments

  • jpsweeney94jpsweeney94 Member Posts: 93
    Tekidek wrote: »

    Awesome thanks! Will look into it in a bit. Hoping I can just pull certain pieces out of it? Like just the ability to change models and dye the armor. Not all that other stuff
  • jpsweeney94jpsweeney94 Member Posts: 93
    Ah yes, good documentation and what not for customizing. Thanks again!
  • jpsweeney94jpsweeney94 Member Posts: 93
    Getting a "you can not use crafting skills at this time" when trying to access craft menu... Guessing somewhere in the module it's disabled. Anyone know where i should look to get this enabled again?
  • TekidekTekidek Member Posts: 6
    Getting a "you can not use crafting skills at this time" when trying to access craft menu... Guessing somewhere in the module it's disabled. Anyone know where i should look to get this enabled again?

    What module are you trying to play?
  • KamirynKamiryn Member Posts: 74
    In the CCOH and in the original Bioware crafting dialog you get this when
    int StartingConditional()
    {
        int iResult;
        object oPC = GetPCSpeaker();
        int nEff = GetHasEffect(EFFECT_TYPE_POLYMORPH,oPC);
        nEff = nEff || GetHasEffect(EFFECT_TYPE_PETRIFY,oPC);
        nEff = nEff || GetHasEffect(EFFECT_TYPE_STUNNED,oPC);
        nEff = nEff || GetHasEffect(EFFECT_TYPE_DAZED,oPC);
        nEff = nEff || GetHasEffect(EFFECT_TYPE_SLEEP,oPC);
        nEff = nEff || GetHasEffect(EFFECT_TYPE_FRIGHTENED,oPC);
        nEff = nEff || GetHasEffect(EFFECT_TYPE_CHARMED,oPC);
        nEff = nEff || GetHasEffect(EFFECT_TYPE_DOMINATED,oPC);
        nEff = nEff || GetHasEffect(EFFECT_TYPE_TURNED,oPC);
        nEff = nEff || GetHasEffect(EFFECT_TYPE_TIMESTOP,oPC);
        nEff = nEff || GetHasEffect(EFFECT_TYPE_PARALYZE,oPC);
        nEff = nEff || GetHasEffect(EFFECT_TYPE_IMPROVEDINVISIBILITY,oPC);
        nEff = nEff || GetHasEffect(EFFECT_TYPE_INVISIBILITY,oPC);
        nEff = nEff || GetHasEffect(EFFECT_TYPE_ETHEREAL,oPC);
        nEff = nEff || GetHasEffect(EFFECT_TYPE_ENTANGLE,oPC);
        nEff = nEff || GetHasEffect(EFFECT_TYPE_DARKNESS,oPC);
        nEff = nEff || GetHasEffect(EFFECT_TYPE_DOMINATED,oPC);
        nEff = nEff || GetHasEffect(EFFECT_TYPE_CUTSCENE_PARALYZE,oPC);
        nEff = nEff || GetHasEffect(EFFECT_TYPE_SWARM,oPC);
        nEff = nEff || GetHasEffect(EFFECT_TYPE_BLINDNESS,oPC);
        nEff = nEff || GetIsInCombat(oPC);
        nEff = nEff || GetLocalInt(oPC, "X2_L_DO_NOT_ALLOW_CRAFTSKILLS");
        nEff = nEff || GetLocalInt(GetArea(oPC), "X2_L_DO_NOT_ALLOW_CRAFTSKILLS");
        nEff = nEff || GetLocalInt(GetModule(), "X2_L_DO_NOT_ALLOW_CRAFTSKILLS");
        iResult = (nEff == TRUE);
        return iResult;
    }
    

    returns TRUE. So either you're polymorphed or affected by one of the spells or one of the X2_L_DO_NOT_ALLOW_CRAFTSKILLS variables is TRUE.
  • jpsweeney94jpsweeney94 Member Posts: 93
    Tekidek wrote: »
    Getting a "you can not use crafting skills at this time" when trying to access craft menu... Guessing somewhere in the module it's disabled. Anyone know where i should look to get this enabled again?

    What module are you trying to play?

    PW i host

    Kamiryn wrote: »
    In the CCOH and in the original Bioware crafting dialog you get this when
    int StartingConditional()
    {
        int iResult;
        object oPC = GetPCSpeaker();
        int nEff = GetHasEffect(EFFECT_TYPE_POLYMORPH,oPC);
        nEff = nEff || GetHasEffect(EFFECT_TYPE_PETRIFY,oPC);
        nEff = nEff || GetHasEffect(EFFECT_TYPE_STUNNED,oPC);
        nEff = nEff || GetHasEffect(EFFECT_TYPE_DAZED,oPC);
        nEff = nEff || GetHasEffect(EFFECT_TYPE_SLEEP,oPC);
        nEff = nEff || GetHasEffect(EFFECT_TYPE_FRIGHTENED,oPC);
        nEff = nEff || GetHasEffect(EFFECT_TYPE_CHARMED,oPC);
        nEff = nEff || GetHasEffect(EFFECT_TYPE_DOMINATED,oPC);
        nEff = nEff || GetHasEffect(EFFECT_TYPE_TURNED,oPC);
        nEff = nEff || GetHasEffect(EFFECT_TYPE_TIMESTOP,oPC);
        nEff = nEff || GetHasEffect(EFFECT_TYPE_PARALYZE,oPC);
        nEff = nEff || GetHasEffect(EFFECT_TYPE_IMPROVEDINVISIBILITY,oPC);
        nEff = nEff || GetHasEffect(EFFECT_TYPE_INVISIBILITY,oPC);
        nEff = nEff || GetHasEffect(EFFECT_TYPE_ETHEREAL,oPC);
        nEff = nEff || GetHasEffect(EFFECT_TYPE_ENTANGLE,oPC);
        nEff = nEff || GetHasEffect(EFFECT_TYPE_DARKNESS,oPC);
        nEff = nEff || GetHasEffect(EFFECT_TYPE_DOMINATED,oPC);
        nEff = nEff || GetHasEffect(EFFECT_TYPE_CUTSCENE_PARALYZE,oPC);
        nEff = nEff || GetHasEffect(EFFECT_TYPE_SWARM,oPC);
        nEff = nEff || GetHasEffect(EFFECT_TYPE_BLINDNESS,oPC);
        nEff = nEff || GetIsInCombat(oPC);
        nEff = nEff || GetLocalInt(oPC, "X2_L_DO_NOT_ALLOW_CRAFTSKILLS");
        nEff = nEff || GetLocalInt(GetArea(oPC), "X2_L_DO_NOT_ALLOW_CRAFTSKILLS");
        nEff = nEff || GetLocalInt(GetModule(), "X2_L_DO_NOT_ALLOW_CRAFTSKILLS");
        iResult = (nEff == TRUE);
        return iResult;
    }
    

    returns TRUE. So either you're polymorphed or affected by one of the spells or one of the X2_L_DO_NOT_ALLOW_CRAFTSKILLS variables is TRUE.

    X2_L_DO_NOT_ALLOW_CRAFTSKILLS was my thought as well. I did find an instance in the onmoduleload script but i set it to false and still the same thing. Where else might this script/switch live? When searching in all script files in the mod "X2_L_DO_NOT_ALLOW_CRAFTSKILLS" only the one instance pops up.
  • KamirynKamiryn Member Posts: 74
    edited February 2020
    First I would add some debug messages to the x2_im_polymorphd script to see what's really going on:
        SendMessageToPC(oPC, "GetLocalInt(oPC, 'X2_L_DO_NOT_ALLOW_CRAFTSKILLS')="+IntToString(GetLocalInt(oPC, "X2_L_DO_NOT_ALLOW_CRAFTSKILLS")));
        SendMessageToPC(oPC, "GetLocalInt(GetArea(oPC), 'X2_L_DO_NOT_ALLOW_CRAFTSKILLS')="+IntToString(GetLocalInt(GetArea(oPC), "X2_L_DO_NOT_ALLOW_CRAFTSKILLS")));
        SendMessageToPC(oPC, "GetLocalInt(GetModule(), 'X2_L_DO_NOT_ALLOW_CRAFTSKILLS')="+IntToString(GetLocalInt(GetModule(), "X2_L_DO_NOT_ALLOW_CRAFTSKILLS")));
    

    Put the compiled script x2_im_polymorphd.ncs in the development folder. Perhaps this gives you some more information.

    Also the CCOH version on steam is outdated (in case you're using that version). Better use the version from neverwintervault (https://neverwintervault.org/project/nwn1/hakpak/original-hakpak/customize-character-override-hak-ccoh).
  • jpsweeney94jpsweeney94 Member Posts: 93
    edited February 2020
    @Kamiryn Hmm it's working all of the sudden. I must have messed something up :P thanks for the help!

    Side note: love that horses are so easy with this. Is there some way to make speed faster on the horse? and make it so you dismount entering indoor areas?
    Post edited by jpsweeney94 on
  • jpsweeney94jpsweeney94 Member Posts: 93
    Also.. For installing on the PW for all players to use... Is all that's needed the hak hooked up inside the Module properties? Or do other files need to be included?
  • KamirynKamiryn Member Posts: 74
    edited February 2020
    Only what's in the hak (or in the override) is required. Also I think only the server needs the files.

    Horses are easy - when there are no horses and all the other more complex parts are left out :D . At the moment it's really only the visuals and I never had the intention to improve this into a real mount system. However I might add support for user-made OnMount, OnDismount, OnMounted, OnDismounted scripts so the user can allow/disallow mounting and provide bonuses or penalties (speed, skills,...).

    Dismounting when entering indoor areas would always be up to the module builder to do. The required function is in mk_inc_horse.nss (included in the erf file).
Sign In or Register to comment.