Module commit
Module commit.
This commit is contained in:
49
_module/nss/_craft_spider.nss
Normal file
49
_module/nss/_craft_spider.nss
Normal file
@@ -0,0 +1,49 @@
|
||||
void main()
|
||||
{
|
||||
int iSilkNum = GetLocalInt(OBJECT_SELF,"iSilk");
|
||||
if (iSilkNum<1) return;
|
||||
object oPC = GetLastDisturbed();
|
||||
object oItem = GetInventoryDisturbItem();
|
||||
|
||||
|
||||
if (GetInventoryDisturbType()== INVENTORY_DISTURB_TYPE_ADDED)
|
||||
{
|
||||
// The following 3 lines are to ensure compatability with UOAbigal's Persistent Token System.
|
||||
// You can replace them with whatever 'no-drop' code you have or comment them out.
|
||||
string sNoDropFlag = (GetStringLeft(GetTag(oItem),6));
|
||||
if (sNoDropFlag == "NoDrop" || sNoDropFlag == "TOKEN_"||sNoDropFlag=="_TBOX_")
|
||||
return;
|
||||
if (GetBaseItemType(oItem)==BASE_ITEM_LARGEBOX)
|
||||
{
|
||||
DestroyObject(oItem);
|
||||
SendMessageToPC(oPC,"To avoid possible dupe exploits, the container placed in this bag may be destroyed.");
|
||||
return;
|
||||
}
|
||||
CopyItem(oItem,oPC,TRUE);
|
||||
DestroyObject(oItem,1.0);
|
||||
}
|
||||
|
||||
float fSelf = GetFacing(oPC)+Random(360);
|
||||
object oArea = GetArea(oPC);
|
||||
vector vSelf = GetPosition(oPC);
|
||||
object oTemp = OBJECT_INVALID;
|
||||
float fDistance = (IntToFloat(Random(100)+1)/10.0);
|
||||
vector vFire = vSelf + (AngleToVector(fSelf) * fDistance);
|
||||
location lFire = Location(oArea,vFire,fSelf);
|
||||
if (Random(1000)<350)
|
||||
{
|
||||
string sSpiderResRef = "spidgiant001";
|
||||
if (Random(1000)<500) sSpiderResRef="spidgiant002";
|
||||
if (Random(1000)<350) sSpiderResRef="spidgiant002";
|
||||
oTemp = CreateObject(OBJECT_TYPE_CREATURE,sSpiderResRef,lFire,TRUE);
|
||||
AssignCommand(oTemp,SetFacingPoint(AngleToVector(GetFacing(oPC))));
|
||||
AssignCommand(oTemp, ActionAttack(oPC,FALSE));
|
||||
ApplyEffectAtLocation(DURATION_TYPE_TEMPORARY,EffectVisualEffect(VFX_DUR_WEB,FALSE),lFire,600.0);
|
||||
FloatingTextStringOnCreature("You have disturbed a dormant spider!",oPC,FALSE);
|
||||
iSilkNum--;
|
||||
SetLocalInt(OBJECT_SELF,"iSilk",iSilkNum);
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
Reference in New Issue
Block a user