AOC_PRC8/_module/nss/item_modder4.nss
Jaysyn904 5e558169a0 Initial Commit
Initial Commit
2025-04-03 11:24:16 -04:00

348 lines
13 KiB
Plaintext

#include "moditem2"
object oItem;
object oTarget;
/* Script generated by
Lilac Soul's NWN Script Generator, v. 1.6
For download info, please visit:
http://www.lilacsoul.revility.com */
//Put this OnUsed
void main()
{
object oPC = GetLastUsedBy();
object oTarget = OBJECT_SELF;
int oCount=0;
int oPearl=0;
int oPcount=0;
int oCoin=0;
int oCloak = 0;
int oNcount= 0;
int oAmmo;
int oLbow = BASE_ITEM_LONGBOW;
int oHcrossbow = BASE_ITEM_HEAVYCROSSBOW;
int oSbow = BASE_ITEM_SHORTBOW;
int oLcrossbow = BASE_ITEM_LIGHTCROSSBOW;
int oDaxe = BASE_ITEM_DWARVENWARAXE;
int oRapier = BASE_ITEM_RAPIER;
int oLongsword = BASE_ITEM_LONGSWORD;
int oBastardsword = BASE_ITEM_BASTARDSWORD;
int oBattleaxe = BASE_ITEM_BATTLEAXE;
int oKukri = BASE_ITEM_KUKRI;
int oWarhammer = BASE_ITEM_WARHAMMER;
int oShortsword = BASE_ITEM_SHORTSWORD;
int oKama = BASE_ITEM_KAMA;
int oGreatsword = BASE_ITEM_GREATSWORD;
int oDbaxe = BASE_ITEM_DOUBLEAXE;
int oDsword = BASE_ITEM_TWOBLADEDSWORD;
int oWhip = BASE_ITEM_WHIP;
int oSickle = BASE_ITEM_SICKLE;
int oScythe = BASE_ITEM_SCYTHE;
int oMstar = BASE_ITEM_MORNINGSTAR;
int oQstaff = BASE_ITEM_QUARTERSTAFF;
int oScim = BASE_ITEM_SCIMITAR;
int oSpear = BASE_ITEM_SHORTSPEAR;
int oLflail = BASE_ITEM_LIGHTFLAIL;
int oHflail = BASE_ITEM_HEAVYFLAIL;
int oHberd = BASE_ITEM_HALBERD;
int oGaxe = BASE_ITEM_GREATAXE;
int oKatana = BASE_ITEM_KATANA;
int oLmace = BASE_ITEM_LIGHTMACE;
int oDmace = BASE_ITEM_DIREMACE;
int oDagg = BASE_ITEM_DAGGER;
int oBolt = BASE_ITEM_BOLT;
int oArrow = BASE_ITEM_ARROW;
object oItem = GetFirstItemInInventory(OBJECT_SELF);
while (GetIsObjectValid(oItem))
{
++oCount;
oItem = GetNextItemInInventory(OBJECT_SELF);
}
if (oCount==1)
{
oItem = GetFirstItemInInventory(OBJECT_SELF);
if ((GetTag(oItem)=="pearl")||(GetTag(oItem)=="coin1")||(GetTag(oItem)=="coin2"))
{
FloatingTextStringOnCreature("You need an item as well.", oPC);
PlaySound("sim_cntresist");
return;
}
else
{
FloatingTextStringOnCreature("You need an Arena Token to invoke Amaterasu's power", oPC);
PlaySound("sim_cntresist");
return;
}
}
if (oCount==0)
{
return;
}
if ((oCount>1)&&(oCount<3))
{
oItem = GetFirstItemInInventory(OBJECT_SELF);
while (GetIsObjectValid(oItem))
{
if ((GetTag(oItem)=="pearl")||(GetTag(oItem)=="coin1")||
(GetTag(oItem)=="coin2"))
{
oPearl = 1;
++oPcount;
}
else
{
++oNcount;
}
oItem = GetNextItemInInventory(OBJECT_SELF);
}
if (oNcount==2)
{
FloatingTextStringOnCreature("You need an arena token and one item to invoke Amaterasu's power", oPC);
PlaySound("sim_cntresist");
return;
}
if (oPcount>1)
{
FloatingTextStringOnCreature("You can not use more than one Arena Token", oPC);
PlaySound("sim_cntresist");
return;
}
if (oPearl==1)
{
oItem = GetFirstItemInInventory(OBJECT_SELF);
while (GetIsObjectValid(oItem))
{
if (GetTag(oItem)=="pearl")
{
oCoin=1;
}
if (GetTag(oItem)=="coin1")
{
oCoin=2;
}
if (GetTag(oItem)=="coin2")
{
oCoin=3;
}
oItem = GetNextItemInInventory(OBJECT_SELF);
}
oItem=GetFirstItemInInventory(OBJECT_SELF);
if (oCoin==1)
{
AssignCommand(oPC, PlaySound("as_mg_telepin1"));
AssignCommand(oPC, PlaySound("sce_positive"));
DelayCommand(0.5, ModNow(oItem, oPC));
return;
}
else if (oCoin==3)
{
while (GetIsObjectValid(oItem))
{
if ((GetBaseItemType(oItem)==oRapier)||
(GetBaseItemType(oItem)==oShortsword)||
(GetBaseItemType(oItem)==oLongsword)||
(GetBaseItemType(oItem)==oBastardsword)||
(GetBaseItemType(oItem)==oBattleaxe)||
(GetBaseItemType(oItem)==oKukri)||
(GetBaseItemType(oItem)==oWarhammer)||
(GetBaseItemType(oItem)==oKama)||
(GetBaseItemType(oItem)==oGreatsword)||
(GetBaseItemType(oItem)==oDaxe)||
(GetBaseItemType(oItem)==oDbaxe)||
(GetBaseItemType(oItem)==oDsword)||
(GetBaseItemType(oItem)==oWhip)||
(GetBaseItemType(oItem)==oSickle)||
(GetBaseItemType(oItem)==oScythe)||
(GetBaseItemType(oItem)==oMstar)||
(GetBaseItemType(oItem)==oQstaff)||
(GetBaseItemType(oItem)==oScim)||
(GetBaseItemType(oItem)==oSpear)||
(GetBaseItemType(oItem)==oLflail)||
(GetBaseItemType(oItem)==oHflail)||
(GetBaseItemType(oItem)==oHberd)||
(GetBaseItemType(oItem)==oGaxe)||
(GetBaseItemType(oItem)==oScim)||
(GetBaseItemType(oItem)==oKatana)||
(GetBaseItemType(oItem)==oLmace)||
(GetBaseItemType(oItem)==oDmace)||
(GetBaseItemType(oItem)==oDagg)||
(GetBaseItemType(oItem)==oBolt)||
(GetBaseItemType(oItem)==oArrow)||
(GetBaseItemType(oItem)==oLbow)||
(GetBaseItemType(oItem)==oSbow)||
(GetBaseItemType(oItem)==oLcrossbow)||
(GetBaseItemType(oItem)==oHcrossbow))
{
oCloak = 3;
if ((GetBaseItemType(oItem)==oBolt)||
(GetBaseItemType(oItem)==oArrow))
{
oAmmo=1;
}
if ((GetBaseItemType(oItem)==oLbow)||
(GetBaseItemType(oItem)==oSbow)||
(GetBaseItemType(oItem)==oLcrossbow)||
(GetBaseItemType(oItem)==oHcrossbow))
{
oAmmo=2;
}
}
oItem = GetNextItemInInventory(OBJECT_SELF);
}
if (oCloak==3)
{
if (oAmmo==1)
{
AssignCommand(oPC, PlaySound("as_mg_telepin1"));
AssignCommand(oPC, PlaySound("sce_positive"));
DelayCommand(0.5, ActionStartConversation(oPC, "weap_enh2", TRUE, FALSE));
return;
}
else if (oAmmo==2)
{
AssignCommand(oPC, PlaySound("as_mg_telepin1"));
AssignCommand(oPC, PlaySound("sce_positive"));
DelayCommand(0.5, ActionStartConversation(oPC, "bow", TRUE, FALSE));
return;
}
else
{
AssignCommand(oPC, PlaySound("as_mg_telepin1"));
AssignCommand(oPC, PlaySound("sce_positive"));
DelayCommand(0.5, ActionStartConversation(oPC, "weap_enh", TRUE, FALSE));
return;
}
}
else
{
PlaySound("sim_cntresist");
FloatingTextStringOnCreature
("You can't use a Silver arena token on this item", oPC);
}
}
else
{
while (GetIsObjectValid(oItem))
{
if (GetBaseItemType(oItem)== BASE_ITEM_TOWERSHIELD)
{
oCloak = 1;
}
if (GetBaseItemType(oItem)== BASE_ITEM_AMULET)
{
oCloak = 2;
}
if ((GetBaseItemType(oItem)==oRapier)||
(GetBaseItemType(oItem)==oShortsword)||
(GetBaseItemType(oItem)==oLongsword)||
(GetBaseItemType(oItem)==oBastardsword)||
(GetBaseItemType(oItem)==oBattleaxe)||
(GetBaseItemType(oItem)==oKukri)||
(GetBaseItemType(oItem)==oWarhammer)||
(GetBaseItemType(oItem)==oKama)||
(GetBaseItemType(oItem)==oGreatsword)||
(GetBaseItemType(oItem)==oDaxe)||
(GetBaseItemType(oItem)==oDbaxe)||
(GetBaseItemType(oItem)==oDsword)||
(GetBaseItemType(oItem)==oWhip)||
(GetBaseItemType(oItem)==oSickle)||
(GetBaseItemType(oItem)==oScythe)||
(GetBaseItemType(oItem)==oMstar)||
(GetBaseItemType(oItem)==oQstaff)||
(GetBaseItemType(oItem)==oScim)||
(GetBaseItemType(oItem)==oSpear)||
(GetBaseItemType(oItem)==oLflail)||
(GetBaseItemType(oItem)==oHflail)||
(GetBaseItemType(oItem)==oHberd)||
(GetBaseItemType(oItem)==oGaxe)||
(GetBaseItemType(oItem)==oScim)||
(GetBaseItemType(oItem)==oKatana)||
(GetBaseItemType(oItem)==oLmace)||
(GetBaseItemType(oItem)==oDmace)||
(GetBaseItemType(oItem)==oDagg)||
(GetBaseItemType(oItem)==oBolt)||
(GetBaseItemType(oItem)==oLbow)||
(GetBaseItemType(oItem)==oSbow)||
(GetBaseItemType(oItem)==oLcrossbow)||
(GetBaseItemType(oItem)==oHcrossbow)||
(GetBaseItemType(oItem)==oArrow))
{
oCloak = 3;
if ((GetBaseItemType(oItem)==oBolt)||
(GetBaseItemType(oItem)==oArrow))
{
oAmmo=1;
}
if ((GetBaseItemType(oItem)==oLbow)||
(GetBaseItemType(oItem)==oSbow)||
(GetBaseItemType(oItem)==oLcrossbow)||
(GetBaseItemType(oItem)==oHcrossbow))
{
oAmmo=2;
}
}
oItem = GetNextItemInInventory(OBJECT_SELF);
}
if (oCloak==1)
{
AssignCommand(oPC, PlaySound("as_mg_telepin1"));
AssignCommand(oPC, PlaySound("sce_positive"));
DelayCommand(0.5, ActionStartConversation(oPC, "damage_red", TRUE, FALSE));
return;
}
else if (oCloak==2)
{
AssignCommand(oPC, PlaySound("as_mg_telepin1"));
AssignCommand(oPC, PlaySound("sce_positive"));
DelayCommand(0.5, ActionStartConversation(oPC, "amulet_red", TRUE, FALSE));
return;
}
else if (oCloak==3)
{
if (oAmmo==1)
{
AssignCommand(oPC, PlaySound("as_mg_telepin1"));
AssignCommand(oPC, PlaySound("sce_positive"));
DelayCommand(0.5, ActionStartConversation(oPC, "weap_enh2", TRUE, FALSE));
return;
}
else if (oAmmo==2)
{
AssignCommand(oPC, PlaySound("as_mg_telepin1"));
AssignCommand(oPC, PlaySound("sce_positive"));
DelayCommand(0.5, ActionStartConversation(oPC, "weap_enh_bow", TRUE, FALSE));
return;
}
else
{
AssignCommand(oPC, PlaySound("as_mg_telepin1"));
AssignCommand(oPC, PlaySound("sce_positive"));
DelayCommand(0.5, ActionStartConversation(oPC, "weap_enh3", TRUE, FALSE));
return;
}
}
else
{
PlaySound("sim_cntresist");
FloatingTextStringOnCreature
("You can't use a gold arena token on this item", oPC);
}
}
}
}
else
{
FloatingTextStringOnCreature("Too many items!", oPC);
PlaySound("sim_cntresist");
}
}