48 lines
1.9 KiB
Plaintext
48 lines
1.9 KiB
Plaintext
//:://////////////////////////////////////////////
|
|
//:: change the PC clone using letoscript
|
|
//:: prc_ccc_app_lspw.nss
|
|
//:://////////////////////////////////////////////
|
|
/** @file
|
|
Destroys the existing PC clone and replaces it
|
|
with a new one, modified by letoscript.
|
|
|
|
Note: the letoscript modifications are done elsewhere
|
|
this script simply uses the modified object
|
|
|
|
@author Primogenitor (commented by fluffyamoeba)
|
|
@date Created - 2006.10.10
|
|
*/
|
|
//:://////////////////////////////////////////////
|
|
//:://////////////////////////////////////////////
|
|
|
|
#include "prc_alterations"
|
|
#include "ccc_inc_misc"
|
|
|
|
void main()
|
|
{
|
|
string sThreadID = GetLocalString(GetModule(), "LetoResultThread");
|
|
object oPC = GetLocalObject(GetModule(), "PCForThread"+sThreadID);
|
|
object oClone = GetLocalObject(oPC, "Clone");
|
|
object oNewClone = GetLocalObject(GetModule(), "LetoResultObject");
|
|
//for debugging
|
|
PrintString("oPC is "+GetName(oPC)+" "+ObjectToString(oPC));
|
|
PrintString("oClone is "+GetName(oClone)+" "+ObjectToString(oClone));
|
|
PrintString("oNewClone is "+GetName(oNewClone)+" "+ObjectToString(oNewClone));
|
|
//destroy the old clone
|
|
AssignCommand(oClone, SetIsDestroyable(TRUE));
|
|
DestroyObject(oClone);
|
|
oClone = oNewClone;
|
|
//reset the locals linking master and clone
|
|
SetLocalObject(oPC, "Clone", oClone);
|
|
SetLocalObject(oClone, "Master", oPC);
|
|
//restart the pseudohb checking that the master is still logged on
|
|
AssignCommand(oClone, CloneMasterCheck());
|
|
//add the new clone to the PC so that you can see there portrait
|
|
ChangeToStandardFaction(oClone, STANDARD_FACTION_MERCHANT);
|
|
//apply a vfx to cover the swap
|
|
effect eVis = EffectVisualEffect(VFX_FNF_SUMMON_MONSTER_1);
|
|
ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eVis, GetLocation(oPC));
|
|
//stop the waiting
|
|
DeleteLocalInt(oPC, "DynConv_Waiting");
|
|
}
|