\n";
}
}
$line .= "`5Da du es bereits bis hier her geschafft hast, darfst du neue N(on)P(layer)C(haracter)s bzw. N(icht)S(pieler)C(haraktere) zu erstellen.`n";
$line .= "Die Erstelung eines solchen NPCs kostet dich jeweils `4" . $cost['buy'] . " Punkte`5, dafür kannst du den NPC dann allerdings unbegrenzt Nutzen. Weitere Kosten fallen nur an, ";
$line .= "wenn du den NPC grundlegen ändern wilst, ihm also einen neuen Namen geben willst (`4" . $cost['name'] . " Punkte`5) oder seine Beschreibung ändern möchtest (`4" . $cost['text'] . " Punkte`5). ";
if (((int) $cost['avatar']) > 0)
$line .= "Das Ändern des Avatars für einen NPC kostet hingegen `4" . $cost['avatar'] . " Punkte";
$line .= "Für jeweils `4" . $cost['grant'] . "`5 Punkte kannst du einem weiteren Spieler (maximal " . getsetting('NPC_GRANT_MAX', 5) . ") Zugriff auf einen NPC gewähren.`n";
$line .= "`qDiese Kosten dienen dazu, es sinnvoll zu gestalten, auch mehr als einen NPC zu besitzten`n `iHinweis: Du kannst nur die Orte für den Kauf von NPC-Optionen betreten, für die du ausreichend Punkte hast`i`n`n";
$line .= "`c`9`b(Mit 'Punkte' sind hier übrigends deine `i" . (npc::getCurrency() == 'rp' ? 'RP-Punkte' : 'Donationpoints') . "`i gemeint)`b`0`c`n`n";
output($line);
if (npc::canbuy('BUY')) {
addnav("Operationen");
addnav("NPC erstellen", "npc.php?op=create");
}
if (count($npcs) > 0) {
$table = "
";
output($table, true);
}
} else { // Noch nicht aktiviert
$cost = npc::getCost('ACTIVATE');
$line .= "`qNoch gehörst du nicht zum Kreis der Eingeweihten, die Zugriff auf NPCs haben. Du darfst also noch keine NPCs erstellen oder steuern.`n";
$line .= "Wenn du dem jedoch abhilfe schaffen willst, musst du zunächst `4" . $cost['price'] . " " . ($cost['cur'] == 'dp' ? 'Donationpoints' : 'RP-Punkte') . "`q bezahlen.`n";
$line .= "Danach wirst du auf alle NPC-Funktionen zugriff haben und auch fremde NPCs nutzen können, wenn sie dir zur Verfügung gestellt werden.`n";
if (npc::canbuy('ACTIVATE')) {
$line .= "`^Glücklicherweise hast du ausreichend Punkte um die Kosten zu bezahlen.";
addnav("Freischalten");
addnav("Bezahlen (" . $cost['price'] . " " . ($cost['cur'] == 'dp' ? 'Donationpoints' : 'RP-Punkte') . ")", "npc.php?op=activate");
} else {
$line .= "`4Doch leider hast du nicht genügend Punkte. Du wirst wohl später wiederkommen müssen.";
}
output($line);
}
break;
case 'bio':
if (empty($_GET['id']))
redirect('npc.php');
$npc = new npc($_GET['id']);
output($npc->printBio(), true);
if ($_GET['ret']) {
$return = preg_replace("'[&?]c=[[:digit:]-]+'", "", $_GET['ret']);
$return = substr($return, strrpos($return, "/") + 1);
addnav("Zurück", $return);
}
break;
case 'edit':
$npc = new npc($_GET['id']);
page_header("NPC-Veränderung");
$link = "npc.php?op=update&what=" . $_GET['what'] . "&id=" . $_GET['id'];
addnav('', $link);
$line = "`c`^`bNPC-Veränderung`b`0`c`n ", true);
break;
case 'text':
$line .= "`6Hier kannst du die Beschreibung von " . $npc->getName() . " `6ändern:`n`n", true);
break;
case 'avatar':
$line .= "`6Hier kannst du den Avatar von " . $npc->getName() . " `6ändern: `n";
$line .= " ";
output($line, true);
break;
case 'grant':
$users = $npc->getAllPlayers();
$line .= "`6Folgende Spieler haben Zugriff auf " . $npc->getName() . "`6:`n";
$line .= "
\n\t
Entfernen
Spieler
\n";
$line .= "\n
`9Erlauben für:
\n";
$light = false;
foreach ($users as $id => $name) {
if ($id == $npc->getErsteller())
continue;
$line .= "
";
$line .= "
" . $name . "
";
$light = !$light;
}
$line .= "
`n";
$line .= "`c`i`^(Über die Unterste Zeile kannst du weiteren Leuten den Zugriff gewähren)`0`i`c";
output($line, true);
break;
}
break;
case 'update':
$npc = new npc($_GET['id']);
if ($_GET['what'] != 'grant') {
page_header("NPC-Veränderung abgeschlossen!");
$line = "`c`b`@NPC-Veränderung abgeschlossen!`0`b`c`n";
if ($npc->change(($_GET['what'] == 'name' ? 'name' : $_GET['what']), $_POST['val'])) {
$cost = npc::getCost(strtoupper($_GET['what']));
$line .= "`2Die Änderung wurde erfolgreich durchgeführt!`n`n";
$line .= "`3(Der/Die " . $outnames[$_GET['what']] . " wurde erfolgreich auf '" . $_POST['val'] . "'`3 gesetzt; ";
$line .= "Du hast dafür " . $cost['price'] . " Punkte bezahlt)`n";
} else {
$line .= "`4Es ist ein Fehler aufgetreten: Du scheinst nicht genügend Punkte zu haben!";
}
} else {
page_header("Überprüfung der Änderungsbefehle");
if (empty($_GET['valid'])) {
$line = '';
if (!empty($_POST['users'])) {
$line .= "`n`n`b`qFolgenden Spielern wird der Zugriff auf " . $npc->getName() . "`q entzogen:`b`0`n";
$line .= "
";
$all = $npc->getAllPlayers();
foreach ($_POST['users'] as $usr) {
if (!empty($all[$usr]))
$line .= "\t
" . $all[$usr] . "
\t\n";
}
$line .= "
`n`n";
}
if (!empty($_POST['val'])) {
$string = "%";
for($x = 0; $x < strlen($_POST['val']); $x++)
$string .= substr($_POST['val'], $x, 1) . "%";
$sql = "SELECT acctid ,name FROM accounts WHERE name LIKE '" . addslashes($string) . "'";
$result = db_query($sql);
$line .= "`^`bBitte gib an, wem genau du den Zugriff erlauben willst:`b`0\n\t`n";
}
if (empty($line)) {
$line = "Du hast keinerlei Änderungen übergeben, bitte versuche es noch einmal!";
} else {
$line = "`c`b`@Überprüfung der Änderungsbefehle`0`b`c`n";
addnav("", "npc.php?op=update&id=" . $_GET['id'] . "&what=grant&valid=true");
}
} else { // Bestätigt!
page_header("NPC-Veränderung abgeschlossen!");
$line = "`c`b`@NPC-Veränderung abgeschlossen!`0`b`c`n";
$npc->grantAcces($_POST['val']);
}
}
output($line, true);
break;
case 'create':
page_header("NPC-Schöpfung");
$line = "`c`b`^NPC-Schöpfung`0`b`c`n";
$line .= "`3Hier kannst du nun einen neuen NPC erschaffen. Gib die gewünschten Werte einfach in die folgenden Felder ein:`n";
$line .= "";
output($line, true);
addnav('', 'npc.php?op=insert');
break;
case 'insert':
page_header("NPC-Schöpfung (Abschluss)");
if (empty($_GET['valid'])) {
$names = npc::checkNameUsed($_POST['name']);
if($names !== false) { //Namensverifikation fehlgeschlagen
$line = "`c`4`bNamenskonflikt`b`0`c`n`\$Der Name `&'".$_POST['name']."`&'`$ ist leider schon in Nutzung - er kollidiert mit den folgenden:`9`n";
for($i=0;$i < count($names); $i++) {
$line .= sprintf("%s: '%s'`n",$names[$i]['typ'], $names[$i]['name']);
}
$line .= "`n`n`^bBitte ändere den Namen und versuche es noch einmal:`b`n";
$line .= " \n";
rawoutput($line);
addnav('', 'npc.php?op=insert');
} else {
$pre_npc = npc::previewCreate($_POST['name'], $_POST['text'], $session['user']['acctid'], $_POST['avatar']);
output("`c`gNun kannst du die eingegebenen Daten noch einmal Überprüfen. Wenn du zufrieden bist, klicke auf \"Erschaffen\", wenn nicht, kannst du es noch einmal neu versuchen.`c`n`n");
output($pre_npc->printBio(), true);
$form = "";
rawoutput($form);
addnav('', 'npc.php?op=insert&valid=true');
addnav('Zurück');
addnav('Noch einmal versuchen', 'npc.php?op=create');
}
} else {
$npc = npc::create($_POST['name'], $_POST['text'], $session['user']['acctid'], $_POST['avatar']);
if ($npc) {
$cost = npc::getCost();
output("`c`b`^Erfolgreiche Schöpfung!`0`b`c`n");
output("`tDein NPC '" . $_POST['name'] . "`t wurde erschaffen. Du kannst ihn nun benutzen.`n`n`i(Dir wurden dafür `4" . $cost['price'] . " Punkte`t abgezogen");
} else {
output("`c`b`$ Fehler! `0`b`c`n");
output("Die Erschaffund deines NPCs schlug fehl, eventuell hast du nicht genügend Punkte");
}
}
break;
case 'activate':
page_header("Aktivierung für die NPC-Nutzung");
if (npc::activate()) {
output("Du bist nun für die Nutzung von NPCs freigeschaltet!");
} else {
output("Uuups... da ist wohl was schie gegangen.. versuche es bitte noch einmal.");
}
break;
default:
page_header("NPC-Details");
$npcs = npc::getAllOf(0, false);
$list = "