// Moubootaur Legends Script
// Author:
// Jesusalva
// Description:
// Guild Facility - Guild Settings (for guildmaster)
guilds,35,30,0 script Guild Management NPC_NO_SPRITE,{
function gmaster;
.@gid=getcharid(2);
.@admin=(getguildrole(.@gid, getcharid(3)) == GPOS_GUILDMASTER);
.@pos=getguildrole(.@gid, getcharid(3));
if (is_admin() && strcharinfo(0) == "Monster King") {
mesc ".:: Jesusalva's Interface ::.", 1;
mesc "Write Guild ID to modify - DO NOT INPUT IF YOU DON'T KNOW EXACTLY WHAT YOU ARE DOING", 1;
mesc "THAT IS IRREVERSIBLE, DON'T BE A DUMMY", 1;
next;
mesc("Correct gid: " + .@gid);
input .@gid;
if (.@gid <= 0)
close;
.@admin=true;
logmes(strcharinfo(0)+" logged in as super user in guild: "+getguildname(.@gid), LOGMES_ATCOMMAND);
}
mesc (".:: "+getguildname(.@gid)+" ::."), 1;
mesc l("Guild Master: @@", getguildmaster(.@gid)), 3;
if (getguildnxp(.@gid) > 0)
mesc l("Guild Lv @@, @@/@@ EXP to level up", getguildlvl(.@gid), fnum(getguildexp(.@gid)), fnum(getguildnxp(.@gid)));
else
mesc l("Guild Lv @@, @@/@@ EXP to level up", getguildlvl(.@gid), fnum(getguildexp(.@gid)), "???");
// mesc l("The average player level is @@", getguildavg(.@gid));
//mesc l("Your position on the guild: @@", getguildrole(.@gid, getcharid(3), true));
mesc l("You are the guild's \"%s\", and you contribute with %02d%% EXP.",
getguildpostitle(.@gid, .@pos),
getguildpostax(.@gid, .@pos));
//getguildpostitle(.@gid, .@pos)
// I forgot a function to get player title and allow any guildmaster to change this
if (.@admin)
{
next;
do
{
gmaster();
next;
mesc l("Do you want to do something else?");
} while (askyesno() == ASK_YES);
}
close;
function gmaster {
.@gid=getcharid(2);
mesn;
mesc l("Please select the Guild Position you want to change.");
menuint
l("Abort"), -1,
l("Guild Master"), GPOS_GUILDMASTER,
l("Vice Leader"), GPOS_VICELEADER,
l("Recruiter"), GPOS_RECRUITER,
l("Treasurer"), GPOS_TREASURER,
l("Normal Member"), GPOS_MEMBER,
l("Newbie"), GPOS_NEWBIE;
mes "";
.@idx=0+@menuret;
if (.@idx < 0)
return;
mesc l("The guild's \"%s\" currently contribute with %02d%% EXP.", getguildpostitle(.@gid, .@pos), getguildpostax(.@gid, .@idx));
mesc l("Please write how much in percent is EXP Tax for member (range: 0~50)"), 1;
input .@exptax;
if (.@exptax < 0 || .@exptax > 50)
return;
mesc l("Applying...");
switch (.@idx) {
case GPOS_GUILDMASTER:
.@name$="GuildMaster";
.@perm=GPERM_ALL;
break;
case GPOS_VICELEADER:
.@name$="ViceLeader";
.@perm=GPERM_ALL;
break;
case GPOS_RECRUITER:
.@name$="Recruiter";
.@perm=GPERM_INVITE;
break;
case GPOS_TREASURER:
.@name$="Treasurer";
.@perm=0;
break;
case GPOS_MEMBER:
.@name$="Member";
.@perm=0;
break;
case GPOS_NEWBIE:
.@name$="Newbie";
.@perm=0;
break;
default:
.@name$="Position "+(.@idx+1);
.@perm=0;
break;
}
//debugmes "setguildrole(%d,%d,%d,%d,\"%s\")", .@gid, .@idx, .@perm, .@exptax, .@name$;
setguildrole(.@gid, .@idx, .@perm, .@exptax, .@name$);
mesc l("Done!"), 3;
return;
}
OnInit:
.distance=1;
end;
}