LoGD Standardrelease steht hier zum Download zur Verfügung!

Zeige Source: /bank.php

Hier klicken für den Source, ODER
Weitere Dateien, von denen du den Quelltext sehen kannst:
(Das Lesen des Source, um sich spielerische Vorteile zu verschaffen, ist nicht erlaubt. Solltest du Schwachstellen oder Fehler entdecken, bist du als Spieler verpflichtet, diese zu melden.)

Source von: /bank.php

<?php
/*
2024-05-05  aragon  php8 fix
*/

require_once "common.php";
page_header("Die alte Bank");
output("`^`c`bDie alte Stadtbank`b`c`6");

$op $_GET['op'] ?? "";
$conf unserialize(gettexts('donationconfig'));
if (
$op == "") {
  
checkday();
  
output("Als du die kostbar verzierte Halle der Stadtbank betrittst, lässt du den Lärm der Straßen hinter dir, als würden die Mauern diesen schlucken. ");
  
output("`nEin Mann in einem gut sitzenden Leinenanzug mit perfekt gezogenem Scheitel und Monokel sieht dich durch die Gitterstäbe des Geldraumes an. ");
  
output("`n\"`5Guter Mann,`6\" sagst du, durch sein Aussehen an deine Höflichkeit erinnert, \"`5könntet Ihr mir sagen, wieviel Gold in meiner Truhe ruht?`6\"");
  
output("`nEr schaut dich kurz an und mustert dich von oben bis unten, bis er sich endlich umwendet und eine kleine Schatulle aus den Regalen zieht. Als er sie öffnet, lächelt er süßlich und sagt: ");
  
output("`n`n\"`3Nun " $session["user"]["name"] . "`3, wie ich sehe, habt Ihr `^" abs($session["user"]["goldinbank"]) . " Goldstücke`3 ");
  if (
$session["user"]["goldinbank"] < 0) {
    
output("`&Schulden`3 ");
  }
  
output("bei unserer renommierten Bank. Kann ich sonst noch etwas für Euch tun?`6\" ");

  
/*
  output("Ein kleiner Mann in einem makellosen Anzug mit Lesebrille grüßt dich.`n`n");
  output("\"`5Hallo guter Mann,`6\" grüßt du zurück, \"`5Kann ich meinen Kontostand an diesem wunderschönen Tag einsehen?`6\"`n`n");
  output("Der Bankier murmelt \"`3Hmm, ".$session["user"]["name"]."`3, mal sehen.....`6\" während er die Seiten in seinem Buch ");
  output("sorgfältig überfliegt.  ");
        if ($session["user"]["goldinbank"]>=0){
                output("\"`3Aah ja, hier ist es. Du hast  `^".$session["user"]["goldinbank"]." Gold`3 bei unserer ");
                output("renommierten Bank.  Kann ich sonst noch etwas für dich tun?`6\"");
        }else{
                output("\"`3Aah ja, hier ist es.  Du hast `&Schulden`3 in Höhe von `^".abs($session["user"]["goldinbank"])." Gold`3 bei unserer ");
                output("renommierten Bank.  Kann ich sonst noch etwas für dich tun?`6\"`n`n(`iSchulden verfallen durch einen Drachenkill nicht!`i)");
        }
        */


  //Anfang Angels Edelsteinmod for www.pandea-island.de
} elseif ($_GET['op'] == "gems") {
  
/* gems-in-bank negativ-prevention */
  
if ($session['user']['gemsinbank'] < 1$session['user']['gemsinbank'] = 0;

  if (
$session['user']['putingems'] == 1) {
    
output("`6Der kleine alte Bankier schüttelt den Kopf und deutet auf das Kleingedruckte des Vertrages den du damals in der Jägerhütte
      unterschrieben hast und an das du dich eigentlich auch nicht erinnern kannst: \"Nur eine Edelsteineinlagerung am Tag möglich!\""
);
  } elseif (
$session['user']['gemsinbank'] >= $session['user']['gemsvolume']) {
    
output("`6Der kleine alte Bankier zeigt dir die Lagerunterlagen deines Tresors. Dieser ist mit `^" $session["user"]["gemsinbank"] . "`6 restlos ausgefüllt");
  } else {
    
output("`6`bEdelsteine einlagern`b:`n");
    
$max $session['user']['gemsvolume'];
    
$in $session['user']['gemsinbank'];
    
$free $max $in;
    
output("Dein Tresor fasst derzeit `^$max`6 Edelsteine und du kannst noch `^$free `6einlagern.");
    
output("<form action='bank.php?op=gemsfinish' method='POST'><input id='input' name='amount' width=5 accesskey='v'>
      <input type='submit' class='button' value='Einlagern'>`n`iGib 0 oder gar nichts ein, um den Tresor voll zu machen oder alles einzuzahlen.`i</form>"
true);
    
output("<script language='javascript'>document.getElementById('input').focus();</script>"true);
    
addnav("""bank.php?op=gemsfinish");
  }
} elseif (
$_GET['op'] == "gemsfinish") {
  
$max $session['user']['gemsvolume'];
  
$in $session['user']['gemsinbank'];
  
$free $max $in;
  
$_POST["amount"] = abs((int)$_POST["amount"]);
  if (
$_POST["amount"] == 0) {
    if (
$session["user"]["gems"] > $free$_POST["amount"] = $free;
    else 
$_POST["amount"] = $session["user"]["gems"];
  }
  if (
$_POST["amount"] > $session["user"]["gems"]) {
    
output("`\$FEHLER: Soviel Edelsteine hast du nicht dabei.`^`n`n");
    
output("Du schmeißt deine `&" $session["user"]["gems"] . "`^ Edelsteine auf den Schaltertisch und erklärst, dass du die ganzen `&" $_POST["amount"] . "`^ Edelsteine einlagern möchtest.");
    
output("`n`nDer kleine alte Mann schaut dich nur verständnislos an. Durch diesen seltsamen Blick verunsichert, zählst du noch einmal nach und erkennst deinen Irrtum. Verdammt, wozu soll ein Krieger rechnen können?");
  } else {
    
output("`^`bDu lässt `&" $_POST["amount"] . "`^ Edelsteine in deinem Tresor einlagern. ");
    
//debuglog("deposited " . $_POST["amount"] . " gold in the bank");
    
$session["user"]["gemsinbank"] += $_POST["amount"];
    
$session["user"]["gems"] -= $_POST["amount"];
    
output("Du hast damit `&" $session["user"]["gemsinbank"] . "`^ Edelsteine in deinem Tresor.`b");
    
$session['user']['putingems'] = 1;
  }
} elseif (
$_GET['op'] == "getgems") {
  if (
$session['user']['gemsinbank'] < 1) {
    
output("`6Der kleine alte Bankier zeigt dir die Lagerunterlagen deines Tresors. Komplett leer!");
  } else {
    
output("`6`bEdelsteine abholen`b:`n");
    
$in $session['user']['gemsinbank'];
    
output("In deinem Tresor lagern derzeit `^$in`6 Edelsteine.");
    
output("<form action='bank.php?op=getgemsfinish' method='POST'><input id='input' name='amount' width=5 accesskey='v'>
         <input type='submit' class='button' value='Abholen'>`n`iGib 0 oder gar nichts ein, um den Tresor leer zu machen.`i</form>"
true);
    
output("<script language='javascript'>document.getElementById('input').focus();</script>"true);
    
addnav("""bank.php?op=getgemsfinish");
  }
} elseif (
$_GET['op'] == "getgemsfinish") {
  
$in $session["user"]["gemsinbank"];
  
$_POST["amount"] = abs((int)$_POST["amount"]);
  if (
$_POST["amount"] == || $_POST["amount"] > $in) {  /* gems-in-bank negativ-prevention */
    
$_POST["amount"] = $in;
  }
  
output("`^`bDu lässt dir `&" $_POST["amount"] . "`^ Edelsteine aus deinem Tresor bringen. ");
  
//debuglog("deposited " . $_POST["amount"] . " gold in the bank");
  
$session["user"]["gemsinbank"] -= $_POST["amount"];
  
$session["user"]["gems"] += $_POST["amount"];
  
output("Du hast damit noch `&" $session["user"]["gemsinbank"] . "`^ Edelsteine in deinem Tresor.`b");
} elseif (
$_GET['op'] == "transfer") {
  
output("`6`bGold überweisen`b:`n");
  if (
$session["user"]["goldinbank"] >= 0) {
    
output("Du kannst maximal `^" getsetting("transferperlevel"25) . "`6 Gold pro Level des Empfängers überweisen.`n");
    
$maxout $session['user']['level'] * getsetting("maxtransferout"25);
    
$minfer round(getsetting("transferperlevel"25) / 10 * ((int)$session['user']['level'] / 2));
    
output("Du musst mindestens `^$minfer`6 Gold überweisen.`n");
    
output("Du kannst nicht mehr als insgesamt `^$maxout`6 Gold überweisen.");
    if (
$session['user']['amountouttoday'] > 0) {
      
output("(Du hast heute schon `^{$session['user']['amountouttoday']}`6 Gold überwiesen.)`n`n");
    } else 
output("`n`n");
    
output("<form action='bank.php?op=transfer2' method='POST'>Wieviel ü<u>b</u>erweisen: <input name='amount' id='amount' accesskey='b' width='5'>`n"true);
    
output("A<u>n</u>: <input name='to' accesskey='n'> (Unvollständige Namen werden automatisch ergänzt. Du wirst nochmal zum Bestätigen aufgefordert).`n"true);
    
output("<input type='submit' class='button' value='Vorschau'></form>"true);
    
output("<script language='javascript'>document.getElementById('amount').focus();</script>"true);
    
addnav("""bank.php?op=transfer2");
  } else {
    
output("`6Der kleine alte Bankier weigert sich, Geld für jemanden zu überweisen, der Schulden hat.");
  }
} elseif (
$_GET['op'] == "transfer2") {
  
output("`6`bÜberweisung bestätigen`b:`n");
  
$string "%";
  for (
$x 0$x strlen($_POST['to']); $x++) {
    
$string .= substr($_POST['to'], $x1) . "%";
  }
  
$sql "SELECT name,login FROM accounts WHERE name LIKE '" addslashes($string) . "'";
  
$result db_query($sql);
  
$amt abs((int)$_POST['amount']);
  if (
db_num_rows($result) == 1) {
    
$row db_fetch_assoc($result);
    
output("<form action='bank.php?op=transfer3' method='POST'>"true);
    
output("`6Überweise `^$amt`6 an `&" $row["name"] . "`6.");
    
output("<input type='hidden' name='to' value='" HTMLEntities($row['login']) . "'><input type='hidden' name='amount' value='$amt'><input type='submit' class='button' value='Überweisung abschließen'></form>"true);
    
addnav("""bank.php?op=transfer3");
  } elseif (
db_num_rows($result) > 100) {
    
output("Der Bankier schaut dich überfordert an und schlägt dir vor, deine Suche vielleicht etwas mehr einzuengen, indem du den Namen genauer festlegst.`n`n");
    
output("<form action='bank.php?op=transfer2' method='POST'>Wieviel ü<u>b</u>erweisen: <input name='amount' id='amount' accesskey='b' width='5' value='$amt'>`n"true);
    
output("A<u>n</u>: <input name='to' accesskey='n' value='" $_POST['to'] . "'> (Unvollständige Namen werden automatisch ergänzt. Du wirst nochmal zum Bestätigen aufgefordert).`n"true);
    
output("<input type='submit' class='button' value='Vorschau'></form>"true);
    
output("<script language='javascript'>document.getElementById('amount').focus();</script>"true);
    
addnav("""bank.php?op=transfer2");
  } elseif (
db_num_rows($result) > 1) {
    
output("<form action='bank.php?op=transfer3' method='POST'>"true);
    
output("`6Überweise `^$amt`6 an <select name='to' class='input'>"true);
    for (
$i 0$i db_num_rows($result); $i++) {
      
$row db_fetch_assoc($result);
      
//output($row["name"]." ".$row["login"]."`n");
      
output("<option value=\"" HTMLEntities($row['login']) . "\">" preg_replace("'[`].'"""$row['name']) . "</option>"true);
    }
    
output("</select><input type='hidden' name='amount' value='$amt'><input type='submit' class='button' value='Überweisung abschließen'></form>"true);
    
addnav("""bank.php?op=transfer3");
  } else {
    
output("`6Es konnte niemand mit diesem Namen gefunden werden. Bitte versuchs nochmal.");
  }
} elseif (
$_GET['op'] == "transfer3") {
  
$amt abs((int)$_POST['amount']);
  
output("`6`bÜberweisung abschließen`b`n");
  if (
$session["user"]["gold"] + $session["user"]["goldinbank"] < $amt) {
    
output("`6Wie willst du `^$amt`6 Gold überweisen, wenn du nur " . ($session["user"]["gold"] + $session["user"]["goldinbank"]) . "`6 Gold hast?");
  } else {
    
$sql "SELECT name,acctid,level,transferredtoday FROM accounts WHERE login='{$_POST['to']}'";
    
$result db_query($sql);
    if (
db_num_rows($result) == 1) {
      
$row db_fetch_assoc($result);
      
$maxout $session['user']['level'] * getsetting("maxtransferout"25);
      
$maxtfer $row['level'] * getsetting("transferperlevel"25);
      
$minfer round(getsetting("transferperlevel"25) / 10 * ((int)$session['user']['level'] / 2));
      if (
$session['user']['amountouttoday'] + $amt $maxout) {
        
output("`6Die Überweisung wurde nicht durchgeführt: Du darfst nicht mehr als `^$maxout`6 Gold pro Tag überweisen.");
      } elseif (
$maxtfer $amt) {
        
output("`6Die Überweisung wurde nicht durchgeführt: `&{$row['name']}`6 darf maximal `^$maxtfer`6 Gold empfangen.");
      } elseif (
$row['transferredtoday'] >= getsetting("transferreceive"3)) {
        
output("`&{$row['name']}`6 hat heute schon zu viele Überweisungen oder Edelsteine erhalten. Du wirst bis morgen warten müssen.");
      } elseif (
$amt $minfer) {
        
output("`6Du solltest etwas überweisen, das sich auch lohnt. Wenigstens `^$minfer`6 Gold.");
      } elseif (
$row['acctid'] == $session['user']['acctid']) {
        
output("`6Du kannst dir nicht selbst Gold überweisen. Das macht keinen Sinn!");
      } elseif (
ac_check($row)) {
        
output("`\$`bNicht erlaubt!!`b Du darfst kein Gold an deine eigenen Charaktere überweisen!");
      } else {
        
debuglog("transferred $amt gold to"$row['acctid']);
        
$session["user"]["gold"] -= $amt;
        if (
$session["user"]["gold"] < 0) { //withdraw in case they don't have enough on hand.
          
$session["user"]["goldinbank"] += $session["user"]["gold"];
          
$session["user"]["gold"] = 0;
        }
        
$session['user']['amountouttoday'] += $amt;
        
$sql "UPDATE accounts SET goldinbank=goldinbank+$amt,transferredtoday=transferredtoday+1 WHERE acctid='{$row['acctid']}'";
        
db_query($sql);
        
output("`6Transfer vollständig!");
        
//$session['user']['donation']+=1;
        
systemmail($row['acctid'], "`^Du hast eine Überweisung erhalten!`0""`&{$session['user']['name']}`6 hat dir `^$amt`6 Gold auf dein Konto überwiesen!");
      }
    } else {
      
output("`6Die Überweisung hat nicht geklappt. Bitte versuchs nochmal.");
    }
  }
} elseif (
$op == "deposit") {
  
output("<form action='bank.php?op=depositfinish' method='POST'>Du hast " . ($session["user"]["goldinbank"] >= "ein Guthaben von" "Schulden in Höhe von") . " " abs($session["user"]["goldinbank"]) . " Gold bei der Bank.`n"true);
  
output("`^Wie <u>v</u>iel " . ($session["user"]["goldinbank"] >= "einzahlen" "zurückzahlen") . ":  <input id='input' name='amount' width=5 accesskey='v'> <input type='submit' class='button' value='Einzahlen'>`n`iGib 0 oder gar nichts ein, um alles einzuzahlen.`i</form>"true);
  
output("<script language='javascript'>document.getElementById('input').focus();</script>"true);
  
addnav("""bank.php?op=depositfinish");
} elseif (
$op == "depositfinish") {
  
$_POST["amount"] = abs((int)$_POST["amount"]);
  if (
$_POST["amount"] == 0) {
    
$_POST["amount"] = $session["user"]["gold"];
  }
  if (
$_POST["amount"] > $session["user"]["gold"]) {
    
output("`\$FEHLER: Soviel Gold hast du nicht dabei.`^`n`n");
    
output("Du schmeißt deine `&" $session["user"]["gold"] . "`^ Gold auf den Schaltertisch und erklärst, dass du die ganzen `&" $_POST["amount"] . "`^ Gold einzahlen möchtest.");
    
output("`n`nDer kleine alte Mann schaut dich nur verständnislos an. Durch diesen seltsamen Blick verunsichert, zählst du noch einmal nach und erkennst deinen Irrtum. Verdammt, wozu soll ein Krieger rechnen können?");
  } else {
    
output("`^`bDu zahlst `&" $_POST["amount"] . "`^ Gold auf dein Konto ein. ");
    
//debuglog("deposited " . $_POST["amount"] . " gold in the bank");
    
$session["user"]["goldinbank"] += $_POST["amount"];
    
$session["user"]["gold"] -= $_POST["amount"];
    
output("Du hast damit " . ($session["user"]["goldinbank"] >= "ein Guthaben von" "Schulden in Höhe von") . " `&" abs($session["user"]["goldinbank"]) . "`^ Gold auf deinem Konto und `&" $session["user"]["gold"] . "`^ Gold hast du bei dir.`b");
  }
} elseif (
$op == "borrow") {
  
$maxborrow $session["user"]["level"] * getsetting("borrowperlevel"20);
  
output("<form action='bank.php?op=withdrawfinish' method='POST'>Du hast " . ($session["user"]["goldinbank"] >= "ein Guthaben von" "Schulden in Höhe von") . " " abs($session["user"]["goldinbank"]) . " Gold bei der Bank.`n"true);
  
output("`^Wieviel <u>l</u>eihen (mit deinem Level kannst du maximal $maxborrow leihen)? <input id='input' name='amount' width=5 accesskey='l'> <input type='hidden' name='borrow' value='x'><input type='submit' class='button' value='Leihen'>`n(Gold wird abgehoben, bis dein Konto leer ist. Der Restbetrag wird geliehen.)</form>"true);
  
output("<script language='javascript'>document.getElementById('input').focus();</script>"true);
  
addnav("""bank.php?op=withdrawfinish");
} elseif (
$op == "withdraw") {
  
output("<form action='bank.php?op=withdrawfinish' method='POST'>Du hast " $session["user"]["goldinbank"] . " Gold bei der Bank.`n"true);
  
output("`^Wieviel a<u>b</u>heben? <input id='input' name='amount' width=5 accesskey='b'> <input type='submit' class='button' value='Abheben'>`n`iGib 0 oder gar nichts ein, um alles abzuheben.`i</form>"true);
  
output("<script language='javascript'>document.getElementById('input').focus();</script>"true);
  
addnav("""bank.php?op=withdrawfinish");
} elseif (
$op == "withdrawfinish") {
  
$_POST["amount"] = abs((int)$_POST["amount"]);
  if (
$_POST["amount"] == 0) {
    
$_POST["amount"] = abs($session["user"]["goldinbank"]);
  }
  if (
$_POST["amount"] > $session["user"]["goldinbank"] && $_POST["borrow"] == "") {
    
output("`\$FEHLER: Nicht genug auf dem Konto.`^`n`n");
    
output("Nachdem du darüber informiert wurdest, dass du `&" $session["user"]["goldinbank"] . "`^ Gold auf dem Konto hast, erklärst du dem Männlein mit der Lesebrille, dass du gerne `&" $_POST["amount"] . "`^ davon abheben würdest.");
    
output("`n`nDer Bankier schaut dich bedauernd an und erklärt dir die Grundlagen der Mathematik. Nach einer Weile verstehst du deinen Fehler und würdest es gerne nochmal versuchen.");
  } elseif (
$_POST["amount"] > $session["user"]["goldinbank"]) {
    
$lefttoborrow $_POST["amount"];
    
$maxborrow $session["user"]["level"] * getsetting("borrowperlevel"20);
    if (
$lefttoborrow <= $session["user"]["goldinbank"] + $maxborrow) {
      if (
$session["user"]["goldinbank"] > 0) {
        
output("`6Du nimmst deine verbleibenden `^" $session["user"]["goldinbank"] . "`6 Gold und ");
        
$lefttoborrow -= $session["user"]["goldinbank"];
        
$session["user"]["gold"] += $session["user"]["goldinbank"];
        
$session["user"]["goldinbank"] = 0;
        
//debuglog("withdrew " . $_POST["amount"] . " gold from the bank");
      
} else {
        
output("`6Du ");
      }
      if (
$lefttoborrow $session["user"]["goldinbank"] > $maxborrow) {
        
output("fragst, ob du `^$lefttoborrow`6 Gold leihen kannst. Der kleine Mann informiert dich darüber, dass er dir in deiner gegenwärtigen Situation nur `^$maxborrow`6 Gold geben kann.");
      } else {
        
output("leihst dir `^$lefttoborrow`6 Gold.");
        
$session["user"]["goldinbank"] -= $lefttoborrow;
        
$session["user"]["gold"] += $lefttoborrow;
        
//debuglog("borrows $lefttoborrow gold from the bank");
      
}
    } else {
      
output("`6Mit den schlappen `^{$session["user"]["goldinbank"]}`6 Gold auf deinem Konto bittest du um einen Kredit von `^" . ($lefttoborrow $session["user"]["goldinbank"]) . "`6 Gold, aber
        der kurze kleine Mann informiert dich darüber, dass du mit deinem Level höchstens `^
$maxborrow`6 Gold leihen kannst.");
    }
  } else {
    
output("`^`bDu hast `&" $_POST["amount"] . "`^ Gold von deinem Bankkonto abgehoben. ");
    
$session["user"]["goldinbank"] -= $_POST["amount"];
    
$session["user"]["gold"] += $_POST["amount"];
    
//debuglog("withdrew " . $_POST["amount"] . " gold from the bank");
    
output("Du hast damit `&" $session["user"]["goldinbank"] . "`^ Gold auf deinem Konto und `&" $session["user"]["gold"] . "`^ Gold hast du bei dir.`b");
  }
}
addnav("Zurück zum Dorf""village.php");
if (
$session["user"]["goldinbank"] >= 0) {
  
addnav("Abheben""bank.php?op=withdraw");
  
addnav("Einzahlen""bank.php?op=deposit");
  if (
getsetting("borrowperlevel"20)) addnav("Kredit aufnehmen""bank.php?op=borrow");
} else {
  
addnav("Schulden begleichen""bank.php?op=deposit");
  if (
getsetting("borrowperlevel"20)) addnav("Mehr leihen""bank.php?op=borrow");
}
if (
getsetting("allowgoldtransfer"1)) {
  if (
$session["user"]["level"] >= getsetting("mintransferlev"3) || $session["user"]["dragonkills"] > 0) {
    
addnav("Gold überweisen""bank.php?op=transfer");
  }
  
//addnav("Edelstein versenden","bank.php?op=gemtrans");
}
if (
$conf['gemtresor']) {
  
addnav("Edelsteine einlagern""bank.php?op=gems");
  
addnav("Edelsteine abholen""bank.php?op=getgems");
}

page_footer();