Added DMFI
Added DMFI. Set Diamond Golem appearance size to large. Full compile. Updated release archive.
This commit is contained in:
107
_module/nss/sm_on_unacquire.nss
Normal file
107
_module/nss/sm_on_unacquire.nss
Normal file
@@ -0,0 +1,107 @@
|
||||
// DMFI MP Starter Mod
|
||||
// sm_on_unacquire
|
||||
|
||||
//::///////////////////////////////////////////////
|
||||
//:: includes x2_mod_def_unaqu
|
||||
//:: Created By: Georg Zoeller
|
||||
//:: Created On: 2003-07-16
|
||||
//:://////////////////////////////////////////////
|
||||
|
||||
#include "x2_inc_switches"
|
||||
#include "habd_include"
|
||||
|
||||
//
|
||||
// NWDrop
|
||||
//
|
||||
// Script for when a character drops an item.
|
||||
// Place in the OnUnAcquireItem module event.
|
||||
//
|
||||
// (c) Shir'le E. Illios, 2002 (shirle@drowwanderer.com)
|
||||
//
|
||||
////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
// Script to place an item on the ground in front of a character.
|
||||
// ARGUMENTS:
|
||||
// a_oCharacter - The character dropping the item.
|
||||
// a_oItem - The inventory item being dropped.
|
||||
// a_sNewItem - ResRef of the new item to place.
|
||||
//
|
||||
void SEI_PlaceItem( object a_oCharacter, object a_oItem, string a_sNewItem )
|
||||
{
|
||||
|
||||
// Get information on where we want the object.
|
||||
location lCharLocation = GetLocation( a_oCharacter );
|
||||
object oArea = GetAreaFromLocation( lCharLocation );
|
||||
vector vPosition = GetPositionFromLocation( lCharLocation );
|
||||
float fFacing = GetFacingFromLocation( lCharLocation );
|
||||
|
||||
// Face away from the character.
|
||||
fFacing += 180.0f;
|
||||
|
||||
// SEI_TODO: Change position to slightly in front of character.
|
||||
|
||||
// Create the new location to place the object.
|
||||
location lPlace = Location( oArea, vPosition, fFacing );
|
||||
|
||||
// First destroy the inventory item.
|
||||
DestroyObject( a_oItem );
|
||||
|
||||
// And create the new object.
|
||||
CreateObject( OBJECT_TYPE_PLACEABLE, a_sNewItem, lPlace );
|
||||
|
||||
} // End SEI_PlaceItem
|
||||
|
||||
|
||||
|
||||
void main()
|
||||
{
|
||||
|
||||
// Original tag-based scripting support
|
||||
|
||||
object oItem = GetModuleItemLost();
|
||||
// * Generic Item Script Execution Code
|
||||
// * If MODULE_SWITCH_EXECUTE_TAGBASED_SCRIPTS is set to TRUE on the module,
|
||||
// * it will execute a script that has the same name as the item's tag
|
||||
// * inside this script you can manage scripts for all events by checking against
|
||||
// * GetUserDefinedItemEventNumber(). See x2_it_example.nss
|
||||
if (GetModuleSwitchValue(MODULE_SWITCH_ENABLE_TAGBASED_SCRIPTS) == TRUE)
|
||||
{
|
||||
SetUserDefinedItemEventNumber(X2_ITEM_EVENT_UNACQUIRE);
|
||||
int nRet = ExecuteScriptAndReturnInt(GetUserDefinedItemEventScriptName(oItem),OBJECT_SELF);
|
||||
if (nRet == X2_EXECUTE_SCRIPT_END)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// HABD support
|
||||
if (HABDOnUnAcquiredItem(GetModuleItemLostBy(), GetModuleItemLost())) return;
|
||||
|
||||
// SEI placeables support
|
||||
// Get the character who lost the item.
|
||||
object oChar = GetModuleItemLostBy();
|
||||
|
||||
// SEI_Note: There seems to be a bug in GetModuleItemLostBy(), which
|
||||
// returns the lost object, not the lost character holding the
|
||||
// object. But strangely enough GetEnteringObject does return the
|
||||
// character. Done like this for backwards compatibility if
|
||||
// BioWare ever fixes the bug.
|
||||
if( oChar == oItem )
|
||||
{
|
||||
oChar = GetEnteringObject();
|
||||
}
|
||||
|
||||
// Check if the dropped item is a chair.
|
||||
if( GetTag( oItem ) == "Chair" )
|
||||
{
|
||||
SEI_PlaceItem( oChar, oItem, "movechair" );
|
||||
}
|
||||
// Check if the dropped item is a stool.
|
||||
else if( GetTag( oItem ) == "Stool" )
|
||||
{
|
||||
SEI_PlaceItem( oChar, oItem, "movestool" );
|
||||
}
|
||||
|
||||
}
|
Reference in New Issue
Block a user