summaryrefslogtreecommitdiff
path: root/src/emap/script_buildins.c
diff options
context:
space:
mode:
authorJesusaves <cpntb1@ymail.com>2019-03-15 09:26:27 -0300
committerJesusaves <cpntb1@ymail.com>2019-03-15 09:26:27 -0300
commit02bb73a4a3c9b52a14da05997efd0381fe9f1403 (patch)
treee85648eca013e0801861700661aa9437033e57da /src/emap/script_buildins.c
parent030cf9c15212df4afcc0a34c1629a6c18b01c236 (diff)
downloadevol-hercules-02bb73a4a3c9b52a14da05997efd0381fe9f1403.tar.gz
evol-hercules-02bb73a4a3c9b52a14da05997efd0381fe9f1403.tar.bz2
evol-hercules-02bb73a4a3c9b52a14da05997efd0381fe9f1403.tar.xz
evol-hercules-02bb73a4a3c9b52a14da05997efd0381fe9f1403.zip
Replace built-in function getguildmember() to return their position too.
Fine grained control is everything %%e Just don't make it overly complex as usual ^.^
Diffstat (limited to 'src/emap/script_buildins.c')
-rw-r--r--src/emap/script_buildins.c45
1 files changed, 45 insertions, 0 deletions
diff --git a/src/emap/script_buildins.c b/src/emap/script_buildins.c
index 330b73b..4b41e0a 100644
--- a/src/emap/script_buildins.c
+++ b/src/emap/script_buildins.c
@@ -2466,3 +2466,48 @@ BUILDIN(setguildrole)
}
return true;
}
+
+/*==========================================
+ * Get the information of the members of a guild by type.
+ * getguildmember <guild_id>{,<type>};
+ * @param guild_id: ID of guild
+ * @param type:
+ * 0 : name (default)
+ * 1 : character ID
+ * 2 : account ID
+ *------------------------------------------*/
+BUILDIN(getguildmember)
+{
+ struct guild *g = NULL;
+ int j = 0;
+
+ g = guild->search(script_getnum(st,2));
+
+ if (g) {
+ int i, type = 0;
+
+ if (script_hasdata(st,3))
+ type = script_getnum(st,3);
+
+ for ( i = 0; i < MAX_GUILD; i++ ) {
+ if ( g->member[i].account_id ) {
+ switch (type) {
+ case 2:
+ mapreg->setreg(reference_uid(script->add_variable("$@guildmemberaid"), j),g->member[i].account_id);
+ break;
+ case 1:
+ mapreg->setreg(reference_uid(script->add_variable("$@guildmembercid"), j), g->member[i].char_id);
+ break;
+ default:
+ mapreg->setregstr(reference_uid(script->add_variable("$@guildmembername$"), j), g->member[i].name);
+ break;
+ }
+ mapreg->setreg(reference_uid(script->add_variable("$@guildmemberpos"), j),g->member[i].position);
+ j++;
+ }
+ }
+ }
+ mapreg->setreg(script->add_variable("$@guildmembercount"), j);
+ return true;
+}
+