70 lines
2.5 KiB
Plaintext
70 lines
2.5 KiB
Plaintext
//::///////////////////////////////////////////////
|
|
//:: 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);
|
|
}
|