// Scroll of Dark Ritual #include "rtsh_multiplay" #include "hos_alignment" void fnConvert(object oPC); void fnChant(object oPlace,object oPC); void main() { object oPC=GetItemActivator(); object oPlace; DelayCommand(4.0,fnConvert(oPC)); oPlace=CreateObject(OBJECT_TYPE_PLACEABLE,"plc_invisobj",GetLocation(oPC)); fnChant(oPlace,oPC); } void fnChant(object oPlace,object oPC) { // chanting AssignCommand(oPlace,PlaySound("as_pl_evilchantm")); if (GetItemPossessedBy(oPC,"SoulToken")!=OBJECT_INVALID) { DelayCommand(5.0,fnChant(oPlace,oPC)); } else { DestroyObject(oPlace); } } // fnChant() void fnConvert(object oPC) { // convert the tokens object oItem=GetItemPossessedBy(oPC,"SoulToken"); effect eVFX=EffectVisualEffect(VFX_IMP_PULSE_NEGATIVE); int nMana=fnGetTeamMana(oPC); if (oItem!=OBJECT_INVALID) { // convert DestroyObject(oItem); ApplyEffectToObject(DURATION_TYPE_INSTANT,eVFX,oPC,1.5); nMana=nMana+25; fnSetTeamMana(oPC,nMana); SendMessageToPC(oPC,"25 mana converted from soul. Current pool of mana is "+IntToString(nMana)+"."); AdjustAlignmentPartyProtected(oPC,ALIGNMENT_EVIL,5); DelayCommand(1.6,fnConvert(oPC)); } // convert } // fnConvert()