LoT_PRC8/_module/nss/pgs_new_messnger.nss

70 lines
2.5 KiB
Plaintext
Raw Permalink Normal View History

2023-09-25 21:32:17 -04:00
//::///////////////////////////////////////////////
//:: Name: pgs_new_messnger
//:: Copyright (c) 2001 Bioware Corp.
//:://////////////////////////////////////////////
/*
This script will create a random messenger
for the player to use and command.
*/
//:://////////////////////////////////////////////
//:: Created By: Samius Maximus
//:: Created On:
//:://////////////////////////////////////////////
#include "inc_gsystem_cnfg"
void main()
{
object oPlayer = GetPCSpeaker();
//--------------------------------------------
//Check if messenger already created.
//--------------------------------------------
if (GetIsObjectValid (GetLocalObject (oPlayer, "Temp_Messenger_Creature")))
{
SendMessageToPC (oPlayer, "You already have a messenger creature in " +
"your posession, so you cannot have another.");
return;
}
//--------------------------------------------
//Choose random messenger to create.
//--------------------------------------------
string sMessenger;
switch (d4())
{
case 1: sMessenger = "fairymessenger"; break;
case 2: sMessenger = "falconmessenger"; break;
case 3: sMessenger = "ravenmessenger"; break;
case 4: sMessenger = "willomessenger"; break;
}
//--------------------------------------------
//Now we create the messenger creature.
//--------------------------------------------
object oMessenger = CreateObject (OBJECT_TYPE_CREATURE, sMessenger,
GetLocation (oPlayer), TRUE);
//--------------------------------------------
//Set friendly faction between PC and messenger.
//--------------------------------------------
AssignCommand (oPlayer, SetStandardFactionReputation
(STANDARD_FACTION_COMMONER, 100, oMessenger));
//--------------------------------------------
//Set necessary messenger-related variables.
//--------------------------------------------
SetLocalInt (oMessenger, "Messenger_Following", TRUE);
SetLocalObject (oPlayer, "Temp_Messenger_Creature", oMessenger);
SetLocalObject (oMessenger, "Temp_Player", oPlayer);
SetListening (oMessenger, TRUE);
SetListenPattern (oMessenger, "**", 2001);
//--------------------------------------------
//Have messenger follow the player.
//--------------------------------------------
AssignCommand (oMessenger, ActionForceFollowObject (oPlayer, 3.0f));
SetLocalFloat (oMessenger, "Max_Distance", PGS_MAX_MESSENGER_FOLLOW_DISTANCE);
}