Aller au contenu

Photo

Tags of pranks and gifts in Feast Day DLC?


  • Veuillez vous connecter pour répondre
4 réponses à ce sujet

#1
Karma

Karma
  • Members
  • 391 messages
Does anyone know the item tags for the Feast Day DLC gifts and pranks or where/how I could find out this information? I need the tags for proper gift handling in my mod. Unfortunately the files are encrypted or some such nuisance, so I can't open them to find out.

#2
TimelordDC

TimelordDC
  • Members
  • 923 messages
You could write a quick script to work as a PRCSCR or a console script to output the tags of all the items the player has and run it on a savegame where the player has all the gift items. Something like



object [] arInvItems = GetItemsInInventory(oCreature, GET_ITEMS_OPTION_ALL);
int nInvSize = GetArraySize(arInvItems);
int j;
for (j = 0; j < nInvSize; j++)
{
    PrintToLog("satans_karma Item tag is " + GetTag(arInvItems[j]));
}



The "satans_karma Item tag is " is just something to easily identify your output lines in the DragonAge_1 log file since it contains a lot of information.

#3
Craig Graff

Craig Graff
  • Members
  • 608 messages
These might help somewhat if you are willing to sort through them.
val_constants_h.nss
[dascript]
const string VAL_BALL_IN_PLAY = "VAL_BALL_IN_PLAY";
const string VAL_ALCOHOL_TRACKER = "VAL_ALCOHOL_TRACKER";
const string VAL_PUPPET_TRACKER = "VAL_PUPPET_TRACKER";
const string VAL_DOLL_TRACKER = "VAL_DOLL_TRACKER";
const string VAL_LUTE_TRACKER = "VAL_LUTE_TRACKER";
const string VAL_MEMORY_TRACKER = "VAL_MEMORY_TRACKER";
//const string VAL_CAT_TRACKER = "VAL_CAT_TRACKER";
const string VAL_ROCK_TRACKER = "VAL_ROCK_TRACKER";
const string VAL_ROCK_NAME = "VAL_ROCK_NAME";
const string VAL_GIFT_COUNTER = "VAL_GIFT_COUNTER";
const string VAL_PRANK_COUNTER = "VAL_PRANK_COUNTER";

const string VAL_ROCK_NAME_DEFAULT = "hjn197a872skksaeiil";


const int ACH_VAL_FESTIVE = 24;


const int VAL_PARTY_PROPERTIES_2DA  = 10500;
const int VAL_PARTY_DOG_SLOT        = 2;

const string VAL_GIFT_1                 = "Gift1";
const string VAL_GIFT_USEABLE_1         = "GiftUseable1";
//const string VAL_ANTI_GIFT_1            = "AntiGift1";
//const string VAL_ANTI_GIFT_USEABLE_1    = "AntiGiftUseable1";
const string VAL_EXTRA_GIFTS            = "ExtraGifts";

const string VAL_GIFT_PREFIX        = "val_im_gift";

const string VAL_IT_BALL            = "val_im_qck_ball";
const resource VAL_IM_BALL          = R"val_im_qck_ball.uti";
//const string VAL_IT_MUZZLE          = "val_im_spc_dog_col_shame";
//const resource VAL_IM_MUZZLE        = R"val_im_spc_dog_col_shame.uti";
const string VAL_IT_LUTE            = "val_im_qck_lute";
const resource VAL_IM_LUTE          = R"val_im_qck_lute.uti";
const string VAL_IT_DOLL            = "val_im_qck_doll";
const resource VAL_IM_DOLL          = R"val_im_qck_doll.uti";
const string VAL_IT_FLASK           = "val_im_qck_flask";
const resource VAL_IM_FLASK         = R"val_im_qck_flask.uti";
//const string VAL_IT_SOAP            = "val_im_qck_soap";
//const resource VAL_IM_SOAP          = R"val_im_qck_soap.uti";
const string VAL_IT_AMULET          = "val_im_qck_amulet";
const resource VAL_IM_AMULET        = R"val_im_qck_amulet.uti";
const string VAL_IT_BRANDY          = "val_im_qck_brandy";
const resource VAL_IM_BRANDY        = R"val_im_qck_brandy.uti";
//const string VAL_IT_STICK           = "val_im_wep_mag_sta_cat";
//const resource VAL_IM_STICK         = R"val_im_wep_mag_sta_cat.uti";
const string VAL_IT_ROCK            = "val_im_qck_rock";
const resource VAL_IM_ROCK          = R"val_im_qck_rock.uti";

const string VAL_IT_SHIELD          = "val_im_arm_shd_twr_mrc";

//const resource VAL_IM_CHASTITY_BELT = R"val_im_acc_blt_chs.uti";
//const string VAL_IT_CHASTITY_BELT   = "val_im_acc_blt_chs";

//const resource VAL_IM_CHASTITY_KEY  = R"val_im_chastity_key.uti";
//const resource VAL_IM_CHASTITY_GIFT = R"val_im_gift_chastity.uti";

const string VAL_IT_BALL_GIFT     = "val_im_gift_ball";
const string VAL_IT_HORSE_GIFT    = "val_im_gift_horse";
//const string VAL_IT_MUZZLE_GIFT   = "val_im_gift_muzzle";

const resource R_VAL_CR_CAT   = R"valcr_cat.utc";

const resource R_VAL_IP_ROCK  = R"val_ip_rock.utp";

const resource R_VAL_CONV_PRAYER = R"val_sten_prayer.dlg";



const string VAL_IP_ROCK = "val_ip_rock";


const int   VFX_VAL_BALL                        = 110506;


const int   ITEM_ABILITY_VAL_BALL               = 310500;
const int   ITEM_ABILITY_VAL_BRANDY             = 310501;
const int   ITEM_ABILITY_VAL_AMULET             = 310502;
//const int   ITEM_ABILITY_VAL_MUZZLE             = 310503;
//const int   ITEM_ABILITY_VAL_SOAP               = 310504;
const int   ITEM_ABILITY_VAL_DOLL               = 310505;
const int   ITEM_ABILITY_VAL_LUTE               = 310506;
const int   ITEM_ABILITY_VAL_ROCK               = 310507;
//const int   ITEM_ABILITY_VAL_KEY                = 310508;
//const int   ITEM_ABILITY_VAL_CAT                = 310509;
const int   ITEM_ABILITY_VAL_PUPPET             = 310510;
const int   ITEM_ABILITY_VAL_PRAYERS            = 310511;
const int   ITEM_ABILITY_VAL_FLASK              = 310512;
[/dascript]

val_module.nss
[dascript]
/////////////////////////////////////
// Valentines module events
/////////////////////////////////////

#include "log_h"
#include "utility_h"
#include "wrappers_h"
#include "events_h"
#include "global_objects_h"
#include "party_h"
#include "approval_h"
#include "val_constants_h"
#include "plt_valpt_offer"
#include "plt_valpt_offer_board"
#include "plt_valpt_gifts"
#include "sys_treasure_h"


int VAL_IsItemInPartyInventory(resource rItem)
{
    string sTag = ResourceToTag(rItem);
    object[] arPartyPool = GetPartyPoolList();
    int nSize = GetArraySize(arPartyPool);
    int n;

    int bFound = FALSE;

    for (n = 0; n < nSize && !bFound; n++)
    {
        if (CountItemsByTag(arPartyPool[n], sTag))
        {
            bFound = TRUE;
        }
    }
    return bFound;
}


void main()
{

    //--------------------------------------------------------------------------
    // Initialization
    //--------------------------------------------------------------------------

    // Load Event Variables
    event   evEvent     = GetCurrentEvent();
    int     nEventType  = GetEventType(evEvent);

    // Grab Player, set default event handled to false
    object  oPC           = GetHero();
    int     bEventHandled = FALSE;

    Log_Events(ToString(GetEventType(evEvent)),evEvent);




    switch(nEventType)
    {
        case EVENT_TYPE_MODULE_HANDLE_GIFT:
        {
            object oItem = GetEventObject(evEvent, 1);
            int nValApproval = GetLocalInt(oItem, APP_ITEM_MOTIVATION); // repurposing this local int to indicate approval change

            if (abs(nValApproval / 1000) == 1) //only values between +-1000 through +-1999 are checked
            {
                object oFollower = GetEventObject(evEvent, 0);
                string sFollower = GetTag(oFollower);
                int nFollowerIndex = Approval_GetFollowerIndex(oFollower);
                int nApprovalChange = GetEventInteger(evEvent, 0);
                int nSoundSet = -1;

                nValApproval %= 1000;

                if (nValApproval >= 200) //handle extreme (specific) gifts
                {
                    int nItemIndex = abs(nValApproval % 200);

                    if (nFollowerIndex != VAL_PARTY_DOG_SLOT)
                    {
                        Approval_ChangeApproval(nFollowerIndex, -1 * nApprovalChange);  //undo main game's approval change
                    }

                    if (nItemIndex == nFollowerIndex) // if item is for this follower, give useable item if it exists
                    {
                        /*   removing achievement
                        if(!WR_GetPlotFlag(PLT_VALPT_GIFTS, nItemIndex)
                            && !GetHasAchievementByID(ACH_VAL_FESTIVE))
                        {
                            object oModule = GetModule();
                            int nPrankCount = GetLocalInt(oModule, VAL_PRANK_COUNTER);
                            int nGiftCount = GetLocalInt(oModule, VAL_GIFT_COUNTER);
                            int nCount;

                            nGiftCount++;
                            SetLocalInt(oModule, VAL_GIFT_COUNTER, nGiftCount);

                            nCount = nPrankCount + nGiftCount;
                            if (nCount >= 9)
                            {
                                WR_UnlockAchievement(ACH_VAL_FESTIVE, FALSE, TRUE);
                            }
                            WR_SetPlotFlag(PLT_VALPT_GIFTS, nItemIndex, TRUE, FALSE);
                        } */

                        resource rUseable = GetM2DAResource(VAL_PARTY_PROPERTIES_2DA, VAL_GIFT_USEABLE_1, nFollowerIndex);
                        nSoundSet = SS_GIFT_ECSTATIC;
                        if (rUseable != INVALID_RESOURCE
                            && !VAL_IsItemInPartyInventory(rUseable))
                        {
                            object oUseable = CreateItemOnObject(rUseable, GetPartyLeader(), 1, "", TRUE);
                            TS_ScaleItem(oUseable, GetLevel(GetHero()));
                        }
                        if (nFollowerIndex == VAL_PARTY_DOG_SLOT)
                        {
                            //working around follower bonus bug
                            Approval_ChangeApproval(nFollowerIndex, -50);
                            Approval_ChangeApproval(nFollowerIndex, 30);
                            Approval_ChangeApproval(nFollowerIndex, 20);
                        }
                        else
                        {
                            int nCurrentApproval = Approval_GetApproval(nFollowerIndex);
                            if (nCurrentApproval > 40)    //working around follower bonus bug
                            {
                                Approval_ChangeApproval(nFollowerIndex, 85 - nCurrentApproval);
                                nCurrentApproval = Approval_GetApproval(nFollowerIndex);
                                Approval_ChangeApproval(nFollowerIndex, 100 - nCurrentApproval);

                                if(!Approval_GetFriendlyEligible(nFollowerIndex))
                                {
                                    int nStringRef = GetM2DAInt(TABLE_APPROVAL_NORMAL_RANGES, "StringRef", APP_RANGE_WARM);
                                    SetFollowerApprovalDescription(oFollower, nStringRef);
                                }
                            }
                            else
                            {
                                Approval_ChangeApproval(nFollowerIndex, 50);
                            }
                        }
                    }
                    else // refund if not for this follower
                    {

                        resource rGift = GetM2DAResource(VAL_PARTY_PROPERTIES_2DA, VAL_GIFT_1, nItemIndex);
                        nSoundSet = SS_BAD_IDEA;
                        CreateItemOnObject(rGift, GetPartyLeader(), 1, "", TRUE);
                    }
                }
                else // handle general gifts
                {

                    if (nFollowerIndex != VAL_PARTY_DOG_SLOT && nValApproval -200)
                    {
                        nSoundSet = SS_GIFT_POSITIVE;
                        Approval_ChangeApproval(nFollowerIndex, -1 * nApprovalChange);  //undo main game's approval change
                        Approval_ChangeApproval(nFollowerIndex, nValApproval);
                    }

                }
                //StopSound("ss_morrigan/vo/298799_m");
                if(nSoundSet != -1 )
                    PlaySoundSet(oFollower, nSoundSet, 1.0);
            }


            break;
        }

        case EVENT_TYPE_UNIQUE_POWER:
        {
            //------------------------------------------------------------------
            // EVENT_TYPE_UNIQUE_POWER
            //------------------------------------------------------------------
            // Sent by: Scripting
            // When:    A unique power for an item is used
            //------------------------------------------------------------------

            int         nAbility;
            string      sItemTag;
            object      oItem;
            object      oCaster;
            object      oTarget;

            //------------------------------------------------------------------

            nAbility = GetEventInteger(evEvent,0);
            oItem    = GetEventObject(evEvent, 0);
            oCaster  = GetEventObject(evEvent, 1);
            oTarget  = GetEventObject(evEvent, 2);
            sItemTag = GetTag(oItem);



            break;


        }
        case EVENT_TYPE_CAMPAIGN_ITEM_ACQUIRED:
        {
             // EVENT_TYPE_CAMPAIGN_ITEM_ACQUIRED
            //------------------------------------------------------------------
            // Sent by: Scripting
            // When:    Item is added to inventory that has
            //          ITEM_SEND_ACQUIRED_EVENT set to TRUE
            //------------------------------------------------------------------

            string      sItemTag;
            object      oItem;
            object      oAcquirer;

            //------------------------------------------------------------------

            oAcquirer = GetEventCreator(evEvent);
            oItem     = GetEventObject(evEvent, 0);
            sItemTag  = GetTag(oItem);

            int nValApproval = GetLocalInt(oItem, APP_ITEM_MOTIVATION); // repurposing this local int to indicate approval change

            if (nValApproval / 1000 == 1
                && FindSubString(sItemTag, VAL_GIFT_PREFIX) != -1)
            {
                if (!WR_GetPlotFlag(PLT_VALPT_OFFER, VAL_OFFER_ITEM_PURCHASED))
                {
                    WR_SetPlotFlag(PLT_VALPT_OFFER, VAL_OFFER_ITEM_PURCHASED, TRUE, FALSE);
                    WR_SetPlotFlag(PLT_VALPT_OFFER_BOARD, VAL_OFFER_BOARD_TEXT, FALSE, FALSE);
                }
            }

            if (sItemTag == VAL_IT_ROCK)
            {
                if (!WR_GetPlotFlag(PLT_VALPT_GIFTS, VAL_GIFT_ROCK_NAMED))
                {
                    ShowPopup(420566, 2, oItem, TRUE, 420565);
                    WR_SetPlotFlag(PLT_VALPT_GIFTS, VAL_GIFT_ROCK_NAMED, TRUE);
                }
            }

            break;
        }
        case EVENT_TYPE_POPUP_RESULT:
        {
            object oOwner = GetEventObject(evEvent, 0);      // owner of popup
            int nPopupID  = GetEventInteger(evEvent, 0);     // popup ID
            int nButton   = GetEventInteger(evEvent, 1);     // button result (1 - 4)
            string sName  = GetEventString(evEvent,0);

            switch (nPopupID)
            {
                case 2:     // Pet Rock Name added
                {
                    if (GetTag(oOwner) == VAL_IT_ROCK)
                    {
                        SetLocalString(GetModule(), VAL_ROCK_NAME, sName);
                    }
                    break;
                }
            }
            break;
        }




    }
}

[/dascript]

Modifié par Craig Graff, 14 septembre 2010 - 07:13 .


#4
Craig Graff

Craig Graff
  • Members
  • 608 messages
and this:

vala_module.nss
[dascript]
/////////////////////////////////////
// Valentines module events
/////////////////////////////////////

#include "log_h"
#include "utility_h"
#include "wrappers_h"
#include "events_h"
#include "global_objects_h"
#include "party_h"
#include "approval_h"
#include "vala_constants_h"
#include "plt_valapt_offer"
#include "plt_valapt_offer_board"
#include "plt_valapt_gifts"
#include "sys_treasure_h"


int VAL_IsItemInPartyInventory(resource rItem)
{
    string sTag = ResourceToTag(rItem);
    object[] arPartyPool = GetPartyPoolList();
    int nSize = GetArraySize(arPartyPool);
    int n;

    int bFound = FALSE;

    for (n = 0; n < nSize && !bFound; n++)
    {
        if (CountItemsByTag(arPartyPool[n], sTag))
        {
            bFound = TRUE;
        }
    }
    return bFound;
}


void main()
{

    //--------------------------------------------------------------------------
    // Initialization
    //--------------------------------------------------------------------------

    // Load Event Variables
    event   evEvent     = GetCurrentEvent();
    int     nEventType  = GetEventType(evEvent);

    // Grab Player, set default event handled to false
    object  oPC           = GetHero();
    int     bEventHandled = FALSE;

    switch(nEventType)
    {
        case EVENT_TYPE_MODULE_HANDLE_GIFT:
        {
            object oItem = GetEventObject(evEvent, 1);
            int nValApproval = GetLocalInt(oItem, APP_ITEM_MOTIVATION); // repurposing this local int to indicate approval change

            if (abs(nValApproval / 1000) == 1) //only values between +-1000 through +-1999 are checked
            {
                object oFollower = GetEventObject(evEvent, 0);
                string sFollower = GetTag(oFollower);
                int nFollowerIndex = Approval_GetFollowerIndex(oFollower);
                int nApprovalChange = GetEventInteger(evEvent, 0);
                int nSoundSet = -1;

                nValApproval %= 1000;

                if (nValApproval <= -200) //handle extreme (specific) gifts
                {
                    int nItemIndex = abs(nValApproval % 200);

                    if (nFollowerIndex != VAL_PARTY_DOG_SLOT)
                    {
                        Approval_ChangeApproval(nFollowerIndex, -1 * nApprovalChange);  //undo main game's approval change
                    }

                    if (nItemIndex == nFollowerIndex) // if item is for this follower, give useable item if it exists
                    {
                        /* removed achievement
                        if(!WR_GetPlotFlag(PLT_VALAPT_GIFTS, nItemIndex)
                            && !GetHasAchievementByID(ACH_VAL_FESTIVE))
                        {
                            object oModule = GetModule();
                            int nPrankCount = GetLocalInt(oModule, VAL_PRANK_COUNTER);
                            int nGiftCount = GetLocalInt(oModule, VAL_GIFT_COUNTER);
                            int nCount;

                            nPrankCount++;
                            SetLocalInt(oModule, VAL_PRANK_COUNTER, nPrankCount);
                            nCount = nPrankCount + nGiftCount;
                            if (nCount >= 9)
                            {
                                WR_UnlockAchievement(ACH_VAL_FESTIVE, FALSE, TRUE);
                            }
                            WR_SetPlotFlag(PLT_VALAPT_GIFTS, nItemIndex, TRUE, FALSE);
                        }  */

                        resource rUseable = GetM2DAResource(VALA_PARTY_PROPERTIES_2DA, VAL_ANTI_GIFT_USEABLE_1, nFollowerIndex);
                        nSoundSet = SS_GIFT_NEGATIVE;

                        if (rUseable != INVALID_RESOURCE
                            && !VAL_IsItemInPartyInventory(rUseable))
                        {
                            object oUseable = CreateItemOnObject(rUseable, GetPartyLeader(), 1, "", TRUE);
                            TS_ScaleItem(oUseable, GetLevel(GetHero()));
                        }
                        if (nFollowerIndex != VAL_PARTY_DOG_SLOT)
                        {
                            Approval_ChangeApproval(nFollowerIndex, -50);
                            int nCurrentApproval = Approval_GetApproval(nFollowerIndex);
                            int nStringRef;

                            if(nCurrentApproval >= GetM2DAInt(TABLE_APPROVAL_NORMAL_RANGES, "Range", APP_RANGE_HOSTILE))
                            {
                                nStringRef = GetM2DAInt(TABLE_APPROVAL_NORMAL_RANGES, "StringRef", APP_RANGE_NEUTRAL);
                            }
                            else if(nCurrentApproval >= GetM2DAInt(TABLE_APPROVAL_NORMAL_RANGES, "Range", APP_RANGE_CRISIS))
                            {
                                nStringRef = GetM2DAInt(TABLE_APPROVAL_NORMAL_RANGES, "StringRef", APP_RANGE_HOSTILE);
                            }

                            SetFollowerApprovalDescription(oFollower, nStringRef);
                        }
                    }
                    else // refund if not for this follower
                    {
                        resource rGift = GetM2DAResource(VALA_PARTY_PROPERTIES_2DA, VAL_ANTI_GIFT_1, nItemIndex);
                        nSoundSet = SS_BAD_IDEA;
                        CreateItemOnObject(rGift, GetPartyLeader(), 1, "", TRUE);
                    }
                }
                else // handle general gifts
                {

                    if (nFollowerIndex != VAL_PARTY_DOG_SLOT && nValApproval > 0 && nValApproval < 200)
                    {
                        nSoundSet = SS_GIFT_NEUTRAL;
                        Approval_ChangeApproval(nFollowerIndex, -1 * nApprovalChange);  //undo main game's approval change
                        Approval_ChangeApproval(nFollowerIndex, nValApproval);
                    }

                }
                //StopSound("ss_morrigan/vo/298799_m");
                if (nSoundSet != -1)
                    PlaySoundSet(oFollower, nSoundSet, 1.0);
            }

            break;
        }

        case EVENT_TYPE_UNIQUE_POWER:
        {
            //------------------------------------------------------------------
            // EVENT_TYPE_UNIQUE_POWER
            //------------------------------------------------------------------
            // Sent by: Scripting
            // When:    A unique power for an item is used
            //------------------------------------------------------------------

            int         nAbility;
            string      sItemTag;
            object      oItem;
            object      oCaster;
            object      oTarget;

            //------------------------------------------------------------------

            nAbility = GetEventInteger(evEvent,0);
            oItem    = GetEventObject(evEvent, 0);
            oCaster  = GetEventObject(evEvent, 1);
            oTarget  = GetEventObject(evEvent, 2);
            sItemTag = GetTag(oItem);



            break;


        }
        case EVENT_TYPE_CAMPAIGN_ITEM_ACQUIRED:
        {
             // EVENT_TYPE_CAMPAIGN_ITEM_ACQUIRED
            //------------------------------------------------------------------
            // Sent by: Scripting
            // When:    Item is added to inventory that has
            //          ITEM_SEND_ACQUIRED_EVENT set to TRUE
            //------------------------------------------------------------------

            string      sItemTag;
            object      oItem;
            object      oAcquirer;

            //------------------------------------------------------------------

            oAcquirer = GetEventCreator(evEvent);
            oItem     = GetEventObject(evEvent, 0);
            sItemTag  = GetTag(oItem);

            int nValApproval = GetLocalInt(oItem, APP_ITEM_MOTIVATION); // repurposing this local int to indicate approval change


            if (nValApproval / 1000 == -1
                && FindSubString(sItemTag, VAL_GIFT_PREFIX) != -1)
            {
                if (!WR_GetPlotFlag(PLT_VALAPT_OFFER, VALA_OFFER_ITEM_PURCHASED))
                {
                    WR_SetPlotFlag(PLT_VALAPT_OFFER, VALA_OFFER_ITEM_PURCHASED, TRUE, FALSE);
                    WR_SetPlotFlag(PLT_VALAPT_OFFER_BOARD, VALA_OFFER_BOARD_TEXT, FALSE, FALSE);
                }
            }
            if (sItemTag == VAL_IT_CHASTITY_BELT)
            {
                object oZevran = Party_GetFollowerByTag(GEN_FL_ZEVRAN);
                object oBelt = GetItemInEquipSlot(INVENTORY_SLOT_BELT, oZevran);
                UnequipItem(oZevran, oBelt);
                oBelt = oItem;
                SetItemIrremovable(oBelt, TRUE);
                EquipItem(oZevran, oBelt);
                CreateItemOnObject(VAL_IM_CHASTITY_KEY, GetPartyLeader(), 1, "", TRUE);
            }
            else if (sItemTag == VAL_IT_MUZZLE)
            {
                object oDog = Party_GetFollowerByTag(GEN_FL_DOG);
                command cLayDown = CommandPlayAnimation(3081);
                object oCollar = GetItemInEquipSlot(INVENTORY_SLOT_DOG_COLLAR, oDog);

                UnequipItem(oDog, oCollar);
                EquipItem(oDog, oItem);

                WR_ClearAllCommands(oDog, TRUE);
                PlaySound(oDog, "glo_dog/dog/ss/ss_dog_whimper");
                WR_AddCommand(oDog, cLayDown);

            }
            else if (sItemTag == VAL_IT_PIGEON)
            {
                object oShale = Party_GetFollowerByTag(GEN_FL_SHALE);
                object oArmor = GetItemInEquipSlot(INVENTORY_SLOT_SHALE_CHEST, oShale);

                UnequipItem(oShale, oArmor);
                EquipItem(oShale, oItem);
            }

            break;
        }
    }
}


[/dascript]

Modifié par Craig Graff, 14 septembre 2010 - 07:15 .


#5
Karma

Karma
  • Members
  • 391 messages
Thank you both for your help. I got the gift approval to work properly now with the DLC gifts.

Just one lingering question... When I give the original companions the onion or the coal, they play the SS_GIFT_ECSTATIC (or maybe the SS_GIFT_POSITIVE) sound. This happens even when I turn off my mod. When I look at my module script and the original sp_module_item_acq script, I see that when the approval is less than 0, it should play SS_GIFT_NEGATIVE. Instead it seems to be resorting to the default soundset SS_GIFT_ECSTATIC. What's going on?

Modifié par satans_karma, 15 septembre 2010 - 02:41 .