Guten Abend,
ich habe heute Nachmittag beim durchstöbern meiner alten Festplatte ein paar alte 'Arbeiten' von mir gefunden. Unter anderem, eine 'Arbeit' in der ich die Rassen aus der Datenbank und aus der newday.php genommen habe. Nun, nicht komplett aus der newday.php, lediglich die Verwaltung dieser.
Vielleicht mag diese 'Arbeit' nicht jeden ansprechen, muss sie aber auch nicht. Jeder hat ja bekanntlich einen anderen Geschmack.
Vorab ein kurzer Hinweis: Die Änderungen die man vornehmen muss, sind nicht gerade wenig.. Daher die ID's der Rassen wegfallen und lediglich deren Namen und auf Wunsch auch der Cname (Color-Name) in der Datenbank gespeichert werden.
Dann fangen wir einfach mal mit der Datenbankänderung an:
$this->bbcode_second_pass_code('', 'ALTER TABLE `accounts` CHANGE `race` `race` VARCHAR( 255 ) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL;
ALTER TABLE accounts ADD crace VARCHAR(255) NOT NULL;')
Für ein bereits vorhandenes LotGD:
$this->bbcode_second_pass_code('', 'UPDATE accounts SET race='';')
Nun die Änderungen:
Zu ändernde Dateien:
- forest.php
- inn.php
- newday.php
- superuser.php
- train.php
- academy.php
- gardens.php
- rebirth.php
- list.php
- bio.php
- special/goldmine.php
- special/cookies.php
- special/darkhorse.php
- special/tempel.php
- special/sacrificealtar.php
Suche in der Datei
forest.php folgende Codestelle:
$this->bbcode_second_pass_code('', 'if ($session['user']['race']==4) $badguy['creaturegold']*=1.1;
} else {
if ($session['user']['race']==4) $badguy['creaturegold']*=1.2;')
Und ersetze sie mit folgender:
$this->bbcode_second_pass_code('', 'if ($session['user']['race']=='Zwerg') $badguy['creaturegold']*=1.1;
} else {
if ($session['user']['race']=='Zwerg') $badguy['creaturegold']*=1.2;')
Speichern und schließen.
Suche nun in der Datei
inn.php folgende Codestelle:
$this->bbcode_second_pass_code('', 'if ($session['user']['race']==1) $session['user']['attack']--;
if ($session['user']['race']==2) $session['user']['defence']--;
if ($session['user']['race']==5) $session['user']['maxhitpoints']--;
$session['user']['race']=0;')
Ersetze sie mit folgender:
$this->bbcode_second_pass_code('', 'if ($session['user']['race']=='Troll') $session['user']['attack']--;
if ($session['user']['race']=='Elf') $session['user']['defence']--;
if ($session['user']['race']=='Echse') $session['user']['maxhitpoints']--;
$session['user']['race']='';')
Suche weiter:
$this->bbcode_second_pass_code('', 'if ($session[user][race]==4){')
Ersetze durch:
$this->bbcode_second_pass_code('', 'if ($session[user][race]=='Zwerg'){')
Öffne die
train.php und suche:
$this->bbcode_second_pass_code('', 'if ($master[creaturename] == "Gadriel the Elven Ranger" && $session[user][race] == 2) {')
Ersetze den Code mit:
$this->bbcode_second_pass_code('', 'if ($master[creaturename] == "Gadriel the Elven Ranger" && $session[user][race] == 'Elf') {')
Öffne nun die
academy.php und suche:
$this->bbcode_second_pass_code('', 'output("`vDurch schwere und reich verzierte Holztüren betrittst du den Zauberladen der Akademie. Hier bietet ein älterer Zauberer die Werke verschiedenster Akademie-Magier an, denen es gelungen ist, selbst magisch unbegabten ".($races[$session[user][race]])."en wie dir die Anwendung ihrer Zauber zu ermöglichen.");')
Ersetze sie durch:
$this->bbcode_second_pass_code('', 'output("`vDurch schwere und reich verzierte Holztüren betrittst du den Zauberladen der Akademie. Hier bietet ein älterer Zauberer die Werke verschiedenster Akademie-Magier an, denen es gelungen ist, selbst magisch unbegabten ".$session['user']['race']."en wie dir die Anwendung ihrer Zauber zu ermöglichen.");')
Öffne jetzt die
gardens.php und suche folgende Codestelle:
$this->bbcode_second_pass_code('', '} else if (($session[user][race]==2 && $row[race]==4) || ($session[user][race]==4 && $row[race]==2)){
output("Du wartest im Garten auf `6$row[name]`0 und beobachtest ".($session[user][sex]?"ihn":"sie")." eine Weile. Bei näherer Betrachtung stellst du aber fest, dass Elfen und Zwerge vielleicht doch niemals zusammen passen werden.");')
Ersetze die Stelle durch:
$this->bbcode_second_pass_code('', '} else if (($session[user][race]=='Elf' && $row[race]=='Zwerg') || ($session[user][race]=='Zwerg' && $row[race]=='Elf')){
output("Du wartest im Garten auf `6$row[name]`0 und beobachtest ".($session[user][sex]?"ihn":"sie")." eine Weile. Bei näherer Betrachtung stellst du aber fest, dass Elfen und Zwerge vielleicht doch niemals zusammen passen werden.");')
Suche weiter:
$this->bbcode_second_pass_code('', '$sql = "SELECT acctid,name,sex,level,race,login,marriedto,charisma FROM accounts WHERE ')
Ersetze durch:
$this->bbcode_second_pass_code('', '$sql = "SELECT acctid,name,sex,level,crace,login,marriedto,charisma FROM accounts WHERE ')
Suche weiter:
$this->bbcode_second_pass_code('', 'output($colraces[$row['race']]);')
Ersetze durch:
$this->bbcode_second_pass_code('', 'output($row['crace']);')
Öffne nun die
rebirth.php und suche: (2x)
$this->bbcode_second_pass_code('', '$session[user][race]=0;')
Ersetze 2x durch:
$this->bbcode_second_pass_code('', '$session[user][race]='';')
Öffne die
list.php und suche: (2x)
$this->bbcode_second_pass_code('', '2x laston,loggedin,lastip,uniqueid,race')
Ersetze 2x durch:
$this->bbcode_second_pass_code('', 'laston,loggedin,lastip,uniqueid,crace')
Suche weiter:
$this->bbcode_second_pass_code('', 'output($colraces[$row['race']]);')
Ersetze durch:
$this->bbcode_second_pass_code('', 'output($row['crace']);')
Öffne die
bio.php und suche:
$this->bbcode_second_pass_code('', 'output("`^Rasse: `@{$races[$row['race']]}`n");')
Ersetze durch:
$this->bbcode_second_pass_code('', 'output("`^Rasse: `@".$row['race']."`n");')
Folgende Änderungen sind für den Ordner
Special/.
Öffne die Datei
special/goldmine.php und suche:
$this->bbcode_second_pass_code('', 'if ($session['user']['race'] != 4) {')
Ersetze durch:
$this->bbcode_second_pass_code('', 'if ($session['user']['race'] != 'Zwerg') {')
Öffne nun die Datei
special/cookies.php und suche:
$this->bbcode_second_pass_code('', 'if ((int)$session[user][race] == 5)')
Ersetze durch:
$this->bbcode_second_pass_code('', 'if ((int)$session[user][race] == 'Echse')')
Suche weiter:
$this->bbcode_second_pass_code('', 'if ($session[user][race] == 5) $rand = e_rand(1,6); // Echsen kriegen eher schlechte Kekse')
Ersetze durch:
$this->bbcode_second_pass_code('', 'if ($session[user][race] == 'Echse') $rand = e_rand(1,6); // Echsen kriegen eher schlechte Kekse')
Suche weiter:
$this->bbcode_second_pass_code('', 'if ($session[user][race] == 1) {')
Ersetze durch:
$this->bbcode_second_pass_code('', 'if ($session[user][race] == 'Troll') {')
Suche weiter:
$this->bbcode_second_pass_code('', 'if ($session[user][race] == 4) {')
Ersetze durch:
$this->bbcode_second_pass_code('', 'if ($session[user][race] == 'Zwerg') {')
Öffne nun die Datei
special/darkhorse.php und suche:
$this->bbcode_second_pass_code('', 'switch($row['race']){
case 0:
output("`7Unbekannt`0");
break;
case 1:
output("`2Troll`0");
break;
case 2:
output("`^Elf`0");
break;
case 3:
output("`0Mensch`0");
break;
case 4:
output("`#Zwerg`0");
break;
case 5:
output("`5Echse`0");
break;
}')
Ersetze durch:
$this->bbcode_second_pass_code('', 'switch($row['race']){
case '':
case 'Unknown':
case 'Undefined':
output("`7Unbekannt`0");
break;
case 'Troll':
output("`2Troll`0");
break;
case 'Elf':
output("`^Elf`0");
break;
case 'Mensch':
output("`0Mensch`0");
break;
case 'Zwerg':
output("`#Zwerg`0");
break;
case 'Echse':
output("`5Echse`0");
break;
}')
Öffne nun die Datei
special/tempel.php und suche:
$this->bbcode_second_pass_code('', 'addnews("`%".$session[user][name]."`7 wurde in einem Tempel von $gott_charm zu einem besser aussehenden ".($races[$session[user][race]])." `7gemacht.");')
Und ersetze durch:
$this->bbcode_second_pass_code('', 'addnews("`%".$session[user][name]."`7 wurde in einem Tempel von $gott_charm zu einem besser aussehenden ".$session[user][race]." `7gemacht.");')
Öffne im betreffendem Ordnern nun die letzte Datei
special/sacrificealtar.php und suche:
$this->bbcode_second_pass_code('', 'if ($session['user']['race']==4) $badguy['creaturegold']*=1.1;
} else {
if ($session['user']['race']==4) $badguy['creaturegold']*=1.2;')
Ersetze durch:
$this->bbcode_second_pass_code('', 'if ($session['user']['race']=='Zwerg') $badguy['creaturegold']*=1.1;
} else {
if ($session['user']['race']=='Zwerg') $badguy['creaturegold']*=1.2;')
Öffne nun im Hauptordner die Datei
superuser.php und füge nach
$this->bbcode_second_pass_code('', 'if ($session[user][superuser]>=3) addnav("Stalltier Editor","mounts.php");')
Füge danach ein:
$this->bbcode_second_pass_code('', 'if ($session[user][superuser]>=3) addnav("Rasseneditor","races.php?editorStep=show");')
Öffne nun die letzte Datei
newday.php Füge am Anfang der Datei ein:
$this->bbcode_second_pass_code('', '$u = $session['user'];')
Suche:
$this->bbcode_second_pass_code('', '}else if ((int)$session['user']['race']==0){
page_header("Ein wenig über deine Vorgeschichte");
if ($_GET['setrace']!=""){
$session['user']['race']=(int)($_GET['setrace']);
switch($_GET['setrace']){
case "1":
$session['user']['attack']++;
output("`2Als Troll warst du immer auf dich alleine gestellt. Die Möglichkeiten des Kampfs sind dir nicht fremd.`n`^Du erhältst einen zusätzlichen Punkt auf deinen Angriffswert!");
break;
case "2":
$session['user']['defence']++;
output("`^Als Elf bist du dir immer allem bewusst, was um dich herum passiert. Nur sehr wenig kann dich überraschen.`nDu bekommst einen zusätzlichen Punkt auf deinen Verteidigungswert!");
break;
case "3":
output("`&Deine Größe und Stärke als Mensch erlaubt es dir, Waffen ohne große Anstrengungen zu führen und dadurch länger durchzuhalten, als andere Rassen.`n`^Du hast jeden Tag einen zusätzlichen Waldkampf!");
break;
case "4":
output("`#Als Zwerg fällt es dir leicht, den Wert bestimmter Güter besser einzuschätzen.`n`^Du bekommst mehr Gold durch Waldkämpfe!");
break;
case "5":
output("`5Als Echsenwesen hast du durch deine Häutungen einen klaren gesundheitlichen Vorteil gegenüber anderen Rassen.`n`^Du startest mit einem permanenten Lebenspunkt mehr!");
$session['user']['maxhitpoints']++;
break;
}
addnav("Weiter","newday.php?continue=1$resline");
if ($session['user']['dragonkills']==0 && $session['user']['level']==1){
addnews("`#{$session[user][name]} `#hat unsere Welt betreten. Willkommen!");
}
}else{
output("Wo bist du aufgewachsen?`n`n");
output("<a href='newday.php?setrace=1$resline'>In den Sümpfen von Glukmoore</a> als `2Troll`0, auf dich alleine gestellt seit dem Moment, als du aus der lederartigen Hülle deines Eis geschlüpft bist und aus den Knochen deiner ungeschlüpften Geschwister ein erstes Festmahl gemacht hast.`n`n",true);
output("<a href='newday.php?setrace=2$resline'>Hoch über den Bäumen</a> des Waldes Glorfindal, in zerbrechlich wirkenden, kunstvoll verzierten Bauten der `^Elfen`0, die so aussehen, als ob sie beim leisesten Windhauch zusammenstürzen würden und doch schon Jahrhunderte überdauern.`n`n",true);
output("<a href='newday.php?setrace=3$resline'>Im Flachland in der Stadt Romar</a>, der Stadt der `&Menschen`0. Du hast immer nur zu deinem Vater aufgesehen und bist jedem seiner Schritte gefolgt, bis er auszog den `@Grünen Drachen`0 zu vernichten und nie wieder gesehen wurde.`n`n",true);
output("<a href='newday.php?setrace=4$resline'>Tief in der Unterirdischen Festung Qexelcrag</a>, der Heimat der edlen und starken `#Zwerge`0, deren Verlangen nach Besitz und Reichtum in keinem Verhältnis zu ihrer Körpergrösse steht.`n`n",true);
output("<a href='newday.php?setrace=5$resline'>In einem Erdloch in der öden Landschaft</a> weit außerhalb jeder Siedlung bist du als `5Echsenwesen`0 aus deinem Ei geschlüpft. Artverwandt mit den Drachen hast du es nicht leicht in dieser Welt.`n`n",true);
addnav("Wähle deine Rasse");
addnav("`2Troll`0","newday.php?setrace=1$resline");
addnav("`^Elf`0","newday.php?setrace=2$resline");
addnav("`&Mensch`0","newday.php?setrace=3$resline");
addnav("`#Zwerg`0","newday.php?setrace=4$resline");
addnav("`5Echse`0","newday.php?setrace=5$resline");
addnav("","newday.php?setrace=1$resline");
addnav("","newday.php?setrace=2$resline");
addnav("","newday.php?setrace=3$resline");
addnav("","newday.php?setrace=4$resline");
addnav("","newday.php?setrace=5$resline");
}
}')
Ersetze den Code vollständig mit:
$this->bbcode_second_pass_code('', '}else if( $u['race'] == '' || $u['race'] == 'Unknown' || is_numeric($u['race']) ) {
switch( $_GET['setRace'] ) {
case 0:
page_header('Ein wenig über deine Vorgeschichte');
output('Wähle bitte deine Herkunft bzw. Rasse.`n`n');
$d = dir('Races');
while( false !== ($e = $d->read()) ) {
if( strpos($e, '.race') === false ) continue;
if( substr($e,0,1) == '.' ) continue;
$mySpliter = explode('_',$e);
if( $mySpliter[0] ) {
$i++;
$myData[$i] = unserialize(file_get_contents('Races/'.$e));
$myFiles[$i] = substr($e,2,-5);
}
}
addnav('Rassen');
if( count($myData) > 0 ) {
$i=0;
while( $i < count($myData) ) {
$i++;
if( $u['dragonkills'] >= $myData[$i][0]['Dk'] ) {
if( !getsetting('colorrace_newday',false) ) {
addnav($myData[$i]['Name'],'newday.php?setRace=1&file='.$myFiles[$i].$resline);
} else {
addnav($myData[$i]['cName'],'newday.php?setRace=1&file='.$myFiles[$i].$resline);
}
addnav('','newday.php?setRace=1&file='.$myFiles[$i].$resline);
$myExplode = explode('<LINK>',$myData[$i]['Desc']);
output('<a href="newday.php?setRace=1&file='.$myFiles[$i].$resline.'">'.$myExplode[0].'</a>'.$myExplode[1].'`n`n',true);
}
}
} else {
addnav('Undefined','newday.php?setRace=1&file=undefined'.$resline);
output('Leider sind derzeit keine Rassen verfügbar. Wende Dich bitte an einen Systemadministratoren!');
}
addnav('Aktualisieren','newday.php');
break;
case 1:
if( $_GET['file'] == 'undefined' ) {
page_header('Keine Rassen verfügbar!');
output('Leider sind keine Rassen verfügbar. - Wende Dich bitte an einen Systemadministrator.');
$session['user']['race'] = $_GET['file'];
} else {
$race = unserialize(file_get_contents('Races/1_'.$_GET['file'].'.race'));
page_header('Die '.$race['Plural']);
output($race['Final_Desc'],true);
$session['user']['race'] = $race['Name'];
$session['user']['crace'] = $race['cName'];
if( $race['Bonus_Feld'] !== FALSE && is_numeric($race['Bonus']) ) {
$session['user'][$race['Bonus_Feld']] += $race['Bonus'];
}
}
if( $session['user']['dragonkills'] == 0 && $session['user']['level'] = 1 ) {
addnews('`#'.$session[user][name].' `#hat unsere Welt betreten. Willkommen!');
}
addnav('Aktionen');
addnav('Weiter','newday.php?continue=1'.$resline);
break;
}
}')
Nun noch das Archiv runterladen und den Ordner Races mit den Dateien in den Hauptordner laden und die Datei races.php ebenso.
Feedback gern' gesehen.
Liebe Grüße,
Joel aka MySQL.
Nachtrag:
Der Ordner Races muss Schreibrechte besitzen und die neu erstellten Rassen werden Standardmäßig auf 'deaktiviert' gesetzt.