89 lines
3.4 KiB
Plaintext
89 lines
3.4 KiB
Plaintext
//::///////////////////////////////////////////////
|
|
//:: Name: pgs_inv_accept
|
|
//:: Copyright (c) 2001 Bioware Corp.
|
|
//:://////////////////////////////////////////////
|
|
/*
|
|
Perform the necessary functions to join the
|
|
player into the new guild.
|
|
*/
|
|
//:://////////////////////////////////////////////
|
|
//:: Created By: Samius Maximus
|
|
//:: Created On:
|
|
//:://////////////////////////////////////////////
|
|
#include "inc_gsystem"
|
|
|
|
void main()
|
|
{
|
|
object oPlayer = GetPCSpeaker();
|
|
object oSender = GetLocalObject (oPlayer, "Object_Activator");
|
|
int iPlayerGuild = GetLocalInt (oPlayer, "Player_Guild_Number");
|
|
int iJoiningGuild = GetLocalInt (oSender, "Player_Guild_Number");
|
|
int iJoiningFee = GetModuleGuildJoiningFee (iJoiningGuild);
|
|
|
|
if (GetGold (oPlayer) < iJoiningFee)
|
|
{
|
|
SendMessageToPC (oPlayer, "You currently do not have enough gold to " +
|
|
"cover the joining fee.");
|
|
SendMessageToPC (oSender, GetName (oPlayer) + " currently does not " +
|
|
"have enough gold to cover the joining fee.");
|
|
return;
|
|
}
|
|
|
|
if (iPlayerGuild > 0) /*Check if player is in a guild.*/
|
|
{
|
|
if (GetLocalInt (oPlayer, "Player_Guild_Rank") == 4)
|
|
PermanentlyRemoveGuild (iPlayerGuild);
|
|
|
|
else
|
|
{
|
|
RemoveGuildDataFromPlayer (oPlayer);
|
|
SendPGSGuildNotice (iPlayerGuild, GetName (oPlayer) + " has " +
|
|
"disbanded this guild, and joined another.");
|
|
}
|
|
}
|
|
|
|
//--------------------------------------------
|
|
//Save new guild information on the player.
|
|
//--------------------------------------------
|
|
SetPlayerGuildNumber (oPlayer, iJoiningGuild);
|
|
SetPlayerGuildName (oPlayer, GetModuleGuildName (iJoiningGuild));
|
|
SetPlayerGuildRank (oPlayer, 1);
|
|
SetLocalInt (oPlayer, "Player_Guild_Rank", 1);
|
|
SetLocalInt (oPlayer, "Player_Guild_Number", iJoiningGuild);
|
|
|
|
//--------------------------------------------
|
|
//Add joining fee to guild account.
|
|
//--------------------------------------------
|
|
TakeGoldFromCreature (iJoiningFee, oPlayer, TRUE);
|
|
SetModuleGuildAccountValue (iJoiningGuild, GetModuleGuildAccountValue
|
|
(iJoiningGuild) + iJoiningFee);
|
|
|
|
int iGuildColor = GetModuleGuildColor (iJoiningGuild);
|
|
//--------------------------------------------
|
|
//Apply guild cover effect to the new member.
|
|
//--------------------------------------------
|
|
if (iGuildColor != 0)
|
|
ApplyEffectToObject (DURATION_TYPE_PERMANENT, EffectVisualEffect
|
|
(iGuildColor), oPlayer);
|
|
|
|
//--------------------------------------------
|
|
//Check to give new member a Guild Journal.
|
|
//--------------------------------------------
|
|
if (!GetIsObjectValid (GetItemPossessedBy (oPlayer, "GuildJournal")))
|
|
CreateItemOnObject ("guildjournal", oPlayer);
|
|
|
|
//--------------------------------------------
|
|
//Update member count, and send guild notice.
|
|
//--------------------------------------------
|
|
SetModuleGuildMemberCount (iJoiningGuild, GetModuleGuildMemberCount
|
|
(iJoiningGuild) + 1);
|
|
SendPGSGuildNotice (iJoiningGuild, "Welcome " + GetName (oPlayer) + ", " +
|
|
"who has just joined the guild.");
|
|
|
|
//--------------------------------------------
|
|
//Set player factions based on guild faction.
|
|
//--------------------------------------------
|
|
SetPlayerGuildFactionToAll (oPlayer);
|
|
DeleteLocalInt (oPlayer, "In_Invite_Convo"); /*Can recieve invites again.*/
|
|
}
|