From 76ed7e5d407c70a63555faddacaa435dfcd02c0b Mon Sep 17 00:00:00 2001 From: Jesusaves Date: Tue, 12 Mar 2019 03:34:16 -0300 Subject: Add full server-side support for guilds on Estard. This draft will become TMW2 Guild Manager. I'm amazed, everything worked as 4144 said it would. Customized EXP donation for guild roles (capped at 50%)? Check. Setting a Vice Leader (kick+invite) and a Recruiter (invite)? Check. Levelling up your Guild because Guild need levels (NYI)? Check. ...Increase Guild Maximum Member count? Oops! Not available yet. But seems like Hercules can take care of that for us, with GLvl. --- npc/003-2/estard.txt | 56 +++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 55 insertions(+), 1 deletion(-) (limited to 'npc/003-2/estard.txt') diff --git a/npc/003-2/estard.txt b/npc/003-2/estard.txt index c809a61d5..0da03d79c 100644 --- a/npc/003-2/estard.txt +++ b/npc/003-2/estard.txt @@ -83,6 +83,56 @@ return; } + 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("Position 4"), GPOS_4, + l("Position 5"), GPOS_5, + l("Newbie"), GPOS_NEWBIE; + mes ""; + .@idx=0+@menuret; + if (.@idx < 0) + return; + 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_NEWBIE: + .@name$="Newbie"; + .@perm=0; + break; + default: + .@name$="Position "+(.@idx+1); + .@perm=0; + break; + } + debugmes "sgr(%d,%d,%d,%d,\"%s\")", .@gid, .@idx, .@perm, .@exptax, .@name$; + .@re=setguildrole(.@gid, .@idx, .@perm, .@exptax, .@name$); + mesc l("Done"), 3; + debugmes "Result: %d", .@re; + return; + } + function ginfo { .@gid=getcharid(2); mesn; @@ -132,6 +182,7 @@ rif(getq(General_Guild) && getcharid(2) <= 0 && countitem(Emperium) == 0, l("I would like to create a guild.")), rif(getq(General_Guild) && getcharid(2) > 0, l("I would like to open Guild Storage.")), rif(is_admin() && getcharid(2) > 0, l("I would like to read Guild Information.")), + rif(is_admin() && getcharid(2) > 0, l("I would like to edit Roles.")), menuaction(l("Quit")); switch (@menu) @@ -151,8 +202,11 @@ case 5: ginfo; break; + case 6: + gmaster; + break; } - } while (@menu < 6); + } while (@menu < 7); closedialog; goodbye; -- cgit v1.2.3-60-g2f50