Initial upload. PRC8 has been added. Module compiles, PRC's default AI & treasure scripts have been integrated. Started work on top hak for SLA / Ability / Scripting modifications.
82 lines
1.4 KiB
Plaintext
82 lines
1.4 KiB
Plaintext
void main()
|
|
{
|
|
if (GetInventoryDisturbType()!=INVENTORY_DISTURB_TYPE_ADDED)
|
|
{
|
|
return;
|
|
}
|
|
|
|
object oEmerald;
|
|
object oCharging;
|
|
|
|
object oCycle=GetFirstItemInInventory();
|
|
while (GetIsObjectValid(oCycle))
|
|
{
|
|
if (GetTag(oCycle)=="jw_emerald"||GetTag(oCycle)=="NW_IT_GEM012")
|
|
{
|
|
oEmerald=oCycle;
|
|
}
|
|
else
|
|
{
|
|
oCharging=oCycle;
|
|
}
|
|
oCycle=GetNextItemInInventory();
|
|
}
|
|
|
|
if (!GetIsObjectValid(oEmerald))
|
|
{
|
|
//SpeakString("There is no emerald");
|
|
return;
|
|
}
|
|
|
|
if (!GetIsObjectValid(oCharging))
|
|
{
|
|
//SpeakString("There is no item to charge");
|
|
return;
|
|
}
|
|
|
|
string sTag=GetTag(oCharging);
|
|
if (GetStringLeft(sTag,3)=="Dye")
|
|
{
|
|
// cannot charge dye items
|
|
return;
|
|
}
|
|
|
|
|
|
int nCharges=GetItemCharges(oCharging);
|
|
|
|
//SpeakString(GetName(oCharging)+" has "+IntToString(nCharges)+ "charges");
|
|
|
|
nCharges++;
|
|
|
|
SetItemCharges(oCharging, nCharges);
|
|
|
|
int nStack=GetItemStackSize(oEmerald);
|
|
|
|
if (nStack==1)
|
|
{
|
|
DestroyObject(oEmerald);
|
|
}
|
|
else
|
|
{
|
|
nStack=nStack-1;
|
|
SetItemStackSize(oEmerald,nStack);
|
|
}
|
|
|
|
// do effects
|
|
|
|
effect eVis=EffectVisualEffect(VFX_FNF_SCREEN_BUMP);
|
|
eVis=EffectLinkEffects(EffectVisualEffect(VFX_IMP_LIGHTNING_M),eVis);
|
|
ApplyEffectAtLocation(DURATION_TYPE_INSTANT,eVis,GetLocation(OBJECT_SELF));
|
|
|
|
int nCounter=0;
|
|
|
|
object oSanclight=GetObjectByTag("jw_sanclight",nCounter);
|
|
while (GetIsObjectValid(oSanclight))
|
|
{
|
|
ApplyEffectAtLocation(DURATION_TYPE_INSTANT,eVis,GetLocation(oSanclight));
|
|
nCounter++;
|
|
oSanclight=GetObjectByTag("jw_sanclight",nCounter);
|
|
}
|
|
|
|
}
|