I worked with Cyril today, and got something working. He's currently working on interfacing with a GUI, so he might come up with some more questions. Here are the scripts, for future reference:
DB NPC (db_registeredguilds)
PHP Code:
function onInitialized() {
onCreated();
}
function onCreated() {
if (this.guilds.type() != 2) {
this.guilds = new TStaticVar();
}
}
public function RegistersdeServer() {
if (player.guild == "") {
say2("Put on guild tag first!");
return;
}
if (this.guilds.(@player.guild) == null) {
this.guilds.(@player.guild) = {player.account};
say2("Guild " @ player.guild @ " is registered #bby " @ player.account @ "!");
}
else {
say2("This guild is already registered");
}
}
public function AddMemRegGuildServer(member) {
if (player.guild == "") {
say2("Put on guild tag first!");
return;
}
if (hasAccess()) {
if (!(temp.member in this.guilds.(@player.guild))) {
this.guilds.(@player.guild).add(temp.member);
say2(temp.member @ "#badded to#b" @ player.guild);
}
else {
say2(temp.member @ "#bis already in#b" @ player.guild);
}
}
else {
say2("You do not have rights!");
}
}
public function DelMemRegGuildServer(member) {
if (player.guild == "") {
say2("Put on guild tag first!");
return;
}
if (hasAccess()) {
this.guilds.(@player.guild).remove(temp.member);
say2(temp.member @ "#bremoved from#b" @ player.guild);
}
else {
say2("You do not have rights!");
}
}
public function hasAccess() {
return (player.account in this.guilds.(@player.guild));
}
public function getGuildList() {
return this.guilds.getdynamicvarnames();
}
Level Script:
PHP Code:
function onCreated() {
this.db = findnpc("db_registeredguilds");
}
function onPlayerChats() {
if (player.chat == "registerguild") {
this.db.RegistersdeServer();
}
if (player.chat.starts("addmemberaccess")) {
this.db.AddMemRegGuildServer(player.chat.tokenize()[1]);
}
if (player.chat.starts("removememberaccess")) {
this.db.DelMemRegGuildServer(player.chat.tokenize()[1]);
}
}
There's a million other ways to do this, but I also wanted to show him how public functions worked. We'll leave SQL for another day

.