LoT_PRC8/_module/nss/pgs_inv_accept.nss
Jaysyn904 ec287507a1 Initial upload
Initial upload.
2023-09-25 21:32:17 -04:00

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.*/
}