summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--db/constants.conf13
-rw-r--r--npc/003-2/estard.txt56
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;