anpera.net
https://anpera.dyndns.org/phpbb3/

Elfenburg, die Vorstellung
https://anpera.dyndns.org/phpbb3/viewtopic.php?f=34&t=1345
Seite 1 von 2

Autor:  Garlant [ Fr 06 Mai, 2005 12:48 ]
Betreff des Beitrags:  Elfenburg, die Vorstellung

Die Elfenburg ist ein kleiner komplexer Ort, welcher einige Sachen anbietet. In der Elfenburg befindet sich zur Zeit ein Gotteshaus sowie eine Möglichkeit sich einen extra Tittel ab zu Sahnen.

Einbauanleitung:

$this->bbcode_second_pass_code('', '
sql - Daten:
ALTER TABLE `accounts` ADD `siegel` int(10) unsigned NOT NULL default '0';
ALTER TABLE `accounts` ADD `adelstitel` varchar(32) NOT NULL default '';
ALTER TABLE `accounts` ADD `atitle` varchar(25) NOT NULL default '';
ALTER TABLE `accounts` ADD `befugnis` int(11) NOT NULL default '0';


Zu ändernde Daten:
bio.php
----------suche:----------------------
if (getsetting("activategamedate","0")==1 && $row[birthday]!="") output("`^Geburtstag: `@$row[birthday]`n");
----------füge darunter ein:----------
if ($row['siegel']==0) output("");
elseif ($row['siegel']>0) output("`^Gesellschaftstitel: `@".$row['adelstitel']."`n");
----------suche:----------------------
$result = db_query("SELECT login,name,level,sex,title,specialty,hashorse,acctid,age,marriedto,pvpflag,charisma,resurrections,bio,dragonkills,race,avatar,housekey,punch,reputation,birthday
----------füge daran :---------------
,adelstitel,siegel

village.php
----------suche:----------------------
addnav("Trainingslager","train.php");
----------füge darunter ein:----------
addnav("Elfenburg","elfenburg.php");

train.php
----------suche:----------------------
output("Du bekommst einen Verteidigungspunkt dazu!`n");
----------füge darunter ein:----------
//Burg der Elfen - Anfang
if ((($session['user']['level'])==10) || (($session['user']['dragonkills'])==5)){
$session['user']['befugnis']++;
output("`^Du kannst nun die Burg der Elfen betreten.`n`0");
}
if ((($session['user']['level'])==10) || (($session['user']['dragonkills'])==10)){
$session['user']['befugnis']++;
output("`^Die Elfen gewähren dir in ihrer Burg eine Audienz.`n`0");
}
if ((($session['user']['level'])==10) || (($session['user']['dragonkills'])==15)){
$session['user']['befugnis']++;
output("`^Die Elfen gewähren dir in ihrer Burg eine Audienz.`n`0");
}
if ((($session['user']['level'])==10) || (($session['user']['dragonkills'])==20)){
$session['user']['befugnis']++;
output("`^Die Elfen gewähren dir in ihrer Burg eine Audienz.`n`0");
}
if ((($session['user']['level'])==10) || (($session['user']['dragonkills'])==25)){
$session['user']['befugnis']++;
output("`^Die Elfen gewähren dir in ihrer Burg eine Audienz.`n`0");
}
if ((($session['user']['level'])==10) || (($session['user']['dragonkills'])==30)){
$session['user']['befugnis']++;
output("`^Die Elfen gewähren dir in ihrer Burg eine Audienz.`n`0");
}
if ((($session['user']['level'])==10) || (($session['user']['dragonkills'])==35)){
$session['user']['befugnis']++;
output("`^Die Elfen gewähren dir in ihrer Burg eine Audienz.`n`0");
}
if ((($session['user']['level'])==10) || (($session['user']['dragonkills'])==40)){
$session['user']['befugnis']++;
output("`^Die Elfen gewähren dir in ihrer Burg eine Audienz.`n`0");
}
//Burg der Elfen - Ende

dragon.php
----------suche 2x:----------------------
,"reputation"=>1
----------füge darunter ein:----------
,"siegel"=>1
,"befugnis"=>1
,"atitle"=>1
,"adelstitel"=>1

common.php
----------suche:----------------------
$beta = (getsetting("beta",0) == 1 || $session['user']['beta']==1);
----------füge darüber ein:-----------
$atitles = array(
0=>array("",""),
1=>array("Bauernsoldat","Bauernsoldatin"),
2=>array("Erfahrener Bauernsoldat","Erfahrene Bauernsoldatin"),
3=>array("Kleinbürger","Kleinbürgerin"),
4=>array("Bürger","Bürgerin"),
5=>array("Krieger","Kriegerin"),
6=>array("Elite Krieger","Elite Kriegerin"),
7=>array("Verarmter Adeliger","Verarmte Adelige"),
8=>array("Adliger","Adlige")
);')

Statt den Adelstiteln habe ich daraus Geselschaftstitel gemacht.
Einige Sachen die noch rausgestichen sind aus der elfenburg, werde ich demnächst nachreichen. Wenn Fehler vorhanden sein sollten, bitte hier reinschreiben.
Da wäre noch eine Bitte. Falls sich das hier als brauchbar erweißt, könnte es bitte in Hacks und Addons verschoben werden?(Danke)

Autor:  Eliwood [ Fr 06 Mai, 2005 12:51 ]
Betreff des Beitrags:  Re: Elfenburg, die Vorstellung

EIn kleiner Fehler ;)

Suche $this->bbcode_second_pass_code('', 'Tittel')

Ersetze mit $this->bbcode_second_pass_code('', 'Titel') :D

Autor:  Garlant [ Fr 06 Mai, 2005 12:56 ]
Betreff des Beitrags:  Re: Elfenburg, die Vorstellung

Eliwood hat geschrieben:
EIn kleiner Fehler ;)

Suche $this->bbcode_second_pass_code('', 'Tittel')

Ersetze mit $this->bbcode_second_pass_code('', 'Titel') :D

ja ok, werde mich gleich ransetzen und in jedem "Tittel" ein t abziehen.
jaja, die gute alte rechtschreibung xD

edit: Dies sollte jetzt berichtigt sein :pein:

Autor:  Arîzto [ Fr 06 Mai, 2005 13:50 ]
Betreff des Beitrags: 

[PHP] case "geben":
if ($session['user']['befugnis']>=0){
Output("`b Vorhof `b");
output("`n`n Du zeigst den Wachen deinen Passierschein.`n Daraufhin lassen sie riesige das Tor öffnen und du schreitest hindurch.`n
`n Auf der anderen Seite des Tores angekommen, siehst du schon vom Tor aus, eine weitere Mauer, welche bei Angriffen als Zwinger dient. An dieser Mauer
sind ringsherum acht große Rundtürme zu sehen, von denen wiederum das Grüne Banner herab hängt. Auch scheint die zweite Mauer wesentlich stärker
befestigt zu sein, als die erste. Eilig läufst du zu dem kleinerem Tor, welches offen steht.");
addnav("Hindurchgehen","elfenburg.php?op=gehen");
addnav("Umkehren","village.php");
}
else
if ($session['user']['befugnis']<=1){
output("Du versuchst den Wachen zu erklären das du nicht weißt was sie damit meinen. Doch bevor du das erklären kannst, ");[/PHP]
Muss das nicht ['befugnis']<=0 sein? Bzw. <1?!?

Autor:  Garlant [ Fr 06 Mai, 2005 14:13 ]
Betreff des Beitrags: 

Nein eigentlich nicht, da es gleich bleibt.
>=0
<=1

ob es nun so oder so steht ist doch egal,
bei beidem wird gesagt das der wert unter 1 liegt oder?

Autor:  Arîzto [ Fr 06 Mai, 2005 14:20 ]
Betreff des Beitrags: 

Ähm, nein?
>=0 = mind. 0
<=1 = max. 1
:?

Autor:  Meteora [ Fr 06 Mai, 2005 14:21 ]
Betreff des Beitrags: 

Garlant hat geschrieben:
Nein eigentlich nicht, da es gleich bleibt.
>=0
<=1

ob es nun so oder so steht ist doch egal,
bei beidem wird gesagt das der wert unter 1 liegt oder?


falsch ;)

1. Grösser Gleich Null (von 0 - unendlich)
2. Kleiner gleich eins (von 1 - minusunendlich)

Autor:  Garlant [ Fr 06 Mai, 2005 14:27 ]
Betreff des Beitrags: 

Trotzdem läuft es ohne Probleme :baeh:
Na dann, werde estrotzdem mal ändern ;)

Autor:  Arîzto [ Fr 06 Mai, 2005 14:33 ]
Betreff des Beitrags: 

Was hats eigentlich mit denen hier auf sich? :)
"Waffenschmied","festungsschmiedw.php"
"Rüstungsschmied","festungsschmiedr.php
"Taverne","festungstaverne.php
"Buch der toten einsehen","elfenburg.php?op=toten"

Kommen die noch, oder behälst die für dich?

Autor:  Garlant [ Fr 06 Mai, 2005 14:35 ]
Betreff des Beitrags: 

Das werde ich demnächst noch nachreichen.
Habe es aber ersteinmal rausgenommen, da dies noch nicht fertig ist. Steht ja auch oben drin.

Autor:  Arîzto [ Fr 06 Mai, 2005 15:17 ]
Betreff des Beitrags: 

Nichts vergessen... hübscher Fehler, keine Ahnung :???:
[code]Warning: mysql_fetch_assoc(): 15 is not a valid MySQL result resource in /srv/www/htdocs/web39/html/dbwrapper.php on line 81

Warning: mysql_free_result(): 15 is not a valid MySQL result resource in /srv/www/htdocs/web39/html/dbwrapper.php on line 129

Warning: mysql_fetch_assoc(): 15 is not a valid MySQL result resource in /srv/www/htdocs/web39/html/dbwrapper.php on line 81

Warning: mysql_free_result(): 15 is not a valid MySQL result resource in /srv/www/htdocs/web39/html/dbwrapper.php on line 129

Warning: mysql_fetch_assoc(): 15 is not a valid MySQL result resource in /srv/www/htdocs/web39/html/dbwrapper.php on line 81

Warning: mysql_free_result(): 15 is not a valid MySQL result resource in /srv/www/htdocs/web39/html/dbwrapper.php on line 129

Warning: mysql_fetch_assoc(): 15 is not a valid MySQL result resource in /srv/www/htdocs/web39/html/dbwrapper.php on line 81

Warning: mysql_free_result(): 15 is not a valid MySQL result resource in /srv/www/htdocs/web39/html/dbwrapper.php on line 129

Warning: mysql_fetch_assoc(): 15 is not a valid MySQL result resource in /srv/www/htdocs/web39/html/dbwrapper.php on line 81

Warning: mysql_free_result(): 15 is not a valid MySQL result resource in /srv/www/htdocs/web39/html/dbwrapper.php on line 129

Warning: mysql_fetch_assoc(): 15 is not a valid MySQL result resource in /srv/www/htdocs/web39/html/dbwrapper.php on line 81

Warning: mysql_free_result(): 15 is not a valid MySQL result resource in /srv/www/htdocs/web39/html/dbwrapper.php on line 129

Warning: mysql_fetch_assoc(): 15 is not a valid MySQL result resource in /srv/www/htdocs/web39/html/dbwrapper.php on line 81

Warning: mysql_free_result(): 15 is not a valid MySQL result resource in /srv/www/htdocs/web39/html/dbwrapper.php on line 129

Warning: mysql_fetch_assoc(): 15 is not a valid MySQL result resource in /srv/www/htdocs/web39/html/dbwrapper.php on line 81

Warning: mysql_free_result(): 15 is not a valid MySQL result resource in /srv/www/htdocs/web39/html/dbwrapper.php on line 129

Warning: mysql_fetch_assoc(): 15 is not a valid MySQL result resource in /srv/www/htdocs/web39/html/dbwrapper.php on line 81

Warning: mysql_free_result(): 15 is not a valid MySQL result resource in /srv/www/htdocs/web39/html/dbwrapper.php on line 129

Warning: mysql_fetch_assoc(): 15 is not a valid MySQL result resource in /srv/www/htdocs/web39/html/dbwrapper.php on line 81

Warning: mysql_free_result(): 15 is not a valid MySQL result resource in /srv/www/htdocs/web39/html/dbwrapper.php on line 129

Warning: Cannot modify header information - headers already sent by (output started at /srv/www/htdocs/web39/html/dbwrapper.php:81) in /srv/www/htdocs/web39/html/common.php on line 62
‹xí[[sÛ¸~Nfö? ì4´»².¾Å±-µ²å8é:—±

Autor:  Garlant [ Fr 06 Mai, 2005 15:32 ]
Betreff des Beitrags: 

und wann taucht der Fehler auf?
Ich habe eigentlich nix an der dbwrapper gemacht und bei mir kommt auch kein fehler.

Autor:  Arîzto [ Fr 06 Mai, 2005 16:27 ]
Betreff des Beitrags: 

Naja, der kommt sobald ich auf "Elfenburg" klicke... ich kann da zwar "ungehindert" alles machen, muss abr häufig alles ausser meiner Domain aus der Adresszeile löschen, damits wieder geht...

Autor:  Chaosmaker [ Fr 06 Mai, 2005 17:17 ]
Betreff des Beitrags: 

Vermutlich hast Du die nötigen DB-Änderungen nicht vorgenommen - was auch nicht verwundert, da das hier ziemlich falsch ist und so nicht funktionieren kann:
$this->bbcode_second_pass_code('', 'AFTER TABLE 'accounts' ADD `siegel` int(11) unsigned NOT NULL default '0',
AFTER TABLE 'accounts' ADD `adelstitel` varchar(32) NOT NULL default '',
AFTER TABLE 'accounts' ADD `atitle` varchar(25) NOT NULL default '',
AFTER TABLE 'accounts' ADD `befugnis` int(11) NOT NULL default '0', ')

Übrigens ist dies hier immer noch falsch:
$this->bbcode_second_pass_code('', ' case "geben":
if ($session['user']['befugnis']>=0){
[...]
}
else
if ($session['user']['befugnis']==0){')
Der 2. Fall wird so niemals ausgeführt werden.
Beim 1. muß es if ($session['user']['befugnis']>0) heißen, beim 2. kann das komplette if weg (da das else genügt).

Autor:  Garlant [ Fr 06 Mai, 2005 17:29 ]
Betreff des Beitrags: 

Hmm, hast du Befugnis mindestens 1 um in die Elfenburg rein zu kommen?
Mit deiner Fehlermeldung kann ich nicht wirklich etwas anfangen.

Die Fehlermeldungen würden bei mir hier liegen:
dbwrapper 81:
$this->bbcode_second_pass_code('', 'function db_fetch_assoc($result){
global $dbtimethishit;
$dbtimethishit -= getmicrotime();
$fname = DBTYPE."_fetch_assoc";
81 $r = $fname($result);
$dbtimethishit += getmicrotime();
return $r;')

dbwrapper 129:
$this->bbcode_second_pass_code('', 'function db_free_result($result){
global $dbtimethishit;
$dbtimethishit -= getmicrotime();
$fname = DBTYPE."_free_result";
129 $r = $fname($result);
$dbtimethishit += getmicrotime();
return $r;')

common 62
$this->bbcode_second_pass_code('', 'if (isset($encode)){
62 header("Content-Encoding: $encode");
$encode_size = strlen($input);
$encode_crc = crc32($input);
$out = "\x1f\x8b\x08\x00\x00\x00\x00\x00";
$out .= substr(gzcompress($input, 1), 0, -4);
$out .= pack("V", $encode_crc);
$out .= pack("V", $encode_size);')

Interessant wäre es zu wissen, ob der Fehler nur bei dir kommt oder auch bei anderen logds

Autor:  Arîzto [ Fr 06 Mai, 2005 17:49 ]
Betreff des Beitrags: 

SQL habe ich ausgeführt...

Jo, die Stellen sind's bei mir auch ... :?

Autor:  Garlant [ Fr 06 Mai, 2005 18:09 ]
Betreff des Beitrags: 

Chaosmaker hat geschrieben:
Vermutlich hast Du die nötigen DB-Änderungen nicht vorgenommen - was auch nicht verwundert, da das hier ziemlich falsch ist und so nicht funktionieren kann:


Hmm, ja gut vielleicht muss einiges noch optimiert werden, aber wenn es nicht laufen würde, hätte ich es sicherlich nicht online gestellt, also würde ich nicht so "vorlaut" sein. :nene:
Wenn man das nemlich in den falschen Hals bekommt...

edit:
das was du vorgeschlagen hast(das 2 if entfernen) mache ich lieber nicht, da dann beides ausgelöst wird ;)

Autor:  Chaosmaker [ Fr 06 Mai, 2005 20:20 ]
Betreff des Beitrags: 

Garlant hat geschrieben:
aber wenn es nicht laufen würde, hätte ich es sicherlich nicht online gestellt, also würde ich nicht so "vorlaut" sein. :nene:
Wenn man das nemlich in den falschen Hals bekommt...

1. hab ich nicht behauptet, daß es bei Dir nicht läuft.
2. bin ich nicht vorlaut, sondern weise auf grobe Fehler in Deinen SQL-Statements hin, die so zu Fehlern führen.
Also solltest Du lieber etwas vorsichtiger sein, wenn Du mir so etwas vorwirfst, denn ich weiß - offenbar im Gegensatz zu Dir - sehr wohl bescheid, worüber ich schreibe, wenn es um PHP/MySQL geht.

Zitat:
das was du vorgeschlagen hast(das 2 if entfernen) mache ich lieber nicht, da dann beides ausgelöst wird ;)

Das ist nicht richtig, da es sich nach wie vor im else-Zweig befinden würde (die entsprechende korrekte Klammerung vorausgesetzt).

Autor:  Garlant [ Fr 06 Mai, 2005 20:41 ]
Betreff des Beitrags: 

zu 2. ich habe nie behauptet das du keine oder weniger Ahnung in Sachen php hasst. Doch hätte das "kann nicht funktionieren" näher deffiniert werden können. Denn so hatte ich das Gefühl das es allgemein bezpogen war. So kommt auch 1. zu stande.

zu 3.
$this->bbcode_second_pass_code('', 'case "geben":
if ($session...
}
else
output("Du versuchst den Wachen zu erklären das du nicht weißt was sie damit meinen. Doch bevor du das erklären kannst, ");
output("wirst du als Bettler angesehen und verjagt.`n`n Du wurdest von einer der Wachen mit einer Lanze verletzt.");
$session['user']['reputation']-=2;
$lvl = $session['user']['level'];
$hurt = e_rand(5*$lvl,10*$lvl);
$session['user']['hitpoints']-=$hurt;
output("`n`n`^Du verlierst $hurt Lebenspunkte!`n");
if ($session['user']['hitpoints']<0) {
output("`4Du bist `bTOT`b!!!`nDu verlierst glücklicherweise weder Gold noch Erfahrungspunkte.`nDu kannst morgen wieder kämpfen.");
addnav("Zu den Schatten","shades.php");
addnav("Zu den News","news.php");
addnews($session['user']['name']." `0starb beim Rauswurf, aus der Festung der Waldelfen.");
}
break;')
Dann sollte dies ja so richtig sein oder?

Autor:  Chaosmaker [ Fr 06 Mai, 2005 20:47 ]
Betreff des Beitrags: 

$this->bbcode_second_pass_code('', ' case "geben":
if ($session['user']['befugnis']>0){
[...]
}
else {
output("Du versuchst den Wachen zu erklären das du nicht weißt was sie damit meinen. Doch bevor du das erklären kannst, ");
output("wirst du als Bettler angesehen und verjagt.`n`n Du wurdest von einer der Wachen mit einer Lanze verletzt.");
$session['user']['reputation']-=2;
$lvl = $session['user']['level'];
$hurt = e_rand(5*$lvl,10*$lvl);
$session['user']['hitpoints']-=$hurt;
output("`n`n`^Du verlierst $hurt Lebenspunkte!`n");
if ($session['user']['hitpoints']<0) {
output("`4Du bist `bTOT`b!!!`nDu verlierst glücklicherweise weder Gold noch Erfahrungspunkte.`nDu kannst morgen wieder kämpfen.");
addnav("Zu den Schatten","shades.php");
addnav("Zu den News","news.php");
addnews($session['user']['name']." `0starb beim Rauswurf, aus der Festung der Waldelfen.");
}
}
break;')
So wäre es richtig (die Klammersetzung ist wichtig, da es sich sonst nur auf die erste Zeile nach dem else bezieht).
Auf die Art wird im Falle, daß die Befugnis nicht über 0 ist nicht noch eine weitere Prüfung ausgeführt, was den Code beschleunigt und außerdem kürzer macht.

Seite 1 von 2 Alle Zeiten sind UTC + 1 Stunde
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/