//:://///////////////////////////////////////////// //:: TRUE Random Task Generator //:: rtg_spawner_hrtbt //:: Copyright (c) 2001 Bioware Corp. //::////////////////////////////////////////////// /* This file is used in the OnHeartbeat event of all RTG task related spawners. Hopefully this will not strain the CPU cycles too much as I've tried to optimise it as much as possible. */ //::////////////////////////////////////////////// //:: Created By: Nathan 'yibble' Reynolds //:: Created On: 10/11/2002 //::////////////////////////////////////////////// #include "rtg_i0_const" void main() { object oPC = GetNearestCreature(CREATURE_TYPE_PLAYER_CHAR, PLAYER_CHAR_IS_PC); if(!GetIsObjectValid(oPC)) return; else if(!GetLocalInt(oPC, "RTG_TaskActive")) return; else if(GetDistanceToObject(oPC) > 20.0) return; else if(GetLocalInt(oPC, "RTG_TaskCR") == RTG_CHALLENGE_RATING_VERY_EASY) { if(OBJECT_SELF == GetObjectByTag("RTG_VEASY_SPWN_HOS", GetLocalInt(oPC, "RTG_SpawnerInstance"))) { if(GetLocalInt(oPC, "RTG_TaskType") == RTG_TASK_TYPE_KILLNSTEAL) { object oAntagonist; oAntagonist = CreateObject(OBJECT_TYPE_CREATURE, GetLocalString(oPC, "RTG_AntagonistRef"), GetLocation(OBJECT_SELF)); CreateItemOnObject(GetLocalString(oPC, "RTG_ItemRef"), oAntagonist); SetLocalInt(oPC, "RTG_TaskActive", FALSE); } else if(GetLocalInt(oPC, "RTG_TaskType") == RTG_TASK_TYPE_HARVEST) { object oAntagonist; if(Random(100) <= 25) { switch(Random(2)) { case 0: oAntagonist = CreateObject(OBJECT_TYPE_CREATURE, GetLocalString(oPC, "RTG_AntagonistRef"), GetLocation(OBJECT_SELF)); CreateItemOnObject(GetLocalString(oPC, "RTG_ItemRef"), oAntagonist); break; case 1: oAntagonist = CreateObject(OBJECT_TYPE_CREATURE, GetLocalString(oPC, "RTG_AntagonistRef"), GetLocation(OBJECT_SELF)); CreateItemOnObject(GetLocalString(oPC, "RTG_ItemRef"), oAntagonist); oAntagonist = CreateObject(OBJECT_TYPE_CREATURE, GetLocalString(oPC, "RTG_AntagonistRef"), GetLocation(OBJECT_SELF)); CreateItemOnObject(GetLocalString(oPC, "RTG_ItemRef"), oAntagonist); break; } } } } if(OBJECT_SELF == GetObjectByTag("RTG_VEASY_SPWN_FRE", GetLocalInt(oPC, "RTG_SpawnerInstance")) && GetIsObjectValid(GetItemPossessedBy(oPC, GetLocalString(oPC, "RTG_ItemTag")))) { if(GetLocalInt(oPC, "RTG_TaskType") == RTG_TASK_TYPE_DELIVERY) { object oProtagonist; oProtagonist = CreateObject(OBJECT_TYPE_CREATURE, GetLocalString(oPC, "RTG_ProtagonistRef"), GetLocation(OBJECT_SELF)); SetLocalInt(oPC, "RTG_TaskActive", FALSE); } } } }