mirror of
https://bitbucket.org/seefoe/dsrc.git
synced 2026-07-31 01:15:55 -04:00
102 lines
2.2 KiB
Plaintext
102 lines
2.2 KiB
Plaintext
// guild.script - guild terminal menu handling
|
|
|
|
include library.guild;
|
|
include library.player_structure;
|
|
include library.sui;
|
|
include library.utils;
|
|
|
|
//inherits terminal.base.base_terminal;
|
|
|
|
// Triggers
|
|
|
|
//------------------------------------------------
|
|
// OnInitialize
|
|
//------------------------------------------------
|
|
|
|
|
|
trigger OnInitialize()
|
|
{
|
|
//omg people were creating/disbanding guilds just for the screen, time to stop that!
|
|
messageTo(self, "validateScreen",null , 1, false);
|
|
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
|
|
//------------------------------------------------
|
|
// OnGetAttributes
|
|
//------------------------------------------------
|
|
|
|
trigger OnGetAttributes(obj_id player, string[] names, string[] attribs)
|
|
{
|
|
int idx = utils.getValidAttributeIndex(names);
|
|
if (idx == -1)
|
|
return SCRIPT_CONTINUE;
|
|
|
|
if(exists(self))
|
|
{
|
|
int guildId = getIntObjVar(self, guild.REGISTERED_GUILD);
|
|
if(guildId > 0)
|
|
{
|
|
string guildName = guildGetName(guildId);
|
|
if(guildName != "")
|
|
{
|
|
names[idx] = "guild_name";
|
|
attribs[idx] = guildName;
|
|
idx++;
|
|
}
|
|
string guildAbbrev = guildGetAbbrev(guildId);
|
|
if(guildName != "")
|
|
{
|
|
names[idx] = "guild_abbrev";
|
|
attribs[idx] = guildAbbrev;
|
|
idx++;
|
|
}
|
|
|
|
obj_id guildLeader = guildGetLeader(guildId);
|
|
if(isValidId(guildLeader))
|
|
{
|
|
names[idx] = "guild_leader";
|
|
attribs[idx] = guildGetMemberName(guildId, guildLeader);
|
|
idx++;
|
|
}
|
|
}
|
|
}
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
|
|
trigger OnDestroy()
|
|
{
|
|
obj_id leaderPDA = getObjIdObjVar(self, guild.GUILD_SCREEN_ID);
|
|
if(isIdValid(leaderPDA))
|
|
{
|
|
dictionary dict = new dictionary();
|
|
dict.put("screenId", self);
|
|
messageTo(leaderPDA, "handlerGuildScreenDestroyed", dict, 1, true);
|
|
}
|
|
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
|
|
//MessageHandlers
|
|
|
|
//------------------------------------------------
|
|
|
|
messageHandler handlerGuildNewLeader()
|
|
{
|
|
destroyObject(self);
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
|
|
//------------------------------------------------
|
|
|
|
//this makes sure the screen has a valid guild it belongs to
|
|
messageHandler validateScreen()
|
|
{
|
|
int guildId = getIntObjVar(self, guild.REGISTERED_GUILD);
|
|
if(!guildExists(guildId))
|
|
{
|
|
destroyObject(self);
|
|
}
|
|
return SCRIPT_CONTINUE;
|
|
}
|