diff options
-rw-r--r-- | db/constants.conf | 13 | ||||
-rw-r--r-- | npc/003-2/estard.txt | 56 |
2 files changed, 68 insertions, 1 deletions
diff --git a/db/constants.conf b/db/constants.conf index 534044696..ab833e4a3 100644 --- a/db/constants.conf +++ b/db/constants.conf @@ -3817,6 +3817,19 @@ constants_db: { equip_legs: 10 // <<< + comment__: "guild permissions" + GPERM_INVITE: 1 + GPERM_EXPEL: 16 + GPERM_ALL: 17 + + comment__: "guild positions" + GPOS_GUILDMASTER: 0 + GPOS_VICELEADER: 1 // pos2 + GPOS_RECRUITER: 2 // pos3 + GPOS_4: 3 // pos4 + GPOS_5: 4 // pos5 + GPOS_NEWBIE: 19 + comment__: "genders" G_FEMALE: 0 G_MALE: 1 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; |