anpera.net
http://anpera.homeip.net/phpbb3/

Changes Log
http://anpera.homeip.net/phpbb3/viewtopic.php?f=26&t=317
Seite 2 von 3

Autor:  anpera [ So 12 Sep, 2004 04:18 ]
Betreff des Beitrags: 

Neues Komplettpaket mit allen vorangegangenen Änderungen und neuen Features:

-----> DOWNLOAD Version 11-09-2004 (Selbstentpackend, 842 kB) <-----

Dies wird der letzte Release von LoGD 0.9.7+jt ext (GER) sein. Eventuelle Bugfixes werde ich hier bekannt geben, aber größere Änderungen und neue Features wird es von meiner Seite aus für diese Version nicht mehr geben.

Wie immer sind alle bisher genannten Änderungen im neuen Paket enthalten. Außerdem enthält das Paket jetzt:
  • Das fertige Itemsystem. Eine Auflistung aller verfügbarer Item-Klassen und deren Verwendung ist in invhandler.php enthalten.
    • Finde Waffen und Rüstungen im Wald und statte dich damit aus, oder verkaufe sie.
    • Schenke deinen Freunden mehr oder weniger brauchbare Gegenstände.
    • Kaufe Möbel für dein Haus.
    • Kaufe oder finde Zauber, Fertigkeiten und Tränke und setze sie gegen deine Feinde ein.
    • Lerne, mit mächtigen Flüchen umzugehen.
    • Verdiene zusätzlich Geld durch den Verkauf von Beute, die du deinen Gegnern abnimmst.
    • Beispiel-Items
  • Grafischer Lebens- und Erfahrungsbalken.
  • Willkommenstorten mit Schutzfunktion für neue Charaktere und Geburtstagskrieger.
  • Das eigene Verhalten hat Auswirkungen auf die Ehre und diese auf das Verhalten der NPCs.
  • Neue, stabilere Zeitfunktion.
  • PHP 5 Kompatibilität.
  • Bugfixes, Balancing, Optimierungen und unzählige Kleinigkeiten.
Achtung! Dieses Paket eignet sich nicht als Update für eines der Vorgängerpakete oder für ältere Versionen! Für ein Update müssen sämtliche Änderung an der Datenbank manuell durchgeführt werden. Dazu gehört auch, die Passwörter zu verschlüsseln. Diese Version speichert Passwörter nur noch als MD5 Hash in der Datenbank und verlangt beim Login auch einen MD5 Hash dort vorzufinden.
Um für ein Update die Passwörter zu verschlüsseln, muss der SQL-Befehl "UPDATE accounts SET password=MD5(password)" ausgeführt werden. Aber VORSICHT! Eine MD5-Verschlüsselung kann nicht rückgängig gemacht werden!
Alle weiteren Änderungen an der Datenbank müssen der mitgelieferten SQL-Installationsdatei entlockt werden, was durchaus mit einigem Aufwand verbunden ist.


Informationen für eine (Neu-)Installation stehen wie immer im README.TXT.

Viel Spaß :)

Autor:  anpera [ Fr 17 Sep, 2004 03:27 ]
Betreff des Beitrags: 

Änderungen bis 17.6.2004 (nicht im Paket enthalten)
  • "Kein Betreff" in Betreffzeile von Olde Mails ohne Betreff (siehe hier)
  • In rebirth.php $session[user][charm]=1 durch $session[user][charm]=2 ersetzt (sonst war sofort Scheidung)
  • Rätseleditor (siehe hier)

Autor:  anpera [ Sa 18 Sep, 2004 17:15 ]
Betreff des Beitrags: 

  • setnewday.php: Meldung "Der Wanderhändler ist heute im Dorf" entfernt (die Meldung kam immer - Tabelle "news" will ich aber nicht LOCKen.)
  • academy.php: Beim Rausschmiss das Komma beim Gold entfernt (round)

Autor:  anpera [ Di 21 Sep, 2004 14:40 ]
Betreff des Beitrags: 

  • templates/cupertino.htm: Bugfix nach Zarzal (Klick)
  • common.php: Bugfix nach Zarzal: "/". entfernt. (Klick)

Autor:  anpera [ Mi 29 Sep, 2004 01:26 ]
Betreff des Beitrags: 

  • beggar.php ** Bugfix ** nach >> Gargamel
  • rebirth.php ** Bugfix ** Edelsteine wurden bei Erneuerung nicht auf 0 gesetzt.

Autor:  anpera [ Mo 04 Okt, 2004 13:04 ]
Betreff des Beitrags: 

  • riddleditor.php ** Bugfix ** nach Chaosmaker (Klick)
  • dragon.php ** Bugfix ** Geburtstage wurden nach einem Drachenkill gelöscht$this->bbcode_second_pass_code('', '---- öffne: dragon.php
    ---- finde (2x)
    ,"battlepoints"=>1

    ---- füge danach ein:
    ,"birthday"=>1')

Autor:  anpera [ Do 28 Okt, 2004 02:03 ]
Betreff des Beitrags: 

  • special/forestlake.php: * BUGFIX * In Zeile 241, 242 und 250 jeweils ein ",hvalue" entfernt.
  • vendor.php: In Zeile 39 "class='Schmuck' OR " und " OR class='Beute'" entfernt.
  • setnewday.php: Nach Zeile 152 eingefügt:
    db_query("DELETE FROM items WHERE owner=0 AND (class='Schmuck' OR class='Beute')");

Autor:  anpera [ Mo 01 Nov, 2004 18:32 ]
Betreff des Beitrags: 

  • academy.php, common.php: Man kann keine Zauber mehr kaufen, solange man einen Arenakampf laufen hat.
  • necromancer.php: Überflüssiges Leerzeichen im Text entfernt.

Autor:  anpera [ Mo 20 Dez, 2004 18:47 ]
Betreff des Beitrags: 

  • Chaosmaker's Haustiermod (mit leichten Modifikationen) eingebaut.
  • common.php: In der Vitalinfo Erfahrungs- und Edelsteinanzeige vertauscht
  • petition.php: Bei eingeloggten Spielern werden Felder für Charname und Mailaddy automatisch ausgefüllt. Ausserdem Regeln angepasst.
  • Kleinere Bugfixes an verschiedenen Stellen

Autor:  anpera [ Fr 31 Dez, 2004 13:26 ]
Betreff des Beitrags: 

  • flowers.php, gardens.php, invhandler.php, newday.php, prefs.php: Heckis Blumenbeet eingebaut
  • Kleineswesen von Harassim übernommen
  • Bellos Turm von Harassim übernommen
  • setnewday.php: Möbel, die nur noch einem Haus, aber keinem Besitzer mehr zugeordnet sind, werden automatisch gelöscht.

Autor:  anpera [ Mi 06 Apr, 2005 01:43 ]
Betreff des Beitrags: 

  • logs.php: Böser Fehler! ***BUGFIX***$this->bbcode_second_pass_code('', '## Finden:
    output('User '.implode(', ',$delnames).' aus folgendem Grund löschen: ');

    ## Ersetzen durch (das '/*' nicht vergessen!):
    output('User '.implode(', ',$delnames).' löschen? ');
    /*

    ## Finden:
    addnav('','logs.php?op=multi&act=dodeleteuser&searchby='.$_GET['searchby'].'&userid='.implode(',',$_POST['userid']));

    ## Ersetzen durch (das '*/' nicht vergessen!):
    */
    output("`n`n`c`b-- <a href='logs.php?op=multi&act=dodeleteuser&searchby=".$_GET['searchby']."&userid=".implode(',',$_POST['userid'])."'>L&ouml;schen best&auml;tigen</a>--`b`c`n`n`n",true);
    addnav('','logs.php?op=multi&act=dodeleteuser&searchby='.$_GET['searchby'].'&userid='.implode(',',$_POST['userid']));

    ## Finden:
    deleteuser($this,$_POST['stdreason'],$_POST['reason'],$_POST['savereason']);

    ## Ersetzen durch:
    $sql = "SELECT name from accounts WHERE acctid='{$this}'";
    $res = db_query($sql);
    // inventar und haus löschen und partner und ei freigeben
    if ($this==getsetting("hasegg",0)) savesetting("hasegg","0");
    $sql = "UPDATE items SET owner=0 WHERE owner=$this";
    db_query($sql);
    $sql = "UPDATE houses SET owner=0,status=3 WHERE owner=$this AND status=1";
    db_query($sql);
    $sql = "UPDATE houses SET owner=0,status=4 WHERE owner=$this AND status=0";
    db_query($sql);
    $sql = "UPDATE accounts SET charisma=0,marriedto=0 WHERE marriedto=$this";
    db_query($sql);
    $sql = "DELETE FROM pvp WHERE acctid2=$this OR acctid1=$this";
    db_query($sql) or die(db_error(LINK));
    $sql = "DELETE FROM accounts WHERE acctid='$this'";
    db_query($sql);
    output( db_affected_rows()." Benutzer gelöscht.`n");')

Autor:  anpera [ Mo 01 Aug, 2005 11:14 ]
Betreff des Beitrags: 

academy.php, Zeile 373:

if (db_num_rows($result)>$ppp) addnav("Mehr Zauber","academy.php?op1=bringmetolife&actino=buy&limit=".($page+1));
->
if (db_num_rows($result)>$ppp) addnav("Mehr Zauber","academy.php?op1=bringmetolife&action=buy&limit=".($page+1));

Autor:  anpera [ Do 11 Aug, 2005 17:53 ]
Betreff des Beitrags: 

Sicherheitspatch!

login.php:

Ersetze:
$sql = "SELECT * FROM accounts WHERE login = '$HTTP_POST_VARS[name]' AND password=MD5('$HTTP_POST_VARS[password]') AND locked=0";

durch:
$sql = "SELECT * FROM accounts WHERE login = '".addslashes(stripslashes($_POST['name']))."' AND password=MD5('{$_POST['password']}') AND locked=0";

Bei deaktivierten "magic_quotes" unbedingt sofort durchführen!!
(Danke an dragonslayer fürs Melden)

Autor:  anpera [ Sa 22 Okt, 2005 21:38 ]
Betreff des Beitrags: 

  • houses.php: Ich habe mal einen Versuch gestartet, die "Cheaterei" durch Hauskäufe und -Verkäufe einzudämmen, ohne auf die Möglichkeit, direkt zu verkaufen, verzichten zu müssen.
    Bei neuen Häusern wird jetzt auch das Fertigstellungsdatum gespeichert und das Alter eines Hauses angezeigt.
    Außerdem gibts einige kosmetische Änderungen und Bugfixes.
    Wer noch die Standard-houses.php aus ext GER 3 mit eingebautem Haustiermod von Chaosmaker nutzt, sollte diese mit der neuen houses.php ersetzen.

    Nötige Änderungen an der Datenbank stehen im Kopf der Datei.

    --> Source

    in der common.php ist die Funktion[php]...
    function getgamedate() {
    $date = explode('-',getsetting('gamedate','0005-01-01'));
    $find = array('%Y','%y','%m','%n','%d','%j');
    $replace = array($date[0],sprintf('%02d',$date[0]%100),sprintf('%02d',$date[1]),(int)$date[1],sprintf('%02d',$date[2]),(int)$date[2]);
    return str_replace($find,$replace,getsetting('gamedateformat','%Y-%m-%d'));
    }
    ...[/php]folgendermaßen zu erweitern, um das Erstellungsdatum eines Hauses richtig und im eingestellten Format anzuzeigen:[php]...
    function getgamedate($spieldatum=false) {
    $date = explode('-',getsetting('gamedate','0005-01-01'));
    if ($spieldatum) $date = explode('-',$spieldatum);
    $find = array('%Y','%y','%m','%n','%d','%j');
    $replace = array($date[0],sprintf('%02d',$date[0]%100),sprintf('%02d',$date[1]),(int)$date[1],sprintf('%02d',$date[2]),(int)$date[2]);
    return str_replace($find,$replace,getsetting('gamedateformat','%Y-%m-%d'));
    }
    ...[/php]
  • special/sacrificealtar.php: Komplett überarbeitet. Das Opfern von erschlagenen Monstern ist wieder möglich.
    --> Source
Bitte teilt mir eventuell noch enthaltene Fehler mit. :)

[edit]
Ahja, man kann jetzt auch in verlassene Häuser einbrechen. Die Bewohner dort sind also nicht mehr länger immun.

Autor:  anpera [ Mo 24 Okt, 2005 17:20 ]
Betreff des Beitrags: 

Hier nochmal die überarbeitete houses.php ohne Haustiermod.

Danke an Devilzimti

Dateianhänge:
Dateikommentar: houses.php ohne Haustiermod für ext GER 3
anpsneuehauserohnepetsbydevilzimti.zip [16.55 KIB]
153-mal heruntergeladen

Autor:  anpera [ Di 06 Dez, 2005 19:48 ]
Betreff des Beitrags: 

Anpassung an PHP 5.1.x

Nachdem die PHP-Entwickler mal wieder an der Datumsfunktion herumgebastelt haben und dadurch LoGD - mal wieder - fehlerhaft arbeitet, gibts hier eine Bastelanleitung, mit der LoGD wieder flott gemacht werden kann, ohne dabei mit anderen PHP-Version inkompatibel zu werden:
(Außerdem wird dadurch der "Windows does not support dates prior to midnight ..."-Bug endgültig behoben.)
  • common.php:[php]//// Finden:
    function sql_error($sql){


    //// DAVOR einfügen:
    function timetotomorrow($what="array"){
    $time = gametime();
    $tomorrow = mktime(0,0,0,date('m',$time),date('d',$time)+1,date('Y',$time));
    $secstotomorrow = $tomorrow-$time;
    $realsecstotomorrow = round($secstotomorrow / (int)getsetting("daysperday",4));
    $hours=(int)($realsecstotomorrow/60/60);
    $minutes=(int)($realsecstotomorrow/60)-$hours*60;
    $seconds=$realsecstotomorrow-($hours*3600+$minutes*60);
    if ($what=="hours"){
    return($hours);
    }elseif ($what=="minutes"){
    return($minutes);
    }elseif ($what=="seconds"){
    return($seconds);
    }elseif ($what=="realsecs"){
    return($realsecstotomorrow);
    }else{
    return(array(
    "hours"=>$hours,
    "minutes"=>$minutes,
    "seconds"=>$seconds,
    "realsecs"=>$realsecstotomorrow
    ));
    }
    }


    //// Finden (falls vorhanden):
    $time = gametime();
    $tomorrow = strtotime(date("Y-m-d H:i:s",$time)." + 1 day");
    $tomorrow = strtotime(date("Y-m-d 00:00:00",$tomorrow));
    $secstotomorrow = $tomorrow-$time;
    $realsecstotomorrow = round($secstotomorrow / (int)getsetting("daysperday",4));
    $charstat.=appoencode(templatereplace("statrow",array("title"=>"Nächster Tag","value"=>date("G\\h, i\\m, s\\s \\",strtotime("1980-01-01 00:00:00 + $realsecstotomorrow seconds")))),true);


    //// Ersetzen durch:
    $tomorrow = timetotomorrow();
    $charstat.=appoencode(templatereplace("statrow",array("title"=>"Nächster Tag","value"=>"{$tomorrow['hours']}h, {$tomorrow['minutes']}m, {$tomorrow['seconds']}s")),true);[/php]
  • about.php:[php]//// Finden:
    "Nächster neuer Tag: ".date("h:i:s a",strtotime(date("r")."+$realsecstotomorrow seconds"))." (".date("H\\h i\\m s\\s",strtotime("1975-06-10 00:00:00 + $realsecstotomorrow seconds"))."),viewonly",


    //// Ersetzen durch:
    "Nächster neuer Tag: ".date("h:i:s a",strtotime(date("r")."+$realsecstotomorrow seconds"))." (".timetotomorrow("hours")."h ".timetotomorrow("minutes")."m ".timetotomorrow("seconds")."s),viewonly",[/php]
  • index.php:[php]//// Finden:
    $time = gametime();
    // $tomorrow = strtotime(date("Y-m-d H:i:s",$time)." + 1 day");
    $tomorrow = mktime(0,0,0,date('m',$time),date('d',$time)+1,date('Y',$time));
    // $tomorrow = strtotime(date("Y-m-d 00:00:00",$tomorrow));
    $secstotomorrow = $tomorrow-$time;
    $realsecstotomorrow = round($secstotomorrow / (int)getsetting("daysperday",4));
    output("`@Nächster neuer Tag in: `3".date("G \\S\\t\\u\\n\\d\\e\\n, i \\M\\i\\n\\u\\t\\e\\n, s \\S\\e\\k\\u\\n\\d\\e\\n\\ \\(\\E\\c\\h\\t\\z\\e\\i\\t\\)",strtotime("1980-01-01 00:00:00 + $realsecstotomorrow seconds"))."`0`n`n");


    //// Ersetzen durch:
    $tomorrow=timetotomorrow();
    output("`@Nächster neuer Tag in: `3 {$tomorrow['hours']} Stunden, {$tomorrow['minutes']} Minuten, {$tomorrow['seconds']} Sekunden.`0`n`n");[/php]
  • graveyard.php:[php]//// Finden:
    $time = gametime();
    $tomorrow = strtotime(date("Y-m-d H:i:s",$time)." + 1 day");
    $tomorrow = strtotime(date("Y-m-d 00:00:00",$tomorrow));
    $secstotomorrow = $tomorrow-$time;
    $realsecstotomorrow = $secstotomorrow / getsetting("daysperday",4);
    output("`\$Ramius`) raunzt dir genervt entgegen, dass du noch `^".date("G\\h, i\\m, s\\s",strtotime("1980-01-01 00:00:00 + $realsecstotomorrow seconds"))."`) hier bleiben musst, wenn du nicht weiter für ihn arbeiten willst.");


    //// Ersetzen durch:
    $zeit=timetotomorrow();
    output("`\$Ramius`) raunzt dir genervt entgegen, dass du noch `^{$zeit['hours']} Stunden, {$zeit['minutes']} Minuten und {$zeit['seconds']} Sekunden hier bleiben musst, wenn du nicht weiter für ihn arbeiten willst.");[/php]

Autor:  anpera [ Mi 07 Dez, 2005 14:02 ]
Betreff des Beitrags: 

Noch eine Anpassung an PHP 5.0.5 und neuer:

setnewday.php:[php]////Finden:
for ($i=0;$i<db_num_rows($result);$i++){
list($key,$val)=each(db_fetch_assoc($result));
db_query("OPTIMIZE TABLE $val");
}


//// Ersetzen durch:
while ($helferlein=db_fetch_assoc($result)){
list($key,$val)=each($helferlein);
db_query("OPTIMIZE TABLE $val");
}[/php]

Autor:  anpera [ Sa 01 Apr, 2006 01:24 ]
Betreff des Beitrags: 

KRITISCHE LÜCKE!

Bitte führt so bald wie möglich und bis auf Weiteres folgende Notlösung in der source.php durch, um eure Server zu schützen:


[php]//// Finde:
$subdir = str_replace("\\","/",dirname($_SERVER['SCRIPT_NAME'])."/");

//// Danach einfügen:
while(substr($subdir,0,2)=="//" ){
$subdir = substr($subdir,1);
}[/php]

Autor:  anpera [ So 17 Sep, 2006 12:35 ]
Betreff des Beitrags: 

Deathbringer hat eine Lücke im Nav-System gemeldet, über die es den Spielern möglich ist, unerlaubte Scripte auszuführen.

Bis der Fehler behoben ist, kann folgender Patch die Cheaterei unterbinden, indem die Scripausführung abgebrochen wird, sobald jemand auf diese Weise zu Cheaten versucht:
[php]/// Öffne: common.php
/// Finde:
$SCRIPT_NAME=substr($SCRIPT_NAME,strrpos($SCRIPT_NAME,"/")+1);

/// Füge danach ein:
// Notfall-Fix gegen Cheaterei
if (substr($SCRIPT_NAME,strrpos($SCRIPT_NAME,".php"))!=".php" || strpos($PATH_INFO,".php")){
echo "Verarbeitung abgebrochen. Das Script ist ungueltig.";
exit();
}[/php]

Autor:  anpera [ Di 19 Sep, 2006 17:26 ]
Betreff des Beitrags: 

Schon wieder eine kritische Lücke gemeldet worden. Diesmal von Devilzimti.

Bitte unbedingt ausbessern!
Lösung aus DE v4:[php]//// Öffne: topwebvote.php
// Finden:
$id = $_POST['acctid'];

// Ersetzen durch:
$id = (int)($_POST['acctid']);[/php]

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