generated from Jaysyn/ModuleTemplate
70 lines
2.0 KiB
Plaintext
70 lines
2.0 KiB
Plaintext
string FirstWord(string sString, string sDelimiter)
|
|
{ if (FindSubString(sString, sDelimiter) == -1)
|
|
{ return sString; }
|
|
else
|
|
{ return GetStringLeft(sString, FindSubString(sString, sDelimiter)); }
|
|
}
|
|
|
|
string RestWords(string sString, string sDelimiter)
|
|
{ if (FindSubString(sString, sDelimiter) == -1)
|
|
{ return ""; }
|
|
else
|
|
{ return GetStringRight(sString, GetStringLength(sString) - FindSubString(sString, sDelimiter) - GetStringLength(sDelimiter)); }
|
|
}
|
|
|
|
string SearchAndReplace(string sString, string sSearch, string sReplace)
|
|
{ string sNewString = "";
|
|
int iOffset = FindSubString(sString, sSearch);
|
|
while (iOffset != -1)
|
|
{ sNewString += FirstWord(sString, sSearch) + sReplace;
|
|
sString = RestWords(sString, sSearch);
|
|
iOffset = FindSubString(sString, sSearch);
|
|
}
|
|
return sNewString + sString;
|
|
}
|
|
|
|
void NoDrops(object oCreature)
|
|
{ object oItem = GetFirstItemInInventory(oCreature);
|
|
|
|
while (GetIsObjectValid(oItem))
|
|
{ if (GetDroppableFlag(oItem))
|
|
{ SetDroppableFlag(oItem, FALSE); }
|
|
oItem = GetNextItemInInventory(oCreature);
|
|
}
|
|
|
|
int iLoop = 0;
|
|
while (iLoop < 18)
|
|
{ oItem = GetItemInSlot(iLoop, oCreature);
|
|
if (GetIsObjectValid(oItem) && GetDroppableFlag(oItem))
|
|
{ SetDroppableFlag(oItem, FALSE); }
|
|
iLoop++;
|
|
}
|
|
|
|
TakeGoldFromCreature(GetGold(oCreature), oCreature, TRUE);
|
|
}
|
|
|
|
|
|
void main()
|
|
{
|
|
object oLever = OBJECT_SELF;
|
|
object oWP = GetWaypointByTag(SearchAndReplace(GetTag(oLever), "LVRDROPS", "WP"));
|
|
object oItem;
|
|
|
|
AssignCommand(oLever, ActionPlayAnimation(ANIMATION_PLACEABLE_DEACTIVATE));
|
|
DelayCommand(1.0f, AssignCommand(oLever, ActionPlayAnimation(ANIMATION_PLACEABLE_ACTIVATE)));
|
|
|
|
|
|
int iLoop = 1;
|
|
object oCreature = GetNearestCreature(CREATURE_TYPE_IS_ALIVE, TRUE, oWP, iLoop);
|
|
|
|
|
|
while (GetIsObjectValid(oCreature) && (GetDistanceBetween(oWP, oCreature) < 8.0))
|
|
{ if (!(GetIsPC(oCreature)))
|
|
{ NoDrops(oCreature); }
|
|
|
|
iLoop++;
|
|
oCreature = GetNearestCreature(CREATURE_TYPE_IS_ALIVE, TRUE, oWP, iLoop);
|
|
}
|
|
}
|
|
|