Hi Lance,
Here are the lines you need:
(get_weapon) is the active part, (weapon) is the main body, which you'd probably need to place first.
Back in a few minutes, time to test your script. 
Hi Thierry,
Thanks for these lines info.
I tested the script on these myself and discovered the "facing setting" is obviously off for these models by 180 degrees by the looks of it.
i.e. They work, except that the weapons drop behind instead of in front.
I can adjust the code easily enough to accommodate these two statues, but is it a case that your "model" information needs correcting? ... i.e. Is there a "North" setting that models should have that the script functions work with? If this is the case, then it may be that you simply need to update this "North" info in your model information ... if you see what I mean?
EDIT: Or, the original statue needs changing to meet these ones? And then I can write script accordingly.EDIT 2: Actually, I see that the model info is not standard due to the whereabouts the objects fall. Therefore, it would be easier to simply add "tweaks" to the code according to the statue it is operating on. I will play around with some tweaks and let you have the new script based on the models as they are.
EDIT 3: WHAT ABOUT THE SHIELD?

Perhaps I can look at adding a shield via code too ....
I'll come back to you. (I will assume just a basic "large" shield for now.) OK, I added a basic large round shield to drop as a placeable item for those with the item placeable add-on. NOTE: It is always the same shield for this code, but is easy enough to make different by adding a second variable holder to your statue placeable button and refer to that ResRes instead if need be.
And all works when placeables scaled too!Cheers,
Lance.
EDIT:
DONE IT! HERE IS THE TWEAK CODE PART:-
if (sPlaceResRef != "")
{
// SPECIFIC STATUE TWEAKS
string sResRef = GetResRef(OBJECT_SELF);
float fDistanceTweak = 3.0; float fAngleTweak = 0.0; float fAngle2Tweak = 90.0; float fScaleTweak = 1.0;
// SWORD STATUE TWEAKS
if(sResRef == "plc_statue_swd"){fDistanceTweak = 1.5; fAngleTweak = 175.0; fAngle2Tweak = 270.0; fScaleTweak = 2.0;}
// BOW STATUE TWEAKS
if(sResRef == "plc_statue_bow"){fDistanceTweak = 0.8; fAngleTweak = 260.0; fAngle2Tweak = 280.0; fScaleTweak = 1.5;}
// CALCULATE THE POSITION OF THE OBJECT FALL
float fAngle = GetFacing(OBJECT_SELF) - 12.0 - fAngleTweak; // POSITION CREATED RELATIVE TO SELF
float fAngle2 = GetFacing(OBJECT_SELF) - fAngle2Tweak; // ORIENTATION OF OBJECT CREATED
// ANY SCALE REFERENCE SHOULD DO IF KEEPING ASPECT RATIO (BASE ON DISTANCE OF 3.0)
float fScale = GetScale(OBJECT_SELF, SCALE_X) * fScaleTweak;
float fDistance = fScale * fDistanceTweak;
location lWhere = GenerateNewLocation(OBJECT_SELF, fDistance, fAngle, fAngle2);
DelayCommand(2.0, ActionCreateObject(sPlaceResRef, lWhere, fScale));
}
OR, HERE IT IS IN YOUR CODE FORMAT:-
JUST MAKE SURE YOUR STATUE RESREFS ARE CORRECT!

NOW WITH SHIELD DROP!
And all works when placeables scaled too! //::///////////////////////////////////////////////
//:: OnUse: activates the placeable, and sets a flag to prevent further uses
//:: plc_only_use_once
//:: Copyright (c) 2014 4760.
//:://////////////////////////////////////////////
/*
Simple script to run the Activate animation of a placeable that supports it
Placeables that are running this script will remain in their activated state after execution.
*/
//:://////////////////////////////////////////////
//:: Created By: Thierry Petitjean
//:: Created On: 29/04/2014
//:://////////////////////////////////////////////
// REWRITE BY LANCE BOTELLE.
#include "x0_i0_position"
// CREATE THE NEW PLACEABLE ITEM AND RESCALE TO ANY STATUE RESCALE
void ActionCreateObject(string sPlaceResRef, location lWhere, float fScale);
void ActionCreateObject(string sPlaceResRef, location lWhere, float fScale)
{
object oWeapon = CreateObject(OBJECT_TYPE_PLACEABLE, sPlaceResRef, lWhere);
// MAKE SURE OBJECT HAS BEEN CREATED, ELSE CREATE AN ITEM INSTEAD
if(oWeapon == OBJECT_INVALID)
{
oWeapon = CreateObject(OBJECT_TYPE_ITEM, sPlaceResRef, lWhere);
return;
}
// OBJECT SCALING (ASSUMES ORIGINAL CORRECT ASPECT RATIO)
float fScaleX = GetScale(oWeapon, SCALE_X) * fScale;
float fScaleY = GetScale(oWeapon, SCALE_Y) * fScale;
SetScale(oWeapon, fScaleX, fScaleY, 1.0);
SetLocalString(oWeapon, "item_resref", sPlaceResRef);
}
void main()
{
// ACTIVATED ELSEWHERE
if (GetLocalInt(OBJECT_SELF, "IS_ACTIVATED_BY_OTHER_PLC") != 0)
{
string sMessage = (GetGlobalInt("nLangue")==0?"Nothing happens. There must be another way...":"Rien ne se passe. Il doit y avoir une autre méthode");
SendMessageToPC(GetFirstPC(FALSE), sMessage);
return;
}
// ONLY HAPPENS ONCE
if(GetLocalInt(OBJECT_SELF, "DONE") == 1){return;}
// PLAY ANY ASSOCIATED ANIMATION
float fDuration = GetLocalFloat(OBJECT_SELF, "fDuration");
if(fDuration == 0.0){fDuration = 1.0;}
ActionPlayAnimation(ANIMATION_PLACEABLE_ACTIVATE, fDuration);
// ANYTHING BEING CREATED? (NB: CAN BE ITEM RESREF IF NOT A PLACEABLE ONE)
string sPlaceResRef = GetLocalString(OBJECT_SELF, "DropPlaceItem");
if (sPlaceResRef != "")
{
// SPECIFIC STATUE TWEAKS
string sResRef = GetResRef(OBJECT_SELF);
float fDistanceTweak = 3.0; float fAngleTweak = 0.0; float fAngle2Tweak = 90.0; float fScaleTweak = 1.0;
// SWORD STATUE TWEAKS
if(sResRef == "plc_statue_swd"){fDistanceTweak = 1.5; fAngleTweak = 175.0; fAngle2Tweak = 270.0; fScaleTweak = 2.0;}
// BOW STATUE TWEAKS
if(sResRef == "plc_statue_bow"){fDistanceTweak = 0.8; fAngleTweak = 260.0; fAngle2Tweak = 280.0; fScaleTweak = 1.5;}
// CALCULATE THE POSITION OF THE OBJECT FALL
float fAngle = GetFacing(OBJECT_SELF) - 12.0 - fAngleTweak; // POSITION CREATED RELATIVE TO SELF
float fAngle2 = GetFacing(OBJECT_SELF) - fAngle2Tweak; // ORIENTATION OF OBJECT CREATED
// ANY SCALE REFERENCE SHOULD DO IF KEEPING ASPECT RATIO (BASE ON DISTANCE OF 3.0)
float fScale = GetScale(OBJECT_SELF, SCALE_X) * fScaleTweak;
float fDistance = fScale * fDistanceTweak;
location lWhere = GenerateNewLocation(OBJECT_SELF, fDistance, fAngle, fAngle2);
DelayCommand(2.0, ActionCreateObject(sPlaceResRef, lWhere, fScale));
// SWORD STATUE ALSO DROPS A SHIELD
if(sResRef == "plc_statue_swd")
{
fDistanceTweak = 0.8; fAngleTweak = 115.0; fAngle2Tweak = 270.0; fScaleTweak = 2.0;
// CALCULATE THE POSITION OF THE OBJECT FALL
float fAngle = GetFacing(OBJECT_SELF) - 12.0 - fAngleTweak; // POSITION CREATED RELATIVE TO SELF
float fAngle2 = GetFacing(OBJECT_SELF) - fAngle2Tweak; // ORIENTATION OF OBJECT CREATED
// ANY SCALE REFERENCE SHOULD DO IF KEEPING ASPECT RATIO (BASE ON DISTANCE OF 3.0)
float fScale = GetScale(OBJECT_SELF, SCALE_X) * fScaleTweak;
float fDistance = fScale * fDistanceTweak;
location lWhere = GenerateNewLocation(OBJECT_SELF, fDistance, fAngle, fAngle2);
DelayCommand(2.0, ActionCreateObject("plc_fl_w_she_wood01", lWhere, fScale));
}
}
// SET AS DONE
SetLocalInt(OBJECT_SELF, "DONE", 1);
SetUseableFlag(OBJECT_SELF, FALSE);
}