Equip a book for READ animation

The READ animation looks good, but how do you make the PC or NPC hold a book rather than just look at his/her hand? :slight_smile:
I am doing this in a conversation node, if relevant.

1 Like

I remember doing this in my third module. I think Rashi made a model of a parchment or paper the character holds in his/her hand. Let me check…

EDIT: Here’s the script I use on the node when the person is reading:

void Loop(object oTarget) 
{
	if (!GetLocalInt(oTarget, "stop_animation"))
	{
    // read F/X
    PlayCustomAnimation(OBJECT_SELF, "read", 0);
    DelayCommand(6.0f, Loop(oTarget));
	}
}

void main(string sTarget) 
{
    
	object oTarget = GetObjectByTag(sTarget);
	// F/X to display
    string sVFX = "fx_handr_letter.sef";
    // Assign VFX to spell id 100 (light spell)
    effect eDrink = SetEffectSpellId(EffectNWN2SpecialEffectFile(sVFX), 100);
    SetWeaponVisibility(OBJECT_SELF, 0, 0);//Make weapons and shields invisible
    ApplyEffectToObject(DURATION_TYPE_PERMANENT, eDrink, OBJECT_SELF);
    SetLocalInt(oTarget, "stop_animation", FALSE);
	
    DelayCommand(6.0f, Loop(oTarget));
}

fx_handr_letter.zip (540 Bytes)

Not sure if there’s anything more required…Just unpack the sef file and put it in a hak or in the override folder.

EDIT2: I think this might be needed too. Can’t remember quite how I did this in my module back then but…well, here’s the letter that @Rashi made for me back then. I hope/think she won’t mind me sharing it:
Letter.zip (261.4 KB)

4 Likes

Thank you so much. I’ll try it out.

I found the thread and post where Rashi posted this, so it can be used by everyone. You can see how it looks like too:

As you see it’s not a book but some paper, but at least it’s better than nothing, right?

EDIT: Actually, when looking at the nexus page where I found the sef animation there’s a book in the character’s hand, so maybe you don’t need the letter from me at all, just do as they say on this page:

So use the fx_handr_book instead in your script like this:

void Loop(object oTarget) 
{
	if (!GetLocalInt(oTarget, "stop_animation"))
	{
    // read F/X
    PlayCustomAnimation(OBJECT_SELF, "read", 0);
    DelayCommand(6.0f, Loop(oTarget));
	}
}

void main(string sTarget) 
{
    
	object oTarget = GetObjectByTag(sTarget);
	// F/X to display
    string sVFX = "fx_handr_book.sef";
    // Assign VFX to spell id 100 (light spell)
    effect eDrink = SetEffectSpellId(EffectNWN2SpecialEffectFile(sVFX), 100);
    SetWeaponVisibility(OBJECT_SELF, 0, 0);//Make weapons and shields invisible
    ApplyEffectToObject(DURATION_TYPE_PERMANENT, eDrink, OBJECT_SELF);
    SetLocalInt(oTarget, "stop_animation", FALSE);
	
    DelayCommand(6.0f, Loop(oTarget));
}

And of course download the HandyVFX file from the Nexus.

3 Likes