UW2_PRC8/_module/nss/trashem.nss
Jaysyn904 5197ad9a4d Initial upload
Initial upload
2023-09-25 20:24:01 -04:00

77 lines
1.6 KiB
Plaintext

//This script completely prevents lagg in many ways and prevents duping exploits
//PROTOTYPE
int GetTrueValue(object oItem)
{
int i = 0;
//Get the state of the item before altering
int n = GetIdentified(oItem);
if(n==FALSE)
{ SetIdentified(oItem, TRUE); }
i = GetGoldPieceValue(oItem);
SetIdentified(oItem, n);
return i;
}
void main()
{
object oPC = (GetModuleItemLostBy());
object oItem = (GetModuleItemLost());
object oArea = GetArea(oItem);
int nType = GetBaseItemType(oItem);
//Give gold for plot items too
SetPlotFlag(oItem, FALSE);
int n = GetTrueValue(oItem);
int b, c;
int nGP;
if(n>=100)
{
b = n/100;
c = b * 50; //The % used..
nGP = c;
}
else
{ nGP = 500; }
//Do not purchase ammunition!
if(nType == BASE_ITEM_ARROW || nType == BASE_ITEM_BOLT ||
nType == BASE_ITEM_BULLET || nType == BASE_ITEM_DART ||
nType == BASE_ITEM_SHURIKEN || nType == BASE_ITEM_THROWINGAXE)
{ nGP = 500; }
else
{
//cap the gold @ 400,000 Gold
if(nGP >=400000)
{ nGP = 400000; }
}
if (!GetIsPC(oPC))
return;//so that npc dropped items won't be destroyed.
{
if (oArea != GetArea(oPC))
return;
if (GetIsInCombat(oPC))
return;
if (oItem != OBJECT_INVALID)
{
GiveGoldToCreature(oPC, nGP);
DestroyObject(oItem);
FloatingTextStringOnCreature("The item you dropped was destroyed!!!", oPC);
DelayCommand(1.2, FloatingTextStringOnCreature
(IntToString(nGP) + " - Gold (50%) was given to you for the item!!", oPC));
}
}
}