Changed folder name.
Changed folder name.
This commit is contained in:
179
_module/nss/onunaquireitem.nss
Normal file
179
_module/nss/onunaquireitem.nss
Normal file
@@ -0,0 +1,179 @@
|
||||
//Script Name: onunaquireitem
|
||||
//////////////////////////////////////////
|
||||
//Created By: Genisys (Guile)
|
||||
//Created On: 3/05/08 (Update 4/07/09)
|
||||
/////////////////////////////////////////
|
||||
/*
|
||||
This script goes in the OnUnAquireItem
|
||||
Module Event in the Module Properties
|
||||
|
||||
This script kills all items dropped on
|
||||
the ground, unless it's a weapon & they are
|
||||
in combat! (ie. disarmed)
|
||||
|
||||
Bartering & placing items in containers will not
|
||||
destroy the items...
|
||||
|
||||
NOTE: This script does not stop gold from
|
||||
being dropped on the ground!
|
||||
|
||||
The Tag Standard Bioware Tag-Based
|
||||
Scripting will still fire reguardless.
|
||||
*/
|
||||
////////////////////////////////////////
|
||||
|
||||
//Required Includes
|
||||
#include "x2_inc_switches"
|
||||
#include "x2_inc_itemprop"
|
||||
|
||||
//Main Script
|
||||
void main()
|
||||
{
|
||||
ExecuteScript("prc_onunaquire", OBJECT_SELF);
|
||||
//Declare major variables..
|
||||
object oPC = GetModuleItemLostBy();
|
||||
object oItem = GetModuleItemLost();
|
||||
object oArea = GetArea(oPC);
|
||||
object oItemArea = GetArea(oItem);
|
||||
int nType = GetBaseItemType(oItem);
|
||||
|
||||
//We only run these checks on PCs ONLY!
|
||||
if (!GetIsPC(oPC) || GetIsDM(oPC) || GetIsDMPossessed(oPC))
|
||||
{ return; }
|
||||
|
||||
//No longer used but left here for future use...
|
||||
if(GetLocalInt(oPC, "ORGANIZING")==1)
|
||||
{ return; }
|
||||
|
||||
string sMsg;
|
||||
|
||||
//This part kills all dropped items which are placed on the ground
|
||||
//if not disarmed during combat...
|
||||
|
||||
//If the item was NOT placed in a container or bartered...
|
||||
if (oItemArea == oArea)
|
||||
{
|
||||
|
||||
//If the item is NOT Invalid!
|
||||
if (oItem != OBJECT_INVALID)
|
||||
{
|
||||
|
||||
//If the player is in combat...
|
||||
if (GetIsInCombat(oPC))
|
||||
{
|
||||
//If it is in fact a weapon...
|
||||
if(IPGetIsRangedWeapon(oItem) || IPGetIsMeleeWeapon(oItem))
|
||||
{
|
||||
//Do nothing, but continue the script..
|
||||
}
|
||||
//Otherwise if it's not a weapon!
|
||||
else
|
||||
{
|
||||
//Kill it...
|
||||
SetPlotFlag(oItem, FALSE);
|
||||
DestroyObject(oItem);
|
||||
|
||||
FloatingTextStringOnCreature("The item you dropped was destroyed!!!", oPC);
|
||||
|
||||
return; //no need to continue...
|
||||
|
||||
//Else statement end..
|
||||
}
|
||||
|
||||
//End If in combat statment check..
|
||||
}
|
||||
|
||||
//Otherwise, if not in combat...
|
||||
else
|
||||
{
|
||||
|
||||
//kill it...
|
||||
SetPlotFlag(oItem, FALSE);
|
||||
DestroyObject(oItem);
|
||||
|
||||
//Inform the PC it was destroyed (so they won't make a mistake later!
|
||||
FloatingTextStringOnCreature("The item you dropped was destroyed!!!", oPC);
|
||||
|
||||
return; //no need to continue...
|
||||
|
||||
|
||||
//Else statement end..
|
||||
}
|
||||
|
||||
//End if Valid item check...
|
||||
}
|
||||
|
||||
//End if actually on ground check..
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////
|
||||
////Pick Pocket Watch///// Testing...
|
||||
|
||||
/*
|
||||
|
||||
object oRobbed;
|
||||
oRobbed = GetModuleItemLostBy();
|
||||
object oThief;
|
||||
oThief = GetModuleItemAcquiredBy();
|
||||
object oLost;
|
||||
oLost = GetModuleItemLost();
|
||||
object oFound;
|
||||
oFound = GetModuleItemAcquired();
|
||||
|
||||
|
||||
//We do not run this script AT ALL for DMs!
|
||||
if(!GetIsDM(oRobbed))
|
||||
{
|
||||
if(!GetIsDMPossessed(oRobbed))
|
||||
{
|
||||
if(GetObjectType(oRobbed)==OBJECT_TYPE_CREATURE)
|
||||
{
|
||||
//Let's make sure the thief is a PC
|
||||
if (GetIsPC(oThief))
|
||||
{
|
||||
//Lets see if they have Pick Pocket Skills
|
||||
if(GetSkillRank(SKILL_PICK_POCKET, oThief, TRUE)>0)
|
||||
{
|
||||
//Lets make sure they took it from a PC and not an NPC or Monster.
|
||||
if(GetIsPC(oRobbed))
|
||||
{
|
||||
//Let's make sure the thief isn't crafting.
|
||||
if(oRobbed != oThief)
|
||||
{
|
||||
sMsg = GetName(oThief) + " Has pickpocketed - " + GetName(oRobbed);
|
||||
SendMessageToAllDMs(sMsg);
|
||||
WriteTimestampedLogEntry(sMsg);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
*/
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
//Your Code Goes here...
|
||||
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
|
||||
///////////STANDARD XP2 TAG BASED SCRIPTING CODE///////////////////////////
|
||||
|
||||
//Tag Based Scripting Check
|
||||
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;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//Main Script End
|
||||
}
|
Reference in New Issue
Block a user